Uses environment variables for configuration management, allowing users to specify API endpoints, credentials, and other settings through a .env file.
Leverages Pydantic for data validation and parsing of API request/response models defined in OpenAPI specifications.
Enables interaction with RESTful APIs defined in Swagger/OpenAPI specifications, supporting GET, PUT, POST, and PATCH operations. The example demonstrates integration with the Swagger Petstore API, including operations like addPet, updatePet, and findPetsByStatus.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@OpenAPI MCP Serverlist all available pets with status 'available'"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
OpenAPI MCP Server
Overview
This project will install
MCP - Model Context Protocol Server, that provides configured REST API's as context to LLM's.Using this we can enable LLMs to interact with RestAPI's and perform REST API call's using LLM prompts.
Currently we support HTTP API Call's
GET/PUT/POST/PATCH.
Related MCP server: MongoDB MCP Server for LLMs
Installation
Install package
pip install openapi_mcp_serverCreate .env in a folder with minimum values for
OPENAPI_SPEC_PATH&API_BASE_URL. Sample file available hereTest
openapi_mcp_serverserver usinguv run openapi_mcp_serverfrom the above folder.
Claud Desktop
Configuration details for Claud Desktop
{ "mcpServers": { "openapi_mcp_server":{ "command": "uv", "args": ["run","openapi_mcp_server"] "env": { "DEBUG":"1", "API_BASE_URL":"https://petstore.swagger.io/v2", "OPENAPI_SPEC_PATH":"https://petstore.swagger.io/v2/swagger.json", "API_HEADERS":"Accept:application/json", "API_WHITE_LIST":"addPet,updatePet,findPetsByStatus" } } } }
Configuration
List of available environment variables
DEBUG: Enable debug logging (optional default is False)OPENAPI_SPEC_PATH: Path to the OpenAPI document. (required)API_BASE_URL: Base URL for the API requests. (required)API_HEADERS: Headers to include in the API requests (optional)API_WHITE_LIST: White Listed operationId in list format ["operationId1", "operationId2"] (optional)API_BLACK_LIST: Black Listed operationId in list format ["operationId3", "operationId4"] (optional)HTTP_PROXY: HTTP Proxy details (optional)HTTPS_PROXY: HTTPS Proxy details (optional)NO_PROXY: No Proxy details (optional)
Contributing
Contributions are welcome.
Please feel free to submit a Pull Request.
License
This project is licensed under the terms of the MIT license.
Github Stars
Appendix
UV
mkdir -m777 openapi_mcp_server
cd openapi_mcp_server
uv init
uv add mcp[cli] pydantic python-dotenv requests
uv add --dev twine setuptools
uv sync
uv run openapi_mcp_server
uv build
pip install --force-reinstall --no-deps .\dist\openapi_mcp_server-*fileversion*.whl
export TWINE_USERNAME="rahgadda"
export TWINE_USERNAME="<<API Key>>"
uv run twine upload --verbose dist/*Reference
Appeared in Searches
- MCP integration with Matrix Synapse server
- Integration guide for Segment.io analytics platform
- Method to Convert REST API to MCP
- Support resources for HTTP-related issues or questions
- Developing and redeveloping web frontend and Python backend projects, including frontend-backend integration and debugging