fastmcp 2.13.0rc1__tar.gz → 2.13.0rc2__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.13.0rc1 → fastmcp-2.13.0rc2}/.github/workflows/marvin-dedupe-issues.yml +1 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/.github/workflows/marvin-label-triage.yml +1 -1
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/PKG-INFO +1 -1
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/changelog.mdx +15 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/clients/elicitation.mdx +0 -1
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/deployment/http.mdx +61 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/development/upgrade-guide.mdx +1 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/docs.json +21 -20
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/getting-started/welcome.mdx +0 -1
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/integrations/aws-cognito.mdx +10 -13
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/integrations/fastapi.mdx +6 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/python-sdk/fastmcp-client-auth-oauth.mdx +12 -12
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/python-sdk/fastmcp-client-oauth_callback.mdx +10 -3
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/python-sdk/fastmcp-server-context.mdx +28 -28
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/python-sdk/fastmcp-server-middleware-error_handling.mdx +5 -5
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/python-sdk/fastmcp-utilities-tests.mdx +25 -4
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/servers/auth/authentication.mdx +0 -1
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/servers/auth/full-oauth-server.mdx +1 -1
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/servers/auth/oauth-proxy.mdx +22 -4
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/servers/auth/token-verification.mdx +0 -1
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/servers/composition.mdx +1 -1
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/servers/elicitation.mdx +0 -1
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/servers/icons.mdx +1 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/servers/middleware.mdx +32 -4
- fastmcp-2.13.0rc2/docs/servers/storage-backends.mdx +259 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/servers/tools.mdx +1 -1
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/updates.mdx +10 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/examples/auth/github_oauth/server.py +1 -10
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/server/auth/oauth_proxy.py +5 -14
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/server/auth/providers/auth0.py +1 -1
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/server/auth/providers/aws.py +1 -1
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/server/auth/providers/github.py +1 -1
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/server/auth/providers/google.py +2 -2
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/server/auth/providers/workos.py +1 -1
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/server/http.py +5 -2
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/utilities/cli.py +32 -22
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/server/http/test_http_auth_middleware.py +29 -16
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/.ccignore +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/.cursor/rules/core-mcp-objects.mdc +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/.cursor/worktrees.json +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/.github/ISSUE_TEMPLATE/bug.yml +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/.github/ISSUE_TEMPLATE/enhancement.yml +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/.github/copilot-instructions.md +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/.github/dependabot.yml +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/.github/pull_request_template.md +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/.github/release.yml +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/.github/workflows/auto-close-duplicates.yml +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/.github/workflows/auto-close-needs-mre.yml +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/.github/workflows/martian-issue-triage.yml +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/.github/workflows/marvin.yml +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/.github/workflows/publish.yml +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/.github/workflows/run-static.yml +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/.github/workflows/run-tests.yml +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/.github/workflows/update-config-schema.yml +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/.github/workflows/update-sdk-docs.yml +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/.gitignore +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/.pre-commit-config.yaml +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/AGENTS.md +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/CLAUDE.md +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/CODE_OF_CONDUCT.md +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/LICENSE +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/README.md +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/SECURITY.md +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/.ccignore +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/.cursor/rules/mintlify.mdc +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/assets/brand/blue-logo.png +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/assets/brand/f-watercolor-waves-dark.png +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/assets/brand/f-watercolor-waves.png +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/assets/brand/favicon.svg +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/assets/brand/thumbnail-background.png +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/assets/brand/wordmark-padded.png +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/assets/brand/wordmark-watercolor-rainbow-dark.png +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/assets/brand/wordmark-watercolor-rainbow.png +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/assets/brand/wordmark-watercolor-waves-dark.png +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/assets/brand/wordmark-watercolor-waves.png +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/assets/brand/wordmark-white-padded.png +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/assets/brand/wordmark-white.png +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/assets/brand/wordmark.png +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/assets/images/fastmcp_cloud/connect.png +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/assets/images/fastmcp_cloud/create_project.png +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/assets/images/fastmcp_cloud/deployment.png +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/assets/images/fastmcp_cloud/quickstart.png +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/assets/images/oauth-proxy-consent-screen.png +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/assets/images/tutorial-rest-api-result.png +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/assets/schemas/mcp_server_config/latest.json +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/assets/schemas/mcp_server_config/v1.json +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/assets/updates/release-2-7.png +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/clients/auth/bearer.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/clients/auth/oauth.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/clients/client.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/clients/logging.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/clients/messages.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/clients/progress.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/clients/prompts.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/clients/resources.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/clients/roots.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/clients/sampling.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/clients/tools.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/clients/transports.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/community/README.md +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/community/showcase.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/css/banner.css +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/css/python-sdk.css +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/css/style.css +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/css/version-badge.css +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/deployment/fastmcp-cloud.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/deployment/running-server.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/deployment/server-configuration.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/development/contributing.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/development/releases.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/development/tests.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/getting-started/installation.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/getting-started/quickstart.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/integrations/anthropic.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/integrations/auth0.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/integrations/authkit.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/integrations/azure.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/integrations/chatgpt.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/integrations/claude-code.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/integrations/claude-desktop.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/integrations/cursor-install-mcp.png +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/integrations/cursor.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/integrations/descope.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/integrations/eunomia-authorization.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/integrations/gemini-cli.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/integrations/gemini.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/integrations/github.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/integrations/google.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/integrations/images/authkit/enable_dcr.png +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/integrations/images/permit/abac_condition_example.png +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/integrations/images/permit/abac_policy_example.png +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/integrations/images/permit/policy_mapping.png +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/integrations/images/permit/role_assignement.png +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/integrations/mcp-json-configuration.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/integrations/openai.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/integrations/openapi.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/integrations/permit.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/integrations/scalekit.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/integrations/workos.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/patterns/cli.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/patterns/contrib.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/patterns/decorating-methods.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/patterns/tool-transformation.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/public/schemas/fastmcp.json/latest.json +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/public/schemas/fastmcp.json/v1.json +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/python-sdk/fastmcp-cli-__init__.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/python-sdk/fastmcp-cli-cli.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/python-sdk/fastmcp-cli-install-__init__.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/python-sdk/fastmcp-cli-install-claude_code.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/python-sdk/fastmcp-cli-install-claude_desktop.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/python-sdk/fastmcp-cli-install-cursor.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/python-sdk/fastmcp-cli-install-gemini_cli.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/python-sdk/fastmcp-cli-install-mcp_json.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/python-sdk/fastmcp-cli-install-shared.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/python-sdk/fastmcp-cli-run.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/python-sdk/fastmcp-client-__init__.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/python-sdk/fastmcp-client-auth-__init__.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/python-sdk/fastmcp-client-auth-bearer.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/python-sdk/fastmcp-client-client.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/python-sdk/fastmcp-client-elicitation.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/python-sdk/fastmcp-client-logging.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/python-sdk/fastmcp-client-messages.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/python-sdk/fastmcp-client-progress.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/python-sdk/fastmcp-client-roots.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/python-sdk/fastmcp-client-sampling.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/python-sdk/fastmcp-client-transports.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/python-sdk/fastmcp-exceptions.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/python-sdk/fastmcp-mcp_config.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/python-sdk/fastmcp-prompts-__init__.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/python-sdk/fastmcp-prompts-prompt.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/python-sdk/fastmcp-prompts-prompt_manager.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/python-sdk/fastmcp-resources-__init__.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/python-sdk/fastmcp-resources-resource.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/python-sdk/fastmcp-resources-resource_manager.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/python-sdk/fastmcp-resources-template.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/python-sdk/fastmcp-resources-types.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/python-sdk/fastmcp-server-__init__.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/python-sdk/fastmcp-server-auth-__init__.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/python-sdk/fastmcp-server-auth-auth.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/python-sdk/fastmcp-server-auth-jwt_issuer.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/python-sdk/fastmcp-server-auth-oauth_proxy.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/python-sdk/fastmcp-server-auth-oidc_proxy.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/python-sdk/fastmcp-server-auth-providers-__init__.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/python-sdk/fastmcp-server-auth-providers-auth0.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/python-sdk/fastmcp-server-auth-providers-aws.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/python-sdk/fastmcp-server-auth-providers-azure.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/python-sdk/fastmcp-server-auth-providers-bearer.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/python-sdk/fastmcp-server-auth-providers-descope.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/python-sdk/fastmcp-server-auth-providers-github.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/python-sdk/fastmcp-server-auth-providers-google.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/python-sdk/fastmcp-server-auth-providers-in_memory.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/python-sdk/fastmcp-server-auth-providers-introspection.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/python-sdk/fastmcp-server-auth-providers-jwt.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/python-sdk/fastmcp-server-auth-providers-scalekit.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/python-sdk/fastmcp-server-auth-providers-supabase.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/python-sdk/fastmcp-server-auth-providers-workos.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/python-sdk/fastmcp-server-auth-redirect_validation.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/python-sdk/fastmcp-server-dependencies.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/python-sdk/fastmcp-server-elicitation.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/python-sdk/fastmcp-server-http.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/python-sdk/fastmcp-server-low_level.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/python-sdk/fastmcp-server-middleware-__init__.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/python-sdk/fastmcp-server-middleware-caching.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/python-sdk/fastmcp-server-middleware-logging.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/python-sdk/fastmcp-server-middleware-middleware.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/python-sdk/fastmcp-server-middleware-rate_limiting.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/python-sdk/fastmcp-server-middleware-timing.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/python-sdk/fastmcp-server-openapi.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/python-sdk/fastmcp-server-proxy.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/python-sdk/fastmcp-server-server.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/python-sdk/fastmcp-settings.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/python-sdk/fastmcp-tools-__init__.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/python-sdk/fastmcp-tools-tool.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/python-sdk/fastmcp-tools-tool_manager.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/python-sdk/fastmcp-tools-tool_transform.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/python-sdk/fastmcp-utilities-__init__.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/python-sdk/fastmcp-utilities-auth.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/python-sdk/fastmcp-utilities-cli.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/python-sdk/fastmcp-utilities-components.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/python-sdk/fastmcp-utilities-exceptions.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/python-sdk/fastmcp-utilities-http.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/python-sdk/fastmcp-utilities-inspect.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/python-sdk/fastmcp-utilities-json_schema.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/python-sdk/fastmcp-utilities-json_schema_type.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/python-sdk/fastmcp-utilities-logging.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/python-sdk/fastmcp-utilities-mcp_config.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/python-sdk/fastmcp-utilities-mcp_server_config-__init__.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-__init__.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-environments-__init__.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-environments-base.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-environments-uv.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-mcp_server_config.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-sources-__init__.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-sources-base.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-sources-filesystem.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/python-sdk/fastmcp-utilities-openapi.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/python-sdk/fastmcp-utilities-types.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/python-sdk/fastmcp-utilities-ui.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/servers/auth/oidc-proxy.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/servers/auth/remote-oauth.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/servers/context.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/servers/logging.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/servers/progress.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/servers/prompts.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/servers/proxy.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/servers/resources.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/servers/sampling.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/servers/server.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/snippets/local-focus.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/snippets/version-badge.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/snippets/youtube-embed.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/tutorials/create-mcp-server.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/tutorials/mcp.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/docs/tutorials/rest-api.mdx +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/examples/atproto_mcp/README.md +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/examples/atproto_mcp/demo.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/examples/atproto_mcp/fastmcp.json +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/examples/atproto_mcp/pyproject.toml +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/examples/atproto_mcp/src/atproto_mcp/__init__.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/examples/atproto_mcp/src/atproto_mcp/__main__.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/examples/atproto_mcp/src/atproto_mcp/_atproto/__init__.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/examples/atproto_mcp/src/atproto_mcp/_atproto/_client.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/examples/atproto_mcp/src/atproto_mcp/_atproto/_posts.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/examples/atproto_mcp/src/atproto_mcp/_atproto/_profile.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/examples/atproto_mcp/src/atproto_mcp/_atproto/_read.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/examples/atproto_mcp/src/atproto_mcp/_atproto/_social.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/examples/atproto_mcp/src/atproto_mcp/py.typed +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/examples/atproto_mcp/src/atproto_mcp/server.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/examples/atproto_mcp/src/atproto_mcp/settings.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/examples/atproto_mcp/src/atproto_mcp/types.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/examples/auth/authkit_dcr/README.md +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/examples/auth/authkit_dcr/client.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/examples/auth/authkit_dcr/server.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/examples/auth/aws_oauth/README.md +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/examples/auth/aws_oauth/client.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/examples/auth/aws_oauth/requirements.txt +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/examples/auth/aws_oauth/server.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/examples/auth/azure_oauth/README.md +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/examples/auth/azure_oauth/client.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/examples/auth/azure_oauth/server.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/examples/auth/github_oauth/README.md +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/examples/auth/github_oauth/client.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/examples/auth/google_oauth/README.md +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/examples/auth/google_oauth/client.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/examples/auth/google_oauth/server.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/examples/auth/scalekit_oauth/README.md +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/examples/auth/scalekit_oauth/client.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/examples/auth/scalekit_oauth/server.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/examples/auth/workos_oauth/README.md +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/examples/auth/workos_oauth/client.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/examples/auth/workos_oauth/server.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/examples/complex_inputs.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/examples/config_server.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/examples/desktop.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/examples/echo.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/examples/fastmcp_config/env_interpolation_example.json +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/examples/fastmcp_config/fastmcp.json +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/examples/fastmcp_config/full_example.fastmcp.json +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/examples/fastmcp_config/server.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/examples/fastmcp_config/simple.fastmcp.json +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/examples/fastmcp_config_demo/README.md +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/examples/fastmcp_config_demo/fastmcp.json +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/examples/fastmcp_config_demo/server.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/examples/get_file.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/examples/in_memory_proxy_example.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/examples/memory.fastmcp.json +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/examples/memory.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/examples/mount_example.fastmcp.json +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/examples/mount_example.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/examples/sampling.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/examples/sampling_fallback.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/examples/screenshot.fastmcp.json +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/examples/screenshot.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/examples/serializer.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/examples/simple_echo.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/examples/smart_home/README.md +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/examples/smart_home/hub.fastmcp.json +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/examples/smart_home/lights.fastmcp.json +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/examples/smart_home/pyproject.toml +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/examples/smart_home/src/smart_home/__init__.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/examples/smart_home/src/smart_home/__main__.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/examples/smart_home/src/smart_home/hub.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/examples/smart_home/src/smart_home/lights/__init__.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/examples/smart_home/src/smart_home/lights/hue_utils.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/examples/smart_home/src/smart_home/lights/server.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/examples/smart_home/src/smart_home/py.typed +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/examples/smart_home/src/smart_home/settings.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/examples/tags_example.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/examples/text_me.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/justfile +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/pyproject.toml +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/scripts/auto_close_duplicates.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/scripts/auto_close_needs_mre.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/__init__.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/cli/__init__.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/cli/cli.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/cli/install/__init__.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/cli/install/claude_code.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/cli/install/claude_desktop.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/cli/install/cursor.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/cli/install/gemini_cli.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/cli/install/mcp_json.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/cli/install/shared.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/cli/run.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/client/__init__.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/client/auth/__init__.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/client/auth/bearer.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/client/auth/oauth.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/client/client.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/client/elicitation.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/client/logging.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/client/messages.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/client/oauth_callback.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/client/progress.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/client/roots.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/client/sampling.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/client/transports.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/contrib/README.md +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/contrib/bulk_tool_caller/README.md +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/contrib/bulk_tool_caller/__init__.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/contrib/bulk_tool_caller/bulk_tool_caller.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/contrib/bulk_tool_caller/example.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/contrib/component_manager/README.md +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/contrib/component_manager/__init__.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/contrib/component_manager/component_manager.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/contrib/component_manager/component_service.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/contrib/component_manager/example.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/contrib/mcp_mixin/README.md +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/contrib/mcp_mixin/__init__.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/contrib/mcp_mixin/example.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/contrib/mcp_mixin/mcp_mixin.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/exceptions.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/experimental/sampling/__init__.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/experimental/sampling/handlers/__init__.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/experimental/sampling/handlers/base.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/experimental/sampling/handlers/openai.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/experimental/server/openapi/README.md +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/experimental/server/openapi/__init__.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/experimental/server/openapi/components.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/experimental/server/openapi/routing.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/experimental/server/openapi/server.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/experimental/utilities/openapi/README.md +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/experimental/utilities/openapi/__init__.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/experimental/utilities/openapi/director.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/experimental/utilities/openapi/formatters.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/experimental/utilities/openapi/json_schema_converter.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/experimental/utilities/openapi/models.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/experimental/utilities/openapi/parser.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/experimental/utilities/openapi/schemas.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/mcp_config.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/prompts/__init__.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/prompts/prompt.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/prompts/prompt_manager.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/py.typed +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/resources/__init__.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/resources/resource.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/resources/resource_manager.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/resources/template.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/resources/types.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/server/__init__.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/server/auth/__init__.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/server/auth/auth.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/server/auth/jwt_issuer.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/server/auth/oidc_proxy.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/server/auth/providers/__init__.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/server/auth/providers/azure.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/server/auth/providers/bearer.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/server/auth/providers/descope.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/server/auth/providers/in_memory.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/server/auth/providers/introspection.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/server/auth/providers/jwt.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/server/auth/providers/scalekit.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/server/auth/providers/supabase.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/server/auth/redirect_validation.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/server/context.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/server/dependencies.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/server/elicitation.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/server/low_level.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/server/middleware/__init__.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/server/middleware/caching.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/server/middleware/error_handling.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/server/middleware/logging.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/server/middleware/middleware.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/server/middleware/rate_limiting.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/server/middleware/timing.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/server/openapi.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/server/proxy.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/server/sampling/handler.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/server/server.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/settings.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/tools/__init__.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/tools/tool.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/tools/tool_manager.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/tools/tool_transform.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/utilities/__init__.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/utilities/auth.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/utilities/components.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/utilities/exceptions.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/utilities/http.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/utilities/inspect.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/utilities/json_schema.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/utilities/json_schema_type.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/utilities/logging.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/utilities/mcp_config.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/utilities/mcp_server_config/__init__.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/utilities/mcp_server_config/v1/__init__.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/utilities/mcp_server_config/v1/environments/__init__.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/utilities/mcp_server_config/v1/environments/base.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/utilities/mcp_server_config/v1/environments/uv.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/utilities/mcp_server_config/v1/mcp_server_config.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/utilities/mcp_server_config/v1/schema.json +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/utilities/mcp_server_config/v1/sources/__init__.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/utilities/mcp_server_config/v1/sources/base.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/utilities/mcp_server_config/v1/sources/filesystem.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/utilities/openapi.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/utilities/tests.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/utilities/types.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/src/fastmcp/utilities/ui.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/__init__.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/cli/__init__.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/cli/test_cli.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/cli/test_config.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/cli/test_cursor.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/cli/test_install.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/cli/test_mcp_server_config_integration.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/cli/test_mcp_server_config_schema.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/cli/test_project_prepare.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/cli/test_run.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/cli/test_run_config.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/cli/test_server_args.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/cli/test_shared.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/cli/test_with_argv.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/client/__init__.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/client/auth/__init__.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/client/auth/test_oauth_client.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/client/test_client.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/client/test_elicitation.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/client/test_logs.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/client/test_notifications.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/client/test_oauth_callback_xss.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/client/test_openapi_experimental.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/client/test_openapi_legacy.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/client/test_progress.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/client/test_roots.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/client/test_sampling.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/client/test_sse.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/client/test_stdio.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/client/test_streamable_http.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/client/transports/__init__.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/client/transports/test_uv_transport.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/conftest.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/contrib/__init__.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/contrib/test_bulk_tool_caller.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/contrib/test_component_manager.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/contrib/test_mcp_mixin.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/deprecated/__init__.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/deprecated/test_bearer_auth_provider.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/deprecated/test_dependencies.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/deprecated/test_deprecated.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/deprecated/test_mount_import_arg_order.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/deprecated/test_mount_separators.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/deprecated/test_output_schema_false.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/deprecated/test_proxy_client.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/deprecated/test_resource_prefixes.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/deprecated/test_route_type_ignore.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/deprecated/test_settings.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/experimental/README.md +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/experimental/__init__.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/experimental/openapi_parser/README.md +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/experimental/openapi_parser/__init__.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/experimental/openapi_parser/conftest.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/experimental/openapi_parser/server/__init__.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/experimental/openapi_parser/server/openapi/__init__.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/experimental/openapi_parser/server/openapi/test_comprehensive.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/experimental/openapi_parser/server/openapi/test_deepobject_style.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/experimental/openapi_parser/server/openapi/test_end_to_end_compatibility.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/experimental/openapi_parser/server/openapi/test_openapi_features.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/experimental/openapi_parser/server/openapi/test_openapi_performance.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/experimental/openapi_parser/server/openapi/test_parameter_collisions.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/experimental/openapi_parser/server/openapi/test_performance_comparison.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/experimental/openapi_parser/server/openapi/test_server.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/experimental/openapi_parser/utilities/__init__.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/experimental/openapi_parser/utilities/openapi/__init__.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/experimental/openapi_parser/utilities/openapi/conftest.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/experimental/openapi_parser/utilities/openapi/test_allof_requestbody.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/experimental/openapi_parser/utilities/openapi/test_direct_array_schemas.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/experimental/openapi_parser/utilities/openapi/test_director.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/experimental/openapi_parser/utilities/openapi/test_legacy_compatibility.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/experimental/openapi_parser/utilities/openapi/test_models.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/experimental/openapi_parser/utilities/openapi/test_nullable_fields.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/experimental/openapi_parser/utilities/openapi/test_parser.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/experimental/openapi_parser/utilities/openapi/test_schemas.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/experimental/openapi_parser/utilities/openapi/test_transitive_references.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/experimental/sampling/test_openai_handler.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/integration_tests/__init__.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/integration_tests/auth/__init__.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/integration_tests/auth/test_github_provider_integration.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/integration_tests/conftest.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/integration_tests/test_github_mcp_remote.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/prompts/__init__.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/prompts/test_prompt.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/prompts/test_prompt_manager.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/resources/__init__.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/resources/test_file_resources.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/resources/test_function_resources.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/resources/test_resource_manager.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/resources/test_resource_template.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/resources/test_resource_template_meta.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/resources/test_resources.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/server/__init__.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/server/auth/__init__.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/server/auth/providers/__init__.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/server/auth/providers/test_auth0.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/server/auth/providers/test_aws.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/server/auth/providers/test_azure.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/server/auth/providers/test_descope.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/server/auth/providers/test_github.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/server/auth/providers/test_google.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/server/auth/providers/test_introspection.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/server/auth/providers/test_scalekit.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/server/auth/providers/test_supabase.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/server/auth/providers/test_workos.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/server/auth/test_auth_provider.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/server/auth/test_jwt_issuer.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/server/auth/test_jwt_provider.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/server/auth/test_oauth_consent_flow.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/server/auth/test_oauth_mounting.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/server/auth/test_oauth_proxy.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/server/auth/test_oauth_proxy_redirect_validation.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/server/auth/test_oauth_proxy_storage.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/server/auth/test_oidc_proxy.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/server/auth/test_redirect_validation.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/server/auth/test_remote_auth_provider.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/server/auth/test_static_token_verifier.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/server/http/__init__.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/server/http/test_bearer_auth_backend.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/server/http/test_custom_routes.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/server/http/test_http_dependencies.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/server/http/test_http_middleware.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/server/middleware/__init__.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/server/middleware/test_caching.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/server/middleware/test_error_handling.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/server/middleware/test_initialization_middleware.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/server/middleware/test_logging.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/server/middleware/test_middleware.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/server/middleware/test_rate_limiting.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/server/middleware/test_timing.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/server/openapi/__init__.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/server/openapi/conftest.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/server/openapi/test_advanced_behavior.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/server/openapi/test_basic_functionality.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/server/openapi/test_configuration.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/server/openapi/test_deepobject_style.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/server/openapi/test_description_propagation.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/server/openapi/test_explode_integration.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/server/openapi/test_openapi_compatibility.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/server/openapi/test_openapi_path_parameters.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/server/openapi/test_optional_parameters.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/server/openapi/test_parameter_collisions.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/server/openapi/test_route_map_fn.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/server/proxy/__init__.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/server/proxy/test_proxy_client.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/server/proxy/test_proxy_server.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/server/proxy/test_stateful_proxy_client.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/server/test_app_state.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/server/test_auth_integration.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/server/test_context.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/server/test_experimental_openapi_feature_flag.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/server/test_file_server.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/server/test_icons.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/server/test_import_server.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/server/test_input_validation.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/server/test_log_level.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/server/test_logging.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/server/test_mount.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/server/test_resource_prefix_formats.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/server/test_run_server.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/server/test_server.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/server/test_server_interactions.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/server/test_server_lifespan.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/server/test_streamable_http_no_redirect.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/server/test_tool_annotations.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/server/test_tool_exclude_args.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/server/test_tool_transformation.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/test_examples.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/test_mcp_config.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/tools/__init__.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/tools/test_tool.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/tools/test_tool_future_annotations.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/tools/test_tool_manager.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/tools/test_tool_transform.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/utilities/__init__.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/utilities/openapi/__init__.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/utilities/openapi/conftest.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/utilities/openapi/test_nullable_fields.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/utilities/openapi/test_openapi.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/utilities/openapi/test_openapi_advanced.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/utilities/openapi/test_openapi_fastapi.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/utilities/openapi/test_openapi_output_schemas.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/utilities/test_cli.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/utilities/test_components.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/utilities/test_inspect.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/utilities/test_json_schema.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/utilities/test_json_schema_type.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/utilities/test_logging.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/utilities/test_tests.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/utilities/test_typeadapter.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/tests/utilities/test_types.py +0 -0
- {fastmcp-2.13.0rc1 → fastmcp-2.13.0rc2}/uv.lock +0 -0
|
@@ -80,6 +80,7 @@ jobs:
|
|
|
80
80
|
bot_name: "Marvin Context Protocol"
|
|
81
81
|
prompt: ${{ steps.dedupe-prompt.outputs.PROMPT }}
|
|
82
82
|
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY_FOR_CI }}
|
|
83
|
+
allowed_non_write_users: "*"
|
|
83
84
|
claude_args: |
|
|
84
85
|
--allowedTools Bash(gh issue view:*),Bash(gh search:*),Bash(gh issue list:*),Bash(gh api:*),Bash(gh issue comment:*),Task
|
|
85
86
|
--mcp-config /tmp/mcp-config/mcp-servers.json
|
|
@@ -131,7 +131,7 @@ jobs:
|
|
|
131
131
|
bot_name: "Marvin Context Protocol"
|
|
132
132
|
prompt: ${{ steps.triage-prompt.outputs.PROMPT }}
|
|
133
133
|
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY_FOR_CI }}
|
|
134
|
-
allowed_non_write_users: "*"
|
|
134
|
+
allowed_non_write_users: "*"
|
|
135
135
|
claude_args: |
|
|
136
136
|
--allowedTools Bash(gh label list),mcp__github__get_issue,mcp__github__get_issue_comments,mcp__github__update_issue,mcp__github__get_pull_request_files
|
|
137
137
|
settings: |
|
|
@@ -4,6 +4,21 @@ icon: "list-check"
|
|
|
4
4
|
rss: true
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
+
<Update label="v2.12.5" description="2025-10-17">
|
|
8
|
+
|
|
9
|
+
**[v2.12.5: Safety Pin](https://github.com/jlowin/fastmcp/releases/tag/v2.12.5)**
|
|
10
|
+
|
|
11
|
+
FastMCP 2.12.5 is a point release that pins the MCP SDK version below 1.17, which introduced a change affecting FastMCP users with auth providers mounted as part of a larger application. This ensures the `.well-known` payload appears in the expected location when using FastMCP authentication providers with composite applications.
|
|
12
|
+
|
|
13
|
+
## What's Changed
|
|
14
|
+
|
|
15
|
+
### Fixes 🐞
|
|
16
|
+
* Pin MCP SDK version below 1.17 by [@jlowin](https://github.com/jlowin) in [a1b2c3d](https://github.com/jlowin/fastmcp/commit/dab2b316ddc3883b7896a86da21cacb68da01e5c)
|
|
17
|
+
|
|
18
|
+
**Full Changelog**: [v2.12.4...v2.12.5](https://github.com/jlowin/fastmcp/compare/v2.12.4...v2.12.5)
|
|
19
|
+
|
|
20
|
+
</Update>
|
|
21
|
+
|
|
7
22
|
<Update label="v2.12.4" description="2025-09-26">
|
|
8
23
|
|
|
9
24
|
**[v2.12.4: OIDC What You Did There](https://github.com/jlowin/fastmcp/releases/tag/v2.12.4)**
|
|
@@ -145,6 +145,59 @@ middleware = [
|
|
|
145
145
|
http_app = mcp.http_app(middleware=middleware)
|
|
146
146
|
```
|
|
147
147
|
|
|
148
|
+
### CORS for Browser-Based Clients
|
|
149
|
+
|
|
150
|
+
<Tip>
|
|
151
|
+
Most MCP clients, including those that you access through a browser like ChatGPT or Claude, don't need CORS configuration. Only enable CORS if you're working with an MCP client that connects directly from a browser, such as debugging tools or inspectors.
|
|
152
|
+
</Tip>
|
|
153
|
+
|
|
154
|
+
CORS (Cross-Origin Resource Sharing) is needed when JavaScript running in a web browser connects directly to your MCP server. This is different from using an LLM through a browser—in that case, the browser connects to the LLM service, and the LLM service connects to your MCP server (no CORS needed).
|
|
155
|
+
|
|
156
|
+
Browser-based MCP clients that need CORS include:
|
|
157
|
+
|
|
158
|
+
- **MCP Inspector** - Browser-based debugging tool for testing MCP servers
|
|
159
|
+
- **Custom browser-based MCP clients** - If you're building a web app that directly connects to MCP servers
|
|
160
|
+
|
|
161
|
+
For these scenarios, add CORS middleware with the specific headers required for MCP protocol:
|
|
162
|
+
|
|
163
|
+
```python
|
|
164
|
+
from fastmcp import FastMCP
|
|
165
|
+
from starlette.middleware import Middleware
|
|
166
|
+
from starlette.middleware.cors import CORSMiddleware
|
|
167
|
+
|
|
168
|
+
mcp = FastMCP("MyServer")
|
|
169
|
+
|
|
170
|
+
# Configure CORS for browser-based clients
|
|
171
|
+
middleware = [
|
|
172
|
+
Middleware(
|
|
173
|
+
CORSMiddleware,
|
|
174
|
+
allow_origins=["*"], # Allow all origins; use specific origins for security
|
|
175
|
+
allow_methods=["GET", "POST", "DELETE", "OPTIONS"],
|
|
176
|
+
allow_headers=[
|
|
177
|
+
"mcp-protocol-version",
|
|
178
|
+
"mcp-session-id",
|
|
179
|
+
"Authorization",
|
|
180
|
+
"Content-Type",
|
|
181
|
+
],
|
|
182
|
+
expose_headers=["mcp-session-id"],
|
|
183
|
+
)
|
|
184
|
+
]
|
|
185
|
+
|
|
186
|
+
app = mcp.http_app(middleware=middleware)
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
**Key configuration details:**
|
|
190
|
+
|
|
191
|
+
- **`allow_origins`**: Specify exact origins (e.g., `["http://localhost:3000"]`) rather than `["*"]` for production deployments
|
|
192
|
+
- **`allow_headers`**: Must include `mcp-protocol-version`, `mcp-session-id`, and `Authorization` (for authenticated servers)
|
|
193
|
+
- **`expose_headers`**: Must include `mcp-session-id` so JavaScript can read the session ID from responses and send it in subsequent requests
|
|
194
|
+
|
|
195
|
+
Without `expose_headers=["mcp-session-id"]`, browsers will receive the session ID but JavaScript won't be able to access it, causing session management to fail.
|
|
196
|
+
|
|
197
|
+
<Warning>
|
|
198
|
+
**Production Security**: Never use `allow_origins=["*"]` in production. Specify the exact origins of your browser-based clients. Using wildcards exposes your server to unauthorized access from any website.
|
|
199
|
+
</Warning>
|
|
200
|
+
|
|
148
201
|
## Integration with Web Frameworks
|
|
149
202
|
|
|
150
203
|
If you already have a web application running, you can add MCP capabilities by mounting a FastMCP server as a sub-application. This allows you to expose MCP tools alongside your existing API endpoints, sharing the same domain and infrastructure. The MCP server becomes just another route in your application, making it easy to manage and deploy.
|
|
@@ -280,6 +333,14 @@ OAuth specifications (RFC 8414 and RFC 9728) require discovery metadata to be ac
|
|
|
280
333
|
Follow the configuration instructions below to set up mounting correctly.
|
|
281
334
|
</Warning>
|
|
282
335
|
|
|
336
|
+
<Warning>
|
|
337
|
+
**CORS Middleware Conflicts:**
|
|
338
|
+
|
|
339
|
+
If you're integrating FastMCP into an existing application with its own CORS middleware, be aware that layering CORS middleware can cause conflicts (such as 404 errors on `.well-known` routes or OPTIONS requests).
|
|
340
|
+
|
|
341
|
+
FastMCP and the MCP SDK already handle CORS for OAuth routes. If you need CORS on your own application routes, consider using the sub-app pattern: mount FastMCP and your routes as separate apps, each with their own middleware, rather than adding application-wide CORS middleware.
|
|
342
|
+
</Warning>
|
|
343
|
+
|
|
283
344
|
### Route Types
|
|
284
345
|
|
|
285
346
|
OAuth-protected MCP servers expose two categories of routes:
|
|
@@ -3,6 +3,7 @@ title: Upgrade Guide
|
|
|
3
3
|
sidebarTitle: Upgrade Guide
|
|
4
4
|
description: Migration instructions for upgrading between FastMCP versions
|
|
5
5
|
icon: up
|
|
6
|
+
tag: NEW
|
|
6
7
|
---
|
|
7
8
|
|
|
8
9
|
This guide provides migration instructions for breaking changes and major updates when upgrading between FastMCP versions.
|
|
@@ -19,11 +19,12 @@
|
|
|
19
19
|
"light": "#4cc9f0",
|
|
20
20
|
"primary": "#2d00f7"
|
|
21
21
|
},
|
|
22
|
+
"fonts": {
|
|
23
|
+
"heading": { "family": "Google Sans" },
|
|
24
|
+
"body": { "family": "BlinkMacSystemFont" }
|
|
25
|
+
},
|
|
22
26
|
"contextual": {
|
|
23
|
-
"options": [
|
|
24
|
-
"copy",
|
|
25
|
-
"view"
|
|
26
|
-
]
|
|
27
|
+
"options": ["copy", "view"]
|
|
27
28
|
},
|
|
28
29
|
"description": "The fast, Pythonic way to build MCP servers and clients.",
|
|
29
30
|
"errors": {
|
|
@@ -107,15 +108,16 @@
|
|
|
107
108
|
"group": "Advanced Features",
|
|
108
109
|
"icon": "stars",
|
|
109
110
|
"pages": [
|
|
110
|
-
"servers/icons",
|
|
111
|
-
"servers/context",
|
|
112
|
-
"servers/proxy",
|
|
113
111
|
"servers/composition",
|
|
112
|
+
"servers/context",
|
|
114
113
|
"servers/elicitation",
|
|
114
|
+
"servers/icons",
|
|
115
115
|
"servers/logging",
|
|
116
|
+
"servers/middleware",
|
|
116
117
|
"servers/progress",
|
|
118
|
+
"servers/proxy",
|
|
117
119
|
"servers/sampling",
|
|
118
|
-
"servers/
|
|
120
|
+
"servers/storage-backends"
|
|
119
121
|
]
|
|
120
122
|
},
|
|
121
123
|
{
|
|
@@ -148,10 +150,7 @@
|
|
|
148
150
|
{
|
|
149
151
|
"group": "Essentials",
|
|
150
152
|
"icon": "cube",
|
|
151
|
-
"pages": [
|
|
152
|
-
"clients/client",
|
|
153
|
-
"clients/transports"
|
|
154
|
-
]
|
|
153
|
+
"pages": ["clients/client", "clients/transports"]
|
|
155
154
|
},
|
|
156
155
|
{
|
|
157
156
|
"group": "Core Operations",
|
|
@@ -177,10 +176,7 @@
|
|
|
177
176
|
{
|
|
178
177
|
"group": "Authentication",
|
|
179
178
|
"icon": "user-shield",
|
|
180
|
-
"pages": [
|
|
181
|
-
"clients/auth/oauth",
|
|
182
|
-
"clients/auth/bearer"
|
|
183
|
-
]
|
|
179
|
+
"pages": ["clients/auth/oauth", "clients/auth/bearer"]
|
|
184
180
|
}
|
|
185
181
|
]
|
|
186
182
|
},
|
|
@@ -234,10 +230,7 @@
|
|
|
234
230
|
{
|
|
235
231
|
"group": "API Integration",
|
|
236
232
|
"icon": "globe",
|
|
237
|
-
"pages": [
|
|
238
|
-
"integrations/fastapi",
|
|
239
|
-
"integrations/openapi"
|
|
240
|
-
]
|
|
233
|
+
"pages": ["integrations/fastapi", "integrations/openapi"]
|
|
241
234
|
}
|
|
242
235
|
]
|
|
243
236
|
},
|
|
@@ -472,5 +465,13 @@
|
|
|
472
465
|
"thumbnails": {
|
|
473
466
|
"appearance": "light",
|
|
474
467
|
"background": "/assets/brand/thumbnail-background.png"
|
|
468
|
+
},
|
|
469
|
+
"styling": {
|
|
470
|
+
"codeblocks": {
|
|
471
|
+
"theme": {
|
|
472
|
+
"light": "snazzy-light",
|
|
473
|
+
"dark": "dark-plus"
|
|
474
|
+
}
|
|
475
|
+
}
|
|
475
476
|
}
|
|
476
477
|
}
|
|
@@ -86,21 +86,19 @@ Set up AWS Cognito user pool with an app client to get the credentials needed fo
|
|
|
86
86
|
</Tip>
|
|
87
87
|
</Step>
|
|
88
88
|
|
|
89
|
-
<Step title="
|
|
90
|
-
|
|
89
|
+
<Step title="Configure Resource Server">
|
|
90
|
+
AWS Cognito requires a resource server entry to support OAuth with protected resources. Without this, token exchange will fail with an `invalid_grant` error.
|
|
91
91
|
|
|
92
|
-
|
|
93
|
-
- If AWS has already created a domain automatically, note the **domain prefix** (the part before `.auth.region.amazoncognito.com`)
|
|
94
|
-
- This prefix is what you'll use in your FastMCP configuration
|
|
92
|
+
Navigate to **"Branding" → "Domain"** in the side navigation, then:
|
|
95
93
|
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
94
|
+
1. Click **"Create resource server"**
|
|
95
|
+
2. **Resource server name**: Enter a descriptive name (e.g., `My MCP Server`)
|
|
96
|
+
3. **Resource server identifier**: Enter your MCP endpoint URL exactly as it will be accessed (e.g., `http://localhost:8000/mcp` for development, or `https://your-server.com/mcp` for production)
|
|
97
|
+
4. Click **"Create resource server"**
|
|
100
98
|
|
|
101
|
-
<
|
|
102
|
-
The
|
|
103
|
-
</
|
|
99
|
+
<Warning>
|
|
100
|
+
The resource server identifier must exactly match your `base_url + mcp_path`. For the default configuration with `base_url="http://localhost:8000"` and `path="/mcp"`, use `http://localhost:8000/mcp`.
|
|
101
|
+
</Warning>
|
|
104
102
|
</Step>
|
|
105
103
|
|
|
106
104
|
<Step title="Save Your Credentials">
|
|
@@ -109,7 +107,6 @@ Set up AWS Cognito user pool with an app client to get the credentials needed fo
|
|
|
109
107
|
- **User Pool ID**: Format like `eu-central-1_XXXXXXXXX`
|
|
110
108
|
- **Client ID**: Your application's client identifier
|
|
111
109
|
- **Client Secret**: Generated client secret (keep secure)
|
|
112
|
-
- **Domain Prefix**: The prefix of Your AWS Cognito domain
|
|
113
110
|
- **AWS Region**: Where Your AWS Cognito user pool is located
|
|
114
111
|
|
|
115
112
|
<Tip>
|
|
@@ -407,6 +407,12 @@ app.mount("/mcp", mcp.http_app()) # Session manager won't initialize
|
|
|
407
407
|
|
|
408
408
|
If you're mounting an authenticated MCP server under a path prefix, see [Mounting Authenticated Servers](/deployment/http#mounting-authenticated-servers) for important OAuth routing considerations.
|
|
409
409
|
|
|
410
|
+
### CORS Middleware
|
|
411
|
+
|
|
412
|
+
If your FastAPI app uses `CORSMiddleware` and you're mounting an OAuth-protected FastMCP server, avoid adding application-wide CORS middleware. FastMCP and the MCP SDK already handle CORS for OAuth routes, and layering CORS middleware can cause conflicts (such as 404 errors on `.well-known` routes or OPTIONS requests).
|
|
413
|
+
|
|
414
|
+
If you need CORS on your own FastAPI routes, use the sub-app pattern: mount your API and FastMCP as separate apps, each with their own middleware, rather than adding top-level `CORSMiddleware` to the combined application.
|
|
415
|
+
|
|
410
416
|
### Combining Lifespans
|
|
411
417
|
|
|
412
418
|
If your FastAPI app already has a lifespan (for database connections, startup tasks, etc.), you can't simply replace it with the MCP lifespan. Instead, you need to create a new lifespan function that manages both contexts. This ensures that both your app's initialization logic and the MCP server's session manager run properly:
|
|
@@ -7,7 +7,7 @@ sidebarTitle: oauth
|
|
|
7
7
|
|
|
8
8
|
## Functions
|
|
9
9
|
|
|
10
|
-
### `check_if_auth_required` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/auth/oauth.py#
|
|
10
|
+
### `check_if_auth_required` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/auth/oauth.py#L42" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
|
11
11
|
|
|
12
12
|
```python
|
|
13
13
|
check_if_auth_required(mcp_url: str, httpx_kwargs: dict[str, Any] | None = None) -> bool
|
|
@@ -22,47 +22,47 @@ Check if the MCP endpoint requires authentication by making a test request.
|
|
|
22
22
|
|
|
23
23
|
## Classes
|
|
24
24
|
|
|
25
|
-
### `ClientNotFoundError` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/auth/oauth.py#
|
|
25
|
+
### `ClientNotFoundError` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/auth/oauth.py#L36" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
|
26
26
|
|
|
27
27
|
|
|
28
28
|
Raised when OAuth client credentials are not found on the server.
|
|
29
29
|
|
|
30
30
|
|
|
31
|
-
### `TokenStorageAdapter` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/auth/oauth.py#
|
|
31
|
+
### `TokenStorageAdapter` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/auth/oauth.py#L72" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
|
32
32
|
|
|
33
33
|
**Methods:**
|
|
34
34
|
|
|
35
|
-
#### `clear` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/auth/oauth.py#
|
|
35
|
+
#### `clear` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/auth/oauth.py#L100" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
|
36
36
|
|
|
37
37
|
```python
|
|
38
38
|
clear(self) -> None
|
|
39
39
|
```
|
|
40
40
|
|
|
41
|
-
#### `get_tokens` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/auth/oauth.py#
|
|
41
|
+
#### `get_tokens` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/auth/oauth.py#L105" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
|
42
42
|
|
|
43
43
|
```python
|
|
44
44
|
get_tokens(self) -> OAuthToken | None
|
|
45
45
|
```
|
|
46
46
|
|
|
47
|
-
#### `set_tokens` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/auth/oauth.py#
|
|
47
|
+
#### `set_tokens` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/auth/oauth.py#L109" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
|
48
48
|
|
|
49
49
|
```python
|
|
50
50
|
set_tokens(self, tokens: OAuthToken) -> None
|
|
51
51
|
```
|
|
52
52
|
|
|
53
|
-
#### `get_client_info` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/auth/oauth.py#
|
|
53
|
+
#### `get_client_info` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/auth/oauth.py#L117" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
|
54
54
|
|
|
55
55
|
```python
|
|
56
56
|
get_client_info(self) -> OAuthClientInformationFull | None
|
|
57
57
|
```
|
|
58
58
|
|
|
59
|
-
#### `set_client_info` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/auth/oauth.py#
|
|
59
|
+
#### `set_client_info` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/auth/oauth.py#L123" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
|
60
60
|
|
|
61
61
|
```python
|
|
62
62
|
set_client_info(self, client_info: OAuthClientInformationFull) -> None
|
|
63
63
|
```
|
|
64
64
|
|
|
65
|
-
### `OAuth` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/auth/oauth.py#
|
|
65
|
+
### `OAuth` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/auth/oauth.py#L136" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
|
66
66
|
|
|
67
67
|
|
|
68
68
|
OAuth client provider for MCP servers with browser-based authentication.
|
|
@@ -73,7 +73,7 @@ a browser for user authorization and running a local callback server.
|
|
|
73
73
|
|
|
74
74
|
**Methods:**
|
|
75
75
|
|
|
76
|
-
#### `redirect_handler` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/auth/oauth.py#
|
|
76
|
+
#### `redirect_handler` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/auth/oauth.py#L226" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
|
77
77
|
|
|
78
78
|
```python
|
|
79
79
|
redirect_handler(self, authorization_url: str) -> None
|
|
@@ -82,7 +82,7 @@ redirect_handler(self, authorization_url: str) -> None
|
|
|
82
82
|
Open browser for authorization, with pre-flight check for invalid client.
|
|
83
83
|
|
|
84
84
|
|
|
85
|
-
#### `callback_handler` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/auth/oauth.py#
|
|
85
|
+
#### `callback_handler` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/auth/oauth.py#L247" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
|
86
86
|
|
|
87
87
|
```python
|
|
88
88
|
callback_handler(self) -> tuple[str, str | None]
|
|
@@ -91,7 +91,7 @@ callback_handler(self) -> tuple[str, str | None]
|
|
|
91
91
|
Handle OAuth callback and return (auth_code, state).
|
|
92
92
|
|
|
93
93
|
|
|
94
|
-
#### `async_auth_flow` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/auth/oauth.py#
|
|
94
|
+
#### `async_auth_flow` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/auth/oauth.py#L284" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
|
95
95
|
|
|
96
96
|
```python
|
|
97
97
|
async_auth_flow(self, request: httpx.Request) -> AsyncGenerator[httpx.Request, httpx.Response]
|
|
@@ -25,10 +25,10 @@ create_callback_html(message: str, is_success: bool = True, title: str = 'FastMC
|
|
|
25
25
|
Create a styled HTML response for OAuth callbacks.
|
|
26
26
|
|
|
27
27
|
|
|
28
|
-
### `create_oauth_callback_server` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/oauth_callback.py#
|
|
28
|
+
### `create_oauth_callback_server` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/oauth_callback.py#L99" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
|
29
29
|
|
|
30
30
|
```python
|
|
31
|
-
create_oauth_callback_server(port: int, callback_path: str = '/callback', server_url: str | None = None,
|
|
31
|
+
create_oauth_callback_server(port: int, callback_path: str = '/callback', server_url: str | None = None, result_container: OAuthCallbackResult | None = None, result_ready: anyio.Event | None = None) -> Server
|
|
32
32
|
```
|
|
33
33
|
|
|
34
34
|
|
|
@@ -38,7 +38,8 @@ Create an OAuth callback server.
|
|
|
38
38
|
- `port`: The port to run the server on
|
|
39
39
|
- `callback_path`: The path to listen for OAuth redirects on
|
|
40
40
|
- `server_url`: Optional server URL to display in success messages
|
|
41
|
-
- `
|
|
41
|
+
- `result_container`: Optional container to store callback results
|
|
42
|
+
- `result_ready`: Optional event to signal when callback is received
|
|
42
43
|
|
|
43
44
|
**Returns:**
|
|
44
45
|
- Configured uvicorn Server instance (not yet running)
|
|
@@ -61,3 +62,9 @@ from_dict(cls, data: dict[str, str]) -> CallbackResponse
|
|
|
61
62
|
```python
|
|
62
63
|
to_dict(self) -> dict[str, str]
|
|
63
64
|
```
|
|
65
|
+
|
|
66
|
+
### `OAuthCallbackResult` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/oauth_callback.py#L91" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
Container for OAuth callback results, used with anyio.Event for async coordination.
|
|
70
|
+
|