├── .coveragerc ├── .cursorignore ├── .github ├── ISSUE_TEMPLATE │ ├── bug_report.md │ ├── documentation.md │ └── feature_request.md ├── codecov.yml ├── dependabot.yml ├── pull_request_template.md └── workflows │ ├── ci.yml │ └── release.yml ├── .gitignore ├── .pre-commit-config.yaml ├── .python-version ├── CHANGELOG.md ├── CONTRIBUTING.md ├── LICENSE ├── MANIFEST.in ├── README.md ├── README_zh-CN.md ├── docs ├── advanced │ ├── asgi.mdx │ ├── auth.mdx │ ├── deploy.mdx │ ├── refresh.mdx │ └── transport.mdx ├── configurations │ ├── customization.mdx │ └── tool-naming.mdx ├── docs.json ├── getting-started │ ├── FAQ.mdx │ ├── best-practices.mdx │ ├── installation.mdx │ ├── quickstart.mdx │ └── welcome.mdx └── media │ ├── dark_logo.png │ ├── favicon.png │ └── light_logo.png ├── examples ├── 01_basic_usage_example.py ├── 02_full_schema_description_example.py ├── 03_custom_exposed_endpoints_example.py ├── 04_separate_server_example.py ├── 05_reregister_tools_example.py ├── 06_custom_mcp_router_example.py ├── 07_configure_http_timeout_example.py ├── 08_auth_example_token_passthrough.py ├── 09_auth_example_auth0.py ├── README.md ├── __init__.py └── shared │ ├── __init__.py │ ├── apps │ ├── __init__.py │ └── items.py │ ├── auth.py │ └── setup.py ├── fastapi_mcp ├── __init__.py ├── auth │ ├── __init__.py │ └── proxy.py ├── openapi │ ├── __init__.py │ ├── convert.py │ └── utils.py ├── server.py ├── transport │ ├── __init__.py │ ├── http.py │ └── sse.py ├── types.py └── utils │ └── __init__.py ├── mypy.ini ├── pyproject.toml ├── pytest.ini ├── tests ├── __init__.py ├── conftest.py ├── fixtures │ ├── complex_app.py │ ├── conftest.py │ ├── example_data.py │ ├── simple_app.py │ └── types.py ├── test_basic_functionality.py ├── test_configuration.py ├── test_http_real_transport.py ├── test_mcp_complex_app.py ├── test_mcp_execute_api_tool.py ├── test_mcp_simple_app.py ├── test_openapi_conversion.py ├── test_sse_mock_transport.py ├── test_sse_real_transport.py └── test_types_validation.py └── uv.lock /.coveragerc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tadata-org/fastapi_mcp/HEAD/.coveragerc -------------------------------------------------------------------------------- /.cursorignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tadata-org/fastapi_mcp/HEAD/.cursorignore -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tadata-org/fastapi_mcp/HEAD/.github/ISSUE_TEMPLATE/bug_report.md -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/documentation.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tadata-org/fastapi_mcp/HEAD/.github/ISSUE_TEMPLATE/documentation.md -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tadata-org/fastapi_mcp/HEAD/.github/ISSUE_TEMPLATE/feature_request.md -------------------------------------------------------------------------------- /.github/codecov.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tadata-org/fastapi_mcp/HEAD/.github/codecov.yml -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tadata-org/fastapi_mcp/HEAD/.github/dependabot.yml -------------------------------------------------------------------------------- /.github/pull_request_template.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tadata-org/fastapi_mcp/HEAD/.github/pull_request_template.md -------------------------------------------------------------------------------- /.github/workflows/ci.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tadata-org/fastapi_mcp/HEAD/.github/workflows/ci.yml -------------------------------------------------------------------------------- /.github/workflows/release.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tadata-org/fastapi_mcp/HEAD/.github/workflows/release.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tadata-org/fastapi_mcp/HEAD/.gitignore -------------------------------------------------------------------------------- /.pre-commit-config.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tadata-org/fastapi_mcp/HEAD/.pre-commit-config.yaml -------------------------------------------------------------------------------- /.python-version: -------------------------------------------------------------------------------- 1 | 3.12 -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tadata-org/fastapi_mcp/HEAD/CHANGELOG.md -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tadata-org/fastapi_mcp/HEAD/CONTRIBUTING.md -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tadata-org/fastapi_mcp/HEAD/LICENSE -------------------------------------------------------------------------------- /MANIFEST.in: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tadata-org/fastapi_mcp/HEAD/MANIFEST.in -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tadata-org/fastapi_mcp/HEAD/README.md -------------------------------------------------------------------------------- /README_zh-CN.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tadata-org/fastapi_mcp/HEAD/README_zh-CN.md -------------------------------------------------------------------------------- /docs/advanced/asgi.mdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tadata-org/fastapi_mcp/HEAD/docs/advanced/asgi.mdx -------------------------------------------------------------------------------- /docs/advanced/auth.mdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tadata-org/fastapi_mcp/HEAD/docs/advanced/auth.mdx -------------------------------------------------------------------------------- /docs/advanced/deploy.mdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tadata-org/fastapi_mcp/HEAD/docs/advanced/deploy.mdx -------------------------------------------------------------------------------- /docs/advanced/refresh.mdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tadata-org/fastapi_mcp/HEAD/docs/advanced/refresh.mdx -------------------------------------------------------------------------------- /docs/advanced/transport.mdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tadata-org/fastapi_mcp/HEAD/docs/advanced/transport.mdx -------------------------------------------------------------------------------- /docs/configurations/customization.mdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tadata-org/fastapi_mcp/HEAD/docs/configurations/customization.mdx -------------------------------------------------------------------------------- /docs/configurations/tool-naming.mdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tadata-org/fastapi_mcp/HEAD/docs/configurations/tool-naming.mdx -------------------------------------------------------------------------------- /docs/docs.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tadata-org/fastapi_mcp/HEAD/docs/docs.json -------------------------------------------------------------------------------- /docs/getting-started/FAQ.mdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tadata-org/fastapi_mcp/HEAD/docs/getting-started/FAQ.mdx -------------------------------------------------------------------------------- /docs/getting-started/best-practices.mdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tadata-org/fastapi_mcp/HEAD/docs/getting-started/best-practices.mdx -------------------------------------------------------------------------------- /docs/getting-started/installation.mdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tadata-org/fastapi_mcp/HEAD/docs/getting-started/installation.mdx -------------------------------------------------------------------------------- /docs/getting-started/quickstart.mdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tadata-org/fastapi_mcp/HEAD/docs/getting-started/quickstart.mdx -------------------------------------------------------------------------------- /docs/getting-started/welcome.mdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tadata-org/fastapi_mcp/HEAD/docs/getting-started/welcome.mdx -------------------------------------------------------------------------------- /docs/media/dark_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tadata-org/fastapi_mcp/HEAD/docs/media/dark_logo.png -------------------------------------------------------------------------------- /docs/media/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tadata-org/fastapi_mcp/HEAD/docs/media/favicon.png -------------------------------------------------------------------------------- /docs/media/light_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tadata-org/fastapi_mcp/HEAD/docs/media/light_logo.png -------------------------------------------------------------------------------- /examples/01_basic_usage_example.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tadata-org/fastapi_mcp/HEAD/examples/01_basic_usage_example.py -------------------------------------------------------------------------------- /examples/02_full_schema_description_example.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tadata-org/fastapi_mcp/HEAD/examples/02_full_schema_description_example.py -------------------------------------------------------------------------------- /examples/03_custom_exposed_endpoints_example.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tadata-org/fastapi_mcp/HEAD/examples/03_custom_exposed_endpoints_example.py -------------------------------------------------------------------------------- /examples/04_separate_server_example.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tadata-org/fastapi_mcp/HEAD/examples/04_separate_server_example.py -------------------------------------------------------------------------------- /examples/05_reregister_tools_example.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tadata-org/fastapi_mcp/HEAD/examples/05_reregister_tools_example.py -------------------------------------------------------------------------------- /examples/06_custom_mcp_router_example.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tadata-org/fastapi_mcp/HEAD/examples/06_custom_mcp_router_example.py -------------------------------------------------------------------------------- /examples/07_configure_http_timeout_example.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tadata-org/fastapi_mcp/HEAD/examples/07_configure_http_timeout_example.py -------------------------------------------------------------------------------- /examples/08_auth_example_token_passthrough.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tadata-org/fastapi_mcp/HEAD/examples/08_auth_example_token_passthrough.py -------------------------------------------------------------------------------- /examples/09_auth_example_auth0.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tadata-org/fastapi_mcp/HEAD/examples/09_auth_example_auth0.py -------------------------------------------------------------------------------- /examples/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tadata-org/fastapi_mcp/HEAD/examples/README.md -------------------------------------------------------------------------------- /examples/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /examples/shared/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /examples/shared/apps/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /examples/shared/apps/items.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tadata-org/fastapi_mcp/HEAD/examples/shared/apps/items.py -------------------------------------------------------------------------------- /examples/shared/auth.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tadata-org/fastapi_mcp/HEAD/examples/shared/auth.py -------------------------------------------------------------------------------- /examples/shared/setup.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tadata-org/fastapi_mcp/HEAD/examples/shared/setup.py -------------------------------------------------------------------------------- /fastapi_mcp/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tadata-org/fastapi_mcp/HEAD/fastapi_mcp/__init__.py -------------------------------------------------------------------------------- /fastapi_mcp/auth/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /fastapi_mcp/auth/proxy.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tadata-org/fastapi_mcp/HEAD/fastapi_mcp/auth/proxy.py -------------------------------------------------------------------------------- /fastapi_mcp/openapi/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /fastapi_mcp/openapi/convert.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tadata-org/fastapi_mcp/HEAD/fastapi_mcp/openapi/convert.py -------------------------------------------------------------------------------- /fastapi_mcp/openapi/utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tadata-org/fastapi_mcp/HEAD/fastapi_mcp/openapi/utils.py -------------------------------------------------------------------------------- /fastapi_mcp/server.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tadata-org/fastapi_mcp/HEAD/fastapi_mcp/server.py -------------------------------------------------------------------------------- /fastapi_mcp/transport/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /fastapi_mcp/transport/http.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tadata-org/fastapi_mcp/HEAD/fastapi_mcp/transport/http.py -------------------------------------------------------------------------------- /fastapi_mcp/transport/sse.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tadata-org/fastapi_mcp/HEAD/fastapi_mcp/transport/sse.py -------------------------------------------------------------------------------- /fastapi_mcp/types.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tadata-org/fastapi_mcp/HEAD/fastapi_mcp/types.py -------------------------------------------------------------------------------- /fastapi_mcp/utils/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /mypy.ini: -------------------------------------------------------------------------------- 1 | [mypy] 2 | -------------------------------------------------------------------------------- /pyproject.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tadata-org/fastapi_mcp/HEAD/pyproject.toml -------------------------------------------------------------------------------- /pytest.ini: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tadata-org/fastapi_mcp/HEAD/pytest.ini -------------------------------------------------------------------------------- /tests/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/conftest.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tadata-org/fastapi_mcp/HEAD/tests/conftest.py -------------------------------------------------------------------------------- /tests/fixtures/complex_app.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tadata-org/fastapi_mcp/HEAD/tests/fixtures/complex_app.py -------------------------------------------------------------------------------- /tests/fixtures/conftest.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tadata-org/fastapi_mcp/HEAD/tests/fixtures/conftest.py -------------------------------------------------------------------------------- /tests/fixtures/example_data.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tadata-org/fastapi_mcp/HEAD/tests/fixtures/example_data.py -------------------------------------------------------------------------------- /tests/fixtures/simple_app.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tadata-org/fastapi_mcp/HEAD/tests/fixtures/simple_app.py -------------------------------------------------------------------------------- /tests/fixtures/types.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tadata-org/fastapi_mcp/HEAD/tests/fixtures/types.py -------------------------------------------------------------------------------- /tests/test_basic_functionality.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tadata-org/fastapi_mcp/HEAD/tests/test_basic_functionality.py -------------------------------------------------------------------------------- /tests/test_configuration.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tadata-org/fastapi_mcp/HEAD/tests/test_configuration.py -------------------------------------------------------------------------------- /tests/test_http_real_transport.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tadata-org/fastapi_mcp/HEAD/tests/test_http_real_transport.py -------------------------------------------------------------------------------- /tests/test_mcp_complex_app.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tadata-org/fastapi_mcp/HEAD/tests/test_mcp_complex_app.py -------------------------------------------------------------------------------- /tests/test_mcp_execute_api_tool.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tadata-org/fastapi_mcp/HEAD/tests/test_mcp_execute_api_tool.py -------------------------------------------------------------------------------- /tests/test_mcp_simple_app.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tadata-org/fastapi_mcp/HEAD/tests/test_mcp_simple_app.py -------------------------------------------------------------------------------- /tests/test_openapi_conversion.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tadata-org/fastapi_mcp/HEAD/tests/test_openapi_conversion.py -------------------------------------------------------------------------------- /tests/test_sse_mock_transport.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tadata-org/fastapi_mcp/HEAD/tests/test_sse_mock_transport.py -------------------------------------------------------------------------------- /tests/test_sse_real_transport.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tadata-org/fastapi_mcp/HEAD/tests/test_sse_real_transport.py -------------------------------------------------------------------------------- /tests/test_types_validation.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tadata-org/fastapi_mcp/HEAD/tests/test_types_validation.py -------------------------------------------------------------------------------- /uv.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tadata-org/fastapi_mcp/HEAD/uv.lock --------------------------------------------------------------------------------