fastmcp 2.14.3__tar.gz → 2.14.4__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.14.4/.loq_cache +1 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/PKG-INFO +4 -2
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/changelog.mdx +52 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/servers/tools.mdx +4 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/updates.mdx +20 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/pyproject.toml +3 -1
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/client/transports.py +1 -7
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/http.py +1 -7
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/low_level.py +25 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/server.py +0 -5
- fastmcp-2.14.4/src/fastmcp/server/tasks/capabilities.py +30 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/utilities/json_schema.py +129 -5
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/tasks/test_task_capabilities.py +6 -6
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/utilities/test_json_schema.py +109 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/uv.lock +11 -0
- fastmcp-2.14.3/src/fastmcp/server/tasks/capabilities.py +0 -22
- {fastmcp-2.14.3 → fastmcp-2.14.4}/.ccignore +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/.cursor/rules/core-mcp-objects.mdc +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/.cursor/worktrees.json +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/.github/ISSUE_TEMPLATE/bug.yml +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/.github/ISSUE_TEMPLATE/enhancement.yml +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/.github/copilot-instructions.md +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/.github/dependabot.yml +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/.github/pull_request_template.md +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/.github/release.yml +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/.github/workflows/auto-close-duplicates.yml +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/.github/workflows/auto-close-needs-mre.yml +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/.github/workflows/martian-issue-triage.yml +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/.github/workflows/martian-test-failure.yml +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/.github/workflows/marvin-dedupe-issues.yml +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/.github/workflows/marvin-label-triage.yml +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/.github/workflows/marvin.yml +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/.github/workflows/publish.yml +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/.github/workflows/run-static.yml +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/.github/workflows/run-tests.yml +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/.github/workflows/update-config-schema.yml +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/.github/workflows/update-sdk-docs.yml +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/.gitignore +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/.pre-commit-config.yaml +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/AGENTS.md +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/CLAUDE.md +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/CODE_OF_CONDUCT.md +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/LICENSE +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/README.md +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/SECURITY.md +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/.ccignore +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/.cursor/rules/mintlify.mdc +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/assets/brand/blue-logo.png +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/assets/brand/f-watercolor-waves-dark.png +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/assets/brand/f-watercolor-waves.png +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/assets/brand/favicon.svg +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/assets/brand/thumbnail-background.png +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/assets/brand/wordmark-padded.png +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/assets/brand/wordmark-watercolor-rainbow-dark.png +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/assets/brand/wordmark-watercolor-rainbow.png +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/assets/brand/wordmark-watercolor-waves-dark.png +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/assets/brand/wordmark-watercolor-waves.png +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/assets/brand/wordmark-white-padded.png +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/assets/brand/wordmark-white.png +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/assets/brand/wordmark.png +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/assets/images/fastmcp_cloud/connect.png +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/assets/images/fastmcp_cloud/create_project.png +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/assets/images/fastmcp_cloud/deployment.png +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/assets/images/fastmcp_cloud/quickstart.png +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/assets/images/oauth-proxy-consent-screen.png +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/assets/images/tutorial-rest-api-result.png +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/assets/schemas/mcp_server_config/latest.json +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/assets/schemas/mcp_server_config/v1.json +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/assets/updates/release-2-7.png +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/clients/auth/bearer.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/clients/auth/oauth.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/clients/client.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/clients/elicitation.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/clients/logging.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/clients/messages.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/clients/progress.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/clients/prompts.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/clients/resources.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/clients/roots.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/clients/sampling.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/clients/tasks.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/clients/tools.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/clients/transports.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/community/README.md +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/community/showcase.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/css/banner.css +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/css/python-sdk.css +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/css/style.css +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/css/version-badge.css +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/deployment/fastmcp-cloud.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/deployment/http.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/deployment/running-server.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/deployment/server-configuration.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/development/contributing.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/development/releases.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/development/tests.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/development/upgrade-guide.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/docs.json +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/getting-started/installation.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/getting-started/quickstart.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/getting-started/welcome.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/integrations/anthropic.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/integrations/auth0.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/integrations/authkit.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/integrations/aws-cognito.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/integrations/azure.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/integrations/chatgpt.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/integrations/claude-code.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/integrations/claude-desktop.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/integrations/cursor-install-mcp.png +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/integrations/cursor.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/integrations/descope.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/integrations/discord.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/integrations/eunomia-authorization.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/integrations/fastapi.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/integrations/gemini-cli.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/integrations/gemini.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/integrations/github.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/integrations/google.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/integrations/images/authkit/enable_dcr.png +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/integrations/images/oci/ociaddapplication.png +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/integrations/images/oci/ocieditdomainsettings.png +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/integrations/images/oci/ocieditdomainsettingsbutton.png +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/integrations/images/oci/ocioauthconfiguration.png +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/integrations/images/permit/abac_condition_example.png +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/integrations/images/permit/abac_policy_example.png +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/integrations/images/permit/policy_mapping.png +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/integrations/images/permit/role_assignement.png +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/integrations/mcp-json-configuration.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/integrations/oci.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/integrations/openai.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/integrations/openapi.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/integrations/permit.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/integrations/scalekit.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/integrations/supabase.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/integrations/workos.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/patterns/cli.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/patterns/contrib.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/patterns/decorating-methods.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/patterns/testing.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/patterns/tool-transformation.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/public/schemas/fastmcp.json/latest.json +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/public/schemas/fastmcp.json/v1.json +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-cli-__init__.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-cli-cli.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-cli-install-__init__.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-cli-install-claude_code.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-cli-install-claude_desktop.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-cli-install-cursor.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-cli-install-gemini_cli.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-cli-install-mcp_json.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-cli-install-shared.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-cli-run.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-cli-tasks.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-client-__init__.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-client-auth-__init__.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-client-auth-bearer.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-client-auth-oauth.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-client-client.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-client-elicitation.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-client-logging.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-client-messages.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-client-oauth_callback.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-client-progress.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-client-roots.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-client-sampling.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-client-tasks.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-client-transports.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-dependencies.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-exceptions.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-mcp_config.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-prompts-__init__.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-prompts-prompt.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-prompts-prompt_manager.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-resources-__init__.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-resources-resource.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-resources-resource_manager.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-resources-template.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-resources-types.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-__init__.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-auth-__init__.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-auth-auth.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-auth-jwt_issuer.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-auth-middleware.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-auth-oauth_proxy.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-auth-oidc_proxy.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-auth-providers-__init__.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-auth-providers-auth0.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-auth-providers-aws.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-auth-providers-azure.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-auth-providers-debug.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-auth-providers-descope.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-auth-providers-discord.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-auth-providers-github.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-auth-providers-google.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-auth-providers-in_memory.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-auth-providers-introspection.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-auth-providers-jwt.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-auth-providers-oci.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-auth-providers-scalekit.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-auth-providers-supabase.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-auth-providers-workos.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-auth-redirect_validation.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-context.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-dependencies.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-elicitation.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-event_store.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-http.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-low_level.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-middleware-__init__.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-middleware-caching.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-middleware-error_handling.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-middleware-logging.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-middleware-middleware.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-middleware-rate_limiting.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-middleware-timing.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-middleware-tool_injection.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-openapi-__init__.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-openapi-components.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-openapi-routing.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-openapi-server.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-proxy.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-server.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-tasks-__init__.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-tasks-capabilities.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-tasks-config.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-tasks-converters.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-tasks-handlers.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-tasks-keys.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-tasks-protocol.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-tasks-subscriptions.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-settings.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-tools-__init__.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-tools-tool.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-tools-tool_manager.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-tools-tool_transform.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-utilities-__init__.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-utilities-auth.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-utilities-cli.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-utilities-components.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-utilities-exceptions.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-utilities-http.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-utilities-inspect.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-utilities-json_schema.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-utilities-json_schema_type.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-utilities-logging.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-utilities-mcp_config.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-utilities-mcp_server_config-__init__.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-__init__.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-environments-__init__.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-environments-base.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-environments-uv.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-mcp_server_config.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-sources-__init__.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-sources-base.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-sources-filesystem.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-utilities-openapi-__init__.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-utilities-openapi-director.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-utilities-openapi-formatters.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-utilities-openapi-json_schema_converter.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-utilities-openapi-models.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-utilities-openapi-parser.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-utilities-openapi-schemas.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-utilities-tests.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-utilities-types.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-utilities-ui.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/servers/auth/authentication.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/servers/auth/full-oauth-server.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/servers/auth/oauth-proxy.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/servers/auth/oidc-proxy.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/servers/auth/remote-oauth.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/servers/auth/token-verification.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/servers/composition.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/servers/context.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/servers/elicitation.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/servers/icons.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/servers/logging.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/servers/middleware.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/servers/progress.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/servers/prompts.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/servers/proxy.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/servers/resources.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/servers/sampling.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/servers/server.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/servers/storage-backends.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/servers/tasks.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/snippets/local-focus.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/snippets/version-badge.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/snippets/youtube-embed.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/tutorials/create-mcp-server.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/tutorials/mcp.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/tutorials/rest-api.mdx +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/atproto_mcp/README.md +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/atproto_mcp/demo.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/atproto_mcp/fastmcp.json +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/atproto_mcp/pyproject.toml +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/atproto_mcp/src/atproto_mcp/__init__.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/atproto_mcp/src/atproto_mcp/__main__.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/atproto_mcp/src/atproto_mcp/_atproto/__init__.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/atproto_mcp/src/atproto_mcp/_atproto/_client.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/atproto_mcp/src/atproto_mcp/_atproto/_posts.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/atproto_mcp/src/atproto_mcp/_atproto/_profile.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/atproto_mcp/src/atproto_mcp/_atproto/_read.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/atproto_mcp/src/atproto_mcp/_atproto/_social.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/atproto_mcp/src/atproto_mcp/py.typed +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/atproto_mcp/src/atproto_mcp/server.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/atproto_mcp/src/atproto_mcp/settings.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/atproto_mcp/src/atproto_mcp/types.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/auth/authkit_dcr/README.md +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/auth/authkit_dcr/client.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/auth/authkit_dcr/server.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/auth/aws_oauth/README.md +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/auth/aws_oauth/client.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/auth/aws_oauth/requirements.txt +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/auth/aws_oauth/server.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/auth/azure_oauth/README.md +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/auth/azure_oauth/client.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/auth/azure_oauth/server.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/auth/discord_oauth/README.md +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/auth/discord_oauth/client.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/auth/discord_oauth/server.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/auth/github_oauth/README.md +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/auth/github_oauth/client.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/auth/github_oauth/server.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/auth/google_oauth/README.md +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/auth/google_oauth/client.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/auth/google_oauth/server.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/auth/mounted/README.md +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/auth/mounted/client.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/auth/mounted/server.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/auth/scalekit_oauth/README.md +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/auth/scalekit_oauth/client.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/auth/scalekit_oauth/server.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/auth/workos_oauth/README.md +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/auth/workos_oauth/client.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/auth/workos_oauth/server.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/complex_inputs.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/config_server.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/desktop.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/echo.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/fastmcp_config/env_interpolation_example.json +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/fastmcp_config/fastmcp.json +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/fastmcp_config/full_example.fastmcp.json +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/fastmcp_config/server.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/fastmcp_config/simple.fastmcp.json +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/fastmcp_config_demo/README.md +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/fastmcp_config_demo/fastmcp.json +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/fastmcp_config_demo/server.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/get_file.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/in_memory_proxy_example.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/memory.fastmcp.json +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/memory.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/mount_example.fastmcp.json +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/mount_example.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/sampling/README.md +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/sampling/server_fallback.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/sampling/structured_output.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/sampling/text.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/sampling/tool_use.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/screenshot.fastmcp.json +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/screenshot.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/serializer.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/simple_echo.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/smart_home/README.md +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/smart_home/hub.fastmcp.json +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/smart_home/lights.fastmcp.json +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/smart_home/pyproject.toml +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/smart_home/src/smart_home/__init__.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/smart_home/src/smart_home/__main__.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/smart_home/src/smart_home/hub.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/smart_home/src/smart_home/lights/__init__.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/smart_home/src/smart_home/lights/hue_utils.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/smart_home/src/smart_home/lights/server.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/smart_home/src/smart_home/py.typed +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/smart_home/src/smart_home/settings.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/tags_example.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/tasks/README.md +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/tasks/client.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/tasks/docker-compose.yml +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/tasks/server.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/testing_demo/README.md +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/testing_demo/pyproject.toml +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/testing_demo/server.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/testing_demo/tests/test_server.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/testing_demo/uv.lock +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/text_me.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/tool_result_echo.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/justfile +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/logo.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/scripts/auto_close_duplicates.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/scripts/auto_close_needs_mre.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/__init__.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/cli/__init__.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/cli/__main__.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/cli/cli.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/cli/install/__init__.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/cli/install/claude_code.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/cli/install/claude_desktop.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/cli/install/cursor.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/cli/install/gemini_cli.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/cli/install/mcp_json.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/cli/install/shared.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/cli/run.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/cli/tasks.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/client/__init__.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/client/auth/__init__.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/client/auth/bearer.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/client/auth/oauth.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/client/client.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/client/elicitation.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/client/logging.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/client/messages.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/client/oauth_callback.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/client/progress.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/client/roots.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/client/sampling/__init__.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/client/sampling/handlers/__init__.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/client/sampling/handlers/anthropic.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/client/sampling/handlers/openai.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/client/tasks.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/contrib/README.md +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/contrib/bulk_tool_caller/README.md +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/contrib/bulk_tool_caller/__init__.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/contrib/bulk_tool_caller/bulk_tool_caller.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/contrib/bulk_tool_caller/example.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/contrib/component_manager/README.md +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/contrib/component_manager/__init__.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/contrib/component_manager/component_manager.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/contrib/component_manager/component_service.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/contrib/component_manager/example.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/contrib/mcp_mixin/README.md +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/contrib/mcp_mixin/__init__.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/contrib/mcp_mixin/example.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/contrib/mcp_mixin/mcp_mixin.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/dependencies.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/exceptions.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/experimental/sampling/__init__.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/experimental/sampling/handlers/__init__.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/experimental/sampling/handlers/openai.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/experimental/server/openapi/__init__.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/experimental/utilities/openapi/__init__.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/mcp_config.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/prompts/__init__.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/prompts/prompt.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/prompts/prompt_manager.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/py.typed +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/resources/__init__.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/resources/resource.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/resources/resource_manager.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/resources/template.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/resources/types.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/__init__.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/auth/__init__.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/auth/auth.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/auth/handlers/authorize.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/auth/jwt_issuer.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/auth/middleware.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/auth/oauth_proxy.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/auth/oidc_proxy.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/auth/providers/__init__.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/auth/providers/auth0.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/auth/providers/aws.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/auth/providers/azure.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/auth/providers/debug.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/auth/providers/descope.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/auth/providers/discord.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/auth/providers/github.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/auth/providers/google.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/auth/providers/in_memory.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/auth/providers/introspection.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/auth/providers/jwt.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/auth/providers/oci.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/auth/providers/scalekit.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/auth/providers/supabase.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/auth/providers/workos.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/auth/redirect_validation.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/context.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/dependencies.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/elicitation.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/event_store.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/middleware/__init__.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/middleware/caching.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/middleware/error_handling.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/middleware/logging.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/middleware/middleware.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/middleware/rate_limiting.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/middleware/timing.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/middleware/tool_injection.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/openapi/README.md +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/openapi/__init__.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/openapi/components.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/openapi/routing.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/openapi/server.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/proxy.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/sampling/__init__.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/sampling/run.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/sampling/sampling_tool.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/tasks/__init__.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/tasks/config.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/tasks/converters.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/tasks/handlers.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/tasks/keys.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/tasks/protocol.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/tasks/subscriptions.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/settings.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/tools/__init__.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/tools/tool.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/tools/tool_manager.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/tools/tool_transform.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/utilities/__init__.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/utilities/auth.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/utilities/cli.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/utilities/components.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/utilities/exceptions.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/utilities/http.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/utilities/inspect.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/utilities/json_schema_type.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/utilities/logging.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/utilities/mcp_config.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/utilities/mcp_server_config/__init__.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/utilities/mcp_server_config/v1/__init__.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/utilities/mcp_server_config/v1/environments/__init__.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/utilities/mcp_server_config/v1/environments/base.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/utilities/mcp_server_config/v1/environments/uv.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/utilities/mcp_server_config/v1/mcp_server_config.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/utilities/mcp_server_config/v1/schema.json +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/utilities/mcp_server_config/v1/sources/__init__.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/utilities/mcp_server_config/v1/sources/base.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/utilities/mcp_server_config/v1/sources/filesystem.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/utilities/openapi/README.md +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/utilities/openapi/__init__.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/utilities/openapi/director.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/utilities/openapi/formatters.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/utilities/openapi/json_schema_converter.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/utilities/openapi/models.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/utilities/openapi/parser.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/utilities/openapi/schemas.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/utilities/tests.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/utilities/types.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/utilities/ui.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/utilities/version_check.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/__init__.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/cli/__init__.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/cli/test_cli.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/cli/test_config.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/cli/test_cursor.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/cli/test_install.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/cli/test_mcp_server_config_integration.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/cli/test_mcp_server_config_schema.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/cli/test_project_prepare.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/cli/test_run.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/cli/test_run_config.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/cli/test_server_args.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/cli/test_shared.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/cli/test_tasks.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/cli/test_with_argv.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/client/__init__.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/client/auth/__init__.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/client/auth/test_oauth_client.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/client/sampling/__init__.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/client/sampling/handlers/__init__.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/client/sampling/handlers/test_anthropic_handler.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/client/sampling/handlers/test_openai_handler.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/client/tasks/conftest.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/client/tasks/test_client_prompt_tasks.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/client/tasks/test_client_resource_tasks.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/client/tasks/test_client_task_notifications.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/client/tasks/test_client_task_protocol.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/client/tasks/test_client_tool_tasks.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/client/tasks/test_prompt_task_mcp_message.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/client/tasks/test_task_context_validation.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/client/tasks/test_task_result_caching.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/client/test_client.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/client/test_elicitation.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/client/test_logs.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/client/test_notifications.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/client/test_oauth_callback_xss.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/client/test_openapi.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/client/test_progress.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/client/test_roots.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/client/test_sampling.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/client/test_sse.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/client/test_stdio.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/client/test_streamable_http.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/client/transports/__init__.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/client/transports/test_transports.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/client/transports/test_uv_transport.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/conftest.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/contrib/__init__.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/contrib/test_bulk_tool_caller.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/contrib/test_component_manager.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/contrib/test_mcp_mixin.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/deprecated/__init__.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/deprecated/test_deprecated.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/deprecated/test_exclude_args.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/deprecated/test_openapi_deprecations.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/deprecated/test_settings.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/experimental/README.md +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/experimental/__init__.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/integration_tests/__init__.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/integration_tests/auth/__init__.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/integration_tests/auth/test_github_provider_integration.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/integration_tests/conftest.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/integration_tests/test_github_mcp_remote.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/integration_tests/test_timeout_fix.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/prompts/__init__.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/prompts/test_prompt.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/prompts/test_prompt_manager.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/resources/__init__.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/resources/test_file_resources.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/resources/test_function_resources.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/resources/test_resource_manager.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/resources/test_resource_template.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/resources/test_resource_template_meta.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/resources/test_resources.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/__init__.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/auth/__init__.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/auth/providers/__init__.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/auth/providers/test_auth0.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/auth/providers/test_aws.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/auth/providers/test_azure.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/auth/providers/test_descope.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/auth/providers/test_discord.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/auth/providers/test_github.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/auth/providers/test_google.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/auth/providers/test_introspection.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/auth/providers/test_scalekit.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/auth/providers/test_supabase.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/auth/providers/test_workos.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/auth/test_auth_provider.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/auth/test_debug_verifier.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/auth/test_enhanced_error_responses.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/auth/test_jwt_issuer.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/auth/test_jwt_provider.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/auth/test_oauth_consent_flow.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/auth/test_oauth_mounting.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/auth/test_oauth_proxy.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/auth/test_oauth_proxy_redirect_validation.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/auth/test_oauth_proxy_storage.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/auth/test_oidc_proxy.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/auth/test_redirect_validation.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/auth/test_remote_auth_provider.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/auth/test_static_token_verifier.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/http/__init__.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/http/test_bearer_auth_backend.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/http/test_custom_routes.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/http/test_http_auth_middleware.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/http/test_http_dependencies.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/http/test_http_middleware.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/http/test_stale_access_token.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/middleware/__init__.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/middleware/test_caching.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/middleware/test_error_handling.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/middleware/test_initialization_middleware.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/middleware/test_logging.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/middleware/test_middleware.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/middleware/test_rate_limiting.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/middleware/test_timing.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/middleware/test_tool_injection.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/openapi/__init__.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/openapi/test_comprehensive.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/openapi/test_deepobject_style.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/openapi/test_end_to_end_compatibility.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/openapi/test_openapi_features.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/openapi/test_openapi_performance.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/openapi/test_parameter_collisions.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/openapi/test_performance_comparison.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/openapi/test_server.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/proxy/__init__.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/proxy/test_proxy_client.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/proxy/test_proxy_server.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/proxy/test_stateful_proxy_client.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/sampling/__init__.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/sampling/test_sampling_tool.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/tasks/__init__.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/tasks/conftest.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/tasks/test_progress_dependency.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/tasks/test_server_tasks_parameter.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/tasks/test_sync_function_task_disabled.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/tasks/test_task_config_modes.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/tasks/test_task_dependencies.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/tasks/test_task_metadata.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/tasks/test_task_methods.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/tasks/test_task_mount.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/tasks/test_task_prompts.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/tasks/test_task_protocol.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/tasks/test_task_proxy.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/tasks/test_task_resources.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/tasks/test_task_return_types.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/tasks/test_task_security.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/tasks/test_task_status_notifications.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/tasks/test_task_tools.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/tasks/test_task_ttl.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/test_app_state.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/test_auth_integration.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/test_context.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/test_dependencies.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/test_event_store.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/test_file_server.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/test_icons.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/test_import_server.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/test_input_validation.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/test_log_level.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/test_logging.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/test_mount.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/test_run_server.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/test_server.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/test_server_docket.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/test_server_interactions.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/test_server_lifespan.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/test_streamable_http_no_redirect.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/test_tool_annotations.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/test_tool_transformation.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/test_mcp_config.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/tools/__init__.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/tools/test_tool.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/tools/test_tool_future_annotations.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/tools/test_tool_manager.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/tools/test_tool_transform.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/utilities/__init__.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/utilities/openapi/__init__.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/utilities/openapi/conftest.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/utilities/openapi/test_allof_requestbody.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/utilities/openapi/test_direct_array_schemas.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/utilities/openapi/test_director.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/utilities/openapi/test_legacy_compatibility.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/utilities/openapi/test_models.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/utilities/openapi/test_nullable_fields.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/utilities/openapi/test_parser.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/utilities/openapi/test_schemas.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/utilities/openapi/test_transitive_references.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/utilities/test_cli.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/utilities/test_components.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/utilities/test_inspect.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/utilities/test_json_schema_type.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/utilities/test_logging.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/utilities/test_tests.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/utilities/test_typeadapter.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/utilities/test_types.py +0 -0
- {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/utilities/test_version_check.py +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":1,"config_hash":11396655348812081611,"entries":{"src/fastmcp/utilities/openapi/director.py":{"mtime_secs":1767910209,"mtime_nanos":992787531,"lines":214},"tests/cli/test_server_args.py":{"mtime_secs":1767910209,"mtime_nanos":995113177,"lines":135},"src/fastmcp/tools/tool_transform.py":{"mtime_secs":1768275412,"mtime_nanos":806607645,"lines":954},"tests/deprecated/test_exclude_args.py":{"mtime_secs":1767910209,"mtime_nanos":999348759,"lines":122},"docs/python-sdk/fastmcp-server-providers-openapi-components.mdx":{"mtime_secs":1768065435,"mtime_nanos":779723054,"lines":62},"src/fastmcp/client/auth/__init__.py":{"mtime_secs":1767910209,"mtime_nanos":977333260,"lines":4},"src/fastmcp/utilities/openapi/parser.py":{"mtime_secs":1768275516,"mtime_nanos":979099727,"lines":821},"SECURITY.md":{"mtime_secs":1767910209,"mtime_nanos":926953703,"lines":16},"src/fastmcp/utilities/ui.py":{"mtime_secs":1767910209,"mtime_nanos":993615038,"lines":626},"src/fastmcp/server/providers/base.py":{"mtime_secs":1768273914,"mtime_nanos":444251277,"lines":440},".git/logs/refs/heads/docs/v3-features":{"mtime_secs":1767969249,"mtime_nanos":769502827,"lines":2},"examples/auth/aws_oauth/client.py":{"mtime_secs":1767910209,"mtime_nanos":968159215,"lines":42},"tests/server/tasks/test_progress_dependency.py":{"mtime_secs":1767910210,"mtime_nanos":8447303,"lines":155},"examples/auth/mounted/README.md":{"mtime_secs":1767910209,"mtime_nanos":969564771,"lines":39},"docs/python-sdk/fastmcp-server-auth-providers-oci.mdx":{"mtime_secs":1767910209,"mtime_nanos":956156603,"lines":97},"src/fastmcp/client/sampling/handlers/anthropic.py":{"mtime_secs":1768275398,"mtime_nanos":427536231,"lines":387},"docs/getting-started/welcome.mdx":{"mtime_secs":1767910209,"mtime_nanos":944326533,"lines":111},"docs/python-sdk/fastmcp-server-providers-__init__.mdx":{"mtime_secs":1767910209,"mtime_nanos":958130038,"lines":34},"docs/python-sdk/fastmcp-client-sampling-__init__.mdx":{"mtime_secs":1767910209,"mtime_nanos":953356451,"lines":14},"src/fastmcp/server/middleware/ping.py":{"mtime_secs":1768091029,"mtime_nanos":865950840,"lines":70},".git/logs/refs/remotes/origin/main":{"mtime_secs":1768274758,"mtime_nanos":717800467,"lines":20},"docs/python-sdk/fastmcp-utilities-async_utils.mdx":{"mtime_secs":1767910209,"mtime_nanos":960405768,"lines":31},"tests/utilities/openapi/test_schemas.py":{"mtime_secs":1767910210,"mtime_nanos":13283015,"lines":641},"docs/python-sdk/fastmcp-server-providers-openapi-routing.mdx":{"mtime_secs":1767910209,"mtime_nanos":958712293,"lines":23},"docs/servers/auth/full-oauth-server.mdx":{"mtime_secs":1767910209,"mtime_nanos":962925875,"lines":229},"tests/prompts/test_prompt.py":{"mtime_secs":1767910210,"mtime_nanos":542895,"lines":552},"docs/python-sdk/fastmcp-cli-install-__init__.mdx":{"mtime_secs":1767910209,"mtime_nanos":951870646,"lines":9},".git/objects/e7/e6381760d02ce95c255e23d0af84c02f42220a":{"mtime_secs":1768005421,"mtime_nanos":534528398,"lines":1},"tests/server/providers/test_transforming_provider.py":{"mtime_secs":1768273914,"mtime_nanos":459430812,"lines":317},"docs/python-sdk/fastmcp-utilities-logging.mdx":{"mtime_secs":1767910209,"mtime_nanos":961037482,"lines":58},"tests/cli/test_run.py":{"mtime_secs":1767966312,"mtime_nanos":928730568,"lines":628},".git/hooks/post-update.sample":{"mtime_secs":1767910208,"mtime_nanos":710089045,"lines":8},"src/fastmcp/client/sampling/handlers/__init__.py":{"mtime_secs":1767910209,"mtime_nanos":978318686,"lines":0},".git/refs/tags/v2.14.3":{"mtime_secs":1768250271,"mtime_nanos":813098679,"lines":1},"tests/utilities/openapi/test_direct_array_schemas.py":{"mtime_secs":1767910210,"mtime_nanos":12777094,"lines":323},"docs/patterns/cli.mdx":{"mtime_secs":1767966312,"mtime_nanos":924886254,"lines":581},"v3-notes/provider-test-pattern.md":{"mtime_secs":1767910210,"mtime_nanos":15350284,"lines":60},"examples/auth/azure_oauth/README.md":{"mtime_secs":1767910209,"mtime_nanos":968397926,"lines":51},"examples/fastmcp_config_demo/fastmcp.json":{"mtime_secs":1767910209,"mtime_nanos":971255411,"lines":14},"examples/auth/workos_oauth/client.py":{"mtime_secs":1767910209,"mtime_nanos":970195151,"lines":32},"tests/server/providers/test_local_provider_tools.py":{"mtime_secs":1768273914,"mtime_nanos":458671764,"lines":1554},"examples/sampling/server_fallback.py":{"mtime_secs":1767910209,"mtime_nanos":972350172,"lines":88},".git/objects/b8/6856651bde553af9d8eb4dc0e5071d3c8d5aa1":{"mtime_secs":1768264193,"mtime_nanos":370429063,"lines":1},"tests/cli/__init__.py":{"mtime_secs":1767910209,"mtime_nanos":993941083,"lines":1},".git/logs/refs/heads/main":{"mtime_secs":1768307169,"mtime_nanos":292873529,"lines":18},"docs/snippets/version-badge.mdx":{"mtime_secs":1767910209,"mtime_nanos":965687359,"lines":7},"tests/resources/test_resource_template_meta.py":{"mtime_secs":1767910210,"mtime_nanos":1079442,"lines":25},".gitignore":{"mtime_secs":1768258809,"mtime_nanos":233149804,"lines":78},"src/fastmcp/server/providers/fastmcp_provider.py":{"mtime_secs":1768273914,"mtime_nanos":444544279,"lines":586},".github/workflows/run-tests.yml":{"mtime_secs":1767910209,"mtime_nanos":926165612,"lines":115},".git/refs/remotes/origin/marvin/update-sdk-docs":{"mtime_secs":1768089463,"mtime_nanos":978028759,"lines":1},"src/fastmcp/contrib/component_manager/component_manager.py":{"mtime_secs":1767910209,"mtime_nanos":979707033,"lines":186},"tests/utilities/test_tests.py":{"mtime_secs":1767910210,"mtime_nanos":14002730,"lines":10},"docs/integrations/google.mdx":{"mtime_secs":1767910209,"mtime_nanos":946224301,"lines":190},"examples/auth/discord_oauth/client.py":{"mtime_secs":1767910209,"mtime_nanos":968815055,"lines":32},"tests/client/transports/test_uv_transport.py":{"mtime_secs":1767910209,"mtime_nanos":998203373,"lines":120},"examples/providers/sqlite/server.py":{"mtime_secs":1767910209,"mtime_nanos":972114669,"lines":137},"tests/server/tasks/test_task_meta_parameter.py":{"mtime_secs":1768275439,"mtime_nanos":342125571,"lines":314},".git/hooks/fsmonitor-watchman.sample":{"mtime_secs":1767910208,"mtime_nanos":709482747,"lines":174},"tests/server/auth/test_static_token_verifier.py":{"mtime_secs":1767910210,"mtime_nanos":3875135,"lines":112},"examples/atproto_mcp/fastmcp.json":{"mtime_secs":1767910209,"mtime_nanos":966618743,"lines":11},"tests/client/tasks/test_client_tool_tasks.py":{"mtime_secs":1767910209,"mtime_nanos":996490982,"lines":88},"examples/atproto_mcp/src/atproto_mcp/types.py":{"mtime_secs":1767910209,"mtime_nanos":967685295,"lines":142},"tests/deprecated/test_settings.py":{"mtime_secs":1767910209,"mtime_nanos":999584095,"lines":319},"src/fastmcp/server/auth/providers/workos.py":{"mtime_secs":1767910209,"mtime_nanos":984868373,"lines":334},"justfile":{"mtime_secs":1768065435,"mtime_nanos":785265946,"lines":33},"examples/simple_echo.py":{"mtime_secs":1767910209,"mtime_nanos":972764176,"lines":14},"tests/client/sampling/__init__.py":{"mtime_secs":1767910209,"mtime_nanos":995675724,"lines":0},".git/objects/31/9dbc29ca3b5d2fa8002996bc59551ff71f9d70":{"mtime_secs":1768062579,"mtime_nanos":885083643,"lines":4},".git/objects/93/35be4d05ca027881cfcba80b81a6c1713a4f1d":{"mtime_secs":1768260294,"mtime_nanos":900190040,"lines":1},"tests/tools/test_tool_future_annotations.py":{"mtime_secs":1767910210,"mtime_nanos":12078754,"lines":170},"src/fastmcp/server/sampling/sampling_tool.py":{"mtime_secs":1768274887,"mtime_nanos":463792397,"lines":109},".git/logs/refs/remotes/origin/docs/2.14.3-release-notes":{"mtime_secs":1768257849,"mtime_nanos":588909791,"lines":2},"docs/python-sdk/fastmcp-server-auth-oauth_proxy.mdx":{"mtime_secs":1768065435,"mtime_nanos":777932327,"lines":450},"docs/python-sdk/fastmcp-server-tasks-capabilities.mdx":{"mtime_secs":1767910209,"mtime_nanos":959386550,"lines":24},"examples/atproto_mcp/pyproject.toml":{"mtime_secs":1767910209,"mtime_nanos":966687993,"lines":24},"tests/server/auth/test_redirect_validation.py":{"mtime_secs":1767910210,"mtime_nanos":3701592,"lines":141},"examples/providers/sqlite/README.md":{"mtime_secs":1767910209,"mtime_nanos":972017710,"lines":59},"docs/python-sdk/fastmcp-fs-provider.mdx":{"mtime_secs":1768065435,"mtime_nanos":776887191,"lines":111},"src/fastmcp/server/middleware/caching.py":{"mtime_secs":1767910209,"mtime_nanos":986217719,"lines":523},".git/hooks/pre-commit.sample":{"mtime_secs":1767910208,"mtime_nanos":709028535,"lines":49},".claude/skills/code-review/SKILL.md":{"mtime_secs":1768258809,"mtime_nanos":228829565,"lines":94},"tests/experimental/__init__.py":{"mtime_secs":1767910209,"mtime_nanos":999851972,"lines":0},"docs/integrations/authkit.mdx":{"mtime_secs":1767910209,"mtime_nanos":944617328,"lines":97},"examples/auth/azure_oauth/server.py":{"mtime_secs":1767910209,"mtime_nanos":968616595,"lines":44},"docs/python-sdk/fastmcp-server-auth-providers-scalekit.mdx":{"mtime_secs":1767910209,"mtime_nanos":956226145,"lines":61},"docs/css/version-badge.css":{"mtime_secs":1767910209,"mtime_nanos":942847894,"lines":23},"src/fastmcp/server/sampling/run.py":{"mtime_secs":1767910209,"mtime_nanos":988831452,"lines":301},"src/fastmcp/server/elicitation.py":{"mtime_secs":1768275640,"mtime_nanos":259244716,"lines":464},"docs/python-sdk/fastmcp-server-server.mdx":{"mtime_secs":1768065435,"mtime_nanos":780328686,"lines":999},"src/fastmcp/utilities/openapi/json_schema_converter.py":{"mtime_secs":1767910209,"mtime_nanos":992962449,"lines":344},"tests/utilities/test_types.py":{"mtime_secs":1768275527,"mtime_nanos":948940954,"lines":673},".git/objects/4c/60c479486a200c6964459fde312735a7e98b7f":{"mtime_secs":1768086708,"mtime_nanos":458223620,"lines":2},"docs/servers/authorization.mdx":{"mtime_secs":1768267998,"mtime_nanos":893587923,"lines":348},"tests/client/test_stdio.py":{"mtime_secs":1767910209,"mtime_nanos":997871370,"lines":364},"docs/servers/auth/remote-oauth.mdx":{"mtime_secs":1767994445,"mtime_nanos":311035162,"lines":226},"docs/python-sdk/fastmcp-utilities-openapi-__init__.mdx":{"mtime_secs":1767910209,"mtime_nanos":961889240,"lines":9},"docs/clients/tasks.mdx":{"mtime_secs":1767910209,"mtime_nanos":942184180,"lines":138},"docs/integrations/cursor.mdx":{"mtime_secs":1767910209,"mtime_nanos":945471836,"lines":284},"tests/utilities/openapi/test_models.py":{"mtime_secs":1768275463,"mtime_nanos":454793530,"lines":476},"tests/server/tasks/test_task_dependencies.py":{"mtime_secs":1768275526,"mtime_nanos":565296627,"lines":273},"tests/server/test_dependencies.py":{"mtime_secs":1768091029,"mtime_nanos":869855251,"lines":1046},"src/fastmcp/tools/__init__.py":{"mtime_secs":1768273914,"mtime_nanos":450073905,"lines":12},"examples/tags_example.py":{"mtime_secs":1767910209,"mtime_nanos":973748226,"lines":141},"src/fastmcp/server/auth/providers/jwt.py":{"mtime_secs":1768275400,"mtime_nanos":826342650,"lines":527},"examples/sampling/text.py":{"mtime_secs":1767910209,"mtime_nanos":972486756,"lines":78},"docs/snippets/youtube-embed.mdx":{"mtime_secs":1767910209,"mtime_nanos":965751026,"lines":12},"src/fastmcp/utilities/tests.py":{"mtime_secs":1767910209,"mtime_nanos":993432787,"lines":286},"tests/server/tasks/__init__.py":{"mtime_secs":1767910210,"mtime_nanos":8212759,"lines":1},"docs/python-sdk/fastmcp-mcp_config.mdx":{"mtime_secs":1768065435,"mtime_nanos":777111069,"lines":188},"docs/python-sdk/fastmcp-server-middleware-__init__.mdx":{"mtime_secs":1767910209,"mtime_nanos":957037111,"lines":8},".git/objects/f3/d31eb8ff45646ba054dbe7b987651d3ebdb521":{"mtime_secs":1768239135,"mtime_nanos":940129268,"lines":2},"examples/auth/google_oauth/server.py":{"mtime_secs":1767910209,"mtime_nanos":969466895,"lines":37},".git/objects/2f/565079e9b10d352c7239ad621fcc8598d5ed20":{"mtime_secs":1768062579,"mtime_nanos":824886000,"lines":1},"src/fastmcp/tools/tool.py":{"mtime_secs":1768273914,"mtime_nanos":451154831,"lines":482},"src/fastmcp/_vendor/docket_di/README.md":{"mtime_secs":1768091029,"mtime_nanos":862241388,"lines":7},"docs/clients/elicitation.mdx":{"mtime_secs":1767910209,"mtime_nanos":941396839,"lines":125},"src/fastmcp/server/tasks/requests.py":{"mtime_secs":1768091029,"mtime_nanos":868130360,"lines":426},"docs/python-sdk/fastmcp-tools-tool_transform.mdx":{"mtime_secs":1767910209,"mtime_nanos":960260975,"lines":310},"src/fastmcp/server/transforms/namespace.py":{"mtime_secs":1768273914,"mtime_nanos":448345558,"lines":188},"docs/servers/auth/token-verification.mdx":{"mtime_secs":1767910209,"mtime_nanos":963487422,"lines":333},"docs/integrations/gemini.mdx":{"mtime_secs":1767910209,"mtime_nanos":946005674,"lines":108},".git/logs/HEAD":{"mtime_secs":1768275805,"mtime_nanos":78401130,"lines":55},"src/fastmcp/utilities/__init__.py":{"mtime_secs":1767910209,"mtime_nanos":990509176,"lines":1},"src/fastmcp/server/auth/providers/supabase.py":{"mtime_secs":1767910209,"mtime_nanos":984783914,"lines":164},"examples/filesystem-provider/mcp/prompts/assistant.py":{"mtime_secs":1768065435,"mtime_nanos":784210477,"lines":39},"tests/server/auth/test_jwt_provider.py":{"mtime_secs":1768275438,"mtime_nanos":820705989,"lines":1101},"docs/tutorials/create-mcp-server.mdx":{"mtime_secs":1767910209,"mtime_nanos":965895778,"lines":198},"docs/python-sdk/fastmcp-server-tasks-routing.mdx":{"mtime_secs":1767910209,"mtime_nanos":959793637,"lines":37},"src/fastmcp/utilities/mcp_server_config/v1/mcp_server_config.py":{"mtime_secs":1768275416,"mtime_nanos":702325579,"lines":447},"src/fastmcp/contrib/component_manager/component_service.py":{"mtime_secs":1768273914,"mtime_nanos":439669741,"lines":275},"docs/python-sdk/fastmcp-server-middleware-timing.mdx":{"mtime_secs":1767910209,"mtime_nanos":957700700,"lines":105},"docs/python-sdk/fastmcp-client-tasks.mdx":{"mtime_secs":1767910209,"mtime_nanos":953645496,"lines":219},".git/logs/refs/remotes/origin/extract-parsedfunction":{"mtime_secs":1768307169,"mtime_nanos":50943729,"lines":2},"src/fastmcp/contrib/component_manager/__init__.py":{"mtime_secs":1767910209,"mtime_nanos":979611615,"lines":4},"docs/python-sdk/fastmcp-server-lifespan.mdx":{"mtime_secs":1768065435,"mtime_nanos":779457593,"lines":101},".git/objects/68/785c1444ba42226616d47299fae0f392c5d399":{"mtime_secs":1768273107,"mtime_nanos":896549041,"lines":3},".github/workflows/run-static.yml":{"mtime_secs":1767910209,"mtime_nanos":926107028,"lines":54},".git/objects/ea/1a67ab3a6b6d08e1123a73d1bc8eb92dbff771":{"mtime_secs":1768239165,"mtime_nanos":730277220,"lines":3},"docs/integrations/supabase.mdx":{"mtime_secs":1767910209,"mtime_nanos":950541508,"lines":112},"docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-mcp_server_config.mdx":{"mtime_secs":1767910209,"mtime_nanos":961622696,"lines":235},"tests/server/providers/test_local_provider_resources.py":{"mtime_secs":1768275439,"mtime_nanos":342156321,"lines":974},"tests/integration_tests/test_github_mcp_remote.py":{"mtime_secs":1767910210,"mtime_nanos":364144,"lines":123},"examples/fastmcp_config_demo/README.md":{"mtime_secs":1767910209,"mtime_nanos":971133452,"lines":55},"examples/testing_demo/server.py":{"mtime_secs":1767910209,"mtime_nanos":974447858,"lines":61},"CODE_OF_CONDUCT.md":{"mtime_secs":1767910209,"mtime_nanos":926670575,"lines":128},"examples/auth/scalekit_oauth/client.py":{"mtime_secs":1767910209,"mtime_nanos":969898232,"lines":41},"tests/deprecated/test_function_component_imports.py":{"mtime_secs":1768273914,"mtime_nanos":452909053,"lines":121},"docs/python-sdk/fastmcp-server-auth-middleware.mdx":{"mtime_secs":1767910209,"mtime_nanos":954913966,"lines":26},"tests/server/sampling/__init__.py":{"mtime_secs":1767910210,"mtime_nanos":8038674,"lines":0},".git/objects/cb/9fc0ca58c46cc07138bf43393b12ef01eda4b4":{"mtime_secs":1768257849,"mtime_nanos":518775600,"lines":2},"src/fastmcp/server/http.py":{"mtime_secs":1768275411,"mtime_nanos":464247158,"lines":382},"src/fastmcp/resources/template.py":{"mtime_secs":1768275400,"mtime_nanos":82008964,"lines":576},"examples/auth/workos_oauth/server.py":{"mtime_secs":1767910209,"mtime_nanos":970270527,"lines":37},".git/objects/19/7fe9cf35897c43fb5d57867dd764138f5fc2ab":{"mtime_secs":1767926606,"mtime_nanos":96458141,"lines":2},"docs/servers/prompts.mdx":{"mtime_secs":1768273914,"mtime_nanos":435132289,"lines":447},"tests/prompts/test_standalone_decorator.py":{"mtime_secs":1768275437,"mtime_nanos":873943221,"lines":138},"src/fastmcp/resources/function_resource.py":{"mtime_secs":1768275399,"mtime_nanos":858506815,"lines":311},".ccignore":{"mtime_secs":1767910209,"mtime_nanos":924747432,"lines":7},".git/objects/9b/33a05d09785b4230a6451273c18304be7c0492":{"mtime_secs":1768239135,"mtime_nanos":936469614,"lines":2},"src/fastmcp/server/providers/openapi/__init__.py":{"mtime_secs":1767910209,"mtime_nanos":987919818,"lines":39},"src/fastmcp/server/middleware/logging.py":{"mtime_secs":1767910209,"mtime_nanos":986532138,"lines":256},"docs/deployment/fastmcp-cloud.mdx":{"mtime_secs":1767910209,"mtime_nanos":943008979,"lines":89},"tests/server/middleware/test_error_handling.py":{"mtime_secs":1767910210,"mtime_nanos":4735185,"lines":652},"docs/python-sdk/fastmcp-server-middleware-error_handling.mdx":{"mtime_secs":1767910209,"mtime_nanos":957332864,"lines":60},"tests/server/auth/test_jwt_issuer.py":{"mtime_secs":1767910210,"mtime_nanos":2784666,"lines":230},"docs/integrations/openapi.mdx":{"mtime_secs":1767910209,"mtime_nanos":950315964,"lines":455},"tests/server/test_mount.py":{"mtime_secs":1768273914,"mtime_nanos":460305652,"lines":1560},"tests/test_mcp_config.py":{"mtime_secs":1768008814,"mtime_nanos":227519168,"lines":930},"docs/python-sdk/fastmcp-server-providers-transforming.mdx":{"mtime_secs":1767910209,"mtime_nanos":958857420,"lines":117},"src/fastmcp/server/auth/providers/aws.py":{"mtime_secs":1767910209,"mtime_nanos":983269149,"lines":194},"docs/integrations/aws-cognito.mdx":{"mtime_secs":1767910209,"mtime_nanos":944737995,"lines":279},"examples/screenshot.fastmcp.json":{"mtime_secs":1767910209,"mtime_nanos":972635924,"lines":7},"src/fastmcp/server/providers/openapi/components.py":{"mtime_secs":1767910209,"mtime_nanos":988069653,"lines":332},"tests/integration_tests/auth/test_github_provider_integration.py":{"mtime_secs":1767910210,"mtime_nanos":179975,"lines":401},"docs/python-sdk/fastmcp-tools-tool.mdx":{"mtime_secs":1767910209,"mtime_nanos":960127473,"lines":183},"src/fastmcp/server/auth/redirect_validation.py":{"mtime_secs":1767910209,"mtime_nanos":984937332,"lines":65},".git/objects/cd/904efabf4a61a937065edd2987f5891d02d7b0":{"mtime_secs":1768243987,"mtime_nanos":509810050,"lines":1},"scripts/auto_close_needs_mre.py":{"mtime_secs":1767910209,"mtime_nanos":975791829,"lines":384},".git/objects/37/21dde8cfec40eb43bd4388a209a25840683666":{"mtime_secs":1768268287,"mtime_nanos":210062148,"lines":3},"tests/cli/test_cursor.py":{"mtime_secs":1767910209,"mtime_nanos":994239961,"lines":433},"tests/__init__.py":{"mtime_secs":1767910209,"mtime_nanos":993815832,"lines":0},"docs/python-sdk/fastmcp-server-auth-jwt_issuer.mdx":{"mtime_secs":1767910209,"mtime_nanos":954849799,"lines":104},"src/fastmcp/server/middleware/timing.py":{"mtime_secs":1767910209,"mtime_nanos":986826808,"lines":156},"tests/client/__init__.py":{"mtime_secs":1767910209,"mtime_nanos":995406347,"lines":0},"docs/python-sdk/fastmcp-client-sampling-handlers-anthropic.mdx":{"mtime_secs":1767910209,"mtime_nanos":953481661,"lines":17},".git/refs/remotes/origin/main":{"mtime_secs":1768274758,"mtime_nanos":708872106,"lines":1},"docs/.cursor/rules/mintlify.mdc":{"mtime_secs":1767910209,"mtime_nanos":927227914,"lines":364},"docs/python-sdk/fastmcp-fs-__init__.mdx":{"mtime_secs":1768065435,"mtime_nanos":775960848,"lines":43},".git/objects/27/67471e1ff17ae54ae8414a0f7dbda7b8c8ca23":{"mtime_secs":1768052340,"mtime_nanos":61644163,"lines":2},"docs/servers/lifespan.mdx":{"mtime_secs":1768267998,"mtime_nanos":896437900,"lines":143},"examples/auth/authkit_dcr/README.md":{"mtime_secs":1767910209,"mtime_nanos":967833754,"lines":25},"src/fastmcp/client/auth/bearer.py":{"mtime_secs":1767910209,"mtime_nanos":977402511,"lines":17},"docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-environments-base.mdx":{"mtime_secs":1767910209,"mtime_nanos":961402777,"lines":43},"tests/server/auth/test_oauth_proxy_storage.py":{"mtime_secs":1767910210,"mtime_nanos":3496173,"lines":209},"docs/servers/resources.mdx":{"mtime_secs":1768273914,"mtime_nanos":437562516,"lines":731},"tests/server/tasks/test_custom_subclass_tasks.py":{"mtime_secs":1767910210,"mtime_nanos":8360302,"lines":184},"src/fastmcp/server/providers/proxy.py":{"mtime_secs":1768275412,"mtime_nanos":47513686,"lines":823},".git/objects/de/4d234c6bd2ea6aa73fa53984b455575f58d5ce":{"mtime_secs":1767969241,"mtime_nanos":781244482,"lines":1},"examples/testing_demo/pyproject.toml":{"mtime_secs":1767910209,"mtime_nanos":974385191,"lines":18},"docs/python-sdk/fastmcp-fs-discovery.mdx":{"mtime_secs":1768065435,"mtime_nanos":776652105,"lines":103},"tests/cli/test_mcp_server_config_schema.py":{"mtime_secs":1767910209,"mtime_nanos":994628340,"lines":172},"docs/python-sdk/fastmcp-client-auth-__init__.mdx":{"mtime_secs":1767910209,"mtime_nanos":952495652,"lines":8},".git/objects/72/6976a99f9047380adade068b0f62fff32db528":{"mtime_secs":1767994305,"mtime_nanos":379680587,"lines":1},".git/refs/remotes/origin/docs/2.14.3-release-notes":{"mtime_secs":1768257849,"mtime_nanos":588603706,"lines":1},".git/objects/7f/2c4c108dac2b2aff8177cca5d47b6f3f5595bf":{"mtime_secs":1768274969,"mtime_nanos":977579000,"lines":1},"tests/utilities/openapi/conftest.py":{"mtime_secs":1767910210,"mtime_nanos":12521841,"lines":222},"examples/auth/discord_oauth/server.py":{"mtime_secs":1767910209,"mtime_nanos":968888139,"lines":35},"tests/server/auth/providers/test_azure.py":{"mtime_secs":1767910210,"mtime_nanos":1640864,"lines":809},"tests/cli/test_run_config.py":{"mtime_secs":1767910209,"mtime_nanos":995001801,"lines":312},".github/workflows/update-sdk-docs.yml":{"mtime_secs":1767910209,"mtime_nanos":926281071,"lines":74},"src/fastmcp/server/middleware/__init__.py":{"mtime_secs":1768267998,"mtime_nanos":906111003,"lines":15},".github/dependabot.yml":{"mtime_secs":1767910209,"mtime_nanos":925259687,"lines":20},"src/fastmcp/utilities/openapi/__init__.py":{"mtime_secs":1767910209,"mtime_nanos":992693280,"lines":63},"docs/clients/transports.mdx":{"mtime_secs":1767910209,"mtime_nanos":942395223,"lines":383},"tests/utilities/openapi/test_director.py":{"mtime_secs":1767910210,"mtime_nanos":12861053,"lines":462},".git/objects/81/69bc871348c622817043ae2a2cc69915daeef8":{"mtime_secs":1767925044,"mtime_nanos":717035266,"lines":1},"docs/python-sdk/fastmcp-client-oauth_callback.mdx":{"mtime_secs":1767910209,"mtime_nanos":953129908,"lines":70},"docs/python-sdk/fastmcp-server-auth-providers-descope.mdx":{"mtime_secs":1767910209,"mtime_nanos":955584222,"lines":60},"tests/utilities/openapi/test_legacy_compatibility.py":{"mtime_secs":1767910210,"mtime_nanos":12980679,"lines":192},".git/objects/cb/7f22fd7fe77f5d6debbf0d4384697a05ea0c5a":{"mtime_secs":1767997243,"mtime_nanos":68587672,"lines":1},"docs/updates.mdx":{"mtime_secs":1768258809,"mtime_nanos":241599904,"lines":413},"src/fastmcp/server/tasks/config.py":{"mtime_secs":1768091029,"mtime_nanos":867540563,"lines":152},"docs/deployment/http.mdx":{"mtime_secs":1767910209,"mtime_nanos":943106230,"lines":736},"src/fastmcp/server/transforms/__init__.py":{"mtime_secs":1768273914,"mtime_nanos":448032140,"lines":206},"docs/python-sdk/fastmcp-cli-install-shared.mdx":{"mtime_secs":1767910209,"mtime_nanos":952237024,"lines":33},"examples/tasks/README.md":{"mtime_secs":1767910209,"mtime_nanos":973995479,"lines":60},"src/fastmcp/client/progress.py":{"mtime_secs":1767910209,"mtime_nanos":978046642,"lines":38},"docs/python-sdk/fastmcp-server-context.mdx":{"mtime_secs":1768065435,"mtime_nanos":778914671,"lines":550},"docs/python-sdk/fastmcp-server-sampling-__init__.mdx":{"mtime_secs":1767910209,"mtime_nanos":958973587,"lines":9},"tests/utilities/test_json_schema_type.py":{"mtime_secs":1767910210,"mtime_nanos":13865979,"lines":1584},"docs/python-sdk/fastmcp-server-auth-redirect_validation.mdx":{"mtime_secs":1767910209,"mtime_nanos":956452022,"lines":53},"tests/deprecated/test_add_tool_transformation.py":{"mtime_secs":1768273914,"mtime_nanos":452351048,"lines":104},".git/objects/37/3e318a95450b58f8b20a92cbf27caac2fc2342":{"mtime_secs":1768267927,"mtime_nanos":435378629,"lines":1},".git/objects/0e/9e0ff5d475ea45930b384363d976ec95c1b924":{"mtime_secs":1768258466,"mtime_nanos":330572205,"lines":2},"docs/python-sdk/fastmcp-cli-cli.mdx":{"mtime_secs":1768065435,"mtime_nanos":774813294,"lines":129},"tests/client/test_client.py":{"mtime_secs":1768008814,"mtime_nanos":227071121,"lines":1438},"docs/servers/elicitation.mdx":{"mtime_secs":1767910209,"mtime_nanos":963706257,"lines":462},".git/objects/25/a1f02624c36d90a452fe2cc7dc59f25cb58e12":{"mtime_secs":1767926596,"mtime_nanos":883682449,"lines":2},"src/fastmcp/utilities/types.py":{"mtime_secs":1768275416,"mtime_nanos":475484989,"lines":496},"src/fastmcp/server/auth/oauth_proxy.py":{"mtime_secs":1768275400,"mtime_nanos":665658828,"lines":2282},"tests/server/http/test_bearer_auth_backend.py":{"mtime_secs":1768275438,"mtime_nanos":343602974,"lines":179},"src/fastmcp/py.typed":{"mtime_secs":1767910209,"mtime_nanos":981481633,"lines":0},".git/hooks/push-to-checkout.sample":{"mtime_secs":1767910208,"mtime_nanos":711401932,"lines":78},"src/fastmcp/server/transforms/visibility.py":{"mtime_secs":1768273914,"mtime_nanos":448909855,"lines":304},"v3-notes/prompt-internal-types.md":{"mtime_secs":1767910210,"mtime_nanos":15218783,"lines":121},"src/fastmcp/client/oauth_callback.py":{"mtime_secs":1767910209,"mtime_nanos":977978183,"lines":242},"tests/resources/__init__.py":{"mtime_secs":1767910210,"mtime_nanos":639313,"lines":0},"tests/server/test_log_level.py":{"mtime_secs":1767910210,"mtime_nanos":10843825,"lines":88},"tests/client/tasks/test_client_task_protocol.py":{"mtime_secs":1767910209,"mtime_nanos":996408940,"lines":85},"src/fastmcp/server/auth/providers/in_memory.py":{"mtime_secs":1767910209,"mtime_nanos":984178533,"lines":364},"docs/python-sdk/fastmcp-utilities-openapi-director.mdx":{"mtime_secs":1767910209,"mtime_nanos":961954824,"lines":36},"tests/fs/test_discovery.py":{"mtime_secs":1768065435,"mtime_nanos":794675879,"lines":353},"docs/python-sdk/fastmcp-client-client.mdx":{"mtime_secs":1768065435,"mtime_nanos":775437843,"lines":704},".git/objects/d5/3bd83853418fecbe901cdb7971a9bdafa995b0":{"mtime_secs":1767994305,"mtime_nanos":375220000,"lines":2},"tests/resources/test_file_resources.py":{"mtime_secs":1767910210,"mtime_nanos":751897,"lines":121},"docs/python-sdk/fastmcp-utilities-openapi-json_schema_converter.mdx":{"mtime_secs":1767910209,"mtime_nanos":962117325,"lines":62},"examples/auth/authkit_dcr/server.py":{"mtime_secs":1767910209,"mtime_nanos":967980006,"lines":33},"docs/servers/providers/filesystem.mdx":{"mtime_secs":1768065435,"mtime_nanos":782146372,"lines":255},"src/fastmcp/client/client.py":{"mtime_secs":1768275398,"mtime_nanos":55253387,"lines":1722},".git/objects/54/c1f3adc038af7afd824ece430df893a9c1bf9f":{"mtime_secs":1768275805,"mtime_nanos":77719375,"lines":3},"tests/server/__init__.py":{"mtime_secs":1767910210,"mtime_nanos":1230985,"lines":0},"examples/testing_demo/README.md":{"mtime_secs":1767910209,"mtime_nanos":974324648,"lines":84},"tests/utilities/test_visibility.py":{"mtime_secs":1768273914,"mtime_nanos":462834797,"lines":118},"tests/client/tasks/test_task_result_caching.py":{"mtime_secs":1767910209,"mtime_nanos":996716526,"lines":325},"tests/server/middleware/test_rate_limiting.py":{"mtime_secs":1767910210,"mtime_nanos":5112397,"lines":457},"tests/tools/test_tool.py":{"mtime_secs":1768275439,"mtime_nanos":994409388,"lines":1923},"docs/python-sdk/fastmcp-fs-decorators.mdx":{"mtime_secs":1768065435,"mtime_nanos":776280351,"lines":156},".github/workflows/update-config-schema.yml":{"mtime_secs":1767910209,"mtime_nanos":926226363,"lines":91},"docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-sources-base.mdx":{"mtime_secs":1767910209,"mtime_nanos":961754197,"lines":42},".github/workflows/marvin-dedupe-issues.yml":{"mtime_secs":1767966312,"mtime_nanos":628563953,"lines":95},"tests/server/http/test_custom_routes.py":{"mtime_secs":1767910210,"mtime_nanos":4124137,"lines":105},"src/fastmcp/server/auth/handlers/authorize.py":{"mtime_secs":1767910209,"mtime_nanos":982424516,"lines":326},"tests/server/tasks/test_task_mount.py":{"mtime_secs":1767910210,"mtime_nanos":9343228,"lines":965},"src/fastmcp/utilities/inspect.py":{"mtime_secs":1767910209,"mtime_nanos":991093306,"lines":494},"src/fastmcp/server/auth/oidc_proxy.py":{"mtime_secs":1767994445,"mtime_nanos":315804138,"lines":419},"docs/integrations/azure.mdx":{"mtime_secs":1767910209,"mtime_nanos":944826829,"lines":281},"docs/python-sdk/fastmcp-client-transports.mdx":{"mtime_secs":1768065435,"mtime_nanos":775719304,"lines":297},"v3-notes/resource-internal-types.md":{"mtime_secs":1767910210,"mtime_nanos":15442160,"lines":196},"tests/deprecated/test_import_server.py":{"mtime_secs":1768273914,"mtime_nanos":453311931,"lines":714},"tests/cli/test_with_argv.py":{"mtime_secs":1767910209,"mtime_nanos":995324471,"lines":91},"src/fastmcp/cli/install/cursor.py":{"mtime_secs":1767910209,"mtime_nanos":976640254,"lines":333},"src/fastmcp/server/middleware/authorization.py":{"mtime_secs":1768267998,"mtime_nanos":907053550,"lines":299},"src/fastmcp/resources/types.py":{"mtime_secs":1767910209,"mtime_nanos":981937470,"lines":172},".git/objects/76/2c6269085b45785c856660da44aeb26922de38":{"mtime_secs":1768260294,"mtime_nanos":920717306,"lines":1},"scripts/auto_close_duplicates.py":{"mtime_secs":1767910209,"mtime_nanos":975661203,"lines":331},".git/refs/remotes/origin/metadata-decorators":{"mtime_secs":1768270101,"mtime_nanos":748739992,"lines":1},"docs/python-sdk/fastmcp-utilities-http.mdx":{"mtime_secs":1767910209,"mtime_nanos":960742854,"lines":18},"src/fastmcp/contrib/mcp_mixin/README.md":{"mtime_secs":1767910209,"mtime_nanos":980068411,"lines":147},"docs/python-sdk/fastmcp-server-auth-providers-aws.mdx":{"mtime_secs":1767910209,"mtime_nanos":955292595,"lines":82},"tests/server/auth/providers/test_descope.py":{"mtime_secs":1767910210,"mtime_nanos":1776032,"lines":238},"docs/python-sdk/fastmcp-cli-install-claude_desktop.mdx":{"mtime_secs":1767910209,"mtime_nanos":951999480,"lines":58},"docs/clients/progress.mdx":{"mtime_secs":1767910209,"mtime_nanos":941630674,"lines":70},"tests/server/providers/proxy/test_proxy_client.py":{"mtime_secs":1768275463,"mtime_nanos":382953013,"lines":430},"tests/server/providers/test_local_provider_prompts.py":{"mtime_secs":1768275439,"mtime_nanos":331951498,"lines":472},".git/objects/f6/a9d43ef0746d2da0a90b41a3ece2e33898d749":{"mtime_secs":1768270101,"mtime_nanos":714676512,"lines":2},"examples/smart_home/README.md":{"mtime_secs":1767910209,"mtime_nanos":972864843,"lines":15},"src/fastmcp/prompts/prompt.py":{"mtime_secs":1768273914,"mtime_nanos":441505130,"lines":425},"tests/client/transports/test_transports.py":{"mtime_secs":1767910209,"mtime_nanos":998136498,"lines":42},"docs/python-sdk/fastmcp-cli-run.mdx":{"mtime_secs":1768065435,"mtime_nanos":774987338,"lines":117},"tests/utilities/openapi/test_allof_requestbody.py":{"mtime_secs":1767910210,"mtime_nanos":12613300,"lines":227},"tests/utilities/test_json_schema.py":{"mtime_secs":1767966312,"mtime_nanos":635623411,"lines":543},"docs/python-sdk/fastmcp-utilities-exceptions.mdx":{"mtime_secs":1767910209,"mtime_nanos":960675020,"lines":20},"tests/server/auth/providers/test_aws.py":{"mtime_secs":1767910210,"mtime_nanos":1558488,"lines":107},"src/fastmcp/cli/install/claude_desktop.py":{"mtime_secs":1767910209,"mtime_nanos":976514544,"lines":210},"tests/contrib/__init__.py":{"mtime_secs":1767910209,"mtime_nanos":998376833,"lines":1},"src/fastmcp/server/server.py":{"mtime_secs":1768275412,"mtime_nanos":450905711,"lines":2942},"docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-__init__.mdx":{"mtime_secs":1767910209,"mtime_nanos":961254151,"lines":8},".git/logs/refs/remotes/origin/HEAD":{"mtime_secs":1768307169,"mtime_nanos":241461629,"lines":56},".git/objects/62/d50edd711afd1f6c1284ad63568a917e64fd8b":{"mtime_secs":1767936789,"mtime_nanos":901827035,"lines":2},"tests/server/middleware/test_middleware.py":{"mtime_secs":1768275520,"mtime_nanos":313642874,"lines":1070},"tests/server/providers/test_local_provider.py":{"mtime_secs":1768273914,"mtime_nanos":457293045,"lines":784},"docs/python-sdk/fastmcp-cli-__init__.mdx":{"mtime_secs":1767910209,"mtime_nanos":951712644,"lines":9},"examples/tasks/client.py":{"mtime_secs":1767910209,"mtime_nanos":974091146,"lines":160},"docs/servers/middleware.mdx":{"mtime_secs":1768273914,"mtime_nanos":434736161,"lines":846},"docs/python-sdk/fastmcp-cli-tasks.mdx":{"mtime_secs":1767910209,"mtime_nanos":952379192,"lines":41},"tests/server/auth/providers/test_auth0.py":{"mtime_secs":1767910210,"mtime_nanos":1466446,"lines":98},"tests/server/auth/test_debug_verifier.py":{"mtime_secs":1767910210,"mtime_nanos":2589998,"lines":169},"v3-notes/get-methods-consolidation.md":{"mtime_secs":1767910210,"mtime_nanos":15154783,"lines":69},"AGENTS.md":{"mtime_secs":1768273914,"mtime_nanos":432682436,"lines":116},"docs/servers/server.mdx":{"mtime_secs":1768065435,"mtime_nanos":783859515,"lines":404},"tests/client/tasks/test_client_prompt_tasks.py":{"mtime_secs":1767910209,"mtime_nanos":996158187,"lines":103},"docs/python-sdk/fastmcp-server-auth-providers-github.mdx":{"mtime_secs":1767910209,"mtime_nanos":955718849,"lines":66},"docs/python-sdk/fastmcp-server-providers-local_provider.mdx":{"mtime_secs":1767910209,"mtime_nanos":958449999,"lines":372},"src/fastmcp/server/low_level.py":{"mtime_secs":1767910209,"mtime_nanos":986025759,"lines":290},".git/objects/9a/ff985badef9af930ce45850d2407c473da973e":{"mtime_secs":1768273107,"mtime_nanos":900478739,"lines":2},"src/fastmcp/experimental/sampling/handlers/openai.py":{"mtime_secs":1767910209,"mtime_nanos":980797834,"lines":5},"tests/client/transports/__init__.py":{"mtime_secs":1767910209,"mtime_nanos":998056205,"lines":0},"examples/mount_example.fastmcp.json":{"mtime_secs":1767910209,"mtime_nanos":971796458,"lines":4},"src/fastmcp/server/auth/providers/descope.py":{"mtime_secs":1767910209,"mtime_nanos":983615361,"lines":198},"docs/python-sdk/fastmcp-cli-install-mcp_json.mdx":{"mtime_secs":1767910209,"mtime_nanos":952176565,"lines":49},".git/objects/cf/72cd4938c4fc6f7a8a16554ceefc9404fa5870":{"mtime_secs":1768008006,"mtime_nanos":563809624,"lines":4},"tests/client/sampling/handlers/__init__.py":{"mtime_secs":1767910209,"mtime_nanos":995786726,"lines":0},".git/objects/d9/ee2a1c35476aaf5706c39d6669fa22bde7cb57":{"mtime_secs":1768062579,"mtime_nanos":840053345,"lines":4},"tests/server/providers/openapi/test_end_to_end_compatibility.py":{"mtime_secs":1767910210,"mtime_nanos":6388742,"lines":221},"src/fastmcp/experimental/server/openapi/__init__.py":{"mtime_secs":1767910209,"mtime_nanos":980948086,"lines":40},"docs/python-sdk/fastmcp-server-auth-providers-auth0.mdx":{"mtime_secs":1767910209,"mtime_nanos":955218344,"lines":41},"src/fastmcp/client/transports.py":{"mtime_secs":1768275399,"mtime_nanos":20196202,"lines":1208},"docs/clients/roots.mdx":{"mtime_secs":1767910209,"mtime_nanos":941919385,"lines":42},"src/fastmcp/cli/__main__.py":{"mtime_secs":1767910209,"mtime_nanos":976096457,"lines":5},"docs/python-sdk/fastmcp-utilities-components.mdx":{"mtime_secs":1767910209,"mtime_nanos":960609478,"lines":115},"docs/python-sdk/fastmcp-server-middleware-middleware.mdx":{"mtime_secs":1767910209,"mtime_nanos":957556241,"lines":112},"docs/deployment/running-server.mdx":{"mtime_secs":1767966312,"mtime_nanos":924405293,"lines":282},"src/fastmcp/dependencies.py":{"mtime_secs":1768091029,"mtime_nanos":862680809,"lines":36},".git/objects/a1/7a4142d8f032cee80c7b57ff95dd0dfe931709":{"mtime_secs":1768257849,"mtime_nanos":517889178,"lines":3},".git/objects/0b/a7dfdbb7f2c3eeda565e5e09f375d9f6928592":{"mtime_secs":1768086974,"mtime_nanos":70925454,"lines":2},"docs/patterns/contrib.mdx":{"mtime_secs":1767910209,"mtime_nanos":950960429,"lines":45},"src/fastmcp/server/auth/providers/__init__.py":{"mtime_secs":1767910209,"mtime_nanos":983013772,"lines":0},"examples/fastmcp_config/server.py":{"mtime_secs":1767910209,"mtime_nanos":970957367,"lines":39},"src/fastmcp/contrib/mcp_mixin/mcp_mixin.py":{"mtime_secs":1767910209,"mtime_nanos":980336955,"lines":283},"tests/server/middleware/__init__.py":{"mtime_secs":1767910210,"mtime_nanos":4543891,"lines":0},"src/fastmcp/utilities/exceptions.py":{"mtime_secs":1767910209,"mtime_nanos":990943263,"lines":49},"examples/auth/authkit_dcr/client.py":{"mtime_secs":1767910209,"mtime_nanos":967906296,"lines":32},".github/workflows/martian-test-failure.yml":{"mtime_secs":1767966312,"mtime_nanos":628238410,"lines":185},"src/fastmcp/server/providers/local_provider.py":{"mtime_secs":1768273914,"mtime_nanos":445853789,"lines":962},"docs/python-sdk/fastmcp-client-auth-bearer.mdx":{"mtime_secs":1767910209,"mtime_nanos":952567611,"lines":18},"docs/python-sdk/fastmcp-resources-resource.mdx":{"mtime_secs":1767910209,"mtime_nanos":954293002,"lines":214},"tests/server/auth/__init__.py":{"mtime_secs":1767910210,"mtime_nanos":1309152,"lines":0},"examples/atproto_mcp/demo.py":{"mtime_secs":1767910209,"mtime_nanos":966549075,"lines":257},"tests/server/test_server.py":{"mtime_secs":1768273914,"mtime_nanos":461020449,"lines":458},"docs/python-sdk/fastmcp-utilities-mcp_server_config-__init__.mdx":{"mtime_secs":1767910209,"mtime_nanos":961183233,"lines":13},"docs/python-sdk/fastmcp-client-__init__.mdx":{"mtime_secs":1767910209,"mtime_nanos":952443068,"lines":8},"src/fastmcp/server/providers/filesystem_discovery.py":{"mtime_secs":1768273914,"mtime_nanos":445485620,"lines":327},"docs/servers/context.mdx":{"mtime_secs":1768267998,"mtime_nanos":895493810,"lines":650},"docs/integrations/oci.mdx":{"mtime_secs":1767910209,"mtime_nanos":950135838,"lines":249},"examples/smart_home/src/smart_home/hub.py":{"mtime_secs":1767966312,"mtime_nanos":925390299,"lines":31},".git/logs/refs/remotes/origin/metadata-decorators":{"mtime_secs":1768270101,"mtime_nanos":749305663,"lines":4},".git/COMMIT_EDITMSG":{"mtime_secs":1768275805,"mtime_nanos":77533624,"lines":4},"docs/servers/auth/oauth-proxy.mdx":{"mtime_secs":1767910209,"mtime_nanos":963100585,"lines":590},"docs/python-sdk/fastmcp-client-progress.mdx":{"mtime_secs":1767910209,"mtime_nanos":953193492,"lines":25},"src/fastmcp/server/auth/providers/azure.py":{"mtime_secs":1767910209,"mtime_nanos":983391775,"lines":358},"src/fastmcp/decorators.py":{"mtime_secs":1768273914,"mtime_nanos":440038410,"lines":41},"docs/development/releases.mdx":{"mtime_secs":1767910209,"mtime_nanos":943595068,"lines":79},"tests/utilities/__init__.py":{"mtime_secs":1767910210,"mtime_nanos":12317048,"lines":1},".git/objects/98/c654b8693488ba02040fe9edda733a2f9f8c96":{"mtime_secs":1768260294,"mtime_nanos":894109748,"lines":3},"tests/server/test_app_state.py":{"mtime_secs":1767910210,"mtime_nanos":10038193,"lines":26},"src/fastmcp/utilities/mcp_server_config/v1/environments/base.py":{"mtime_secs":1767910209,"mtime_nanos":991865564,"lines":29},"tests/server/auth/providers/test_workos.py":{"mtime_secs":1767910210,"mtime_nanos":2371579,"lines":152},"examples/filesystem-provider/mcp/resources/config.py":{"mtime_secs":1768065435,"mtime_nanos":784378770,"lines":55},"docs/python-sdk/fastmcp-server-middleware-tool_injection.mdx":{"mtime_secs":1767910209,"mtime_nanos":957778243,"lines":91},"src/fastmcp/server/middleware/middleware.py":{"mtime_secs":1767910209,"mtime_nanos":986644598,"lines":205},"docs/python-sdk/fastmcp-server-middleware-logging.mdx":{"mtime_secs":1767910209,"mtime_nanos":957453865,"lines":58},"src/fastmcp/tools/function_parsing.py":{"mtime_secs":1768275412,"mtime_nanos":738988075,"lines":201},"examples/filesystem-provider/mcp/tools/greeting.py":{"mtime_secs":1768065435,"mtime_nanos":784707482,"lines":28},"docs/python-sdk/fastmcp-server-auth-oidc_proxy.mdx":{"mtime_secs":1767910209,"mtime_nanos":955077926,"lines":82},"docs/python-sdk/fastmcp-utilities-types.mdx":{"mtime_secs":1767910209,"mtime_nanos":962493496,"lines":169},"tests/cli/test_mcp_server_config_integration.py":{"mtime_secs":1768275457,"mtime_nanos":35815783,"lines":293},"tests/server/tasks/test_sync_function_task_disabled.py":{"mtime_secs":1768273914,"mtime_nanos":459901149,"lines":229},"src/fastmcp/utilities/version_check.py":{"mtime_secs":1768258809,"mtime_nanos":250704508,"lines":153},"src/fastmcp/server/event_store.py":{"mtime_secs":1767910209,"mtime_nanos":985794840,"lines":177},".git/objects/fe/630a275a451a5d7dd8a70942990a6bd97ae895":{"mtime_secs":1768269718,"mtime_nanos":997369257,"lines":1},"tests/server/tasks/test_task_methods.py":{"mtime_secs":1767910210,"mtime_nanos":9256061,"lines":217},"src/fastmcp/utilities/cli.py":{"mtime_secs":1768258809,"mtime_nanos":250333464,"lines":281},"tests/integration_tests/conftest.py":{"mtime_secs":1767910210,"mtime_nanos":263434,"lines":72},".git/objects/a7/563df98b7e4ffdc0b3f18183317b582a1e716b":{"mtime_secs":1768275805,"mtime_nanos":65319911,"lines":4},"tests/server/http/test_http_dependencies.py":{"mtime_secs":1767910210,"mtime_nanos":4296431,"lines":128},"src/fastmcp/utilities/http.py":{"mtime_secs":1767910209,"mtime_nanos":991005389,"lines":8},"src/fastmcp/contrib/bulk_tool_caller/example.py":{"mtime_secs":1767910209,"mtime_nanos":979380154,"lines":17},"src/fastmcp/cli/install/mcp_json.py":{"mtime_secs":1767910209,"mtime_nanos":976825214,"lines":191},"src/fastmcp/server/providers/openapi/provider.py":{"mtime_secs":1767910209,"mtime_nanos":988137612,"lines":384},"examples/fastmcp_config/simple.fastmcp.json":{"mtime_secs":1767910209,"mtime_nanos":971018868,"lines":7},"tests/utilities/openapi/test_transitive_references.py":{"mtime_secs":1767910210,"mtime_nanos":13368933,"lines":842},"src/fastmcp/resources/resource.py":{"mtime_secs":1768273914,"mtime_nanos":443312394,"lines":443},"tests/server/auth/test_enhanced_error_responses.py":{"mtime_secs":1767910210,"mtime_nanos":2661749,"lines":364},"tests/server/auth/providers/test_discord.py":{"mtime_secs":1767910210,"mtime_nanos":1849033,"lines":70},"examples/smart_home/src/smart_home/__main__.py":{"mtime_secs":1767910209,"mtime_nanos":973255388,"lines":9},".git/logs/refs/heads/feature/reload-flag":{"mtime_secs":1767927080,"mtime_nanos":441195568,"lines":6},"src/fastmcp/client/elicitation.py":{"mtime_secs":1767910209,"mtime_nanos":977704347,"lines":80},"docs/integrations/discord.mdx":{"mtime_secs":1767910209,"mtime_nanos":945622545,"lines":184},"src/fastmcp/server/providers/aggregate.py":{"mtime_secs":1768273914,"mtime_nanos":443889815,"lines":207},"pyproject.toml":{"mtime_secs":1768275127,"mtime_nanos":809106522,"lines":199},"docs/python-sdk/fastmcp-server-auth-providers-debug.mdx":{"mtime_secs":1767910209,"mtime_nanos":955510138,"lines":70},"docs/servers/providers/custom.mdx":{"mtime_secs":1767910209,"mtime_nanos":964369180,"lines":241},".git/objects/75/af171cb9d1dc8540209c0bcaf469419fbe32fb":{"mtime_secs":1768065435,"mtime_nanos":673049972,"lines":1},"docs/python-sdk/fastmcp-server-__init__.mdx":{"mtime_secs":1767910209,"mtime_nanos":954571879,"lines":8},"docs/python-sdk/fastmcp-prompts-__init__.mdx":{"mtime_secs":1767910209,"mtime_nanos":954008249,"lines":8},"src/fastmcp/server/auth/providers/debug.py":{"mtime_secs":1767910209,"mtime_nanos":983478151,"lines":114},"docs/community/showcase.mdx":{"mtime_secs":1767910209,"mtime_nanos":942564725,"lines":65},"docs/clients/auth/bearer.mdx":{"mtime_secs":1767910209,"mtime_nanos":941034794,"lines":88},"tests/integration_tests/auth/__init__.py":{"mtime_secs":1767910210,"mtime_nanos":70224,"lines":0},"src/fastmcp/utilities/mcp_server_config/v1/sources/__init__.py":{"mtime_secs":1767910209,"mtime_nanos":992272359,"lines":0},"docs/clients/auth/oauth.mdx":{"mtime_secs":1767910209,"mtime_nanos":941154961,"lines":132},"tests/server/auth/providers/test_google.py":{"mtime_secs":1767910210,"mtime_nanos":2030118,"lines":118},".git/logs/refs/remotes/origin/release/2.x":{"mtime_secs":1768258884,"mtime_nanos":704964868,"lines":5},"docs/integrations/mcp-json-configuration.mdx":{"mtime_secs":1767910209,"mtime_nanos":949996545,"lines":422},"examples/sampling/structured_output.py":{"mtime_secs":1767910209,"mtime_nanos":972414464,"lines":110},"examples/atproto_mcp/src/atproto_mcp/__init__.py":{"mtime_secs":1767910209,"mtime_nanos":966835036,"lines":3},".git/hooks/pre-rebase.sample":{"mtime_secs":1767910208,"mtime_nanos":708822658,"lines":169},".git/objects/f2/62d9de7f50fc6133bc108376e5da45f11f0d20":{"mtime_secs":1768267926,"mtime_nanos":725680430,"lines":2},"src/fastmcp/cli/tasks.py":{"mtime_secs":1767910209,"mtime_nanos":977123758,"lines":110},"src/fastmcp/server/lifespan.py":{"mtime_secs":1768275411,"mtime_nanos":615886206,"lines":198},".git/objects/7c/7064e7b31cdfc85810d317c89218d5bc3599c6":{"mtime_secs":1768062579,"mtime_nanos":836300417,"lines":2},"src/fastmcp/utilities/async_utils.py":{"mtime_secs":1767910209,"mtime_nanos":990579635,"lines":56},"examples/text_me.py":{"mtime_secs":1767910209,"mtime_nanos":975166490,"lines":72},"tests/prompts/__init__.py":{"mtime_secs":1767910210,"mtime_nanos":444353,"lines":0},".git/refs/remotes/origin/release/2.x":{"mtime_secs":1768258884,"mtime_nanos":704644282,"lines":1},"tests/tools/test_tool_transform.py":{"mtime_secs":1768273914,"mtime_nanos":462189625,"lines":1748},"src/fastmcp/cli/install/shared.py":{"mtime_secs":1767910209,"mtime_nanos":976920215,"lines":127},"docs/python-sdk/fastmcp-utilities-tests.mdx":{"mtime_secs":1767910209,"mtime_nanos":962405120,"lines":106},"docs/getting-started/quickstart.mdx":{"mtime_secs":1767910209,"mtime_nanos":944227157,"lines":136},"LICENSE":{"mtime_secs":1767910209,"mtime_nanos":926792951,"lines":201},"docs/development/tests.mdx":{"mtime_secs":1767910209,"mtime_nanos":943683277,"lines":396},"docs/python-sdk/fastmcp-client-elicitation.mdx":{"mtime_secs":1767910209,"mtime_nanos":952787988,"lines":18},"src/fastmcp/server/openapi/routing.py":{"mtime_secs":1767910209,"mtime_nanos":987139311,"lines":46},".git/objects/8e/72b7124ee74702ac890c0dfc0d4c861f6b0cc1":{"mtime_secs":1767980392,"mtime_nanos":450449955,"lines":1},"docs/python-sdk/fastmcp-cli-install-cursor.mdx":{"mtime_secs":1767910209,"mtime_nanos":952060147,"lines":107},".claude/skills/python-tests/SKILL.md":{"mtime_secs":1768258809,"mtime_nanos":229630363,"lines":220},"examples/auth/scalekit_oauth/server.py":{"mtime_secs":1767910209,"mtime_nanos":969967691,"lines":58},"tests/server/middleware/test_caching.py":{"mtime_secs":1768273914,"mtime_nanos":455815867,"lines":617},"docs/python-sdk/fastmcp-utilities-openapi-formatters.mdx":{"mtime_secs":1767910209,"mtime_nanos":962050533,"lines":115},"docs/python-sdk/fastmcp-utilities-__init__.mdx":{"mtime_secs":1767910209,"mtime_nanos":960333309,"lines":9},"tests/deprecated/server/test_include_exclude_tags.py":{"mtime_secs":1767910209,"mtime_nanos":999204758,"lines":50},"src/fastmcp/utilities/auth.py":{"mtime_secs":1767910209,"mtime_nanos":990662719,"lines":34},"docs/clients/messages.mdx":{"mtime_secs":1767910209,"mtime_nanos":941569007,"lines":129},"docs/servers/sampling.mdx":{"mtime_secs":1767910209,"mtime_nanos":965018853,"lines":488},"examples/fastmcp_config/full_example.fastmcp.json":{"mtime_secs":1767910209,"mtime_nanos":970897700,"lines":27},"examples/memory.py":{"mtime_secs":1767910209,"mtime_nanos":971732666,"lines":341},"docs/integrations/auth0.mdx":{"mtime_secs":1767910209,"mtime_nanos":944548410,"lines":196},"docs/integrations/workos.mdx":{"mtime_secs":1767910209,"mtime_nanos":950630384,"lines":201},"tests/integration_tests/__init__.py":{"mtime_secs":1767910209,"mtime_nanos":999967723,"lines":0},"src/fastmcp/client/__init__.py":{"mtime_secs":1768008814,"mtime_nanos":226119109,"lines":30},".git/objects/e3/1e3fddb2bf4e0da2b4036ac7a562ecb8c8474e":{"mtime_secs":1768077500,"mtime_nanos":171713640,"lines":1},"docs/snippets/local-focus.mdx":{"mtime_secs":1767910209,"mtime_nanos":965621067,"lines":7},"docs/patterns/testing.mdx":{"mtime_secs":1767910209,"mtime_nanos":951143389,"lines":104},"docs/assets/brand/favicon.svg":{"mtime_secs":1767910209,"mtime_nanos":927970754,"lines":3},"tests/server/test_tool_transformation.py":{"mtime_secs":1768273914,"mtime_nanos":461395160,"lines":120},"tests/server/providers/__init__.py":{"mtime_secs":1767910210,"mtime_nanos":5479067,"lines":0},"docs/integrations/chatgpt.mdx":{"mtime_secs":1767910209,"mtime_nanos":944944831,"lines":157},"tests/resources/test_function_resources.py":{"mtime_secs":1768273914,"mtime_nanos":454083728,"lines":278},"src/fastmcp/client/tasks.py":{"mtime_secs":1768275398,"mtime_nanos":912262801,"lines":551},"src/fastmcp/utilities/lifespan.py":{"mtime_secs":1768065435,"mtime_nanos":794376750,"lines":56},".github/workflows/marvin.yml":{"mtime_secs":1767966312,"mtime_nanos":629167665,"lines":81},"src/fastmcp/server/openapi/server.py":{"mtime_secs":1767910209,"mtime_nanos":987208020,"lines":127},"docs/integrations/descope.mdx":{"mtime_secs":1767910209,"mtime_nanos":945529961,"lines":114},"examples/atproto_mcp/src/atproto_mcp/_atproto/_read.py":{"mtime_secs":1767910209,"mtime_nanos":967326749,"lines":124},"src/fastmcp/server/providers/openapi/README.md":{"mtime_secs":1767910209,"mtime_nanos":987850984,"lines":266},"tests/server/http/test_stale_access_token.py":{"mtime_secs":1767910210,"mtime_nanos":4471766,"lines":159},"tests/server/providers/openapi/test_performance_comparison.py":{"mtime_secs":1767910210,"mtime_nanos":6845496,"lines":286},"tests/server/providers/openapi/test_server.py":{"mtime_secs":1767910210,"mtime_nanos":6929330,"lines":305},".github/workflows/martian-issue-triage.yml":{"mtime_secs":1767966312,"mtime_nanos":627746823,"lines":176},"src/fastmcp/client/logging.py":{"mtime_secs":1767910209,"mtime_nanos":977769348,"lines":54},"tests/server/http/__init__.py":{"mtime_secs":1767910210,"mtime_nanos":3943011,"lines":0},"tests/server/tasks/test_task_security.py":{"mtime_secs":1767910210,"mtime_nanos":9776357,"lines":47},"tests/deprecated/test_openapi_deprecations.py":{"mtime_secs":1767910209,"mtime_nanos":999511427,"lines":78},"src/fastmcp/server/auth/providers/scalekit.py":{"mtime_secs":1767910209,"mtime_nanos":984682204,"lines":200},"src/fastmcp/server/auth/authorization.py":{"mtime_secs":1768267998,"mtime_nanos":903622237,"lines":190},".github/ISSUE_TEMPLATE/bug.yml":{"mtime_secs":1767910209,"mtime_nanos":925024851,"lines":71},"tests/server/auth/providers/test_github.py":{"mtime_secs":1767910210,"mtime_nanos":1943950,"lines":129},"tests/server/tasks/test_task_capabilities.py":{"mtime_secs":1767910210,"mtime_nanos":8809848,"lines":44},"src/fastmcp/server/context.py":{"mtime_secs":1768275401,"mtime_nanos":371133151,"lines":1272},"docs/css/python-sdk.css":{"mtime_secs":1767910209,"mtime_nanos":942730060,"lines":3},"tests/server/providers/proxy/test_stateful_proxy_client.py":{"mtime_secs":1768065435,"mtime_nanos":796294562,"lines":147},"docs/servers/providers/namespacing.mdx":{"mtime_secs":1768273914,"mtime_nanos":436395548,"lines":9},".git/logs/refs/heads/extract-parsedfunction":{"mtime_secs":1768275805,"mtime_nanos":78436214,"lines":4},"examples/auth/aws_oauth/requirements.txt":{"mtime_secs":1767910209,"mtime_nanos":968220049,"lines":2},"tests/server/tasks/test_task_status_notifications.py":{"mtime_secs":1767910210,"mtime_nanos":9864775,"lines":160},"docs/python-sdk/fastmcp-server-openapi-routing.mdx":{"mtime_secs":1767910209,"mtime_nanos":957969995,"lines":13},".git/objects/9c/aaff7cacbcca5b163465fdfab5a1a269b45fde":{"mtime_secs":1768005473,"mtime_nanos":488121058,"lines":1},"examples/fastmcp_config/fastmcp.json":{"mtime_secs":1767910209,"mtime_nanos":970837324,"lines":13},".github/workflows/publish.yml":{"mtime_secs":1767910209,"mtime_nanos":926045736,"lines":26},"tests/conftest.py":{"mtime_secs":1767910209,"mtime_nanos":998275582,"lines":83},".git/config":{"mtime_secs":1768307285,"mtime_nanos":997779687,"lines":36},"docs/python-sdk/fastmcp-exceptions.mdx":{"mtime_secs":1767910209,"mtime_nanos":953845581,"lines":65},"src/fastmcp/experimental/sampling/__init__.py":{"mtime_secs":1767910209,"mtime_nanos":980599833,"lines":0},".git/objects/6e/8c60b65e449d516dde82cefb6ffdd228c25c8a":{"mtime_secs":1767994305,"mtime_nanos":380528458,"lines":1},".git/objects/03/0e7190c2b413df5967214c240f685a1d7115c6":{"mtime_secs":1768258884,"mtime_nanos":602393117,"lines":4},"tests/experimental/README.md":{"mtime_secs":1767910209,"mtime_nanos":999797763,"lines":3},"docs/python-sdk/fastmcp-server-auth-providers-__init__.mdx":{"mtime_secs":1767910209,"mtime_nanos":955145218,"lines":8},"docs/deployment/server-configuration.mdx":{"mtime_secs":1767910209,"mtime_nanos":943334065,"lines":640},".git/hooks/update.sample":{"mtime_secs":1767910208,"mtime_nanos":711016678,"lines":128},"docs/integrations/claude-code.mdx":{"mtime_secs":1767910209,"mtime_nanos":945072873,"lines":177},"examples/atproto_mcp/src/atproto_mcp/_atproto/_client.py":{"mtime_secs":1767910209,"mtime_nanos":967089706,"lines":16},"examples/auth/google_oauth/README.md":{"mtime_secs":1767910209,"mtime_nanos":969278893,"lines":34},"tests/server/providers/test_fastmcp_provider.py":{"mtime_secs":1767910210,"mtime_nanos":7080540,"lines":446},"docs/servers/logging.mdx":{"mtime_secs":1767910209,"mtime_nanos":963926634,"lines":249},"docs/integrations/permit.mdx":{"mtime_secs":1767910209,"mtime_nanos":950379382,"lines":352},"docs/clients/client.mdx":{"mtime_secs":1767910209,"mtime_nanos":941287296,"lines":340},".git/objects/42/dcb8918df7d94962d750a3280285ff5da0f63c":{"mtime_secs":1767966312,"mtime_nanos":838173543,"lines":4},"src/fastmcp/server/tasks/routing.py":{"mtime_secs":1767910209,"mtime_nanos":989862420,"lines":76},"examples/auth/discord_oauth/README.md":{"mtime_secs":1767910209,"mtime_nanos":968748430,"lines":33},".git/objects/c0/48dfe4743324bc13eef500552c06e12f61fd7c":{"mtime_secs":1768157206,"mtime_nanos":108578893,"lines":3},"src/fastmcp/client/roots.py":{"mtime_secs":1767910209,"mtime_nanos":978121726,"lines":76},"src/fastmcp/server/tasks/capabilities.py":{"mtime_secs":1768091029,"mtime_nanos":867126809,"lines":34},"docs/python-sdk/fastmcp-utilities-cli.mdx":{"mtime_secs":1768065435,"mtime_nanos":781075235,"lines":48},"tests/resources/test_resource_template.py":{"mtime_secs":1768273914,"mtime_nanos":454701233,"lines":1009},"examples/providers/sqlite/setup_db.py":{"mtime_secs":1767910209,"mtime_nanos":972189045,"lines":102},"tests/server/auth/providers/test_introspection.py":{"mtime_secs":1767910210,"mtime_nanos":2098076,"lines":419},"tests/server/sampling/test_sampling_tool.py":{"mtime_secs":1767910210,"mtime_nanos":8119342,"lines":121},".git/objects/d8/b95a00e25fdcf12b6cba3ff42c26d77deccb07":{"mtime_secs":1767924161,"mtime_nanos":21715199,"lines":2},".git/objects/ac/9079f73a6e2b735527a3a7118603ff2bb0068b":{"mtime_secs":1767994305,"mtime_nanos":375725000,"lines":1},"docs/python-sdk/fastmcp-server-middleware-rate_limiting.mdx":{"mtime_secs":1767910209,"mtime_nanos":957619908,"lines":97},"src/fastmcp/server/transforms/tool_transform.py":{"mtime_secs":1768273914,"mtime_nanos":448749020,"lines":94},"src/fastmcp/exceptions.py":{"mtime_secs":1768267998,"mtime_nanos":897398697,"lines":43},"src/fastmcp/contrib/mcp_mixin/example.py":{"mtime_secs":1767910209,"mtime_nanos":980202079,"lines":52},"src/fastmcp/server/auth/providers/google.py":{"mtime_secs":1767910209,"mtime_nanos":984075157,"lines":278},"tests/server/test_server_docket.py":{"mtime_secs":1768091029,"mtime_nanos":870620842,"lines":227},"src/fastmcp/client/messages.py":{"mtime_secs":1767910209,"mtime_nanos":977857807,"lines":128},".git/packed-refs":{"mtime_secs":1768008006,"mtime_nanos":500897988,"lines":145},"examples/custom_tool_serializer_decorator.py":{"mtime_secs":1767910209,"mtime_nanos":970512529,"lines":72},"examples/smart_home/src/smart_home/settings.py":{"mtime_secs":1767910209,"mtime_nanos":973653059,"lines":12},"docs/servers/providers/local.mdx":{"mtime_secs":1768273914,"mtime_nanos":435480166,"lines":160},"tests/server/tasks/test_resource_task_meta_parameter.py":{"mtime_secs":1767910210,"mtime_nanos":8588638,"lines":287},"docs/development/contributing.mdx":{"mtime_secs":1767910209,"mtime_nanos":943504442,"lines":187},"tests/server/tasks/test_task_return_types.py":{"mtime_secs":1767910210,"mtime_nanos":9705148,"lines":662},"src/fastmcp/server/tasks/keys.py":{"mtime_secs":1768065435,"mtime_nanos":793456949,"lines":91},"examples/auth/scalekit_oauth/README.md":{"mtime_secs":1767910209,"mtime_nanos":969833523,"lines":55},"tests/server/middleware/test_tool_injection.py":{"mtime_secs":1768273914,"mtime_nanos":456109327,"lines":509},"src/fastmcp/contrib/component_manager/example.py":{"mtime_secs":1767910209,"mtime_nanos":979920868,"lines":59},"tests/server/test_logging.py":{"mtime_secs":1767910210,"mtime_nanos":10930826,"lines":192},".git/objects/de/5a3ce3e2f6bcf15d55b07022fc07537797de81":{"mtime_secs":1768052340,"mtime_nanos":63993054,"lines":1},".git/refs/heads/main":{"mtime_secs":1768307169,"mtime_nanos":292258069,"lines":1},"docs/servers/providers/overview.mdx":{"mtime_secs":1768273914,"mtime_nanos":436692676,"lines":80},"tests/deprecated/test_deprecated.py":{"mtime_secs":1767910209,"mtime_nanos":999277675,"lines":48},"tests/utilities/test_cli.py":{"mtime_secs":1767910210,"mtime_nanos":13466600,"lines":195},"docs/python-sdk/fastmcp-server-sampling-sampling_tool.mdx":{"mtime_secs":1767910209,"mtime_nanos":959157548,"lines":76},"src/fastmcp/client/sampling/__init__.py":{"mtime_secs":1767910209,"mtime_nanos":978238352,"lines":69},"docs/python-sdk/fastmcp-server-http.mdx":{"mtime_secs":1767910209,"mtime_nanos":956912152,"lines":106},"docs/servers/providers/mounting.mdx":{"mtime_secs":1768273914,"mtime_nanos":436124922,"lines":309},"docs/servers/visibility.mdx":{"mtime_secs":1768273914,"mtime_nanos":438443314,"lines":315},".git/objects/dc/2aab1e6a4c598aff1a536e7f1c055effb9180c":{"mtime_secs":1767994445,"mtime_nanos":248328183,"lines":2},"tests/server/auth/providers/test_scalekit.py":{"mtime_secs":1767910210,"mtime_nanos":2193077,"lines":220},"tests/server/providers/openapi/test_deepobject_style.py":{"mtime_secs":1767910210,"mtime_nanos":6122865,"lines":346},"src/fastmcp/utilities/mcp_server_config/v1/sources/base.py":{"mtime_secs":1767910209,"mtime_nanos":992359110,"lines":29},"docs/python-sdk/fastmcp-utilities-openapi-parser.mdx":{"mtime_secs":1767910209,"mtime_nanos":962271494,"lines":43},"examples/atproto_mcp/README.md":{"mtime_secs":1767910209,"mtime_nanos":966418699,"lines":156},".github/pull_request_template.md":{"mtime_secs":1767910209,"mtime_nanos":925329438,"lines":28},"tests/client/test_openapi.py":{"mtime_secs":1767910209,"mtime_nanos":997398366,"lines":202},"docs/clients/logging.mdx":{"mtime_secs":1767910209,"mtime_nanos":941466506,"lines":111},".git/objects/c1/12657274e038c4e3410b611169802645ea4497":{"mtime_secs":1768136535,"mtime_nanos":142455545,"lines":5},".git/objects/eb/9c9b95e3d66491a629f384bead15039ca1876f":{"mtime_secs":1768275801,"mtime_nanos":181061270,"lines":3},"src/fastmcp/server/auth/providers/oci.py":{"mtime_secs":1767910209,"mtime_nanos":984547203,"lines":170},".git/objects/e3/a8a4a2e6f845a16028b93ea74d70136b5162a3":{"mtime_secs":1767923559,"mtime_nanos":76282333,"lines":2},"tests/server/tasks/test_server_tasks_parameter.py":{"mtime_secs":1767910210,"mtime_nanos":8657055,"lines":388},"tests/client/test_sampling.py":{"mtime_secs":1767910209,"mtime_nanos":997618034,"lines":1002},"tests/client/test_progress.py":{"mtime_secs":1767910209,"mtime_nanos":997459283,"lines":70},"tests/client/tasks/test_client_task_notifications.py":{"mtime_secs":1767910209,"mtime_nanos":996339981,"lines":209},"examples/auth/azure_oauth/client.py":{"mtime_secs":1767910209,"mtime_nanos":968465052,"lines":32},"tests/server/test_icons.py":{"mtime_secs":1767910210,"mtime_nanos":10713533,"lines":342},"tests/server/tasks/test_task_proxy.py":{"mtime_secs":1767910210,"mtime_nanos":9575980,"lines":169},"docs/python-sdk/fastmcp-server-tasks-config.mdx":{"mtime_secs":1767910209,"mtime_nanos":959449842,"lines":91},".git/objects/c1/27dd979fd3b0b901db73662cfe9e5a9d6f7e95":{"mtime_secs":1768232585,"mtime_nanos":565466942,"lines":1},"examples/atproto_mcp/src/atproto_mcp/py.typed":{"mtime_secs":1767910209,"mtime_nanos":967425584,"lines":0},"tests/cli/test_project_prepare.py":{"mtime_secs":1767910209,"mtime_nanos":994755966,"lines":306},"tests/server/providers/openapi/test_parameter_collisions.py":{"mtime_secs":1767910210,"mtime_nanos":6721579,"lines":225},"docs/python-sdk/fastmcp-cli-install-gemini_cli.mdx":{"mtime_secs":1767910209,"mtime_nanos":952120690,"lines":68},"tests/server/tasks/test_task_tools.py":{"mtime_secs":1767910210,"mtime_nanos":9922317,"lines":102},"tests/client/tasks/conftest.py":{"mtime_secs":1767910209,"mtime_nanos":996082770,"lines":3},"tests/cli/test_config.py":{"mtime_secs":1767910209,"mtime_nanos":994129210,"lines":461},"examples/testing_demo/tests/test_server.py":{"mtime_secs":1767910209,"mtime_nanos":974626193,"lines":160},"examples/atproto_mcp/src/atproto_mcp/_atproto/_profile.py":{"mtime_secs":1767910209,"mtime_nanos":967258041,"lines":33},"docs/assets/schemas/mcp_server_config/latest.json":{"mtime_secs":1767910209,"mtime_nanos":939489571,"lines":348},"tests/server/providers/openapi/test_comprehensive.py":{"mtime_secs":1767910210,"mtime_nanos":5668985,"lines":741},".git/objects/87/b0d87df4d64af89a01cf2e756dd129194dd17d":{"mtime_secs":1768239135,"mtime_nanos":975651666,"lines":3},"src/fastmcp/prompts/__init__.py":{"mtime_secs":1768273914,"mtime_nanos":440717874,"lines":12},"tests/server/test_input_validation.py":{"mtime_secs":1767910210,"mtime_nanos":10779575,"lines":365},"logo.py":{"mtime_secs":1767910209,"mtime_nanos":975379367,"lines":25},"tests/server/providers/test_base_provider.py":{"mtime_secs":1768273914,"mtime_nanos":456788916,"lines":79},"docs/python-sdk/fastmcp-utilities-visibility.mdx":{"mtime_secs":1767910209,"mtime_nanos":962630289,"lines":86},"docs/python-sdk/fastmcp-utilities-ui.mdx":{"mtime_secs":1767910209,"mtime_nanos":962563413,"lines":140},"docs/python-sdk/fastmcp-resources-template.mdx":{"mtime_secs":1767910209,"mtime_nanos":954408545,"lines":238},"tests/server/test_auth_integration.py":{"mtime_secs":1767910210,"mtime_nanos":10156111,"lines":1242},"examples/get_file.py":{"mtime_secs":1767910209,"mtime_nanos":971439871,"lines":39},".git/objects/e5/2eb8258e13ea178e85c5067fd082b1c44ec2dd":{"mtime_secs":1768264034,"mtime_nanos":516252135,"lines":1},"tests/cli/test_install.py":{"mtime_secs":1767910209,"mtime_nanos":994379629,"lines":313},"tests/contrib/test_component_manager.py":{"mtime_secs":1767910209,"mtime_nanos":998586085,"lines":767},".git/refs/heads/docs/v3-features":{"mtime_secs":1767969249,"mtime_nanos":769250202,"lines":1},"examples/echo.py":{"mtime_secs":1767910209,"mtime_nanos":970660156,"lines":30},"docs/python-sdk/fastmcp-server-openapi-components.mdx":{"mtime_secs":1767910209,"mtime_nanos":957905244,"lines":12},"tests/resources/test_resources.py":{"mtime_secs":1768275463,"mtime_nanos":447592187,"lines":356},"examples/smart_home/src/smart_home/lights/server.py":{"mtime_secs":1767966312,"mtime_nanos":925762092,"lines":318},"tests/utilities/test_components.py":{"mtime_secs":1767910210,"mtime_nanos":13544851,"lines":397},"docs/getting-started/installation.mdx":{"mtime_secs":1768065435,"mtime_nanos":773145402,"lines":108},"src/fastmcp/utilities/openapi/schemas.py":{"mtime_secs":1767910209,"mtime_nanos":993300535,"lines":593},"tests/server/test_tool_annotations.py":{"mtime_secs":1767910210,"mtime_nanos":11624083,"lines":254},"docs/clients/sampling.mdx":{"mtime_secs":1767910209,"mtime_nanos":942082887,"lines":258},".git/objects/1b/723f302da048cc8f2239b36b56377bdb55bbcb":{"mtime_secs":1768273107,"mtime_nanos":883124144,"lines":3},".git/objects/8c/ba4cbc83f3ffda6351164f6c250f2ed089d292":{"mtime_secs":1768060130,"mtime_nanos":836709979,"lines":1},"tests/server/tasks/test_task_resources.py":{"mtime_secs":1767910210,"mtime_nanos":9633314,"lines":108},"docs/servers/auth/oidc-proxy.mdx":{"mtime_secs":1767910209,"mtime_nanos":963302212,"lines":265},"examples/atproto_mcp/src/atproto_mcp/_atproto/_posts.py":{"mtime_secs":1767910209,"mtime_nanos":967171331,"lines":420},"tests/client/test_sse.py":{"mtime_secs":1767910209,"mtime_nanos":997730827,"lines":200},".git/objects/07/d30483d73953e50aa6f4ac6f68952ba2ff4dc2":{"mtime_secs":1768250271,"mtime_nanos":586648207,"lines":2},"docs/python-sdk/fastmcp-server-tasks-__init__.mdx":{"mtime_secs":1767910209,"mtime_nanos":959328716,"lines":12},"src/fastmcp/server/auth/providers/discord.py":{"mtime_secs":1767910209,"mtime_nanos":983750362,"lines":247},"docs/python-sdk/fastmcp-server-auth-providers-discord.mdx":{"mtime_secs":1767910209,"mtime_nanos":955651598,"lines":66},"tests/server/auth/test_oauth_consent_flow.py":{"mtime_secs":1767910210,"mtime_nanos":2977001,"lines":1056},".git/objects/40/5708aad91a93c14d09d6c968f1e97a4ec65342":{"mtime_secs":1767927080,"mtime_nanos":432731822,"lines":2},".git/objects/cc/bc829ec456c3f0d9b46030f115f9537e3f18f8":{"mtime_secs":1768237034,"mtime_nanos":428248296,"lines":3},"src/fastmcp/client/sampling/handlers/openai.py":{"mtime_secs":1768275398,"mtime_nanos":609072954,"lines":399},".git/hooks/pre-merge-commit.sample":{"mtime_secs":1767910208,"mtime_nanos":710236963,"lines":13},"tests/server/tasks/test_task_metadata.py":{"mtime_secs":1767910210,"mtime_nanos":9168393,"lines":63},"tests/server/middleware/test_timing.py":{"mtime_secs":1767910210,"mtime_nanos":5259440,"lines":317},"docs/servers/providers/transforms.mdx":{"mtime_secs":1768273914,"mtime_nanos":437247180,"lines":405},"src/fastmcp/cli/__init__.py":{"mtime_secs":1767910209,"mtime_nanos":976035831,"lines":3},"docs/integrations/anthropic.mdx":{"mtime_secs":1767910209,"mtime_nanos":944458951,"lines":228},"src/fastmcp/server/sampling/__init__.py":{"mtime_secs":1767910209,"mtime_nanos":988707951,"lines":10},".git/hooks/applypatch-msg.sample":{"mtime_secs":1767910208,"mtime_nanos":709283745,"lines":15},"tests/server/providers/openapi/test_openapi_features.py":{"mtime_secs":1767910210,"mtime_nanos":6487285,"lines":414},"tests/server/middleware/test_logging.py":{"mtime_secs":1767910210,"mtime_nanos":4915603,"lines":670},"src/fastmcp/utilities/mcp_server_config/__init__.py":{"mtime_secs":1767910209,"mtime_nanos":991568102,"lines":25},"src/fastmcp/server/auth/middleware.py":{"mtime_secs":1767910209,"mtime_nanos":982585310,"lines":96},".git/objects/f3/d6ef1b75fc9547e8207dbc27f7bc3f1243a8f8":{"mtime_secs":1768260294,"mtime_nanos":941960828,"lines":3},"v3-notes/provider-architecture.md":{"mtime_secs":1767910210,"mtime_nanos":15284076,"lines":116},"tests/deprecated/test_tool_serializer.py":{"mtime_secs":1767910209,"mtime_nanos":999675470,"lines":185},".git/hooks/pre-push.sample":{"mtime_secs":1767910208,"mtime_nanos":710809135,"lines":53},"tests/integration_tests/test_timeout_fix.py":{"mtime_secs":1768258809,"mtime_nanos":251733807,"lines":51},".git/objects/ff/633b567d8765e0d017965eca9618ab06084e7b":{"mtime_secs":1768062579,"mtime_nanos":791355786,"lines":1},"docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-environments-__init__.mdx":{"mtime_secs":1767910209,"mtime_nanos":961324776,"lines":9},"tests/cli/test_shared.py":{"mtime_secs":1767910209,"mtime_nanos":995183886,"lines":29},"tests/client/tasks/test_client_resource_tasks.py":{"mtime_secs":1767910209,"mtime_nanos":996234896,"lines":108},"tests/utilities/test_inspect.py":{"mtime_secs":1767910210,"mtime_nanos":13635102,"lines":1111},"docs/python-sdk/fastmcp-client-roots.mdx":{"mtime_secs":1767910209,"mtime_nanos":953280451,"lines":20},"docs/python-sdk/fastmcp-utilities-openapi-schemas.mdx":{"mtime_secs":1767910209,"mtime_nanos":962333327,"lines":43},"tests/cli/test_cli.py":{"mtime_secs":1767910209,"mtime_nanos":994032501,"lines":618},".git/objects/41/0ea090cfe37e1db2c504e490202ec5dcaa142e":{"mtime_secs":1768062579,"mtime_nanos":780660422,"lines":2},"src/fastmcp/utilities/logging.py":{"mtime_secs":1767910209,"mtime_nanos":991394559,"lines":230},"src/fastmcp/contrib/mcp_mixin/__init__.py":{"mtime_secs":1767910209,"mtime_nanos":980134245,"lines":8},"tests/server/tasks/test_task_prompts.py":{"mtime_secs":1767910210,"mtime_nanos":9422479,"lines":92},"docs/integrations/gemini-cli.mdx":{"mtime_secs":1767910209,"mtime_nanos":945929715,"lines":174},".git/objects/ff/7c37d39c39be4edf7bdc7334b7b6784b20d40b":{"mtime_secs":1767980392,"mtime_nanos":422200587,"lines":1},"tests/server/auth/providers/test_supabase.py":{"mtime_secs":1767910210,"mtime_nanos":2284328,"lines":202},"examples/auth/github_oauth/README.md":{"mtime_secs":1767910209,"mtime_nanos":969038641,"lines":31},".github/release.yml":{"mtime_secs":1767910209,"mtime_nanos":925387105,"lines":47},"src/fastmcp/server/auth/auth.py":{"mtime_secs":1767910209,"mtime_nanos":982233390,"lines":558},"examples/tasks/server.py":{"mtime_secs":1767910209,"mtime_nanos":974223731,"lines":75},"src/fastmcp/server/middleware/tool_injection.py":{"mtime_secs":1767910209,"mtime_nanos":986907600,"lines":116},"examples/complex_inputs.py":{"mtime_secs":1767910209,"mtime_nanos":970366070,"lines":30},"docs/public/schemas/fastmcp.json/latest.json":{"mtime_secs":1767910209,"mtime_nanos":951495059,"lines":365},"examples/fastmcp_config_demo/server.py":{"mtime_secs":1767910209,"mtime_nanos":971338662,"lines":70},"tests/contrib/test_bulk_tool_caller.py":{"mtime_secs":1767910209,"mtime_nanos":998498209,"lines":288},".git/hooks/sendemail-validate.sample":{"mtime_secs":1767910208,"mtime_nanos":708929117,"lines":77},"tests/server/middleware/test_initialization_middleware.py":{"mtime_secs":1767910210,"mtime_nanos":4816977,"lines":377},".git/info/exclude":{"mtime_secs":1767910208,"mtime_nanos":707674272,"lines":6},"tests/client/sampling/handlers/test_openai_handler.py":{"mtime_secs":1767910209,"mtime_nanos":995983144,"lines":100},"docs/python-sdk/fastmcp-utilities-openapi-models.mdx":{"mtime_secs":1767910209,"mtime_nanos":962199493,"lines":35},"README.md":{"mtime_secs":1767910209,"mtime_nanos":926876660,"lines":515},"src/fastmcp/server/tasks/__init__.py":{"mtime_secs":1767910209,"mtime_nanos":989433624,"lines":22},".git/hooks/pre-applypatch.sample":{"mtime_secs":1767910208,"mtime_nanos":710476631,"lines":14},"docs/python-sdk/fastmcp-cli-install-claude_code.mdx":{"mtime_secs":1767910209,"mtime_nanos":951940605,"lines":71},"tests/server/tasks/conftest.py":{"mtime_secs":1767910210,"mtime_nanos":8271426,"lines":3},"src/fastmcp/server/auth/providers/introspection.py":{"mtime_secs":1767910209,"mtime_nanos":984330951,"lines":232},"tests/cli/test_tasks.py":{"mtime_secs":1767910209,"mtime_nanos":995257804,"lines":51},"docs/integrations/scalekit.mdx":{"mtime_secs":1767910209,"mtime_nanos":950470966,"lines":156},"src/fastmcp/server/openapi/components.py":{"mtime_secs":1767910209,"mtime_nanos":987083310,"lines":28},".git/objects/c0/51569de5b770348628df23c2f84594a484428c":{"mtime_secs":1768065435,"mtime_nanos":682174277,"lines":2},"src/fastmcp/contrib/README.md":{"mtime_secs":1767910209,"mtime_nanos":978996318,"lines":19},"docs/clients/tools.mdx":{"mtime_secs":1767910209,"mtime_nanos":942310347,"lines":295},"docs/python-sdk/fastmcp-resources-types.mdx":{"mtime_secs":1767910209,"mtime_nanos":954495420,"lines":134},".git/objects/b3/78331fafc94d484d48d0f4f01ac0c687559a15":{"mtime_secs":1768091029,"mtime_nanos":664477613,"lines":2},"docs/python-sdk/fastmcp-server-dependencies.mdx":{"mtime_secs":1767910209,"mtime_nanos":956670108,"lines":262},"src/fastmcp/server/__init__.py":{"mtime_secs":1768065435,"mtime_nanos":788985319,"lines":6},"docs/community/README.md":{"mtime_secs":1767910209,"mtime_nanos":942496057,"lines":22},"docs/python-sdk/fastmcp-client-logging.mdx":{"mtime_secs":1767910209,"mtime_nanos":952942739,"lines":24},".pre-commit-config.yaml":{"mtime_secs":1768307298,"mtime_nanos":259500063,"lines":55},".git/objects/81/adcdcb7c774850074e85fb0fa4b4a85d132af5":{"mtime_secs":1768248151,"mtime_nanos":545778925,"lines":4},"docs/python-sdk/fastmcp-server-auth-providers-in_memory.mdx":{"mtime_secs":1767910209,"mtime_nanos":955890184,"lines":96},".git/objects/4f/bd5ed99f52aae16d807b592b43b0fdaa5824df":{"mtime_secs":1768093424,"mtime_nanos":848695151,"lines":2},".git/objects/e7/42cfb59a305cd014e1b332a2a5fd080f6da783":{"mtime_secs":1768065435,"mtime_nanos":693951109,"lines":1},"docs/python-sdk/fastmcp-server-elicitation.mdx":{"mtime_secs":1768065435,"mtime_nanos":779122840,"lines":145},"src/fastmcp/utilities/openapi/formatters.py":{"mtime_secs":1767910209,"mtime_nanos":992885407,"lines":389},"examples/auth/aws_oauth/README.md":{"mtime_secs":1767910209,"mtime_nanos":968091465,"lines":47},"src/fastmcp/utilities/openapi/models.py":{"mtime_secs":1767910209,"mtime_nanos":993090367,"lines":88},"src/fastmcp/resources/__init__.py":{"mtime_secs":1768273914,"mtime_nanos":441763591,"lines":24},"docs/css/banner.css":{"mtime_secs":1767910209,"mtime_nanos":942669476,"lines":67},"src/fastmcp/cli/cli.py":{"mtime_secs":1768258809,"mtime_nanos":243879670,"lines":957},"docs/development/v3-notes/v3-features.mdx":{"mtime_secs":1768273914,"mtime_nanos":433838987,"lines":539},"src/fastmcp/contrib/component_manager/README.md":{"mtime_secs":1767910209,"mtime_nanos":979545406,"lines":170},".git/objects/b8/91305e65b62f19eeffc83ab0cb654a0ea2891c":{"mtime_secs":1768137600,"mtime_nanos":542451715,"lines":3},"src/fastmcp/server/middleware/error_handling.py":{"mtime_secs":1767910209,"mtime_nanos":986327803,"lines":210},"examples/auth/mounted/client.py":{"mtime_secs":1767910209,"mtime_nanos":969622104,"lines":50},"tests/resources/test_standalone_decorator.py":{"mtime_secs":1768273914,"mtime_nanos":455366988,"lines":154},".git/objects/50/efa27eb0bb623fce9db94455ec83ee0fd6f243":{"mtime_secs":1768137020,"mtime_nanos":832057407,"lines":2},"docs/python-sdk/fastmcp-server-low_level.mdx":{"mtime_secs":1767910209,"mtime_nanos":956974902,"lines":83},"docs/python-sdk/fastmcp-server-auth-providers-workos.mdx":{"mtime_secs":1767910209,"mtime_nanos":956390605,"lines":102},"tests/server/test_streamable_http_no_redirect.py":{"mtime_secs":1767910210,"mtime_nanos":11504748,"lines":85},"docs/python-sdk/fastmcp-server-tasks-keys.mdx":{"mtime_secs":1768065435,"mtime_nanos":780571022,"lines":89},"docs/integrations/claude-desktop.mdx":{"mtime_secs":1768065435,"mtime_nanos":773611157,"lines":299},"examples/tool_result_echo.py":{"mtime_secs":1767910209,"mtime_nanos":975231865,"lines":41},"docs/python-sdk/fastmcp-tools-__init__.mdx":{"mtime_secs":1767910209,"mtime_nanos":959998597,"lines":8},".cursor/rules/core-mcp-objects.mdc":{"mtime_secs":1768258809,"mtime_nanos":230499327,"lines":13},"docs/servers/auth/authentication.mdx":{"mtime_secs":1767910209,"mtime_nanos":962792123,"lines":216},"docs/servers/tools.mdx":{"mtime_secs":1768273914,"mtime_nanos":438023311,"lines":1040},"docs/tutorials/rest-api.mdx":{"mtime_secs":1767910209,"mtime_nanos":966102071,"lines":203},"src/fastmcp/server/auth/providers/github.py":{"mtime_secs":1767910209,"mtime_nanos":983912989,"lines":240},"src/fastmcp/server/providers/openapi/routing.py":{"mtime_secs":1767910209,"mtime_nanos":988211654,"lines":109},"examples/filesystem-provider/mcp/tools/calculator.py":{"mtime_secs":1768065435,"mtime_nanos":784557439,"lines":24},"examples/mount_example.py":{"mtime_secs":1767910209,"mtime_nanos":971860417,"lines":111},"docs/python-sdk/fastmcp-server-auth-auth.mdx":{"mtime_secs":1768065435,"mtime_nanos":777532531,"lines":279},"tests/utilities/test_logging.py":{"mtime_secs":1767910210,"mtime_nanos":13941146,"lines":56},".github/ISSUE_TEMPLATE/enhancement.yml":{"mtime_secs":1767910209,"mtime_nanos":925150269,"lines":34},".git/objects/24/edfdf9c8de9c126bfdb7729d9b07045c5194ba":{"mtime_secs":1768260294,"mtime_nanos":897853065,"lines":2},"src/fastmcp/server/middleware/rate_limiting.py":{"mtime_secs":1767910209,"mtime_nanos":986740807,"lines":231},"tests/server/middleware/test_ping.py":{"mtime_secs":1768091029,"mtime_nanos":869390580,"lines":241},"tests/server/tasks/test_task_protocol.py":{"mtime_secs":1767910210,"mtime_nanos":9487438,"lines":81},"src/fastmcp/server/tasks/subscriptions.py":{"mtime_secs":1768275412,"mtime_nanos":374665205,"lines":212},"examples/smart_home/src/smart_home/py.typed":{"mtime_secs":1767910209,"mtime_nanos":973567933,"lines":0},"examples/config_server.py":{"mtime_secs":1767910209,"mtime_nanos":970438737,"lines":46},"src/fastmcp/server/openapi/__init__.py":{"mtime_secs":1767910209,"mtime_nanos":986999268,"lines":55},"tests/server/auth/test_oauth_mounting.py":{"mtime_secs":1767910210,"mtime_nanos":3070377,"lines":380},"docs/python-sdk/fastmcp-server-providers-base.mdx":{"mtime_secs":1767910209,"mtime_nanos":958254497,"lines":264},"tests/deprecated/openapi/test_openapi.py":{"mtime_secs":1767910209,"mtime_nanos":999024506,"lines":170},"tests/server/auth/test_auth_provider.py":{"mtime_secs":1767910210,"mtime_nanos":2489414,"lines":105},"src/fastmcp/utilities/mcp_server_config/v1/environments/uv.py":{"mtime_secs":1767910209,"mtime_nanos":992003815,"lines":271},"docs/python-sdk/fastmcp-server-auth-providers-supabase.mdx":{"mtime_secs":1768065435,"mtime_nanos":778338040,"lines":67},"src/fastmcp/mcp_config.py":{"mtime_secs":1768273914,"mtime_nanos":440422955,"lines":347},"docs/servers/storage-backends.mdx":{"mtime_secs":1767910209,"mtime_nanos":965258063,"lines":275},"tests/server/tasks/test_task_config.py":{"mtime_secs":1767910210,"mtime_nanos":8878557,"lines":393},"tests/utilities/openapi/__init__.py":{"mtime_secs":1767910210,"mtime_nanos":12415174,"lines":1},"src/fastmcp/contrib/bulk_tool_caller/README.md":{"mtime_secs":1767910209,"mtime_nanos":979124569,"lines":35},".git/objects/59/2d0dad58b8002509e9f9f06a8cdfb79e0d1dab":{"mtime_secs":1768239135,"mtime_nanos":941631237,"lines":2},"docs/servers/progress.mdx":{"mtime_secs":1767910209,"mtime_nanos":964130844,"lines":189},"tests/server/auth/test_oauth_proxy_redirect_validation.py":{"mtime_secs":1767910210,"mtime_nanos":3339088,"lines":201},"src/fastmcp/_vendor/docket_di/__init__.py":{"mtime_secs":1768091029,"mtime_nanos":862366764,"lines":163},"src/fastmcp/server/proxy.py":{"mtime_secs":1767910209,"mtime_nanos":988580366,"lines":41},"examples/auth/workos_oauth/README.md":{"mtime_secs":1767910209,"mtime_nanos":970071234,"lines":27},"tests/client/auth/test_oauth_client.py":{"mtime_secs":1767910209,"mtime_nanos":995588932,"lines":358},"docs/python-sdk/fastmcp-server-providers-openapi-__init__.mdx":{"mtime_secs":1767910209,"mtime_nanos":958510542,"lines":23},"docs/python-sdk/fastmcp-server-auth-__init__.mdx":{"mtime_secs":1767910209,"mtime_nanos":954643088,"lines":8},".github/workflows/marvin-label-triage.yml":{"mtime_secs":1767966312,"mtime_nanos":628909164,"lines":146},"examples/atproto_mcp/src/atproto_mcp/server.py":{"mtime_secs":1767910209,"mtime_nanos":967541751,"lines":149},"docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-sources-filesystem.mdx":{"mtime_secs":1767910209,"mtime_nanos":961820823,"lines":37},"docs/python-sdk/fastmcp-server-openapi-__init__.mdx":{"mtime_secs":1767910209,"mtime_nanos":957844785,"lines":27},"tests/server/test_run_server.py":{"mtime_secs":1767910210,"mtime_nanos":11204996,"lines":98},".git/objects/f8/d9010672351b6167eef945a77d6070afaf64ce":{"mtime_secs":1768065435,"mtime_nanos":673484560,"lines":2},"docs/python-sdk/fastmcp-client-sampling-handlers-__init__.mdx":{"mtime_secs":1767910209,"mtime_nanos":953418535,"lines":8},"docs/python-sdk/fastmcp-server-providers-fastmcp_provider.mdx":{"mtime_secs":1767910209,"mtime_nanos":958383124,"lines":302},"docs/css/style.css":{"mtime_secs":1767910209,"mtime_nanos":942789518,"lines":20},"src/fastmcp/utilities/mcp_server_config/v1/environments/__init__.py":{"mtime_secs":1767910209,"mtime_nanos":991794771,"lines":6},"tests/fs/test_provider.py":{"mtime_secs":1768065435,"mtime_nanos":794991090,"lines":421},"tests/client/auth/__init__.py":{"mtime_secs":1767910209,"mtime_nanos":995499598,"lines":0},".git/objects/d4/9a61f5bcb362f24223a4f661810a9b99a5a488":{"mtime_secs":1767994445,"mtime_nanos":252684078,"lines":2},"examples/filesystem-provider/server.py":{"mtime_secs":1768065435,"mtime_nanos":784861734,"lines":29},"tests/server/auth/test_remote_auth_provider.py":{"mtime_secs":1767910210,"mtime_nanos":3773259,"lines":485},".git/objects/1d/6120c42e970f0f6a8fd3d2a598c0b44aee49a9":{"mtime_secs":1768274986,"mtime_nanos":132346000,"lines":2},".git/hooks/prepare-commit-msg.sample":{"mtime_secs":1767910208,"mtime_nanos":709952752,"lines":42},"tests/client/test_logs.py":{"mtime_secs":1767910209,"mtime_nanos":997087988,"lines":242},"src/fastmcp/server/providers/__init__.py":{"mtime_secs":1768273914,"mtime_nanos":443672230,"lines":59},"examples/memory.fastmcp.json":{"mtime_secs":1767910209,"mtime_nanos":971591748,"lines":7},"docs/python-sdk/fastmcp-server-middleware-caching.mdx":{"mtime_secs":1767910209,"mtime_nanos":957244946,"lines":221},".git/objects/92/05b08279f6a5a450c93d8d7dc8c66475ea9892":{"mtime_secs":1768091029,"mtime_nanos":673956202,"lines":6},"src/fastmcp/cli/install/gemini_cli.py":{"mtime_secs":1767910209,"mtime_nanos":976730005,"lines":237},"tests/server/http/test_http_middleware.py":{"mtime_secs":1767910210,"mtime_nanos":4386306,"lines":234},"docs/python-sdk/fastmcp-server-openapi-server.mdx":{"mtime_secs":1767910209,"mtime_nanos":958024704,"lines":43},"tests/tools/test_standalone_decorator.py":{"mtime_secs":1768275439,"mtime_nanos":418338078,"lines":138},"docs/python-sdk/fastmcp-settings.mdx":{"mtime_secs":1767910209,"mtime_nanos":959928388,"lines":50},"docs/integrations/github.mdx":{"mtime_secs":1767910209,"mtime_nanos":946128633,"lines":176},"tests/client/test_streamable_http.py":{"mtime_secs":1767910209,"mtime_nanos":997986163,"lines":271},"docs/public/schemas/fastmcp.json/v1.json":{"mtime_secs":1767910209,"mtime_nanos":951616102,"lines":365},"docs/servers/providers/proxy.mdx":{"mtime_secs":1768065435,"mtime_nanos":783643971,"lines":301},"tests/client/sampling/handlers/test_anthropic_handler.py":{"mtime_secs":1767910209,"mtime_nanos":995913727,"lines":247},"examples/atproto_mcp/src/atproto_mcp/__main__.py":{"mtime_secs":1767910209,"mtime_nanos":966907829,"lines":9},"docs/assets/schemas/mcp_server_config/v1.json":{"mtime_secs":1767910209,"mtime_nanos":939610864,"lines":348},"src/fastmcp/prompts/function_prompt.py":{"mtime_secs":1768275399,"mtime_nanos":600096498,"lines":449},"examples/smart_home/pyproject.toml":{"mtime_secs":1767910209,"mtime_nanos":973064428,"lines":19},"tests/client/test_oauth_callback_xss.py":{"mtime_secs":1767910209,"mtime_nanos":997307573,"lines":159},"docs/python-sdk/fastmcp-client-messages.mdx":{"mtime_secs":1767910209,"mtime_nanos":953050615,"lines":107},"examples/atproto_mcp/src/atproto_mcp/_atproto/_social.py":{"mtime_secs":1767910209,"mtime_nanos":967394458,"lines":108},".git/logs/refs/remotes/origin/consolidate-tool-transforms":{"mtime_secs":1768273613,"mtime_nanos":507273178,"lines":18},"examples/auth/github_oauth/server.py":{"mtime_secs":1767910209,"mtime_nanos":969166267,"lines":35},"examples/screenshot.py":{"mtime_secs":1767910209,"mtime_nanos":972703258,"lines":34},"tests/server/providers/openapi/__init__.py":{"mtime_secs":1767910210,"mtime_nanos":5586401,"lines":1},"docs/tutorials/mcp.mdx":{"mtime_secs":1767910209,"mtime_nanos":965996779,"lines":120},"tests/deprecated/__init__.py":{"mtime_secs":1767910209,"mtime_nanos":998823837,"lines":1},"src/fastmcp/contrib/bulk_tool_caller/__init__.py":{"mtime_secs":1767910209,"mtime_nanos":979201236,"lines":3},"tests/client/test_notifications.py":{"mtime_secs":1768275422,"mtime_nanos":287907709,"lines":556},".git/objects/b4/7896b09cafd1e4cc9842989e81be260587794e":{"mtime_secs":1768267926,"mtime_nanos":984003065,"lines":2},"src/fastmcp/server/tasks/handlers.py":{"mtime_secs":1768275412,"mtime_nanos":311074872,"lines":157},"tests/client/tasks/test_task_context_validation.py":{"mtime_secs":1767910209,"mtime_nanos":996601025,"lines":210},"docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-sources-__init__.mdx":{"mtime_secs":1767910209,"mtime_nanos":961695196,"lines":8},".git/objects/22/c76d09a8464e9a804f410fa924f7561f6cbd09":{"mtime_secs":1768250271,"mtime_nanos":584234730,"lines":1},".git/HEAD":{"mtime_secs":1768274985,"mtime_nanos":556264810,"lines":1},"tests/server/auth/test_oauth_proxy.py":{"mtime_secs":1767910210,"mtime_nanos":3208920,"lines":1899},"src/fastmcp/utilities/mcp_server_config/v1/schema.json":{"mtime_secs":1767910209,"mtime_nanos":992200484,"lines":365},".git/objects/c3/53e943d6333c628c16a10a9e4f1e33f823e692":{"mtime_secs":1768092842,"mtime_nanos":316929328,"lines":1},"docs/clients/resources.mdx":{"mtime_secs":1767910209,"mtime_nanos":941839676,"lines":204},"tests/server/auth/providers/__init__.py":{"mtime_secs":1767910210,"mtime_nanos":1390487,"lines":0},".git/objects/54/fdf5869298aba0a93a0a729b2da3050a6554a8":{"mtime_secs":1768062579,"mtime_nanos":837677255,"lines":2},".git/objects/4f/f5f87468426a2dde6d5c25e38ad49397e5f23e":{"mtime_secs":1768076204,"mtime_nanos":852890704,"lines":1},".git/objects/b3/42b8df0618b78a6a2de5b884a64e23c2be68d3":{"mtime_secs":1767969249,"mtime_nanos":767370869,"lines":1},"examples/smart_home/lights.fastmcp.json":{"mtime_secs":1767910209,"mtime_nanos":972989303,"lines":9},"tests/utilities/test_version_check.py":{"mtime_secs":1768258809,"mtime_nanos":253462361,"lines":315},"docs/python-sdk/fastmcp-server-auth-providers-azure.mdx":{"mtime_secs":1767910209,"mtime_nanos":955435012,"lines":70},".git/objects/be/91b6879d10acd18f93082b754c7a40a6d39c0d":{"mtime_secs":1767924161,"mtime_nanos":31520224,"lines":3},".git/objects/2a/b252054735a46f7cfddd7df8717960078336ff":{"mtime_secs":1767979182,"mtime_nanos":99591203,"lines":1},"examples/smart_home/src/smart_home/lights/hue_utils.py":{"mtime_secs":1767910209,"mtime_nanos":973462974,"lines":34},"tests/server/test_file_server.py":{"mtime_secs":1767910210,"mtime_nanos":10591323,"lines":134},"docs/python-sdk/fastmcp-utilities-inspect.mdx":{"mtime_secs":1767910209,"mtime_nanos":960831480,"lines":143},".git/refs/remotes/origin/extract-parsedfunction":{"mtime_secs":1768307169,"mtime_nanos":50322937,"lines":1},".git/refs/remotes/origin/HEAD":{"mtime_secs":1768307169,"mtime_nanos":239296625,"lines":1},"examples/smart_home/hub.fastmcp.json":{"mtime_secs":1767910209,"mtime_nanos":972926385,"lines":9},".git/objects/96/ce76a64c3cf09b157694aec6a7ebc0b30b03d3":{"mtime_secs":1768086974,"mtime_nanos":56235000,"lines":5},"docs/python-sdk/fastmcp-server-proxy.mdx":{"mtime_secs":1767910209,"mtime_nanos":958916837,"lines":14},"tests/utilities/test_typeadapter.py":{"mtime_secs":1767910210,"mtime_nanos":14133815,"lines":273},"docs/clients/prompts.mdx":{"mtime_secs":1767910209,"mtime_nanos":941722842,"lines":216},"docs/python-sdk/fastmcp-server-providers-openapi-provider.mdx":{"mtime_secs":1767910209,"mtime_nanos":958655209,"lines":94},"src/fastmcp/_vendor/__init__.py":{"mtime_secs":1768091029,"mtime_nanos":862090970,"lines":1},"examples/tasks/docker-compose.yml":{"mtime_secs":1767910209,"mtime_nanos":974155897,"lines":10},"docs/python-sdk/fastmcp-utilities-auth.mdx":{"mtime_secs":1767910209,"mtime_nanos":960472893,"lines":25},".git/logs/refs/remotes/origin/marvin/update-sdk-docs":{"mtime_secs":1768089463,"mtime_nanos":978178526,"lines":9},"tests/client/test_roots.py":{"mtime_secs":1767910209,"mtime_nanos":997526742,"lines":44},"examples/smart_home/src/smart_home/__init__.py":{"mtime_secs":1767910209,"mtime_nanos":973199055,"lines":3},".git/objects/2f/3cf47a6e5b38d74d38f94c7b01d45a1a45d7df":{"mtime_secs":1768065435,"mtime_nanos":674737781,"lines":4},".git/objects/50/23b9a6307492ec254f8d91cde94a95c4ad2838":{"mtime_secs":1768267926,"mtime_nanos":669355907,"lines":2},"docs/integrations/openai.mdx":{"mtime_secs":1767910209,"mtime_nanos":950235214,"lines":227},"tests/tools/__init__.py":{"mtime_secs":1767910210,"mtime_nanos":11842918,"lines":0},"src/fastmcp/utilities/json_schema.py":{"mtime_secs":1767966312,"mtime_nanos":634635197,"lines":401},".git/objects/fb/c0a3b35dd3df3d6e83c4b5164632a7ce8e50f4":{"mtime_secs":1768076785,"mtime_nanos":251090027,"lines":1},"src/fastmcp/cli/install/claude_code.py":{"mtime_secs":1767910209,"mtime_nanos":976420377,"lines":240},"src/fastmcp/server/dependencies.py":{"mtime_secs":1768275409,"mtime_nanos":847832657,"lines":908},"docs/python-sdk/fastmcp-server-sampling-run.mdx":{"mtime_secs":1767910209,"mtime_nanos":959035838,"lines":116},".git/refs/remotes/origin/consolidate-tool-transforms":{"mtime_secs":1768273613,"mtime_nanos":506487922,"lines":1},"v3-notes/visibility.md":{"mtime_secs":1767910210,"mtime_nanos":15599745,"lines":113},"tests/server/test_server_lifespan.py":{"mtime_secs":1768065435,"mtime_nanos":797942538,"lines":464},"tests/client/test_elicitation.py":{"mtime_secs":1767910209,"mtime_nanos":996938111,"lines":1132},"docs/development/upgrade-guide.mdx":{"mtime_secs":1768273914,"mtime_nanos":433401067,"lines":401},"tests/deprecated/conftest.py":{"mtime_secs":1767910209,"mtime_nanos":998886838,"lines":9},"docs/python-sdk/fastmcp-utilities-json_schema_type.mdx":{"mtime_secs":1767910209,"mtime_nanos":960965106,"lines":110},"docs/.ccignore":{"mtime_secs":1767910209,"mtime_nanos":927042704,"lines":2},"src/fastmcp/utilities/json_schema_type.py":{"mtime_secs":1768275640,"mtime_nanos":345539294,"lines":650},"docs/changelog.mdx":{"mtime_secs":1768258809,"mtime_nanos":238537549,"lines":2280},"examples/sampling/README.md":{"mtime_secs":1767910209,"mtime_nanos":972285171,"lines":62},"docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-environments-uv.mdx":{"mtime_secs":1767910209,"mtime_nanos":961491570,"lines":45},"tests/server/test_context.py":{"mtime_secs":1768275525,"mtime_nanos":455869065,"lines":294},"examples/auth/github_oauth/client.py":{"mtime_secs":1767910209,"mtime_nanos":969101225,"lines":32},"docs/integrations/eunomia-authorization.mdx":{"mtime_secs":1767910209,"mtime_nanos":945746296,"lines":129},"src/fastmcp/server/auth/__init__.py":{"mtime_secs":1768267998,"mtime_nanos":902825982,"lines":39},"docs/python-sdk/fastmcp-dependencies.mdx":{"mtime_secs":1767910209,"mtime_nanos":953769580,"lines":14},"src/fastmcp/utilities/mcp_server_config/v1/__init__.py":{"mtime_secs":1767910209,"mtime_nanos":991637978,"lines":0},".git/refs/heads/feature/reload-flag":{"mtime_secs":1767927080,"mtime_nanos":440919312,"lines":1},"docs/python-sdk/fastmcp-client-sampling-handlers-openai.mdx":{"mtime_secs":1767910209,"mtime_nanos":953555870,"lines":17},".git/objects/15/ada0e0abca1bdd7c3e13fcdf6dd292f27d617c":{"mtime_secs":1768062579,"mtime_nanos":868791012,"lines":1},"tests/utilities/openapi/test_parser.py":{"mtime_secs":1767910210,"mtime_nanos":13193514,"lines":460},".git/objects/16/47fbea1a21e3f2b8384f4032724b2a4b994cca":{"mtime_secs":1768060130,"mtime_nanos":826156272,"lines":1},".git/objects/c8/2a2396c74b64e77bd7669372ac34bd8dfc680b":{"mtime_secs":1768157216,"mtime_nanos":347003934,"lines":3},"tests/server/auth/test_authorization.py":{"mtime_secs":1768267998,"mtime_nanos":912749711,"lines":604},"src/fastmcp/client/auth/oauth.py":{"mtime_secs":1767910209,"mtime_nanos":977478262,"lines":329},"src/fastmcp/cli/install/__init__.py":{"mtime_secs":1767910209,"mtime_nanos":976311792,"lines":22},"tests/server/providers/openapi/test_openapi_performance.py":{"mtime_secs":1767910210,"mtime_nanos":6598286,"lines":136},"examples/atproto_mcp/src/atproto_mcp/_atproto/__init__.py":{"mtime_secs":1767910209,"mtime_nanos":967014205,"lines":20},"tests/contrib/test_mcp_mixin.py":{"mtime_secs":1767910209,"mtime_nanos":998716003,"lines":339},"docs/servers/tasks.mdx":{"mtime_secs":1768091029,"mtime_nanos":860856583,"lines":253},"docs/integrations/fastapi.mdx":{"mtime_secs":1768065435,"mtime_nanos":774079745,"lines":445},".git/hooks/pre-receive.sample":{"mtime_secs":1767910208,"mtime_nanos":709805292,"lines":24},"docs/python-sdk/fastmcp-server-tasks-subscriptions.mdx":{"mtime_secs":1767910209,"mtime_nanos":959858012,"lines":36},"src/fastmcp/utilities/components.py":{"mtime_secs":1767910209,"mtime_nanos":990875679,"lines":184},"tests/server/test_providers.py":{"mtime_secs":1768273914,"mtime_nanos":460651113,"lines":439},"examples/smart_home/src/smart_home/lights/__init__.py":{"mtime_secs":1767910209,"mtime_nanos":973384390,"lines":0},"docs/python-sdk/fastmcp-utilities-json_schema.mdx":{"mtime_secs":1768065435,"mtime_nanos":781402780,"lines":79},"docs/python-sdk/fastmcp-server-tasks-requests.mdx":{"mtime_secs":1768065435,"mtime_nanos":780910525,"lines":89},"docs/python-sdk/fastmcp-utilities-lifespan.mdx":{"mtime_secs":1768065435,"mtime_nanos":781585199,"lines":36},"examples/sampling/tool_use.py":{"mtime_secs":1767910209,"mtime_nanos":972577174,"lines":125},"docs/docs.json":{"mtime_secs":1768273914,"mtime_nanos":434228823,"lines":589},"src/fastmcp/tools/function_tool.py":{"mtime_secs":1768275412,"mtime_nanos":805442386,"lines":411},"docs/servers/icons.mdx":{"mtime_secs":1767910209,"mtime_nanos":963789508,"lines":139},"tests/server/test_event_store.py":{"mtime_secs":1767910210,"mtime_nanos":10499114,"lines":238},"tests/utilities/openapi/test_nullable_fields.py":{"mtime_secs":1768275583,"mtime_nanos":811283856,"lines":385},"examples/in_memory_proxy_example.py":{"mtime_secs":1767910209,"mtime_nanos":971520789,"lines":82},".git/ORIG_HEAD":{"mtime_secs":1768274985,"mtime_nanos":262791434,"lines":1},"docs/python-sdk/fastmcp-server-auth-providers-jwt.mdx":{"mtime_secs":1767910209,"mtime_nanos":956058268,"lines":146},"src/fastmcp/server/providers/filesystem.py":{"mtime_secs":1768273914,"mtime_nanos":445181492,"lines":217},"examples/desktop.py":{"mtime_secs":1767910209,"mtime_nanos":970601530,"lines":32},"examples/fastmcp_config/env_interpolation_example.json":{"mtime_secs":1767910209,"mtime_nanos":970774407,"lines":20},".github/workflows/auto-close-duplicates.yml":{"mtime_secs":1767910209,"mtime_nanos":925481022,"lines":36},"examples/atproto_mcp/src/atproto_mcp/settings.py":{"mtime_secs":1767910209,"mtime_nanos":967610419,"lines":17},".git/objects/97/17b81aa0fc9fc8be7b60ee9ff6ac6648013f59":{"mtime_secs":1768005421,"mtime_nanos":578957736,"lines":1},"examples/auth/mounted/server.py":{"mtime_secs":1767910209,"mtime_nanos":969713022,"lines":121},"src/fastmcp/cli/run.py":{"mtime_secs":1768065435,"mtime_nanos":786414458,"lines":366},"src/fastmcp/experimental/sampling/handlers/__init__.py":{"mtime_secs":1767910209,"mtime_nanos":980731209,"lines":5},".github/ISSUE_TEMPLATE/config.yml":{"mtime_secs":1767910209,"mtime_nanos":925086685,"lines":8},"src/fastmcp/server/auth/providers/auth0.py":{"mtime_secs":1767910209,"mtime_nanos":983168148,"lines":123},"tests/server/tasks/test_task_ttl.py":{"mtime_secs":1767910210,"mtime_nanos":9979234,"lines":87},".git/description":{"mtime_secs":1767910208,"mtime_nanos":707959400,"lines":1},"src/fastmcp/utilities/mcp_server_config/v1/sources/filesystem.py":{"mtime_secs":1767910209,"mtime_nanos":992457361,"lines":216},"examples/auth/aws_oauth/server.py":{"mtime_secs":1767910209,"mtime_nanos":968288884,"lines":59},"docs/development/v3-notes/auth-provider-env-vars.mdx":{"mtime_secs":1767910209,"mtime_nanos":943921779,"lines":73},"src/fastmcp/settings.py":{"mtime_secs":1768273914,"mtime_nanos":449438692,"lines":367},"docs/python-sdk/fastmcp-server-auth-providers-google.mdx":{"mtime_secs":1767910209,"mtime_nanos":955794266,"lines":66},"src/fastmcp/__init__.py":{"mtime_secs":1767910209,"mtime_nanos":975938122,"lines":35},"docs/python-sdk/fastmcp-client-auth-oauth.mdx":{"mtime_secs":1768065435,"mtime_nanos":775104506,"lines":104},"docs/python-sdk/fastmcp-server-providers-proxy.mdx":{"mtime_secs":1768065435,"mtime_nanos":779964599,"lines":322},".git/refs/heads/extract-parsedfunction":{"mtime_secs":1768275805,"mtime_nanos":78366630,"lines":1},"src/fastmcp/utilities/openapi/README.md":{"mtime_secs":1767910209,"mtime_nanos":992630446,"lines":211},"docs/python-sdk/fastmcp-resources-__init__.mdx":{"mtime_secs":1767910209,"mtime_nanos":954184334,"lines":8},"docs/python-sdk/fastmcp-server-auth-providers-introspection.mdx":{"mtime_secs":1767910209,"mtime_nanos":955961976,"lines":71},".git/objects/0f/ddc85a07fa514936c4ed9a20887cb9ae922732":{"mtime_secs":1768259365,"mtime_nanos":685505137,"lines":2},".git/cursor/crepe/627c6cdad436cc6d81c268d8fc2c869e1b7e01da/metadata.json":{"mtime_secs":1767914918,"mtime_nanos":561926124,"lines":1},"tests/server/providers/proxy/__init__.py":{"mtime_secs":1768065435,"mtime_nanos":795461095,"lines":0},"v3-notes/task-meta-parameter.md":{"mtime_secs":1767910210,"mtime_nanos":15531745,"lines":109},".git/objects/f3/2b73b2d88cb8d9b63dff0ad0a62463ae0fe444":{"mtime_secs":1768077943,"mtime_nanos":871964525,"lines":3},"tests/deprecated/server/__init__.py":{"mtime_secs":1767910209,"mtime_nanos":999134215,"lines":1},".git/FETCH_HEAD":{"mtime_secs":1768307169,"mtime_nanos":51648273,"lines":69},"docs/python-sdk/fastmcp-server-event_store.mdx":{"mtime_secs":1767910209,"mtime_nanos":956825151,"lines":78},".git/objects/56/7083454d0c2ae5576f93b6a7dda7815b76e22b":{"mtime_secs":1768273914,"mtime_nanos":360682000,"lines":2},"tests/server/auth/test_oidc_proxy.py":{"mtime_secs":1767910210,"mtime_nanos":3595049,"lines":878},"examples/auth/google_oauth/client.py":{"mtime_secs":1767910209,"mtime_nanos":969343435,"lines":32},"docs/python-sdk/fastmcp-server-tasks-handlers.mdx":{"mtime_secs":1767910209,"mtime_nanos":959588677,"lines":41},"docs/python-sdk/fastmcp-prompts-prompt.mdx":{"mtime_secs":1767910209,"mtime_nanos":954120417,"lines":200},".git/objects/45/6100882d3e34e2f18d02b4b6a11874acaac864":{"mtime_secs":1767927080,"mtime_nanos":440059296,"lines":1},".git/objects/d8/d221a3d2234d9b5e70131969c4064a2d457606":{"mtime_secs":1768257849,"mtime_nanos":528083117,"lines":2},".github/workflows/auto-close-needs-mre.yml":{"mtime_secs":1767910209,"mtime_nanos":925534731,"lines":36},"tests/server/http/test_http_auth_middleware.py":{"mtime_secs":1767910210,"mtime_nanos":4197680,"lines":93},"src/fastmcp/experimental/utilities/openapi/__init__.py":{"mtime_secs":1767910209,"mtime_nanos":981096046,"lines":37},"tests/server/providers/proxy/test_proxy_server.py":{"mtime_secs":1768275439,"mtime_nanos":343715291,"lines":729},"src/fastmcp/server/auth/jwt_issuer.py":{"mtime_secs":1767910209,"mtime_nanos":982524476,"lines":236},"src/fastmcp/contrib/bulk_tool_caller/bulk_tool_caller.py":{"mtime_secs":1767910209,"mtime_nanos":979308612,"lines":133},".git/hooks/commit-msg.sample":{"mtime_secs":1767910208,"mtime_nanos":708589864,"lines":24},".git/objects/84/c11b074fc53b632c87cdf0c18461ea23bd8f19":{"mtime_secs":1767927045,"mtime_nanos":190585270,"lines":2}}}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: fastmcp
|
|
3
|
-
Version: 2.14.
|
|
3
|
+
Version: 2.14.4
|
|
4
4
|
Summary: The fast, Pythonic way to build MCP servers and clients.
|
|
5
5
|
Project-URL: Homepage, https://gofastmcp.com
|
|
6
6
|
Project-URL: Repository, https://github.com/jlowin/fastmcp
|
|
@@ -22,13 +22,15 @@ Requires-Dist: authlib>=1.6.5
|
|
|
22
22
|
Requires-Dist: cyclopts>=4.0.0
|
|
23
23
|
Requires-Dist: exceptiongroup>=1.2.2
|
|
24
24
|
Requires-Dist: httpx>=0.28.1
|
|
25
|
+
Requires-Dist: jsonref>=1.1.0
|
|
25
26
|
Requires-Dist: jsonschema-path>=0.3.4
|
|
26
27
|
Requires-Dist: mcp<2.0,>=1.24.0
|
|
27
28
|
Requires-Dist: openapi-pydantic>=0.5.1
|
|
29
|
+
Requires-Dist: packaging>=20.0
|
|
28
30
|
Requires-Dist: platformdirs>=4.0.0
|
|
29
31
|
Requires-Dist: py-key-value-aio[disk,keyring,memory]<0.4.0,>=0.3.0
|
|
30
32
|
Requires-Dist: pydantic[email]>=2.11.7
|
|
31
|
-
Requires-Dist: pydocket
|
|
33
|
+
Requires-Dist: pydocket<0.17.0,>=0.16.6
|
|
32
34
|
Requires-Dist: pyperclip>=1.9.0
|
|
33
35
|
Requires-Dist: python-dotenv>=1.1.0
|
|
34
36
|
Requires-Dist: rich>=13.9.4
|
|
@@ -4,6 +4,58 @@ icon: "list-check"
|
|
|
4
4
|
rss: true
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
+
<Update label="v2.14.3" description="2026-01-12">
|
|
8
|
+
|
|
9
|
+
**[v2.14.3: Time After Timeout](https://github.com/jlowin/fastmcp/releases/tag/v2.14.3)**
|
|
10
|
+
|
|
11
|
+
Sometimes five seconds just isn't enough. This release fixes an HTTP transport bug that was cutting connections short, along with OAuth and Redis fixes, better ASGI support, and CLI update notifications so you never miss a beat.
|
|
12
|
+
|
|
13
|
+
## What's Changed
|
|
14
|
+
### Enhancements 🔧
|
|
15
|
+
* Add debug logging for OAuth token expiry diagnostics by [@jlowin](https://github.com/jlowin) in [#2789](https://github.com/jlowin/fastmcp/pull/2789)
|
|
16
|
+
* Add CLI update notifications by [@jlowin](https://github.com/jlowin) in [#2839](https://github.com/jlowin/fastmcp/pull/2839)
|
|
17
|
+
* Use pip instead of uv pip in upgrade instructions by [@jlowin](https://github.com/jlowin) in [#2841](https://github.com/jlowin/fastmcp/pull/2841)
|
|
18
|
+
### Fixes 🐞
|
|
19
|
+
* Backport OAuth token storage TTL fix to release/2.x by [@jlowin](https://github.com/jlowin) in [#2798](https://github.com/jlowin/fastmcp/pull/2798)
|
|
20
|
+
* Prefix Redis keys with docket name for ACL isolation (2.x backport) by [@chrisguidry](https://github.com/chrisguidry) in [#2812](https://github.com/jlowin/fastmcp/pull/2812)
|
|
21
|
+
* Fix ContextVar propagation for ASGI-mounted servers with tasks by [@chrisguidry](https://github.com/chrisguidry) in [#2843](https://github.com/jlowin/fastmcp/pull/2843)
|
|
22
|
+
* Fix HTTP transport timeout defaulting to 5 seconds by [@jlowin](https://github.com/jlowin) in [#2848](https://github.com/jlowin/fastmcp/pull/2848)
|
|
23
|
+
|
|
24
|
+
**Full Changelog**: [v2.14.2...v2.14.3](https://github.com/jlowin/fastmcp/compare/v2.14.2...v2.14.3)
|
|
25
|
+
|
|
26
|
+
</Update>
|
|
27
|
+
|
|
28
|
+
<Update label="v2.14.2" description="2025-12-31">
|
|
29
|
+
|
|
30
|
+
**[v2.14.2: Port Authority](https://github.com/jlowin/fastmcp/releases/tag/v2.14.2)**
|
|
31
|
+
|
|
32
|
+
FastMCP 2.14.2 brings a wave of community contributions safely into the 2.x line. A variety of important fixes backported from 3.0 work improve OpenAPI 3.1 compatibility, MCP spec compliance for output schemas and elicitation, and correct a subtle base_url fallback issue. The CLI now gently reminds you that FastMCP 3.0 is on the horizon.
|
|
33
|
+
|
|
34
|
+
## What's Changed
|
|
35
|
+
### Enhancements 🔧
|
|
36
|
+
* Pin MCP under 2.x by [@jlowin](https://github.com/jlowin) in [#2709](https://github.com/jlowin/fastmcp/pull/2709)
|
|
37
|
+
* Add auth_route parameter to SupabaseProvider by [@EloiZalczer](https://github.com/EloiZalczer) in [#2760](https://github.com/jlowin/fastmcp/pull/2760)
|
|
38
|
+
* Update CLI banner with FastMCP 3.0 notice by [@jlowin](https://github.com/jlowin) in [#2765](https://github.com/jlowin/fastmcp/pull/2765)
|
|
39
|
+
### Fixes 🐞
|
|
40
|
+
* Let FastMCPError propagate unchanged from managers by [@jlowin](https://github.com/jlowin) in [#2697](https://github.com/jlowin/fastmcp/pull/2697)
|
|
41
|
+
* Fix test cleanup for uvicorn 0.39+ context isolation by [@jlowin](https://github.com/jlowin) in [#2696](https://github.com/jlowin/fastmcp/pull/2696)
|
|
42
|
+
* Bump pydocket to 0.16.3 to fix worker cleanup race condition by [@chrisguidry](https://github.com/chrisguidry) in [#2700](https://github.com/jlowin/fastmcp/pull/2700)
|
|
43
|
+
* Fix Prefect website URL in docs footer by [@mgoldsborough](https://github.com/mgoldsborough) in [#2705](https://github.com/jlowin/fastmcp/pull/2705)
|
|
44
|
+
* Fix: resolve root-level $ref in outputSchema for MCP spec compliance by [@majiayu000](https://github.com/majiayu000) in [#2727](https://github.com/jlowin/fastmcp/pull/2727)
|
|
45
|
+
* Fix OAuth Proxy resource parameter validation by [@jlowin](https://github.com/jlowin) in [#2763](https://github.com/jlowin/fastmcp/pull/2763)
|
|
46
|
+
* Fix openapi_version check to include 3.1 by [@deeleeramone](https://github.com/deeleeramone) in [#2769](https://github.com/jlowin/fastmcp/pull/2769)
|
|
47
|
+
* Fix titled enum elicitation schema to comply with MCP spec by [@jlowin](https://github.com/jlowin) in [#2774](https://github.com/jlowin/fastmcp/pull/2774)
|
|
48
|
+
* Fix base_url fallback when url is not set by [@bhbs](https://github.com/bhbs) in [#2782](https://github.com/jlowin/fastmcp/pull/2782)
|
|
49
|
+
* Lazy import DiskStore to avoid sqlite3 dependency on import by [@jlowin](https://github.com/jlowin) in [#2785](https://github.com/jlowin/fastmcp/pull/2785)
|
|
50
|
+
### Docs 📚
|
|
51
|
+
* Add v3 breaking changes notice to README and docs by [@jlowin](https://github.com/jlowin) in [#2713](https://github.com/jlowin/fastmcp/pull/2713)
|
|
52
|
+
* Add changelog entries for v2.13.1 through v2.14.1 by [@jlowin](https://github.com/jlowin) in [#2724](https://github.com/jlowin/fastmcp/pull/2724)
|
|
53
|
+
* conference to 2.x branch by [@aaazzam](https://github.com/aaazzam) in [#2787](https://github.com/jlowin/fastmcp/pull/2787)
|
|
54
|
+
|
|
55
|
+
**Full Changelog**: [v2.14.1...v2.14.2](https://github.com/jlowin/fastmcp/compare/v2.14.1...v2.14.2)
|
|
56
|
+
|
|
57
|
+
</Update>
|
|
58
|
+
|
|
7
59
|
<Update label="v2.14.1" description="2025-12-15">
|
|
8
60
|
|
|
9
61
|
**[v2.14.1: 'Tis a Gift to Be Sample](https://github.com/jlowin/fastmcp/releases/tag/v2.14.1)**
|
|
@@ -173,6 +173,10 @@ def my_tool() -> None:
|
|
|
173
173
|
|
|
174
174
|
By default, FastMCP converts Python functions into MCP tools by inspecting the function's signature and type annotations. This allows you to use standard Python type annotations for your tools. In general, the framework strives to "just work": idiomatic Python behaviors like parameter defaults and type annotations are automatically translated into MCP schemas. However, there are a number of ways to customize the behavior of your tools.
|
|
175
175
|
|
|
176
|
+
<Note>
|
|
177
|
+
FastMCP automatically dereferences `$ref` entries in tool schemas to ensure compatibility with MCP clients that don't fully support JSON Schema references (e.g., VS Code Copilot, Claude Desktop). This means complex Pydantic models with shared types are inlined in the schema rather than using `$defs` references.
|
|
178
|
+
</Note>
|
|
179
|
+
|
|
176
180
|
### Type Annotations
|
|
177
181
|
|
|
178
182
|
MCP tools have typed arguments, and FastMCP uses type annotations to determine those types. Therefore, you should use standard Python type annotations for tool arguments:
|
|
@@ -5,6 +5,26 @@ icon: "sparkles"
|
|
|
5
5
|
tag: NEW
|
|
6
6
|
---
|
|
7
7
|
|
|
8
|
+
<Update label="FastMCP 2.14.3" description="January 12, 2026" tags={["Releases"]}>
|
|
9
|
+
<Card
|
|
10
|
+
title="FastMCP 2.14.3: Time After Timeout"
|
|
11
|
+
href="https://github.com/jlowin/fastmcp/releases/tag/v2.14.3"
|
|
12
|
+
cta="Read the release notes"
|
|
13
|
+
>
|
|
14
|
+
Sometimes five seconds just isn't enough. This release fixes an HTTP transport bug that was cutting connections short, along with OAuth and Redis fixes, better ASGI support, and CLI update notifications so you never miss a beat.
|
|
15
|
+
</Card>
|
|
16
|
+
</Update>
|
|
17
|
+
|
|
18
|
+
<Update label="FastMCP 2.14.2" description="December 31, 2025" tags={["Releases"]}>
|
|
19
|
+
<Card
|
|
20
|
+
title="FastMCP 2.14.2: Port Authority"
|
|
21
|
+
href="https://github.com/jlowin/fastmcp/releases/tag/v2.14.2"
|
|
22
|
+
cta="Read the release notes"
|
|
23
|
+
>
|
|
24
|
+
FastMCP 2.14.2 brings a wave of community contributions safely into the 2.x line. A variety of important fixes backported from 3.0 work improve OpenAPI 3.1 compatibility, MCP spec compliance for output schemas and elicitation, and correct a subtle base_url fallback issue. The CLI now gently reminds you that FastMCP 3.0 is on the horizon.
|
|
25
|
+
</Card>
|
|
26
|
+
</Update>
|
|
27
|
+
|
|
8
28
|
<Update label="FastMCP 2.14.1" description="December 15, 2025" tags={["Releases"]}>
|
|
9
29
|
<Card
|
|
10
30
|
title="FastMCP 2.14.1: 'Tis a Gift to Be Sample"
|
|
@@ -10,7 +10,7 @@ dependencies = [
|
|
|
10
10
|
"mcp>=1.24.0,<2.0",
|
|
11
11
|
"openapi-pydantic>=0.5.1",
|
|
12
12
|
"platformdirs>=4.0.0",
|
|
13
|
-
"pydocket>=0.16.6",
|
|
13
|
+
"pydocket>=0.16.6,<0.17.0",
|
|
14
14
|
"rich>=13.9.4",
|
|
15
15
|
"cyclopts>=4.0.0",
|
|
16
16
|
"authlib>=1.6.5",
|
|
@@ -20,6 +20,8 @@ dependencies = [
|
|
|
20
20
|
"uvicorn>=0.35",
|
|
21
21
|
"websockets>=15.0.1",
|
|
22
22
|
"jsonschema-path>=0.3.4",
|
|
23
|
+
"jsonref>=1.1.0",
|
|
24
|
+
"packaging>=20.0",
|
|
23
25
|
]
|
|
24
26
|
|
|
25
27
|
requires-python = ">=3.10"
|
|
@@ -36,7 +36,6 @@ from fastmcp.client.auth.oauth import OAuth
|
|
|
36
36
|
from fastmcp.mcp_config import MCPConfig, infer_transport_type_from_url
|
|
37
37
|
from fastmcp.server.dependencies import get_http_headers
|
|
38
38
|
from fastmcp.server.server import FastMCP
|
|
39
|
-
from fastmcp.server.tasks.capabilities import get_task_capabilities
|
|
40
39
|
from fastmcp.utilities.logging import get_logger
|
|
41
40
|
from fastmcp.utilities.mcp_server_config.v1.environments.uv import UVEnvironment
|
|
42
41
|
|
|
@@ -900,16 +899,11 @@ class FastMCPTransport(ClientTransport):
|
|
|
900
899
|
anyio.create_task_group() as tg,
|
|
901
900
|
_enter_server_lifespan(server=self.server),
|
|
902
901
|
):
|
|
903
|
-
# Build experimental capabilities
|
|
904
|
-
experimental_capabilities = get_task_capabilities()
|
|
905
|
-
|
|
906
902
|
tg.start_soon(
|
|
907
903
|
lambda: self.server._mcp_server.run(
|
|
908
904
|
server_read,
|
|
909
905
|
server_write,
|
|
910
|
-
self.server._mcp_server.create_initialization_options(
|
|
911
|
-
experimental_capabilities=experimental_capabilities
|
|
912
|
-
),
|
|
906
|
+
self.server._mcp_server.create_initialization_options(),
|
|
913
907
|
raise_exceptions=self.raise_exceptions,
|
|
914
908
|
)
|
|
915
909
|
)
|
|
@@ -21,7 +21,6 @@ from starlette.types import Lifespan, Receive, Scope, Send
|
|
|
21
21
|
|
|
22
22
|
from fastmcp.server.auth import AuthProvider
|
|
23
23
|
from fastmcp.server.auth.middleware import RequireAuthMiddleware
|
|
24
|
-
from fastmcp.server.tasks.capabilities import get_task_capabilities
|
|
25
24
|
from fastmcp.utilities.logging import get_logger
|
|
26
25
|
|
|
27
26
|
if TYPE_CHECKING:
|
|
@@ -160,15 +159,10 @@ def create_sse_app(
|
|
|
160
159
|
# Create handler for SSE connections
|
|
161
160
|
async def handle_sse(scope: Scope, receive: Receive, send: Send) -> Response:
|
|
162
161
|
async with sse.connect_sse(scope, receive, send) as streams:
|
|
163
|
-
# Build experimental capabilities
|
|
164
|
-
experimental_capabilities = get_task_capabilities()
|
|
165
|
-
|
|
166
162
|
await server._mcp_server.run(
|
|
167
163
|
streams[0],
|
|
168
164
|
streams[1],
|
|
169
|
-
server._mcp_server.create_initialization_options(
|
|
170
|
-
experimental_capabilities=experimental_capabilities
|
|
171
|
-
),
|
|
165
|
+
server._mcp_server.create_initialization_options(),
|
|
172
166
|
)
|
|
173
167
|
return Response()
|
|
174
168
|
|
|
@@ -163,6 +163,31 @@ class LowLevelServer(_Server[LifespanResultT, RequestT]):
|
|
|
163
163
|
**kwargs,
|
|
164
164
|
)
|
|
165
165
|
|
|
166
|
+
def get_capabilities(
|
|
167
|
+
self,
|
|
168
|
+
notification_options: NotificationOptions,
|
|
169
|
+
experimental_capabilities: dict[str, dict[str, Any]],
|
|
170
|
+
) -> mcp.types.ServerCapabilities:
|
|
171
|
+
"""Override to set capabilities.tasks as a first-class field per SEP-1686.
|
|
172
|
+
|
|
173
|
+
This ensures task capabilities appear in capabilities.tasks instead of
|
|
174
|
+
capabilities.experimental.tasks, which is required by the MCP spec and
|
|
175
|
+
enables proper task detection by clients like VS Code Copilot 1.107+.
|
|
176
|
+
"""
|
|
177
|
+
from fastmcp.server.tasks.capabilities import get_task_capabilities
|
|
178
|
+
|
|
179
|
+
# Get base capabilities from SDK (pass empty dict for experimental)
|
|
180
|
+
# since we'll set tasks as a first-class field instead
|
|
181
|
+
capabilities = super().get_capabilities(
|
|
182
|
+
notification_options,
|
|
183
|
+
experimental_capabilities or {},
|
|
184
|
+
)
|
|
185
|
+
|
|
186
|
+
# Set tasks as a first-class field (not experimental) per SEP-1686
|
|
187
|
+
capabilities.tasks = get_task_capabilities()
|
|
188
|
+
|
|
189
|
+
return capabilities
|
|
190
|
+
|
|
166
191
|
async def run(
|
|
167
192
|
self,
|
|
168
193
|
read_stream: MemoryObjectReceiveStream[SessionMessage | Exception],
|
|
@@ -75,7 +75,6 @@ from fastmcp.server.http import (
|
|
|
75
75
|
)
|
|
76
76
|
from fastmcp.server.low_level import LowLevelServer
|
|
77
77
|
from fastmcp.server.middleware import Middleware, MiddlewareContext
|
|
78
|
-
from fastmcp.server.tasks.capabilities import get_task_capabilities
|
|
79
78
|
from fastmcp.server.tasks.config import TaskConfig
|
|
80
79
|
from fastmcp.server.tasks.handlers import (
|
|
81
80
|
handle_prompt_as_task,
|
|
@@ -2508,9 +2507,6 @@ class FastMCP(Generic[LifespanResultT]):
|
|
|
2508
2507
|
f"Starting MCP server {self.name!r} with transport 'stdio'"
|
|
2509
2508
|
)
|
|
2510
2509
|
|
|
2511
|
-
# Build experimental capabilities
|
|
2512
|
-
experimental_capabilities = get_task_capabilities()
|
|
2513
|
-
|
|
2514
2510
|
await self._mcp_server.run(
|
|
2515
2511
|
read_stream,
|
|
2516
2512
|
write_stream,
|
|
@@ -2518,7 +2514,6 @@ class FastMCP(Generic[LifespanResultT]):
|
|
|
2518
2514
|
notification_options=NotificationOptions(
|
|
2519
2515
|
tools_changed=True
|
|
2520
2516
|
),
|
|
2521
|
-
experimental_capabilities=experimental_capabilities,
|
|
2522
2517
|
),
|
|
2523
2518
|
)
|
|
2524
2519
|
|