fastmcp 2.11.0__tar.gz → 2.11.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {fastmcp-2.11.0 → fastmcp-2.11.2}/PKG-INFO +1 -1
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/changelog.mdx +105 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/clients/auth/bearer.mdx +0 -1
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/docs.json +8 -7
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/integrations/authkit.mdx +7 -7
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/integrations/chatgpt.mdx +1 -1
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/integrations/claude-code.mdx +0 -1
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/integrations/eunomia-authorization.mdx +0 -1
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/integrations/mcp-json-configuration.mdx +1 -1
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/integrations/openai.mdx +0 -1
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/integrations/permit.mdx +1 -2
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/patterns/cli.mdx +145 -89
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/patterns/decorating-methods.mdx +2 -2
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-cli-cli.mdx +2 -2
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-cli-run.mdx +14 -8
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-client-auth-oauth.mdx +40 -51
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-client-transports.mdx +31 -25
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-prompts-prompt.mdx +7 -7
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-resources-resource.mdx +14 -14
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-resources-template.mdx +18 -18
- fastmcp-2.11.2/docs/python-sdk/fastmcp-server-auth-auth.mdx +124 -0
- fastmcp-2.11.2/docs/python-sdk/fastmcp-server-auth-providers-bearer.mdx +13 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-server-auth-providers-in_memory.mdx +10 -10
- fastmcp-2.11.2/docs/python-sdk/fastmcp-server-auth-providers-jwt.mdx +149 -0
- fastmcp-2.11.2/docs/python-sdk/fastmcp-server-auth-providers-workos.mdx +58 -0
- fastmcp-2.11.2/docs/python-sdk/fastmcp-server-auth-registry.mdx +43 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-server-context.mdx +46 -36
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-server-dependencies.mdx +1 -1
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-server-http.mdx +14 -14
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-server-middleware-middleware.mdx +15 -17
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-server-proxy.mdx +44 -35
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-server-server.mdx +53 -49
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-tools-tool.mdx +11 -11
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-tools-tool_transform.mdx +16 -12
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-utilities-components.mdx +24 -10
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-utilities-mcp_config.mdx +4 -4
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-utilities-openapi.mdx +10 -9
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-utilities-tests.mdx +34 -3
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-utilities-types.mdx +10 -10
- fastmcp-2.11.2/docs/servers/auth/authentication.mdx +193 -0
- fastmcp-2.11.2/docs/servers/auth/full-oauth-server.mdx +229 -0
- fastmcp-2.11.2/docs/servers/auth/remote-oauth.mdx +189 -0
- fastmcp-2.11.2/docs/servers/auth/token-verification.mdx +200 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/cli/cli.py +5 -5
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/cli/install/claude_code.py +2 -2
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/cli/install/claude_desktop.py +2 -2
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/cli/install/cursor.py +2 -2
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/cli/install/mcp_json.py +2 -2
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/cli/install/shared.py +2 -2
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/cli/run.py +74 -24
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/server/auth/__init__.py +2 -1
- fastmcp-2.11.2/src/fastmcp/server/auth/auth.py +278 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/server/auth/providers/jwt.py +1 -1
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/server/auth/providers/workos.py +27 -46
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/server/http.py +32 -73
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/server/proxy.py +33 -15
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/server/server.py +9 -6
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/settings.py +4 -7
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/utilities/components.py +6 -1
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/utilities/inspect.py +12 -17
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/utilities/openapi.py +3 -7
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/utilities/types.py +6 -1
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/cli/test_cursor.py +4 -4
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/cli/test_run.py +11 -11
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/deprecated/test_settings.py +0 -1
- fastmcp-2.11.2/tests/server/auth/test_remote_auth_provider.py +330 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/server/proxy/test_proxy_server.py +20 -3
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/server/test_mount.py +14 -19
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/utilities/test_inspect.py +23 -19
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/utilities/test_typeadapter.py +29 -0
- fastmcp-2.11.0/docs/python-sdk/fastmcp-server-auth-auth.mdx +0 -30
- fastmcp-2.11.0/docs/python-sdk/fastmcp-server-auth-providers-bearer.mdx +0 -152
- fastmcp-2.11.0/docs/servers/auth/authentication.mdx +0 -167
- fastmcp-2.11.0/docs/servers/auth/full-oauth-server.mdx +0 -128
- fastmcp-2.11.0/docs/servers/auth/remote-authentication.mdx +0 -146
- fastmcp-2.11.0/docs/servers/auth/token-verification.mdx +0 -210
- fastmcp-2.11.0/src/fastmcp/server/auth/auth.py +0 -197
- fastmcp-2.11.0/tests/server/http/test_auth_setup.py +0 -189
- {fastmcp-2.11.0 → fastmcp-2.11.2}/.ccignore +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/.cursor/rules/core-mcp-objects.mdc +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/.github/ISSUE_TEMPLATE/bug.yml +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/.github/ISSUE_TEMPLATE/enhancement.yml +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/.github/dependabot.yml +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/.github/labeler.yml +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/.github/release.yml +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/.github/workflows/labeler.yml +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/.github/workflows/publish.yml +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/.github/workflows/run-static.yml +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/.github/workflows/run-tests.yml +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/.gitignore +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/.pre-commit-config.yaml +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/AGENTS.md +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/CLAUDE.md +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/LICENSE +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/README.md +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/README_OPENAPI.md +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/Windows_Notes.md +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/.ccignore +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/.cursor/rules/mintlify.mdc +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/assets/favicon.svg +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/assets/images/tutorial-rest-api-result.png +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/assets/updates/release-2-7.png +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/clients/auth/oauth.mdx +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/clients/client.mdx +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/clients/elicitation.mdx +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/clients/logging.mdx +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/clients/messages.mdx +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/clients/progress.mdx +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/clients/prompts.mdx +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/clients/resources.mdx +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/clients/roots.mdx +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/clients/sampling.mdx +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/clients/tools.mdx +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/clients/transports.mdx +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/community/README.md +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/community/showcase.mdx +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/css/banner.css +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/css/python-sdk.css +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/css/style.css +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/css/version-badge.css +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/deployment/running-server.mdx +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/getting-started/installation.mdx +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/getting-started/quickstart.mdx +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/getting-started/welcome.mdx +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/integrations/anthropic.mdx +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/integrations/claude-desktop.mdx +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/integrations/cursor-install-mcp.png +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/integrations/cursor.mdx +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/integrations/fastapi.mdx +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/integrations/gemini.mdx +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/integrations/images/authkit/enable_dcr.png +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/integrations/images/permit/abac_condition_example.png +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/integrations/images/permit/abac_policy_example.png +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/integrations/images/permit/policy_mapping.png +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/integrations/images/permit/role_assignement.png +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/integrations/openapi.mdx +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/integrations/starlette.mdx +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/patterns/contrib.mdx +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/patterns/http-requests.mdx +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/patterns/testing.mdx +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/patterns/tool-transformation.mdx +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-cli-__init__.mdx +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-cli-claude.mdx +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-cli-install-__init__.mdx +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-cli-install-claude_code.mdx +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-cli-install-claude_desktop.mdx +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-cli-install-cursor.mdx +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-cli-install-mcp_json.mdx +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-cli-install-shared.mdx +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-client-__init__.mdx +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-client-auth-__init__.mdx +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-client-auth-bearer.mdx +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-client-client.mdx +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-client-elicitation.mdx +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-client-logging.mdx +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-client-messages.mdx +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-client-oauth_callback.mdx +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-client-progress.mdx +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-client-roots.mdx +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-client-sampling.mdx +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-exceptions.mdx +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-mcp_config.mdx +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-prompts-__init__.mdx +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-prompts-prompt_manager.mdx +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-resources-__init__.mdx +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-resources-resource_manager.mdx +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-resources-types.mdx +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-server-__init__.mdx +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-server-auth-__init__.mdx +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-server-auth-providers-__init__.mdx +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-server-auth-providers-bearer_env.mdx +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-server-elicitation.mdx +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-server-low_level.mdx +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-server-middleware-__init__.mdx +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-server-middleware-error_handling.mdx +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-server-middleware-logging.mdx +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-server-middleware-rate_limiting.mdx +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-server-middleware-timing.mdx +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-server-openapi.mdx +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-settings.mdx +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-tools-__init__.mdx +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-tools-tool_manager.mdx +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-utilities-__init__.mdx +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-utilities-cli.mdx +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-utilities-exceptions.mdx +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-utilities-http.mdx +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-utilities-inspect.mdx +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-utilities-json_schema.mdx +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-utilities-json_schema_type.mdx +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-utilities-logging.mdx +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/servers/composition.mdx +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/servers/context.mdx +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/servers/elicitation.mdx +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/servers/logging.mdx +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/servers/middleware.mdx +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/servers/progress.mdx +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/servers/prompts.mdx +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/servers/proxy.mdx +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/servers/resources.mdx +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/servers/sampling.mdx +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/servers/server.mdx +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/servers/tools.mdx +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/snippets/local-focus.mdx +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/snippets/version-badge.mdx +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/snippets/youtube-embed.mdx +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/tutorials/create-mcp-server.mdx +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/tutorials/mcp.mdx +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/tutorials/rest-api.mdx +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/docs/updates.mdx +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/examples/atproto_mcp/README.md +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/examples/atproto_mcp/demo.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/examples/atproto_mcp/pyproject.toml +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/examples/atproto_mcp/src/atproto_mcp/__init__.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/examples/atproto_mcp/src/atproto_mcp/__main__.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/examples/atproto_mcp/src/atproto_mcp/_atproto/__init__.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/examples/atproto_mcp/src/atproto_mcp/_atproto/_client.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/examples/atproto_mcp/src/atproto_mcp/_atproto/_posts.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/examples/atproto_mcp/src/atproto_mcp/_atproto/_profile.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/examples/atproto_mcp/src/atproto_mcp/_atproto/_read.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/examples/atproto_mcp/src/atproto_mcp/_atproto/_social.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/examples/atproto_mcp/src/atproto_mcp/py.typed +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/examples/atproto_mcp/src/atproto_mcp/server.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/examples/atproto_mcp/src/atproto_mcp/settings.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/examples/atproto_mcp/src/atproto_mcp/types.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/examples/complex_inputs.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/examples/config_server.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/examples/desktop.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/examples/echo.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/examples/get_file.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/examples/in_memory_proxy_example.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/examples/memory.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/examples/mount_example.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/examples/sampling.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/examples/screenshot.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/examples/serializer.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/examples/simple_echo.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/examples/smart_home/README.md +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/examples/smart_home/pyproject.toml +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/examples/smart_home/src/smart_home/__init__.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/examples/smart_home/src/smart_home/__main__.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/examples/smart_home/src/smart_home/hub.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/examples/smart_home/src/smart_home/lights/__init__.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/examples/smart_home/src/smart_home/lights/hue_utils.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/examples/smart_home/src/smart_home/lights/server.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/examples/smart_home/src/smart_home/py.typed +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/examples/smart_home/src/smart_home/settings.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/examples/smart_home/uv.lock +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/examples/tags_example.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/examples/text_me.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/justfile +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/pyproject.toml +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/__init__.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/cli/__init__.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/cli/claude.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/cli/install/__init__.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/client/__init__.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/client/auth/__init__.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/client/auth/bearer.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/client/auth/oauth.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/client/client.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/client/elicitation.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/client/logging.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/client/messages.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/client/oauth_callback.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/client/progress.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/client/roots.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/client/sampling.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/client/transports.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/contrib/README.md +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/contrib/bulk_tool_caller/README.md +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/contrib/bulk_tool_caller/__init__.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/contrib/bulk_tool_caller/bulk_tool_caller.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/contrib/bulk_tool_caller/example.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/contrib/component_manager/README.md +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/contrib/component_manager/__init__.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/contrib/component_manager/component_manager.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/contrib/component_manager/component_service.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/contrib/component_manager/example.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/contrib/mcp_mixin/README.md +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/contrib/mcp_mixin/__init__.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/contrib/mcp_mixin/example.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/contrib/mcp_mixin/mcp_mixin.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/exceptions.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/experimental/server/openapi/README.md +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/experimental/server/openapi/__init__.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/experimental/server/openapi/components.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/experimental/server/openapi/routing.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/experimental/server/openapi/server.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/experimental/utilities/openapi/README.md +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/experimental/utilities/openapi/__init__.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/experimental/utilities/openapi/director.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/experimental/utilities/openapi/formatters.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/experimental/utilities/openapi/json_schema_converter.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/experimental/utilities/openapi/models.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/experimental/utilities/openapi/parser.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/experimental/utilities/openapi/schemas.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/mcp_config.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/prompts/__init__.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/prompts/prompt.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/prompts/prompt_manager.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/py.typed +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/resources/__init__.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/resources/resource.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/resources/resource_manager.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/resources/template.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/resources/types.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/server/__init__.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/server/auth/providers/__init__.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/server/auth/providers/bearer.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/server/auth/providers/in_memory.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/server/auth/registry.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/server/context.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/server/dependencies.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/server/elicitation.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/server/low_level.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/server/middleware/__init__.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/server/middleware/error_handling.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/server/middleware/logging.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/server/middleware/middleware.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/server/middleware/rate_limiting.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/server/middleware/timing.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/server/openapi.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/tools/__init__.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/tools/tool.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/tools/tool_manager.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/tools/tool_transform.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/utilities/__init__.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/utilities/cli.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/utilities/exceptions.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/utilities/http.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/utilities/json_schema.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/utilities/json_schema_type.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/utilities/logging.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/utilities/mcp_config.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/src/fastmcp/utilities/tests.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/__init__.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/cli/__init__.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/cli/test_cli.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/cli/test_install.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/cli/test_run_with_uv.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/cli/test_shared.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/client/__init__.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/client/auth/__init__.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/client/auth/test_oauth_client.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/client/test_client.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/client/test_elicitation.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/client/test_logs.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/client/test_notifications.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/client/test_openapi_experimental.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/client/test_openapi_legacy.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/client/test_progress.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/client/test_roots.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/client/test_sampling.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/client/test_sse.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/client/test_stdio.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/client/test_streamable_http.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/client/transports/__init__.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/client/transports/test_uv_transport.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/conftest.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/contrib/__init__.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/contrib/test_bulk_tool_caller.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/contrib/test_component_manager.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/contrib/test_mcp_mixin.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/deprecated/__init__.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/deprecated/test_bearer_auth_provider.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/deprecated/test_deprecated.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/deprecated/test_mount_import_arg_order.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/deprecated/test_mount_separators.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/deprecated/test_proxy_client.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/deprecated/test_resource_prefixes.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/deprecated/test_route_type_ignore.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/experimental/__init__.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/experimental/server/__init__.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/experimental/server/openapi/__init__.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/experimental/server/openapi/test_comprehensive.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/experimental/server/openapi/test_deepobject_style.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/experimental/server/openapi/test_end_to_end_compatibility.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/experimental/server/openapi/test_openapi_features.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/experimental/server/openapi/test_parameter_collisions.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/experimental/server/openapi/test_performance_comparison.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/experimental/server/openapi/test_server.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/experimental/server/test_openapi_performance.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/experimental/utilities/__init__.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/experimental/utilities/openapi/__init__.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/experimental/utilities/openapi/conftest.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/experimental/utilities/openapi/test_director.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/experimental/utilities/openapi/test_legacy_compatibility.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/experimental/utilities/openapi/test_models.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/experimental/utilities/openapi/test_nullable_fields.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/experimental/utilities/openapi/test_parser.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/experimental/utilities/openapi/test_schemas.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/integration_tests/__init__.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/integration_tests/conftest.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/integration_tests/test_github_mcp_remote.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/prompts/__init__.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/prompts/test_prompt.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/prompts/test_prompt_manager.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/resources/__init__.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/resources/test_file_resources.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/resources/test_function_resources.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/resources/test_resource_manager.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/resources/test_resource_template.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/resources/test_resource_template_meta.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/resources/test_resources.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/server/__init__.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/server/auth/test_jwt_provider.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/server/auth/test_static_token_verifier.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/server/auth/test_workos.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/server/http/__init__.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/server/http/test_bearer_auth_backend.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/server/http/test_custom_routes.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/server/http/test_http_auth_middleware.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/server/http/test_http_dependencies.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/server/http/test_http_middleware.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/server/middleware/__init__.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/server/middleware/test_error_handling.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/server/middleware/test_logging.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/server/middleware/test_middleware.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/server/middleware/test_rate_limiting.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/server/middleware/test_timing.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/server/openapi/__init__.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/server/openapi/conftest.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/server/openapi/test_advanced_behavior.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/server/openapi/test_basic_functionality.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/server/openapi/test_configuration.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/server/openapi/test_deepobject_style.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/server/openapi/test_description_propagation.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/server/openapi/test_explode_integration.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/server/openapi/test_openapi_compatibility.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/server/openapi/test_openapi_path_parameters.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/server/openapi/test_optional_parameters.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/server/openapi/test_parameter_collisions.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/server/openapi/test_route_map_fn.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/server/proxy/__init__.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/server/proxy/test_proxy_client.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/server/proxy/test_stateful_proxy_client.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/server/test_app_state.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/server/test_auth_integration.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/server/test_context.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/server/test_experimental_openapi_feature_flag.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/server/test_file_server.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/server/test_import_server.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/server/test_logging.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/server/test_resource_prefix_formats.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/server/test_run_server.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/server/test_server.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/server/test_server_interactions.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/server/test_tool_annotations.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/server/test_tool_exclude_args.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/server/test_tool_transformation.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/test_examples.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/test_mcp_config.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/tools/__init__.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/tools/test_tool.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/tools/test_tool_future_annotations.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/tools/test_tool_manager.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/tools/test_tool_transform.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/utilities/__init__.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/utilities/openapi/__init__.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/utilities/openapi/conftest.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/utilities/openapi/test_nullable_fields.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/utilities/openapi/test_openapi.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/utilities/openapi/test_openapi_advanced.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/utilities/openapi/test_openapi_fastapi.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/utilities/openapi/test_openapi_output_schemas.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/utilities/test_json_schema.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/utilities/test_json_schema_type.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/utilities/test_logging.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/utilities/test_tests.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/tests/utilities/test_types.py +0 -0
- {fastmcp-2.11.0 → fastmcp-2.11.2}/uv.lock +0 -0
|
@@ -2,6 +2,111 @@
|
|
|
2
2
|
icon: "list-check"
|
|
3
3
|
---
|
|
4
4
|
|
|
5
|
+
<Update label="v2.11.0" description="2025-08-01">
|
|
6
|
+
|
|
7
|
+
## [v2.11.0: Auth to a Good Start](https://github.com/jlowin/fastmcp/releases/tag/v2.11.0)
|
|
8
|
+
|
|
9
|
+
FastMCP 2.11 doubles down on what developers need most: speed and simplicity. This massive release delivers significant performance improvements and a dramatically better developer experience.
|
|
10
|
+
|
|
11
|
+
🔐 **Enterprise-Ready Authentication** brings comprehensive OAuth 2.1 support with WorkOS's AuthKit integration. The new AuthProvider interface leverages MCP's support for separate resource and authorization servers, handling API keys and remote authentication with Dynamic Client Registration. AuthKit integration means you can plug into existing enterprise identity systems without rebuilding your auth stack, setting the stage for plug-and-play auth that doesn't require users to become security experts overnight.
|
|
12
|
+
|
|
13
|
+
⚡ The **Experimental OpenAPI Parser** delivers dramatic performance improvements through single-pass schema processing and optimized memory usage. OpenAPI integrations are now significantly faster, with cleaner, more maintainable code. _(Note: the experimental parser is disabled by default, set `FASTMCPEXPERIMENTALENABLENEWOPENAPIPARSER=1` to enable it. A message will be shown to all users on the legacy parser encouraging them to try the new one before it becomes the default.)_
|
|
14
|
+
|
|
15
|
+
🧠 **Context State Management** finally gives you persistent state across tool calls with a simple dict interface, while enhanced meta support lets you expose rich component metadata to clients. Combined with improved type annotations, string-based argument descriptions, and UV transport support, this release makes FastMCP feel more intuitive than ever.
|
|
16
|
+
|
|
17
|
+
This release represents a TON of community contributions and sets the foundation for even more ambitious features ahead.
|
|
18
|
+
|
|
19
|
+
## What's Changed
|
|
20
|
+
### New Features 🎉
|
|
21
|
+
* Introduce experimental OpenAPI parser with improved performance and maintainability by [@jlowin](https://github.com/jlowin) in [#1209](https://github.com/jlowin/fastmcp/pull/1209)
|
|
22
|
+
* Add state dict to Context (#1118) by [@mukulmurthy](https://github.com/mukulmurthy) in [#1160](https://github.com/jlowin/fastmcp/pull/1160)
|
|
23
|
+
* Expose FastMCP tags to clients via component `meta` dict by [@jlowin](https://github.com/jlowin) in [#1281](https://github.com/jlowin/fastmcp/pull/1281)
|
|
24
|
+
* Add _fastmcp meta namespace by [@jlowin](https://github.com/jlowin) in [#1290](https://github.com/jlowin/fastmcp/pull/1290)
|
|
25
|
+
* Add TokenVerifier protocol support alongside existing OAuthProvider authentication by [@jlowin](https://github.com/jlowin) in [#1297](https://github.com/jlowin/fastmcp/pull/1297)
|
|
26
|
+
* Add comprehensive OAuth 2.1 authentication system with WorkOS integration by [@jlowin](https://github.com/jlowin) in [#1327](https://github.com/jlowin/fastmcp/pull/1327)
|
|
27
|
+
### Enhancements 🔧
|
|
28
|
+
* [🐶] Transform MCP Server Tools by [@strawgate](https://github.com/strawgate) in [#1132](https://github.com/jlowin/fastmcp/pull/1132)
|
|
29
|
+
* Add --python, --project, and --with-requirements options to CLI commands by [@jlowin](https://github.com/jlowin) in [#1190](https://github.com/jlowin/fastmcp/pull/1190)
|
|
30
|
+
* Support `fastmcp run mcp.json` by [@strawgate](https://github.com/strawgate) in [#1138](https://github.com/jlowin/fastmcp/pull/1138)
|
|
31
|
+
* Support from __future__ import annotations by [@jlowin](https://github.com/jlowin) in [#1199](https://github.com/jlowin/fastmcp/pull/1199)
|
|
32
|
+
* Optimize OpenAPI parser performance with single-pass schema processing by [@jlowin](https://github.com/jlowin) in [#1214](https://github.com/jlowin/fastmcp/pull/1214)
|
|
33
|
+
* Log tool name on transform validation error by [@strawgate](https://github.com/strawgate) in [#1238](https://github.com/jlowin/fastmcp/pull/1238)
|
|
34
|
+
* Refactor `get_http_request` and `context.session_id` by [@hopeful0](https://github.com/hopeful0) in [#1242](https://github.com/jlowin/fastmcp/pull/1242)
|
|
35
|
+
* Support creating tool argument descriptions from string annotations by [@jlowin](https://github.com/jlowin) in [#1255](https://github.com/jlowin/fastmcp/pull/1255)
|
|
36
|
+
* feat: Add Annotations support for resources and resource templates by [@chughtapan](https://github.com/chughtapan) in [#1260](https://github.com/jlowin/fastmcp/pull/1260)
|
|
37
|
+
* Add UV Transport by [@strawgate](https://github.com/strawgate) in [#1270](https://github.com/jlowin/fastmcp/pull/1270)
|
|
38
|
+
* Improve OpenAPI-to-JSONSchema conversion utilities by [@jlowin](https://github.com/jlowin) in [#1283](https://github.com/jlowin/fastmcp/pull/1283)
|
|
39
|
+
* Ensure proxy components forward meta dicts by [@jlowin](https://github.com/jlowin) in [#1282](https://github.com/jlowin/fastmcp/pull/1282)
|
|
40
|
+
* fix: server argument passing in CLI run command by [@chughtapan](https://github.com/chughtapan) in [#1293](https://github.com/jlowin/fastmcp/pull/1293)
|
|
41
|
+
* Add meta support to tool transformation utilities by [@jlowin](https://github.com/jlowin) in [#1295](https://github.com/jlowin/fastmcp/pull/1295)
|
|
42
|
+
* feat: Allow Resource Metadata URL as field in OAuthProvider by [@dacamposol](https://github.com/dacamposol) in [#1287](https://github.com/jlowin/fastmcp/pull/1287)
|
|
43
|
+
* Use a simple overwrite instead of a merge for meta by [@jlowin](https://github.com/jlowin) in [#1296](https://github.com/jlowin/fastmcp/pull/1296)
|
|
44
|
+
* Remove unused TimedCache by [@strawgate](https://github.com/strawgate) in [#1303](https://github.com/jlowin/fastmcp/pull/1303)
|
|
45
|
+
* refactor: standardize logging usage across OpenAPI utilities by [@chi2liu](https://github.com/chi2liu) in [#1322](https://github.com/jlowin/fastmcp/pull/1322)
|
|
46
|
+
* perf: optimize OpenAPI parsing by reducing dict copy operations by [@chi2liu](https://github.com/chi2liu) in [#1321](https://github.com/jlowin/fastmcp/pull/1321)
|
|
47
|
+
* Structured client-side logging by [@cjermain](https://github.com/cjermain) in [#1326](https://github.com/jlowin/fastmcp/pull/1326)
|
|
48
|
+
### Fixes 🐞
|
|
49
|
+
* fix: preserve def reference when referenced in allOf / oneOf / anyOf by [@algirdasci](https://github.com/algirdasci) in [#1208](https://github.com/jlowin/fastmcp/pull/1208)
|
|
50
|
+
* fix: add type hint to custom_route decorator by [@zzstoatzz](https://github.com/zzstoatzz) in [#1210](https://github.com/jlowin/fastmcp/pull/1210)
|
|
51
|
+
* chore: typo by [@richardkmichael](https://github.com/richardkmichael) in [#1216](https://github.com/jlowin/fastmcp/pull/1216)
|
|
52
|
+
* fix: handle non-string $ref values in experimental OpenAPI parser by [@jlowin](https://github.com/jlowin) in [#1217](https://github.com/jlowin/fastmcp/pull/1217)
|
|
53
|
+
* Skip repeated type conversion and validation in proxy client elicitation handler by [@chughtapan](https://github.com/chughtapan) in [#1222](https://github.com/jlowin/fastmcp/pull/1222)
|
|
54
|
+
* Ensure default fields are not marked nullable by [@jlowin](https://github.com/jlowin) in [#1224](https://github.com/jlowin/fastmcp/pull/1224)
|
|
55
|
+
* Fix stateful proxy client mixing in multi-proxies sessions by [@hopeful0](https://github.com/hopeful0) in [#1245](https://github.com/jlowin/fastmcp/pull/1245)
|
|
56
|
+
* Fix invalid async context manager usage in proxy documentation by [@zzstoatzz](https://github.com/zzstoatzz) in [#1246](https://github.com/jlowin/fastmcp/pull/1246)
|
|
57
|
+
* fix: experimental FastMCPOpenAPI server lost headers in request when __init__(client with headers) by [@itaru2622](https://github.com/itaru2622) in [#1254](https://github.com/jlowin/fastmcp/pull/1254)
|
|
58
|
+
* Fix typing, add tests for tool call middleware by [@jlowin](https://github.com/jlowin) in [#1269](https://github.com/jlowin/fastmcp/pull/1269)
|
|
59
|
+
* Fix: prune hidden parameter defs by [@muhammadkhalid-03](https://github.com/muhammadkhalid-03) in [#1257](https://github.com/jlowin/fastmcp/pull/1257)
|
|
60
|
+
* Fix nullable field handling in OpenAPI to JSON Schema conversion by [@jlowin](https://github.com/jlowin) in [#1279](https://github.com/jlowin/fastmcp/pull/1279)
|
|
61
|
+
* Ensure fastmcp run supports v1 servers by [@jlowin](https://github.com/jlowin) in [#1332](https://github.com/jlowin/fastmcp/pull/1332)
|
|
62
|
+
### Breaking Changes 🛫
|
|
63
|
+
* Change server flag to --name by [@jlowin](https://github.com/jlowin) in [#1248](https://github.com/jlowin/fastmcp/pull/1248)
|
|
64
|
+
### Docs 📚
|
|
65
|
+
* Remove unused import from FastAPI integration documentation by [@mariotaddeucci](https://github.com/mariotaddeucci) in [#1194](https://github.com/jlowin/fastmcp/pull/1194)
|
|
66
|
+
* Update fastapi docs by [@jlowin](https://github.com/jlowin) in [#1198](https://github.com/jlowin/fastmcp/pull/1198)
|
|
67
|
+
* Add docs for context state management by [@jlowin](https://github.com/jlowin) in [#1227](https://github.com/jlowin/fastmcp/pull/1227)
|
|
68
|
+
* Permit.io integration docs by [@orweis](https://github.com/orweis) in [#1226](https://github.com/jlowin/fastmcp/pull/1226)
|
|
69
|
+
* Update docs to reflect sync tools by [@jlowin](https://github.com/jlowin) in [#1234](https://github.com/jlowin/fastmcp/pull/1234)
|
|
70
|
+
* Update changelog.mdx by [@jlowin](https://github.com/jlowin) in [#1235](https://github.com/jlowin/fastmcp/pull/1235)
|
|
71
|
+
* Update SDK docs by [@jlowin](https://github.com/jlowin) in [#1236](https://github.com/jlowin/fastmcp/pull/1236)
|
|
72
|
+
* Update --name flag documentation for Cursor/Claude by [@adam-conway](https://github.com/adam-conway) in [#1239](https://github.com/jlowin/fastmcp/pull/1239)
|
|
73
|
+
* Add annotations docs by [@jlowin](https://github.com/jlowin) in [#1268](https://github.com/jlowin/fastmcp/pull/1268)
|
|
74
|
+
* Update openapi/fastapi URLs README.md by [@jbn](https://github.com/jbn) in [#1278](https://github.com/jlowin/fastmcp/pull/1278)
|
|
75
|
+
* Add 2.11 version badge for state management by [@jlowin](https://github.com/jlowin) in [#1289](https://github.com/jlowin/fastmcp/pull/1289)
|
|
76
|
+
* Add meta parameter support to tools, resources, templates, and prompts decorators by [@jlowin](https://github.com/jlowin) in [#1294](https://github.com/jlowin/fastmcp/pull/1294)
|
|
77
|
+
* docs: update get_state and set_state references by [@Maxi91f](https://github.com/Maxi91f) in [#1306](https://github.com/jlowin/fastmcp/pull/1306)
|
|
78
|
+
* Add unit tests and docs for denying tool calls with middleware by [@jlowin](https://github.com/jlowin) in [#1333](https://github.com/jlowin/fastmcp/pull/1333)
|
|
79
|
+
* Remove reference to stacked decorators by [@jlowin](https://github.com/jlowin) in [#1334](https://github.com/jlowin/fastmcp/pull/1334)
|
|
80
|
+
* Eunomia authorization server can run embedded within the MCP server by [@tommitt](https://github.com/tommitt) in [#1317](https://github.com/jlowin/fastmcp/pull/1317)
|
|
81
|
+
### Other Changes 🦾
|
|
82
|
+
* Update README.md by [@jlowin](https://github.com/jlowin) in [#1230](https://github.com/jlowin/fastmcp/pull/1230)
|
|
83
|
+
* Logcapture addition to test_server file by [@Sourav-Tripathy](https://github.com/Sourav-Tripathy) in [#1229](https://github.com/jlowin/fastmcp/pull/1229)
|
|
84
|
+
* Add tests for headers with both legacy and experimental openapi parser by [@jlowin](https://github.com/jlowin) in [#1259](https://github.com/jlowin/fastmcp/pull/1259)
|
|
85
|
+
* Small clean-up from MCP Tool Transform PR by [@strawgate](https://github.com/strawgate) in [#1267](https://github.com/jlowin/fastmcp/pull/1267)
|
|
86
|
+
* Add test for proxy tags visibility by [@jlowin](https://github.com/jlowin) in [#1302](https://github.com/jlowin/fastmcp/pull/1302)
|
|
87
|
+
* Add unit test for sampling with image messages by [@jlowin](https://github.com/jlowin) in [#1329](https://github.com/jlowin/fastmcp/pull/1329)
|
|
88
|
+
* Remove redundant resource_metadata_url assignment by [@jlowin](https://github.com/jlowin) in [#1328](https://github.com/jlowin/fastmcp/pull/1328)
|
|
89
|
+
* Update bug.yml by [@jlowin](https://github.com/jlowin) in [#1331](https://github.com/jlowin/fastmcp/pull/1331)
|
|
90
|
+
* Ensure validation errors are raised when masked by [@jlowin](https://github.com/jlowin) in [#1330](https://github.com/jlowin/fastmcp/pull/1330)
|
|
91
|
+
|
|
92
|
+
## New Contributors
|
|
93
|
+
* [@mariotaddeucci](https://github.com/mariotaddeucci) made their first contribution in [#1194](https://github.com/jlowin/fastmcp/pull/1194)
|
|
94
|
+
* [@algirdasci](https://github.com/algirdasci) made their first contribution in [#1208](https://github.com/jlowin/fastmcp/pull/1208)
|
|
95
|
+
* [@chughtapan](https://github.com/chughtapan) made their first contribution in [#1222](https://github.com/jlowin/fastmcp/pull/1222)
|
|
96
|
+
* [@mukulmurthy](https://github.com/mukulmurthy) made their first contribution in [#1160](https://github.com/jlowin/fastmcp/pull/1160)
|
|
97
|
+
* [@orweis](https://github.com/orweis) made their first contribution in [#1226](https://github.com/jlowin/fastmcp/pull/1226)
|
|
98
|
+
* [@Sourav-Tripathy](https://github.com/Sourav-Tripathy) made their first contribution in [#1229](https://github.com/jlowin/fastmcp/pull/1229)
|
|
99
|
+
* [@adam-conway](https://github.com/adam-conway) made their first contribution in [#1239](https://github.com/jlowin/fastmcp/pull/1239)
|
|
100
|
+
* [@muhammadkhalid-03](https://github.com/muhammadkhalid-03) made their first contribution in [#1257](https://github.com/jlowin/fastmcp/pull/1257)
|
|
101
|
+
* [@jbn](https://github.com/jbn) made their first contribution in [#1278](https://github.com/jlowin/fastmcp/pull/1278)
|
|
102
|
+
* [@dacamposol](https://github.com/dacamposol) made their first contribution in [#1287](https://github.com/jlowin/fastmcp/pull/1287)
|
|
103
|
+
* [@chi2liu](https://github.com/chi2liu) made their first contribution in [#1322](https://github.com/jlowin/fastmcp/pull/1322)
|
|
104
|
+
* [@cjermain](https://github.com/cjermain) made their first contribution in [#1326](https://github.com/jlowin/fastmcp/pull/1326)
|
|
105
|
+
|
|
106
|
+
**Full Changelog**: [v2.10.6...v2.11.0](https://github.com/jlowin/fastmcp/compare/v2.10.6...v2.11.0)
|
|
107
|
+
|
|
108
|
+
</Update>
|
|
109
|
+
|
|
5
110
|
<Update label="v2.10.6" description="2025-07-19">
|
|
6
111
|
|
|
7
112
|
## [v2.10.6: Hymn for the Weekend](https://github.com/jlowin/fastmcp/releases/tag/v2.10.6)
|
|
@@ -95,8 +95,8 @@
|
|
|
95
95
|
"icon": "shield-check",
|
|
96
96
|
"pages": [
|
|
97
97
|
"servers/auth/authentication",
|
|
98
|
+
"servers/auth/remote-oauth",
|
|
98
99
|
"servers/auth/token-verification",
|
|
99
|
-
"servers/auth/remote-authentication",
|
|
100
100
|
"servers/auth/full-oauth-server"
|
|
101
101
|
]
|
|
102
102
|
}
|
|
@@ -142,6 +142,7 @@
|
|
|
142
142
|
"group": "Integrations",
|
|
143
143
|
"pages": [
|
|
144
144
|
"integrations/anthropic",
|
|
145
|
+
"integrations/authkit",
|
|
145
146
|
"integrations/chatgpt",
|
|
146
147
|
"integrations/claude-code",
|
|
147
148
|
"integrations/claude-desktop",
|
|
@@ -153,8 +154,7 @@
|
|
|
153
154
|
"integrations/openai",
|
|
154
155
|
"integrations/openapi",
|
|
155
156
|
"integrations/permit",
|
|
156
|
-
"integrations/starlette"
|
|
157
|
-
"integrations/authkit"
|
|
157
|
+
"integrations/starlette"
|
|
158
158
|
]
|
|
159
159
|
},
|
|
160
160
|
{
|
|
@@ -275,10 +275,12 @@
|
|
|
275
275
|
"pages": [
|
|
276
276
|
"python-sdk/fastmcp-server-auth-providers-__init__",
|
|
277
277
|
"python-sdk/fastmcp-server-auth-providers-bearer",
|
|
278
|
-
"python-sdk/fastmcp-server-auth-providers-
|
|
279
|
-
"python-sdk/fastmcp-server-auth-providers-
|
|
278
|
+
"python-sdk/fastmcp-server-auth-providers-in_memory",
|
|
279
|
+
"python-sdk/fastmcp-server-auth-providers-jwt",
|
|
280
|
+
"python-sdk/fastmcp-server-auth-providers-workos"
|
|
280
281
|
]
|
|
281
|
-
}
|
|
282
|
+
},
|
|
283
|
+
"python-sdk/fastmcp-server-auth-registry"
|
|
282
284
|
]
|
|
283
285
|
},
|
|
284
286
|
"python-sdk/fastmcp-server-context",
|
|
@@ -315,7 +317,6 @@
|
|
|
315
317
|
"group": "fastmcp.utilities",
|
|
316
318
|
"pages": [
|
|
317
319
|
"python-sdk/fastmcp-utilities-__init__",
|
|
318
|
-
"python-sdk/fastmcp-utilities-cache",
|
|
319
320
|
"python-sdk/fastmcp-utilities-cli",
|
|
320
321
|
"python-sdk/fastmcp-utilities-components",
|
|
321
322
|
"python-sdk/fastmcp-utilities-exceptions",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
title:
|
|
3
|
-
sidebarTitle:
|
|
4
|
-
description: Secure your FastMCP server with WorkOS
|
|
2
|
+
title: AuthKit 🤝 FastMCP
|
|
3
|
+
sidebarTitle: AuthKit
|
|
4
|
+
description: Secure your FastMCP server with AuthKit by WorkOS
|
|
5
5
|
icon: shield-check
|
|
6
6
|
tag: NEW
|
|
7
7
|
---
|
|
@@ -10,20 +10,20 @@ import { VersionBadge } from "/snippets/version-badge.mdx"
|
|
|
10
10
|
|
|
11
11
|
<VersionBadge version="2.11.0" />
|
|
12
12
|
|
|
13
|
-
This guide shows you how to secure your FastMCP server using
|
|
13
|
+
This guide shows you how to secure your FastMCP server using WorkOS's **AuthKit**, a complete authentication and user management solution. This integration uses the [**Remote OAuth**](/servers/auth/remote-oauth) pattern, where AuthKit handles user login and your FastMCP server validates the tokens.
|
|
14
14
|
|
|
15
15
|
|
|
16
16
|
## Configuration
|
|
17
17
|
### Prerequisites
|
|
18
18
|
|
|
19
19
|
Before you begin, you will need:
|
|
20
|
-
1. A **WorkOS Account** and a new **Project**.
|
|
21
|
-
2. An **AuthKit** instance configured within your WorkOS project.
|
|
20
|
+
1. A **[WorkOS Account](https://workos.com/)** and a new **Project**.
|
|
21
|
+
2. An **[AuthKit](https://www.authkit.com/)** instance configured within your WorkOS project.
|
|
22
22
|
3. Your FastMCP server's URL (can be localhost for development, e.g., `http://localhost:8000`).
|
|
23
23
|
|
|
24
24
|
### Step 1: AuthKit Configuration
|
|
25
25
|
|
|
26
|
-
In your WorkOS Dashboard,
|
|
26
|
+
In your WorkOS Dashboard, enable AuthKit and configure the following settings:
|
|
27
27
|
|
|
28
28
|
<Steps>
|
|
29
29
|
<Step title="Enable Dynamic Client Registration">
|
|
@@ -3,7 +3,7 @@ title: ChatGPT 🤝 FastMCP
|
|
|
3
3
|
sidebarTitle: ChatGPT
|
|
4
4
|
description: Connect FastMCP servers to ChatGPT Deep Research
|
|
5
5
|
icon: message-smile
|
|
6
|
-
|
|
6
|
+
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
ChatGPT supports MCP servers through remote HTTP connections, allowing you to extend ChatGPT's capabilities with custom tools and knowledge from your FastMCP servers.
|
|
@@ -3,7 +3,6 @@ title: Eunomia Authorization 🤝 FastMCP
|
|
|
3
3
|
sidebarTitle: Eunomia Auth
|
|
4
4
|
description: Add policy-based authorization to your FastMCP servers with Eunomia
|
|
5
5
|
icon: shield-check
|
|
6
|
-
tag: NEW
|
|
7
6
|
---
|
|
8
7
|
|
|
9
8
|
Add **policy-based authorization** to your FastMCP servers with one-line code addition with the **[Eunomia][eunomia-github] authorization middleware**.
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: Permit.io Authorization 🤝 FastMCP
|
|
3
|
-
sidebarTitle: Permit.io
|
|
3
|
+
sidebarTitle: Permit.io
|
|
4
4
|
description: Add fine-grained authorization to your FastMCP servers with Permit.io
|
|
5
5
|
icon: shield-check
|
|
6
|
-
tag: NEW
|
|
7
6
|
---
|
|
8
7
|
|
|
9
8
|
Add **policy-based authorization** to your FastMCP servers with one-line code addition with the **[Permit.io][permit-github] authorization middleware**.
|
|
@@ -18,15 +18,13 @@ fastmcp --help
|
|
|
18
18
|
|
|
19
19
|
| Command | Purpose | Dependency Management |
|
|
20
20
|
| ------- | ------- | --------------------- |
|
|
21
|
-
| `run` | Run a FastMCP server directly |
|
|
22
|
-
| `dev` | Run a server with the MCP Inspector for testing | Always runs via `uv run` subprocess (never uses your local environment); dependencies must be specified or available in a uv-managed project |
|
|
23
|
-
| `install` | Install a server in MCP client applications | Creates an isolated environment; dependencies must be explicitly specified with `--with` and/or `--with-editable` |
|
|
24
|
-
| `inspect` | Generate a JSON report about a FastMCP server | Uses your current environment; you are responsible for ensuring all dependencies are available |
|
|
21
|
+
| `run` | Run a FastMCP server directly | **Supports:** Local files, factory functions, URLs, MCP configs. **Deps:** Uses your local environment directly. With `--python`, `--with`, `--project`, or `--with-requirements`: Runs via `uv run` subprocess |
|
|
22
|
+
| `dev` | Run a server with the MCP Inspector for testing | **Supports:** Local files only. **Deps:** Always runs via `uv run` subprocess (never uses your local environment); dependencies must be specified or available in a uv-managed project |
|
|
23
|
+
| `install` | Install a server in MCP client applications | **Supports:** Local files only. **Deps:** Creates an isolated environment; dependencies must be explicitly specified with `--with` and/or `--with-editable` |
|
|
24
|
+
| `inspect` | Generate a JSON report about a FastMCP server | **Supports:** Local files only. **Deps:** Uses your current environment; you are responsible for ensuring all dependencies are available |
|
|
25
25
|
| `version` | Display version information | N/A |
|
|
26
26
|
|
|
27
|
-
##
|
|
28
|
-
|
|
29
|
-
### `run`
|
|
27
|
+
## `fastmcp run`
|
|
30
28
|
|
|
31
29
|
Run a FastMCP server directly or proxy a remote server.
|
|
32
30
|
|
|
@@ -38,7 +36,7 @@ fastmcp run server.py
|
|
|
38
36
|
By default, this command runs the server directly in your current Python environment. You are responsible for ensuring all dependencies are available. When using `--python`, `--with`, `--project`, or `--with-requirements` options, it runs the server via `uv run` subprocess instead.
|
|
39
37
|
</Tip>
|
|
40
38
|
|
|
41
|
-
|
|
39
|
+
### Options
|
|
42
40
|
|
|
43
41
|
| Option | Flag | Description |
|
|
44
42
|
| ------ | ---- | ----------- |
|
|
@@ -54,106 +52,125 @@ By default, this command runs the server directly in your current Python environ
|
|
|
54
52
|
| Requirements File | `--with-requirements` | Requirements file to install dependencies from |
|
|
55
53
|
|
|
56
54
|
|
|
57
|
-
|
|
55
|
+
### Entrypoints
|
|
58
56
|
<VersionBadge version="2.3.5" />
|
|
59
57
|
|
|
60
|
-
The
|
|
61
|
-
1. `server.py` - imports the module and looks for a FastMCP object named `mcp`, `server`, or `app`. Errors if no such object is found.
|
|
62
|
-
2. `server.py:custom_name` - imports and uses the specified server object
|
|
63
|
-
3. `http://server-url/path` or `https://server-url/path` - connects to a remote server and creates a proxy
|
|
64
|
-
4. `mcp.json` - runs servers defined in a standard MCP configuration file
|
|
58
|
+
The `fastmcp run` command supports the following entrypoints:
|
|
65
59
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
60
|
+
1. **[Inferred server instance](#inferred-server-instance)**: `server.py` - imports the module and looks for a FastMCP object named `mcp`, `server`, or `app`. Errors if no such object is found.
|
|
61
|
+
2. **[Explicit server object](#explicit-server-object)**: `server.py:custom_name` - imports and uses the specified server object
|
|
62
|
+
3. **[Factory function](#factory-function)**: `server.py:create_server` - calls the specified function (sync or async) to create a server instance
|
|
63
|
+
4. **[Remote server proxy](#remote-server-proxy)**: `https://example.com/mcp-server` - connects to a remote server and creates a **local proxy server**
|
|
64
|
+
5. **MCP configuration file**: `mcp.json` - runs servers defined in a standard MCP configuration file
|
|
69
65
|
|
|
70
|
-
|
|
66
|
+
<Warning>
|
|
67
|
+
Note: When using `fastmcp run` with a local file, it **completely ignores** the `if __name__ == "__main__"` block. This means:
|
|
68
|
+
- Any setup code in `__main__` will NOT run
|
|
69
|
+
- Server configuration in `__main__` is bypassed
|
|
70
|
+
- `fastmcp run` finds your server object/factory and runs it with its own transport settings
|
|
71
71
|
|
|
72
|
-
|
|
73
|
-
|
|
72
|
+
If you need setup code to run, use the **factory pattern** instead.
|
|
73
|
+
</Warning>
|
|
74
|
+
|
|
75
|
+
#### Inferred Server Instance
|
|
76
|
+
|
|
77
|
+
If you provide a path to a file, `fastmcp run` will load the file and look for a FastMCP server instance stored as a variable named `mcp`, `server`, or `app`. If no such object is found, it will raise an error.
|
|
78
|
+
|
|
79
|
+
For example, if you have a file called `server.py` with the following content:
|
|
80
|
+
|
|
81
|
+
```python server.py
|
|
74
82
|
from fastmcp import FastMCP
|
|
75
83
|
|
|
76
84
|
mcp = FastMCP("MyServer")
|
|
85
|
+
```
|
|
77
86
|
|
|
78
|
-
|
|
79
|
-
def hello(name: str) -> str:
|
|
80
|
-
return f"Hello, {name}!"
|
|
87
|
+
You can run it with:
|
|
81
88
|
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
mcp.run(transport="stdio")
|
|
89
|
+
```bash
|
|
90
|
+
fastmcp run server.py
|
|
85
91
|
```
|
|
86
92
|
|
|
87
|
-
|
|
93
|
+
#### Explicit Server Object
|
|
94
|
+
|
|
95
|
+
If your server is stored as a variable with a custom name, or you want to be explicit about which server to run, you can use the following syntax to load a specific server object:
|
|
88
96
|
|
|
89
97
|
```bash
|
|
90
|
-
fastmcp run server.py
|
|
98
|
+
fastmcp run server.py:custom_name
|
|
91
99
|
```
|
|
92
100
|
|
|
93
|
-
|
|
101
|
+
For example, if you have a file called `server.py` with the following content:
|
|
102
|
+
|
|
103
|
+
```python
|
|
104
|
+
from fastmcp import FastMCP
|
|
105
|
+
|
|
106
|
+
my_server = FastMCP("CustomServer")
|
|
107
|
+
|
|
108
|
+
@my_server.tool
|
|
109
|
+
def hello() -> str:
|
|
110
|
+
return "Hello from custom server!"
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
You can run it with:
|
|
94
114
|
|
|
95
115
|
```bash
|
|
96
|
-
|
|
97
|
-
|
|
116
|
+
fastmcp run server.py:custom_name
|
|
117
|
+
```
|
|
98
118
|
|
|
99
|
-
|
|
100
|
-
|
|
119
|
+
#### Factory Function
|
|
120
|
+
<VersionBadge version="2.11.2" />
|
|
101
121
|
|
|
102
|
-
|
|
103
|
-
fastmcp run https://example.com/mcp-server --log-level DEBUG
|
|
122
|
+
Since `fastmcp run` ignores the `if __name__ == "__main__"` block, you can use a factory function to run setup code before your server starts. Factory functions are called without any arguments and must return a FastMCP server instance. Both sync and async factory functions are supported.
|
|
104
123
|
|
|
105
|
-
|
|
106
|
-
fastmcp run server.py --python 3.11
|
|
124
|
+
The syntax for using a factory function is the same as for an explicit server object: `fastmcp run server.py:factory_fn`. FastMCP will automatically detect that you have identified a function rather than a server Instance
|
|
107
125
|
|
|
108
|
-
|
|
109
|
-
fastmcp run server.py --with pandas --with numpy
|
|
126
|
+
For example, if you have a file called `server.py` with the following content:
|
|
110
127
|
|
|
111
|
-
|
|
112
|
-
fastmcp
|
|
128
|
+
```python
|
|
129
|
+
from fastmcp import FastMCP
|
|
113
130
|
|
|
114
|
-
|
|
115
|
-
|
|
131
|
+
async def create_server() -> FastMCP:
|
|
132
|
+
mcp = FastMCP("MyServer")
|
|
133
|
+
|
|
134
|
+
@mcp.tool
|
|
135
|
+
def add(x: int, y: int) -> int:
|
|
136
|
+
return x + y
|
|
137
|
+
|
|
138
|
+
# Setup that runs with fastmcp run
|
|
139
|
+
tool = await mcp.get_tool("add")
|
|
140
|
+
tool.disable()
|
|
141
|
+
|
|
142
|
+
return mcp
|
|
116
143
|
```
|
|
117
144
|
|
|
118
|
-
|
|
145
|
+
You can run it with:
|
|
119
146
|
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
**Example mcp.json:**
|
|
123
|
-
```json
|
|
124
|
-
{
|
|
125
|
-
"mcpServers": {
|
|
126
|
-
"fetch": {
|
|
127
|
-
"command": "uvx",
|
|
128
|
-
"args": [
|
|
129
|
-
"mcp-server-fetch"
|
|
130
|
-
]
|
|
131
|
-
},
|
|
132
|
-
"filesystem": {
|
|
133
|
-
"command": "npx",
|
|
134
|
-
"args": [
|
|
135
|
-
"-y",
|
|
136
|
-
"@modelcontextprotocol/server-filesystem",
|
|
137
|
-
"/Users/username/Documents"
|
|
138
|
-
]
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
}
|
|
147
|
+
```bash
|
|
148
|
+
fastmcp run server.py:create_server
|
|
142
149
|
```
|
|
143
150
|
|
|
144
|
-
|
|
151
|
+
#### Remote Server Proxy
|
|
152
|
+
|
|
153
|
+
FastMCP run can also start a local proxy server that connects to a remote server. This is useful when you want to run a remote server locally for testing or development purposes, or to use with a client that doesn't support direct connections to remote servers.
|
|
154
|
+
|
|
155
|
+
To start a local proxy, you can use the following syntax:
|
|
156
|
+
|
|
145
157
|
```bash
|
|
146
|
-
|
|
147
|
-
|
|
158
|
+
fastmcp run https://example.com/mcp
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
#### MCP Configuration
|
|
162
|
+
|
|
163
|
+
FastMCP can also run servers defined in a standard MCP configuration file. This is useful when you want to run multiple servers from a single file, or when you want to use a client that doesn't support direct connections to remote servers.
|
|
148
164
|
|
|
149
|
-
|
|
150
|
-
fastmcp run mcp.json --transport http --port 8080
|
|
165
|
+
To run a MCP configuration file, you can use the following syntax:
|
|
151
166
|
|
|
152
|
-
|
|
153
|
-
fastmcp run mcp.json
|
|
167
|
+
```bash
|
|
168
|
+
fastmcp run mcp.json
|
|
154
169
|
```
|
|
155
170
|
|
|
156
|
-
|
|
171
|
+
This will run all the servers defined in the file.
|
|
172
|
+
|
|
173
|
+
## `fastmcp dev`
|
|
157
174
|
|
|
158
175
|
Run a MCP server with the [MCP Inspector](https://github.com/modelcontextprotocol/inspector) for testing.
|
|
159
176
|
|
|
@@ -182,7 +199,7 @@ This command does not support HTTP testing. To test a server over Streamable HTT
|
|
|
182
199
|
2. Open the MCP Inspector separately and connect to your running server
|
|
183
200
|
</Warning>
|
|
184
201
|
|
|
185
|
-
|
|
202
|
+
### Options
|
|
186
203
|
|
|
187
204
|
| Option | Flag | Description |
|
|
188
205
|
| ------ | ---- | ----------- |
|
|
@@ -195,6 +212,18 @@ This command does not support HTTP testing. To test a server over Streamable HTT
|
|
|
195
212
|
| Project Directory | `--project` | Run the command within the given project directory |
|
|
196
213
|
| Requirements File | `--with-requirements` | Requirements file to install dependencies from |
|
|
197
214
|
|
|
215
|
+
### Entrypoints
|
|
216
|
+
|
|
217
|
+
The `dev` command supports local FastMCP server files only:
|
|
218
|
+
|
|
219
|
+
1. **Inferred server instance**: `server.py` - imports the module and looks for a FastMCP object named `mcp`, `server`, or `app`. Errors if no such object is found.
|
|
220
|
+
2. **Explicit server object**: `server.py:custom_name` - imports and uses the specified server object
|
|
221
|
+
3. **Factory function**: `server.py:create_server` - calls the specified function (sync or async) to create a server instance
|
|
222
|
+
|
|
223
|
+
<Warning>
|
|
224
|
+
The `dev` command **only supports local files** - no URLs, remote servers, or MCP configuration files.
|
|
225
|
+
</Warning>
|
|
226
|
+
|
|
198
227
|
**Examples**
|
|
199
228
|
|
|
200
229
|
```bash
|
|
@@ -211,7 +240,7 @@ fastmcp dev server.py --with-requirements requirements.txt
|
|
|
211
240
|
fastmcp dev server.py --project /path/to/project
|
|
212
241
|
```
|
|
213
242
|
|
|
214
|
-
|
|
243
|
+
## `fastmcp install`
|
|
215
244
|
<VersionBadge version="2.10.3" />
|
|
216
245
|
|
|
217
246
|
Install a MCP server in MCP client applications. FastMCP currently supports the following clients:
|
|
@@ -242,14 +271,7 @@ Note that for security reasons, MCP clients usually run every server in a comple
|
|
|
242
271
|
**FastMCP `install` commands focus on local server files with STDIO transport.** For remote servers running with HTTP or SSE transport, use your client's native configuration - FastMCP's value is simplifying the complex local setup with dependencies and `uv` commands.
|
|
243
272
|
</Tip>
|
|
244
273
|
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
The `install` command supports the same `file.py:object` notation as the `run` command:
|
|
248
|
-
|
|
249
|
-
1. `server.py` - imports the module and looks for a FastMCP object named `mcp`, `server`, or `app`. Errors if no such object is found.
|
|
250
|
-
2. `server.py:custom_name` - imports and uses the specified server object
|
|
251
|
-
|
|
252
|
-
#### Options
|
|
274
|
+
### Options
|
|
253
275
|
|
|
254
276
|
| Option | Flag | Description |
|
|
255
277
|
| ------ | ---- | ----------- |
|
|
@@ -262,6 +284,22 @@ The `install` command supports the same `file.py:object` notation as the `run` c
|
|
|
262
284
|
| Project Directory | `--project` | Run the command within the given project directory |
|
|
263
285
|
| Requirements File | `--with-requirements` | Requirements file to install dependencies from |
|
|
264
286
|
|
|
287
|
+
### Entrypoints
|
|
288
|
+
|
|
289
|
+
The `install` command supports local FastMCP server files only:
|
|
290
|
+
|
|
291
|
+
1. **Inferred server instance**: `server.py` - imports the module and looks for a FastMCP object named `mcp`, `server`, or `app`. Errors if no such object is found.
|
|
292
|
+
2. **Explicit server object**: `server.py:custom_name` - imports and uses the specified server object
|
|
293
|
+
3. **Factory function**: `server.py:create_server` - calls the specified function (sync or async) to create a server instance
|
|
294
|
+
|
|
295
|
+
<Note>
|
|
296
|
+
Factory functions are particularly useful for install commands since they allow setup code to run that would otherwise be ignored when the MCP client runs your server.
|
|
297
|
+
</Note>
|
|
298
|
+
|
|
299
|
+
<Warning>
|
|
300
|
+
The `install` command **only supports local files** - no URLs, remote servers, or MCP configuration files. For remote servers, use your MCP client's native configuration.
|
|
301
|
+
</Warning>
|
|
302
|
+
|
|
265
303
|
**Examples**
|
|
266
304
|
|
|
267
305
|
```bash
|
|
@@ -299,7 +337,7 @@ fastmcp install mcp-json server.py --name "My Server" --with pandas
|
|
|
299
337
|
fastmcp install mcp-json server.py --copy
|
|
300
338
|
```
|
|
301
339
|
|
|
302
|
-
|
|
340
|
+
### MCP JSON Generation
|
|
303
341
|
|
|
304
342
|
The `mcp-json` subcommand generates standard MCP JSON configuration that can be used with any MCP-compatible client. This is useful when:
|
|
305
343
|
|
|
@@ -339,7 +377,7 @@ To use this configuration with your MCP client, you'll typically need to add it
|
|
|
339
377
|
| ------ | ---- | ----------- |
|
|
340
378
|
| Copy to Clipboard | `--copy` | Copy configuration to clipboard instead of printing to stdout |
|
|
341
379
|
|
|
342
|
-
|
|
380
|
+
## `fastmcp inspect`
|
|
343
381
|
|
|
344
382
|
<VersionBadge version="2.9.0" />
|
|
345
383
|
|
|
@@ -349,7 +387,25 @@ Generate a detailed JSON report about a FastMCP server, including information ab
|
|
|
349
387
|
fastmcp inspect server.py
|
|
350
388
|
```
|
|
351
389
|
|
|
352
|
-
|
|
390
|
+
### Options
|
|
391
|
+
|
|
392
|
+
| Option | Flag | Description |
|
|
393
|
+
| ------ | ---- | ----------- |
|
|
394
|
+
| Output File | `--output`, `-o` | Output file path for the JSON report (default: server-info.json) |
|
|
395
|
+
|
|
396
|
+
### Entrypoints
|
|
397
|
+
|
|
398
|
+
The `inspect` command supports local FastMCP server files only:
|
|
399
|
+
|
|
400
|
+
1. **Inferred server instance**: `server.py` - imports the module and looks for a FastMCP object named `mcp`, `server`, or `app`. Errors if no such object is found.
|
|
401
|
+
2. **Explicit server object**: `server.py:custom_name` - imports and uses the specified server object
|
|
402
|
+
3. **Factory function**: `server.py:create_server` - calls the specified function (sync or async) to create a server instance
|
|
403
|
+
|
|
404
|
+
<Warning>
|
|
405
|
+
The `inspect` command **only supports local files** - no URLs, remote servers, or MCP configuration files.
|
|
406
|
+
</Warning>
|
|
407
|
+
|
|
408
|
+
**Examples**
|
|
353
409
|
|
|
354
410
|
```bash
|
|
355
411
|
# Auto-detect server object
|
|
@@ -362,7 +418,7 @@ fastmcp inspect server.py:my_server
|
|
|
362
418
|
fastmcp inspect server.py --output analysis.json
|
|
363
419
|
```
|
|
364
420
|
|
|
365
|
-
|
|
421
|
+
## `fastmcp version`
|
|
366
422
|
|
|
367
423
|
Display version information about FastMCP and related components.
|
|
368
424
|
|
|
@@ -370,7 +426,7 @@ Display version information about FastMCP and related components.
|
|
|
370
426
|
fastmcp version
|
|
371
427
|
```
|
|
372
428
|
|
|
373
|
-
|
|
429
|
+
### Options
|
|
374
430
|
|
|
375
431
|
| Option | Flag | Description |
|
|
376
432
|
| ------ | ---- | ----------- |
|