fastmcp 2.12.4__tar.gz → 2.13.0rc1__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 (670) hide show
  1. fastmcp-2.13.0rc1/.cursor/worktrees.json +6 -0
  2. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/.github/workflows/auto-close-duplicates.yml +10 -2
  3. fastmcp-2.13.0rc1/.github/workflows/auto-close-needs-mre.yml +36 -0
  4. fastmcp-2.13.0rc1/.github/workflows/martian-issue-triage.yml +172 -0
  5. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/.github/workflows/marvin-dedupe-issues.yml +25 -13
  6. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/.github/workflows/marvin-label-triage.yml +23 -37
  7. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/.github/workflows/marvin.yml +11 -4
  8. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/.github/workflows/publish.yml +1 -1
  9. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/.github/workflows/run-static.yml +1 -1
  10. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/.github/workflows/run-tests.yml +17 -11
  11. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/.github/workflows/update-config-schema.yml +1 -1
  12. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/.github/workflows/update-sdk-docs.yml +1 -1
  13. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/PKG-INFO +8 -4
  14. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/README.md +3 -0
  15. fastmcp-2.13.0rc1/SECURITY.md +16 -0
  16. fastmcp-2.13.0rc1/docs/assets/images/oauth-proxy-consent-screen.png +0 -0
  17. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/changelog.mdx +118 -0
  18. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/community/showcase.mdx +6 -0
  19. fastmcp-2.13.0rc1/docs/deployment/http.mdx +535 -0
  20. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/deployment/running-server.mdx +5 -5
  21. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/development/tests.mdx +48 -5
  22. fastmcp-2.13.0rc1/docs/development/upgrade-guide.mdx +44 -0
  23. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/docs.json +61 -28
  24. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/getting-started/welcome.mdx +5 -4
  25. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/integrations/auth0.mdx +5 -1
  26. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/integrations/aws-cognito.mdx +5 -1
  27. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/integrations/azure.mdx +56 -9
  28. fastmcp-2.13.0rc1/docs/integrations/chatgpt.mdx +157 -0
  29. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/integrations/fastapi.mdx +13 -5
  30. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/integrations/github.mdx +5 -1
  31. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/integrations/google.mdx +5 -1
  32. fastmcp-2.13.0rc1/docs/integrations/scalekit.mdx +187 -0
  33. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/integrations/workos.mdx +5 -1
  34. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/patterns/cli.mdx +1 -1
  35. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/patterns/tool-transformation.mdx +134 -3
  36. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/public/schemas/fastmcp.json/latest.json +3 -0
  37. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/public/schemas/fastmcp.json/v1.json +3 -0
  38. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/python-sdk/fastmcp-cli-cli.mdx +6 -6
  39. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/python-sdk/fastmcp-cli-install-gemini_cli.mdx +1 -1
  40. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/python-sdk/fastmcp-cli-run.mdx +12 -2
  41. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/python-sdk/fastmcp-client-auth-oauth.mdx +13 -74
  42. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/python-sdk/fastmcp-client-client.mdx +10 -8
  43. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/python-sdk/fastmcp-client-logging.mdx +2 -2
  44. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/python-sdk/fastmcp-client-oauth_callback.mdx +5 -5
  45. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/python-sdk/fastmcp-client-transports.mdx +16 -16
  46. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/python-sdk/fastmcp-prompts-prompt.mdx +15 -12
  47. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/python-sdk/fastmcp-prompts-prompt_manager.mdx +8 -26
  48. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/python-sdk/fastmcp-resources-resource.mdx +16 -13
  49. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/python-sdk/fastmcp-resources-resource_manager.mdx +11 -38
  50. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/python-sdk/fastmcp-resources-template.mdx +45 -18
  51. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/python-sdk/fastmcp-server-auth-auth.mdx +51 -22
  52. fastmcp-2.13.0rc1/docs/python-sdk/fastmcp-server-auth-jwt_issuer.mdx +195 -0
  53. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/python-sdk/fastmcp-server-auth-oauth_proxy.mdx +128 -29
  54. fastmcp-2.13.0rc1/docs/python-sdk/fastmcp-server-auth-oidc_proxy.mdx +82 -0
  55. fastmcp-2.13.0rc1/docs/python-sdk/fastmcp-server-auth-providers-auth0.mdx +47 -0
  56. fastmcp-2.13.0rc1/docs/python-sdk/fastmcp-server-auth-providers-aws.mdx +88 -0
  57. fastmcp-2.13.0rc1/docs/python-sdk/fastmcp-server-auth-providers-azure.mdx +66 -0
  58. fastmcp-2.13.0rc1/docs/python-sdk/fastmcp-server-auth-providers-descope.mdx +62 -0
  59. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/python-sdk/fastmcp-server-auth-providers-github.mdx +4 -4
  60. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/python-sdk/fastmcp-server-auth-providers-google.mdx +4 -4
  61. fastmcp-2.13.0rc1/docs/python-sdk/fastmcp-server-auth-providers-introspection.mdx +77 -0
  62. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/python-sdk/fastmcp-server-auth-providers-jwt.mdx +11 -11
  63. fastmcp-2.13.0rc1/docs/python-sdk/fastmcp-server-auth-providers-scalekit.mdx +64 -0
  64. fastmcp-2.13.0rc1/docs/python-sdk/fastmcp-server-auth-providers-supabase.mdx +62 -0
  65. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/python-sdk/fastmcp-server-auth-providers-workos.mdx +8 -8
  66. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/python-sdk/fastmcp-server-context.mdx +50 -40
  67. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/python-sdk/fastmcp-server-http.mdx +8 -8
  68. fastmcp-2.13.0rc1/docs/python-sdk/fastmcp-server-low_level.mdx +53 -0
  69. fastmcp-2.13.0rc1/docs/python-sdk/fastmcp-server-middleware-caching.mdx +189 -0
  70. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/python-sdk/fastmcp-server-middleware-error_handling.mdx +5 -5
  71. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/python-sdk/fastmcp-server-middleware-logging.mdx +13 -18
  72. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/python-sdk/fastmcp-server-middleware-middleware.mdx +28 -22
  73. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/python-sdk/fastmcp-server-server.mdx +85 -62
  74. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/python-sdk/fastmcp-settings.mdx +16 -10
  75. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/python-sdk/fastmcp-tools-tool.mdx +10 -10
  76. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/python-sdk/fastmcp-tools-tool_manager.mdx +12 -30
  77. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/python-sdk/fastmcp-tools-tool_transform.mdx +2 -2
  78. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/python-sdk/fastmcp-utilities-components.mdx +12 -12
  79. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/python-sdk/fastmcp-utilities-inspect.mdx +11 -11
  80. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/python-sdk/fastmcp-utilities-json_schema.mdx +1 -1
  81. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/python-sdk/fastmcp-utilities-logging.mdx +19 -3
  82. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-mcp_server_config.mdx +1 -1
  83. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/python-sdk/fastmcp-utilities-tests.mdx +6 -6
  84. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/python-sdk/fastmcp-utilities-types.mdx +1 -1
  85. fastmcp-2.13.0rc1/docs/python-sdk/fastmcp-utilities-ui.mdx +138 -0
  86. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/servers/auth/oauth-proxy.mdx +178 -64
  87. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/servers/auth/oidc-proxy.mdx +6 -6
  88. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/servers/auth/remote-oauth.mdx +6 -1
  89. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/servers/auth/token-verification.mdx +42 -10
  90. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/servers/composition.mdx +60 -0
  91. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/servers/context.mdx +7 -2
  92. fastmcp-2.13.0rc1/docs/servers/icons.mdx +128 -0
  93. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/servers/logging.mdx +21 -8
  94. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/servers/middleware.mdx +52 -0
  95. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/servers/prompts.mdx +12 -2
  96. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/servers/proxy.mdx +21 -4
  97. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/servers/resources.mdx +80 -29
  98. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/servers/server.mdx +28 -2
  99. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/servers/tools.mdx +173 -410
  100. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/updates.mdx +46 -0
  101. fastmcp-2.13.0rc1/examples/auth/authkit_dcr/README.md +25 -0
  102. fastmcp-2.13.0rc1/examples/auth/authkit_dcr/server.py +33 -0
  103. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/examples/auth/github_oauth/server.py +10 -1
  104. fastmcp-2.13.0rc1/examples/auth/scalekit_oauth/README.md +54 -0
  105. fastmcp-2.13.0rc1/examples/auth/scalekit_oauth/client.py +41 -0
  106. fastmcp-2.13.0rc1/examples/auth/scalekit_oauth/server.py +48 -0
  107. fastmcp-2.13.0rc1/examples/auth/workos_oauth/README.md +27 -0
  108. fastmcp-2.13.0rc1/examples/auth/workos_oauth/client.py +32 -0
  109. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/examples/mount_example.py +1 -1
  110. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/examples/serializer.py +1 -1
  111. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/pyproject.toml +5 -5
  112. fastmcp-2.13.0rc1/scripts/auto_close_needs_mre.py +384 -0
  113. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/cli/cli.py +6 -6
  114. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/cli/install/claude_code.py +3 -3
  115. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/cli/install/claude_desktop.py +3 -3
  116. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/cli/install/cursor.py +7 -7
  117. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/cli/install/gemini_cli.py +3 -3
  118. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/cli/install/mcp_json.py +3 -3
  119. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/cli/run.py +13 -8
  120. fastmcp-2.13.0rc1/src/fastmcp/client/auth/oauth.py +319 -0
  121. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/client/client.py +11 -11
  122. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/client/logging.py +18 -14
  123. fastmcp-2.13.0rc1/src/fastmcp/client/oauth_callback.py +238 -0
  124. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/client/transports.py +76 -22
  125. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/contrib/component_manager/component_service.py +6 -6
  126. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/contrib/mcp_mixin/README.md +32 -1
  127. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/contrib/mcp_mixin/mcp_mixin.py +14 -2
  128. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/experimental/utilities/openapi/json_schema_converter.py +4 -0
  129. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/experimental/utilities/openapi/parser.py +23 -3
  130. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/prompts/prompt.py +13 -6
  131. fastmcp-2.13.0rc1/src/fastmcp/prompts/prompt_manager.py +118 -0
  132. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/resources/resource.py +13 -6
  133. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/resources/resource_manager.py +5 -164
  134. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/resources/template.py +107 -17
  135. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/server/auth/auth.py +40 -32
  136. fastmcp-2.13.0rc1/src/fastmcp/server/auth/jwt_issuer.py +289 -0
  137. fastmcp-2.13.0rc1/src/fastmcp/server/auth/oauth_proxy.py +2022 -0
  138. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/server/auth/oidc_proxy.py +8 -6
  139. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/server/auth/providers/auth0.py +12 -6
  140. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/server/auth/providers/aws.py +13 -2
  141. fastmcp-2.13.0rc1/src/fastmcp/server/auth/providers/azure.py +278 -0
  142. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/server/auth/providers/descope.py +4 -6
  143. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/server/auth/providers/github.py +13 -7
  144. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/server/auth/providers/google.py +13 -7
  145. fastmcp-2.13.0rc1/src/fastmcp/server/auth/providers/introspection.py +281 -0
  146. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/server/auth/providers/jwt.py +8 -2
  147. fastmcp-2.13.0rc1/src/fastmcp/server/auth/providers/scalekit.py +179 -0
  148. fastmcp-2.13.0rc1/src/fastmcp/server/auth/providers/supabase.py +172 -0
  149. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/server/auth/providers/workos.py +16 -13
  150. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/server/context.py +89 -34
  151. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/server/http.py +53 -16
  152. fastmcp-2.13.0rc1/src/fastmcp/server/low_level.py +156 -0
  153. fastmcp-2.13.0rc1/src/fastmcp/server/middleware/caching.py +469 -0
  154. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/server/middleware/error_handling.py +6 -2
  155. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/server/middleware/logging.py +48 -37
  156. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/server/middleware/middleware.py +28 -15
  157. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/server/middleware/rate_limiting.py +3 -3
  158. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/server/proxy.py +6 -6
  159. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/server/server.py +638 -183
  160. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/settings.py +22 -9
  161. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/tools/tool.py +7 -3
  162. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/tools/tool_manager.py +22 -108
  163. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/tools/tool_transform.py +3 -3
  164. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/utilities/cli.py +2 -2
  165. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/utilities/components.py +5 -0
  166. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/utilities/inspect.py +77 -21
  167. fastmcp-2.13.0rc1/src/fastmcp/utilities/logging.py +230 -0
  168. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/utilities/mcp_server_config/v1/environments/uv.py +6 -6
  169. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/utilities/mcp_server_config/v1/mcp_server_config.py +3 -3
  170. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/utilities/mcp_server_config/v1/schema.json +3 -0
  171. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/utilities/tests.py +87 -4
  172. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/utilities/types.py +1 -1
  173. fastmcp-2.13.0rc1/src/fastmcp/utilities/ui.py +497 -0
  174. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/cli/test_cli.py +0 -1
  175. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/cli/test_config.py +10 -5
  176. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/cli/test_cursor.py +1 -1
  177. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/cli/test_mcp_server_config_integration.py +3 -3
  178. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/cli/test_run.py +204 -0
  179. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/cli/test_server_args.py +0 -4
  180. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/client/auth/test_oauth_client.py +12 -16
  181. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/client/test_client.py +6 -12
  182. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/client/test_logs.py +64 -15
  183. fastmcp-2.13.0rc1/tests/client/test_oauth_callback_xss.py +159 -0
  184. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/client/test_openapi_experimental.py +21 -28
  185. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/client/test_openapi_legacy.py +16 -24
  186. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/client/test_sse.py +68 -47
  187. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/client/test_stdio.py +109 -0
  188. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/client/test_streamable_http.py +66 -59
  189. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/client/transports/test_uv_transport.py +1 -1
  190. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/contrib/test_mcp_mixin.py +67 -0
  191. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/experimental/openapi_parser/server/openapi/test_comprehensive.py +0 -11
  192. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/experimental/openapi_parser/server/openapi/test_deepobject_style.py +0 -5
  193. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/experimental/openapi_parser/server/openapi/test_openapi_features.py +0 -4
  194. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/experimental/openapi_parser/server/openapi/test_parameter_collisions.py +0 -3
  195. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/experimental/openapi_parser/server/openapi/test_server.py +0 -3
  196. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/experimental/openapi_parser/utilities/openapi/test_nullable_fields.py +130 -0
  197. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/experimental/openapi_parser/utilities/openapi/test_transitive_references.py +54 -0
  198. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/integration_tests/auth/test_github_provider_integration.py +87 -45
  199. fastmcp-2.13.0rc1/tests/integration_tests/test_github_mcp_remote.py +123 -0
  200. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/resources/test_resource_template.py +250 -3
  201. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/resources/test_resources.py +5 -4
  202. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/server/auth/providers/test_azure.py +140 -1
  203. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/server/auth/providers/test_descope.py +8 -15
  204. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/server/auth/providers/test_github.py +0 -2
  205. fastmcp-2.13.0rc1/tests/server/auth/providers/test_introspection.py +463 -0
  206. fastmcp-2.13.0rc1/tests/server/auth/providers/test_scalekit.py +155 -0
  207. fastmcp-2.13.0rc1/tests/server/auth/providers/test_supabase.py +165 -0
  208. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/server/auth/providers/test_workos.py +8 -15
  209. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/server/auth/test_auth_provider.py +11 -8
  210. fastmcp-2.13.0rc1/tests/server/auth/test_jwt_issuer.py +297 -0
  211. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/server/auth/test_jwt_provider.py +21 -31
  212. fastmcp-2.13.0rc1/tests/server/auth/test_oauth_consent_flow.py +870 -0
  213. fastmcp-2.13.0rc1/tests/server/auth/test_oauth_mounting.py +196 -0
  214. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/server/auth/test_oauth_proxy.py +413 -95
  215. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/server/auth/test_oauth_proxy_redirect_validation.py +1 -3
  216. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/server/auth/test_oauth_proxy_storage.py +41 -50
  217. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/server/auth/test_remote_auth_provider.py +33 -15
  218. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/server/http/test_custom_routes.py +1 -1
  219. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/server/http/test_http_auth_middleware.py +5 -3
  220. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/server/http/test_http_dependencies.py +13 -14
  221. fastmcp-2.13.0rc1/tests/server/middleware/test_caching.py +507 -0
  222. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/server/middleware/test_error_handling.py +12 -0
  223. fastmcp-2.13.0rc1/tests/server/middleware/test_initialization_middleware.py +251 -0
  224. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/server/middleware/test_logging.py +122 -226
  225. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/server/middleware/test_middleware.py +11 -0
  226. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/server/middleware/test_rate_limiting.py +10 -9
  227. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/server/openapi/test_advanced_behavior.py +6 -3
  228. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/server/openapi/test_basic_functionality.py +2 -0
  229. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/server/openapi/test_configuration.py +16 -13
  230. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/server/openapi/test_description_propagation.py +2 -1
  231. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/server/openapi/test_openapi_path_parameters.py +2 -2
  232. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/server/proxy/test_proxy_server.py +8 -8
  233. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/server/test_context.py +4 -3
  234. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/server/test_file_server.py +6 -6
  235. fastmcp-2.13.0rc1/tests/server/test_icons.py +342 -0
  236. fastmcp-2.13.0rc1/tests/server/test_input_validation.py +353 -0
  237. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/server/test_mount.py +112 -17
  238. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/server/test_server.py +10 -9
  239. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/server/test_server_interactions.py +51 -42
  240. fastmcp-2.13.0rc1/tests/server/test_server_lifespan.py +68 -0
  241. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/server/test_tool_annotations.py +1 -1
  242. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/server/test_tool_transformation.py +2 -2
  243. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/tools/test_tool.py +3 -0
  244. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/tools/test_tool_manager.py +14 -14
  245. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/utilities/test_cli.py +20 -17
  246. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/utilities/test_inspect.py +522 -2
  247. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/uv.lock +104 -18
  248. fastmcp-2.12.4/README_OPENAPI.md +0 -246
  249. fastmcp-2.12.4/Windows_Notes.md +0 -58
  250. fastmcp-2.12.4/docs/deployment/self-hosted.mdx +0 -209
  251. fastmcp-2.12.4/docs/integrations/asgi.mdx +0 -213
  252. fastmcp-2.12.4/docs/integrations/chatgpt.mdx +0 -159
  253. fastmcp-2.12.4/docs/python-sdk/fastmcp-cli-claude.mdx +0 -43
  254. fastmcp-2.12.4/docs/python-sdk/fastmcp-server-auth-providers-azure.mdx +0 -63
  255. fastmcp-2.12.4/docs/python-sdk/fastmcp-server-low_level.mdx +0 -18
  256. fastmcp-2.12.4/examples/auth/workos_oauth/README.md +0 -159
  257. fastmcp-2.12.4/src/fastmcp/cli/claude.py +0 -135
  258. fastmcp-2.12.4/src/fastmcp/client/auth/oauth.py +0 -427
  259. fastmcp-2.12.4/src/fastmcp/client/oauth_callback.py +0 -328
  260. fastmcp-2.12.4/src/fastmcp/prompts/prompt_manager.py +0 -203
  261. fastmcp-2.12.4/src/fastmcp/server/auth/oauth_proxy.py +0 -1018
  262. fastmcp-2.12.4/src/fastmcp/server/auth/providers/azure.py +0 -265
  263. fastmcp-2.12.4/src/fastmcp/server/low_level.py +0 -37
  264. fastmcp-2.12.4/src/fastmcp/utilities/logging.py +0 -120
  265. fastmcp-2.12.4/src/fastmcp/utilities/storage.py +0 -204
  266. fastmcp-2.12.4/tests/client/auth/test_oauth_token_expiry.py +0 -163
  267. fastmcp-2.12.4/tests/integration_tests/test_github_mcp_remote.py +0 -117
  268. fastmcp-2.12.4/tests/utilities/test_storage.py +0 -143
  269. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/.ccignore +0 -0
  270. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/.cursor/rules/core-mcp-objects.mdc +0 -0
  271. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/.github/ISSUE_TEMPLATE/bug.yml +0 -0
  272. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  273. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/.github/ISSUE_TEMPLATE/enhancement.yml +0 -0
  274. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/.github/copilot-instructions.md +0 -0
  275. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/.github/dependabot.yml +0 -0
  276. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/.github/pull_request_template.md +0 -0
  277. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/.github/release.yml +0 -0
  278. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/.gitignore +0 -0
  279. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/.pre-commit-config.yaml +0 -0
  280. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/AGENTS.md +0 -0
  281. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/CLAUDE.md +0 -0
  282. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/CODE_OF_CONDUCT.md +0 -0
  283. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/LICENSE +0 -0
  284. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/.ccignore +0 -0
  285. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/.cursor/rules/mintlify.mdc +0 -0
  286. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/assets/brand/blue-logo.png +0 -0
  287. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/assets/brand/f-watercolor-waves-dark.png +0 -0
  288. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/assets/brand/f-watercolor-waves.png +0 -0
  289. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/assets/brand/favicon.svg +0 -0
  290. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/assets/brand/thumbnail-background.png +0 -0
  291. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/assets/brand/wordmark-padded.png +0 -0
  292. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/assets/brand/wordmark-watercolor-rainbow-dark.png +0 -0
  293. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/assets/brand/wordmark-watercolor-rainbow.png +0 -0
  294. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/assets/brand/wordmark-watercolor-waves-dark.png +0 -0
  295. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/assets/brand/wordmark-watercolor-waves.png +0 -0
  296. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/assets/brand/wordmark-white-padded.png +0 -0
  297. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/assets/brand/wordmark-white.png +0 -0
  298. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/assets/brand/wordmark.png +0 -0
  299. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/assets/images/fastmcp_cloud/connect.png +0 -0
  300. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/assets/images/fastmcp_cloud/create_project.png +0 -0
  301. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/assets/images/fastmcp_cloud/deployment.png +0 -0
  302. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/assets/images/fastmcp_cloud/quickstart.png +0 -0
  303. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/assets/images/tutorial-rest-api-result.png +0 -0
  304. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/assets/schemas/mcp_server_config/latest.json +0 -0
  305. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/assets/schemas/mcp_server_config/v1.json +0 -0
  306. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/assets/updates/release-2-7.png +0 -0
  307. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/clients/auth/bearer.mdx +0 -0
  308. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/clients/auth/oauth.mdx +0 -0
  309. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/clients/client.mdx +0 -0
  310. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/clients/elicitation.mdx +0 -0
  311. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/clients/logging.mdx +0 -0
  312. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/clients/messages.mdx +0 -0
  313. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/clients/progress.mdx +0 -0
  314. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/clients/prompts.mdx +0 -0
  315. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/clients/resources.mdx +0 -0
  316. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/clients/roots.mdx +0 -0
  317. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/clients/sampling.mdx +0 -0
  318. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/clients/tools.mdx +0 -0
  319. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/clients/transports.mdx +0 -0
  320. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/community/README.md +0 -0
  321. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/css/banner.css +0 -0
  322. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/css/python-sdk.css +0 -0
  323. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/css/style.css +0 -0
  324. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/css/version-badge.css +0 -0
  325. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/deployment/fastmcp-cloud.mdx +0 -0
  326. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/deployment/server-configuration.mdx +0 -0
  327. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/development/contributing.mdx +0 -0
  328. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/development/releases.mdx +0 -0
  329. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/getting-started/installation.mdx +0 -0
  330. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/getting-started/quickstart.mdx +0 -0
  331. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/integrations/anthropic.mdx +0 -0
  332. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/integrations/authkit.mdx +0 -0
  333. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/integrations/claude-code.mdx +0 -0
  334. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/integrations/claude-desktop.mdx +0 -0
  335. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/integrations/cursor-install-mcp.png +0 -0
  336. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/integrations/cursor.mdx +0 -0
  337. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/integrations/descope.mdx +0 -0
  338. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/integrations/eunomia-authorization.mdx +0 -0
  339. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/integrations/gemini-cli.mdx +0 -0
  340. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/integrations/gemini.mdx +0 -0
  341. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/integrations/images/authkit/enable_dcr.png +0 -0
  342. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/integrations/images/permit/abac_condition_example.png +0 -0
  343. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/integrations/images/permit/abac_policy_example.png +0 -0
  344. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/integrations/images/permit/policy_mapping.png +0 -0
  345. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/integrations/images/permit/role_assignement.png +0 -0
  346. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/integrations/mcp-json-configuration.mdx +0 -0
  347. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/integrations/openai.mdx +0 -0
  348. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/integrations/openapi.mdx +0 -0
  349. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/integrations/permit.mdx +0 -0
  350. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/patterns/contrib.mdx +0 -0
  351. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/patterns/decorating-methods.mdx +0 -0
  352. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/python-sdk/fastmcp-cli-__init__.mdx +0 -0
  353. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/python-sdk/fastmcp-cli-install-__init__.mdx +0 -0
  354. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/python-sdk/fastmcp-cli-install-claude_code.mdx +0 -0
  355. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/python-sdk/fastmcp-cli-install-claude_desktop.mdx +0 -0
  356. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/python-sdk/fastmcp-cli-install-cursor.mdx +0 -0
  357. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/python-sdk/fastmcp-cli-install-mcp_json.mdx +0 -0
  358. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/python-sdk/fastmcp-cli-install-shared.mdx +0 -0
  359. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/python-sdk/fastmcp-client-__init__.mdx +0 -0
  360. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/python-sdk/fastmcp-client-auth-__init__.mdx +0 -0
  361. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/python-sdk/fastmcp-client-auth-bearer.mdx +0 -0
  362. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/python-sdk/fastmcp-client-elicitation.mdx +0 -0
  363. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/python-sdk/fastmcp-client-messages.mdx +0 -0
  364. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/python-sdk/fastmcp-client-progress.mdx +0 -0
  365. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/python-sdk/fastmcp-client-roots.mdx +0 -0
  366. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/python-sdk/fastmcp-client-sampling.mdx +0 -0
  367. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/python-sdk/fastmcp-exceptions.mdx +0 -0
  368. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/python-sdk/fastmcp-mcp_config.mdx +0 -0
  369. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/python-sdk/fastmcp-prompts-__init__.mdx +0 -0
  370. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/python-sdk/fastmcp-resources-__init__.mdx +0 -0
  371. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/python-sdk/fastmcp-resources-types.mdx +0 -0
  372. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/python-sdk/fastmcp-server-__init__.mdx +0 -0
  373. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/python-sdk/fastmcp-server-auth-__init__.mdx +0 -0
  374. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/python-sdk/fastmcp-server-auth-providers-__init__.mdx +0 -0
  375. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/python-sdk/fastmcp-server-auth-providers-bearer.mdx +0 -0
  376. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/python-sdk/fastmcp-server-auth-providers-in_memory.mdx +0 -0
  377. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/python-sdk/fastmcp-server-auth-redirect_validation.mdx +0 -0
  378. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/python-sdk/fastmcp-server-dependencies.mdx +0 -0
  379. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/python-sdk/fastmcp-server-elicitation.mdx +0 -0
  380. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/python-sdk/fastmcp-server-middleware-__init__.mdx +0 -0
  381. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/python-sdk/fastmcp-server-middleware-rate_limiting.mdx +0 -0
  382. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/python-sdk/fastmcp-server-middleware-timing.mdx +0 -0
  383. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/python-sdk/fastmcp-server-openapi.mdx +0 -0
  384. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/python-sdk/fastmcp-server-proxy.mdx +0 -0
  385. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/python-sdk/fastmcp-tools-__init__.mdx +0 -0
  386. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/python-sdk/fastmcp-utilities-__init__.mdx +0 -0
  387. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/python-sdk/fastmcp-utilities-auth.mdx +0 -0
  388. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/python-sdk/fastmcp-utilities-cli.mdx +0 -0
  389. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/python-sdk/fastmcp-utilities-exceptions.mdx +0 -0
  390. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/python-sdk/fastmcp-utilities-http.mdx +0 -0
  391. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/python-sdk/fastmcp-utilities-json_schema_type.mdx +0 -0
  392. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/python-sdk/fastmcp-utilities-mcp_config.mdx +0 -0
  393. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/python-sdk/fastmcp-utilities-mcp_server_config-__init__.mdx +0 -0
  394. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-__init__.mdx +0 -0
  395. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-environments-__init__.mdx +0 -0
  396. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-environments-base.mdx +0 -0
  397. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-environments-uv.mdx +0 -0
  398. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-sources-__init__.mdx +0 -0
  399. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-sources-base.mdx +0 -0
  400. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-sources-filesystem.mdx +0 -0
  401. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/python-sdk/fastmcp-utilities-openapi.mdx +0 -0
  402. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/servers/auth/authentication.mdx +0 -0
  403. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/servers/auth/full-oauth-server.mdx +0 -0
  404. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/servers/elicitation.mdx +0 -0
  405. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/servers/progress.mdx +0 -0
  406. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/servers/sampling.mdx +0 -0
  407. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/snippets/local-focus.mdx +0 -0
  408. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/snippets/version-badge.mdx +0 -0
  409. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/snippets/youtube-embed.mdx +0 -0
  410. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/tutorials/create-mcp-server.mdx +0 -0
  411. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/tutorials/mcp.mdx +0 -0
  412. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/docs/tutorials/rest-api.mdx +0 -0
  413. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/examples/atproto_mcp/README.md +0 -0
  414. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/examples/atproto_mcp/demo.py +0 -0
  415. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/examples/atproto_mcp/fastmcp.json +0 -0
  416. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/examples/atproto_mcp/pyproject.toml +0 -0
  417. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/examples/atproto_mcp/src/atproto_mcp/__init__.py +0 -0
  418. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/examples/atproto_mcp/src/atproto_mcp/__main__.py +0 -0
  419. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/examples/atproto_mcp/src/atproto_mcp/_atproto/__init__.py +0 -0
  420. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/examples/atproto_mcp/src/atproto_mcp/_atproto/_client.py +0 -0
  421. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/examples/atproto_mcp/src/atproto_mcp/_atproto/_posts.py +0 -0
  422. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/examples/atproto_mcp/src/atproto_mcp/_atproto/_profile.py +0 -0
  423. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/examples/atproto_mcp/src/atproto_mcp/_atproto/_read.py +0 -0
  424. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/examples/atproto_mcp/src/atproto_mcp/_atproto/_social.py +0 -0
  425. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/examples/atproto_mcp/src/atproto_mcp/py.typed +0 -0
  426. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/examples/atproto_mcp/src/atproto_mcp/server.py +0 -0
  427. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/examples/atproto_mcp/src/atproto_mcp/settings.py +0 -0
  428. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/examples/atproto_mcp/src/atproto_mcp/types.py +0 -0
  429. {fastmcp-2.12.4/examples/auth/azure_oauth → fastmcp-2.13.0rc1/examples/auth/authkit_dcr}/client.py +0 -0
  430. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/examples/auth/aws_oauth/README.md +0 -0
  431. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/examples/auth/aws_oauth/client.py +0 -0
  432. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/examples/auth/aws_oauth/requirements.txt +0 -0
  433. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/examples/auth/aws_oauth/server.py +0 -0
  434. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/examples/auth/azure_oauth/README.md +0 -0
  435. {fastmcp-2.12.4/examples/auth/github_oauth → fastmcp-2.13.0rc1/examples/auth/azure_oauth}/client.py +0 -0
  436. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/examples/auth/azure_oauth/server.py +0 -0
  437. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/examples/auth/github_oauth/README.md +0 -0
  438. {fastmcp-2.12.4/examples/auth/google_oauth → fastmcp-2.13.0rc1/examples/auth/github_oauth}/client.py +0 -0
  439. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/examples/auth/google_oauth/README.md +0 -0
  440. {fastmcp-2.12.4/examples/auth/workos_oauth → fastmcp-2.13.0rc1/examples/auth/google_oauth}/client.py +0 -0
  441. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/examples/auth/google_oauth/server.py +0 -0
  442. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/examples/auth/workos_oauth/server.py +0 -0
  443. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/examples/complex_inputs.py +0 -0
  444. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/examples/config_server.py +0 -0
  445. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/examples/desktop.py +0 -0
  446. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/examples/echo.py +0 -0
  447. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/examples/fastmcp_config/env_interpolation_example.json +0 -0
  448. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/examples/fastmcp_config/fastmcp.json +0 -0
  449. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/examples/fastmcp_config/full_example.fastmcp.json +0 -0
  450. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/examples/fastmcp_config/server.py +0 -0
  451. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/examples/fastmcp_config/simple.fastmcp.json +0 -0
  452. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/examples/fastmcp_config_demo/README.md +0 -0
  453. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/examples/fastmcp_config_demo/fastmcp.json +0 -0
  454. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/examples/fastmcp_config_demo/server.py +0 -0
  455. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/examples/get_file.py +0 -0
  456. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/examples/in_memory_proxy_example.py +0 -0
  457. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/examples/memory.fastmcp.json +0 -0
  458. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/examples/memory.py +0 -0
  459. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/examples/mount_example.fastmcp.json +0 -0
  460. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/examples/sampling.py +0 -0
  461. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/examples/sampling_fallback.py +0 -0
  462. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/examples/screenshot.fastmcp.json +0 -0
  463. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/examples/screenshot.py +0 -0
  464. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/examples/simple_echo.py +0 -0
  465. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/examples/smart_home/README.md +0 -0
  466. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/examples/smart_home/hub.fastmcp.json +0 -0
  467. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/examples/smart_home/lights.fastmcp.json +0 -0
  468. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/examples/smart_home/pyproject.toml +0 -0
  469. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/examples/smart_home/src/smart_home/__init__.py +0 -0
  470. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/examples/smart_home/src/smart_home/__main__.py +0 -0
  471. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/examples/smart_home/src/smart_home/hub.py +0 -0
  472. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/examples/smart_home/src/smart_home/lights/__init__.py +0 -0
  473. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/examples/smart_home/src/smart_home/lights/hue_utils.py +0 -0
  474. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/examples/smart_home/src/smart_home/lights/server.py +0 -0
  475. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/examples/smart_home/src/smart_home/py.typed +0 -0
  476. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/examples/smart_home/src/smart_home/settings.py +0 -0
  477. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/examples/tags_example.py +0 -0
  478. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/examples/text_me.py +0 -0
  479. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/justfile +0 -0
  480. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/scripts/auto_close_duplicates.py +0 -0
  481. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/__init__.py +0 -0
  482. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/cli/__init__.py +0 -0
  483. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/cli/install/__init__.py +0 -0
  484. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/cli/install/shared.py +0 -0
  485. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/client/__init__.py +0 -0
  486. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/client/auth/__init__.py +0 -0
  487. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/client/auth/bearer.py +0 -0
  488. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/client/elicitation.py +0 -0
  489. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/client/messages.py +0 -0
  490. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/client/progress.py +0 -0
  491. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/client/roots.py +0 -0
  492. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/client/sampling.py +0 -0
  493. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/contrib/README.md +0 -0
  494. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/contrib/bulk_tool_caller/README.md +0 -0
  495. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/contrib/bulk_tool_caller/__init__.py +0 -0
  496. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/contrib/bulk_tool_caller/bulk_tool_caller.py +0 -0
  497. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/contrib/bulk_tool_caller/example.py +0 -0
  498. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/contrib/component_manager/README.md +0 -0
  499. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/contrib/component_manager/__init__.py +0 -0
  500. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/contrib/component_manager/component_manager.py +0 -0
  501. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/contrib/component_manager/example.py +0 -0
  502. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/contrib/mcp_mixin/__init__.py +0 -0
  503. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/contrib/mcp_mixin/example.py +0 -0
  504. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/exceptions.py +0 -0
  505. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/experimental/sampling/__init__.py +0 -0
  506. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/experimental/sampling/handlers/__init__.py +0 -0
  507. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/experimental/sampling/handlers/base.py +0 -0
  508. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/experimental/sampling/handlers/openai.py +0 -0
  509. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/experimental/server/openapi/README.md +0 -0
  510. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/experimental/server/openapi/__init__.py +0 -0
  511. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/experimental/server/openapi/components.py +0 -0
  512. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/experimental/server/openapi/routing.py +0 -0
  513. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/experimental/server/openapi/server.py +0 -0
  514. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/experimental/utilities/openapi/README.md +0 -0
  515. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/experimental/utilities/openapi/__init__.py +0 -0
  516. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/experimental/utilities/openapi/director.py +0 -0
  517. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/experimental/utilities/openapi/formatters.py +0 -0
  518. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/experimental/utilities/openapi/models.py +0 -0
  519. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/experimental/utilities/openapi/schemas.py +0 -0
  520. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/mcp_config.py +0 -0
  521. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/prompts/__init__.py +0 -0
  522. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/py.typed +0 -0
  523. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/resources/__init__.py +0 -0
  524. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/resources/types.py +0 -0
  525. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/server/__init__.py +0 -0
  526. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/server/auth/__init__.py +0 -0
  527. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/server/auth/providers/__init__.py +0 -0
  528. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/server/auth/providers/bearer.py +0 -0
  529. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/server/auth/providers/in_memory.py +0 -0
  530. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/server/auth/redirect_validation.py +0 -0
  531. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/server/dependencies.py +0 -0
  532. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/server/elicitation.py +0 -0
  533. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/server/middleware/__init__.py +0 -0
  534. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/server/middleware/timing.py +0 -0
  535. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/server/openapi.py +0 -0
  536. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/server/sampling/handler.py +0 -0
  537. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/tools/__init__.py +0 -0
  538. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/utilities/__init__.py +0 -0
  539. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/utilities/auth.py +0 -0
  540. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/utilities/exceptions.py +0 -0
  541. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/utilities/http.py +0 -0
  542. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/utilities/json_schema.py +0 -0
  543. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/utilities/json_schema_type.py +0 -0
  544. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/utilities/mcp_config.py +0 -0
  545. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/utilities/mcp_server_config/__init__.py +0 -0
  546. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/utilities/mcp_server_config/v1/__init__.py +0 -0
  547. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/utilities/mcp_server_config/v1/environments/__init__.py +0 -0
  548. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/utilities/mcp_server_config/v1/environments/base.py +0 -0
  549. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/utilities/mcp_server_config/v1/sources/__init__.py +0 -0
  550. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/utilities/mcp_server_config/v1/sources/base.py +0 -0
  551. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/utilities/mcp_server_config/v1/sources/filesystem.py +0 -0
  552. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/src/fastmcp/utilities/openapi.py +0 -0
  553. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/__init__.py +0 -0
  554. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/cli/__init__.py +0 -0
  555. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/cli/test_install.py +0 -0
  556. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/cli/test_mcp_server_config_schema.py +0 -0
  557. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/cli/test_project_prepare.py +0 -0
  558. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/cli/test_run_config.py +0 -0
  559. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/cli/test_shared.py +0 -0
  560. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/cli/test_with_argv.py +0 -0
  561. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/client/__init__.py +0 -0
  562. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/client/auth/__init__.py +0 -0
  563. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/client/test_elicitation.py +0 -0
  564. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/client/test_notifications.py +0 -0
  565. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/client/test_progress.py +0 -0
  566. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/client/test_roots.py +0 -0
  567. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/client/test_sampling.py +0 -0
  568. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/client/transports/__init__.py +0 -0
  569. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/conftest.py +0 -0
  570. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/contrib/__init__.py +0 -0
  571. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/contrib/test_bulk_tool_caller.py +0 -0
  572. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/contrib/test_component_manager.py +0 -0
  573. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/deprecated/__init__.py +0 -0
  574. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/deprecated/test_bearer_auth_provider.py +0 -0
  575. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/deprecated/test_dependencies.py +0 -0
  576. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/deprecated/test_deprecated.py +0 -0
  577. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/deprecated/test_mount_import_arg_order.py +0 -0
  578. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/deprecated/test_mount_separators.py +0 -0
  579. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/deprecated/test_output_schema_false.py +0 -0
  580. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/deprecated/test_proxy_client.py +0 -0
  581. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/deprecated/test_resource_prefixes.py +0 -0
  582. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/deprecated/test_route_type_ignore.py +0 -0
  583. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/deprecated/test_settings.py +0 -0
  584. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/experimental/README.md +0 -0
  585. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/experimental/__init__.py +0 -0
  586. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/experimental/openapi_parser/README.md +0 -0
  587. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/experimental/openapi_parser/__init__.py +0 -0
  588. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/experimental/openapi_parser/conftest.py +0 -0
  589. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/experimental/openapi_parser/server/__init__.py +0 -0
  590. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/experimental/openapi_parser/server/openapi/__init__.py +0 -0
  591. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/experimental/openapi_parser/server/openapi/test_end_to_end_compatibility.py +0 -0
  592. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/experimental/openapi_parser/server/openapi/test_openapi_performance.py +0 -0
  593. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/experimental/openapi_parser/server/openapi/test_performance_comparison.py +0 -0
  594. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/experimental/openapi_parser/utilities/__init__.py +0 -0
  595. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/experimental/openapi_parser/utilities/openapi/__init__.py +0 -0
  596. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/experimental/openapi_parser/utilities/openapi/conftest.py +0 -0
  597. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/experimental/openapi_parser/utilities/openapi/test_allof_requestbody.py +0 -0
  598. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/experimental/openapi_parser/utilities/openapi/test_direct_array_schemas.py +0 -0
  599. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/experimental/openapi_parser/utilities/openapi/test_director.py +0 -0
  600. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/experimental/openapi_parser/utilities/openapi/test_legacy_compatibility.py +0 -0
  601. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/experimental/openapi_parser/utilities/openapi/test_models.py +0 -0
  602. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/experimental/openapi_parser/utilities/openapi/test_parser.py +0 -0
  603. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/experimental/openapi_parser/utilities/openapi/test_schemas.py +0 -0
  604. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/experimental/sampling/test_openai_handler.py +0 -0
  605. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/integration_tests/__init__.py +0 -0
  606. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/integration_tests/auth/__init__.py +0 -0
  607. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/integration_tests/conftest.py +0 -0
  608. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/prompts/__init__.py +0 -0
  609. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/prompts/test_prompt.py +0 -0
  610. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/prompts/test_prompt_manager.py +0 -0
  611. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/resources/__init__.py +0 -0
  612. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/resources/test_file_resources.py +0 -0
  613. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/resources/test_function_resources.py +0 -0
  614. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/resources/test_resource_manager.py +0 -0
  615. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/resources/test_resource_template_meta.py +0 -0
  616. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/server/__init__.py +0 -0
  617. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/server/auth/__init__.py +0 -0
  618. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/server/auth/providers/__init__.py +0 -0
  619. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/server/auth/providers/test_auth0.py +0 -0
  620. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/server/auth/providers/test_aws.py +0 -0
  621. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/server/auth/providers/test_google.py +0 -0
  622. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/server/auth/test_oidc_proxy.py +0 -0
  623. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/server/auth/test_redirect_validation.py +0 -0
  624. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/server/auth/test_static_token_verifier.py +0 -0
  625. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/server/http/__init__.py +0 -0
  626. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/server/http/test_bearer_auth_backend.py +0 -0
  627. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/server/http/test_http_middleware.py +0 -0
  628. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/server/middleware/__init__.py +0 -0
  629. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/server/middleware/test_timing.py +0 -0
  630. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/server/openapi/__init__.py +0 -0
  631. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/server/openapi/conftest.py +0 -0
  632. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/server/openapi/test_deepobject_style.py +0 -0
  633. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/server/openapi/test_explode_integration.py +0 -0
  634. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/server/openapi/test_openapi_compatibility.py +0 -0
  635. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/server/openapi/test_optional_parameters.py +0 -0
  636. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/server/openapi/test_parameter_collisions.py +0 -0
  637. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/server/openapi/test_route_map_fn.py +0 -0
  638. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/server/proxy/__init__.py +0 -0
  639. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/server/proxy/test_proxy_client.py +0 -0
  640. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/server/proxy/test_stateful_proxy_client.py +0 -0
  641. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/server/test_app_state.py +0 -0
  642. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/server/test_auth_integration.py +0 -0
  643. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/server/test_experimental_openapi_feature_flag.py +0 -0
  644. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/server/test_import_server.py +0 -0
  645. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/server/test_log_level.py +0 -0
  646. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/server/test_logging.py +0 -0
  647. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/server/test_resource_prefix_formats.py +0 -0
  648. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/server/test_run_server.py +0 -0
  649. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/server/test_streamable_http_no_redirect.py +0 -0
  650. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/server/test_tool_exclude_args.py +0 -0
  651. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/test_examples.py +0 -0
  652. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/test_mcp_config.py +0 -0
  653. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/tools/__init__.py +0 -0
  654. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/tools/test_tool_future_annotations.py +0 -0
  655. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/tools/test_tool_transform.py +0 -0
  656. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/utilities/__init__.py +0 -0
  657. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/utilities/openapi/__init__.py +0 -0
  658. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/utilities/openapi/conftest.py +0 -0
  659. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/utilities/openapi/test_nullable_fields.py +0 -0
  660. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/utilities/openapi/test_openapi.py +0 -0
  661. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/utilities/openapi/test_openapi_advanced.py +0 -0
  662. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/utilities/openapi/test_openapi_fastapi.py +0 -0
  663. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/utilities/openapi/test_openapi_output_schemas.py +0 -0
  664. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/utilities/test_components.py +0 -0
  665. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/utilities/test_json_schema.py +0 -0
  666. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/utilities/test_json_schema_type.py +0 -0
  667. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/utilities/test_logging.py +0 -0
  668. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/utilities/test_tests.py +0 -0
  669. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/utilities/test_typeadapter.py +0 -0
  670. {fastmcp-2.12.4 → fastmcp-2.13.0rc1}/tests/utilities/test_types.py +0 -0
