fastmcp 2.13.1__tar.gz → 2.13.3__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.
Files changed (686) hide show
  1. {fastmcp-2.13.1 → fastmcp-2.13.3}/.github/workflows/auto-close-duplicates.yml +1 -1
  2. {fastmcp-2.13.1 → fastmcp-2.13.3}/.github/workflows/auto-close-needs-mre.yml +1 -1
  3. {fastmcp-2.13.1 → fastmcp-2.13.3}/.github/workflows/martian-issue-triage.yml +1 -1
  4. {fastmcp-2.13.1 → fastmcp-2.13.3}/.github/workflows/martian-test-failure.yml +3 -3
  5. {fastmcp-2.13.1 → fastmcp-2.13.3}/.github/workflows/marvin-dedupe-issues.yml +1 -1
  6. {fastmcp-2.13.1 → fastmcp-2.13.3}/.github/workflows/marvin-label-triage.yml +1 -1
  7. {fastmcp-2.13.1 → fastmcp-2.13.3}/.github/workflows/marvin.yml +1 -1
  8. {fastmcp-2.13.1 → fastmcp-2.13.3}/.github/workflows/publish.yml +1 -1
  9. {fastmcp-2.13.1 → fastmcp-2.13.3}/.github/workflows/run-static.yml +1 -1
  10. {fastmcp-2.13.1 → fastmcp-2.13.3}/.github/workflows/run-tests.yml +3 -3
  11. {fastmcp-2.13.1 → fastmcp-2.13.3}/.github/workflows/update-config-schema.yml +1 -1
  12. {fastmcp-2.13.1 → fastmcp-2.13.3}/.github/workflows/update-sdk-docs.yml +1 -1
  13. {fastmcp-2.13.1 → fastmcp-2.13.3}/PKG-INFO +4 -3
  14. {fastmcp-2.13.1 → fastmcp-2.13.3}/README.md +1 -0
  15. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/deployment/http.mdx +2 -1
  16. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/docs.json +2 -0
  17. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/integrations/azure.mdx +30 -0
  18. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/integrations/descope.mdx +26 -34
  19. fastmcp-2.13.3/docs/integrations/discord.mdx +255 -0
  20. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/integrations/scalekit.mdx +25 -18
  21. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-cli-install-cursor.mdx +4 -4
  22. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-client-auth-oauth.mdx +12 -12
  23. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-client-client.mdx +14 -5
  24. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-server-auth-auth.mdx +14 -14
  25. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-server-auth-oauth_proxy.mdx +21 -21
  26. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-server-auth-oidc_proxy.mdx +2 -2
  27. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-server-auth-providers-descope.mdx +11 -11
  28. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-server-auth-providers-in_memory.mdx +8 -8
  29. fastmcp-2.13.3/docs/python-sdk/fastmcp-server-auth-providers-oci.mdx +103 -0
  30. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-server-auth-providers-scalekit.mdx +4 -5
  31. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-server-auth-providers-supabase.mdx +11 -5
  32. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-server-context.mdx +50 -28
  33. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-server-dependencies.mdx +4 -4
  34. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-server-server.mdx +29 -27
  35. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-tools-tool.mdx +15 -15
  36. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-utilities-logging.mdx +1 -1
  37. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-utilities-types.mdx +22 -9
  38. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/servers/auth/oauth-proxy.mdx +18 -0
  39. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/servers/auth/oidc-proxy.mdx +14 -0
  40. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/servers/icons.mdx +1 -1
  41. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/servers/prompts.mdx +1 -1
  42. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/servers/resources.mdx +1 -1
  43. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/servers/server.mdx +2 -2
  44. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/servers/tools.mdx +4 -2
  45. fastmcp-2.13.3/examples/auth/discord_oauth/README.md +33 -0
  46. fastmcp-2.13.3/examples/auth/discord_oauth/client.py +32 -0
  47. fastmcp-2.13.3/examples/auth/discord_oauth/server.py +35 -0
  48. {fastmcp-2.13.1 → fastmcp-2.13.3}/examples/auth/scalekit_oauth/README.md +5 -4
  49. {fastmcp-2.13.1 → fastmcp-2.13.3}/examples/auth/scalekit_oauth/server.py +13 -3
  50. {fastmcp-2.13.1 → fastmcp-2.13.3}/pyproject.toml +2 -2
  51. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/server/auth/oauth_proxy.py +152 -85
  52. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/server/auth/oidc_proxy.py +31 -3
  53. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/server/auth/providers/azure.py +96 -10
  54. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/server/auth/providers/descope.py +82 -23
  55. fastmcp-2.13.3/src/fastmcp/server/auth/providers/discord.py +308 -0
  56. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/server/auth/providers/google.py +18 -0
  57. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/server/auth/providers/scalekit.py +76 -17
  58. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/server/dependencies.py +26 -4
  59. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/server/proxy.py +10 -0
  60. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/server/server.py +4 -1
  61. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/tools/tool.py +19 -1
  62. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/tools/tool_transform.py +3 -1
  63. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/utilities/types.py +49 -0
  64. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/utilities/ui.py +11 -2
  65. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/server/auth/providers/test_azure.py +397 -5
  66. fastmcp-2.13.3/tests/server/auth/providers/test_descope.py +264 -0
  67. fastmcp-2.13.3/tests/server/auth/providers/test_discord.py +119 -0
  68. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/server/auth/providers/test_google.py +43 -0
  69. fastmcp-2.13.3/tests/server/auth/providers/test_scalekit.py +259 -0
  70. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/server/auth/test_oauth_consent_flow.py +176 -0
  71. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/server/auth/test_oidc_proxy.py +93 -0
  72. fastmcp-2.13.3/tests/server/http/test_stale_access_token.py +159 -0
  73. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/server/middleware/test_caching.py +2 -2
  74. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/server/proxy/test_proxy_server.py +35 -4
  75. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/server/test_tool_exclude_args.py +30 -0
  76. {fastmcp-2.13.1 → fastmcp-2.13.3}/uv.lock +9 -136
  77. fastmcp-2.13.1/tests/server/auth/providers/test_descope.py +0 -163
  78. fastmcp-2.13.1/tests/server/auth/providers/test_scalekit.py +0 -155
  79. {fastmcp-2.13.1 → fastmcp-2.13.3}/.ccignore +0 -0
  80. {fastmcp-2.13.1 → fastmcp-2.13.3}/.cursor/rules/core-mcp-objects.mdc +0 -0
  81. {fastmcp-2.13.1 → fastmcp-2.13.3}/.cursor/worktrees.json +0 -0
  82. {fastmcp-2.13.1 → fastmcp-2.13.3}/.github/ISSUE_TEMPLATE/bug.yml +0 -0
  83. {fastmcp-2.13.1 → fastmcp-2.13.3}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  84. {fastmcp-2.13.1 → fastmcp-2.13.3}/.github/ISSUE_TEMPLATE/enhancement.yml +0 -0
  85. {fastmcp-2.13.1 → fastmcp-2.13.3}/.github/copilot-instructions.md +0 -0
  86. {fastmcp-2.13.1 → fastmcp-2.13.3}/.github/dependabot.yml +0 -0
  87. {fastmcp-2.13.1 → fastmcp-2.13.3}/.github/pull_request_template.md +0 -0
  88. {fastmcp-2.13.1 → fastmcp-2.13.3}/.github/release.yml +0 -0
  89. {fastmcp-2.13.1 → fastmcp-2.13.3}/.gitignore +0 -0
  90. {fastmcp-2.13.1 → fastmcp-2.13.3}/.pre-commit-config.yaml +0 -0
  91. {fastmcp-2.13.1 → fastmcp-2.13.3}/AGENTS.md +0 -0
  92. {fastmcp-2.13.1 → fastmcp-2.13.3}/CLAUDE.md +0 -0
  93. {fastmcp-2.13.1 → fastmcp-2.13.3}/CODE_OF_CONDUCT.md +0 -0
  94. {fastmcp-2.13.1 → fastmcp-2.13.3}/LICENSE +0 -0
  95. {fastmcp-2.13.1 → fastmcp-2.13.3}/SECURITY.md +0 -0
  96. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/.ccignore +0 -0
  97. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/.cursor/rules/mintlify.mdc +0 -0
  98. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/assets/brand/blue-logo.png +0 -0
  99. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/assets/brand/f-watercolor-waves-dark.png +0 -0
  100. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/assets/brand/f-watercolor-waves.png +0 -0
  101. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/assets/brand/favicon.svg +0 -0
  102. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/assets/brand/thumbnail-background.png +0 -0
  103. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/assets/brand/wordmark-padded.png +0 -0
  104. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/assets/brand/wordmark-watercolor-rainbow-dark.png +0 -0
  105. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/assets/brand/wordmark-watercolor-rainbow.png +0 -0
  106. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/assets/brand/wordmark-watercolor-waves-dark.png +0 -0
  107. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/assets/brand/wordmark-watercolor-waves.png +0 -0
  108. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/assets/brand/wordmark-white-padded.png +0 -0
  109. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/assets/brand/wordmark-white.png +0 -0
  110. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/assets/brand/wordmark.png +0 -0
  111. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/assets/images/fastmcp_cloud/connect.png +0 -0
  112. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/assets/images/fastmcp_cloud/create_project.png +0 -0
  113. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/assets/images/fastmcp_cloud/deployment.png +0 -0
  114. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/assets/images/fastmcp_cloud/quickstart.png +0 -0
  115. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/assets/images/oauth-proxy-consent-screen.png +0 -0
  116. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/assets/images/tutorial-rest-api-result.png +0 -0
  117. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/assets/schemas/mcp_server_config/latest.json +0 -0
  118. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/assets/schemas/mcp_server_config/v1.json +0 -0
  119. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/assets/updates/release-2-7.png +0 -0
  120. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/changelog.mdx +0 -0
  121. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/clients/auth/bearer.mdx +0 -0
  122. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/clients/auth/oauth.mdx +0 -0
  123. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/clients/client.mdx +0 -0
  124. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/clients/elicitation.mdx +0 -0
  125. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/clients/logging.mdx +0 -0
  126. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/clients/messages.mdx +0 -0
  127. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/clients/progress.mdx +0 -0
  128. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/clients/prompts.mdx +0 -0
  129. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/clients/resources.mdx +0 -0
  130. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/clients/roots.mdx +0 -0
  131. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/clients/sampling.mdx +0 -0
  132. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/clients/tools.mdx +0 -0
  133. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/clients/transports.mdx +0 -0
  134. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/community/README.md +0 -0
  135. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/community/showcase.mdx +0 -0
  136. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/css/banner.css +0 -0
  137. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/css/python-sdk.css +0 -0
  138. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/css/style.css +0 -0
  139. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/css/version-badge.css +0 -0
  140. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/deployment/fastmcp-cloud.mdx +0 -0
  141. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/deployment/running-server.mdx +0 -0
  142. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/deployment/server-configuration.mdx +0 -0
  143. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/development/contributing.mdx +0 -0
  144. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/development/releases.mdx +0 -0
  145. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/development/tests.mdx +0 -0
  146. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/development/upgrade-guide.mdx +0 -0
  147. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/getting-started/installation.mdx +0 -0
  148. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/getting-started/quickstart.mdx +0 -0
  149. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/getting-started/welcome.mdx +0 -0
  150. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/integrations/anthropic.mdx +0 -0
  151. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/integrations/auth0.mdx +0 -0
  152. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/integrations/authkit.mdx +0 -0
  153. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/integrations/aws-cognito.mdx +0 -0
  154. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/integrations/chatgpt.mdx +0 -0
  155. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/integrations/claude-code.mdx +0 -0
  156. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/integrations/claude-desktop.mdx +0 -0
  157. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/integrations/cursor-install-mcp.png +0 -0
  158. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/integrations/cursor.mdx +0 -0
  159. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/integrations/eunomia-authorization.mdx +0 -0
  160. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/integrations/fastapi.mdx +0 -0
  161. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/integrations/gemini-cli.mdx +0 -0
  162. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/integrations/gemini.mdx +0 -0
  163. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/integrations/github.mdx +0 -0
  164. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/integrations/google.mdx +0 -0
  165. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/integrations/images/authkit/enable_dcr.png +0 -0
  166. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/integrations/images/oci/ociaddapplication.png +0 -0
  167. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/integrations/images/oci/ocieditdomainsettings.png +0 -0
  168. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/integrations/images/oci/ocieditdomainsettingsbutton.png +0 -0
  169. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/integrations/images/oci/ocioauthconfiguration.png +0 -0
  170. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/integrations/images/permit/abac_condition_example.png +0 -0
  171. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/integrations/images/permit/abac_policy_example.png +0 -0
  172. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/integrations/images/permit/policy_mapping.png +0 -0
  173. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/integrations/images/permit/role_assignement.png +0 -0
  174. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/integrations/mcp-json-configuration.mdx +0 -0
  175. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/integrations/oci.mdx +0 -0
  176. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/integrations/openai.mdx +0 -0
  177. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/integrations/openapi.mdx +0 -0
  178. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/integrations/permit.mdx +0 -0
  179. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/integrations/workos.mdx +0 -0
  180. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/patterns/cli.mdx +0 -0
  181. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/patterns/contrib.mdx +0 -0
  182. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/patterns/decorating-methods.mdx +0 -0
  183. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/patterns/testing.mdx +0 -0
  184. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/patterns/tool-transformation.mdx +0 -0
  185. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/public/schemas/fastmcp.json/latest.json +0 -0
  186. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/public/schemas/fastmcp.json/v1.json +0 -0
  187. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-cli-__init__.mdx +0 -0
  188. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-cli-cli.mdx +0 -0
  189. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-cli-install-__init__.mdx +0 -0
  190. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-cli-install-claude_code.mdx +0 -0
  191. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-cli-install-claude_desktop.mdx +0 -0
  192. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-cli-install-gemini_cli.mdx +0 -0
  193. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-cli-install-mcp_json.mdx +0 -0
  194. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-cli-install-shared.mdx +0 -0
  195. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-cli-run.mdx +0 -0
  196. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-client-__init__.mdx +0 -0
  197. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-client-auth-__init__.mdx +0 -0
  198. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-client-auth-bearer.mdx +0 -0
  199. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-client-elicitation.mdx +0 -0
  200. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-client-logging.mdx +0 -0
  201. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-client-messages.mdx +0 -0
  202. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-client-oauth_callback.mdx +0 -0
  203. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-client-progress.mdx +0 -0
  204. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-client-roots.mdx +0 -0
  205. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-client-sampling.mdx +0 -0
  206. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-client-transports.mdx +0 -0
  207. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-exceptions.mdx +0 -0
  208. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-mcp_config.mdx +0 -0
  209. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-prompts-__init__.mdx +0 -0
  210. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-prompts-prompt.mdx +0 -0
  211. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-prompts-prompt_manager.mdx +0 -0
  212. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-resources-__init__.mdx +0 -0
  213. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-resources-resource.mdx +0 -0
  214. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-resources-resource_manager.mdx +0 -0
  215. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-resources-template.mdx +0 -0
  216. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-resources-types.mdx +0 -0
  217. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-server-__init__.mdx +0 -0
  218. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-server-auth-__init__.mdx +0 -0
  219. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-server-auth-jwt_issuer.mdx +0 -0
  220. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-server-auth-middleware.mdx +0 -0
  221. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-server-auth-providers-__init__.mdx +0 -0
  222. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-server-auth-providers-auth0.mdx +0 -0
  223. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-server-auth-providers-aws.mdx +0 -0
  224. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-server-auth-providers-azure.mdx +0 -0
  225. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-server-auth-providers-bearer.mdx +0 -0
  226. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-server-auth-providers-debug.mdx +0 -0
  227. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-server-auth-providers-github.mdx +0 -0
  228. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-server-auth-providers-google.mdx +0 -0
  229. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-server-auth-providers-introspection.mdx +0 -0
  230. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-server-auth-providers-jwt.mdx +0 -0
  231. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-server-auth-providers-workos.mdx +0 -0
  232. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-server-auth-redirect_validation.mdx +0 -0
  233. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-server-elicitation.mdx +0 -0
  234. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-server-http.mdx +0 -0
  235. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-server-low_level.mdx +0 -0
  236. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-server-middleware-__init__.mdx +0 -0
  237. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-server-middleware-caching.mdx +0 -0
  238. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-server-middleware-error_handling.mdx +0 -0
  239. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-server-middleware-logging.mdx +0 -0
  240. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-server-middleware-middleware.mdx +0 -0
  241. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-server-middleware-rate_limiting.mdx +0 -0
  242. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-server-middleware-timing.mdx +0 -0
  243. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-server-middleware-tool_injection.mdx +0 -0
  244. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-server-openapi.mdx +0 -0
  245. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-server-proxy.mdx +0 -0
  246. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-settings.mdx +0 -0
  247. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-tools-__init__.mdx +0 -0
  248. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-tools-tool_manager.mdx +0 -0
  249. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-tools-tool_transform.mdx +0 -0
  250. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-utilities-__init__.mdx +0 -0
  251. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-utilities-auth.mdx +0 -0
  252. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-utilities-cli.mdx +0 -0
  253. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-utilities-components.mdx +0 -0
  254. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-utilities-exceptions.mdx +0 -0
  255. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-utilities-http.mdx +0 -0
  256. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-utilities-inspect.mdx +0 -0
  257. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-utilities-json_schema.mdx +0 -0
  258. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-utilities-json_schema_type.mdx +0 -0
  259. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-utilities-mcp_config.mdx +0 -0
  260. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-utilities-mcp_server_config-__init__.mdx +0 -0
  261. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-__init__.mdx +0 -0
  262. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-environments-__init__.mdx +0 -0
  263. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-environments-base.mdx +0 -0
  264. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-environments-uv.mdx +0 -0
  265. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-mcp_server_config.mdx +0 -0
  266. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-sources-__init__.mdx +0 -0
  267. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-sources-base.mdx +0 -0
  268. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-sources-filesystem.mdx +0 -0
  269. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-utilities-openapi.mdx +0 -0
  270. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-utilities-tests.mdx +0 -0
  271. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/python-sdk/fastmcp-utilities-ui.mdx +0 -0
  272. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/servers/auth/authentication.mdx +0 -0
  273. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/servers/auth/full-oauth-server.mdx +0 -0
  274. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/servers/auth/remote-oauth.mdx +0 -0
  275. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/servers/auth/token-verification.mdx +0 -0
  276. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/servers/composition.mdx +0 -0
  277. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/servers/context.mdx +0 -0
  278. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/servers/elicitation.mdx +0 -0
  279. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/servers/logging.mdx +0 -0
  280. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/servers/middleware.mdx +0 -0
  281. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/servers/progress.mdx +0 -0
  282. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/servers/proxy.mdx +0 -0
  283. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/servers/sampling.mdx +0 -0
  284. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/servers/storage-backends.mdx +0 -0
  285. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/snippets/local-focus.mdx +0 -0
  286. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/snippets/version-badge.mdx +0 -0
  287. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/snippets/youtube-embed.mdx +0 -0
  288. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/tutorials/create-mcp-server.mdx +0 -0
  289. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/tutorials/mcp.mdx +0 -0
  290. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/tutorials/rest-api.mdx +0 -0
  291. {fastmcp-2.13.1 → fastmcp-2.13.3}/docs/updates.mdx +0 -0
  292. {fastmcp-2.13.1 → fastmcp-2.13.3}/examples/atproto_mcp/README.md +0 -0
  293. {fastmcp-2.13.1 → fastmcp-2.13.3}/examples/atproto_mcp/demo.py +0 -0
  294. {fastmcp-2.13.1 → fastmcp-2.13.3}/examples/atproto_mcp/fastmcp.json +0 -0
  295. {fastmcp-2.13.1 → fastmcp-2.13.3}/examples/atproto_mcp/pyproject.toml +0 -0
  296. {fastmcp-2.13.1 → fastmcp-2.13.3}/examples/atproto_mcp/src/atproto_mcp/__init__.py +0 -0
  297. {fastmcp-2.13.1 → fastmcp-2.13.3}/examples/atproto_mcp/src/atproto_mcp/__main__.py +0 -0
  298. {fastmcp-2.13.1 → fastmcp-2.13.3}/examples/atproto_mcp/src/atproto_mcp/_atproto/__init__.py +0 -0
  299. {fastmcp-2.13.1 → fastmcp-2.13.3}/examples/atproto_mcp/src/atproto_mcp/_atproto/_client.py +0 -0
  300. {fastmcp-2.13.1 → fastmcp-2.13.3}/examples/atproto_mcp/src/atproto_mcp/_atproto/_posts.py +0 -0
  301. {fastmcp-2.13.1 → fastmcp-2.13.3}/examples/atproto_mcp/src/atproto_mcp/_atproto/_profile.py +0 -0
  302. {fastmcp-2.13.1 → fastmcp-2.13.3}/examples/atproto_mcp/src/atproto_mcp/_atproto/_read.py +0 -0
  303. {fastmcp-2.13.1 → fastmcp-2.13.3}/examples/atproto_mcp/src/atproto_mcp/_atproto/_social.py +0 -0
  304. {fastmcp-2.13.1 → fastmcp-2.13.3}/examples/atproto_mcp/src/atproto_mcp/py.typed +0 -0
  305. {fastmcp-2.13.1 → fastmcp-2.13.3}/examples/atproto_mcp/src/atproto_mcp/server.py +0 -0
  306. {fastmcp-2.13.1 → fastmcp-2.13.3}/examples/atproto_mcp/src/atproto_mcp/settings.py +0 -0
  307. {fastmcp-2.13.1 → fastmcp-2.13.3}/examples/atproto_mcp/src/atproto_mcp/types.py +0 -0
  308. {fastmcp-2.13.1 → fastmcp-2.13.3}/examples/auth/authkit_dcr/README.md +0 -0
  309. {fastmcp-2.13.1 → fastmcp-2.13.3}/examples/auth/authkit_dcr/client.py +0 -0
  310. {fastmcp-2.13.1 → fastmcp-2.13.3}/examples/auth/authkit_dcr/server.py +0 -0
  311. {fastmcp-2.13.1 → fastmcp-2.13.3}/examples/auth/aws_oauth/README.md +0 -0
  312. {fastmcp-2.13.1 → fastmcp-2.13.3}/examples/auth/aws_oauth/client.py +0 -0
  313. {fastmcp-2.13.1 → fastmcp-2.13.3}/examples/auth/aws_oauth/requirements.txt +0 -0
  314. {fastmcp-2.13.1 → fastmcp-2.13.3}/examples/auth/aws_oauth/server.py +0 -0
  315. {fastmcp-2.13.1 → fastmcp-2.13.3}/examples/auth/azure_oauth/README.md +0 -0
  316. {fastmcp-2.13.1 → fastmcp-2.13.3}/examples/auth/azure_oauth/client.py +0 -0
  317. {fastmcp-2.13.1 → fastmcp-2.13.3}/examples/auth/azure_oauth/server.py +0 -0
  318. {fastmcp-2.13.1 → fastmcp-2.13.3}/examples/auth/github_oauth/README.md +0 -0
  319. {fastmcp-2.13.1 → fastmcp-2.13.3}/examples/auth/github_oauth/client.py +0 -0
  320. {fastmcp-2.13.1 → fastmcp-2.13.3}/examples/auth/github_oauth/server.py +0 -0
  321. {fastmcp-2.13.1 → fastmcp-2.13.3}/examples/auth/google_oauth/README.md +0 -0
  322. {fastmcp-2.13.1 → fastmcp-2.13.3}/examples/auth/google_oauth/client.py +0 -0
  323. {fastmcp-2.13.1 → fastmcp-2.13.3}/examples/auth/google_oauth/server.py +0 -0
  324. {fastmcp-2.13.1 → fastmcp-2.13.3}/examples/auth/scalekit_oauth/client.py +0 -0
  325. {fastmcp-2.13.1 → fastmcp-2.13.3}/examples/auth/workos_oauth/README.md +0 -0
  326. {fastmcp-2.13.1 → fastmcp-2.13.3}/examples/auth/workos_oauth/client.py +0 -0
  327. {fastmcp-2.13.1 → fastmcp-2.13.3}/examples/auth/workos_oauth/server.py +0 -0
  328. {fastmcp-2.13.1 → fastmcp-2.13.3}/examples/complex_inputs.py +0 -0
  329. {fastmcp-2.13.1 → fastmcp-2.13.3}/examples/config_server.py +0 -0
  330. {fastmcp-2.13.1 → fastmcp-2.13.3}/examples/desktop.py +0 -0
  331. {fastmcp-2.13.1 → fastmcp-2.13.3}/examples/echo.py +0 -0
  332. {fastmcp-2.13.1 → fastmcp-2.13.3}/examples/fastmcp_config/env_interpolation_example.json +0 -0
  333. {fastmcp-2.13.1 → fastmcp-2.13.3}/examples/fastmcp_config/fastmcp.json +0 -0
  334. {fastmcp-2.13.1 → fastmcp-2.13.3}/examples/fastmcp_config/full_example.fastmcp.json +0 -0
  335. {fastmcp-2.13.1 → fastmcp-2.13.3}/examples/fastmcp_config/server.py +0 -0
  336. {fastmcp-2.13.1 → fastmcp-2.13.3}/examples/fastmcp_config/simple.fastmcp.json +0 -0
  337. {fastmcp-2.13.1 → fastmcp-2.13.3}/examples/fastmcp_config_demo/README.md +0 -0
  338. {fastmcp-2.13.1 → fastmcp-2.13.3}/examples/fastmcp_config_demo/fastmcp.json +0 -0
  339. {fastmcp-2.13.1 → fastmcp-2.13.3}/examples/fastmcp_config_demo/server.py +0 -0
  340. {fastmcp-2.13.1 → fastmcp-2.13.3}/examples/get_file.py +0 -0
  341. {fastmcp-2.13.1 → fastmcp-2.13.3}/examples/in_memory_proxy_example.py +0 -0
  342. {fastmcp-2.13.1 → fastmcp-2.13.3}/examples/memory.fastmcp.json +0 -0
  343. {fastmcp-2.13.1 → fastmcp-2.13.3}/examples/memory.py +0 -0
  344. {fastmcp-2.13.1 → fastmcp-2.13.3}/examples/mount_example.fastmcp.json +0 -0
  345. {fastmcp-2.13.1 → fastmcp-2.13.3}/examples/mount_example.py +0 -0
  346. {fastmcp-2.13.1 → fastmcp-2.13.3}/examples/sampling.py +0 -0
  347. {fastmcp-2.13.1 → fastmcp-2.13.3}/examples/sampling_fallback.py +0 -0
  348. {fastmcp-2.13.1 → fastmcp-2.13.3}/examples/screenshot.fastmcp.json +0 -0
  349. {fastmcp-2.13.1 → fastmcp-2.13.3}/examples/screenshot.py +0 -0
  350. {fastmcp-2.13.1 → fastmcp-2.13.3}/examples/serializer.py +0 -0
  351. {fastmcp-2.13.1 → fastmcp-2.13.3}/examples/simple_echo.py +0 -0
  352. {fastmcp-2.13.1 → fastmcp-2.13.3}/examples/smart_home/README.md +0 -0
  353. {fastmcp-2.13.1 → fastmcp-2.13.3}/examples/smart_home/hub.fastmcp.json +0 -0
  354. {fastmcp-2.13.1 → fastmcp-2.13.3}/examples/smart_home/lights.fastmcp.json +0 -0
  355. {fastmcp-2.13.1 → fastmcp-2.13.3}/examples/smart_home/pyproject.toml +0 -0
  356. {fastmcp-2.13.1 → fastmcp-2.13.3}/examples/smart_home/src/smart_home/__init__.py +0 -0
  357. {fastmcp-2.13.1 → fastmcp-2.13.3}/examples/smart_home/src/smart_home/__main__.py +0 -0
  358. {fastmcp-2.13.1 → fastmcp-2.13.3}/examples/smart_home/src/smart_home/hub.py +0 -0
  359. {fastmcp-2.13.1 → fastmcp-2.13.3}/examples/smart_home/src/smart_home/lights/__init__.py +0 -0
  360. {fastmcp-2.13.1 → fastmcp-2.13.3}/examples/smart_home/src/smart_home/lights/hue_utils.py +0 -0
  361. {fastmcp-2.13.1 → fastmcp-2.13.3}/examples/smart_home/src/smart_home/lights/server.py +0 -0
  362. {fastmcp-2.13.1 → fastmcp-2.13.3}/examples/smart_home/src/smart_home/py.typed +0 -0
  363. {fastmcp-2.13.1 → fastmcp-2.13.3}/examples/smart_home/src/smart_home/settings.py +0 -0
  364. {fastmcp-2.13.1 → fastmcp-2.13.3}/examples/tags_example.py +0 -0
  365. {fastmcp-2.13.1 → fastmcp-2.13.3}/examples/testing_demo/README.md +0 -0
  366. {fastmcp-2.13.1 → fastmcp-2.13.3}/examples/testing_demo/pyproject.toml +0 -0
  367. {fastmcp-2.13.1 → fastmcp-2.13.3}/examples/testing_demo/server.py +0 -0
  368. {fastmcp-2.13.1 → fastmcp-2.13.3}/examples/testing_demo/tests/test_server.py +0 -0
  369. {fastmcp-2.13.1 → fastmcp-2.13.3}/examples/testing_demo/uv.lock +0 -0
  370. {fastmcp-2.13.1 → fastmcp-2.13.3}/examples/text_me.py +0 -0
  371. {fastmcp-2.13.1 → fastmcp-2.13.3}/examples/tool_result_echo.py +0 -0
  372. {fastmcp-2.13.1 → fastmcp-2.13.3}/justfile +0 -0
  373. {fastmcp-2.13.1 → fastmcp-2.13.3}/logo.py +0 -0
  374. {fastmcp-2.13.1 → fastmcp-2.13.3}/scripts/auto_close_duplicates.py +0 -0
  375. {fastmcp-2.13.1 → fastmcp-2.13.3}/scripts/auto_close_needs_mre.py +0 -0
  376. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/__init__.py +0 -0
  377. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/cli/__init__.py +0 -0
  378. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/cli/cli.py +0 -0
  379. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/cli/install/__init__.py +0 -0
  380. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/cli/install/claude_code.py +0 -0
  381. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/cli/install/claude_desktop.py +0 -0
  382. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/cli/install/cursor.py +0 -0
  383. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/cli/install/gemini_cli.py +0 -0
  384. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/cli/install/mcp_json.py +0 -0
  385. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/cli/install/shared.py +0 -0
  386. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/cli/run.py +0 -0
  387. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/client/__init__.py +0 -0
  388. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/client/auth/__init__.py +0 -0
  389. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/client/auth/bearer.py +0 -0
  390. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/client/auth/oauth.py +0 -0
  391. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/client/client.py +0 -0
  392. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/client/elicitation.py +0 -0
  393. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/client/logging.py +0 -0
  394. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/client/messages.py +0 -0
  395. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/client/oauth_callback.py +0 -0
  396. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/client/progress.py +0 -0
  397. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/client/roots.py +0 -0
  398. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/client/sampling.py +0 -0
  399. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/client/transports.py +0 -0
  400. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/contrib/README.md +0 -0
  401. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/contrib/bulk_tool_caller/README.md +0 -0
  402. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/contrib/bulk_tool_caller/__init__.py +0 -0
  403. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/contrib/bulk_tool_caller/bulk_tool_caller.py +0 -0
  404. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/contrib/bulk_tool_caller/example.py +0 -0
  405. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/contrib/component_manager/README.md +0 -0
  406. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/contrib/component_manager/__init__.py +0 -0
  407. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/contrib/component_manager/component_manager.py +0 -0
  408. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/contrib/component_manager/component_service.py +0 -0
  409. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/contrib/component_manager/example.py +0 -0
  410. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/contrib/mcp_mixin/README.md +0 -0
  411. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/contrib/mcp_mixin/__init__.py +0 -0
  412. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/contrib/mcp_mixin/example.py +0 -0
  413. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/contrib/mcp_mixin/mcp_mixin.py +0 -0
  414. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/exceptions.py +0 -0
  415. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/experimental/sampling/__init__.py +0 -0
  416. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/experimental/sampling/handlers/__init__.py +0 -0
  417. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/experimental/sampling/handlers/base.py +0 -0
  418. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/experimental/sampling/handlers/openai.py +0 -0
  419. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/experimental/server/openapi/README.md +0 -0
  420. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/experimental/server/openapi/__init__.py +0 -0
  421. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/experimental/server/openapi/components.py +0 -0
  422. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/experimental/server/openapi/routing.py +0 -0
  423. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/experimental/server/openapi/server.py +0 -0
  424. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/experimental/utilities/openapi/README.md +0 -0
  425. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/experimental/utilities/openapi/__init__.py +0 -0
  426. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/experimental/utilities/openapi/director.py +0 -0
  427. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/experimental/utilities/openapi/formatters.py +0 -0
  428. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/experimental/utilities/openapi/json_schema_converter.py +0 -0
  429. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/experimental/utilities/openapi/models.py +0 -0
  430. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/experimental/utilities/openapi/parser.py +0 -0
  431. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/experimental/utilities/openapi/schemas.py +0 -0
  432. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/mcp_config.py +0 -0
  433. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/prompts/__init__.py +0 -0
  434. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/prompts/prompt.py +0 -0
  435. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/prompts/prompt_manager.py +0 -0
  436. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/py.typed +0 -0
  437. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/resources/__init__.py +0 -0
  438. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/resources/resource.py +0 -0
  439. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/resources/resource_manager.py +0 -0
  440. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/resources/template.py +0 -0
  441. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/resources/types.py +0 -0
  442. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/server/__init__.py +0 -0
  443. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/server/auth/__init__.py +0 -0
  444. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/server/auth/auth.py +0 -0
  445. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/server/auth/handlers/authorize.py +0 -0
  446. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/server/auth/jwt_issuer.py +0 -0
  447. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/server/auth/middleware.py +0 -0
  448. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/server/auth/providers/__init__.py +0 -0
  449. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/server/auth/providers/auth0.py +0 -0
  450. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/server/auth/providers/aws.py +0 -0
  451. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/server/auth/providers/bearer.py +0 -0
  452. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/server/auth/providers/debug.py +0 -0
  453. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/server/auth/providers/github.py +0 -0
  454. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/server/auth/providers/in_memory.py +0 -0
  455. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/server/auth/providers/introspection.py +0 -0
  456. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/server/auth/providers/jwt.py +0 -0
  457. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/server/auth/providers/oci.py +0 -0
  458. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/server/auth/providers/supabase.py +0 -0
  459. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/server/auth/providers/workos.py +0 -0
  460. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/server/auth/redirect_validation.py +0 -0
  461. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/server/context.py +0 -0
  462. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/server/elicitation.py +0 -0
  463. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/server/http.py +0 -0
  464. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/server/low_level.py +0 -0
  465. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/server/middleware/__init__.py +0 -0
  466. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/server/middleware/caching.py +0 -0
  467. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/server/middleware/error_handling.py +0 -0
  468. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/server/middleware/logging.py +0 -0
  469. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/server/middleware/middleware.py +0 -0
  470. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/server/middleware/rate_limiting.py +0 -0
  471. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/server/middleware/timing.py +0 -0
  472. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/server/middleware/tool_injection.py +0 -0
  473. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/server/openapi.py +0 -0
  474. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/server/sampling/handler.py +0 -0
  475. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/settings.py +0 -0
  476. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/tools/__init__.py +0 -0
  477. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/tools/tool_manager.py +0 -0
  478. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/utilities/__init__.py +0 -0
  479. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/utilities/auth.py +0 -0
  480. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/utilities/cli.py +0 -0
  481. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/utilities/components.py +0 -0
  482. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/utilities/exceptions.py +0 -0
  483. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/utilities/http.py +0 -0
  484. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/utilities/inspect.py +0 -0
  485. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/utilities/json_schema.py +0 -0
  486. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/utilities/json_schema_type.py +0 -0
  487. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/utilities/logging.py +0 -0
  488. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/utilities/mcp_config.py +0 -0
  489. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/utilities/mcp_server_config/__init__.py +0 -0
  490. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/utilities/mcp_server_config/v1/__init__.py +0 -0
  491. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/utilities/mcp_server_config/v1/environments/__init__.py +0 -0
  492. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/utilities/mcp_server_config/v1/environments/base.py +0 -0
  493. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/utilities/mcp_server_config/v1/environments/uv.py +0 -0
  494. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/utilities/mcp_server_config/v1/mcp_server_config.py +0 -0
  495. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/utilities/mcp_server_config/v1/schema.json +0 -0
  496. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/utilities/mcp_server_config/v1/sources/__init__.py +0 -0
  497. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/utilities/mcp_server_config/v1/sources/base.py +0 -0
  498. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/utilities/mcp_server_config/v1/sources/filesystem.py +0 -0
  499. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/utilities/openapi.py +0 -0
  500. {fastmcp-2.13.1 → fastmcp-2.13.3}/src/fastmcp/utilities/tests.py +0 -0
  501. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/__init__.py +0 -0
  502. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/cli/__init__.py +0 -0
  503. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/cli/test_cli.py +0 -0
  504. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/cli/test_config.py +0 -0
  505. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/cli/test_cursor.py +0 -0
  506. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/cli/test_install.py +0 -0
  507. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/cli/test_mcp_server_config_integration.py +0 -0
  508. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/cli/test_mcp_server_config_schema.py +0 -0
  509. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/cli/test_project_prepare.py +0 -0
  510. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/cli/test_run.py +0 -0
  511. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/cli/test_run_config.py +0 -0
  512. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/cli/test_server_args.py +0 -0
  513. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/cli/test_shared.py +0 -0
  514. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/cli/test_with_argv.py +0 -0
  515. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/client/__init__.py +0 -0
  516. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/client/auth/__init__.py +0 -0
  517. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/client/auth/test_oauth_client.py +0 -0
  518. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/client/test_client.py +0 -0
  519. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/client/test_elicitation.py +0 -0
  520. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/client/test_logs.py +0 -0
  521. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/client/test_notifications.py +0 -0
  522. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/client/test_oauth_callback_xss.py +0 -0
  523. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/client/test_openapi_experimental.py +0 -0
  524. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/client/test_openapi_legacy.py +0 -0
  525. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/client/test_progress.py +0 -0
  526. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/client/test_roots.py +0 -0
  527. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/client/test_sampling.py +0 -0
  528. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/client/test_sse.py +0 -0
  529. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/client/test_stdio.py +0 -0
  530. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/client/test_streamable_http.py +0 -0
  531. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/client/transports/__init__.py +0 -0
  532. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/client/transports/test_transports.py +0 -0
  533. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/client/transports/test_uv_transport.py +0 -0
  534. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/conftest.py +0 -0
  535. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/contrib/__init__.py +0 -0
  536. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/contrib/test_bulk_tool_caller.py +0 -0
  537. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/contrib/test_component_manager.py +0 -0
  538. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/contrib/test_mcp_mixin.py +0 -0
  539. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/deprecated/__init__.py +0 -0
  540. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/deprecated/test_bearer_auth_provider.py +0 -0
  541. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/deprecated/test_dependencies.py +0 -0
  542. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/deprecated/test_deprecated.py +0 -0
  543. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/deprecated/test_mount_import_arg_order.py +0 -0
  544. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/deprecated/test_mount_separators.py +0 -0
  545. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/deprecated/test_output_schema_false.py +0 -0
  546. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/deprecated/test_proxy_client.py +0 -0
  547. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/deprecated/test_resource_prefixes.py +0 -0
  548. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/deprecated/test_route_type_ignore.py +0 -0
  549. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/deprecated/test_settings.py +0 -0
  550. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/experimental/README.md +0 -0
  551. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/experimental/__init__.py +0 -0
  552. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/experimental/openapi_parser/README.md +0 -0
  553. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/experimental/openapi_parser/__init__.py +0 -0
  554. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/experimental/openapi_parser/conftest.py +0 -0
  555. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/experimental/openapi_parser/server/__init__.py +0 -0
  556. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/experimental/openapi_parser/server/openapi/__init__.py +0 -0
  557. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/experimental/openapi_parser/server/openapi/test_comprehensive.py +0 -0
  558. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/experimental/openapi_parser/server/openapi/test_deepobject_style.py +0 -0
  559. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/experimental/openapi_parser/server/openapi/test_end_to_end_compatibility.py +0 -0
  560. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/experimental/openapi_parser/server/openapi/test_openapi_features.py +0 -0
  561. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/experimental/openapi_parser/server/openapi/test_openapi_performance.py +0 -0
  562. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/experimental/openapi_parser/server/openapi/test_parameter_collisions.py +0 -0
  563. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/experimental/openapi_parser/server/openapi/test_performance_comparison.py +0 -0
  564. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/experimental/openapi_parser/server/openapi/test_server.py +0 -0
  565. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/experimental/openapi_parser/utilities/__init__.py +0 -0
  566. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/experimental/openapi_parser/utilities/openapi/__init__.py +0 -0
  567. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/experimental/openapi_parser/utilities/openapi/conftest.py +0 -0
  568. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/experimental/openapi_parser/utilities/openapi/test_allof_requestbody.py +0 -0
  569. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/experimental/openapi_parser/utilities/openapi/test_direct_array_schemas.py +0 -0
  570. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/experimental/openapi_parser/utilities/openapi/test_director.py +0 -0
  571. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/experimental/openapi_parser/utilities/openapi/test_legacy_compatibility.py +0 -0
  572. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/experimental/openapi_parser/utilities/openapi/test_models.py +0 -0
  573. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/experimental/openapi_parser/utilities/openapi/test_nullable_fields.py +0 -0
  574. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/experimental/openapi_parser/utilities/openapi/test_parser.py +0 -0
  575. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/experimental/openapi_parser/utilities/openapi/test_schemas.py +0 -0
  576. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/experimental/openapi_parser/utilities/openapi/test_transitive_references.py +0 -0
  577. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/experimental/sampling/test_openai_handler.py +0 -0
  578. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/integration_tests/__init__.py +0 -0
  579. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/integration_tests/auth/__init__.py +0 -0
  580. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/integration_tests/auth/test_github_provider_integration.py +0 -0
  581. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/integration_tests/conftest.py +0 -0
  582. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/integration_tests/test_github_mcp_remote.py +0 -0
  583. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/prompts/__init__.py +0 -0
  584. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/prompts/test_prompt.py +0 -0
  585. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/prompts/test_prompt_manager.py +0 -0
  586. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/resources/__init__.py +0 -0
  587. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/resources/test_file_resources.py +0 -0
  588. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/resources/test_function_resources.py +0 -0
  589. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/resources/test_resource_manager.py +0 -0
  590. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/resources/test_resource_template.py +0 -0
  591. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/resources/test_resource_template_meta.py +0 -0
  592. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/resources/test_resources.py +0 -0
  593. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/server/__init__.py +0 -0
  594. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/server/auth/__init__.py +0 -0
  595. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/server/auth/providers/__init__.py +0 -0
  596. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/server/auth/providers/test_auth0.py +0 -0
  597. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/server/auth/providers/test_aws.py +0 -0
  598. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/server/auth/providers/test_github.py +0 -0
  599. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/server/auth/providers/test_introspection.py +0 -0
  600. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/server/auth/providers/test_supabase.py +0 -0
  601. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/server/auth/providers/test_workos.py +0 -0
  602. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/server/auth/test_auth_provider.py +0 -0
  603. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/server/auth/test_debug_verifier.py +0 -0
  604. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/server/auth/test_enhanced_error_responses.py +0 -0
  605. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/server/auth/test_jwt_issuer.py +0 -0
  606. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/server/auth/test_jwt_provider.py +0 -0
  607. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/server/auth/test_oauth_mounting.py +0 -0
  608. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/server/auth/test_oauth_proxy.py +0 -0
  609. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/server/auth/test_oauth_proxy_redirect_validation.py +0 -0
  610. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/server/auth/test_oauth_proxy_storage.py +0 -0
  611. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/server/auth/test_redirect_validation.py +0 -0
  612. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/server/auth/test_remote_auth_provider.py +0 -0
  613. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/server/auth/test_static_token_verifier.py +0 -0
  614. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/server/http/__init__.py +0 -0
  615. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/server/http/test_bearer_auth_backend.py +0 -0
  616. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/server/http/test_custom_routes.py +0 -0
  617. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/server/http/test_http_auth_middleware.py +0 -0
  618. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/server/http/test_http_dependencies.py +0 -0
  619. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/server/http/test_http_middleware.py +0 -0
  620. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/server/middleware/__init__.py +0 -0
  621. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/server/middleware/test_error_handling.py +0 -0
  622. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/server/middleware/test_initialization_middleware.py +0 -0
  623. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/server/middleware/test_logging.py +0 -0
  624. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/server/middleware/test_middleware.py +0 -0
  625. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/server/middleware/test_rate_limiting.py +0 -0
  626. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/server/middleware/test_timing.py +0 -0
  627. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/server/middleware/test_tool_injection.py +0 -0
  628. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/server/openapi/__init__.py +0 -0
  629. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/server/openapi/conftest.py +0 -0
  630. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/server/openapi/test_advanced_behavior.py +0 -0
  631. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/server/openapi/test_basic_functionality.py +0 -0
  632. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/server/openapi/test_configuration.py +0 -0
  633. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/server/openapi/test_deepobject_style.py +0 -0
  634. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/server/openapi/test_description_propagation.py +0 -0
  635. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/server/openapi/test_explode_integration.py +0 -0
  636. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/server/openapi/test_openapi_compatibility.py +0 -0
  637. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/server/openapi/test_openapi_path_parameters.py +0 -0
  638. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/server/openapi/test_optional_parameters.py +0 -0
  639. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/server/openapi/test_parameter_collisions.py +0 -0
  640. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/server/openapi/test_route_map_fn.py +0 -0
  641. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/server/proxy/__init__.py +0 -0
  642. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/server/proxy/test_proxy_client.py +0 -0
  643. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/server/proxy/test_stateful_proxy_client.py +0 -0
  644. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/server/test_app_state.py +0 -0
  645. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/server/test_auth_integration.py +0 -0
  646. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/server/test_context.py +0 -0
  647. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/server/test_experimental_openapi_feature_flag.py +0 -0
  648. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/server/test_file_server.py +0 -0
  649. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/server/test_icons.py +0 -0
  650. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/server/test_import_server.py +0 -0
  651. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/server/test_input_validation.py +0 -0
  652. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/server/test_log_level.py +0 -0
  653. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/server/test_logging.py +0 -0
  654. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/server/test_mount.py +0 -0
  655. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/server/test_resource_prefix_formats.py +0 -0
  656. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/server/test_run_server.py +0 -0
  657. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/server/test_server.py +0 -0
  658. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/server/test_server_interactions.py +0 -0
  659. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/server/test_server_lifespan.py +0 -0
  660. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/server/test_streamable_http_no_redirect.py +0 -0
  661. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/server/test_tool_annotations.py +0 -0
  662. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/server/test_tool_transformation.py +0 -0
  663. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/test_examples.py +0 -0
  664. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/test_mcp_config.py +0 -0
  665. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/tools/__init__.py +0 -0
  666. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/tools/test_tool.py +0 -0
  667. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/tools/test_tool_future_annotations.py +0 -0
  668. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/tools/test_tool_manager.py +0 -0
  669. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/tools/test_tool_transform.py +0 -0
  670. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/utilities/__init__.py +0 -0
  671. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/utilities/openapi/__init__.py +0 -0
  672. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/utilities/openapi/conftest.py +0 -0
  673. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/utilities/openapi/test_nullable_fields.py +0 -0
  674. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/utilities/openapi/test_openapi.py +0 -0
  675. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/utilities/openapi/test_openapi_advanced.py +0 -0
  676. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/utilities/openapi/test_openapi_fastapi.py +0 -0
  677. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/utilities/openapi/test_openapi_output_schemas.py +0 -0
  678. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/utilities/test_cli.py +0 -0
  679. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/utilities/test_components.py +0 -0
  680. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/utilities/test_inspect.py +0 -0
  681. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/utilities/test_json_schema.py +0 -0
  682. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/utilities/test_json_schema_type.py +0 -0
  683. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/utilities/test_logging.py +0 -0
  684. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/utilities/test_tests.py +0 -0
  685. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/utilities/test_typeadapter.py +0 -0
  686. {fastmcp-2.13.1 → fastmcp-2.13.3}/tests/utilities/test_types.py +0 -0
