├── .flake8 ├── .github └── workflows │ ├── python-pytest.yml │ └── testpypi.yaml ├── .gitignore ├── LICENSE ├── README.md ├── examples ├── WIP-jellyfin-claude_desktop_config.json ├── apis.guru-claude_desktop_config.json ├── asana-claude_desktop_config.json ├── box-claude_desktop_config.json ├── elevenlabs-claude_desktop_config.json ├── flyio-claude_desktop_config.json ├── getzep-claude_desktop_config.json ├── getzep.swagger.json ├── glama-claude_desktop_config.json ├── netbox-claude_desktop_config.json ├── notion-claude_desktop_config.json ├── render-claude_desktop_config.json ├── slack-claude_desktop_config.json ├── virustotal-claude_desktop_config.json ├── virustotal.openapi.yml └── wolframalpha-claude_desktop_config.json ├── mcp_openapi_proxy ├── __init__.py ├── handlers.py ├── logging_setup.py ├── openapi.py ├── server_fastmcp.py ├── server_lowlevel.py ├── types.py └── utils.py ├── pyproject.toml ├── sample_mcpServers.json ├── scripts └── diagnose_examples.py ├── tests ├── conftest.py ├── fixtures │ └── sample_openapi_specs │ │ └── petstore_openapi_v3.json ├── integration │ ├── test_apisguru_integration.py │ ├── test_asana_integration.py │ ├── test_box_integration.py │ ├── test_elevenlabs_integration.py │ ├── test_example_configs.py │ ├── test_fly_machines_integration.py │ ├── test_getzep_integration.py │ ├── test_integration_json_access.py │ ├── test_jellyfin_public_demo.py │ ├── test_netbox_integration.py │ ├── test_notion_integration.py │ ├── test_openapi_integration.py │ ├── test_openwebui_integration.py │ ├── test_petstore_api_existence.py │ ├── test_render_integration.py │ ├── test_render_integration_lowlevel.py │ ├── test_slack_integration.py │ ├── test_ssl_verification.py │ ├── test_tool_invocation.py │ ├── test_tool_prefix.py │ ├── test_virustotal_integration.py │ └── test_wolframalpha_integration.py └── unit │ ├── test_additional_headers.py │ ├── test_capabilities.py │ ├── test_embedded_openapi_json.py │ ├── test_input_schema_generation.py │ ├── test_mcp_tools.py │ ├── test_openapi.py │ ├── test_openapi_spec_parser.py │ ├── test_openapi_tool_name_length.py │ ├── test_parameter_substitution.py │ ├── test_prompts.py │ ├── test_resources.py │ ├── test_tool_whitelisting.py │ ├── test_uri_substitution.py │ ├── test_utils.py │ └── test_utils_whitelist.py ├── upload_readme_to_readme.py └── uv.lock /.flake8: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthewhand/mcp-openapi-proxy/HEAD/.flake8 -------------------------------------------------------------------------------- /.github/workflows/python-pytest.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthewhand/mcp-openapi-proxy/HEAD/.github/workflows/python-pytest.yml -------------------------------------------------------------------------------- /.github/workflows/testpypi.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthewhand/mcp-openapi-proxy/HEAD/.github/workflows/testpypi.yaml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthewhand/mcp-openapi-proxy/HEAD/.gitignore -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthewhand/mcp-openapi-proxy/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthewhand/mcp-openapi-proxy/HEAD/README.md -------------------------------------------------------------------------------- /examples/WIP-jellyfin-claude_desktop_config.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthewhand/mcp-openapi-proxy/HEAD/examples/WIP-jellyfin-claude_desktop_config.json -------------------------------------------------------------------------------- /examples/apis.guru-claude_desktop_config.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthewhand/mcp-openapi-proxy/HEAD/examples/apis.guru-claude_desktop_config.json -------------------------------------------------------------------------------- /examples/asana-claude_desktop_config.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthewhand/mcp-openapi-proxy/HEAD/examples/asana-claude_desktop_config.json -------------------------------------------------------------------------------- /examples/box-claude_desktop_config.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthewhand/mcp-openapi-proxy/HEAD/examples/box-claude_desktop_config.json -------------------------------------------------------------------------------- /examples/elevenlabs-claude_desktop_config.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthewhand/mcp-openapi-proxy/HEAD/examples/elevenlabs-claude_desktop_config.json -------------------------------------------------------------------------------- /examples/flyio-claude_desktop_config.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthewhand/mcp-openapi-proxy/HEAD/examples/flyio-claude_desktop_config.json -------------------------------------------------------------------------------- /examples/getzep-claude_desktop_config.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthewhand/mcp-openapi-proxy/HEAD/examples/getzep-claude_desktop_config.json -------------------------------------------------------------------------------- /examples/getzep.swagger.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthewhand/mcp-openapi-proxy/HEAD/examples/getzep.swagger.json -------------------------------------------------------------------------------- /examples/glama-claude_desktop_config.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthewhand/mcp-openapi-proxy/HEAD/examples/glama-claude_desktop_config.json -------------------------------------------------------------------------------- /examples/netbox-claude_desktop_config.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthewhand/mcp-openapi-proxy/HEAD/examples/netbox-claude_desktop_config.json -------------------------------------------------------------------------------- /examples/notion-claude_desktop_config.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthewhand/mcp-openapi-proxy/HEAD/examples/notion-claude_desktop_config.json -------------------------------------------------------------------------------- /examples/render-claude_desktop_config.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthewhand/mcp-openapi-proxy/HEAD/examples/render-claude_desktop_config.json -------------------------------------------------------------------------------- /examples/slack-claude_desktop_config.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthewhand/mcp-openapi-proxy/HEAD/examples/slack-claude_desktop_config.json -------------------------------------------------------------------------------- /examples/virustotal-claude_desktop_config.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthewhand/mcp-openapi-proxy/HEAD/examples/virustotal-claude_desktop_config.json -------------------------------------------------------------------------------- /examples/virustotal.openapi.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthewhand/mcp-openapi-proxy/HEAD/examples/virustotal.openapi.yml -------------------------------------------------------------------------------- /examples/wolframalpha-claude_desktop_config.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthewhand/mcp-openapi-proxy/HEAD/examples/wolframalpha-claude_desktop_config.json -------------------------------------------------------------------------------- /mcp_openapi_proxy/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthewhand/mcp-openapi-proxy/HEAD/mcp_openapi_proxy/__init__.py -------------------------------------------------------------------------------- /mcp_openapi_proxy/handlers.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthewhand/mcp-openapi-proxy/HEAD/mcp_openapi_proxy/handlers.py -------------------------------------------------------------------------------- /mcp_openapi_proxy/logging_setup.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthewhand/mcp-openapi-proxy/HEAD/mcp_openapi_proxy/logging_setup.py -------------------------------------------------------------------------------- /mcp_openapi_proxy/openapi.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthewhand/mcp-openapi-proxy/HEAD/mcp_openapi_proxy/openapi.py -------------------------------------------------------------------------------- /mcp_openapi_proxy/server_fastmcp.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthewhand/mcp-openapi-proxy/HEAD/mcp_openapi_proxy/server_fastmcp.py -------------------------------------------------------------------------------- /mcp_openapi_proxy/server_lowlevel.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthewhand/mcp-openapi-proxy/HEAD/mcp_openapi_proxy/server_lowlevel.py -------------------------------------------------------------------------------- /mcp_openapi_proxy/types.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthewhand/mcp-openapi-proxy/HEAD/mcp_openapi_proxy/types.py -------------------------------------------------------------------------------- /mcp_openapi_proxy/utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthewhand/mcp-openapi-proxy/HEAD/mcp_openapi_proxy/utils.py -------------------------------------------------------------------------------- /pyproject.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthewhand/mcp-openapi-proxy/HEAD/pyproject.toml -------------------------------------------------------------------------------- /sample_mcpServers.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthewhand/mcp-openapi-proxy/HEAD/sample_mcpServers.json -------------------------------------------------------------------------------- /scripts/diagnose_examples.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthewhand/mcp-openapi-proxy/HEAD/scripts/diagnose_examples.py -------------------------------------------------------------------------------- /tests/conftest.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthewhand/mcp-openapi-proxy/HEAD/tests/conftest.py -------------------------------------------------------------------------------- /tests/fixtures/sample_openapi_specs/petstore_openapi_v3.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthewhand/mcp-openapi-proxy/HEAD/tests/fixtures/sample_openapi_specs/petstore_openapi_v3.json -------------------------------------------------------------------------------- /tests/integration/test_apisguru_integration.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthewhand/mcp-openapi-proxy/HEAD/tests/integration/test_apisguru_integration.py -------------------------------------------------------------------------------- /tests/integration/test_asana_integration.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthewhand/mcp-openapi-proxy/HEAD/tests/integration/test_asana_integration.py -------------------------------------------------------------------------------- /tests/integration/test_box_integration.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthewhand/mcp-openapi-proxy/HEAD/tests/integration/test_box_integration.py -------------------------------------------------------------------------------- /tests/integration/test_elevenlabs_integration.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthewhand/mcp-openapi-proxy/HEAD/tests/integration/test_elevenlabs_integration.py -------------------------------------------------------------------------------- /tests/integration/test_example_configs.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthewhand/mcp-openapi-proxy/HEAD/tests/integration/test_example_configs.py -------------------------------------------------------------------------------- /tests/integration/test_fly_machines_integration.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthewhand/mcp-openapi-proxy/HEAD/tests/integration/test_fly_machines_integration.py -------------------------------------------------------------------------------- /tests/integration/test_getzep_integration.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthewhand/mcp-openapi-proxy/HEAD/tests/integration/test_getzep_integration.py -------------------------------------------------------------------------------- /tests/integration/test_integration_json_access.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthewhand/mcp-openapi-proxy/HEAD/tests/integration/test_integration_json_access.py -------------------------------------------------------------------------------- /tests/integration/test_jellyfin_public_demo.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthewhand/mcp-openapi-proxy/HEAD/tests/integration/test_jellyfin_public_demo.py -------------------------------------------------------------------------------- /tests/integration/test_netbox_integration.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthewhand/mcp-openapi-proxy/HEAD/tests/integration/test_netbox_integration.py -------------------------------------------------------------------------------- /tests/integration/test_notion_integration.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthewhand/mcp-openapi-proxy/HEAD/tests/integration/test_notion_integration.py -------------------------------------------------------------------------------- /tests/integration/test_openapi_integration.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthewhand/mcp-openapi-proxy/HEAD/tests/integration/test_openapi_integration.py -------------------------------------------------------------------------------- /tests/integration/test_openwebui_integration.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthewhand/mcp-openapi-proxy/HEAD/tests/integration/test_openwebui_integration.py -------------------------------------------------------------------------------- /tests/integration/test_petstore_api_existence.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthewhand/mcp-openapi-proxy/HEAD/tests/integration/test_petstore_api_existence.py -------------------------------------------------------------------------------- /tests/integration/test_render_integration.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthewhand/mcp-openapi-proxy/HEAD/tests/integration/test_render_integration.py -------------------------------------------------------------------------------- /tests/integration/test_render_integration_lowlevel.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthewhand/mcp-openapi-proxy/HEAD/tests/integration/test_render_integration_lowlevel.py -------------------------------------------------------------------------------- /tests/integration/test_slack_integration.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthewhand/mcp-openapi-proxy/HEAD/tests/integration/test_slack_integration.py -------------------------------------------------------------------------------- /tests/integration/test_ssl_verification.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthewhand/mcp-openapi-proxy/HEAD/tests/integration/test_ssl_verification.py -------------------------------------------------------------------------------- /tests/integration/test_tool_invocation.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthewhand/mcp-openapi-proxy/HEAD/tests/integration/test_tool_invocation.py -------------------------------------------------------------------------------- /tests/integration/test_tool_prefix.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthewhand/mcp-openapi-proxy/HEAD/tests/integration/test_tool_prefix.py -------------------------------------------------------------------------------- /tests/integration/test_virustotal_integration.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthewhand/mcp-openapi-proxy/HEAD/tests/integration/test_virustotal_integration.py -------------------------------------------------------------------------------- /tests/integration/test_wolframalpha_integration.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthewhand/mcp-openapi-proxy/HEAD/tests/integration/test_wolframalpha_integration.py -------------------------------------------------------------------------------- /tests/unit/test_additional_headers.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthewhand/mcp-openapi-proxy/HEAD/tests/unit/test_additional_headers.py -------------------------------------------------------------------------------- /tests/unit/test_capabilities.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthewhand/mcp-openapi-proxy/HEAD/tests/unit/test_capabilities.py -------------------------------------------------------------------------------- /tests/unit/test_embedded_openapi_json.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthewhand/mcp-openapi-proxy/HEAD/tests/unit/test_embedded_openapi_json.py -------------------------------------------------------------------------------- /tests/unit/test_input_schema_generation.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthewhand/mcp-openapi-proxy/HEAD/tests/unit/test_input_schema_generation.py -------------------------------------------------------------------------------- /tests/unit/test_mcp_tools.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthewhand/mcp-openapi-proxy/HEAD/tests/unit/test_mcp_tools.py -------------------------------------------------------------------------------- /tests/unit/test_openapi.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthewhand/mcp-openapi-proxy/HEAD/tests/unit/test_openapi.py -------------------------------------------------------------------------------- /tests/unit/test_openapi_spec_parser.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthewhand/mcp-openapi-proxy/HEAD/tests/unit/test_openapi_spec_parser.py -------------------------------------------------------------------------------- /tests/unit/test_openapi_tool_name_length.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthewhand/mcp-openapi-proxy/HEAD/tests/unit/test_openapi_tool_name_length.py -------------------------------------------------------------------------------- /tests/unit/test_parameter_substitution.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthewhand/mcp-openapi-proxy/HEAD/tests/unit/test_parameter_substitution.py -------------------------------------------------------------------------------- /tests/unit/test_prompts.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthewhand/mcp-openapi-proxy/HEAD/tests/unit/test_prompts.py -------------------------------------------------------------------------------- /tests/unit/test_resources.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthewhand/mcp-openapi-proxy/HEAD/tests/unit/test_resources.py -------------------------------------------------------------------------------- /tests/unit/test_tool_whitelisting.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthewhand/mcp-openapi-proxy/HEAD/tests/unit/test_tool_whitelisting.py -------------------------------------------------------------------------------- /tests/unit/test_uri_substitution.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthewhand/mcp-openapi-proxy/HEAD/tests/unit/test_uri_substitution.py -------------------------------------------------------------------------------- /tests/unit/test_utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthewhand/mcp-openapi-proxy/HEAD/tests/unit/test_utils.py -------------------------------------------------------------------------------- /tests/unit/test_utils_whitelist.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthewhand/mcp-openapi-proxy/HEAD/tests/unit/test_utils_whitelist.py -------------------------------------------------------------------------------- /upload_readme_to_readme.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthewhand/mcp-openapi-proxy/HEAD/upload_readme_to_readme.py -------------------------------------------------------------------------------- /uv.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthewhand/mcp-openapi-proxy/HEAD/uv.lock --------------------------------------------------------------------------------