@@ -0,0 +1,6 @@
1
+ {
2
+ "setup-worktree": [
3
+ "uv sync",
4
+ "uv run pre-commit install"
5
+ ]
6
+ }
@@ -12,17 +12,25 @@ jobs:
12
12
  permissions:
13
13
  contents: read
14
14
  issues: write
15
+ id-token: write
15
16
 
16
17
  steps:
17
18
  - name: Checkout repository
18
19
  uses: actions/checkout@v5
19
20
 
21
+ - name: Generate Marvin App token
22
+ id: marvin-token
23
+ uses: actions/create-github-app-token@v2
24
+ with:
25
+ app-id: ${{ secrets.MARVIN_APP_ID }}
26
+ private-key: ${{ secrets.MARVIN_APP_PRIVATE_KEY }}
27
+
20
28
  - name: Install uv
21
- uses: astral-sh/setup-uv@v6
29
+ uses: astral-sh/setup-uv@v7
22
30
 
23
31
  - name: Auto-close duplicate issues
24
32
  run: uv run scripts/auto_close_duplicates.py
25
33
  env:
26
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
34
+ GITHUB_TOKEN: ${{ steps.marvin-token.outputs.token }}
27
35
  GITHUB_REPOSITORY_OWNER: ${{ github.repository_owner }}