@@ -16,7 +16,7 @@ jobs:
16
16
 
17
17
  steps:
18
18
  - name: Checkout repository
19
- uses: actions/checkout@v5
19
+ uses: actions/checkout@v6
20
20
 
21
21
  - name: Generate Marvin App token
22
22
  id: marvin-token
@@ -16,7 +16,7 @@ jobs:
16
16
 
17
17
  steps:
18
18
  - name: Checkout repository
19
- uses: actions/checkout@v5
19
+ uses: actions/checkout@v6
20
20
 
21
21
  - name: Generate Marvin App token
22
22
  id: marvin-token
@@ -24,7 +24,7 @@ jobs:
24
24
 
25
25
  steps:
26
26
  - name: Checkout base repository
27
- uses: actions/checkout@v5
27
+ uses: actions/checkout@v6
28
28
  with:
29
29
  repository: ${{ github.repository }}
30
30
  ref: ${{ github.event.repository.default_branch }}
@@ -2,7 +2,7 @@ name: Marvin Test Failure Analysis
2
2
 
3
3
  on:
4
4
  workflow_run:
5
- workflows: ["Run Tests"]
5
+ workflows: ["Tests", "Run static analysis"]
6
6
  types:
7
7
  - completed
8
8
 
@@ -23,7 +23,7 @@ jobs:
23
23
  actions: read # Required for Claude to read CI results
