fastmcp 2.14.5__tar.gz → 3.0.0b1__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-3.0.0b1/.claude/skills/code-review/SKILL.md +94 -0
- fastmcp-3.0.0b1/.claude/skills/python-tests/SKILL.md +220 -0
- fastmcp-3.0.0b1/.cursor/rules/core-mcp-objects.mdc +13 -0
- fastmcp-3.0.0b1/.github/workflows/martian-issue-triage.yml +176 -0
- fastmcp-3.0.0b1/.github/workflows/martian-test-failure.yml +185 -0
- fastmcp-3.0.0b1/.github/workflows/marvin-dedupe-issues.yml +95 -0
- fastmcp-3.0.0b1/.github/workflows/marvin-label-triage.yml +147 -0
- fastmcp-3.0.0b1/.github/workflows/marvin.yml +81 -0
- fastmcp-3.0.0b1/.github/workflows/update-config-schema.yml +91 -0
- fastmcp-3.0.0b1/.github/workflows/update-sdk-docs.yml +74 -0
- fastmcp-3.0.0b1/.gitignore +78 -0
- fastmcp-3.0.0b1/.pre-commit-config.yaml +55 -0
- fastmcp-3.0.0b1/AGENTS.md +114 -0
- fastmcp-3.0.0b1/PKG-INFO +562 -0
- fastmcp-3.0.0b1/README.md +515 -0
- fastmcp-3.0.0b1/docs/assets/brand/f-watercolor-waves-2.png +0 -0
- fastmcp-3.0.0b1/docs/assets/brand/f-watercolor-waves-dark-2.jpeg +0 -0
- fastmcp-3.0.0b1/docs/assets/brand/prefect-fastmcp.png +0 -0
- fastmcp-3.0.0b1/docs/changelog.mdx +2280 -0
- fastmcp-3.0.0b1/docs/clients/auth/oauth.mdx +131 -0
- fastmcp-3.0.0b1/docs/clients/client.mdx +237 -0
- fastmcp-3.0.0b1/docs/clients/elicitation.mdx +138 -0
- fastmcp-3.0.0b1/docs/clients/logging.mdx +92 -0
- fastmcp-3.0.0b1/docs/clients/notifications.mdx +155 -0
- fastmcp-3.0.0b1/docs/clients/progress.mdx +67 -0
- fastmcp-3.0.0b1/docs/clients/prompts.mdx +147 -0
- fastmcp-3.0.0b1/docs/clients/resources.mdx +110 -0
- fastmcp-3.0.0b1/docs/clients/roots.mdx +45 -0
- fastmcp-3.0.0b1/docs/clients/sampling.mdx +172 -0
- fastmcp-3.0.0b1/docs/clients/tasks.mdx +182 -0
- fastmcp-3.0.0b1/docs/clients/tools.mdx +183 -0
- fastmcp-3.0.0b1/docs/clients/transports.mdx +235 -0
- fastmcp-3.0.0b1/docs/css/style.css +59 -0
- fastmcp-3.0.0b1/docs/deployment/http.mdx +735 -0
- fastmcp-3.0.0b1/docs/deployment/running-server.mdx +286 -0
- fastmcp-3.0.0b1/docs/development/upgrade-guide.mdx +550 -0
- fastmcp-3.0.0b1/docs/development/v3-notes/auth-provider-env-vars.mdx +73 -0
- fastmcp-3.0.0b1/docs/development/v3-notes/v3-features.mdx +1062 -0
- fastmcp-3.0.0b1/docs/docs.json +866 -0
- fastmcp-3.0.0b1/docs/getting-started/installation.mdx +122 -0
- fastmcp-3.0.0b1/docs/getting-started/welcome.mdx +123 -0
- fastmcp-3.0.0b1/docs/integrations/auth0.mdx +195 -0
- fastmcp-3.0.0b1/docs/integrations/authkit.mdx +96 -0
- fastmcp-3.0.0b1/docs/integrations/aws-cognito.mdx +278 -0
- fastmcp-3.0.0b1/docs/integrations/azure.mdx +280 -0
- fastmcp-3.0.0b1/docs/integrations/chatgpt.mdx +156 -0
- fastmcp-3.0.0b1/docs/integrations/claude-desktop.mdx +299 -0
- fastmcp-3.0.0b1/docs/integrations/descope.mdx +113 -0
- fastmcp-3.0.0b1/docs/integrations/discord.mdx +183 -0
- fastmcp-3.0.0b1/docs/integrations/fastapi.mdx +445 -0
- fastmcp-3.0.0b1/docs/integrations/gemini-cli.mdx +173 -0
- fastmcp-3.0.0b1/docs/integrations/github.mdx +175 -0
- fastmcp-3.0.0b1/docs/integrations/google.mdx +189 -0
- fastmcp-3.0.0b1/docs/integrations/oci.mdx +248 -0
- fastmcp-3.0.0b1/docs/integrations/openapi.mdx +455 -0
- fastmcp-3.0.0b1/docs/integrations/scalekit.mdx +155 -0
- fastmcp-3.0.0b1/docs/integrations/supabase.mdx +111 -0
- fastmcp-3.0.0b1/docs/integrations/workos.mdx +200 -0
- fastmcp-3.0.0b1/docs/patterns/cli.mdx +581 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-cli-cli.mdx +129 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-cli-run.mdx +117 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-client-auth-oauth.mdx +104 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-client-client.mdx +286 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-client-mixins-__init__.mdx +9 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-client-mixins-prompts.mdx +119 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-client-mixins-resources.mdx +158 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-client-mixins-task_management.mdx +110 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-client-mixins-tools.mdx +141 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-client-sampling-__init__.mdx +14 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-client-sampling-handlers-__init__.mdx +8 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-client-sampling-handlers-anthropic.mdx +17 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-client-sampling-handlers-openai.mdx +17 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-client-tasks.mdx +219 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-client-telemetry.mdx +23 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-client-transports-__init__.mdx +8 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-client-transports-base.mdx +62 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-client-transports-config.mdx +72 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-client-transports-http.mdx +37 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-client-transports-inference.mdx +56 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-client-transports-memory.mdx +27 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-client-transports-sse.mdx +25 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-client-transports-stdio.mdx +79 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-decorators.mdx +39 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-dependencies.mdx +18 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-exceptions.mdx +71 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-mcp_config.mdx +188 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-prompts-function_prompt.mdx +106 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-prompts-prompt.mdx +145 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-resources-function_resource.mdx +93 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-resources-resource.mdx +173 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-resources-template.mdx +244 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-resources-types.mdx +134 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-server-auth-auth.mdx +279 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-server-auth-authorization.mdx +139 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-server-auth-oauth_proxy-__init__.mdx +16 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-server-auth-oauth_proxy-consent.mdx +28 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-server-auth-oauth_proxy-models.mdx +104 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-server-auth-oauth_proxy-proxy.mdx +322 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-server-auth-oauth_proxy-ui.mdx +50 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-server-auth-providers-auth0.mdx +41 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-server-auth-providers-aws.mdx +82 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-server-auth-providers-azure.mdx +70 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-server-auth-providers-descope.mdx +60 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-server-auth-providers-discord.mdx +66 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-server-auth-providers-github.mdx +66 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-server-auth-providers-google.mdx +66 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-server-auth-providers-introspection.mdx +75 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-server-auth-providers-jwt.mdx +146 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-server-auth-providers-oci.mdx +97 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-server-auth-providers-scalekit.mdx +61 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-server-auth-providers-supabase.mdx +67 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-server-auth-providers-workos.mdx +102 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-server-context.mdx +644 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-server-dependencies.mdx +405 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-server-elicitation.mdx +145 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-server-http.mdx +106 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-server-lifespan.mdx +101 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-server-low_level.mdx +96 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-server-middleware-authorization.mdx +116 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-server-middleware-caching.mdx +221 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-server-middleware-middleware.mdx +112 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-server-middleware-ping.mdx +32 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-server-middleware-tool_injection.mdx +91 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-server-mixins-__init__.mdx +9 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-server-mixins-lifespan.mdx +30 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-server-mixins-mcp_operations.mdx +23 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-server-mixins-transport.mdx +131 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-server-openapi-__init__.mdx +27 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-server-openapi-components.mdx +12 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-server-openapi-routing.mdx +13 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-server-openapi-server.mdx +43 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-server-providers-__init__.mdx +34 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-server-providers-aggregate.mdx +83 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-server-providers-base.mdx +306 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-server-providers-fastmcp_provider.mdx +238 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-server-providers-filesystem.mdx +54 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-server-providers-filesystem_discovery.mdx +104 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-server-providers-local_provider-__init__.mdx +13 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-server-providers-local_provider-decorators-__init__.mdx +13 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-server-providers-local_provider-decorators-prompts.mdx +81 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-server-providers-local_provider-decorators-resources.mdx +77 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-server-providers-local_provider-decorators-tools.mdx +84 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-server-providers-local_provider-local_provider.mdx +125 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-server-providers-openapi-__init__.mdx +23 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-server-providers-openapi-components.mdx +62 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-server-providers-openapi-provider.mdx +31 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-server-providers-openapi-routing.mdx +23 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-server-providers-proxy.mdx +310 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-server-providers-skills-__init__.mdx +32 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-server-providers-skills-claude_provider.mdx +25 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-server-providers-skills-directory_provider.mdx +31 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-server-providers-skills-skill_provider.mdx +109 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-server-providers-skills-vendor_providers.mdx +56 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-server-providers-wrapped_provider.mdx +13 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-server-proxy.mdx +14 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-server-sampling-__init__.mdx +9 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-server-sampling-run.mdx +186 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-server-sampling-sampling_tool.mdx +76 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-server-server.mdx +893 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-server-tasks-capabilities.mdx +29 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-server-tasks-config.mdx +96 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-server-tasks-handlers.mdx +41 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-server-tasks-keys.mdx +89 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-server-tasks-requests.mdx +91 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-server-tasks-routing.mdx +37 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-server-tasks-subscriptions.mdx +38 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-server-telemetry.mdx +56 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-server-transforms-__init__.mdx +193 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-server-transforms-namespace.mdx +96 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-server-transforms-prompts_as_tools.mdx +59 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-server-transforms-resources_as_tools.mdx +59 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-server-transforms-tool_transform.mdx +40 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-server-transforms-version_filter.mdx +85 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-server-transforms-visibility.mdx +261 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-settings.mdx +50 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-telemetry.mdx +95 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-tools-function_parsing.mdx +21 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-tools-function_tool.mdx +108 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-tools-tool.mdx +116 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-tools-tool_transform.mdx +311 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-utilities-async_utils.mdx +44 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-utilities-cli.mdx +48 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-utilities-components.mdx +148 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-utilities-inspect.mdx +143 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-utilities-json_schema.mdx +79 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-utilities-json_schema_type.mdx +110 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-utilities-lifespan.mdx +36 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-utilities-logging.mdx +58 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-utilities-pagination.mdx +66 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-utilities-skills.mdx +114 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-utilities-tests.mdx +96 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-utilities-timeout.mdx +44 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-utilities-version_check.mdx +40 -0
- fastmcp-3.0.0b1/docs/python-sdk/fastmcp-utilities-versions.mdx +194 -0
- fastmcp-3.0.0b1/docs/servers/auth/authentication.mdx +216 -0
- fastmcp-3.0.0b1/docs/servers/auth/oauth-proxy.mdx +590 -0
- fastmcp-3.0.0b1/docs/servers/auth/oidc-proxy.mdx +264 -0
- fastmcp-3.0.0b1/docs/servers/auth/remote-oauth.mdx +225 -0
- fastmcp-3.0.0b1/docs/servers/auth/token-verification.mdx +351 -0
- fastmcp-3.0.0b1/docs/servers/authorization.mdx +348 -0
- fastmcp-3.0.0b1/docs/servers/context.mdx +651 -0
- fastmcp-3.0.0b1/docs/servers/elicitation.mdx +357 -0
- fastmcp-3.0.0b1/docs/servers/icons.mdx +151 -0
- fastmcp-3.0.0b1/docs/servers/lifespan.mdx +148 -0
- fastmcp-3.0.0b1/docs/servers/logging.mdx +87 -0
- fastmcp-3.0.0b1/docs/servers/middleware.mdx +843 -0
- fastmcp-3.0.0b1/docs/servers/pagination.mdx +93 -0
- fastmcp-3.0.0b1/docs/servers/progress.mdx +51 -0
- fastmcp-3.0.0b1/docs/servers/prompts.mdx +459 -0
- fastmcp-3.0.0b1/docs/servers/providers/custom.mdx +245 -0
- fastmcp-3.0.0b1/docs/servers/providers/filesystem.mdx +256 -0
- fastmcp-3.0.0b1/docs/servers/providers/local.mdx +161 -0
- fastmcp-3.0.0b1/docs/servers/providers/mounting.mdx +309 -0
- fastmcp-3.0.0b1/docs/servers/providers/namespace.mdx +64 -0
- fastmcp-3.0.0b1/docs/servers/providers/namespacing.mdx +9 -0
- fastmcp-3.0.0b1/docs/servers/providers/overview.mdx +81 -0
- fastmcp-3.0.0b1/docs/servers/providers/prompts-as-tools.mdx +126 -0
- fastmcp-3.0.0b1/docs/servers/providers/proxy.mdx +301 -0
- fastmcp-3.0.0b1/docs/servers/providers/resources-as-tools.mdx +105 -0
- fastmcp-3.0.0b1/docs/servers/providers/skills.mdx +301 -0
- fastmcp-3.0.0b1/docs/servers/providers/tool-transformation.mdx +192 -0
- fastmcp-3.0.0b1/docs/servers/providers/transforms.mdx +174 -0
- fastmcp-3.0.0b1/docs/servers/resources.mdx +745 -0
- fastmcp-3.0.0b1/docs/servers/sampling.mdx +526 -0
- fastmcp-3.0.0b1/docs/servers/server.mdx +256 -0
- fastmcp-3.0.0b1/docs/servers/tasks.mdx +265 -0
- fastmcp-3.0.0b1/docs/servers/telemetry.mdx +280 -0
- fastmcp-3.0.0b1/docs/servers/tools.mdx +1076 -0
- fastmcp-3.0.0b1/docs/servers/versioning.mdx +336 -0
- fastmcp-3.0.0b1/docs/servers/visibility.mdx +452 -0
- fastmcp-3.0.0b1/docs/snippets/version-badge.mdx +7 -0
- fastmcp-3.0.0b1/docs/updates.mdx +413 -0
- fastmcp-3.0.0b1/docs/v2/changelog.mdx +2280 -0
- fastmcp-3.0.0b1/docs/v2/clients/auth/bearer.mdx +88 -0
- fastmcp-3.0.0b1/docs/v2/clients/client.mdx +340 -0
- fastmcp-3.0.0b1/docs/v2/clients/messages.mdx +129 -0
- fastmcp-3.0.0b1/docs/v2/clients/sampling.mdx +258 -0
- fastmcp-3.0.0b1/docs/v2/clients/tasks.mdx +138 -0
- fastmcp-3.0.0b1/docs/v2/clients/tools.mdx +295 -0
- fastmcp-3.0.0b1/docs/v2/community/showcase.mdx +65 -0
- fastmcp-3.0.0b1/docs/v2/deployment/fastmcp-cloud.mdx +89 -0
- fastmcp-3.0.0b1/docs/v2/deployment/http.mdx +736 -0
- fastmcp-3.0.0b1/docs/v2/deployment/running-server.mdx +258 -0
- fastmcp-3.0.0b1/docs/v2/deployment/server-configuration.mdx +640 -0
- fastmcp-3.0.0b1/docs/v2/development/contributing.mdx +187 -0
- fastmcp-3.0.0b1/docs/v2/development/releases.mdx +79 -0
- fastmcp-3.0.0b1/docs/v2/development/tests.mdx +396 -0
- fastmcp-3.0.0b1/docs/v2/development/upgrade-guide.mdx +153 -0
- fastmcp-3.0.0b1/docs/v2/getting-started/installation.mdx +100 -0
- fastmcp-3.0.0b1/docs/v2/getting-started/quickstart.mdx +136 -0
- fastmcp-3.0.0b1/docs/v2/getting-started/welcome.mdx +115 -0
- fastmcp-3.0.0b1/docs/v2/integrations/anthropic.mdx +228 -0
- fastmcp-3.0.0b1/docs/v2/integrations/auth0.mdx +277 -0
- fastmcp-3.0.0b1/docs/v2/integrations/authkit.mdx +133 -0
- fastmcp-3.0.0b1/docs/v2/integrations/aws-cognito.mdx +365 -0
- fastmcp-3.0.0b1/docs/v2/integrations/azure.mdx +391 -0
- fastmcp-3.0.0b1/docs/v2/integrations/claude-code.mdx +177 -0
- fastmcp-3.0.0b1/docs/v2/integrations/claude-desktop.mdx +298 -0
- fastmcp-3.0.0b1/docs/v2/integrations/cursor-install-mcp.png +0 -0
- fastmcp-3.0.0b1/docs/v2/integrations/cursor.mdx +284 -0
- fastmcp-3.0.0b1/docs/v2/integrations/descope.mdx +146 -0
- fastmcp-3.0.0b1/docs/v2/integrations/discord.mdx +255 -0
- fastmcp-3.0.0b1/docs/v2/integrations/eunomia-authorization.mdx +129 -0
- fastmcp-3.0.0b1/docs/v2/integrations/fastapi.mdx +451 -0
- fastmcp-3.0.0b1/docs/v2/integrations/gemini.mdx +108 -0
- fastmcp-3.0.0b1/docs/v2/integrations/github.mdx +253 -0
- fastmcp-3.0.0b1/docs/v2/integrations/google.mdx +267 -0
- fastmcp-3.0.0b1/docs/v2/integrations/images/authkit/enable_dcr.png +0 -0
- fastmcp-3.0.0b1/docs/v2/integrations/images/permit/abac_condition_example.png +0 -0
- fastmcp-3.0.0b1/docs/v2/integrations/images/permit/abac_policy_example.png +0 -0
- fastmcp-3.0.0b1/docs/v2/integrations/images/permit/policy_mapping.png +0 -0
- fastmcp-3.0.0b1/docs/v2/integrations/images/permit/role_assignement.png +0 -0
- fastmcp-3.0.0b1/docs/v2/integrations/mcp-json-configuration.mdx +422 -0
- fastmcp-3.0.0b1/docs/v2/integrations/oci.mdx +333 -0
- fastmcp-3.0.0b1/docs/v2/integrations/openai.mdx +227 -0
- fastmcp-3.0.0b1/docs/v2/integrations/permit.mdx +352 -0
- fastmcp-3.0.0b1/docs/v2/integrations/scalekit.mdx +194 -0
- fastmcp-3.0.0b1/docs/v2/integrations/supabase.mdx +148 -0
- fastmcp-3.0.0b1/docs/v2/integrations/workos.mdx +288 -0
- fastmcp-3.0.0b1/docs/v2/patterns/cli.mdx +577 -0
- fastmcp-3.0.0b1/docs/v2/patterns/contrib.mdx +45 -0
- fastmcp-3.0.0b1/docs/v2/patterns/testing.mdx +104 -0
- fastmcp-3.0.0b1/docs/v2/patterns/tool-transformation.mdx +707 -0
- fastmcp-3.0.0b1/docs/v2/servers/auth/authentication.mdx +266 -0
- fastmcp-3.0.0b1/docs/v2/servers/auth/full-oauth-server.mdx +229 -0
- fastmcp-3.0.0b1/docs/v2/servers/auth/oauth-proxy.mdx +594 -0
- fastmcp-3.0.0b1/docs/v2/servers/auth/oidc-proxy.mdx +269 -0
- fastmcp-3.0.0b1/docs/v2/servers/auth/remote-oauth.mdx +226 -0
- fastmcp-3.0.0b1/docs/v2/servers/composition.mdx +326 -0
- fastmcp-3.0.0b1/docs/v2/servers/context.mdx +613 -0
- fastmcp-3.0.0b1/docs/v2/servers/elicitation.mdx +462 -0
- fastmcp-3.0.0b1/docs/v2/servers/logging.mdx +249 -0
- fastmcp-3.0.0b1/docs/v2/servers/middleware.mdx +816 -0
- fastmcp-3.0.0b1/docs/v2/servers/progress.mdx +189 -0
- fastmcp-3.0.0b1/docs/v2/servers/prompts.mdx +353 -0
- fastmcp-3.0.0b1/docs/v2/servers/proxy.mdx +349 -0
- fastmcp-3.0.0b1/docs/v2/servers/resources.mdx +663 -0
- fastmcp-3.0.0b1/docs/v2/servers/sampling.mdx +488 -0
- fastmcp-3.0.0b1/docs/v2/servers/server.mdx +436 -0
- fastmcp-3.0.0b1/docs/v2/servers/storage-backends.mdx +275 -0
- fastmcp-3.0.0b1/docs/v2/servers/tools.mdx +986 -0
- fastmcp-3.0.0b1/docs/v2/tutorials/create-mcp-server.mdx +198 -0
- fastmcp-3.0.0b1/docs/v2/tutorials/mcp.mdx +120 -0
- fastmcp-3.0.0b1/docs/v2/tutorials/rest-api.mdx +203 -0
- fastmcp-3.0.0b1/docs/v2/updates.mdx +405 -0
- fastmcp-3.0.0b1/docs/v2-banner.js +39 -0
- fastmcp-3.0.0b1/examples/custom_tool_serializer_decorator.py +72 -0
- fastmcp-3.0.0b1/examples/diagnostics/client_with_tracing.py +161 -0
- fastmcp-3.0.0b1/examples/diagnostics/server.py +125 -0
- fastmcp-3.0.0b1/examples/filesystem-provider/mcp/prompts/assistant.py +39 -0
- fastmcp-3.0.0b1/examples/filesystem-provider/mcp/resources/config.py +55 -0
- fastmcp-3.0.0b1/examples/filesystem-provider/mcp/tools/calculator.py +24 -0
- fastmcp-3.0.0b1/examples/filesystem-provider/mcp/tools/greeting.py +28 -0
- fastmcp-3.0.0b1/examples/filesystem-provider/server.py +29 -0
- fastmcp-3.0.0b1/examples/mount_example.py +111 -0
- fastmcp-3.0.0b1/examples/namespace_activation/README.md +55 -0
- fastmcp-3.0.0b1/examples/namespace_activation/client.py +76 -0
- fastmcp-3.0.0b1/examples/namespace_activation/server.py +73 -0
- fastmcp-3.0.0b1/examples/persistent_state/README.md +51 -0
- fastmcp-3.0.0b1/examples/persistent_state/client.py +85 -0
- fastmcp-3.0.0b1/examples/persistent_state/client_stdio.py +88 -0
- fastmcp-3.0.0b1/examples/persistent_state/server.py +42 -0
- fastmcp-3.0.0b1/examples/prompts_as_tools/client.py +77 -0
- fastmcp-3.0.0b1/examples/prompts_as_tools/server.py +86 -0
- fastmcp-3.0.0b1/examples/providers/sqlite/README.md +59 -0
- fastmcp-3.0.0b1/examples/providers/sqlite/server.py +137 -0
- fastmcp-3.0.0b1/examples/providers/sqlite/setup_db.py +102 -0
- fastmcp-3.0.0b1/examples/resources_as_tools/client.py +52 -0
- fastmcp-3.0.0b1/examples/resources_as_tools/server.py +65 -0
- fastmcp-3.0.0b1/examples/run_with_tracing.py +59 -0
- fastmcp-3.0.0b1/examples/skills/README.md +104 -0
- fastmcp-3.0.0b1/examples/skills/client.py +66 -0
- fastmcp-3.0.0b1/examples/skills/download_skills.py +82 -0
- fastmcp-3.0.0b1/examples/skills/sample_skills/code-review/SKILL.md +40 -0
- fastmcp-3.0.0b1/examples/skills/sample_skills/pdf-processing/SKILL.md +28 -0
- fastmcp-3.0.0b1/examples/skills/sample_skills/pdf-processing/reference.md +47 -0
- fastmcp-3.0.0b1/examples/skills/server.py +49 -0
- fastmcp-3.0.0b1/examples/smart_home/src/smart_home/hub.py +31 -0
- fastmcp-3.0.0b1/examples/smart_home/src/smart_home/lights/server.py +318 -0
- fastmcp-3.0.0b1/examples/testing_demo/uv.lock +1876 -0
- fastmcp-3.0.0b1/examples/versioning/client_version_selection.py +81 -0
- fastmcp-3.0.0b1/examples/versioning/version_filters.py +91 -0
- fastmcp-3.0.0b1/examples/versioning/versioned_components.py +101 -0
- fastmcp-3.0.0b1/justfile +33 -0
- fastmcp-3.0.0b1/loq.toml +99 -0
- fastmcp-3.0.0b1/pyproject.toml +205 -0
- fastmcp-3.0.0b1/src/fastmcp/_vendor/__init__.py +1 -0
- fastmcp-3.0.0b1/src/fastmcp/_vendor/docket_di/README.md +7 -0
- fastmcp-3.0.0b1/src/fastmcp/_vendor/docket_di/__init__.py +163 -0
- fastmcp-3.0.0b1/src/fastmcp/cli/cli.py +957 -0
- fastmcp-3.0.0b1/src/fastmcp/cli/install/claude_code.py +240 -0
- fastmcp-3.0.0b1/src/fastmcp/cli/install/claude_desktop.py +210 -0
- fastmcp-3.0.0b1/src/fastmcp/cli/install/cursor.py +333 -0
- fastmcp-3.0.0b1/src/fastmcp/cli/install/gemini_cli.py +237 -0
- fastmcp-3.0.0b1/src/fastmcp/cli/install/mcp_json.py +191 -0
- fastmcp-3.0.0b1/src/fastmcp/cli/run.py +366 -0
- fastmcp-3.0.0b1/src/fastmcp/client/__init__.py +30 -0
- fastmcp-3.0.0b1/src/fastmcp/client/auth/oauth.py +329 -0
- fastmcp-3.0.0b1/src/fastmcp/client/client.py +848 -0
- fastmcp-3.0.0b1/src/fastmcp/client/elicitation.py +80 -0
- fastmcp-3.0.0b1/src/fastmcp/client/mixins/__init__.py +13 -0
- fastmcp-3.0.0b1/src/fastmcp/client/mixins/prompts.py +295 -0
- fastmcp-3.0.0b1/src/fastmcp/client/mixins/resources.py +325 -0
- fastmcp-3.0.0b1/src/fastmcp/client/mixins/task_management.py +157 -0
- fastmcp-3.0.0b1/src/fastmcp/client/mixins/tools.py +397 -0
- fastmcp-3.0.0b1/src/fastmcp/client/sampling/handlers/anthropic.py +387 -0
- fastmcp-3.0.0b1/src/fastmcp/client/sampling/handlers/openai.py +399 -0
- fastmcp-3.0.0b1/src/fastmcp/client/tasks.py +551 -0
- fastmcp-3.0.0b1/src/fastmcp/client/telemetry.py +47 -0
- fastmcp-3.0.0b1/src/fastmcp/client/transports/__init__.py +38 -0
- fastmcp-3.0.0b1/src/fastmcp/client/transports/base.py +82 -0
- fastmcp-3.0.0b1/src/fastmcp/client/transports/config.py +170 -0
- fastmcp-3.0.0b1/src/fastmcp/client/transports/http.py +145 -0
- fastmcp-3.0.0b1/src/fastmcp/client/transports/inference.py +154 -0
- fastmcp-3.0.0b1/src/fastmcp/client/transports/memory.py +90 -0
- fastmcp-3.0.0b1/src/fastmcp/client/transports/sse.py +89 -0
- fastmcp-3.0.0b1/src/fastmcp/client/transports/stdio.py +543 -0
- fastmcp-3.0.0b1/src/fastmcp/contrib/component_manager/README.md +164 -0
- fastmcp-3.0.0b1/src/fastmcp/contrib/component_manager/__init__.py +3 -0
- fastmcp-3.0.0b1/src/fastmcp/contrib/component_manager/component_manager.py +121 -0
- fastmcp-3.0.0b1/src/fastmcp/contrib/component_manager/example.py +59 -0
- fastmcp-3.0.0b1/src/fastmcp/contrib/mcp_mixin/example.py +52 -0
- fastmcp-3.0.0b1/src/fastmcp/contrib/mcp_mixin/mcp_mixin.py +283 -0
- fastmcp-3.0.0b1/src/fastmcp/decorators.py +41 -0
- fastmcp-3.0.0b1/src/fastmcp/dependencies.py +36 -0
- fastmcp-3.0.0b1/src/fastmcp/exceptions.py +43 -0
- fastmcp-3.0.0b1/src/fastmcp/experimental/server/openapi/__init__.py +40 -0
- fastmcp-3.0.0b1/src/fastmcp/mcp_config.py +347 -0
- fastmcp-3.0.0b1/src/fastmcp/prompts/__init__.py +12 -0
- fastmcp-3.0.0b1/src/fastmcp/prompts/function_prompt.py +465 -0
- fastmcp-3.0.0b1/src/fastmcp/prompts/prompt.py +431 -0
- fastmcp-3.0.0b1/src/fastmcp/resources/__init__.py +24 -0
- fastmcp-3.0.0b1/src/fastmcp/resources/function_resource.py +335 -0
- fastmcp-3.0.0b1/src/fastmcp/resources/resource.py +450 -0
- fastmcp-3.0.0b1/src/fastmcp/resources/template.py +585 -0
- fastmcp-3.0.0b1/src/fastmcp/resources/types.py +172 -0
- fastmcp-3.0.0b1/src/fastmcp/server/__init__.py +6 -0
- fastmcp-3.0.0b1/src/fastmcp/server/auth/__init__.py +39 -0
- fastmcp-3.0.0b1/src/fastmcp/server/auth/auth.py +558 -0
- fastmcp-3.0.0b1/src/fastmcp/server/auth/authorization.py +190 -0
- fastmcp-3.0.0b1/src/fastmcp/server/auth/oauth_proxy/__init__.py +14 -0
- fastmcp-3.0.0b1/src/fastmcp/server/auth/oauth_proxy/consent.py +361 -0
- fastmcp-3.0.0b1/src/fastmcp/server/auth/oauth_proxy/models.py +178 -0
- fastmcp-3.0.0b1/src/fastmcp/server/auth/oauth_proxy/proxy.py +1528 -0
- fastmcp-3.0.0b1/src/fastmcp/server/auth/oauth_proxy/ui.py +277 -0
- fastmcp-3.0.0b1/src/fastmcp/server/auth/oidc_proxy.py +419 -0
- fastmcp-3.0.0b1/src/fastmcp/server/auth/providers/auth0.py +123 -0
- fastmcp-3.0.0b1/src/fastmcp/server/auth/providers/aws.py +194 -0
- fastmcp-3.0.0b1/src/fastmcp/server/auth/providers/azure.py +358 -0
- fastmcp-3.0.0b1/src/fastmcp/server/auth/providers/descope.py +198 -0
- fastmcp-3.0.0b1/src/fastmcp/server/auth/providers/discord.py +247 -0
- fastmcp-3.0.0b1/src/fastmcp/server/auth/providers/github.py +240 -0
- fastmcp-3.0.0b1/src/fastmcp/server/auth/providers/google.py +278 -0
- fastmcp-3.0.0b1/src/fastmcp/server/auth/providers/introspection.py +262 -0
- fastmcp-3.0.0b1/src/fastmcp/server/auth/providers/jwt.py +527 -0
- fastmcp-3.0.0b1/src/fastmcp/server/auth/providers/oci.py +170 -0
- fastmcp-3.0.0b1/src/fastmcp/server/auth/providers/scalekit.py +200 -0
- fastmcp-3.0.0b1/src/fastmcp/server/auth/providers/supabase.py +164 -0
- fastmcp-3.0.0b1/src/fastmcp/server/auth/providers/workos.py +334 -0
- fastmcp-3.0.0b1/src/fastmcp/server/context.py +1109 -0
- fastmcp-3.0.0b1/src/fastmcp/server/dependencies.py +916 -0
- fastmcp-3.0.0b1/src/fastmcp/server/elicitation.py +464 -0
- fastmcp-3.0.0b1/src/fastmcp/server/event_store.py +177 -0
- fastmcp-3.0.0b1/src/fastmcp/server/http.py +376 -0
- fastmcp-3.0.0b1/src/fastmcp/server/lifespan.py +198 -0
- fastmcp-3.0.0b1/src/fastmcp/server/low_level.py +315 -0
- fastmcp-3.0.0b1/src/fastmcp/server/middleware/__init__.py +15 -0
- fastmcp-3.0.0b1/src/fastmcp/server/middleware/authorization.py +312 -0
- fastmcp-3.0.0b1/src/fastmcp/server/middleware/caching.py +523 -0
- fastmcp-3.0.0b1/src/fastmcp/server/middleware/middleware.py +205 -0
- fastmcp-3.0.0b1/src/fastmcp/server/middleware/ping.py +70 -0
- fastmcp-3.0.0b1/src/fastmcp/server/middleware/tool_injection.py +116 -0
- fastmcp-3.0.0b1/src/fastmcp/server/mixins/__init__.py +7 -0
- fastmcp-3.0.0b1/src/fastmcp/server/mixins/lifespan.py +217 -0
- fastmcp-3.0.0b1/src/fastmcp/server/mixins/mcp_operations.py +392 -0
- fastmcp-3.0.0b1/src/fastmcp/server/mixins/transport.py +342 -0
- fastmcp-3.0.0b1/src/fastmcp/server/openapi/__init__.py +55 -0
- fastmcp-3.0.0b1/src/fastmcp/server/openapi/components.py +28 -0
- fastmcp-3.0.0b1/src/fastmcp/server/openapi/routing.py +46 -0
- fastmcp-3.0.0b1/src/fastmcp/server/openapi/server.py +127 -0
- fastmcp-3.0.0b1/src/fastmcp/server/providers/__init__.py +71 -0
- fastmcp-3.0.0b1/src/fastmcp/server/providers/aggregate.py +261 -0
- fastmcp-3.0.0b1/src/fastmcp/server/providers/base.py +578 -0
- fastmcp-3.0.0b1/src/fastmcp/server/providers/fastmcp_provider.py +674 -0
- fastmcp-3.0.0b1/src/fastmcp/server/providers/filesystem.py +226 -0
- fastmcp-3.0.0b1/src/fastmcp/server/providers/filesystem_discovery.py +327 -0
- fastmcp-3.0.0b1/src/fastmcp/server/providers/local_provider/__init__.py +11 -0
- fastmcp-3.0.0b1/src/fastmcp/server/providers/local_provider/decorators/__init__.py +15 -0
- fastmcp-3.0.0b1/src/fastmcp/server/providers/local_provider/decorators/prompts.py +256 -0
- fastmcp-3.0.0b1/src/fastmcp/server/providers/local_provider/decorators/resources.py +240 -0
- fastmcp-3.0.0b1/src/fastmcp/server/providers/local_provider/decorators/tools.py +315 -0
- fastmcp-3.0.0b1/src/fastmcp/server/providers/local_provider/local_provider.py +465 -0
- fastmcp-3.0.0b1/src/fastmcp/server/providers/openapi/__init__.py +39 -0
- fastmcp-3.0.0b1/src/fastmcp/server/providers/openapi/components.py +332 -0
- fastmcp-3.0.0b1/src/fastmcp/server/providers/openapi/provider.py +405 -0
- fastmcp-3.0.0b1/src/fastmcp/server/providers/openapi/routing.py +109 -0
- fastmcp-3.0.0b1/src/fastmcp/server/providers/proxy.py +867 -0
- fastmcp-3.0.0b1/src/fastmcp/server/providers/skills/__init__.py +59 -0
- fastmcp-3.0.0b1/src/fastmcp/server/providers/skills/_common.py +101 -0
- fastmcp-3.0.0b1/src/fastmcp/server/providers/skills/claude_provider.py +44 -0
- fastmcp-3.0.0b1/src/fastmcp/server/providers/skills/directory_provider.py +153 -0
- fastmcp-3.0.0b1/src/fastmcp/server/providers/skills/skill_provider.py +432 -0
- fastmcp-3.0.0b1/src/fastmcp/server/providers/skills/vendor_providers.py +142 -0
- fastmcp-3.0.0b1/src/fastmcp/server/providers/wrapped_provider.py +140 -0
- fastmcp-3.0.0b1/src/fastmcp/server/proxy.py +41 -0
- fastmcp-3.0.0b1/src/fastmcp/server/sampling/run.py +640 -0
- fastmcp-3.0.0b1/src/fastmcp/server/sampling/sampling_tool.py +109 -0
- fastmcp-3.0.0b1/src/fastmcp/server/server.py +2144 -0
- fastmcp-3.0.0b1/src/fastmcp/server/tasks/__init__.py +22 -0
- fastmcp-3.0.0b1/src/fastmcp/server/tasks/capabilities.py +42 -0
- fastmcp-3.0.0b1/src/fastmcp/server/tasks/config.py +152 -0
- fastmcp-3.0.0b1/src/fastmcp/server/tasks/handlers.py +157 -0
- fastmcp-3.0.0b1/src/fastmcp/server/tasks/keys.py +91 -0
- fastmcp-3.0.0b1/src/fastmcp/server/tasks/requests.py +474 -0
- fastmcp-3.0.0b1/src/fastmcp/server/tasks/routing.py +76 -0
- fastmcp-3.0.0b1/src/fastmcp/server/tasks/subscriptions.py +212 -0
- fastmcp-3.0.0b1/src/fastmcp/server/telemetry.py +131 -0
- fastmcp-3.0.0b1/src/fastmcp/server/transforms/__init__.py +244 -0
- fastmcp-3.0.0b1/src/fastmcp/server/transforms/namespace.py +193 -0
- fastmcp-3.0.0b1/src/fastmcp/server/transforms/prompts_as_tools.py +175 -0
- fastmcp-3.0.0b1/src/fastmcp/server/transforms/resources_as_tools.py +190 -0
- fastmcp-3.0.0b1/src/fastmcp/server/transforms/tool_transform.py +96 -0
- fastmcp-3.0.0b1/src/fastmcp/server/transforms/version_filter.py +124 -0
- fastmcp-3.0.0b1/src/fastmcp/server/transforms/visibility.py +526 -0
- fastmcp-3.0.0b1/src/fastmcp/settings.py +365 -0
- fastmcp-3.0.0b1/src/fastmcp/telemetry.py +122 -0
- fastmcp-3.0.0b1/src/fastmcp/tools/__init__.py +12 -0
- fastmcp-3.0.0b1/src/fastmcp/tools/function_parsing.py +201 -0
- fastmcp-3.0.0b1/src/fastmcp/tools/function_tool.py +467 -0
- fastmcp-3.0.0b1/src/fastmcp/tools/tool.py +496 -0
- fastmcp-3.0.0b1/src/fastmcp/tools/tool_transform.py +960 -0
- fastmcp-3.0.0b1/src/fastmcp/utilities/async_utils.py +69 -0
- fastmcp-3.0.0b1/src/fastmcp/utilities/components.py +242 -0
- fastmcp-3.0.0b1/src/fastmcp/utilities/inspect.py +494 -0
- fastmcp-3.0.0b1/src/fastmcp/utilities/json_schema.py +401 -0
- fastmcp-3.0.0b1/src/fastmcp/utilities/json_schema_type.py +650 -0
- fastmcp-3.0.0b1/src/fastmcp/utilities/lifespan.py +56 -0
- fastmcp-3.0.0b1/src/fastmcp/utilities/logging.py +238 -0
- fastmcp-3.0.0b1/src/fastmcp/utilities/mcp_server_config/v1/mcp_server_config.py +447 -0
- fastmcp-3.0.0b1/src/fastmcp/utilities/openapi/parser.py +821 -0
- fastmcp-3.0.0b1/src/fastmcp/utilities/pagination.py +80 -0
- fastmcp-3.0.0b1/src/fastmcp/utilities/skills.py +253 -0
- fastmcp-3.0.0b1/src/fastmcp/utilities/tests.py +270 -0
- fastmcp-3.0.0b1/src/fastmcp/utilities/timeout.py +47 -0
- fastmcp-3.0.0b1/src/fastmcp/utilities/types.py +496 -0
- fastmcp-3.0.0b1/src/fastmcp/utilities/versions.py +285 -0
- fastmcp-3.0.0b1/tests/cli/test_cli.py +618 -0
- fastmcp-3.0.0b1/tests/cli/test_config.py +461 -0
- fastmcp-3.0.0b1/tests/cli/test_mcp_server_config_integration.py +293 -0
- fastmcp-3.0.0b1/tests/cli/test_run.py +628 -0
- fastmcp-3.0.0b1/tests/cli/test_server_args.py +135 -0
- fastmcp-3.0.0b1/tests/cli/test_tasks.py +51 -0
- fastmcp-3.0.0b1/tests/client/auth/test_oauth_client.py +358 -0
- fastmcp-3.0.0b1/tests/client/client/test_auth.py +82 -0
- fastmcp-3.0.0b1/tests/client/client/test_client.py +719 -0
- fastmcp-3.0.0b1/tests/client/client/test_error_handling.py +166 -0
- fastmcp-3.0.0b1/tests/client/client/test_initialize.py +115 -0
- fastmcp-3.0.0b1/tests/client/client/test_session.py +137 -0
- fastmcp-3.0.0b1/tests/client/client/test_timeout.py +50 -0
- fastmcp-3.0.0b1/tests/client/client/test_transport.py +137 -0
- fastmcp-3.0.0b1/tests/client/tasks/test_client_prompt_tasks.py +102 -0
- fastmcp-3.0.0b1/tests/client/tasks/test_client_resource_tasks.py +107 -0
- fastmcp-3.0.0b1/tests/client/tasks/test_client_tool_tasks.py +87 -0
- fastmcp-3.0.0b1/tests/client/telemetry/test_client_tracing.py +624 -0
- fastmcp-3.0.0b1/tests/client/test_elicitation.py +1132 -0
- fastmcp-3.0.0b1/tests/client/test_notifications.py +124 -0
- fastmcp-3.0.0b1/tests/client/test_openapi.py +202 -0
- fastmcp-3.0.0b1/tests/client/test_sampling.py +1002 -0
- fastmcp-3.0.0b1/tests/client/test_sse.py +200 -0
- fastmcp-3.0.0b1/tests/client/test_stdio.py +364 -0
- fastmcp-3.0.0b1/tests/client/test_streamable_http.py +271 -0
- fastmcp-3.0.0b1/tests/client/transports/test_transports.py +42 -0
- fastmcp-3.0.0b1/tests/conftest.py +301 -0
- fastmcp-3.0.0b1/tests/contrib/test_component_manager.py +602 -0
- fastmcp-3.0.0b1/tests/contrib/test_mcp_mixin.py +339 -0
- fastmcp-3.0.0b1/tests/deprecated/__init__.py +1 -0
- fastmcp-3.0.0b1/tests/deprecated/conftest.py +9 -0
- fastmcp-3.0.0b1/tests/deprecated/openapi/test_openapi.py +170 -0
- fastmcp-3.0.0b1/tests/deprecated/server/__init__.py +1 -0
- fastmcp-3.0.0b1/tests/deprecated/server/test_include_exclude_tags.py +68 -0
- fastmcp-3.0.0b1/tests/deprecated/test_add_tool_transformation.py +104 -0
- fastmcp-3.0.0b1/tests/deprecated/test_exclude_args.py +122 -0
- fastmcp-3.0.0b1/tests/deprecated/test_function_component_imports.py +121 -0
- fastmcp-3.0.0b1/tests/deprecated/test_import_server.py +714 -0
- fastmcp-3.0.0b1/tests/deprecated/test_openapi_deprecations.py +78 -0
- fastmcp-3.0.0b1/tests/deprecated/test_settings.py +319 -0
- fastmcp-3.0.0b1/tests/deprecated/test_tool_serializer.py +182 -0
- fastmcp-3.0.0b1/tests/fs/test_discovery.py +353 -0
- fastmcp-3.0.0b1/tests/fs/test_provider.py +421 -0
- fastmcp-3.0.0b1/tests/integration_tests/auth/test_github_provider_integration.py +394 -0
- fastmcp-3.0.0b1/tests/integration_tests/conftest.py +72 -0
- fastmcp-3.0.0b1/tests/integration_tests/test_github_mcp_remote.py +123 -0
- fastmcp-3.0.0b1/tests/prompts/test_prompt.py +606 -0
- fastmcp-3.0.0b1/tests/prompts/test_standalone_decorator.py +138 -0
- fastmcp-3.0.0b1/tests/resources/test_file_resources.py +121 -0
- fastmcp-3.0.0b1/tests/resources/test_function_resources.py +334 -0
- fastmcp-3.0.0b1/tests/resources/test_resource_template.py +1009 -0
- fastmcp-3.0.0b1/tests/resources/test_resources.py +356 -0
- fastmcp-3.0.0b1/tests/resources/test_standalone_decorator.py +154 -0
- fastmcp-3.0.0b1/tests/server/auth/oauth_proxy/conftest.py +309 -0
- fastmcp-3.0.0b1/tests/server/auth/oauth_proxy/test_authorization.py +196 -0
- fastmcp-3.0.0b1/tests/server/auth/oauth_proxy/test_client_registration.py +43 -0
- fastmcp-3.0.0b1/tests/server/auth/oauth_proxy/test_config.py +210 -0
- fastmcp-3.0.0b1/tests/server/auth/oauth_proxy/test_e2e.py +240 -0
- fastmcp-3.0.0b1/tests/server/auth/oauth_proxy/test_oauth_proxy.py +69 -0
- fastmcp-3.0.0b1/tests/server/auth/oauth_proxy/test_tokens.py +495 -0
- fastmcp-3.0.0b1/tests/server/auth/oauth_proxy/test_ui.py +99 -0
- fastmcp-3.0.0b1/tests/server/auth/providers/test_auth0.py +98 -0
- fastmcp-3.0.0b1/tests/server/auth/providers/test_aws.py +107 -0
- fastmcp-3.0.0b1/tests/server/auth/providers/test_azure.py +809 -0
- fastmcp-3.0.0b1/tests/server/auth/providers/test_descope.py +238 -0
- fastmcp-3.0.0b1/tests/server/auth/providers/test_discord.py +70 -0
- fastmcp-3.0.0b1/tests/server/auth/providers/test_github.py +129 -0
- fastmcp-3.0.0b1/tests/server/auth/providers/test_google.py +118 -0
- fastmcp-3.0.0b1/tests/server/auth/providers/test_introspection.py +551 -0
- fastmcp-3.0.0b1/tests/server/auth/providers/test_scalekit.py +220 -0
- fastmcp-3.0.0b1/tests/server/auth/providers/test_supabase.py +202 -0
- fastmcp-3.0.0b1/tests/server/auth/providers/test_workos.py +152 -0
- fastmcp-3.0.0b1/tests/server/auth/test_authorization.py +613 -0
- fastmcp-3.0.0b1/tests/server/auth/test_jwt_provider.py +1101 -0
- fastmcp-3.0.0b1/tests/server/auth/test_oauth_consent_flow.py +1024 -0
- fastmcp-3.0.0b1/tests/server/auth/test_oauth_proxy_redirect_validation.py +202 -0
- fastmcp-3.0.0b1/tests/server/http/test_bearer_auth_backend.py +179 -0
- fastmcp-3.0.0b1/tests/server/http/test_http_dependencies.py +128 -0
- fastmcp-3.0.0b1/tests/server/middleware/test_caching.py +617 -0
- fastmcp-3.0.0b1/tests/server/middleware/test_error_handling.py +630 -0
- fastmcp-3.0.0b1/tests/server/middleware/test_initialization_middleware.py +432 -0
- fastmcp-3.0.0b1/tests/server/middleware/test_logging.py +654 -0
- fastmcp-3.0.0b1/tests/server/middleware/test_middleware.py +1070 -0
- fastmcp-3.0.0b1/tests/server/middleware/test_ping.py +241 -0
- fastmcp-3.0.0b1/tests/server/middleware/test_rate_limiting.py +457 -0
- fastmcp-3.0.0b1/tests/server/middleware/test_timing.py +305 -0
- fastmcp-3.0.0b1/tests/server/middleware/test_tool_injection.py +509 -0
- fastmcp-3.0.0b1/tests/server/mount/__init__.py +0 -0
- fastmcp-3.0.0b1/tests/server/mount/test_advanced.py +489 -0
- fastmcp-3.0.0b1/tests/server/mount/test_filtering.py +97 -0
- fastmcp-3.0.0b1/tests/server/mount/test_mount.py +542 -0
- fastmcp-3.0.0b1/tests/server/mount/test_prompts.py +50 -0
- fastmcp-3.0.0b1/tests/server/mount/test_proxy.py +306 -0
- fastmcp-3.0.0b1/tests/server/mount/test_resources.py +136 -0
- fastmcp-3.0.0b1/tests/server/providers/__init__.py +0 -0
- fastmcp-3.0.0b1/tests/server/providers/local_provider_tools/__init__.py +0 -0
- fastmcp-3.0.0b1/tests/server/providers/local_provider_tools/test_context.py +162 -0
- fastmcp-3.0.0b1/tests/server/providers/local_provider_tools/test_decorator.py +341 -0
- fastmcp-3.0.0b1/tests/server/providers/local_provider_tools/test_enabled.py +132 -0
- fastmcp-3.0.0b1/tests/server/providers/local_provider_tools/test_local_provider_tools.py +274 -0
- fastmcp-3.0.0b1/tests/server/providers/local_provider_tools/test_output_schema.py +284 -0
- fastmcp-3.0.0b1/tests/server/providers/local_provider_tools/test_parameters.py +416 -0
- fastmcp-3.0.0b1/tests/server/providers/local_provider_tools/test_tags.py +94 -0
- fastmcp-3.0.0b1/tests/server/providers/openapi/test_comprehensive.py +741 -0
- fastmcp-3.0.0b1/tests/server/providers/openapi/test_deepobject_style.py +346 -0
- fastmcp-3.0.0b1/tests/server/providers/openapi/test_end_to_end_compatibility.py +221 -0
- fastmcp-3.0.0b1/tests/server/providers/openapi/test_openapi_features.py +414 -0
- fastmcp-3.0.0b1/tests/server/providers/openapi/test_openapi_performance.py +136 -0
- fastmcp-3.0.0b1/tests/server/providers/openapi/test_parameter_collisions.py +225 -0
- fastmcp-3.0.0b1/tests/server/providers/openapi/test_performance_comparison.py +286 -0
- fastmcp-3.0.0b1/tests/server/providers/openapi/test_server.py +305 -0
- fastmcp-3.0.0b1/tests/server/providers/proxy/__init__.py +0 -0
- fastmcp-3.0.0b1/tests/server/providers/proxy/test_proxy_client.py +430 -0
- fastmcp-3.0.0b1/tests/server/providers/proxy/test_proxy_server.py +734 -0
- fastmcp-3.0.0b1/tests/server/providers/proxy/test_stateful_proxy_client.py +147 -0
- fastmcp-3.0.0b1/tests/server/providers/test_base_provider.py +91 -0
- fastmcp-3.0.0b1/tests/server/providers/test_fastmcp_provider.py +446 -0
- fastmcp-3.0.0b1/tests/server/providers/test_local_provider.py +834 -0
- fastmcp-3.0.0b1/tests/server/providers/test_local_provider_prompts.py +473 -0
- fastmcp-3.0.0b1/tests/server/providers/test_local_provider_resources.py +974 -0
- fastmcp-3.0.0b1/tests/server/providers/test_skills_provider.py +591 -0
- fastmcp-3.0.0b1/tests/server/providers/test_skills_vendor_providers.py +201 -0
- fastmcp-3.0.0b1/tests/server/providers/test_transforming_provider.py +299 -0
- fastmcp-3.0.0b1/tests/server/sampling/__init__.py +0 -0
- fastmcp-3.0.0b1/tests/server/tasks/test_custom_subclass_tasks.py +184 -0
- fastmcp-3.0.0b1/tests/server/tasks/test_resource_task_meta_parameter.py +287 -0
- fastmcp-3.0.0b1/tests/server/tasks/test_server_tasks_parameter.py +388 -0
- fastmcp-3.0.0b1/tests/server/tasks/test_sync_function_task_disabled.py +229 -0
- fastmcp-3.0.0b1/tests/server/tasks/test_task_config.py +393 -0
- fastmcp-3.0.0b1/tests/server/tasks/test_task_dependencies.py +273 -0
- fastmcp-3.0.0b1/tests/server/tasks/test_task_meta_parameter.py +314 -0
- fastmcp-3.0.0b1/tests/server/tasks/test_task_mount.py +965 -0
- fastmcp-3.0.0b1/tests/server/tasks/test_task_prompts.py +91 -0
- fastmcp-3.0.0b1/tests/server/tasks/test_task_proxy.py +169 -0
- fastmcp-3.0.0b1/tests/server/tasks/test_task_resources.py +107 -0
- fastmcp-3.0.0b1/tests/server/tasks/test_task_return_types.py +662 -0
- fastmcp-3.0.0b1/tests/server/tasks/test_task_tools.py +101 -0
- fastmcp-3.0.0b1/tests/server/telemetry/__init__.py +1 -0
- fastmcp-3.0.0b1/tests/server/telemetry/test_provider_tracing.py +129 -0
- fastmcp-3.0.0b1/tests/server/telemetry/test_server_tracing.py +340 -0
- fastmcp-3.0.0b1/tests/server/test_context.py +407 -0
- fastmcp-3.0.0b1/tests/server/test_dependencies.py +1047 -0
- fastmcp-3.0.0b1/tests/server/test_event_store.py +238 -0
- fastmcp-3.0.0b1/tests/server/test_file_server.py +134 -0
- fastmcp-3.0.0b1/tests/server/test_input_validation.py +365 -0
- fastmcp-3.0.0b1/tests/server/test_log_level.py +90 -0
- fastmcp-3.0.0b1/tests/server/test_logging.py +192 -0
- fastmcp-3.0.0b1/tests/server/test_pagination.py +243 -0
- fastmcp-3.0.0b1/tests/server/test_providers.py +448 -0
- fastmcp-3.0.0b1/tests/server/test_server.py +360 -0
- fastmcp-3.0.0b1/tests/server/test_server_docket.py +227 -0
- fastmcp-3.0.0b1/tests/server/test_server_lifespan.py +464 -0
- fastmcp-3.0.0b1/tests/server/test_session_visibility.py +620 -0
- fastmcp-3.0.0b1/tests/server/test_tool_annotations.py +255 -0
- fastmcp-3.0.0b1/tests/server/test_tool_transformation.py +120 -0
- fastmcp-3.0.0b1/tests/server/transforms/test_prompts_as_tools.py +210 -0
- fastmcp-3.0.0b1/tests/server/transforms/test_resources_as_tools.py +227 -0
- fastmcp-3.0.0b1/tests/server/transforms/test_visibility.py +271 -0
- fastmcp-3.0.0b1/tests/server/versioning/__init__.py +0 -0
- fastmcp-3.0.0b1/tests/server/versioning/test_calls.py +361 -0
- fastmcp-3.0.0b1/tests/server/versioning/test_filtering.py +492 -0
- fastmcp-3.0.0b1/tests/server/versioning/test_mounting.py +342 -0
- fastmcp-3.0.0b1/tests/server/versioning/test_versioning.py +258 -0
- fastmcp-3.0.0b1/tests/telemetry/__init__.py +1 -0
- fastmcp-3.0.0b1/tests/telemetry/test_module.py +29 -0
- fastmcp-3.0.0b1/tests/test_mcp_config.py +932 -0
- fastmcp-3.0.0b1/tests/tools/__init__.py +0 -0
- fastmcp-3.0.0b1/tests/tools/test_standalone_decorator.py +138 -0
- fastmcp-3.0.0b1/tests/tools/test_tool_timeout.py +192 -0
- fastmcp-3.0.0b1/tests/tools/tool/__init__.py +0 -0
- fastmcp-3.0.0b1/tests/tools/tool/test_callable.py +102 -0
- fastmcp-3.0.0b1/tests/tools/tool/test_content.py +550 -0
- fastmcp-3.0.0b1/tests/tools/tool/test_output_schema.py +534 -0
- fastmcp-3.0.0b1/tests/tools/tool/test_results.py +184 -0
- fastmcp-3.0.0b1/tests/tools/tool/test_title.py +95 -0
- fastmcp-3.0.0b1/tests/tools/tool/test_tool.py +595 -0
- fastmcp-3.0.0b1/tests/tools/tool_transform/__init__.py +0 -0
- fastmcp-3.0.0b1/tests/tools/tool_transform/test_args.py +456 -0
- fastmcp-3.0.0b1/tests/tools/tool_transform/test_metadata.py +172 -0
- fastmcp-3.0.0b1/tests/tools/tool_transform/test_schemas.py +534 -0
- fastmcp-3.0.0b1/tests/tools/tool_transform/test_tool_transform.py +530 -0
- fastmcp-3.0.0b1/tests/utilities/json_schema_type/__init__.py +0 -0
- fastmcp-3.0.0b1/tests/utilities/json_schema_type/test_advanced.py +913 -0
- fastmcp-3.0.0b1/tests/utilities/json_schema_type/test_constraints.py +132 -0
- fastmcp-3.0.0b1/tests/utilities/json_schema_type/test_containers.py +201 -0
- fastmcp-3.0.0b1/tests/utilities/json_schema_type/test_formats.py +114 -0
- fastmcp-3.0.0b1/tests/utilities/json_schema_type/test_json_schema_type.py +170 -0
- fastmcp-3.0.0b1/tests/utilities/json_schema_type/test_unions.py +128 -0
- fastmcp-3.0.0b1/tests/utilities/openapi/test_models.py +476 -0
- fastmcp-3.0.0b1/tests/utilities/openapi/test_nullable_fields.py +385 -0
- fastmcp-3.0.0b1/tests/utilities/openapi/test_schemas.py +641 -0
- fastmcp-3.0.0b1/tests/utilities/test_components.py +417 -0
- fastmcp-3.0.0b1/tests/utilities/test_inspect.py +1111 -0
- fastmcp-3.0.0b1/tests/utilities/test_json_schema.py +543 -0
- fastmcp-3.0.0b1/tests/utilities/test_logging.py +100 -0
- fastmcp-3.0.0b1/tests/utilities/test_skills.py +269 -0
- fastmcp-3.0.0b1/tests/utilities/test_types.py +673 -0
- fastmcp-3.0.0b1/uv.lock +3040 -0
- fastmcp-3.0.0b1/v3-notes/get-methods-consolidation.md +69 -0
- fastmcp-3.0.0b1/v3-notes/prompt-internal-types.md +121 -0
- fastmcp-3.0.0b1/v3-notes/provider-architecture.md +116 -0
- fastmcp-3.0.0b1/v3-notes/provider-test-pattern.md +60 -0
- fastmcp-3.0.0b1/v3-notes/resource-internal-types.md +196 -0
- fastmcp-3.0.0b1/v3-notes/task-meta-parameter.md +109 -0
- fastmcp-3.0.0b1/v3-notes/visibility.md +113 -0
- fastmcp-2.14.5/.cursor/rules/core-mcp-objects.mdc +0 -13
- fastmcp-2.14.5/.cursor/worktrees.json +0 -6
- fastmcp-2.14.5/.github/workflows/martian-issue-triage.yml +0 -173
- fastmcp-2.14.5/.github/workflows/martian-test-failure.yml +0 -182
- fastmcp-2.14.5/.github/workflows/marvin-dedupe-issues.yml +0 -92
- fastmcp-2.14.5/.github/workflows/marvin-label-triage.yml +0 -143
- fastmcp-2.14.5/.github/workflows/marvin.yml +0 -78
- fastmcp-2.14.5/.github/workflows/update-config-schema.yml +0 -91
- fastmcp-2.14.5/.github/workflows/update-sdk-docs.yml +0 -74
- fastmcp-2.14.5/.gitignore +0 -77
- fastmcp-2.14.5/.loq_cache +0 -1
- fastmcp-2.14.5/.pre-commit-config.yaml +0 -48
- fastmcp-2.14.5/AGENTS.md +0 -266
- fastmcp-2.14.5/PKG-INFO +0 -559
- fastmcp-2.14.5/README.md +0 -515
- fastmcp-2.14.5/docs/changelog.mdx +0 -2312
- fastmcp-2.14.5/docs/clients/client.mdx +0 -340
- fastmcp-2.14.5/docs/clients/messages.mdx +0 -129
- fastmcp-2.14.5/docs/clients/sampling.mdx +0 -258
- fastmcp-2.14.5/docs/clients/tasks.mdx +0 -138
- fastmcp-2.14.5/docs/clients/tools.mdx +0 -295
- fastmcp-2.14.5/docs/css/style.css +0 -20
- fastmcp-2.14.5/docs/deployment/http.mdx +0 -736
- fastmcp-2.14.5/docs/deployment/running-server.mdx +0 -258
- fastmcp-2.14.5/docs/development/upgrade-guide.mdx +0 -153
- fastmcp-2.14.5/docs/docs.json +0 -531
- fastmcp-2.14.5/docs/getting-started/installation.mdx +0 -100
- fastmcp-2.14.5/docs/getting-started/welcome.mdx +0 -114
- fastmcp-2.14.5/docs/integrations/auth0.mdx +0 -277
- fastmcp-2.14.5/docs/integrations/authkit.mdx +0 -133
- fastmcp-2.14.5/docs/integrations/aws-cognito.mdx +0 -365
- fastmcp-2.14.5/docs/integrations/azure.mdx +0 -391
- fastmcp-2.14.5/docs/integrations/claude-desktop.mdx +0 -298
- fastmcp-2.14.5/docs/integrations/descope.mdx +0 -146
- fastmcp-2.14.5/docs/integrations/discord.mdx +0 -255
- fastmcp-2.14.5/docs/integrations/fastapi.mdx +0 -451
- fastmcp-2.14.5/docs/integrations/github.mdx +0 -253
- fastmcp-2.14.5/docs/integrations/google.mdx +0 -267
- fastmcp-2.14.5/docs/integrations/oci.mdx +0 -333
- fastmcp-2.14.5/docs/integrations/scalekit.mdx +0 -194
- fastmcp-2.14.5/docs/integrations/supabase.mdx +0 -148
- fastmcp-2.14.5/docs/integrations/workos.mdx +0 -288
- fastmcp-2.14.5/docs/patterns/cli.mdx +0 -577
- fastmcp-2.14.5/docs/patterns/tool-transformation.mdx +0 -707
- fastmcp-2.14.5/docs/python-sdk/fastmcp-cli-cli.mdx +0 -129
- fastmcp-2.14.5/docs/python-sdk/fastmcp-cli-run.mdx +0 -101
- fastmcp-2.14.5/docs/python-sdk/fastmcp-client-auth-oauth.mdx +0 -104
- fastmcp-2.14.5/docs/python-sdk/fastmcp-client-client.mdx +0 -684
- fastmcp-2.14.5/docs/python-sdk/fastmcp-client-sampling.mdx +0 -14
- fastmcp-2.14.5/docs/python-sdk/fastmcp-client-tasks.mdx +0 -219
- fastmcp-2.14.5/docs/python-sdk/fastmcp-client-transports.mdx +0 -312
- fastmcp-2.14.5/docs/python-sdk/fastmcp-dependencies.mdx +0 -14
- fastmcp-2.14.5/docs/python-sdk/fastmcp-exceptions.mdx +0 -65
- fastmcp-2.14.5/docs/python-sdk/fastmcp-mcp_config.mdx +0 -188
- fastmcp-2.14.5/docs/python-sdk/fastmcp-prompts-prompt.mdx +0 -117
- fastmcp-2.14.5/docs/python-sdk/fastmcp-prompts-prompt_manager.mdx +0 -71
- fastmcp-2.14.5/docs/python-sdk/fastmcp-resources-resource.mdx +0 -123
- fastmcp-2.14.5/docs/python-sdk/fastmcp-resources-resource_manager.mdx +0 -154
- fastmcp-2.14.5/docs/python-sdk/fastmcp-resources-template.mdx +0 -182
- fastmcp-2.14.5/docs/python-sdk/fastmcp-resources-types.mdx +0 -134
- fastmcp-2.14.5/docs/python-sdk/fastmcp-server-auth-auth.mdx +0 -262
- fastmcp-2.14.5/docs/python-sdk/fastmcp-server-auth-oauth_proxy.mdx +0 -420
- fastmcp-2.14.5/docs/python-sdk/fastmcp-server-auth-providers-auth0.mdx +0 -47
- fastmcp-2.14.5/docs/python-sdk/fastmcp-server-auth-providers-aws.mdx +0 -88
- fastmcp-2.14.5/docs/python-sdk/fastmcp-server-auth-providers-azure.mdx +0 -76
- fastmcp-2.14.5/docs/python-sdk/fastmcp-server-auth-providers-descope.mdx +0 -62
- fastmcp-2.14.5/docs/python-sdk/fastmcp-server-auth-providers-discord.mdx +0 -72
- fastmcp-2.14.5/docs/python-sdk/fastmcp-server-auth-providers-github.mdx +0 -72
- fastmcp-2.14.5/docs/python-sdk/fastmcp-server-auth-providers-google.mdx +0 -72
- fastmcp-2.14.5/docs/python-sdk/fastmcp-server-auth-providers-introspection.mdx +0 -77
- fastmcp-2.14.5/docs/python-sdk/fastmcp-server-auth-providers-jwt.mdx +0 -152
- fastmcp-2.14.5/docs/python-sdk/fastmcp-server-auth-providers-oci.mdx +0 -103
- fastmcp-2.14.5/docs/python-sdk/fastmcp-server-auth-providers-scalekit.mdx +0 -63
- fastmcp-2.14.5/docs/python-sdk/fastmcp-server-auth-providers-supabase.mdx +0 -68
- fastmcp-2.14.5/docs/python-sdk/fastmcp-server-auth-providers-workos.mdx +0 -110
- fastmcp-2.14.5/docs/python-sdk/fastmcp-server-context.mdx +0 -421
- fastmcp-2.14.5/docs/python-sdk/fastmcp-server-dependencies.mdx +0 -262
- fastmcp-2.14.5/docs/python-sdk/fastmcp-server-elicitation.mdx +0 -140
- fastmcp-2.14.5/docs/python-sdk/fastmcp-server-http.mdx +0 -106
- fastmcp-2.14.5/docs/python-sdk/fastmcp-server-low_level.mdx +0 -53
- fastmcp-2.14.5/docs/python-sdk/fastmcp-server-middleware-caching.mdx +0 -189
- fastmcp-2.14.5/docs/python-sdk/fastmcp-server-middleware-middleware.mdx +0 -112
- fastmcp-2.14.5/docs/python-sdk/fastmcp-server-middleware-tool_injection.mdx +0 -91
- fastmcp-2.14.5/docs/python-sdk/fastmcp-server-openapi-__init__.mdx +0 -9
- fastmcp-2.14.5/docs/python-sdk/fastmcp-server-openapi-components.mdx +0 -62
- fastmcp-2.14.5/docs/python-sdk/fastmcp-server-openapi-routing.mdx +0 -23
- fastmcp-2.14.5/docs/python-sdk/fastmcp-server-openapi-server.mdx +0 -20
- fastmcp-2.14.5/docs/python-sdk/fastmcp-server-proxy.mdx +0 -339
- fastmcp-2.14.5/docs/python-sdk/fastmcp-server-server.mdx +0 -799
- fastmcp-2.14.5/docs/python-sdk/fastmcp-server-tasks-capabilities.mdx +0 -24
- fastmcp-2.14.5/docs/python-sdk/fastmcp-server-tasks-config.mdx +0 -66
- fastmcp-2.14.5/docs/python-sdk/fastmcp-server-tasks-converters.mdx +0 -77
- fastmcp-2.14.5/docs/python-sdk/fastmcp-server-tasks-handlers.mdx +0 -78
- fastmcp-2.14.5/docs/python-sdk/fastmcp-server-tasks-keys.mdx +0 -91
- fastmcp-2.14.5/docs/python-sdk/fastmcp-server-tasks-protocol.mdx +0 -88
- fastmcp-2.14.5/docs/python-sdk/fastmcp-server-tasks-subscriptions.mdx +0 -35
- fastmcp-2.14.5/docs/python-sdk/fastmcp-settings.mdx +0 -56
- fastmcp-2.14.5/docs/python-sdk/fastmcp-tools-tool.mdx +0 -128
- fastmcp-2.14.5/docs/python-sdk/fastmcp-tools-tool_manager.mdx +0 -113
- fastmcp-2.14.5/docs/python-sdk/fastmcp-tools-tool_transform.mdx +0 -290
- fastmcp-2.14.5/docs/python-sdk/fastmcp-utilities-cli.mdx +0 -55
- fastmcp-2.14.5/docs/python-sdk/fastmcp-utilities-components.mdx +0 -121
- fastmcp-2.14.5/docs/python-sdk/fastmcp-utilities-inspect.mdx +0 -143
- fastmcp-2.14.5/docs/python-sdk/fastmcp-utilities-json_schema.mdx +0 -25
- fastmcp-2.14.5/docs/python-sdk/fastmcp-utilities-json_schema_type.mdx +0 -110
- fastmcp-2.14.5/docs/python-sdk/fastmcp-utilities-logging.mdx +0 -58
- fastmcp-2.14.5/docs/python-sdk/fastmcp-utilities-mcp_config.mdx +0 -28
- fastmcp-2.14.5/docs/python-sdk/fastmcp-utilities-tests.mdx +0 -106
- fastmcp-2.14.5/docs/servers/auth/authentication.mdx +0 -266
- fastmcp-2.14.5/docs/servers/auth/oauth-proxy.mdx +0 -594
- fastmcp-2.14.5/docs/servers/auth/oidc-proxy.mdx +0 -269
- fastmcp-2.14.5/docs/servers/auth/remote-oauth.mdx +0 -226
- fastmcp-2.14.5/docs/servers/composition.mdx +0 -326
- fastmcp-2.14.5/docs/servers/context.mdx +0 -613
- fastmcp-2.14.5/docs/servers/elicitation.mdx +0 -462
- fastmcp-2.14.5/docs/servers/logging.mdx +0 -249
- fastmcp-2.14.5/docs/servers/middleware.mdx +0 -816
- fastmcp-2.14.5/docs/servers/progress.mdx +0 -189
- fastmcp-2.14.5/docs/servers/prompts.mdx +0 -353
- fastmcp-2.14.5/docs/servers/proxy.mdx +0 -349
- fastmcp-2.14.5/docs/servers/resources.mdx +0 -663
- fastmcp-2.14.5/docs/servers/sampling.mdx +0 -488
- fastmcp-2.14.5/docs/servers/server.mdx +0 -436
- fastmcp-2.14.5/docs/servers/tools.mdx +0 -986
- fastmcp-2.14.5/docs/snippets/version-badge.mdx +0 -7
- fastmcp-2.14.5/docs/updates.mdx +0 -425
- fastmcp-2.14.5/examples/mount_example.py +0 -116
- fastmcp-2.14.5/examples/serializer.py +0 -32
- fastmcp-2.14.5/examples/smart_home/src/smart_home/hub.py +0 -30
- fastmcp-2.14.5/examples/smart_home/src/smart_home/lights/server.py +0 -307
- fastmcp-2.14.5/examples/testing_demo/uv.lock +0 -1569
- fastmcp-2.14.5/justfile +0 -29
- fastmcp-2.14.5/pyproject.toml +0 -184
- fastmcp-2.14.5/src/fastmcp/cli/cli.py +0 -873
- fastmcp-2.14.5/src/fastmcp/cli/install/claude_code.py +0 -244
- fastmcp-2.14.5/src/fastmcp/cli/install/claude_desktop.py +0 -214
- fastmcp-2.14.5/src/fastmcp/cli/install/cursor.py +0 -337
- fastmcp-2.14.5/src/fastmcp/cli/install/gemini_cli.py +0 -241
- fastmcp-2.14.5/src/fastmcp/cli/install/mcp_json.py +0 -196
- fastmcp-2.14.5/src/fastmcp/cli/run.py +0 -225
- fastmcp-2.14.5/src/fastmcp/client/__init__.py +0 -32
- fastmcp-2.14.5/src/fastmcp/client/auth/oauth.py +0 -328
- fastmcp-2.14.5/src/fastmcp/client/client.py +0 -1618
- fastmcp-2.14.5/src/fastmcp/client/elicitation.py +0 -80
- fastmcp-2.14.5/src/fastmcp/client/sampling/handlers/anthropic.py +0 -387
- fastmcp-2.14.5/src/fastmcp/client/sampling/handlers/openai.py +0 -399
- fastmcp-2.14.5/src/fastmcp/client/tasks.py +0 -551
- fastmcp-2.14.5/src/fastmcp/client/transports.py +0 -1170
- fastmcp-2.14.5/src/fastmcp/contrib/component_manager/README.md +0 -170
- fastmcp-2.14.5/src/fastmcp/contrib/component_manager/__init__.py +0 -4
- fastmcp-2.14.5/src/fastmcp/contrib/component_manager/component_manager.py +0 -186
- fastmcp-2.14.5/src/fastmcp/contrib/component_manager/component_service.py +0 -209
- fastmcp-2.14.5/src/fastmcp/contrib/component_manager/example.py +0 -59
- fastmcp-2.14.5/src/fastmcp/contrib/mcp_mixin/example.py +0 -52
- fastmcp-2.14.5/src/fastmcp/contrib/mcp_mixin/mcp_mixin.py +0 -276
- fastmcp-2.14.5/src/fastmcp/dependencies.py +0 -25
- fastmcp-2.14.5/src/fastmcp/exceptions.py +0 -39
- fastmcp-2.14.5/src/fastmcp/experimental/server/openapi/__init__.py +0 -37
- fastmcp-2.14.5/src/fastmcp/mcp_config.py +0 -338
- fastmcp-2.14.5/src/fastmcp/prompts/__init__.py +0 -9
- fastmcp-2.14.5/src/fastmcp/prompts/prompt.py +0 -381
- fastmcp-2.14.5/src/fastmcp/prompts/prompt_manager.py +0 -117
- fastmcp-2.14.5/src/fastmcp/resources/__init__.py +0 -22
- fastmcp-2.14.5/src/fastmcp/resources/resource.py +0 -240
- fastmcp-2.14.5/src/fastmcp/resources/resource_manager.py +0 -338
- fastmcp-2.14.5/src/fastmcp/resources/template.py +0 -413
- fastmcp-2.14.5/src/fastmcp/resources/types.py +0 -157
- fastmcp-2.14.5/src/fastmcp/server/__init__.py +0 -6
- fastmcp-2.14.5/src/fastmcp/server/auth/__init__.py +0 -25
- fastmcp-2.14.5/src/fastmcp/server/auth/auth.py +0 -538
- fastmcp-2.14.5/src/fastmcp/server/auth/oauth_proxy.py +0 -2282
- fastmcp-2.14.5/src/fastmcp/server/auth/oidc_proxy.py +0 -419
- fastmcp-2.14.5/src/fastmcp/server/auth/providers/auth0.py +0 -193
- fastmcp-2.14.5/src/fastmcp/server/auth/providers/aws.py +0 -263
- fastmcp-2.14.5/src/fastmcp/server/auth/providers/azure.py +0 -446
- fastmcp-2.14.5/src/fastmcp/server/auth/providers/descope.py +0 -229
- fastmcp-2.14.5/src/fastmcp/server/auth/providers/discord.py +0 -308
- fastmcp-2.14.5/src/fastmcp/server/auth/providers/github.py +0 -304
- fastmcp-2.14.5/src/fastmcp/server/auth/providers/google.py +0 -341
- fastmcp-2.14.5/src/fastmcp/server/auth/providers/introspection.py +0 -281
- fastmcp-2.14.5/src/fastmcp/server/auth/providers/jwt.py +0 -564
- fastmcp-2.14.5/src/fastmcp/server/auth/providers/oci.py +0 -233
- fastmcp-2.14.5/src/fastmcp/server/auth/providers/scalekit.py +0 -238
- fastmcp-2.14.5/src/fastmcp/server/auth/providers/supabase.py +0 -193
- fastmcp-2.14.5/src/fastmcp/server/auth/providers/workos.py +0 -427
- fastmcp-2.14.5/src/fastmcp/server/context.py +0 -1156
- fastmcp-2.14.5/src/fastmcp/server/dependencies.py +0 -626
- fastmcp-2.14.5/src/fastmcp/server/elicitation.py +0 -462
- fastmcp-2.14.5/src/fastmcp/server/event_store.py +0 -177
- fastmcp-2.14.5/src/fastmcp/server/http.py +0 -366
- fastmcp-2.14.5/src/fastmcp/server/low_level.py +0 -225
- fastmcp-2.14.5/src/fastmcp/server/middleware/__init__.py +0 -11
- fastmcp-2.14.5/src/fastmcp/server/middleware/caching.py +0 -476
- fastmcp-2.14.5/src/fastmcp/server/middleware/middleware.py +0 -208
- fastmcp-2.14.5/src/fastmcp/server/middleware/tool_injection.py +0 -116
- fastmcp-2.14.5/src/fastmcp/server/openapi/__init__.py +0 -35
- fastmcp-2.14.5/src/fastmcp/server/openapi/components.py +0 -351
- fastmcp-2.14.5/src/fastmcp/server/openapi/routing.py +0 -130
- fastmcp-2.14.5/src/fastmcp/server/openapi/server.py +0 -452
- fastmcp-2.14.5/src/fastmcp/server/proxy.py +0 -707
- fastmcp-2.14.5/src/fastmcp/server/sampling/run.py +0 -301
- fastmcp-2.14.5/src/fastmcp/server/sampling/sampling_tool.py +0 -108
- fastmcp-2.14.5/src/fastmcp/server/server.py +0 -3101
- fastmcp-2.14.5/src/fastmcp/server/tasks/__init__.py +0 -21
- fastmcp-2.14.5/src/fastmcp/server/tasks/capabilities.py +0 -30
- fastmcp-2.14.5/src/fastmcp/server/tasks/config.py +0 -89
- fastmcp-2.14.5/src/fastmcp/server/tasks/converters.py +0 -206
- fastmcp-2.14.5/src/fastmcp/server/tasks/handlers.py +0 -365
- fastmcp-2.14.5/src/fastmcp/server/tasks/keys.py +0 -93
- fastmcp-2.14.5/src/fastmcp/server/tasks/protocol.py +0 -359
- fastmcp-2.14.5/src/fastmcp/server/tasks/subscriptions.py +0 -203
- fastmcp-2.14.5/src/fastmcp/settings.py +0 -427
- fastmcp-2.14.5/src/fastmcp/tools/__init__.py +0 -5
- fastmcp-2.14.5/src/fastmcp/tools/tool.py +0 -643
- fastmcp-2.14.5/src/fastmcp/tools/tool_manager.py +0 -170
- fastmcp-2.14.5/src/fastmcp/tools/tool_transform.py +0 -943
- fastmcp-2.14.5/src/fastmcp/utilities/components.py +0 -181
- fastmcp-2.14.5/src/fastmcp/utilities/inspect.py +0 -506
- fastmcp-2.14.5/src/fastmcp/utilities/json_schema.py +0 -394
- fastmcp-2.14.5/src/fastmcp/utilities/json_schema_type.py +0 -648
- fastmcp-2.14.5/src/fastmcp/utilities/logging.py +0 -230
- fastmcp-2.14.5/src/fastmcp/utilities/mcp_config.py +0 -56
- fastmcp-2.14.5/src/fastmcp/utilities/mcp_server_config/v1/mcp_server_config.py +0 -447
- fastmcp-2.14.5/src/fastmcp/utilities/openapi/parser.py +0 -821
- fastmcp-2.14.5/src/fastmcp/utilities/tests.py +0 -286
- fastmcp-2.14.5/src/fastmcp/utilities/types.py +0 -496
- fastmcp-2.14.5/tests/cli/test_cli.py +0 -616
- fastmcp-2.14.5/tests/cli/test_config.py +0 -434
- fastmcp-2.14.5/tests/cli/test_mcp_server_config_integration.py +0 -293
- fastmcp-2.14.5/tests/cli/test_run.py +0 -602
- fastmcp-2.14.5/tests/cli/test_server_args.py +0 -135
- fastmcp-2.14.5/tests/cli/test_tasks.py +0 -50
- fastmcp-2.14.5/tests/client/auth/test_oauth_client.py +0 -251
- fastmcp-2.14.5/tests/client/tasks/conftest.py +0 -3
- fastmcp-2.14.5/tests/client/tasks/test_client_prompt_tasks.py +0 -103
- fastmcp-2.14.5/tests/client/tasks/test_client_resource_tasks.py +0 -108
- fastmcp-2.14.5/tests/client/tasks/test_client_tool_tasks.py +0 -88
- fastmcp-2.14.5/tests/client/tasks/test_prompt_task_mcp_message.py +0 -57
- fastmcp-2.14.5/tests/client/test_client.py +0 -1289
- fastmcp-2.14.5/tests/client/test_elicitation.py +0 -1083
- fastmcp-2.14.5/tests/client/test_notifications.py +0 -422
- fastmcp-2.14.5/tests/client/test_openapi.py +0 -192
- fastmcp-2.14.5/tests/client/test_sampling.py +0 -988
- fastmcp-2.14.5/tests/client/test_sse.py +0 -189
- fastmcp-2.14.5/tests/client/test_stdio.py +0 -364
- fastmcp-2.14.5/tests/client/test_streamable_http.py +0 -263
- fastmcp-2.14.5/tests/client/transports/test_transports.py +0 -39
- fastmcp-2.14.5/tests/conftest.py +0 -83
- fastmcp-2.14.5/tests/contrib/test_component_manager.py +0 -730
- fastmcp-2.14.5/tests/contrib/test_mcp_mixin.py +0 -322
- fastmcp-2.14.5/tests/deprecated/__init__.py +0 -4
- fastmcp-2.14.5/tests/deprecated/test_exclude_args.py +0 -124
- fastmcp-2.14.5/tests/deprecated/test_openapi_deprecations.py +0 -73
- fastmcp-2.14.5/tests/deprecated/test_settings.py +0 -300
- fastmcp-2.14.5/tests/integration_tests/auth/test_github_provider_integration.py +0 -401
- fastmcp-2.14.5/tests/integration_tests/conftest.py +0 -72
- fastmcp-2.14.5/tests/integration_tests/test_github_mcp_remote.py +0 -122
- fastmcp-2.14.5/tests/prompts/test_prompt.py +0 -499
- fastmcp-2.14.5/tests/prompts/test_prompt_manager.py +0 -464
- fastmcp-2.14.5/tests/resources/test_file_resources.py +0 -116
- fastmcp-2.14.5/tests/resources/test_function_resources.py +0 -131
- fastmcp-2.14.5/tests/resources/test_resource_manager.py +0 -760
- fastmcp-2.14.5/tests/resources/test_resource_template.py +0 -991
- fastmcp-2.14.5/tests/resources/test_resources.py +0 -116
- fastmcp-2.14.5/tests/server/auth/providers/test_auth0.py +0 -284
- fastmcp-2.14.5/tests/server/auth/providers/test_aws.py +0 -251
- fastmcp-2.14.5/tests/server/auth/providers/test_azure.py +0 -882
- fastmcp-2.14.5/tests/server/auth/providers/test_descope.py +0 -264
- fastmcp-2.14.5/tests/server/auth/providers/test_discord.py +0 -119
- fastmcp-2.14.5/tests/server/auth/providers/test_github.py +0 -245
- fastmcp-2.14.5/tests/server/auth/providers/test_google.py +0 -164
- fastmcp-2.14.5/tests/server/auth/providers/test_introspection.py +0 -463
- fastmcp-2.14.5/tests/server/auth/providers/test_scalekit.py +0 -259
- fastmcp-2.14.5/tests/server/auth/providers/test_supabase.py +0 -226
- fastmcp-2.14.5/tests/server/auth/providers/test_workos.py +0 -208
- fastmcp-2.14.5/tests/server/auth/test_jwt_provider.py +0 -1101
- fastmcp-2.14.5/tests/server/auth/test_oauth_consent_flow.py +0 -1062
- fastmcp-2.14.5/tests/server/auth/test_oauth_proxy.py +0 -1865
- fastmcp-2.14.5/tests/server/auth/test_oauth_proxy_redirect_validation.py +0 -201
- fastmcp-2.14.5/tests/server/http/test_bearer_auth_backend.py +0 -178
- fastmcp-2.14.5/tests/server/http/test_http_dependencies.py +0 -122
- fastmcp-2.14.5/tests/server/middleware/test_caching.py +0 -528
- fastmcp-2.14.5/tests/server/middleware/test_error_handling.py +0 -652
- fastmcp-2.14.5/tests/server/middleware/test_initialization_middleware.py +0 -375
- fastmcp-2.14.5/tests/server/middleware/test_logging.py +0 -670
- fastmcp-2.14.5/tests/server/middleware/test_middleware.py +0 -905
- fastmcp-2.14.5/tests/server/middleware/test_rate_limiting.py +0 -456
- fastmcp-2.14.5/tests/server/middleware/test_timing.py +0 -317
- fastmcp-2.14.5/tests/server/middleware/test_tool_injection.py +0 -504
- fastmcp-2.14.5/tests/server/openapi/test_comprehensive.py +0 -727
- fastmcp-2.14.5/tests/server/openapi/test_deepobject_style.py +0 -333
- fastmcp-2.14.5/tests/server/openapi/test_end_to_end_compatibility.py +0 -325
- fastmcp-2.14.5/tests/server/openapi/test_openapi_features.py +0 -401
- fastmcp-2.14.5/tests/server/openapi/test_openapi_performance.py +0 -136
- fastmcp-2.14.5/tests/server/openapi/test_parameter_collisions.py +0 -212
- fastmcp-2.14.5/tests/server/openapi/test_performance_comparison.py +0 -285
- fastmcp-2.14.5/tests/server/openapi/test_server.py +0 -337
- fastmcp-2.14.5/tests/server/proxy/test_proxy_client.py +0 -425
- fastmcp-2.14.5/tests/server/proxy/test_proxy_server.py +0 -789
- fastmcp-2.14.5/tests/server/proxy/test_stateful_proxy_client.py +0 -147
- fastmcp-2.14.5/tests/server/tasks/conftest.py +0 -3
- fastmcp-2.14.5/tests/server/tasks/test_server_tasks_parameter.py +0 -336
- fastmcp-2.14.5/tests/server/tasks/test_sync_function_task_disabled.py +0 -229
- fastmcp-2.14.5/tests/server/tasks/test_task_config_modes.py +0 -350
- fastmcp-2.14.5/tests/server/tasks/test_task_dependencies.py +0 -272
- fastmcp-2.14.5/tests/server/tasks/test_task_mount.py +0 -550
- fastmcp-2.14.5/tests/server/tasks/test_task_prompts.py +0 -92
- fastmcp-2.14.5/tests/server/tasks/test_task_proxy.py +0 -165
- fastmcp-2.14.5/tests/server/tasks/test_task_resources.py +0 -108
- fastmcp-2.14.5/tests/server/tasks/test_task_return_types.py +0 -660
- fastmcp-2.14.5/tests/server/tasks/test_task_tools.py +0 -102
- fastmcp-2.14.5/tests/server/test_context.py +0 -182
- fastmcp-2.14.5/tests/server/test_dependencies.py +0 -779
- fastmcp-2.14.5/tests/server/test_event_store.py +0 -237
- fastmcp-2.14.5/tests/server/test_file_server.py +0 -127
- fastmcp-2.14.5/tests/server/test_import_server.py +0 -627
- fastmcp-2.14.5/tests/server/test_input_validation.py +0 -353
- fastmcp-2.14.5/tests/server/test_log_level.py +0 -88
- fastmcp-2.14.5/tests/server/test_logging.py +0 -192
- fastmcp-2.14.5/tests/server/test_mount.py +0 -1426
- fastmcp-2.14.5/tests/server/test_server.py +0 -1526
- fastmcp-2.14.5/tests/server/test_server_docket.py +0 -170
- fastmcp-2.14.5/tests/server/test_server_interactions.py +0 -2804
- fastmcp-2.14.5/tests/server/test_server_lifespan.py +0 -71
- fastmcp-2.14.5/tests/server/test_tool_annotations.py +0 -255
- fastmcp-2.14.5/tests/server/test_tool_transformation.py +0 -68
- fastmcp-2.14.5/tests/test_mcp_config.py +0 -771
- fastmcp-2.14.5/tests/tools/test_tool.py +0 -1950
- fastmcp-2.14.5/tests/tools/test_tool_manager.py +0 -1083
- fastmcp-2.14.5/tests/tools/test_tool_transform.py +0 -1693
- fastmcp-2.14.5/tests/utilities/openapi/test_models.py +0 -476
- fastmcp-2.14.5/tests/utilities/openapi/test_nullable_fields.py +0 -375
- fastmcp-2.14.5/tests/utilities/openapi/test_schemas.py +0 -635
- fastmcp-2.14.5/tests/utilities/test_components.py +0 -438
- fastmcp-2.14.5/tests/utilities/test_inspect.py +0 -1112
- fastmcp-2.14.5/tests/utilities/test_json_schema.py +0 -766
- fastmcp-2.14.5/tests/utilities/test_json_schema_type.py +0 -1586
- fastmcp-2.14.5/tests/utilities/test_logging.py +0 -56
- fastmcp-2.14.5/tests/utilities/test_types.py +0 -673
- fastmcp-2.14.5/uv.lock +0 -2665
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/.ccignore +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/.github/ISSUE_TEMPLATE/bug.yml +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/.github/ISSUE_TEMPLATE/enhancement.yml +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/.github/copilot-instructions.md +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/.github/dependabot.yml +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/.github/pull_request_template.md +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/.github/release.yml +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/.github/workflows/auto-close-duplicates.yml +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/.github/workflows/auto-close-needs-mre.yml +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/.github/workflows/publish.yml +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/.github/workflows/run-static.yml +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/.github/workflows/run-tests.yml +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/CLAUDE.md +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/CODE_OF_CONDUCT.md +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/LICENSE +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/SECURITY.md +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/.ccignore +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/.cursor/rules/mintlify.mdc +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/assets/brand/blue-logo.png +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/assets/brand/f-watercolor-waves-dark.png +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/assets/brand/f-watercolor-waves.png +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/assets/brand/favicon.svg +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/assets/brand/thumbnail-background.png +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/assets/brand/wordmark-padded.png +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/assets/brand/wordmark-watercolor-rainbow-dark.png +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/assets/brand/wordmark-watercolor-rainbow.png +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/assets/brand/wordmark-watercolor-waves-dark.png +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/assets/brand/wordmark-watercolor-waves.png +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/assets/brand/wordmark-white-padded.png +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/assets/brand/wordmark-white.png +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/assets/brand/wordmark.png +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/assets/images/fastmcp_cloud/connect.png +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/assets/images/fastmcp_cloud/create_project.png +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/assets/images/fastmcp_cloud/deployment.png +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/assets/images/fastmcp_cloud/quickstart.png +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/assets/images/oauth-proxy-consent-screen.png +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/assets/images/tutorial-rest-api-result.png +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/assets/schemas/mcp_server_config/latest.json +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/assets/schemas/mcp_server_config/v1.json +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/assets/updates/release-2-7.png +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/clients/auth/bearer.mdx +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/community/README.md +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/community/showcase.mdx +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/css/banner.css +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/css/python-sdk.css +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/css/version-badge.css +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/deployment/fastmcp-cloud.mdx +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/deployment/server-configuration.mdx +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/development/contributing.mdx +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/development/releases.mdx +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/development/tests.mdx +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/getting-started/quickstart.mdx +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/integrations/anthropic.mdx +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/integrations/claude-code.mdx +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/integrations/cursor-install-mcp.png +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/integrations/cursor.mdx +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/integrations/eunomia-authorization.mdx +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/integrations/gemini.mdx +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/integrations/images/authkit/enable_dcr.png +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/integrations/images/oci/ociaddapplication.png +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/integrations/images/oci/ocieditdomainsettings.png +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/integrations/images/oci/ocieditdomainsettingsbutton.png +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/integrations/images/oci/ocioauthconfiguration.png +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/integrations/images/permit/abac_condition_example.png +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/integrations/images/permit/abac_policy_example.png +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/integrations/images/permit/policy_mapping.png +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/integrations/images/permit/role_assignement.png +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/integrations/mcp-json-configuration.mdx +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/integrations/openai.mdx +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/integrations/permit.mdx +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/patterns/contrib.mdx +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/patterns/testing.mdx +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/public/schemas/fastmcp.json/latest.json +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/public/schemas/fastmcp.json/v1.json +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/python-sdk/fastmcp-cli-__init__.mdx +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/python-sdk/fastmcp-cli-install-__init__.mdx +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/python-sdk/fastmcp-cli-install-claude_code.mdx +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/python-sdk/fastmcp-cli-install-claude_desktop.mdx +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/python-sdk/fastmcp-cli-install-cursor.mdx +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/python-sdk/fastmcp-cli-install-gemini_cli.mdx +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/python-sdk/fastmcp-cli-install-mcp_json.mdx +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/python-sdk/fastmcp-cli-install-shared.mdx +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/python-sdk/fastmcp-cli-tasks.mdx +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/python-sdk/fastmcp-client-__init__.mdx +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/python-sdk/fastmcp-client-auth-__init__.mdx +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/python-sdk/fastmcp-client-auth-bearer.mdx +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/python-sdk/fastmcp-client-elicitation.mdx +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/python-sdk/fastmcp-client-logging.mdx +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/python-sdk/fastmcp-client-messages.mdx +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/python-sdk/fastmcp-client-oauth_callback.mdx +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/python-sdk/fastmcp-client-progress.mdx +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/python-sdk/fastmcp-client-roots.mdx +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/python-sdk/fastmcp-prompts-__init__.mdx +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/python-sdk/fastmcp-resources-__init__.mdx +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/python-sdk/fastmcp-server-__init__.mdx +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/python-sdk/fastmcp-server-auth-__init__.mdx +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/python-sdk/fastmcp-server-auth-jwt_issuer.mdx +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/python-sdk/fastmcp-server-auth-middleware.mdx +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/python-sdk/fastmcp-server-auth-oidc_proxy.mdx +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/python-sdk/fastmcp-server-auth-providers-__init__.mdx +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/python-sdk/fastmcp-server-auth-providers-debug.mdx +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/python-sdk/fastmcp-server-auth-providers-in_memory.mdx +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/python-sdk/fastmcp-server-auth-redirect_validation.mdx +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/python-sdk/fastmcp-server-event_store.mdx +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/python-sdk/fastmcp-server-middleware-__init__.mdx +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/python-sdk/fastmcp-server-middleware-error_handling.mdx +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/python-sdk/fastmcp-server-middleware-logging.mdx +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/python-sdk/fastmcp-server-middleware-rate_limiting.mdx +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/python-sdk/fastmcp-server-middleware-timing.mdx +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/python-sdk/fastmcp-server-tasks-__init__.mdx +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/python-sdk/fastmcp-tools-__init__.mdx +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/python-sdk/fastmcp-utilities-__init__.mdx +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/python-sdk/fastmcp-utilities-auth.mdx +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/python-sdk/fastmcp-utilities-exceptions.mdx +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/python-sdk/fastmcp-utilities-http.mdx +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/python-sdk/fastmcp-utilities-mcp_server_config-__init__.mdx +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-__init__.mdx +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-environments-__init__.mdx +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-environments-base.mdx +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-environments-uv.mdx +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-mcp_server_config.mdx +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-sources-__init__.mdx +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-sources-base.mdx +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-sources-filesystem.mdx +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/python-sdk/fastmcp-utilities-openapi-__init__.mdx +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/python-sdk/fastmcp-utilities-openapi-director.mdx +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/python-sdk/fastmcp-utilities-openapi-formatters.mdx +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/python-sdk/fastmcp-utilities-openapi-json_schema_converter.mdx +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/python-sdk/fastmcp-utilities-openapi-models.mdx +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/python-sdk/fastmcp-utilities-openapi-parser.mdx +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/python-sdk/fastmcp-utilities-openapi-schemas.mdx +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/python-sdk/fastmcp-utilities-types.mdx +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/python-sdk/fastmcp-utilities-ui.mdx +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/servers/auth/full-oauth-server.mdx +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/servers/storage-backends.mdx +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/snippets/local-focus.mdx +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/snippets/youtube-embed.mdx +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/tutorials/create-mcp-server.mdx +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/tutorials/mcp.mdx +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/docs/tutorials/rest-api.mdx +0 -0
- {fastmcp-2.14.5/docs → fastmcp-3.0.0b1/docs/v2}/clients/auth/oauth.mdx +0 -0
- {fastmcp-2.14.5/docs → fastmcp-3.0.0b1/docs/v2}/clients/elicitation.mdx +0 -0
- {fastmcp-2.14.5/docs → fastmcp-3.0.0b1/docs/v2}/clients/logging.mdx +0 -0
- {fastmcp-2.14.5/docs → fastmcp-3.0.0b1/docs/v2}/clients/progress.mdx +0 -0
- {fastmcp-2.14.5/docs → fastmcp-3.0.0b1/docs/v2}/clients/prompts.mdx +0 -0
- {fastmcp-2.14.5/docs → fastmcp-3.0.0b1/docs/v2}/clients/resources.mdx +0 -0
- {fastmcp-2.14.5/docs → fastmcp-3.0.0b1/docs/v2}/clients/roots.mdx +0 -0
- {fastmcp-2.14.5/docs → fastmcp-3.0.0b1/docs/v2}/clients/transports.mdx +0 -0
- {fastmcp-2.14.5/docs → fastmcp-3.0.0b1/docs/v2}/integrations/chatgpt.mdx +0 -0
- {fastmcp-2.14.5/docs → fastmcp-3.0.0b1/docs/v2}/integrations/gemini-cli.mdx +0 -0
- {fastmcp-2.14.5/docs → fastmcp-3.0.0b1/docs/v2}/integrations/openapi.mdx +0 -0
- {fastmcp-2.14.5/docs → fastmcp-3.0.0b1/docs/v2}/patterns/decorating-methods.mdx +0 -0
- {fastmcp-2.14.5/docs → fastmcp-3.0.0b1/docs/v2}/servers/auth/token-verification.mdx +0 -0
- {fastmcp-2.14.5/docs → fastmcp-3.0.0b1/docs/v2}/servers/icons.mdx +0 -0
- {fastmcp-2.14.5/docs → fastmcp-3.0.0b1/docs/v2}/servers/tasks.mdx +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/examples/atproto_mcp/README.md +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/examples/atproto_mcp/demo.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/examples/atproto_mcp/fastmcp.json +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/examples/atproto_mcp/pyproject.toml +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/examples/atproto_mcp/src/atproto_mcp/__init__.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/examples/atproto_mcp/src/atproto_mcp/__main__.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/examples/atproto_mcp/src/atproto_mcp/_atproto/__init__.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/examples/atproto_mcp/src/atproto_mcp/_atproto/_client.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/examples/atproto_mcp/src/atproto_mcp/_atproto/_posts.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/examples/atproto_mcp/src/atproto_mcp/_atproto/_profile.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/examples/atproto_mcp/src/atproto_mcp/_atproto/_read.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/examples/atproto_mcp/src/atproto_mcp/_atproto/_social.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/examples/atproto_mcp/src/atproto_mcp/py.typed +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/examples/atproto_mcp/src/atproto_mcp/server.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/examples/atproto_mcp/src/atproto_mcp/settings.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/examples/atproto_mcp/src/atproto_mcp/types.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/examples/auth/authkit_dcr/README.md +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/examples/auth/authkit_dcr/client.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/examples/auth/authkit_dcr/server.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/examples/auth/aws_oauth/README.md +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/examples/auth/aws_oauth/client.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/examples/auth/aws_oauth/requirements.txt +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/examples/auth/aws_oauth/server.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/examples/auth/azure_oauth/README.md +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/examples/auth/azure_oauth/client.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/examples/auth/azure_oauth/server.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/examples/auth/discord_oauth/README.md +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/examples/auth/discord_oauth/client.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/examples/auth/discord_oauth/server.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/examples/auth/github_oauth/README.md +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/examples/auth/github_oauth/client.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/examples/auth/github_oauth/server.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/examples/auth/google_oauth/README.md +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/examples/auth/google_oauth/client.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/examples/auth/google_oauth/server.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/examples/auth/mounted/README.md +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/examples/auth/mounted/client.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/examples/auth/mounted/server.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/examples/auth/scalekit_oauth/README.md +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/examples/auth/scalekit_oauth/client.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/examples/auth/scalekit_oauth/server.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/examples/auth/workos_oauth/README.md +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/examples/auth/workos_oauth/client.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/examples/auth/workos_oauth/server.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/examples/complex_inputs.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/examples/config_server.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/examples/desktop.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/examples/echo.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/examples/fastmcp_config/env_interpolation_example.json +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/examples/fastmcp_config/fastmcp.json +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/examples/fastmcp_config/full_example.fastmcp.json +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/examples/fastmcp_config/server.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/examples/fastmcp_config/simple.fastmcp.json +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/examples/fastmcp_config_demo/README.md +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/examples/fastmcp_config_demo/fastmcp.json +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/examples/fastmcp_config_demo/server.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/examples/get_file.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/examples/in_memory_proxy_example.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/examples/memory.fastmcp.json +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/examples/memory.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/examples/mount_example.fastmcp.json +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/examples/sampling/README.md +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/examples/sampling/server_fallback.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/examples/sampling/structured_output.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/examples/sampling/text.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/examples/sampling/tool_use.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/examples/screenshot.fastmcp.json +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/examples/screenshot.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/examples/simple_echo.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/examples/smart_home/README.md +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/examples/smart_home/hub.fastmcp.json +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/examples/smart_home/lights.fastmcp.json +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/examples/smart_home/pyproject.toml +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/examples/smart_home/src/smart_home/__init__.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/examples/smart_home/src/smart_home/__main__.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/examples/smart_home/src/smart_home/lights/__init__.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/examples/smart_home/src/smart_home/lights/hue_utils.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/examples/smart_home/src/smart_home/py.typed +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/examples/smart_home/src/smart_home/settings.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/examples/tags_example.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/examples/tasks/README.md +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/examples/tasks/client.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/examples/tasks/docker-compose.yml +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/examples/tasks/server.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/examples/testing_demo/README.md +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/examples/testing_demo/pyproject.toml +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/examples/testing_demo/server.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/examples/testing_demo/tests/test_server.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/examples/text_me.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/examples/tool_result_echo.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/logo.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/scripts/auto_close_duplicates.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/scripts/auto_close_needs_mre.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/src/fastmcp/__init__.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/src/fastmcp/cli/__init__.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/src/fastmcp/cli/__main__.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/src/fastmcp/cli/install/__init__.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/src/fastmcp/cli/install/shared.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/src/fastmcp/cli/tasks.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/src/fastmcp/client/auth/__init__.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/src/fastmcp/client/auth/bearer.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/src/fastmcp/client/logging.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/src/fastmcp/client/messages.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/src/fastmcp/client/oauth_callback.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/src/fastmcp/client/progress.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/src/fastmcp/client/roots.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/src/fastmcp/client/sampling/__init__.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/src/fastmcp/client/sampling/handlers/__init__.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/src/fastmcp/contrib/README.md +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/src/fastmcp/contrib/bulk_tool_caller/README.md +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/src/fastmcp/contrib/bulk_tool_caller/__init__.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/src/fastmcp/contrib/bulk_tool_caller/bulk_tool_caller.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/src/fastmcp/contrib/bulk_tool_caller/example.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/src/fastmcp/contrib/mcp_mixin/README.md +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/src/fastmcp/contrib/mcp_mixin/__init__.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/src/fastmcp/experimental/sampling/__init__.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/src/fastmcp/experimental/sampling/handlers/__init__.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/src/fastmcp/experimental/sampling/handlers/openai.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/src/fastmcp/experimental/utilities/openapi/__init__.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/src/fastmcp/py.typed +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/src/fastmcp/server/auth/handlers/authorize.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/src/fastmcp/server/auth/jwt_issuer.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/src/fastmcp/server/auth/middleware.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/src/fastmcp/server/auth/providers/__init__.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/src/fastmcp/server/auth/providers/debug.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/src/fastmcp/server/auth/providers/in_memory.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/src/fastmcp/server/auth/redirect_validation.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/src/fastmcp/server/middleware/error_handling.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/src/fastmcp/server/middleware/logging.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/src/fastmcp/server/middleware/rate_limiting.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/src/fastmcp/server/middleware/timing.py +0 -0
- {fastmcp-2.14.5/src/fastmcp/server → fastmcp-3.0.0b1/src/fastmcp/server/providers}/openapi/README.md +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/src/fastmcp/server/sampling/__init__.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/src/fastmcp/utilities/__init__.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/src/fastmcp/utilities/auth.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/src/fastmcp/utilities/cli.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/src/fastmcp/utilities/exceptions.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/src/fastmcp/utilities/http.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/src/fastmcp/utilities/mcp_server_config/__init__.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/src/fastmcp/utilities/mcp_server_config/v1/__init__.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/src/fastmcp/utilities/mcp_server_config/v1/environments/__init__.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/src/fastmcp/utilities/mcp_server_config/v1/environments/base.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/src/fastmcp/utilities/mcp_server_config/v1/environments/uv.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/src/fastmcp/utilities/mcp_server_config/v1/schema.json +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/src/fastmcp/utilities/mcp_server_config/v1/sources/__init__.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/src/fastmcp/utilities/mcp_server_config/v1/sources/base.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/src/fastmcp/utilities/mcp_server_config/v1/sources/filesystem.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/src/fastmcp/utilities/openapi/README.md +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/src/fastmcp/utilities/openapi/__init__.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/src/fastmcp/utilities/openapi/director.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/src/fastmcp/utilities/openapi/formatters.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/src/fastmcp/utilities/openapi/json_schema_converter.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/src/fastmcp/utilities/openapi/models.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/src/fastmcp/utilities/openapi/schemas.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/src/fastmcp/utilities/ui.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/src/fastmcp/utilities/version_check.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/tests/__init__.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/tests/cli/__init__.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/tests/cli/test_cursor.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/tests/cli/test_install.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/tests/cli/test_mcp_server_config_schema.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/tests/cli/test_project_prepare.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/tests/cli/test_run_config.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/tests/cli/test_shared.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/tests/cli/test_with_argv.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/tests/client/__init__.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/tests/client/auth/__init__.py +0 -0
- {fastmcp-2.14.5/tests/client/sampling → fastmcp-3.0.0b1/tests/client/client}/__init__.py +0 -0
- {fastmcp-2.14.5/tests/client/sampling/handlers → fastmcp-3.0.0b1/tests/client/sampling}/__init__.py +0 -0
- {fastmcp-2.14.5/tests/client/transports → fastmcp-3.0.0b1/tests/client/sampling/handlers}/__init__.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/tests/client/sampling/handlers/test_anthropic_handler.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/tests/client/sampling/handlers/test_openai_handler.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/tests/client/tasks/test_client_task_notifications.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/tests/client/tasks/test_client_task_protocol.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/tests/client/tasks/test_task_context_validation.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/tests/client/tasks/test_task_result_caching.py +0 -0
- {fastmcp-2.14.5/tests/experimental → fastmcp-3.0.0b1/tests/client/telemetry}/__init__.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/tests/client/test_logs.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/tests/client/test_oauth_callback_xss.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/tests/client/test_progress.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/tests/client/test_roots.py +0 -0
- {fastmcp-2.14.5/tests/integration_tests → fastmcp-3.0.0b1/tests/client/transports}/__init__.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/tests/client/transports/test_uv_transport.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/tests/contrib/__init__.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/tests/contrib/test_bulk_tool_caller.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/tests/deprecated/test_deprecated.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/tests/experimental/README.md +0 -0
- {fastmcp-2.14.5/tests/integration_tests/auth → fastmcp-3.0.0b1/tests/experimental}/__init__.py +0 -0
- {fastmcp-2.14.5/tests/prompts → fastmcp-3.0.0b1/tests/integration_tests}/__init__.py +0 -0
- {fastmcp-2.14.5/tests/resources → fastmcp-3.0.0b1/tests/integration_tests/auth}/__init__.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/tests/integration_tests/test_timeout_fix.py +0 -0
- {fastmcp-2.14.5/tests/server → fastmcp-3.0.0b1/tests/prompts}/__init__.py +0 -0
- {fastmcp-2.14.5/tests/server/auth → fastmcp-3.0.0b1/tests/resources}/__init__.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/tests/resources/test_resource_template_meta.py +0 -0
- {fastmcp-2.14.5/tests/server/auth/providers → fastmcp-3.0.0b1/tests/server}/__init__.py +0 -0
- {fastmcp-2.14.5/tests/server/http → fastmcp-3.0.0b1/tests/server/auth}/__init__.py +0 -0
- {fastmcp-2.14.5/tests/server/middleware → fastmcp-3.0.0b1/tests/server/auth/oauth_proxy}/__init__.py +0 -0
- {fastmcp-2.14.5/tests/server/proxy → fastmcp-3.0.0b1/tests/server/auth/providers}/__init__.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/tests/server/auth/test_auth_provider.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/tests/server/auth/test_debug_verifier.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/tests/server/auth/test_enhanced_error_responses.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/tests/server/auth/test_jwt_issuer.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/tests/server/auth/test_oauth_mounting.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/tests/server/auth/test_oauth_proxy_storage.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/tests/server/auth/test_oidc_proxy.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/tests/server/auth/test_redirect_validation.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/tests/server/auth/test_remote_auth_provider.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/tests/server/auth/test_static_token_verifier.py +0 -0
- {fastmcp-2.14.5/tests/server/sampling → fastmcp-3.0.0b1/tests/server/http}/__init__.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/tests/server/http/test_custom_routes.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/tests/server/http/test_http_auth_middleware.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/tests/server/http/test_http_middleware.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/tests/server/http/test_stale_access_token.py +0 -0
- {fastmcp-2.14.5/tests/tools → fastmcp-3.0.0b1/tests/server/middleware}/__init__.py +0 -0
- {fastmcp-2.14.5/tests/server → fastmcp-3.0.0b1/tests/server/providers}/openapi/__init__.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/tests/server/sampling/test_sampling_tool.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/tests/server/tasks/__init__.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/tests/server/tasks/test_progress_dependency.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/tests/server/tasks/test_task_capabilities.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/tests/server/tasks/test_task_metadata.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/tests/server/tasks/test_task_methods.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/tests/server/tasks/test_task_protocol.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/tests/server/tasks/test_task_security.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/tests/server/tasks/test_task_status_notifications.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/tests/server/tasks/test_task_ttl.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/tests/server/test_app_state.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/tests/server/test_auth_integration.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/tests/server/test_icons.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/tests/server/test_run_server.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/tests/server/test_streamable_http_no_redirect.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/tests/tools/test_tool_future_annotations.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/tests/utilities/__init__.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/tests/utilities/openapi/__init__.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/tests/utilities/openapi/conftest.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/tests/utilities/openapi/test_allof_requestbody.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/tests/utilities/openapi/test_direct_array_schemas.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/tests/utilities/openapi/test_director.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/tests/utilities/openapi/test_legacy_compatibility.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/tests/utilities/openapi/test_parser.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/tests/utilities/openapi/test_transitive_references.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/tests/utilities/test_cli.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/tests/utilities/test_tests.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/tests/utilities/test_typeadapter.py +0 -0
- {fastmcp-2.14.5 → fastmcp-3.0.0b1}/tests/utilities/test_version_check.py +0 -0
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: reviewing-code
|
|
3
|
+
description: Review code for quality, maintainability, and correctness. Use when reviewing pull requests, evaluating code changes, or providing feedback on implementations. Focuses on API design, patterns, and actionable feedback.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Code Review
|
|
7
|
+
|
|
8
|
+
## Philosophy
|
|
9
|
+
|
|
10
|
+
Code review maintains a healthy codebase while helping contributors succeed. The burden of proof is on the PR to demonstrate it adds value. Your job is to help it get there through actionable feedback.
|
|
11
|
+
|
|
12
|
+
**Critical**: A perfectly written PR that adds unwanted functionality must still be rejected. The code must advance the codebase in the intended direction. When rejecting, provide clear guidance on how to align with project goals.
|
|
13
|
+
|
|
14
|
+
Be friendly and welcoming while maintaining high standards. Call out what works well. When code needs improvement, be specific about why and how to fix it.
|
|
15
|
+
|
|
16
|
+
## What to Focus On
|
|
17
|
+
|
|
18
|
+
### Does this advance the codebase correctly?
|
|
19
|
+
|
|
20
|
+
Even perfect code for unwanted features should be rejected.
|
|
21
|
+
|
|
22
|
+
### API design and naming
|
|
23
|
+
|
|
24
|
+
Identify confusing patterns or non-idiomatic code:
|
|
25
|
+
- Parameter values that contradict defaults
|
|
26
|
+
- Mutable default arguments
|
|
27
|
+
- Unclear naming that will confuse future readers
|
|
28
|
+
- Inconsistent patterns with the rest of the codebase
|
|
29
|
+
|
|
30
|
+
### Specific improvements
|
|
31
|
+
|
|
32
|
+
Provide actionable feedback, not generic observations.
|
|
33
|
+
|
|
34
|
+
### User ergonomics
|
|
35
|
+
|
|
36
|
+
Think about the API from a user's perspective. Is it intuitive? What's the learning curve?
|
|
37
|
+
|
|
38
|
+
## For Agent Reviewers
|
|
39
|
+
|
|
40
|
+
1. **Read the full context**: Examine related files, tests, and documentation before reviewing
|
|
41
|
+
2. **Check against established patterns**: Look for consistency with codebase conventions
|
|
42
|
+
3. **Verify functionality claims**: Understand what the code actually does, not just what it claims
|
|
43
|
+
4. **Consider edge cases**: Think through error conditions and boundary scenarios
|
|
44
|
+
|
|
45
|
+
## What to Avoid
|
|
46
|
+
|
|
47
|
+
- Generic feedback without specifics
|
|
48
|
+
- Hypothetical problems unlikely to occur
|
|
49
|
+
- Nitpicking organizational choices without strong reason
|
|
50
|
+
- Summarizing what the PR already describes
|
|
51
|
+
- Star ratings or excessive emojis
|
|
52
|
+
- Bikeshedding style preferences when functionality is correct
|
|
53
|
+
- Requesting changes without suggesting solutions
|
|
54
|
+
- Focusing on personal coding style over project conventions
|
|
55
|
+
|
|
56
|
+
## Tone
|
|
57
|
+
|
|
58
|
+
- Acknowledge good decisions: "This API design is clean"
|
|
59
|
+
- Be direct but respectful
|
|
60
|
+
- Explain impact: "This will confuse users because..."
|
|
61
|
+
- Remember: Someone else maintains this code forever
|
|
62
|
+
|
|
63
|
+
## Decision Framework
|
|
64
|
+
|
|
65
|
+
Before approving, ask:
|
|
66
|
+
|
|
67
|
+
1. Does this PR achieve its stated purpose?
|
|
68
|
+
2. Is that purpose aligned with where the codebase should go?
|
|
69
|
+
3. Would I be comfortable maintaining this code?
|
|
70
|
+
4. Have I actually understood what it does, not just what it claims?
|
|
71
|
+
5. Does this change introduce technical debt?
|
|
72
|
+
|
|
73
|
+
If something needs work, your review should help it get there through specific, actionable feedback. If it's solving the wrong problem, say so clearly.
|
|
74
|
+
|
|
75
|
+
## Comment Examples
|
|
76
|
+
|
|
77
|
+
**Good comments:**
|
|
78
|
+
|
|
79
|
+
| Instead of | Write |
|
|
80
|
+
|------------|-------|
|
|
81
|
+
| "Add more tests" | "The `handle_timeout` method needs tests for the edge case where timeout=0" |
|
|
82
|
+
| "This API is confusing" | "The parameter name `data` is ambiguous - consider `message_content` to match the MCP specification" |
|
|
83
|
+
| "This could be better" | "This approach works but creates a circular dependency. Consider moving the validation to `utils/validators.py`" |
|
|
84
|
+
|
|
85
|
+
## Checklist
|
|
86
|
+
|
|
87
|
+
Before approving, verify:
|
|
88
|
+
|
|
89
|
+
- [ ] All required development workflow steps completed (uv sync, prek, pytest)
|
|
90
|
+
- [ ] Changes align with repository patterns and conventions
|
|
91
|
+
- [ ] API changes are documented and backwards-compatible where possible
|
|
92
|
+
- [ ] Error handling follows project patterns (specific exception types)
|
|
93
|
+
- [ ] Tests cover new functionality and edge cases
|
|
94
|
+
- [ ] The change advances the codebase in the intended direction
|
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: testing-python
|
|
3
|
+
description: Write and evaluate effective Python tests using pytest. Use when writing tests, reviewing test code, debugging test failures, or improving test coverage. Covers test design, fixtures, parameterization, mocking, and async testing.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Writing Effective Python Tests
|
|
7
|
+
|
|
8
|
+
## Core Principles
|
|
9
|
+
|
|
10
|
+
Every test should be **atomic**, **self-contained**, and test **single functionality**. A test that tests multiple things is harder to debug and maintain.
|
|
11
|
+
|
|
12
|
+
## Test Structure
|
|
13
|
+
|
|
14
|
+
### Atomic unit tests
|
|
15
|
+
|
|
16
|
+
Each test should verify a single behavior. The test name should tell you what's broken when it fails. Multiple assertions are fine when they all verify the same behavior.
|
|
17
|
+
|
|
18
|
+
```python
|
|
19
|
+
# Good: Name tells you what's broken
|
|
20
|
+
def test_user_creation_sets_defaults():
|
|
21
|
+
user = User(name="Alice")
|
|
22
|
+
assert user.role == "member"
|
|
23
|
+
assert user.id is not None
|
|
24
|
+
assert user.created_at is not None
|
|
25
|
+
|
|
26
|
+
# Bad: If this fails, what behavior is broken?
|
|
27
|
+
def test_user():
|
|
28
|
+
user = User(name="Alice")
|
|
29
|
+
assert user.role == "member"
|
|
30
|
+
user.promote()
|
|
31
|
+
assert user.role == "admin"
|
|
32
|
+
assert user.can_delete_others()
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
### Use parameterization for variations of the same concept
|
|
36
|
+
|
|
37
|
+
```python
|
|
38
|
+
import pytest
|
|
39
|
+
|
|
40
|
+
@pytest.mark.parametrize("input,expected", [
|
|
41
|
+
("hello", "HELLO"),
|
|
42
|
+
("World", "WORLD"),
|
|
43
|
+
("", ""),
|
|
44
|
+
("123", "123"),
|
|
45
|
+
])
|
|
46
|
+
def test_uppercase_conversion(input, expected):
|
|
47
|
+
assert input.upper() == expected
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
### Use separate tests for different functionality
|
|
51
|
+
|
|
52
|
+
Don't parameterize unrelated behaviors. If the test logic differs, write separate tests.
|
|
53
|
+
|
|
54
|
+
## Project-Specific Rules
|
|
55
|
+
|
|
56
|
+
### No async markers needed
|
|
57
|
+
|
|
58
|
+
This project uses `asyncio_mode = "auto"` globally. Write async tests without decorators:
|
|
59
|
+
|
|
60
|
+
```python
|
|
61
|
+
# Correct
|
|
62
|
+
async def test_async_operation():
|
|
63
|
+
result = await some_async_function()
|
|
64
|
+
assert result == expected
|
|
65
|
+
|
|
66
|
+
# Wrong - don't add this
|
|
67
|
+
@pytest.mark.asyncio
|
|
68
|
+
async def test_async_operation():
|
|
69
|
+
...
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
### Imports at module level
|
|
73
|
+
|
|
74
|
+
Put ALL imports at the top of the file:
|
|
75
|
+
|
|
76
|
+
```python
|
|
77
|
+
# Correct
|
|
78
|
+
import pytest
|
|
79
|
+
from fastmcp import FastMCP
|
|
80
|
+
from fastmcp.client import Client
|
|
81
|
+
|
|
82
|
+
async def test_something():
|
|
83
|
+
mcp = FastMCP("test")
|
|
84
|
+
...
|
|
85
|
+
|
|
86
|
+
# Wrong - no local imports
|
|
87
|
+
async def test_something():
|
|
88
|
+
from fastmcp import FastMCP # Don't do this
|
|
89
|
+
...
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
### Use in-memory transport for testing
|
|
93
|
+
|
|
94
|
+
Pass FastMCP servers directly to clients:
|
|
95
|
+
|
|
96
|
+
```python
|
|
97
|
+
from fastmcp import FastMCP
|
|
98
|
+
from fastmcp.client import Client
|
|
99
|
+
|
|
100
|
+
mcp = FastMCP("TestServer")
|
|
101
|
+
|
|
102
|
+
@mcp.tool
|
|
103
|
+
def greet(name: str) -> str:
|
|
104
|
+
return f"Hello, {name}!"
|
|
105
|
+
|
|
106
|
+
async def test_greet_tool():
|
|
107
|
+
async with Client(mcp) as client:
|
|
108
|
+
result = await client.call_tool("greet", {"name": "World"})
|
|
109
|
+
assert result[0].text == "Hello, World!"
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
Only use HTTP transport when explicitly testing network features.
|
|
113
|
+
|
|
114
|
+
### Inline snapshots for complex data
|
|
115
|
+
|
|
116
|
+
Use `inline-snapshot` for testing JSON schemas and complex structures:
|
|
117
|
+
|
|
118
|
+
```python
|
|
119
|
+
from inline_snapshot import snapshot
|
|
120
|
+
|
|
121
|
+
def test_schema_generation():
|
|
122
|
+
schema = generate_schema(MyModel)
|
|
123
|
+
assert schema == snapshot() # Will auto-populate on first run
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
Commands:
|
|
127
|
+
- `pytest --inline-snapshot=create` - populate empty snapshots
|
|
128
|
+
- `pytest --inline-snapshot=fix` - update after intentional changes
|
|
129
|
+
|
|
130
|
+
## Fixtures
|
|
131
|
+
|
|
132
|
+
### Prefer function-scoped fixtures
|
|
133
|
+
|
|
134
|
+
```python
|
|
135
|
+
@pytest.fixture
|
|
136
|
+
def client():
|
|
137
|
+
return Client()
|
|
138
|
+
|
|
139
|
+
async def test_with_client(client):
|
|
140
|
+
result = await client.ping()
|
|
141
|
+
assert result is not None
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
### Use `tmp_path` for file operations
|
|
145
|
+
|
|
146
|
+
```python
|
|
147
|
+
def test_file_writing(tmp_path):
|
|
148
|
+
file = tmp_path / "test.txt"
|
|
149
|
+
file.write_text("content")
|
|
150
|
+
assert file.read_text() == "content"
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
## Mocking
|
|
154
|
+
|
|
155
|
+
### Mock at the boundary
|
|
156
|
+
|
|
157
|
+
```python
|
|
158
|
+
from unittest.mock import patch, AsyncMock
|
|
159
|
+
|
|
160
|
+
async def test_external_api_call():
|
|
161
|
+
with patch("mymodule.external_client.fetch", new_callable=AsyncMock) as mock:
|
|
162
|
+
mock.return_value = {"data": "test"}
|
|
163
|
+
result = await my_function()
|
|
164
|
+
assert result == {"data": "test"}
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
### Don't mock what you own
|
|
168
|
+
|
|
169
|
+
Test your code with real implementations when possible. Mock external services, not internal classes.
|
|
170
|
+
|
|
171
|
+
## Test Naming
|
|
172
|
+
|
|
173
|
+
Use descriptive names that explain the scenario:
|
|
174
|
+
|
|
175
|
+
```python
|
|
176
|
+
# Good
|
|
177
|
+
def test_login_fails_with_invalid_password():
|
|
178
|
+
def test_user_can_update_own_profile():
|
|
179
|
+
def test_admin_can_delete_any_user():
|
|
180
|
+
|
|
181
|
+
# Bad
|
|
182
|
+
def test_login():
|
|
183
|
+
def test_update():
|
|
184
|
+
def test_delete():
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
## Error Testing
|
|
188
|
+
|
|
189
|
+
```python
|
|
190
|
+
import pytest
|
|
191
|
+
|
|
192
|
+
def test_raises_on_invalid_input():
|
|
193
|
+
with pytest.raises(ValueError, match="must be positive"):
|
|
194
|
+
calculate(-1)
|
|
195
|
+
|
|
196
|
+
async def test_async_raises():
|
|
197
|
+
with pytest.raises(ConnectionError):
|
|
198
|
+
await connect_to_invalid_host()
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
## Running Tests
|
|
202
|
+
|
|
203
|
+
```bash
|
|
204
|
+
uv run pytest -n auto # Run all tests in parallel
|
|
205
|
+
uv run pytest -n auto -x # Stop on first failure
|
|
206
|
+
uv run pytest path/to/test.py # Run specific file
|
|
207
|
+
uv run pytest -k "test_name" # Run tests matching pattern
|
|
208
|
+
uv run pytest -m "not integration" # Exclude integration tests
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
## Checklist
|
|
212
|
+
|
|
213
|
+
Before submitting tests:
|
|
214
|
+
- [ ] Each test tests one thing
|
|
215
|
+
- [ ] No `@pytest.mark.asyncio` decorators
|
|
216
|
+
- [ ] Imports at module level
|
|
217
|
+
- [ ] Descriptive test names
|
|
218
|
+
- [ ] Using in-memory transport (not HTTP) unless testing networking
|
|
219
|
+
- [ ] Parameterization for variations of same behavior
|
|
220
|
+
- [ ] Separate tests for different behaviors
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
---
|
|
2
|
+
description:
|
|
3
|
+
globs:
|
|
4
|
+
alwaysApply: true
|
|
5
|
+
---
|
|
6
|
+
There are four major MCP object types:
|
|
7
|
+
|
|
8
|
+
- Tools (src/tools/)
|
|
9
|
+
- Resources (src/resources/)
|
|
10
|
+
- Resource Templates (src/resources/)
|
|
11
|
+
- Prompts (src/prompts)
|
|
12
|
+
|
|
13
|
+
While these have slightly different semantics and implementations, in general changes that affect interactions with any one (like adding tags, importing, etc.) will need to be adopted, applied, and tested on all others. Note that while resources and resource templates are different objects, they are both in `src/resources/`.
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
name: Martian Issue Triage
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
issues:
|
|
5
|
+
types: [opened, labeled]
|
|
6
|
+
|
|
7
|
+
jobs:
|
|
8
|
+
martian-issue-triage:
|
|
9
|
+
if: |
|
|
10
|
+
(github.event.action == 'opened' && github.actor == 'strawgate') ||
|
|
11
|
+
(github.event.action == 'labeled' && github.event.label.name == 'triage-martian')
|
|
12
|
+
|
|
13
|
+
concurrency:
|
|
14
|
+
group: triage-martian-${{ github.event.issue.number }}
|
|
15
|
+
cancel-in-progress: true
|
|
16
|
+
|
|
17
|
+
runs-on: ubuntu-latest
|
|
18
|
+
timeout-minutes: 10
|
|
19
|
+
permissions:
|
|
20
|
+
contents: read
|
|
21
|
+
issues: write
|
|
22
|
+
pull-requests: read
|
|
23
|
+
id-token: write
|
|
24
|
+
|
|
25
|
+
steps:
|
|
26
|
+
- name: Checkout base repository
|
|
27
|
+
uses: actions/checkout@v6
|
|
28
|
+
with:
|
|
29
|
+
repository: ${{ github.repository }}
|
|
30
|
+
ref: ${{ github.event.repository.default_branch }}
|
|
31
|
+
|
|
32
|
+
# Install UV package manager
|
|
33
|
+
- name: Install UV
|
|
34
|
+
uses: astral-sh/setup-uv@v7
|
|
35
|
+
with:
|
|
36
|
+
enable-cache: true
|
|
37
|
+
cache-dependency-glob: "uv.lock"
|
|
38
|
+
|
|
39
|
+
- name: Generate Marvin App token
|
|
40
|
+
id: marvin-token
|
|
41
|
+
uses: actions/create-github-app-token@v2
|
|
42
|
+
with:
|
|
43
|
+
app-id: ${{ secrets.MARVIN_APP_ID }}
|
|
44
|
+
private-key: ${{ secrets.MARVIN_APP_PRIVATE_KEY }}
|
|
45
|
+
|
|
46
|
+
- name: Set triage prompt
|
|
47
|
+
id: triage-prompt
|
|
48
|
+
run: |
|
|
49
|
+
cat >> $GITHUB_OUTPUT << 'EOF'
|
|
50
|
+
PROMPT<<PROMPT_END
|
|
51
|
+
You're an issue triage assistant for FastMCP, a Python framework for building Model Context Protocol servers and clients.
|
|
52
|
+
|
|
53
|
+
# IMPORTANT RULES
|
|
54
|
+
1. You will not make branches or pull requests. Your ONLY action will be investigating the issue, locating related issues,
|
|
55
|
+
pull requests, and files in the repository and reporting your findings.
|
|
56
|
+
2. You will identify the issue type (bug/feature/question) up front and tailor the Recommendation (e.g., for questions: answer directly + links; for bugs: point to failing tests/lines).
|
|
57
|
+
3. You will avoid speculation and only assert facts that are deeply rooted (traceable) to the codebase, language/framework conventions, related issues, related pull requests, etc.
|
|
58
|
+
4. The main branch of the repository has been cloned locally, but changes will not be accepted and you are not allowed to make pull requests or other changes. You can search the local repository for relevant code. You will use the available MCP Server tools identify related issues and pull requests (search_issues and search_pull_requests) and you can use search_code to look at the code in relevant dependent packages. For example, you can use search_code to look at the underlying SDK `https://github.com/modelcontextprotocol/python-sdk` to see how it implements a certain class or function relevant to the issue at hand.
|
|
59
|
+
|
|
60
|
+
# Getting Started
|
|
61
|
+
1. Call the generate_agents_md tool to get a high-level summary of the project you're working in
|
|
62
|
+
2. Get the issue ${{ github.event.issue.number }} in the GitHub repository: ${{ github.repository }}.
|
|
63
|
+
3. Use the search_issues and search_pull_requests tools to scour the repository for actually related issues and pull requests
|
|
64
|
+
4. Call the search_code, get_files, etc. tools to search the repository to identify the related classes, methods, docs, tests, etc that are relevant to the issue.
|
|
65
|
+
|
|
66
|
+
# Providing a Great Response
|
|
67
|
+
Your number one priority is to provide a great response to the issue. A great response is a response that is clear, concise, accurate, and actionable. You will avoid long paragraphs, flowery language, and overly verbose responses. Your readers have limited time and attention, so you will be concise and to the point.
|
|
68
|
+
|
|
69
|
+
In priority order your goal is to:
|
|
70
|
+
1. Provide context about the request or issue (related issues, pull requests, files, etc.)
|
|
71
|
+
2. Layout a single high-quality and actionable recommendation for how to address the issue based on your knowledge of the project, codebase, and issue
|
|
72
|
+
3. Provide an high quality and detailed plan that a junior developer could follow to implement the recommendation
|
|
73
|
+
|
|
74
|
+
Populate the following sections in your response:
|
|
75
|
+
Recommendation (or “No recommendation” with reason)
|
|
76
|
+
Findings
|
|
77
|
+
Detailed Action Plan
|
|
78
|
+
Related Items
|
|
79
|
+
Related Files
|
|
80
|
+
Related Webpages
|
|
81
|
+
|
|
82
|
+
You may not be able to do all of these things, sometimes you may find that all you can do is provide in-depth context of the issue and related items. That's perfectly acceptable and expected. Your performance is judged by how accurate your findings are, do the investigation required to have high confidence in your findings and recommendations. "I don't know" or "I'm unable to recommend a course of action" is better than a bad or wrong answer.
|
|
83
|
+
|
|
84
|
+
When formulating your response, you will never "bury the lede", you will always provide a clear and concise tl;dr as the first thing in your response. As your response grows in length you can organize the more detailed parts of your response collapsible sections using <details> and <summary> tags. You shouldn't put everything in collapsible sections, especially if the response is short. Use your discretion to determine when to use collapsible sections to avoid overwhelming the reader with too much detail -- think of them like an appendix that can be expanded if the reader is interested.
|
|
85
|
+
|
|
86
|
+
# Example output for "Recommendation" part of the response
|
|
87
|
+
PR #654 already implements the requested feature but is incomplete. The Pull Request is not in a mergeable state yet, the remaining work should be completed: 1) update the Calculator.divide method to utilize the new DivisionByZeroError or the safe_divide function, and 2) update the tests to ensure that the Calculator.divide method raises the new DivisionByZeroError when the divisor is 0.
|
|
88
|
+
|
|
89
|
+
<details>
|
|
90
|
+
<summary>Findings</summary>
|
|
91
|
+
...details from the code analysis that are relevant to the issue and the recommendation...
|
|
92
|
+
</details>
|
|
93
|
+
|
|
94
|
+
<details>
|
|
95
|
+
<summary>Detailed Action Plan</summary>
|
|
96
|
+
...a detailed plan that a junior developer could follow to implement the recommendation...
|
|
97
|
+
</details>
|
|
98
|
+
|
|
99
|
+
# Example Output for "Related Items" part of the response
|
|
100
|
+
|
|
101
|
+
<details>
|
|
102
|
+
<summary>Related Issues and Pull Requests</summary>
|
|
103
|
+
|
|
104
|
+
| Repository | Issue or PR | Relevance |
|
|
105
|
+
| --- | --- | --- |
|
|
106
|
+
| jlowin/fastmcp | [Add matrix operations support](https://github.com/jlowin/fastmcp/pull/680) | This pull request directly addresses the feature request for adding matrix operations to the calculator. |
|
|
107
|
+
| jlowin/fastmcp | [Add matrix operations support](https://github.com/jlowin/fastmcp/issues/681) | This issue directly addresses the feature request for adding matrix operations to the calculator. |
|
|
108
|
+
</details>
|
|
109
|
+
|
|
110
|
+
<details>
|
|
111
|
+
<summary>Related Files</summary>
|
|
112
|
+
|
|
113
|
+
| Repository | File | Relevance | Sections |
|
|
114
|
+
| --- | --- | --- | --- |
|
|
115
|
+
| modelcontextprotocol/python-sdk | [test_calculator.py](https://github.com/modelcontextprotocol/python-sdk/blob/main/test_calculator.py) | This file contains the test cases for the Calculator class, including a test that specifically asserts a ValueError is raised for division by zero, confirming the current intended behavior. | [25-27](https://github.com/modelcontextprotocol/python-sdk/blob/main/test_calculator.py#L25-L27) |
|
|
116
|
+
| modelcontextprotocol/python-sdk | [calculator.py](https://github.com/modelcontextprotocol/python-sdk/blob/main/calculator.py) | This file contains the implementation of the Calculator class, specifically the `divide` method which raises the ValueError when dividing by zero, matching the bug report. | [29-32](https://github.com/modelcontextprotocol/python-sdk/blob/main/calculator.py#L29-L32) |
|
|
117
|
+
</details>
|
|
118
|
+
|
|
119
|
+
<details>
|
|
120
|
+
<summary>Related Webpages</summary>
|
|
121
|
+
| Name | URL | Relevance |
|
|
122
|
+
| --- | --- | --- |
|
|
123
|
+
| Handling Division by Zero Best Practices | https://my-blog-about-division-by-zero.com/handling+division+by+zero+in+calculator | This webpage provides general best practices for handling division by zero in calculator applications and in Python, which is directly relevant to the issue and potential solutions. |
|
|
124
|
+
</details>
|
|
125
|
+
|
|
126
|
+
PROMPT_END
|
|
127
|
+
EOF
|
|
128
|
+
|
|
129
|
+
- name: Setup GitHub MCP Server
|
|
130
|
+
run: |
|
|
131
|
+
mkdir -p /tmp/mcp-config
|
|
132
|
+
cat > /tmp/mcp-config/mcp-servers.json << 'EOF'
|
|
133
|
+
{
|
|
134
|
+
"mcpServers": {
|
|
135
|
+
"repository-summary": {
|
|
136
|
+
"type": "http",
|
|
137
|
+
"url": "https://agents-md-generator.fastmcp.app/mcp"
|
|
138
|
+
},
|
|
139
|
+
"code-search": {
|
|
140
|
+
"type": "http",
|
|
141
|
+
"url": "https://public-code-search.fastmcp.app/mcp"
|
|
142
|
+
},
|
|
143
|
+
"github-research": {
|
|
144
|
+
"type": "stdio",
|
|
145
|
+
"command": "uvx",
|
|
146
|
+
"args": [
|
|
147
|
+
"github-research-mcp"
|
|
148
|
+
],
|
|
149
|
+
"env": {
|
|
150
|
+
"DISABLE_SUMMARIES": "true",
|
|
151
|
+
"GITHUB_PERSONAL_ACCESS_TOKEN": "${{ steps.marvin-token.outputs.token }}"
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
EOF
|
|
157
|
+
|
|
158
|
+
- name: Clean up stale Claude locks
|
|
159
|
+
run: rm -rf ~/.claude/.locks ~/.local/state/claude/locks || true
|
|
160
|
+
|
|
161
|
+
- name: Run Martian for Issue Triage
|
|
162
|
+
uses: anthropics/claude-code-action@v1
|
|
163
|
+
with:
|
|
164
|
+
github_token: ${{ steps.marvin-token.outputs.token }}
|
|
165
|
+
bot_name: "Marvin Context Protocol"
|
|
166
|
+
prompt: ${{ steps.triage-prompt.outputs.PROMPT }}
|
|
167
|
+
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY_FOR_CI }}
|
|
168
|
+
track_progress: true
|
|
169
|
+
claude_args: |
|
|
170
|
+
--model claude-sonnet-4-5-20250929
|
|
171
|
+
--allowedTools mcp__repository-summary,mcp__code-search__search_code,mcp__github-research__get_repository,mcp__github-research__get_issue,mcp__github-research__get_pull_request,mcp__github-research__search_issues,mcp__github-research__search_pull_requests,mcp__github-research__get_files
|
|
172
|
+
--mcp-config /tmp/mcp-config/mcp-servers.json
|
|
173
|
+
settings: |
|
|
174
|
+
{
|
|
175
|
+
"GH_TOKEN": "${{ steps.marvin-token.outputs.token }}"
|
|
176
|
+
}
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
name: Marvin Test Failure Analysis
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
workflow_run:
|
|
5
|
+
workflows: ["Tests", "Run static analysis"]
|
|
6
|
+
types:
|
|
7
|
+
- completed
|
|
8
|
+
|
|
9
|
+
concurrency:
|
|
10
|
+
group: marvin-test-failure-${{ github.event.workflow_run.head_branch }}
|
|
11
|
+
cancel-in-progress: true
|
|
12
|
+
|
|
13
|
+
jobs:
|
|
14
|
+
martian-test-failure:
|
|
15
|
+
# Only run if the test workflow failed
|
|
16
|
+
if: ${{ github.event.workflow_run.conclusion == 'failure' }}
|
|
17
|
+
runs-on: ubuntu-latest
|
|
18
|
+
permissions:
|
|
19
|
+
contents: read
|
|
20
|
+
pull-requests: write
|
|
21
|
+
issues: read
|
|
22
|
+
id-token: write
|
|
23
|
+
actions: read # Required for Claude to read CI results
|
|
24
|
+
steps:
|
|
25
|
+
- name: Checkout repository
|
|
26
|
+
uses: actions/checkout@v6
|
|
27
|
+
with:
|
|
28
|
+
fetch-depth: 1
|
|
29
|
+
|
|
30
|
+
- name: Generate Marvin App token
|
|
31
|
+
id: marvin-token
|
|
32
|
+
uses: actions/create-github-app-token@v2
|
|
33
|
+
with:
|
|
34
|
+
app-id: ${{ secrets.MARVIN_APP_ID }}
|
|
35
|
+
private-key: ${{ secrets.MARVIN_APP_PRIVATE_KEY }}
|
|
36
|
+
|
|
37
|
+
- name: Set up Python 3.10
|
|
38
|
+
uses: actions/setup-python@v6
|
|
39
|
+
with:
|
|
40
|
+
python-version: "3.10"
|
|
41
|
+
|
|
42
|
+
# Install UV package manager
|
|
43
|
+
- name: Install UV
|
|
44
|
+
uses: astral-sh/setup-uv@v7
|
|
45
|
+
|
|
46
|
+
# Install dependencies
|
|
47
|
+
- name: Install dependencies
|
|
48
|
+
run: uv sync --all-packages --group dev
|
|
49
|
+
|
|
50
|
+
- name: Set analysis prompt
|
|
51
|
+
id: analysis-prompt
|
|
52
|
+
run: |
|
|
53
|
+
cat >> $GITHUB_OUTPUT << 'EOF'
|
|
54
|
+
PROMPT<<PROMPT_END
|
|
55
|
+
You're a test failure analysis assistant for FastMCP, a Python framework for building Model Context Protocol servers and clients.
|
|
56
|
+
|
|
57
|
+
# Your Task
|
|
58
|
+
A GitHub Actions workflow has failed. Your job is to:
|
|
59
|
+
1. Analyze the test failure(s) to understand what went wrong
|
|
60
|
+
2. Identify the root cause of the failure(s)
|
|
61
|
+
3. Suggest a clear, actionable solution to fix the failure(s)
|
|
62
|
+
|
|
63
|
+
# Getting Started
|
|
64
|
+
1. Call the generate_agents_md tool to get a high-level summary of the project
|
|
65
|
+
2. Get the pull request associated with this workflow run from the GitHub repository: ${{ github.repository }}
|
|
66
|
+
- The workflow run ID is: ${{ github.event.workflow_run.id }}
|
|
67
|
+
- The workflow run was triggered by: ${{ github.event.workflow_run.event }}
|
|
68
|
+
- Use GitHub MCP tools to get PR details and workflow run information
|
|
69
|
+
3. Use the GitHub MCP tools to fetch job logs and failure information:
|
|
70
|
+
- Use get_workflow_run to get details about the failed workflow
|
|
71
|
+
- Use list_workflow_jobs to see which jobs failed
|
|
72
|
+
- Use get_job_logs with failed_only=true to get logs for failed jobs
|
|
73
|
+
- Use summarize_run_log_failures to get an AI summary of what failed
|
|
74
|
+
4. Analyze the failures to understand the root cause
|
|
75
|
+
5. Search the codebase for relevant files, tests, and implementations
|
|
76
|
+
|
|
77
|
+
# Your Response
|
|
78
|
+
Post a comment on the pull request with your analysis. Your comment should include:
|
|
79
|
+
|
|
80
|
+
## Test Failure Analysis
|
|
81
|
+
|
|
82
|
+
**Summary**: A brief 1-2 sentence summary of what failed.
|
|
83
|
+
|
|
84
|
+
**Root Cause**: A clear explanation of why the tests failed, based on your analysis of the logs and code.
|
|
85
|
+
|
|
86
|
+
**Suggested Solution**: Specific, actionable steps to fix the failure(s). Include:
|
|
87
|
+
- Which files need to be modified
|
|
88
|
+
- What changes are needed
|
|
89
|
+
- Why these changes will fix the issue
|
|
90
|
+
|
|
91
|
+
<details>
|
|
92
|
+
<summary>Detailed Analysis</summary>
|
|
93
|
+
|
|
94
|
+
Include here:
|
|
95
|
+
- Relevant log excerpts showing the failure
|
|
96
|
+
- Code snippets that are causing the issue
|
|
97
|
+
- Any related issues or PRs that might be relevant
|
|
98
|
+
</details>
|
|
99
|
+
|
|
100
|
+
<details>
|
|
101
|
+
<summary>Related Files</summary>
|
|
102
|
+
|
|
103
|
+
List files that are relevant to the failure with brief explanations of their relevance.
|
|
104
|
+
</details>
|
|
105
|
+
|
|
106
|
+
# Important Guidelines
|
|
107
|
+
- Be concise and actionable - developers want to quickly understand and fix the issue. Provide
|
|
108
|
+
additional context, references, etc in collapsible details blocks to ensure that the comment you're adding
|
|
109
|
+
is short and easy to read but additional information is a click away.
|
|
110
|
+
- Focus on facts from the logs and code, not speculation
|
|
111
|
+
- If you can't determine the root cause, say so clearly
|
|
112
|
+
- If your only suggestion is a bad suggestion (disable the test, change the timeout, etc), indicate that you've run out of ideas and
|
|
113
|
+
that they probably don't want to do that.
|
|
114
|
+
- Provide specific file names, line numbers, and code references when possible
|
|
115
|
+
- You can run make commands (e.g., `make lint`, `make typecheck`, `make sync`) to build, test, or lint the code
|
|
116
|
+
- You can also run git commands (e.g., `git status`, `git log`, `git diff`) to inspect the repository
|
|
117
|
+
- You can use WebSearch and WebFetch to research errors, stack traces, or related issues
|
|
118
|
+
- For bash commands, you are limited to make and git commands only
|
|
119
|
+
|
|
120
|
+
# CRITICAL: ANGRY USERS
|
|
121
|
+
**IMPORTANT**: If the user is angry with you, the triage bot, don't respond. Just exit immediately without further action.
|
|
122
|
+
If at any point in the conversation the user has asked you to stop replying to the thread, just exit immediately.
|
|
123
|
+
|
|
124
|
+
If you are posting the same suggestion as you have previously made, do not post the suggestion again.
|
|
125
|
+
|
|
126
|
+
# IMPORTANT: EDIT YOUR COMMENT
|
|
127
|
+
Do not post a new comment every time you triage a failing workflow. If a previous comment has been posted by you (marvin)
|
|
128
|
+
in a previous triage, edit that comment do not add a new comment for each failure. Be sure to include a note that you've edited
|
|
129
|
+
your comment to reflect the latest analysis. Don't worry about keeping the old content around, there's comment history for
|
|
130
|
+
that.
|
|
131
|
+
|
|
132
|
+
# Problems Encountered
|
|
133
|
+
If you encounter any problems during your analysis (e.g., unable to fetch logs, tools not working), document them clearly so the team knows what limitations you faced.
|
|
134
|
+
PROMPT_END
|
|
135
|
+
EOF
|
|
136
|
+
|
|
137
|
+
- name: Setup GitHub MCP Server
|
|
138
|
+
run: |
|
|
139
|
+
mkdir -p /tmp/mcp-config
|
|
140
|
+
cat > /tmp/mcp-config/mcp-servers.json << 'EOF'
|
|
141
|
+
{
|
|
142
|
+
"mcpServers": {
|
|
143
|
+
"repository-summary": {
|
|
144
|
+
"type": "http",
|
|
145
|
+
"url": "https://agents-md-generator.fastmcp.app/mcp"
|
|
146
|
+
},
|
|
147
|
+
"code-search": {
|
|
148
|
+
"type": "http",
|
|
149
|
+
"url": "https://public-code-search.fastmcp.app/mcp"
|
|
150
|
+
},
|
|
151
|
+
"github-research": {
|
|
152
|
+
"type": "stdio",
|
|
153
|
+
"command": "uvx",
|
|
154
|
+
"args": [
|
|
155
|
+
"github-research-mcp"
|
|
156
|
+
],
|
|
157
|
+
"env": {
|
|
158
|
+
"DISABLE_SUMMARIES": "true",
|
|
159
|
+
"GITHUB_PERSONAL_ACCESS_TOKEN": "${{ secrets.GITHUB_TOKEN }}"
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
EOF
|
|
165
|
+
|
|
166
|
+
- name: Clean up stale Claude locks
|
|
167
|
+
run: rm -rf ~/.claude/.locks ~/.local/state/claude/locks || true
|
|
168
|
+
|
|
169
|
+
- name: Run Claude Code
|
|
170
|
+
id: claude
|
|
171
|
+
uses: anthropics/claude-code-action@v1
|
|
172
|
+
with:
|
|
173
|
+
github_token: ${{ steps.marvin-token.outputs.token }}
|
|
174
|
+
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY_FOR_CI }}
|
|
175
|
+
bot_name: "Marvin Context Protocol"
|
|
176
|
+
|
|
177
|
+
claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
|
|
178
|
+
|
|
179
|
+
additional_permissions: |
|
|
180
|
+
actions: read
|
|
181
|
+
|
|
182
|
+
prompt: ${{ steps.analysis-prompt.outputs.PROMPT }}
|
|
183
|
+
claude_args: |
|
|
184
|
+
--allowed-tools mcp__repository-summary,mcp__code-search,mcp__github-research,WebSearch,WebFetch,Bash(make:*,git:*)
|
|
185
|
+
--mcp-config /tmp/mcp-config/mcp-servers.json
|