28
36
  GITHUB_REPOSITORY_NAME: ${{ github.event.repository.name }}
@@ -0,0 +1,36 @@
1
+ name: Auto-close needs MRE issues
2
+ description: Auto-closes issues that need minimal reproducible examples after 7 days of author inactivity
3
+ on:
4
+ schedule:
5
+ - cron: "0 9 * * *" # Run daily at 9 AM UTC
6
+ workflow_dispatch:
7
+
8
+ jobs:
9
+ auto-close-needs-mre:
10
+ runs-on: ubuntu-latest
11
+ timeout-minutes: 10
12
+ permissions:
13
+ contents: read
14
+ issues: write
15
+ id-token: write
16
+
17
+ steps:
18
+ - name: Checkout repository
19
+ uses: actions/checkout@v5
20
+
21
+ - name: Generate Marvin App token
22
+ id: marvin-token
23
+ uses: actions/create-github-app-token@v2
24
+ with:
25
+ app-id: ${{ secrets.MARVIN_APP_ID }}
26
+ private-key: ${{ secrets.MARVIN_APP_PRIVATE_KEY }}
27
+
28
+ - name: Install uv
29
+ uses: astral-sh/setup-uv@v7
30
+
31
+ - name: Auto-close needs MRE issues
32
+ run: uv run scripts/auto_close_needs_mre.py
33
+ env:
34
+ GITHUB_TOKEN: ${{ steps.marvin-token.outputs.token }}
35
+ GITHUB_REPOSITORY_OWNER: ${{ github.repository_owner }}
36
+ GITHUB_REPOSITORY_NAME: ${{ github.event.repository.name }}
@@ -0,0 +1,172 @@
1
+ name: Martian Issue Triage
2
+
3
+ on:
4
+ issues:
5
+ types: [opened, labeled]
6
+
7
+ concurrency:
8
+ group: triage-martian-${{ github.event.issue.number }}
9
+ cancel-in-progress: true
10
+
11
+ jobs:
12
+ martian-issue-triage:
13
+ if: |
14
+ (github.event.action == 'opened' && github.actor == 'strawgate') ||
15
+ (github.event.action == 'labeled' && github.event.label.name == 'triage-martian')
16
+ runs-on: ubuntu-latest
17
+ timeout-minutes: 10
18
+ permissions:
19
+ contents: read
20
+ issues: write
21
+ pull-requests: read
22
+ id-token: write
23
+
24
+ steps:
25
+ - name: Checkout base repository
26
+ uses: actions/checkout@v5
27
+ with:
28
+ repository: ${{ github.repository }}
29
+ ref: ${{ github.event.repository.default_branch }}
30
+
31
+ # Install UV package manager
32
+ - name: Install UV
33
+ uses: astral-sh/setup-uv@v7
34
+ with:
35
+ enable-cache: true
36
+ cache-dependency-glob: "uv.lock"
37
+
38
+ - name: Generate Marvin App token
39
+ id: marvin-token
40
+ uses: actions/create-github-app-token@v2
41
+ with:
42
+ app-id: ${{ secrets.MARVIN_APP_ID }}
43
+ private-key: ${{ secrets.MARVIN_APP_PRIVATE_KEY }}
44
+
45
+ - name: Set triage prompt
46
+ id: triage-prompt
47
+ run: |
48
+ cat >> $GITHUB_OUTPUT << 'EOF'
49
+ PROMPT<<PROMPT_END
50
+ You're an issue triage assistant for FastMCP, a Python framework for building Model Context Protocol servers and clients.
51
+
52
+ # IMPORTANT RULES
53
+ 1. You will not make branches or pull requests. Your ONLY action will be investigating the issue, locating related issues,
54
+ pull requests, and files in the repository and reporting your findings.
55
+ 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).
56
+ 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.
57
+ 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.
58
+
59
+ # Getting Started
60
+ 1. Call the generate_agents_md tool to get a high-level summary of the project you're working in
61
+ 2. Get the issue ${{ github.event.issue.number }} in the GitHub repository: ${{ github.repository }}.
62
+ 3. Use the search_issues and search_pull_requests tools to scour the repository for actually related issues and pull requests
63
+ 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.
64
+
65
+ # Providing a Great Response
66
+ 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.
67
+
68
+ In priority order your goal is to:
69
+ 1. Provide context about the request or issue (related issues, pull requests, files, etc.)
70
+ 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
71
+ 3. Provide an high quality and detailed plan that a junior developer could follow to implement the recommendation
72
+
73
+ Populate the following sections in your response:
74
+ Recommendation (or “No recommendation” with reason)
75
+ Findings
76
+ Detailed Action Plan
77
+ Related Items
78
+ Related Files
79
+ Related Webpages
80
+
81
+ 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.
82
+
83
+ 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.
84
+
85
+ # Example output for "Recommendation" part of the response
86
+ 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.
87
+
88
+ <details>
89
+ <summary>Findings</summary>
90
+ ...details from the code analysis that are relevant to the issue and the recommendation...
91
+ </details>
92
+
93
+ <details>
94
+ <summary>Detailed Action Plan</summary>
95
+ ...a detailed plan that a junior developer could follow to implement the recommendation...
96
+ </details>
97
+
98
+ # Example Output for "Related Items" part of the response
99
+
100
+ <details>
101
+ <summary>Related Issues and Pull Requests</summary>
102
+
103
+ | Repository | Issue or PR | Relevance |
104
+ | --- | --- | --- |
105
+ | 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. |
106
+ | 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. |
107
+ </details>
108
+
109
+ <details>
110
+ <summary>Related Files</summary>
111
+
112
+ | Repository | File | Relevance | Sections |
113
+ | --- | --- | --- | --- |
114
+ | 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) |
115
+ | 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) |
116
+ </details>
117
+
118
+ <details>
119
+ <summary>Related Webpages</summary>
120
+ | Name | URL | Relevance |
121
+ | --- | --- | --- |
122
+ | 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. |
123
+ </details>
124
+
125
+ PROMPT_END
126
+ EOF
127
+
128
+ - name: Setup GitHub MCP Server
129
+ run: |
130
+ mkdir -p /tmp/mcp-config
131
+ cat > /tmp/mcp-config/mcp-servers.json << 'EOF'
132
+ {
133
+ "mcpServers": {
134
+ "repository-summary": {
135
+ "type": "http",
136
+ "url": "https://agents-md-generator.fastmcp.app/mcp"
137
+ },
138
+ "code-search": {
139
+ "type": "http",
140
+ "url": "https://public-code-search.fastmcp.app/mcp"
141
+ },
142
+ "github-research": {
143
+ "type": "stdio",
144
+ "command": "uvx",
145
+ "args": [
146
+ "github-research-mcp"
147
+ ],
148
+ "env": {
149
+ "DISABLE_SUMMARIES": "true",
150
+ "GITHUB_PERSONAL_ACCESS_TOKEN": "${{ steps.marvin-token.outputs.token }}"
151
+ }
152
+ }
153
+ }
154
+ }
155
+ EOF
156
+
157
+ - name: Run Martian for Issue Triage
158
+ uses: anthropics/claude-code-action@v1
159
+ with:
160
+ github_token: ${{ steps.marvin-token.outputs.token }}
161
+ bot_name: "Marvin Context Protocol"
162
+ prompt: ${{ steps.triage-prompt.outputs.PROMPT }}
163
+ anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY_FOR_CI }}
164
+ track_progress: true
165
+ claude_args: |
166
+ --model claude-sonnet-4-5-20250929
167
+ --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
168
+ --mcp-config /tmp/mcp-config/mcp-servers.json
169
+ settings: |
170
+ {
171
+ "GH_TOKEN": "${{ steps.marvin-token.outputs.token }}"
172
+ }
@@ -1,5 +1,5 @@
1
1
  name: Marvin Issue Dedupe