24
24
  steps:
25
25
  - name: Checkout repository
26
- uses: actions/checkout@v4
26
+ uses: actions/checkout@v6
27
27
  with:
28
28
  fetch-depth: 1
29
29
 
@@ -35,7 +35,7 @@ jobs:
35
35
  private-key: ${{ secrets.MARVIN_APP_PRIVATE_KEY }}
36
36
 
37
37
  - name: Set up Python 3.10
38
- uses: actions/setup-python@v5
38
+ uses: actions/setup-python@v6
39
39
  with:
40
40
  python-version: "3.10"
41
41
 
@@ -21,7 +21,7 @@ jobs:
21
21
 
22
22
  steps:
23
23
  - name: Checkout repository
24
- uses: actions/checkout@v5
24
+ uses: actions/checkout@v6
25
25
 
26
26
  - name: Generate Marvin App token
27
27
  id: marvin-token
@@ -28,7 +28,7 @@ jobs:
28
28
 
29
29
  steps:
30
30
  - name: Checkout base repository
31
- uses: actions/checkout@v5
31
+ uses: actions/checkout@v6
32
32
  with:
33
33
  repository: ${{ github.repository }}
34
34
  ref: ${{ github.event.repository.default_branch }}
@@ -31,7 +31,7 @@ jobs:
31
31
  (github.event_name == 'issues' && github.event.action == 'labeled' && github.event.label.name == 'marvin')
