fastmcp 2.11.1__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.1 → fastmcp-2.11.2}/PKG-INFO +1 -1
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/patterns/cli.mdx +145 -89
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/cli/cli.py +5 -5
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/cli/install/claude_code.py +2 -2
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/cli/install/claude_desktop.py +2 -2
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/cli/install/cursor.py +2 -2
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/cli/install/mcp_json.py +2 -2
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/cli/install/shared.py +2 -2
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/cli/run.py +74 -24
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/server/proxy.py +33 -15
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/server/server.py +9 -6
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/settings.py +4 -7
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/utilities/inspect.py +12 -17
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/cli/test_cursor.py +4 -4
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/cli/test_run.py +11 -11
- {fastmcp-2.11.1 → 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.1 → fastmcp-2.11.2}/tests/server/proxy/test_proxy_server.py +20 -3
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/server/test_mount.py +0 -14
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/utilities/test_inspect.py +23 -19
- {fastmcp-2.11.1 → fastmcp-2.11.2}/.ccignore +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/.cursor/rules/core-mcp-objects.mdc +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/.github/ISSUE_TEMPLATE/bug.yml +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/.github/ISSUE_TEMPLATE/enhancement.yml +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/.github/dependabot.yml +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/.github/labeler.yml +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/.github/release.yml +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/.github/workflows/labeler.yml +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/.github/workflows/publish.yml +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/.github/workflows/run-static.yml +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/.github/workflows/run-tests.yml +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/.gitignore +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/.pre-commit-config.yaml +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/AGENTS.md +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/CLAUDE.md +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/LICENSE +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/README.md +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/README_OPENAPI.md +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/Windows_Notes.md +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/.ccignore +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/.cursor/rules/mintlify.mdc +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/assets/favicon.svg +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/assets/images/tutorial-rest-api-result.png +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/assets/updates/release-2-7.png +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/changelog.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/clients/auth/bearer.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/clients/auth/oauth.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/clients/client.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/clients/elicitation.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/clients/logging.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/clients/messages.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/clients/progress.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/clients/prompts.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/clients/resources.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/clients/roots.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/clients/sampling.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/clients/tools.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/clients/transports.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/community/README.md +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/community/showcase.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/css/banner.css +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/css/python-sdk.css +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/css/style.css +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/css/version-badge.css +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/deployment/running-server.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/docs.json +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/getting-started/installation.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/getting-started/quickstart.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/getting-started/welcome.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/integrations/anthropic.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/integrations/authkit.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/integrations/chatgpt.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/integrations/claude-code.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/integrations/claude-desktop.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/integrations/cursor-install-mcp.png +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/integrations/cursor.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/integrations/eunomia-authorization.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/integrations/fastapi.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/integrations/gemini.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/integrations/images/authkit/enable_dcr.png +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/integrations/images/permit/abac_condition_example.png +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/integrations/images/permit/abac_policy_example.png +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/integrations/images/permit/policy_mapping.png +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/integrations/images/permit/role_assignement.png +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/integrations/mcp-json-configuration.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/integrations/openai.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/integrations/openapi.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/integrations/permit.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/integrations/starlette.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/patterns/contrib.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/patterns/decorating-methods.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/patterns/http-requests.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/patterns/testing.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/patterns/tool-transformation.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-cli-__init__.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-cli-claude.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-cli-cli.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-cli-install-__init__.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-cli-install-claude_code.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-cli-install-claude_desktop.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-cli-install-cursor.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-cli-install-mcp_json.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-cli-install-shared.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-cli-run.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-client-__init__.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-client-auth-__init__.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-client-auth-bearer.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-client-auth-oauth.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-client-client.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-client-elicitation.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-client-logging.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-client-messages.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-client-oauth_callback.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-client-progress.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-client-roots.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-client-sampling.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-client-transports.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-exceptions.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-mcp_config.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-prompts-__init__.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-prompts-prompt.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-prompts-prompt_manager.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-resources-__init__.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-resources-resource.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-resources-resource_manager.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-resources-template.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-resources-types.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-server-__init__.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-server-auth-__init__.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-server-auth-auth.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-server-auth-providers-__init__.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-server-auth-providers-bearer.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-server-auth-providers-bearer_env.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-server-auth-providers-in_memory.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-server-auth-providers-jwt.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-server-auth-providers-workos.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-server-auth-registry.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-server-context.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-server-dependencies.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-server-elicitation.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-server-http.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-server-low_level.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-server-middleware-__init__.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-server-middleware-error_handling.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-server-middleware-logging.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-server-middleware-middleware.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-server-middleware-rate_limiting.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-server-middleware-timing.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-server-openapi.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-server-proxy.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-server-server.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-settings.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-tools-__init__.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-tools-tool.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-tools-tool_manager.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-tools-tool_transform.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-utilities-__init__.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-utilities-cli.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-utilities-components.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-utilities-exceptions.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-utilities-http.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-utilities-inspect.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-utilities-json_schema.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-utilities-json_schema_type.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-utilities-logging.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-utilities-mcp_config.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-utilities-openapi.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-utilities-tests.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/python-sdk/fastmcp-utilities-types.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/servers/auth/authentication.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/servers/auth/full-oauth-server.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/servers/auth/remote-oauth.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/servers/auth/token-verification.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/servers/composition.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/servers/context.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/servers/elicitation.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/servers/logging.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/servers/middleware.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/servers/progress.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/servers/prompts.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/servers/proxy.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/servers/resources.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/servers/sampling.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/servers/server.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/servers/tools.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/snippets/local-focus.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/snippets/version-badge.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/snippets/youtube-embed.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/tutorials/create-mcp-server.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/tutorials/mcp.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/tutorials/rest-api.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/docs/updates.mdx +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/examples/atproto_mcp/README.md +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/examples/atproto_mcp/demo.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/examples/atproto_mcp/pyproject.toml +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/examples/atproto_mcp/src/atproto_mcp/__init__.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/examples/atproto_mcp/src/atproto_mcp/__main__.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/examples/atproto_mcp/src/atproto_mcp/_atproto/__init__.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/examples/atproto_mcp/src/atproto_mcp/_atproto/_client.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/examples/atproto_mcp/src/atproto_mcp/_atproto/_posts.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/examples/atproto_mcp/src/atproto_mcp/_atproto/_profile.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/examples/atproto_mcp/src/atproto_mcp/_atproto/_read.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/examples/atproto_mcp/src/atproto_mcp/_atproto/_social.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/examples/atproto_mcp/src/atproto_mcp/py.typed +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/examples/atproto_mcp/src/atproto_mcp/server.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/examples/atproto_mcp/src/atproto_mcp/settings.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/examples/atproto_mcp/src/atproto_mcp/types.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/examples/complex_inputs.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/examples/config_server.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/examples/desktop.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/examples/echo.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/examples/get_file.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/examples/in_memory_proxy_example.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/examples/memory.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/examples/mount_example.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/examples/sampling.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/examples/screenshot.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/examples/serializer.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/examples/simple_echo.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/examples/smart_home/README.md +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/examples/smart_home/pyproject.toml +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/examples/smart_home/src/smart_home/__init__.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/examples/smart_home/src/smart_home/__main__.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/examples/smart_home/src/smart_home/hub.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/examples/smart_home/src/smart_home/lights/__init__.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/examples/smart_home/src/smart_home/lights/hue_utils.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/examples/smart_home/src/smart_home/lights/server.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/examples/smart_home/src/smart_home/py.typed +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/examples/smart_home/src/smart_home/settings.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/examples/smart_home/uv.lock +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/examples/tags_example.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/examples/text_me.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/justfile +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/pyproject.toml +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/__init__.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/cli/__init__.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/cli/claude.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/cli/install/__init__.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/client/__init__.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/client/auth/__init__.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/client/auth/bearer.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/client/auth/oauth.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/client/client.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/client/elicitation.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/client/logging.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/client/messages.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/client/oauth_callback.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/client/progress.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/client/roots.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/client/sampling.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/client/transports.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/contrib/README.md +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/contrib/bulk_tool_caller/README.md +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/contrib/bulk_tool_caller/__init__.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/contrib/bulk_tool_caller/bulk_tool_caller.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/contrib/bulk_tool_caller/example.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/contrib/component_manager/README.md +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/contrib/component_manager/__init__.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/contrib/component_manager/component_manager.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/contrib/component_manager/component_service.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/contrib/component_manager/example.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/contrib/mcp_mixin/README.md +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/contrib/mcp_mixin/__init__.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/contrib/mcp_mixin/example.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/contrib/mcp_mixin/mcp_mixin.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/exceptions.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/experimental/server/openapi/README.md +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/experimental/server/openapi/__init__.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/experimental/server/openapi/components.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/experimental/server/openapi/routing.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/experimental/server/openapi/server.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/experimental/utilities/openapi/README.md +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/experimental/utilities/openapi/__init__.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/experimental/utilities/openapi/director.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/experimental/utilities/openapi/formatters.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/experimental/utilities/openapi/json_schema_converter.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/experimental/utilities/openapi/models.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/experimental/utilities/openapi/parser.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/experimental/utilities/openapi/schemas.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/mcp_config.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/prompts/__init__.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/prompts/prompt.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/prompts/prompt_manager.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/py.typed +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/resources/__init__.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/resources/resource.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/resources/resource_manager.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/resources/template.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/resources/types.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/server/__init__.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/server/auth/__init__.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/server/auth/auth.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/server/auth/providers/__init__.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/server/auth/providers/bearer.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/server/auth/providers/in_memory.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/server/auth/providers/jwt.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/server/auth/providers/workos.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/server/auth/registry.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/server/context.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/server/dependencies.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/server/elicitation.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/server/http.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/server/low_level.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/server/middleware/__init__.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/server/middleware/error_handling.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/server/middleware/logging.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/server/middleware/middleware.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/server/middleware/rate_limiting.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/server/middleware/timing.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/server/openapi.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/tools/__init__.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/tools/tool.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/tools/tool_manager.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/tools/tool_transform.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/utilities/__init__.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/utilities/cli.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/utilities/components.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/utilities/exceptions.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/utilities/http.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/utilities/json_schema.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/utilities/json_schema_type.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/utilities/logging.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/utilities/mcp_config.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/utilities/openapi.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/utilities/tests.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/src/fastmcp/utilities/types.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/__init__.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/cli/__init__.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/cli/test_cli.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/cli/test_install.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/cli/test_run_with_uv.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/cli/test_shared.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/client/__init__.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/client/auth/__init__.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/client/auth/test_oauth_client.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/client/test_client.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/client/test_elicitation.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/client/test_logs.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/client/test_notifications.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/client/test_openapi_experimental.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/client/test_openapi_legacy.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/client/test_progress.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/client/test_roots.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/client/test_sampling.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/client/test_sse.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/client/test_stdio.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/client/test_streamable_http.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/client/transports/__init__.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/client/transports/test_uv_transport.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/conftest.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/contrib/__init__.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/contrib/test_bulk_tool_caller.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/contrib/test_component_manager.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/contrib/test_mcp_mixin.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/deprecated/__init__.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/deprecated/test_bearer_auth_provider.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/deprecated/test_deprecated.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/deprecated/test_mount_import_arg_order.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/deprecated/test_mount_separators.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/deprecated/test_proxy_client.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/deprecated/test_resource_prefixes.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/deprecated/test_route_type_ignore.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/experimental/__init__.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/experimental/server/__init__.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/experimental/server/openapi/__init__.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/experimental/server/openapi/test_comprehensive.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/experimental/server/openapi/test_deepobject_style.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/experimental/server/openapi/test_end_to_end_compatibility.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/experimental/server/openapi/test_openapi_features.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/experimental/server/openapi/test_parameter_collisions.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/experimental/server/openapi/test_performance_comparison.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/experimental/server/openapi/test_server.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/experimental/server/test_openapi_performance.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/experimental/utilities/__init__.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/experimental/utilities/openapi/__init__.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/experimental/utilities/openapi/conftest.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/experimental/utilities/openapi/test_director.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/experimental/utilities/openapi/test_legacy_compatibility.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/experimental/utilities/openapi/test_models.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/experimental/utilities/openapi/test_nullable_fields.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/experimental/utilities/openapi/test_parser.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/experimental/utilities/openapi/test_schemas.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/integration_tests/__init__.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/integration_tests/conftest.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/integration_tests/test_github_mcp_remote.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/prompts/__init__.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/prompts/test_prompt.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/prompts/test_prompt_manager.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/resources/__init__.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/resources/test_file_resources.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/resources/test_function_resources.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/resources/test_resource_manager.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/resources/test_resource_template.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/resources/test_resource_template_meta.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/resources/test_resources.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/server/__init__.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/server/auth/test_jwt_provider.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/server/auth/test_static_token_verifier.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/server/auth/test_workos.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/server/http/__init__.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/server/http/test_bearer_auth_backend.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/server/http/test_custom_routes.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/server/http/test_http_auth_middleware.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/server/http/test_http_dependencies.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/server/http/test_http_middleware.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/server/middleware/__init__.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/server/middleware/test_error_handling.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/server/middleware/test_logging.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/server/middleware/test_middleware.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/server/middleware/test_rate_limiting.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/server/middleware/test_timing.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/server/openapi/__init__.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/server/openapi/conftest.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/server/openapi/test_advanced_behavior.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/server/openapi/test_basic_functionality.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/server/openapi/test_configuration.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/server/openapi/test_deepobject_style.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/server/openapi/test_description_propagation.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/server/openapi/test_explode_integration.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/server/openapi/test_openapi_compatibility.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/server/openapi/test_openapi_path_parameters.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/server/openapi/test_optional_parameters.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/server/openapi/test_parameter_collisions.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/server/openapi/test_route_map_fn.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/server/proxy/__init__.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/server/proxy/test_proxy_client.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/server/proxy/test_stateful_proxy_client.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/server/test_app_state.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/server/test_auth_integration.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/server/test_context.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/server/test_experimental_openapi_feature_flag.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/server/test_file_server.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/server/test_import_server.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/server/test_logging.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/server/test_resource_prefix_formats.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/server/test_run_server.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/server/test_server.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/server/test_server_interactions.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/server/test_tool_annotations.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/server/test_tool_exclude_args.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/server/test_tool_transformation.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/test_examples.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/test_mcp_config.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/tools/__init__.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/tools/test_tool.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/tools/test_tool_future_annotations.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/tools/test_tool_manager.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/tools/test_tool_transform.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/utilities/__init__.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/utilities/openapi/__init__.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/utilities/openapi/conftest.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/utilities/openapi/test_nullable_fields.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/utilities/openapi/test_openapi.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/utilities/openapi/test_openapi_advanced.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/utilities/openapi/test_openapi_fastapi.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/utilities/openapi/test_openapi_output_schemas.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/utilities/test_json_schema.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/utilities/test_json_schema_type.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/utilities/test_logging.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/utilities/test_tests.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/utilities/test_typeadapter.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/tests/utilities/test_types.py +0 -0
- {fastmcp-2.11.1 → fastmcp-2.11.2}/uv.lock +0 -0
|
@@ -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
|
| ------ | ---- | ----------- |
|
|
@@ -138,7 +138,7 @@ def version(
|
|
|
138
138
|
|
|
139
139
|
|
|
140
140
|
@app.command
|
|
141
|
-
def dev(
|
|
141
|
+
async def dev(
|
|
142
142
|
server_spec: str,
|
|
143
143
|
*,
|
|
144
144
|
with_editable: Annotated[
|
|
@@ -220,7 +220,7 @@ def dev(
|
|
|
220
220
|
|
|
221
221
|
try:
|
|
222
222
|
# Import server to get dependencies
|
|
223
|
-
server: FastMCP = run_module.import_server(file, server_object)
|
|
223
|
+
server: FastMCP = await run_module.import_server(file, server_object)
|
|
224
224
|
if server.dependencies is not None:
|
|
225
225
|
with_packages = list(set(with_packages + server.dependencies))
|
|
226
226
|
|
|
@@ -283,7 +283,7 @@ def dev(
|
|
|
283
283
|
|
|
284
284
|
|
|
285
285
|
@app.command
|
|
286
|
-
def run(
|
|
286
|
+
async def run(
|
|
287
287
|
server_spec: str,
|
|
288
288
|
*server_args: str,
|
|
289
289
|
transport: Annotated[
|
|
@@ -414,7 +414,7 @@ def run(
|
|
|
414
414
|
else:
|
|
415
415
|
# Use direct import for backwards compatibility
|
|
416
416
|
try:
|
|
417
|
-
run_module.run_command(
|
|
417
|
+
await run_module.run_command(
|
|
418
418
|
server_spec=server_spec,
|
|
419
419
|
transport=transport,
|
|
420
420
|
host=host,
|
|
@@ -476,7 +476,7 @@ async def inspect(
|
|
|
476
476
|
|
|
477
477
|
try:
|
|
478
478
|
# Import the server
|
|
479
|
-
server = run_module.import_server(file, server_object)
|
|
479
|
+
server = await run_module.import_server(file, server_object)
|
|
480
480
|
|
|
481
481
|
# Get server information - using native async support
|
|
482
482
|
info = await inspect_fastmcp(server)
|
|
@@ -167,7 +167,7 @@ def install_claude_code(
|
|
|
167
167
|
return False
|
|
168
168
|
|
|
169
169
|
|
|
170
|
-
def claude_code_command(
|
|
170
|
+
async def claude_code_command(
|
|
171
171
|
server_spec: str,
|
|
172
172
|
*,
|
|
173
173
|
server_name: Annotated[
|
|
@@ -234,7 +234,7 @@ def claude_code_command(
|
|
|
234
234
|
Args:
|
|
235
235
|
server_spec: Python file to install, optionally with :object suffix
|
|
236
236
|
"""
|
|
237
|
-
file, server_object, name, packages, env_dict = process_common_args(
|
|
237
|
+
file, server_object, name, packages, env_dict = await process_common_args(
|
|
238
238
|
server_spec, server_name, with_packages, env_vars, env_file
|
|
239
239
|
)
|
|
240
240
|
|
|
@@ -140,7 +140,7 @@ def install_claude_desktop(
|
|
|
140
140
|
return False
|
|
141
141
|
|
|
142
142
|
|
|
143
|
-
def claude_desktop_command(
|
|
143
|
+
async def claude_desktop_command(
|
|
144
144
|
server_spec: str,
|
|
145
145
|
*,
|
|
146
146
|
server_name: Annotated[
|
|
@@ -207,7 +207,7 @@ def claude_desktop_command(
|
|
|
207
207
|
Args:
|
|
208
208
|
server_spec: Python file to install, optionally with :object suffix
|
|
209
209
|
"""
|
|
210
|
-
file, server_object, name, with_packages, env_dict = process_common_args(
|
|
210
|
+
file, server_object, name, with_packages, env_dict = await process_common_args(
|
|
211
211
|
server_spec, server_name, with_packages, env_vars, env_file
|
|
212
212
|
)
|
|
213
213
|
|
|
@@ -150,7 +150,7 @@ def install_cursor(
|
|
|
150
150
|
return False
|
|
151
151
|
|
|
152
152
|
|
|
153
|
-
def cursor_command(
|
|
153
|
+
async def cursor_command(
|
|
154
154
|
server_spec: str,
|
|
155
155
|
*,
|
|
156
156
|
server_name: Annotated[
|
|
@@ -217,7 +217,7 @@ def cursor_command(
|
|
|
217
217
|
Args:
|
|
218
218
|
server_spec: Python file to install, optionally with :object suffix
|
|
219
219
|
"""
|
|
220
|
-
file, server_object, name, with_packages, env_dict = process_common_args(
|
|
220
|
+
file, server_object, name, with_packages, env_dict = await process_common_args(
|
|
221
221
|
server_spec, server_name, with_packages, env_vars, env_file
|
|
222
222
|
)
|
|
223
223
|
|
|
@@ -113,7 +113,7 @@ def install_mcp_json(
|
|
|
113
113
|
return False
|
|
114
114
|
|
|
115
115
|
|
|
116
|
-
def mcp_json_command(
|
|
116
|
+
async def mcp_json_command(
|
|
117
117
|
server_spec: str,
|
|
118
118
|
*,
|
|
119
119
|
server_name: Annotated[
|
|
@@ -188,7 +188,7 @@ def mcp_json_command(
|
|
|
188
188
|
Args:
|
|
189
189
|
server_spec: Python file to install, optionally with :object suffix
|
|
190
190
|
"""
|
|
191
|
-
file, server_object, name, packages, env_dict = process_common_args(
|
|
191
|
+
file, server_object, name, packages, env_dict = await process_common_args(
|
|
192
192
|
server_spec, server_name, with_packages, env_vars, env_file
|
|
193
193
|
)
|
|
194
194
|
|
|
@@ -23,7 +23,7 @@ def parse_env_var(env_var: str) -> tuple[str, str]:
|
|
|
23
23
|
return key.strip(), value.strip()
|
|
24
24
|
|
|
25
25
|
|
|
26
|
-
def process_common_args(
|
|
26
|
+
async def process_common_args(
|
|
27
27
|
server_spec: str,
|
|
28
28
|
server_name: str | None,
|
|
29
29
|
with_packages: list[str],
|
|
@@ -49,7 +49,7 @@ def process_common_args(
|
|
|
49
49
|
server = None
|
|
50
50
|
if not name:
|
|
51
51
|
try:
|
|
52
|
-
server = import_server(file, server_object)
|
|
52
|
+
server = await import_server(file, server_object)
|
|
53
53
|
name = server.name
|
|
54
54
|
except (ImportError, ModuleNotFoundError) as e:
|
|
55
55
|
logger.debug(
|