2
- description: Automatically dedupe GitHub issues using Marvin
2
+ # description: Automatically dedupe GitHub issues using Marvin
3
3
  on:
4
4
  issues:
5
5
  types: [opened]
@@ -17,6 +17,7 @@ jobs:
17
17
  permissions:
18
18
  contents: read
19
19
  issues: write
20
+ id-token: write
20
21
 
21
22
  steps:
22
23
  - name: Checkout repository
@@ -29,21 +30,22 @@ jobs:
29
30
  app-id: ${{ secrets.MARVIN_APP_ID }}
30
31
  private-key: ${{ secrets.MARVIN_APP_PRIVATE_KEY }}
31
32
 
32
- - name: Create dedupe prompt
33
+ - name: Set dedupe prompt
34
+ id: dedupe-prompt
33
35
  run: |
34
- mkdir -p /tmp/claude-prompts
35
- cat > /tmp/claude-prompts/dedupe-prompt.txt << 'EOF'
36
+ cat >> $GITHUB_OUTPUT << 'EOF'
37
+ PROMPT<<PROMPT_END
36
38
  Find up to 3 likely duplicate issues for GitHub issue ${{ github.repository }}/issues/${{ github.event.issue.number || inputs.issue_number }}.
37
39
 
38
40
  Follow these steps precisely:
39
41
 
40
- 1. Use the Task tool to check if the GitHub issue (a) is closed, (b) does not need to be deduped (eg. because it is broad product feedback without a specific solution, or positive feedback), or (c) already has a duplicates comment that you made earlier. If so, do not proceed.
42
+ 1. Check if the GitHub issue (a) is closed, (b) does not need to be deduped (eg. because it is broad product feedback without a specific solution, or positive feedback), or (c) already has a duplicates comment that you made earlier. If so, do not proceed.
41
43
 
42
- 2. Use the Task tool to view the GitHub issue, and ask the agent to return a summary of the issue
44
+ 2. View the GitHub issue and produce a summary of the issue
43
45
 
44
46
  3. Then, launch 3 parallel agents using the Task tool to search GitHub for duplicates of this issue, using diverse keywords and search approaches, using the summary from step 2
45
47
 
46
- 4. Next, feed the results from steps 2 and 3 into another agent using the Task tool, so that it can filter out false positives that are likely not actually duplicates of the original issue. If there are no duplicates remaining, do not proceed.
48
+ 4. Next, consider the results from steps 2 and 3 and filter out false positives that are likely not actually duplicates of the original issue. If there are no duplicates remaining, do not proceed.
47
49
 
48
50
  5. Finally, comment back on the issue with a list of up to three duplicate issues (or zero, if there are no likely duplicates). If there are no duplicates, DO NOT COMMENT. Just exit.