32
32
  runs-on: ubuntu-latest
33
33
  steps:
34
- - uses: actions/checkout@v5
34
+ - uses: actions/checkout@v6
35
35
 
36
36
  # Install UV package manager
37
37
  - name: Install UV
@@ -12,7 +12,7 @@ jobs:
12
12
  id-token: write # For PyPI's trusted publishing
13
13
  steps:
14
14
  - name: Checkout
15
- uses: actions/checkout@v5
15
+ uses: actions/checkout@v6
16
16
  with:
17
17
  fetch-depth: 0
18
18
 
@@ -30,7 +30,7 @@ jobs:
30
30
  runs-on: ubuntu-latest
31
31
 
32
32
  steps:
33
- - uses: actions/checkout@v5
33
+ - uses: actions/checkout@v6
34
34
  - name: Install uv
35
35
  uses: astral-sh/setup-uv@v7
36
36
  with:
@@ -34,7 +34,7 @@ jobs:
34
34
  timeout-minutes: 10
35
35
 
36
36
  steps:
37
- - uses: actions/checkout@v5
37
+ - uses: actions/checkout@v6
38
38
 
39
39
  - name: Install uv
40
40
  uses: astral-sh/setup-uv@v7
@@ -60,7 +60,7 @@ jobs:
60
60
  timeout-minutes: 10
