Skip to main content

MCP Server For OpenAPI

Project description

OpenAPI MCP Server

smithery badge

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.

Installation

  • Install package
    pip install openapi_mcp_server
    
  • Create .env in a folder with minimum values for OPENAPI_SPEC_PATH & API_BASE_URL. Sample file available here
  • Test openapi_mcp_server server using uv run openapi_mcp_server from 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"
          }
        }
      }
    }
    
    Pet Store Demo

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

Star History Chart

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

openapi_mcp_server-0.2.1.tar.gz (12.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

openapi_mcp_server-0.2.1-py3-none-any.whl (12.0 kB view details)

Uploaded Python 3

File details

Details for the file openapi_mcp_server-0.2.1.tar.gz.

File metadata

  • Download URL: openapi_mcp_server-0.2.1.tar.gz
  • Upload date:
  • Size: 12.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.5

File hashes

Hashes for openapi_mcp_server-0.2.1.tar.gz
Algorithm Hash digest
SHA256 d9c57e004ea4688e86378f6752f0d4d5e2483b5a183b5d95c3fe7ce5b4e0b196
MD5 d862a827869b6c391a549f10bf63075a
BLAKE2b-256 8257d058a1ce9dfb05f95a979f4af124aed23f02e20d7338dd90d8f0d375f722

See more details on using hashes here.

File details

Details for the file openapi_mcp_server-0.2.1-py3-none-any.whl.

File metadata

File hashes

Hashes for openapi_mcp_server-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 fcd0db2c67a2f05583bbb1051328bab549c98ecaca51b2fae8394f72290345ae
MD5 5ba27cac1638f565828e155a10b15075
BLAKE2b-256 198b5023244612d0dd44b5ec31279e698c19206940880b7a516d1616ea1ec19d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page