49
51
 
@@ -51,6 +53,7 @@ jobs:
51
53
  - Use `gh` to interact with GitHub, rather than web fetch
52
54
  - Do not use other tools, beyond `gh` and Task (eg. don't use other MCP servers, file edit, etc.)
53
55
  - Make a todo list first
56
+ - Never include this issue as a duplicate of itself
54
57
 
55
58
  For your comment, follow this format precisely (example with 3 suspected duplicates):
56
59
 
@@ -67,14 +70,23 @@ jobs:
67
70
  - To prevent auto-closure, add a comment or 👎 this comment
68
71
 
69
72
  ---
73
+ PROMPT_END
70
74
  EOF
71
75
 
72
76
  - name: Run Marvin dedupe command
73
- uses: anthropics/claude-code-base-action@beta
77
+ uses: anthropics/claude-code-action@v1
74
78
  with:
75
- model: claude-3-5-haiku-latest
76
- prompt_file: /tmp/claude-prompts/dedupe-prompt.txt
77
- allowed_tools: "Bash(gh issue view:*),Bash(gh search:*),Bash(gh issue list:*),Bash(gh api:*),Bash(gh issue comment:*),Task"
79
+ github_token: ${{ steps.marvin-token.outputs.token }}
80
+ bot_name: "Marvin Context Protocol"
81
+ prompt: ${{ steps.dedupe-prompt.outputs.PROMPT }}
78
82
  anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY_FOR_CI }}
