{
  "name": "openapi-anyapi",
  "display_name": "Scalable OpenAPI Endpoint Discovery Tool",
  "description": "Interact with large [OpenAPI](https://www.openapis.org/) docs using built-in semantic search for endpoints. Allows for customizing the MCP server prefix.",
  "repository": {
    "type": "git",
    "url": "https://github.com/baryhuang/mcp-server-any-openapi"
  },
  "homepage": "https://github.com/baryhuang/mcp-server-any-openapi",
  "author": {
    "name": "baryhuang"
  },
  "license": "MIT",
  "categories": [
    "Dev Tools"
  ],
  "installations": {
    "docker": {
      "type": "docker",
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "OPENAPI_JSON_DOCS_URL=${OPENAPI_JSON_DOCS_URL}",
        "-e",
        "API_REQUEST_BASE_URL=${API_REQUEST_BASE_URL}",
        "-e",
        "MCP_API_PREFIX=${MCP_API_PREFIX}",
        "buryhuang/mcp-server-any-openapi:latest"
      ],
      "env": {
        "OPENAPI_JSON_DOCS_URL": "${OPENAPI_JSON_DOCS_URL}",
        "API_REQUEST_BASE_URL": "${API_REQUEST_BASE_URL}",
        "MCP_API_PREFIX": "${MCP_API_PREFIX}"
      }
    },
    "uvx": {
      "type": "uvx",
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/baryhuang/mcp-server-any-openapi",
        "src/mcp_server_any_openapi/server.py"
      ],
      "env": {
        "OPENAPI_JSON_DOCS_URL": "${OPENAPI_JSON_DOCS_URL}",
        "API_REQUEST_BASE_URL": "${API_REQUEST_BASE_URL}",
        "MCP_API_PREFIX": "${MCP_API_PREFIX}"
      }
    }
  },
  "tags": [
    "OpenAPI",
    "API Discovery",
    "Semantic Search",
    "FastAPI"
  ],
  "examples": [
    {
      "title": "Get API Endpoints",
      "description": "Use this tool to find relevant API endpoints by describing your intent.",
      "prompt": "Get prices for all stocks"
    }
  ],
  "arguments": {
    "OPENAPI_JSON_DOCS_URL": {
      "description": "URL to the OpenAPI specification JSON (defaults to https://api.staging.readymojo.com/openapi.json)",
      "required": false,
      "example": "https://api.example.com/openapi.json"
    },
    "API_REQUEST_BASE_URL": {
      "description": "Optional base URL to override the default URL extracted from the OpenAPI document.",
      "required": false,
      "example": "https://api.finance.com"
    },
    "MCP_API_PREFIX": {
      "description": "Customizable tool namespace (default 'any_openapi'). Allows for control over tool naming.",
      "required": false,
      "example": "finance"
    }
  },
  "tools": [
    {
      "name": "${MCP_API_PREFIX}_api_request_schema",
      "description": "Get API endpoint schemas that match your intent. Returns endpoint details including path, method, parameters, and response formats.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "Describe what you want to do with the API (e.g., 'Get user profile information', 'Create a new job posting')"
          }
        },
        "required": [
          "query"
        ]
      }
    },
    {
      "name": "${MCP_API_PREFIX}_make_request",
      "description": "Make an actual REST API request with full control over method, headers, body, and parameters.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "method": {
            "type": "string",
            "description": "HTTP method (GET, POST, PUT, DELETE, PATCH)",
            "enum": [
              "GET",
              "POST",
              "PUT",
              "DELETE",
              "PATCH"
            ]
          },
          "url": {
            "type": "string",
            "description": "Fully qualified API URL (e.g., https://api.example.com/users/123)"
          },
          "headers": {
            "type": "object",
            "description": "Request headers",
            "additionalProperties": {
              "type": "string"
            }
          },
          "query_params": {
            "type": "object",
            "description": "Query parameters",
            "additionalProperties": {
              "type": "string"
            }
          },
          "body": {
            "type": "object",
            "description": "Request body (for POST, PUT, PATCH)",
            "additionalProperties": true
          }
        },
        "required": [
          "method",
          "url"
        ]
      }
    }
  ]
}