61
61
 
62
62
  steps:
63
- - uses: actions/checkout@v5
63
+ - uses: actions/checkout@v6
64
64
 
65
65
  - name: Install uv
66
66
  uses: astral-sh/setup-uv@v7
@@ -85,7 +85,7 @@ jobs:
85
85
  timeout-minutes: 10
86
86
 
87
87
  steps:
88
- - uses: actions/checkout@v5
88
+ - uses: actions/checkout@v6
89
89
 
90
90
  - name: Install uv
91
91
  uses: astral-sh/setup-uv@v7
@@ -21,7 +21,7 @@ jobs:
21
21
  runs-on: ubuntu-latest
22
22
 
23
23
  steps:
24
- - uses: actions/checkout@v5
24
+ - uses: actions/checkout@v6
25
25
 
26
26
  - name: Generate Marvin App token
27
27
  id: marvin-token
@@ -21,7 +21,7 @@ jobs:
21
21
  runs-on: ubuntu-latest
22
22
 
23
23
  steps:
24
- - uses: actions/checkout@v5
24
+ - uses: actions/checkout@v6
25
25
 
26
26
  - name: Generate Marvin App token
27
27
  id: marvin-token
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fastmcp
3
- Version: 2.13.1
3
+ Version: 2.13.3
4
4
  Summary: The fast, Pythonic way to build MCP servers and clients.