79
- claude_env: |
80
- GH_TOKEN: ${{ steps.marvin-token.outputs.token }}
83
+ claude_args: |
84
+ --allowedTools Bash(gh issue view:*),Bash(gh search:*),Bash(gh issue list:*),Bash(gh api:*),Bash(gh issue comment:*),Task
85
+ --mcp-config /tmp/mcp-config/mcp-servers.json
86
+ settings: |
87
+ {
88
+ "model": "claude-sonnet-4-5-20250929",
89
+ "env": {
90
+ "GH_TOKEN": "${{ steps.marvin-token.outputs.token }}"
91
+ }
92
+ }
@@ -1,5 +1,6 @@
1
1
  name: Marvin Label Triage
2
- description: Automatically triage GitHub issues and PRs using Marvin
2
+ # Automatically triage GitHub issues and PRs using Marvin
3
+
3
4
  on:
4
5
  issues:
5
6
  types: [opened]
@@ -17,7 +18,7 @@ concurrency:
17
18
  cancel-in-progress: false
18
19
 
19
20
  jobs:
20
- triage-issue:
21
+ label-issue-or-pr:
21
22
  runs-on: ubuntu-latest
22
23
  timeout-minutes: 10
23
24
  permissions:
@@ -39,10 +40,11 @@ jobs:
39
40
  app-id: ${{ secrets.MARVIN_APP_ID }}
40
41
  private-key: ${{ secrets.MARVIN_APP_PRIVATE_KEY }}
41
42
 
42
- - name: Create triage prompt
43
+ - name: Set triage prompt
44
+ id: triage-prompt
43
45
  run: |
44
- mkdir -p /tmp/claude-prompts
45
- cat > /tmp/claude-prompts/triage-prompt.txt << 'EOF'
46
+ cat >> $GITHUB_OUTPUT << 'EOF'
47
+ PROMPT<<PROMPT_END
46
48
  You're an issue triage assistant for FastMCP, a Python framework for building Model Context Protocol servers and clients. Your task is to analyze issues/PRs and apply appropriate labels.
47
49
 
48
50
  IMPORTANT: Your ONLY action should be to apply labels using mcp__github__update_issue. DO NOT post any comments.
@@ -119,39 +121,23 @@ jobs:
119
121
  4. Apply selected labels:
120
122
  Use mcp__github__update_issue to apply your selected labels
121
123
  DO NOT post any comments
124
+ PROMPT_END
122
125
  EOF
123
126
 
124
- - name: Setup GitHub MCP Server
125
- run: |
126
- mkdir -p /tmp/mcp-config
127
- cat > /tmp/mcp-config/mcp-servers.json << 'EOF'
128
- {
129
- "mcpServers": {
130
- "github": {
131
- "command": "docker",
132
- "args": [
133
- "run",
134
- "-i",
135
- "--rm",
136
- "-e",
137
- "GITHUB_PERSONAL_ACCESS_TOKEN",
138
- "ghcr.io/github/github-mcp-server:sha-7aced2b"
139
- ],
140
- "env": {
141
- "GITHUB_PERSONAL_ACCESS_TOKEN": "${{ steps.marvin-token.outputs.token }}"
142
- }
143
- }
144
- }
145
- }
146
- EOF
147
-
148
- - name: Run Marvin for Issue Triage
149
- uses: anthropics/claude-code-base-action@beta
127
+ - name: Run Marvin for Issue Triage
128
+ uses: anthropics/claude-code-action@v1
150
129
  with:
151
- prompt_file: /tmp/claude-prompts/triage-prompt.txt
152
- allowed_tools: "Bash(gh label list),mcp__github__get_issue,mcp__github__get_issue_comments,mcp__github__update_issue,mcp__github__get_pull_request_files"
153
- timeout_minutes: "5"
130
+ github_token: ${{ steps.marvin-token.outputs.token }}
131
+ bot_name: "Marvin Context Protocol"
132
+ prompt: ${{ steps.triage-prompt.outputs.PROMPT }}
154
133
  anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY_FOR_CI }}
155
- mcp_config: /tmp/mcp-config/mcp-servers.json
156
- claude_env: |
157
- GH_TOKEN: ${{ steps.marvin-token.outputs.token }}
134
+ allowed_non_write_users: "*" # Required for issue triage workflow, if users without repo write access create issues
135
+ claude_args: |
136
+ --allowedTools Bash(gh label list),mcp__github__get_issue,mcp__github__get_issue_comments,mcp__github__update_issue,mcp__github__get_pull_request_files
137
+ settings: |
138
+ {
139
+ "model": "claude-sonnet-4-5-20250929",
140
+ "env": {
141
+ "GH_TOKEN": "${{ steps.marvin-token.outputs.token }}"
142
+ }
143
+ }
@@ -35,7 +35,7 @@ jobs:
35
35
 
36
36
  # Install UV package manager
37
37
  - name: Install UV
38
- uses: astral-sh/setup-uv@v6
38
+ uses: astral-sh/setup-uv@v7
39
39
  with:
40
40
  enable-cache: true
41
41
  cache-dependency-glob: "uv.lock"
@@ -59,13 +59,20 @@ jobs:
59
59
 
60
60
  # Marvin Assistant
61
61
  - name: Run Marvin
62
- uses: anthropics/claude-code-action@beta
62
+ uses: anthropics/claude-code-action@v1
63
63
  with:
64
64
  github_token: ${{ steps.marvin-token.outputs.token }}
65
65
  anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
66
- mode: tag
67
66
  trigger_phrase: "/marvin"
68
67
  allowed_bots: "*"
69
- allowed_tools: "WebSearch,WebFetch,Bash(uv:*),Bash(pre-commit:*),Bash(pytest:*),Bash(ruff:*),Bash(ty:*),Bash(git:*),Bash(gh:*),mcp__github__add_issue_comment,mcp__github__create_issue,mcp__github__get_issue,mcp__github__list_issues,mcp__github__search_issues,mcp__github__update_issue,mcp__github__update_issue_comment,mcp__github__create_pull_request,mcp__github__get_pull_request,mcp__github__get_pull_request_comments,mcp__github__get_pull_request_files,mcp__github__get_pull_request_reviews,mcp__github__get_pull_request_status,mcp__github__list_pull_requests,mcp__github__update_pull_request,mcp__github__update_pull_request_branch,mcp__github__update_pull_request_comment,mcp__github__merge_pull_request"
68
+ claude_args: |
69
+ --allowedTools WebSearch,WebFetch,Bash(uv:*),Bash(pre-commit:*),Bash(pytest:*),Bash(ruff:*),Bash(ty:*),Bash(git:*),Bash(gh:*),mcp__github__add_issue_comment,mcp__github__create_issue,mcp__github__get_issue,mcp__github__list_issues,mcp__github__search_issues,mcp__github__update_issue,mcp__github__update_issue_comment,mcp__github__create_pull_request,mcp__github__get_pull_request,mcp__github__get_pull_request_comments,mcp__github__get_pull_request_files,mcp__github__get_pull_request_reviews,mcp__github__get_pull_request_status,mcp__github__list_pull_requests,mcp__github__update_pull_request,mcp__github__update_pull_request_branch,mcp__github__update_pull_request_comment,mcp__github__merge_pull_request
70
70
  additional_permissions: |
71
71
  actions: read
72
+ settings: |
73
+ {
74
+ "model": "claude-sonnet-4-5-20250929",
75
+ "env": {
76
+ "GH_TOKEN": "${{ steps.marvin-token.outputs.token }}"
77
+ }
78
+ }
@@ -17,7 +17,7 @@ jobs:
17
17
  fetch-depth: 0
18
18
 
19
19
  - name: "Install uv"
20
- uses: astral-sh/setup-uv@v6
20
+ uses: astral-sh/setup-uv@v7
21
21
 
22
22
  - name: Build
23
23
  run: uv build
@@ -32,7 +32,7 @@ jobs:
32
32
  steps:
33
33
  - uses: actions/checkout@v5
34
34
  - name: Install uv
