Searches for API endpoints matching your query and returns detailed OpenAPI schema information
Executes API requests based on the endpoint information from api_request_schema
OpenAPI Endpoint Discovery enables Claude to intelligently discover and interact with any API through semantic search of OpenAPI specifications. It handles large API documentation by efficiently chunking OpenAPI specifications at the endpoint level, ensuring no context is lost. With built-in request execution capabilities, it seamlessly integrates private APIs with Claude Desktop.
OpenAPI Endpoint Discovery is a powerful tool that enables Claude to discover and call any API endpoint through semantic search. It intelligently chunks OpenAPI specifications to handle large API documentation, with built-in request execution capabilities. This makes it perfect for integrating private APIs with Claude Desktop.
The easiest way to get started is with Docker:
docker run -i --rm buryhuang/mcp-server-any-openapi:latest
You can install via Smithery with:
npx -y @smithery/cli install @baryhuang/mcp-server-any-openapi --client claude
Alternatively, install via pip:
pip install mcp-server-any-openapi
Customize the server through environment variables:
OPENAPI_JSON_DOCS_URL
: URL to the OpenAPI specification JSON (defaults to https://api.staging.readymojo.com/openapi.json)MCP_API_PREFIX
: Customizable tool namespace (default "any_openapi")GLOBAL_TOOL_PROMPT
: Optional text to prepend to all tool descriptions (crucial for accurate tool selection)API_REQUEST_BASE_URL
: Optional override for the base URL extracted from OpenAPI docsdocker run -i --rm \
-e OPENAPI_JSON_DOCS_URL=https://api.finance.com/openapi.json \
-e MCP_API_PREFIX=finance \
-e GLOBAL_TOOL_PROMPT="Access to insights APIs for ACME Financial Services abc.com." \
buryhuang/mcp-server-any-openapi:latest
You can run multiple instances to support different API sets:
{
"mcpServers": {
"finance_openapi": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"OPENAPI_JSON_DOCS_URL=https://api.finance.com/openapi.json",
"-e",
"MCP_API_PREFIX=finance",
"-e",
"GLOBAL_TOOL_PROMPT=Access to insights apis for ACME Financial Services abc.com.",
"buryhuang/mcp-server-any-openapi:latest"
]
},
"healthcare_openapi": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"OPENAPI_JSON_DOCS_URL=https://api.healthcare.com/openapi.json",
"-e",
"MCP_API_PREFIX=healthcare",
"-e",
"GLOBAL_TOOL_PROMPT=Access to insights apis for Healthcare API services efg.com.",
"buryhuang/mcp-server-any-openapi:latest"
]
}
}
}
Add a project prompt like:
You should get the API spec details from tools financial_api_request_schema
Your task is to use financial_make_request tool to make the requests to get responses. You should follow the API spec to add authorization header:
Authorization: Bearer <xxxxxxxxx>
Note: The base URL will be returned in the api_request_schema response, you don't need to specify it manually.
Then in chat, you can simply ask: "Get prices for all stocks"