5
5
  Project-URL: Homepage, https://gofastmcp.com
6
6
  Project-URL: Repository, https://github.com/jlowin/fastmcp
@@ -23,10 +23,10 @@ Requires-Dist: cyclopts>=4.0.0
23
23
  Requires-Dist: exceptiongroup>=1.2.2
24
24
  Requires-Dist: httpx>=0.28.1
25
25
  Requires-Dist: jsonschema-path>=0.3.4
26
- Requires-Dist: mcp!=1.21.1,<2.0.0,>=1.19.0
26
+ Requires-Dist: mcp!=1.21.1,<1.23,>=1.19.0
27
27
  Requires-Dist: openapi-pydantic>=0.5.1
28
28
  Requires-Dist: platformdirs>=4.0.0
29
- Requires-Dist: py-key-value-aio[disk,keyring,memory]<0.3.0,>=0.2.8
29
+ Requires-Dist: py-key-value-aio[disk,memory]<0.4.0,>=0.2.8
30
30
  Requires-Dist: pydantic[email]>=2.11.7
31
31
  Requires-Dist: pyperclip>=1.9.0
32
32
  Requires-Dist: python-dotenv>=1.1.0
@@ -355,6 +355,7 @@ FastMCP provides comprehensive authentication support that sets it apart from ba
355
355
  - **Auth0**