35
- uses: astral-sh/setup-uv@v6
35
+ uses: astral-sh/setup-uv@v7
36
36
  with:
37
37
  enable-cache: true
38
38
  cache-dependency-glob: "uv.lock"
@@ -1,4 +1,4 @@
1
- name: Run tests
1
+ name: Tests
2
2
 
3
3
  env:
4
4
  # enable colored output
@@ -31,27 +31,33 @@ jobs:
31
31
  os: [ubuntu-latest, windows-latest]
32
32
  python-version: ["3.10"]
33
33
  fail-fast: false
34
- timeout-minutes: 5
34
+ timeout-minutes: 10
35
35
 
36
36
  steps:
37
37
  - uses: actions/checkout@v5
38
38
 
39
39
  - name: Install uv
40
- uses: astral-sh/setup-uv@v6
40
+ uses: astral-sh/setup-uv@v7
41
41
  with:
42
42
  enable-cache: true
43
43
  cache-dependency-glob: "uv.lock"
44
44
  python-version: ${{ matrix.python-version }}
45
45
 
46
46
  - name: Install FastMCP
47
- # run with frozen to use the current lockfile; static checks will determine if it needs updating
48
- run: uv sync --frozen
47
+ # run with upgrade to always test against the latest compatible versions
48
+ run: uv sync --upgrade
49
49
 
50
50
  - name: Run tests (excluding integration and client_process)
51
- run: uv run pytest --inline-snapshot=disable -v tests -m "not integration and not client_process" --numprocesses auto --maxprocesses 4 --dist worksteal
51
+ run: |
52
+ if [ "${{ matrix.os }}" = "windows-latest" ]; then
53
+ uv run pytest --inline-snapshot=disable tests -m "not integration and not client_process"
54
+ else
55
+ uv run pytest --inline-snapshot=disable tests -m "not integration and not client_process" --numprocesses auto --maxprocesses 4 --dist worksteal
56
+ fi
57
+ shell: bash
52
58
 
53
59
  - name: Run client process tests separately
54
- run: uv run pytest --inline-snapshot=disable -v tests -m "client_process" -x
60
+ run: uv run pytest --inline-snapshot=disable tests -m "client_process" -x
55
61
 
56
62
  run_integration_tests:
57
63
  name: "Run integration tests"
@@ -62,19 +68,19 @@ jobs:
62
68
  - uses: actions/checkout@v5
63
69
 
64
70
  - name: Install uv
65
- uses: astral-sh/setup-uv@v6
71
+ uses: astral-sh/setup-uv@v7
66
72
  with:
67
73
  enable-cache: true
68
74
  cache-dependency-glob: "uv.lock"
69
75
  python-version: "3.10"
70
76
 
71
77
  - name: Install FastMCP
72
- # run with frozen to use the current lockfile; static checks will determine if it needs updating
73
- run: uv sync --frozen
78
+ # run with upgrade to always test against the latest compatible versions
79
+ run: uv sync --upgrade
74
80
 
75
81
  - name: Run integration tests
76
82
  # use longer per-test timeout than the default 3s
77
- run: uv run pytest -v tests -m "integration" --timeout=15 --numprocesses auto --maxprocesses 2 --dist worksteal
83
+ run: uv run pytest tests -m "integration" --timeout=15 --numprocesses auto --maxprocesses 2 --dist worksteal
78
84
  env:
79
85
  FASTMCP_GITHUB_TOKEN: ${{ secrets.FASTMCP_GITHUB_TOKEN }}
80
86
  FASTMCP_TEST_AUTH_GITHUB_CLIENT_ID: ${{ secrets.FASTMCP_TEST_AUTH_GITHUB_CLIENT_ID }}
@@ -31,7 +31,7 @@ jobs:
31
31
  private-key: ${{ secrets.MARVIN_APP_PRIVATE_KEY }}
32
32
 
33
33
  - name: Install uv
34
- uses: astral-sh/setup-uv@v6
34
+ uses: astral-sh/setup-uv@v7
35
35
  with:
36
36
  enable-cache: true
37
37
  cache-dependency-glob: "uv.lock"
@@ -31,7 +31,7 @@ jobs:
31
31
  private-key: ${{ secrets.MARVIN_APP_PRIVATE_KEY }}
32
32
 
33
33
  - name: Install uv
34
- uses: astral-sh/setup-uv@v6
34
+ uses: astral-sh/setup-uv@v7
35
35
  with:
36
36
  enable-cache: true
37
37
  cache-dependency-glob: "uv.lock"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fastmcp
3
- Version: 2.12.4
3
+ Version: 2.13.0rc1
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
@@ -21,17 +21,18 @@ Requires-Dist: authlib>=1.5.2
21
21
  Requires-Dist: cyclopts>=3.0.0
22
22
  Requires-Dist: exceptiongroup>=1.2.2
23
23
  Requires-Dist: httpx>=0.28.1
24
- Requires-Dist: mcp<2.0.0,>=1.12.4
24
+ Requires-Dist: mcp<2.0.0,>=1.17.0
25
25
  Requires-Dist: openapi-core>=0.19.5
26
26
  Requires-Dist: openapi-pydantic>=0.5.1
27
+ Requires-Dist: py-key-value-aio[disk,memory]<0.3.0,>=0.2.2
27
28
  Requires-Dist: pydantic[email]>=2.11.7
28
29
  Requires-Dist: pyperclip>=1.9.0
30
+ Requires-Dist: pytest-asyncio>=1.2.0
29
31
  Requires-Dist: python-dotenv>=1.1.0
30
32
  Requires-Dist: rich>=13.9.4
33
+ Requires-Dist: websockets>=15.0.1
31
34
  Provides-Extra: openai
32
35
  Requires-Dist: openai>=1.102.0; extra == 'openai'
33
- Provides-Extra: websockets
34
- Requires-Dist: websockets>=15.0.1; extra == 'websockets'
35
36
  Description-Content-Type: text/markdown
36
37
 
37
38
  <div align="center">
@@ -51,6 +52,7 @@ Description-Content-Type: text/markdown
51
52
  *Made with ☕️ by [Prefect](https://www.prefect.io/)*
52
53
 
53
54
  [![Docs](https://img.shields.io/badge/docs-gofastmcp.com-blue)](https://gofastmcp.com)
55
+ [![Discord](https://img.shields.io/badge/community-discord-5865F2?logo=discord&logoColor=white)](https://discord.gg/uu8dJCgttd)
54
56
  [![PyPI - Version](https://img.shields.io/pypi/v/fastmcp.svg)](https://pypi.org/project/fastmcp)
55
57
  [![Tests](https://github.com/jlowin/fastmcp/actions/workflows/run-tests.yml/badge.svg)](https://github.com/jlowin/fastmcp/actions/workflows/run-tests.yml)
56
58
  [![License](https://img.shields.io/github/license/jlowin/fastmcp.svg)](https://github.com/jlowin/fastmcp/blob/main/LICENSE)
@@ -106,6 +108,8 @@ There are two ways to access the LLM-friendly documentation:
106
108
  - [`llms.txt`](https://gofastmcp.com/llms.txt) is essentially a sitemap, listing all the pages in the documentation.
107
109
  - [`llms-full.txt`](https://gofastmcp.com/llms-full.txt) contains the entire documentation. Note this may exceed the context window of your LLM.
108
110
 
111
+ **Community:** Join our [Discord server](https://discord.gg/uu8dJCgttd) to connect with other FastMCP developers and share what you're building.
112
+
109
113
  ---
110
114
 
111
115
  <!-- omit in toc -->
@@ -15,6 +15,7 @@
15
15
  *Made with ☕️ by [Prefect](https://www.prefect.io/)*
16
16
 
17
17
  [![Docs](https://img.shields.io/badge/docs-gofastmcp.com-blue)](https://gofastmcp.com)
18
+ [![Discord](https://img.shields.io/badge/community-discord-5865F2?logo=discord&logoColor=white)](https://discord.gg/uu8dJCgttd)
18
19
  [![PyPI - Version](https://img.shields.io/pypi/v/fastmcp.svg)](https://pypi.org/project/fastmcp)
19
20
  [![Tests](https://github.com/jlowin/fastmcp/actions/workflows/run-tests.yml/badge.svg)](https://github.com/jlowin/fastmcp/actions/workflows/run-tests.yml)
20
21
  [![License](https://img.shields.io/github/license/jlowin/fastmcp.svg)](https://github.com/jlowin/fastmcp/blob/main/LICENSE)
@@ -70,6 +71,8 @@ There are two ways to access the LLM-friendly documentation:
70
71
  - [`llms.txt`](https://gofastmcp.com/llms.txt) is essentially a sitemap, listing all the pages in the documentation.
71
72
  - [`llms-full.txt`](https://gofastmcp.com/llms-full.txt) contains the entire documentation. Note this may exceed the context window of your LLM.
72
73
 
74
+ **Community:** Join our [Discord server](https://discord.gg/uu8dJCgttd) to connect with other FastMCP developers and share what you're building.
75
+
73
76
  ---
74
77
 
75
78
  <!-- omit in toc -->
@@ -0,0 +1,16 @@
1
+ # Security Policy
2
+
3
+ ## Supported Versions
4
+
5
+ FastMCP v2.x receives security updates. Earlier versions are no longer supported.
6
+
7
+ | Version | Supported |
8
+ | ------- | ------------------ |
9
+ | 2.x | :white_check_mark: |
10
+ | < 2.0 | :x: |
11
+
12
+ ## Reporting a Vulnerability
13
+
14
+ Please report security vulnerabilities privately using [GitHub's security advisory feature](https://github.com/jlowin/fastmcp/security/advisories/new).
15
+
16
+ Do not open public issues for security concerns.