356
356
  - **WorkOS**
357
357
  - **Descope**
358
+ - **Discord**
358
359
  - **JWT/Custom**
359
360
  - **API Keys**
360
361
 
@@ -316,6 +316,7 @@ FastMCP provides comprehensive authentication support that sets it apart from ba
316
316
  - **Auth0**
317
317
  - **WorkOS**
318
318
  - **Descope**
319
+ - **Discord**
319
320
  - **JWT/Custom**
320
321
  - **API Keys**
321
322
 
@@ -510,6 +510,7 @@ When deploying to production, you'll want to optimize your server for performanc
510
510
  # Run with basic configuration
511
511
  uvicorn app:app --host 0.0.0.0 --port 8000
512
512
 
513
+ # Ensure stateless HTTP mode is enabled (stateless_http=True)
513
514
  # Run with multiple workers for production
514
515
  uvicorn app:app --host 0.0.0.0 --port 8000 --workers 4
515
516
  ```
@@ -601,4 +602,4 @@ This guide has shown you how to create an HTTP-accessible MCP server, but you'll
601
602
  - **Edge platforms** (Cloudflare Workers)
602
603
  - **Kubernetes clusters** (self-managed or managed)
603
604
 
604
- The key requirements are Python 3.10+ support and the ability to expose an HTTP port. Most providers will require you to package your server (requirements.txt, Dockerfile, etc.) according to their deployment format. For managed, zero-configuration deployment, see [FastMCP Cloud](/deployment/fastmcp-cloud).
605
+ The key requirements are Python 3.10+ support and the ability to expose an HTTP port. Most providers will require you to package your server (requirements.txt, Dockerfile, etc.) according to their deployment format. For managed, zero-configuration deployment, see [FastMCP Cloud](/deployment/fastmcp-cloud).
@@ -197,6 +197,7 @@
197
197
  "integrations/aws-cognito",
198
198
  "integrations/azure",
199
199
  "integrations/descope",
200
+ "integrations/discord",
200
201
  "integrations/github",
201
202
  "integrations/scalekit",
202
203
  "integrations/google",
@@ -363,6 +364,7 @@
363
364
  "python-sdk/fastmcp-server-auth-providers-in_memory",
364
365
  "python-sdk/fastmcp-server-auth-providers-introspection",
365
366
  "python-sdk/fastmcp-server-auth-providers-jwt",
367
+ "python-sdk/fastmcp-server-auth-providers-oci",
366
368
  "python-sdk/fastmcp-server-auth-providers-scalekit",
367
369
  "python-sdk/fastmcp-server-auth-providers-supabase",
368
370
  "python-sdk/fastmcp-server-auth-providers-workos"
@@ -164,6 +164,34 @@ Using your specific tenant ID is recommended for better security and control.
164
164
  **Important**: The `required_scopes` parameter is **REQUIRED** and must include at least one scope. Azure's OAuth API requires the `scope` parameter in all authorization requests - you cannot authenticate without specifying at least one scope. Use the unprefixed scope names from your Azure App registration (e.g., `["read", "write"]`). These scopes must be created under **Expose an API** in your App registration.
165
165
  </Note>
166
166
 
167
+ ### Scope Handling
168
+
169
+ FastMCP automatically prefixes `required_scopes` with your `identifier_uri` (e.g., `api://your-client-id`) since these are your custom API scopes. Scopes in `additional_authorize_scopes` are sent as-is since they target external resources like Microsoft Graph.
170
+
171
+ **`required_scopes`** — Your custom API scopes, defined in Azure "Expose an API":
172
+
173
+ | You write | Sent to Azure | Validated on tokens |
174
+ |-----------|---------------|---------------------|
175
+ | `mcp-read` | `api://xxx/mcp-read` | ✓ |
176
+ | `my.scope` | `api://xxx/my.scope` | ✓ |
177
+ | `openid` | `openid` | ✗ (OIDC scope) |
178
+ | `api://xxx/read` | `api://xxx/read` | ✓ |
179
+
180
+ **`additional_authorize_scopes`** — External scopes (e.g., Microsoft Graph) for server-side use:
181
+
182
+ | You write | Sent to Azure | Validated on tokens |
183
+ |-----------|---------------|---------------------|
184
+ | `User.Read` | `User.Read` | ✗ |
185
+ | `Mail.Send` | `Mail.Send` | ✗ |
186
+
187
+ <Info>
188
+ **Why aren't `additional_authorize_scopes` validated?** Azure issues separate tokens per resource. The access token FastMCP receives is for *your API*—Graph scopes aren't in its `scp` claim. To call Graph APIs, your server uses the upstream Azure token in an on-behalf-of (OBO) flow.
189
+ </Info>
190
+
191
+ <Note>
192
+ OIDC scopes (`openid`, `profile`, `email`, `offline_access`) are never prefixed and excluded from validation because Azure doesn't include them in access token `scp` claims.
193
+ </Note>
194
+
167
195
  ## Testing
168
196
 
169
197
  ### Running the Server
@@ -304,6 +332,8 @@ Redirect path configured in your Azure App registration
304
332
  <ParamField path="FASTMCP_SERVER_AUTH_AZURE_REQUIRED_SCOPES" required>
305
333
  Comma-, space-, or JSON-separated list of required scopes for your API (at least one scope required). These are validated on tokens and used as defaults if the client does not request specific scopes. Use unprefixed scope names from your Azure App registration (e.g., `read,write`).
306
334
 
335
+ You can include standard OIDC scopes (`openid`, `profile`, `email`, `offline_access`) in `required_scopes`. FastMCP automatically handles them correctly: they're sent to Azure unprefixed and excluded from token validation (since Azure doesn't include OIDC scopes in access token `scp` claims).
336
+
307
337
  <Note>
308
338
  Azure's OAuth API requires the `scope` parameter - you must provide at least one scope.
309
339
  </Note>
@@ -6,7 +6,7 @@ icon: shield-check
6
6
  tag: NEW
7
7
  ---
8
8
 
9
- import { VersionBadge } from "/snippets/version-badge.mdx"
9
+ import { VersionBadge } from "/snippets/version-badge.mdx";
10
10
 
11
11
  <VersionBadge version="2.12.4" />
12
12
 
@@ -17,28 +17,29 @@ This guide shows you how to secure your FastMCP server using [**Descope**](https
17
17
  ### Prerequisites
18
18
 
19
19
  Before you begin, you will need:
20
+
20
21
  1. To [sign up](https://www.descope.com/sign-up) for a Free Forever Descope account
21
- 2. Your **Project ID** from the [Descope Console](https://app.descope.com/settings/project)
22
- 3. Your FastMCP server's URL (can be localhost for development, e.g., `http://localhost:3000`)
22
+ 2. Your FastMCP server's URL (can be localhost for development, e.g., `http://localhost:3000`)
23
23
 
24
24
  ### Step 1: Configure Descope
25
25
 
26
26
  <Steps>
27
- <Step title="Enable Dynamic Client Registration">
28
- 1. Go to the [Inbound Apps page](https://app.descope.com/apps/inbound) of the Descope Console
29
- 2. Click **DCR Settings**
30
- 3. Enable **Dynamic Client Registration (DCR)**
31
- 4. Define allowed scopes
27
+ <Step title="Create an MCP Server">
28
+ 1. Go to the [MCP Servers page](https://app.descope.com/mcp-servers) of the Descope Console, and create a new MCP Server.
29
+ 2. Give the MCP server a name and description.
30
+ 3. Ensure that **Dynamic Client Registration (DCR)** is enabled. Then click **Create**.
31
+ 4. Once you've created the MCP Server, note your Well-Known URL.
32
+
32
33
 
33
34
  <Warning>
34
35
  DCR is required for FastMCP clients to automatically register with your authentication server.
35
36
  </Warning>
36
37
  </Step>
37
38
 
38
- <Step title="Note Your Project ID">
39
- Save your Project ID from [Project Settings](https://app.descope.com/settings/project):
39
+ <Step title="Note Your Well-Known URL">
40
+ Save your Well-Known URL from [MCP Server Settings](https://app.descope.com/mcp-servers):
40
41
  ```
41
- Project ID: P2abc...123
42
+ Well-Known URL: https://.../v1/apps/agentic/P.../M.../.well-known/openid-configuration
42
43
  ```
43
44
  </Step>
44
45
  </Steps>
@@ -48,15 +49,10 @@ Before you begin, you will need:
48
49
  Create a `.env` file with your Descope configuration:
49
50
 
50
51
  ```bash
51
- DESCOPE_PROJECT_ID=P2abc...123 # Your Descope Project ID
52
- DESCOPE_BASE_URL=https://api.descope.com # Descope API URL
52
+ DESCOPE_CONFIG_URL=https://.../v1/apps/agentic/P.../M.../.well-known/openid-configuration # Your Descope Well-Known URL
53
53
  SERVER_URL=http://localhost:3000 # Your server's base URL
54
54
  ```
55
55
 
56
- <Note>
57
- You can find your project's Descope Base URL in the [Multi-Region Support Guide](https://docs.descope.com/management/project-settings/multi-regional).
58
- </Note>
59
-
60
56
  ### Step 3: FastMCP Configuration
61
57
 
62
58
  Create your FastMCP server file and use the DescopeProvider to handle all the OAuth integration automatically:
@@ -68,9 +64,8 @@ from fastmcp.server.auth.providers.descope import DescopeProvider
68
64
  # The DescopeProvider automatically discovers Descope endpoints
69
65
  # and configures JWT token validation
70
66
  auth_provider = DescopeProvider(
71
- project_id=DESCOPE_PROJECT_ID, # Your Descope Project ID
67
+ config_url=https://.../.well-known/openid-configuration, # Your MCP Server .well-known URL
72
68
  base_url=SERVER_URL, # Your server's public URL
73
- descope_base_url=DESCOPE_BASE_URL, # Descope API base URL
74
69
  )
75
70
 
76
71
  # Create FastMCP server with auth
@@ -80,7 +75,7 @@ mcp = FastMCP(name="My Descope Protected Server", auth=auth_provider)
80
75
 
81
76
  ## Testing
82
77
 
83
- To test your server, you can use the `fastmcp` CLI to run it locally. Assuming you've saved the above code to `server.py` (after replacing the `project_id`, `base_url`, and `descope_base_url` with your actual values!), you can run the following command:
78
+ To test your server, you can use the `fastmcp` CLI to run it locally. Assuming you've saved the above code to `server.py` (after replacing the environment variables with your actual values!), you can run the following command:
84
79
 
85
80
  ```bash
86
81
  fastmcp run server.py --transport http --port 8000
@@ -102,7 +97,6 @@ if __name__ == "__main__":
102
97
 
103
98
  ## Environment Variables
104
99
 
105
-
106
100
  For production deployments, use environment variables instead of hardcoding credentials.
107
101
 
108
102
  ### Provider Selection
@@ -110,9 +104,10 @@ For production deployments, use environment variables instead of hardcoding cred
110
104
  Setting this environment variable allows the Descope provider to be used automatically without explicitly instantiating it in code.
111
105
 
112
106
  <Card>
113
- <ParamField path="FASTMCP_SERVER_AUTH" default="Not set">
114
- Set to `fastmcp.server.auth.providers.descope.DescopeProvider` to use Descope authentication.
115
- </ParamField>
107
+ <ParamField path="FASTMCP_SERVER_AUTH" default="Not set">
108
+ Set to `fastmcp.server.auth.providers.descope.DescopeProvider` to use
109
+ Descope authentication.
110
+ </ParamField>
116
111
  </Card>
117
112
 
118
113
  ### Descope-Specific Configuration
@@ -120,28 +115,25 @@ Set to `fastmcp.server.auth.providers.descope.DescopeProvider` to use Descope au
120
115
  These environment variables provide default values for the Descope provider, whether it's instantiated manually or configured via `FASTMCP_SERVER_AUTH`.
121
116
 
122
117
  <Card>
123
- <ParamField path="FASTMCP_SERVER_AUTH_DESCOPEPROVIDER_PROJECT_ID" required>
124
- Your Descope Project ID from the [Descope Console](https://app.descope.com/settings/project)
118
+ <ParamField path="FASTMCP_SERVER_AUTH_DESCOPEPROVIDER_CONFIG_URL" required>
119
+ Your Well-Known URL from the [Descope Console](https://app.descope.com/mcp-servers)
125
120
  </ParamField>
126
121
 
127
122
  <ParamField path="FASTMCP_SERVER_AUTH_DESCOPEPROVIDER_BASE_URL" required>
128
- Public URL of your FastMCP server (e.g., `https://your-server.com` or `http://localhost:8000` for development)
129
- </ParamField>
130
-
131
- <ParamField path="FASTMCP_SERVER_AUTH_DESCOPEPROVIDER_DESCOPE_BASE_URL" default="https://api.descope.com">
132
- Descope API base URL for your [region/environment](https://docs.descope.com/management/project-settings/multi-regional)
123
+ Public URL of your FastMCP server (e.g., `https://your-server.com` or
124
+ `http://localhost:8000` for development)
133
125
  </ParamField>
134
126
  </Card>
135
127
 
136
128
  Example `.env` file:
129
+
137
130
  ```bash
138
131
  # Use the Descope provider
139
132
  FASTMCP_SERVER_AUTH=fastmcp.server.auth.providers.descope.DescopeProvider
140
133
 
141
134
  # Descope configuration
142
- FASTMCP_SERVER_AUTH_DESCOPEPROVIDER_PROJECT_ID=P2abc...123
135
+ FASTMCP_SERVER_AUTH_DESCOPEPROVIDER_CONFIG_URL=https://.../v1/apps/agentic/P.../M.../.well-known/openid-configuration
143
136
  FASTMCP_SERVER_AUTH_DESCOPEPROVIDER_BASE_URL=https://your-server.com
144
- FASTMCP_SERVER_AUTH_DESCOPEPROVIDER_DESCOPE_BASE_URL=https://api.descope.com
145
137
  ```
146
138
 
147
139
  With environment variables set, your server code simplifies to:
@@ -151,4 +143,4 @@ from fastmcp import FastMCP
151
143
 
152
144
  # Authentication is automatically configured from environment
153
145
  mcp = FastMCP(name="My Descope Protected Server")
154
- ```
146
+ ```