fastmcp 2.12.1__tar.gz → 2.13.2__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 (992) hide show
  1. fastmcp-2.13.2/.cursor/worktrees.json +6 -0
  2. fastmcp-2.13.2/.github/pull_request_template.md +28 -0
  3. fastmcp-2.13.2/.github/workflows/auto-close-duplicates.yml +36 -0
  4. fastmcp-2.13.2/.github/workflows/auto-close-needs-mre.yml +36 -0
  5. fastmcp-2.13.2/.github/workflows/martian-issue-triage.yml +173 -0
  6. fastmcp-2.13.2/.github/workflows/martian-test-failure.yml +179 -0
  7. fastmcp-2.13.2/.github/workflows/marvin-dedupe-issues.yml +92 -0
  8. fastmcp-2.13.2/.github/workflows/marvin-label-triage.yml +143 -0
  9. fastmcp-2.13.2/.github/workflows/marvin.yml +78 -0
  10. fastmcp-2.13.2/.github/workflows/publish.yml +26 -0
  11. fastmcp-2.13.2/.github/workflows/run-static.yml +54 -0
  12. fastmcp-2.13.2/.github/workflows/run-tests.yml +107 -0
  13. fastmcp-2.13.2/.github/workflows/update-config-schema.yml +91 -0
  14. fastmcp-2.13.2/.github/workflows/update-sdk-docs.yml +74 -0
  15. fastmcp-2.13.2/.pre-commit-config.yaml +48 -0
  16. fastmcp-2.13.2/AGENTS.md +265 -0
  17. fastmcp-2.13.2/PKG-INFO +551 -0
  18. fastmcp-2.13.2/README.md +512 -0
  19. fastmcp-2.13.2/SECURITY.md +16 -0
  20. fastmcp-2.13.2/docs/assets/brand/f-watercolor-waves-dark.png +0 -0
  21. fastmcp-2.13.2/docs/assets/brand/f-watercolor-waves.png +0 -0
  22. fastmcp-2.13.2/docs/assets/brand/thumbnail-background.png +0 -0
  23. fastmcp-2.13.2/docs/assets/brand/wordmark-padded.png +0 -0
  24. fastmcp-2.13.2/docs/assets/brand/wordmark-watercolor-rainbow-dark.png +0 -0
  25. fastmcp-2.13.2/docs/assets/brand/wordmark-watercolor-rainbow.png +0 -0
  26. fastmcp-2.13.2/docs/assets/brand/wordmark-watercolor-waves-dark.png +0 -0
  27. fastmcp-2.13.2/docs/assets/brand/wordmark-watercolor-waves.png +0 -0
  28. fastmcp-2.13.2/docs/assets/brand/wordmark-white-padded.png +0 -0
  29. fastmcp-2.13.2/docs/assets/brand/wordmark-white.png +0 -0
  30. fastmcp-2.13.2/docs/assets/brand/wordmark.png +0 -0
  31. fastmcp-2.13.2/docs/assets/images/oauth-proxy-consent-screen.png +0 -0
  32. fastmcp-2.13.2/docs/changelog.mdx +2062 -0
  33. fastmcp-2.13.2/docs/clients/auth/oauth.mdx +132 -0
  34. fastmcp-2.13.2/docs/clients/client.mdx +340 -0
  35. fastmcp-2.13.2/docs/clients/elicitation.mdx +125 -0
  36. fastmcp-2.13.2/docs/clients/sampling.mdx +156 -0
  37. fastmcp-2.13.2/docs/clients/tools.mdx +295 -0
  38. fastmcp-2.13.2/docs/community/showcase.mdx +65 -0
  39. fastmcp-2.13.2/docs/css/style.css +20 -0
  40. fastmcp-2.13.2/docs/deployment/http.mdx +605 -0
  41. fastmcp-2.13.2/docs/deployment/running-server.mdx +258 -0
  42. fastmcp-2.13.2/docs/development/contributing.mdx +187 -0
  43. fastmcp-2.13.2/docs/development/tests.mdx +396 -0
  44. fastmcp-2.13.2/docs/development/upgrade-guide.mdx +50 -0
  45. fastmcp-2.13.2/docs/docs.json +491 -0
  46. fastmcp-2.13.2/docs/getting-started/installation.mdx +96 -0
  47. fastmcp-2.13.2/docs/getting-started/quickstart.mdx +136 -0
  48. fastmcp-2.13.2/docs/getting-started/welcome.mdx +111 -0
  49. fastmcp-2.13.2/docs/integrations/auth0.mdx +277 -0
  50. fastmcp-2.13.2/docs/integrations/authkit.mdx +133 -0
  51. fastmcp-2.13.2/docs/integrations/aws-cognito.mdx +365 -0
  52. fastmcp-2.13.2/docs/integrations/azure.mdx +391 -0
  53. fastmcp-2.13.2/docs/integrations/chatgpt.mdx +157 -0
  54. fastmcp-2.13.2/docs/integrations/cursor.mdx +284 -0
  55. fastmcp-2.13.2/docs/integrations/descope.mdx +146 -0
  56. fastmcp-2.13.2/docs/integrations/discord.mdx +255 -0
  57. fastmcp-2.13.2/docs/integrations/fastapi.mdx +460 -0
  58. fastmcp-2.13.2/docs/integrations/gemini-cli.mdx +174 -0
  59. fastmcp-2.13.2/docs/integrations/github.mdx +253 -0
  60. fastmcp-2.13.2/docs/integrations/google.mdx +267 -0
  61. fastmcp-2.13.2/docs/integrations/images/oci/ociaddapplication.png +0 -0
  62. fastmcp-2.13.2/docs/integrations/images/oci/ocieditdomainsettings.png +0 -0
  63. fastmcp-2.13.2/docs/integrations/images/oci/ocieditdomainsettingsbutton.png +0 -0
  64. fastmcp-2.13.2/docs/integrations/images/oci/ocioauthconfiguration.png +0 -0
  65. fastmcp-2.13.2/docs/integrations/mcp-json-configuration.mdx +422 -0
  66. fastmcp-2.13.2/docs/integrations/oci.mdx +333 -0
  67. fastmcp-2.13.2/docs/integrations/openapi.mdx +473 -0
  68. fastmcp-2.13.2/docs/integrations/scalekit.mdx +194 -0
  69. fastmcp-2.13.2/docs/integrations/workos.mdx +288 -0
  70. fastmcp-2.13.2/docs/patterns/cli.mdx +577 -0
  71. fastmcp-2.13.2/docs/patterns/testing.mdx +104 -0
  72. fastmcp-2.13.2/docs/patterns/tool-transformation.mdx +707 -0
  73. fastmcp-2.13.2/docs/public/schemas/fastmcp.json/latest.json +365 -0
  74. fastmcp-2.13.2/docs/public/schemas/fastmcp.json/v1.json +365 -0
  75. fastmcp-2.13.2/docs/python-sdk/fastmcp-cli-cli.mdx +129 -0
  76. fastmcp-2.13.2/docs/python-sdk/fastmcp-cli-install-claude_code.mdx +71 -0
  77. fastmcp-2.13.2/docs/python-sdk/fastmcp-cli-install-claude_desktop.mdx +58 -0
  78. fastmcp-2.13.2/docs/python-sdk/fastmcp-cli-install-cursor.mdx +107 -0
  79. fastmcp-2.13.2/docs/python-sdk/fastmcp-cli-install-gemini_cli.mdx +68 -0
  80. fastmcp-2.13.2/docs/python-sdk/fastmcp-cli-install-mcp_json.mdx +49 -0
  81. fastmcp-2.13.2/docs/python-sdk/fastmcp-cli-run.mdx +101 -0
  82. fastmcp-2.13.2/docs/python-sdk/fastmcp-client-auth-oauth.mdx +104 -0
  83. fastmcp-2.13.2/docs/python-sdk/fastmcp-client-client.mdx +546 -0
  84. fastmcp-2.13.2/docs/python-sdk/fastmcp-client-logging.mdx +24 -0
  85. fastmcp-2.13.2/docs/python-sdk/fastmcp-client-oauth_callback.mdx +70 -0
  86. fastmcp-2.13.2/docs/python-sdk/fastmcp-client-transports.mdx +300 -0
  87. fastmcp-2.13.2/docs/python-sdk/fastmcp-mcp_config.mdx +188 -0
  88. fastmcp-2.13.2/docs/python-sdk/fastmcp-prompts-prompt.mdx +117 -0
  89. fastmcp-2.13.2/docs/python-sdk/fastmcp-prompts-prompt_manager.mdx +71 -0
  90. fastmcp-2.13.2/docs/python-sdk/fastmcp-resources-resource.mdx +123 -0
  91. fastmcp-2.13.2/docs/python-sdk/fastmcp-resources-resource_manager.mdx +154 -0
  92. fastmcp-2.13.2/docs/python-sdk/fastmcp-resources-template.mdx +170 -0
  93. fastmcp-2.13.2/docs/python-sdk/fastmcp-resources-types.mdx +134 -0
  94. fastmcp-2.13.2/docs/python-sdk/fastmcp-server-auth-auth.mdx +210 -0
  95. fastmcp-2.13.2/docs/python-sdk/fastmcp-server-auth-jwt_issuer.mdx +104 -0
  96. fastmcp-2.13.2/docs/python-sdk/fastmcp-server-auth-middleware.mdx +26 -0
  97. fastmcp-2.13.2/docs/python-sdk/fastmcp-server-auth-oauth_proxy.mdx +429 -0
  98. fastmcp-2.13.2/docs/python-sdk/fastmcp-server-auth-oidc_proxy.mdx +82 -0
  99. fastmcp-2.13.2/docs/python-sdk/fastmcp-server-auth-providers-auth0.mdx +47 -0
  100. fastmcp-2.13.2/docs/python-sdk/fastmcp-server-auth-providers-aws.mdx +88 -0
  101. fastmcp-2.13.2/docs/python-sdk/fastmcp-server-auth-providers-azure.mdx +76 -0
  102. fastmcp-2.13.2/docs/python-sdk/fastmcp-server-auth-providers-debug.mdx +70 -0
  103. fastmcp-2.13.2/docs/python-sdk/fastmcp-server-auth-providers-descope.mdx +62 -0
  104. fastmcp-2.13.2/docs/python-sdk/fastmcp-server-auth-providers-github.mdx +72 -0
  105. fastmcp-2.13.2/docs/python-sdk/fastmcp-server-auth-providers-google.mdx +72 -0
  106. fastmcp-2.13.2/docs/python-sdk/fastmcp-server-auth-providers-in_memory.mdx +96 -0
  107. fastmcp-2.13.2/docs/python-sdk/fastmcp-server-auth-providers-introspection.mdx +77 -0
  108. fastmcp-2.13.2/docs/python-sdk/fastmcp-server-auth-providers-jwt.mdx +152 -0
  109. fastmcp-2.13.2/docs/python-sdk/fastmcp-server-auth-providers-oci.mdx +103 -0
  110. fastmcp-2.13.2/docs/python-sdk/fastmcp-server-auth-providers-scalekit.mdx +63 -0
  111. fastmcp-2.13.2/docs/python-sdk/fastmcp-server-auth-providers-supabase.mdx +68 -0
  112. fastmcp-2.13.2/docs/python-sdk/fastmcp-server-auth-providers-workos.mdx +110 -0
  113. fastmcp-2.13.2/docs/python-sdk/fastmcp-server-context.mdx +412 -0
  114. fastmcp-2.13.2/docs/python-sdk/fastmcp-server-dependencies.mdx +49 -0
  115. fastmcp-2.13.2/docs/python-sdk/fastmcp-server-http.mdx +103 -0
  116. fastmcp-2.13.2/docs/python-sdk/fastmcp-server-low_level.mdx +53 -0
  117. fastmcp-2.13.2/docs/python-sdk/fastmcp-server-middleware-caching.mdx +189 -0
  118. fastmcp-2.13.2/docs/python-sdk/fastmcp-server-middleware-error_handling.mdx +60 -0
  119. fastmcp-2.13.2/docs/python-sdk/fastmcp-server-middleware-logging.mdx +58 -0
  120. fastmcp-2.13.2/docs/python-sdk/fastmcp-server-middleware-middleware.mdx +112 -0
  121. fastmcp-2.13.2/docs/python-sdk/fastmcp-server-middleware-tool_injection.mdx +91 -0
  122. fastmcp-2.13.2/docs/python-sdk/fastmcp-server-openapi.mdx +91 -0
  123. fastmcp-2.13.2/docs/python-sdk/fastmcp-server-proxy.mdx +339 -0
  124. fastmcp-2.13.2/docs/python-sdk/fastmcp-server-server.mdx +876 -0
  125. fastmcp-2.13.2/docs/python-sdk/fastmcp-settings.mdx +84 -0
  126. fastmcp-2.13.2/docs/python-sdk/fastmcp-tools-tool.mdx +117 -0
  127. fastmcp-2.13.2/docs/python-sdk/fastmcp-tools-tool_manager.mdx +113 -0
  128. fastmcp-2.13.2/docs/python-sdk/fastmcp-tools-tool_transform.mdx +290 -0
  129. fastmcp-2.13.2/docs/python-sdk/fastmcp-utilities-cli.mdx +55 -0
  130. fastmcp-2.13.2/docs/python-sdk/fastmcp-utilities-components.mdx +121 -0
  131. fastmcp-2.13.2/docs/python-sdk/fastmcp-utilities-inspect.mdx +143 -0
  132. fastmcp-2.13.2/docs/python-sdk/fastmcp-utilities-json_schema.mdx +25 -0
  133. fastmcp-2.13.2/docs/python-sdk/fastmcp-utilities-logging.mdx +58 -0
  134. fastmcp-2.13.2/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-environments-base.mdx +43 -0
  135. fastmcp-2.13.2/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-environments-uv.mdx +45 -0
  136. fastmcp-2.13.2/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-mcp_server_config.mdx +235 -0
  137. fastmcp-2.13.2/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-sources-base.mdx +42 -0
  138. fastmcp-2.13.2/docs/python-sdk/fastmcp-utilities-tests.mdx +106 -0
  139. fastmcp-2.13.2/docs/python-sdk/fastmcp-utilities-types.mdx +169 -0
  140. fastmcp-2.13.2/docs/python-sdk/fastmcp-utilities-ui.mdx +139 -0
  141. fastmcp-2.13.2/docs/servers/auth/authentication.mdx +266 -0
  142. fastmcp-2.13.2/docs/servers/auth/full-oauth-server.mdx +229 -0
  143. fastmcp-2.13.2/docs/servers/auth/oauth-proxy.mdx +591 -0
  144. fastmcp-2.13.2/docs/servers/auth/oidc-proxy.mdx +269 -0
  145. fastmcp-2.13.2/docs/servers/auth/remote-oauth.mdx +226 -0
  146. fastmcp-2.13.2/docs/servers/auth/token-verification.mdx +341 -0
  147. fastmcp-2.13.2/docs/servers/composition.mdx +381 -0
  148. fastmcp-2.13.2/docs/servers/context.mdx +529 -0
  149. fastmcp-2.13.2/docs/servers/elicitation.mdx +319 -0
  150. fastmcp-2.13.2/docs/servers/icons.mdx +139 -0
  151. fastmcp-2.13.2/docs/servers/logging.mdx +249 -0
  152. fastmcp-2.13.2/docs/servers/middleware.mdx +790 -0
  153. fastmcp-2.13.2/docs/servers/prompts.mdx +353 -0
  154. fastmcp-2.13.2/docs/servers/proxy.mdx +352 -0
  155. fastmcp-2.13.2/docs/servers/resources.mdx +663 -0
  156. fastmcp-2.13.2/docs/servers/sampling.mdx +270 -0
  157. fastmcp-2.13.2/docs/servers/server.mdx +439 -0
  158. fastmcp-2.13.2/docs/servers/storage-backends.mdx +275 -0
  159. fastmcp-2.13.2/docs/servers/tools.mdx +940 -0
  160. fastmcp-2.13.2/docs/tutorials/rest-api.mdx +203 -0
  161. fastmcp-2.13.2/docs/updates.mdx +313 -0
  162. fastmcp-2.13.2/examples/atproto_mcp/src/atproto_mcp/_atproto/__init__.py +20 -0
  163. fastmcp-2.13.2/examples/auth/authkit_dcr/README.md +25 -0
  164. fastmcp-2.13.2/examples/auth/authkit_dcr/server.py +33 -0
  165. fastmcp-2.13.2/examples/auth/aws_oauth/README.md +47 -0
  166. fastmcp-2.13.2/examples/auth/aws_oauth/client.py +42 -0
  167. fastmcp-2.13.2/examples/auth/aws_oauth/requirements.txt +2 -0
  168. fastmcp-2.13.2/examples/auth/aws_oauth/server.py +59 -0
  169. fastmcp-2.13.2/examples/auth/azure_oauth/server.py +44 -0
  170. fastmcp-2.13.2/examples/auth/discord_oauth/README.md +33 -0
  171. fastmcp-2.13.2/examples/auth/discord_oauth/client.py +32 -0
  172. fastmcp-2.13.2/examples/auth/discord_oauth/server.py +35 -0
  173. fastmcp-2.13.2/examples/auth/scalekit_oauth/README.md +55 -0
  174. fastmcp-2.13.2/examples/auth/scalekit_oauth/client.py +41 -0
  175. fastmcp-2.13.2/examples/auth/scalekit_oauth/server.py +58 -0
  176. fastmcp-2.13.2/examples/auth/workos_oauth/README.md +27 -0
  177. fastmcp-2.13.2/examples/auth/workos_oauth/client.py +32 -0
  178. fastmcp-2.13.2/examples/get_file.py +39 -0
  179. fastmcp-2.13.2/examples/memory.py +348 -0
  180. fastmcp-2.13.2/examples/mount_example.py +116 -0
  181. fastmcp-2.13.2/examples/serializer.py +32 -0
  182. fastmcp-2.13.2/examples/smart_home/src/smart_home/hub.py +30 -0
  183. fastmcp-2.13.2/examples/smart_home/src/smart_home/lights/hue_utils.py +34 -0
  184. fastmcp-2.13.2/examples/smart_home/src/smart_home/settings.py +12 -0
  185. fastmcp-2.13.2/examples/testing_demo/README.md +84 -0
  186. fastmcp-2.13.2/examples/testing_demo/pyproject.toml +18 -0
  187. fastmcp-2.13.2/examples/testing_demo/server.py +61 -0
  188. fastmcp-2.13.2/examples/testing_demo/tests/test_server.py +160 -0
  189. fastmcp-2.13.2/examples/testing_demo/uv.lock +1569 -0
  190. fastmcp-2.13.2/examples/tool_result_echo.py +41 -0
  191. fastmcp-2.13.2/logo.py +25 -0
  192. fastmcp-2.13.2/pyproject.toml +181 -0
  193. fastmcp-2.13.2/scripts/auto_close_needs_mre.py +384 -0
  194. fastmcp-2.13.2/src/fastmcp/__init__.py +56 -0
  195. fastmcp-2.13.2/src/fastmcp/cli/cli.py +878 -0
  196. fastmcp-2.13.2/src/fastmcp/cli/install/__init__.py +22 -0
  197. fastmcp-2.13.2/src/fastmcp/cli/install/claude_code.py +244 -0
  198. fastmcp-2.13.2/src/fastmcp/cli/install/claude_desktop.py +214 -0
  199. fastmcp-2.13.2/src/fastmcp/cli/install/cursor.py +337 -0
  200. fastmcp-2.13.2/src/fastmcp/cli/install/gemini_cli.py +241 -0
  201. fastmcp-2.13.2/src/fastmcp/cli/install/mcp_json.py +196 -0
  202. fastmcp-2.13.2/src/fastmcp/cli/run.py +225 -0
  203. fastmcp-2.13.2/src/fastmcp/client/__init__.py +32 -0
  204. fastmcp-2.13.2/src/fastmcp/client/auth/oauth.py +325 -0
  205. fastmcp-2.13.2/src/fastmcp/client/client.py +1015 -0
  206. fastmcp-2.13.2/src/fastmcp/client/elicitation.py +74 -0
  207. fastmcp-2.13.2/src/fastmcp/client/logging.py +54 -0
  208. fastmcp-2.13.2/src/fastmcp/client/oauth_callback.py +242 -0
  209. fastmcp-2.13.2/src/fastmcp/client/sampling.py +56 -0
  210. fastmcp-2.13.2/src/fastmcp/client/transports.py +1119 -0
  211. fastmcp-2.13.2/src/fastmcp/contrib/component_manager/__init__.py +4 -0
  212. fastmcp-2.13.2/src/fastmcp/contrib/component_manager/component_manager.py +186 -0
  213. fastmcp-2.13.2/src/fastmcp/contrib/component_manager/component_service.py +225 -0
  214. fastmcp-2.13.2/src/fastmcp/contrib/mcp_mixin/README.md +147 -0
  215. fastmcp-2.13.2/src/fastmcp/contrib/mcp_mixin/__init__.py +8 -0
  216. fastmcp-2.13.2/src/fastmcp/contrib/mcp_mixin/mcp_mixin.py +276 -0
  217. fastmcp-2.13.2/src/fastmcp/experimental/sampling/handlers/openai.py +170 -0
  218. fastmcp-2.13.2/src/fastmcp/experimental/server/openapi/__init__.py +35 -0
  219. fastmcp-2.13.2/src/fastmcp/experimental/server/openapi/components.py +352 -0
  220. fastmcp-2.13.2/src/fastmcp/experimental/server/openapi/routing.py +130 -0
  221. fastmcp-2.13.2/src/fastmcp/experimental/utilities/openapi/__init__.py +63 -0
  222. fastmcp-2.13.2/src/fastmcp/experimental/utilities/openapi/director.py +214 -0
  223. fastmcp-2.13.2/src/fastmcp/experimental/utilities/openapi/json_schema_converter.py +344 -0
  224. fastmcp-2.13.2/src/fastmcp/experimental/utilities/openapi/models.py +88 -0
  225. fastmcp-2.13.2/src/fastmcp/experimental/utilities/openapi/parser.py +821 -0
  226. fastmcp-2.13.2/src/fastmcp/experimental/utilities/openapi/schemas.py +593 -0
  227. fastmcp-2.13.2/src/fastmcp/mcp_config.py +338 -0
  228. fastmcp-2.13.2/src/fastmcp/prompts/__init__.py +9 -0
  229. fastmcp-2.13.2/src/fastmcp/prompts/prompt.py +381 -0
  230. fastmcp-2.13.2/src/fastmcp/prompts/prompt_manager.py +118 -0
  231. fastmcp-2.13.2/src/fastmcp/resources/__init__.py +22 -0
  232. fastmcp-2.13.2/src/fastmcp/resources/resource.py +223 -0
  233. fastmcp-2.13.2/src/fastmcp/resources/resource_manager.py +343 -0
  234. fastmcp-2.13.2/src/fastmcp/resources/template.py +403 -0
  235. fastmcp-2.13.2/src/fastmcp/resources/types.py +157 -0
  236. fastmcp-2.13.2/src/fastmcp/server/__init__.py +6 -0
  237. fastmcp-2.13.2/src/fastmcp/server/auth/__init__.py +34 -0
  238. fastmcp-2.13.2/src/fastmcp/server/auth/auth.py +399 -0
  239. fastmcp-2.13.2/src/fastmcp/server/auth/handlers/authorize.py +326 -0
  240. fastmcp-2.13.2/src/fastmcp/server/auth/jwt_issuer.py +236 -0
  241. fastmcp-2.13.2/src/fastmcp/server/auth/middleware.py +96 -0
  242. fastmcp-2.13.2/src/fastmcp/server/auth/oauth_proxy.py +2239 -0
  243. fastmcp-2.13.2/src/fastmcp/server/auth/oidc_proxy.py +412 -0
  244. fastmcp-2.13.2/src/fastmcp/server/auth/providers/auth0.py +193 -0
  245. fastmcp-2.13.2/src/fastmcp/server/auth/providers/aws.py +263 -0
  246. fastmcp-2.13.2/src/fastmcp/server/auth/providers/azure.py +446 -0
  247. fastmcp-2.13.2/src/fastmcp/server/auth/providers/bearer.py +25 -0
  248. fastmcp-2.13.2/src/fastmcp/server/auth/providers/debug.py +114 -0
  249. fastmcp-2.13.2/src/fastmcp/server/auth/providers/descope.py +229 -0
  250. fastmcp-2.13.2/src/fastmcp/server/auth/providers/discord.py +308 -0
  251. fastmcp-2.13.2/src/fastmcp/server/auth/providers/github.py +304 -0
  252. fastmcp-2.13.2/src/fastmcp/server/auth/providers/google.py +341 -0
  253. fastmcp-2.13.2/src/fastmcp/server/auth/providers/in_memory.py +364 -0
  254. fastmcp-2.13.2/src/fastmcp/server/auth/providers/introspection.py +281 -0
  255. fastmcp-2.13.2/src/fastmcp/server/auth/providers/jwt.py +564 -0
  256. fastmcp-2.13.2/src/fastmcp/server/auth/providers/oci.py +233 -0
  257. fastmcp-2.13.2/src/fastmcp/server/auth/providers/scalekit.py +238 -0
  258. fastmcp-2.13.2/src/fastmcp/server/auth/providers/supabase.py +188 -0
  259. fastmcp-2.13.2/src/fastmcp/server/auth/providers/workos.py +427 -0
  260. fastmcp-2.13.2/src/fastmcp/server/context.py +803 -0
  261. fastmcp-2.13.2/src/fastmcp/server/dependencies.py +163 -0
  262. fastmcp-2.13.2/src/fastmcp/server/elicitation.py +220 -0
  263. fastmcp-2.13.2/src/fastmcp/server/http.py +360 -0
  264. fastmcp-2.13.2/src/fastmcp/server/low_level.py +156 -0
  265. fastmcp-2.13.2/src/fastmcp/server/middleware/__init__.py +11 -0
  266. fastmcp-2.13.2/src/fastmcp/server/middleware/caching.py +476 -0
  267. fastmcp-2.13.2/src/fastmcp/server/middleware/error_handling.py +210 -0
  268. fastmcp-2.13.2/src/fastmcp/server/middleware/logging.py +256 -0
  269. fastmcp-2.13.2/src/fastmcp/server/middleware/middleware.py +208 -0
  270. fastmcp-2.13.2/src/fastmcp/server/middleware/rate_limiting.py +231 -0
  271. fastmcp-2.13.2/src/fastmcp/server/middleware/tool_injection.py +116 -0
  272. fastmcp-2.13.2/src/fastmcp/server/openapi.py +1087 -0
  273. fastmcp-2.13.2/src/fastmcp/server/proxy.py +694 -0
  274. fastmcp-2.13.2/src/fastmcp/server/server.py +2898 -0
  275. fastmcp-2.13.2/src/fastmcp/settings.py +414 -0
  276. fastmcp-2.13.2/src/fastmcp/tools/__init__.py +5 -0
  277. fastmcp-2.13.2/src/fastmcp/tools/tool.py +605 -0
  278. fastmcp-2.13.2/src/fastmcp/tools/tool_manager.py +172 -0
  279. fastmcp-2.13.2/src/fastmcp/tools/tool_transform.py +954 -0
  280. fastmcp-2.13.2/src/fastmcp/utilities/cli.py +274 -0
  281. fastmcp-2.13.2/src/fastmcp/utilities/components.py +181 -0
  282. fastmcp-2.13.2/src/fastmcp/utilities/inspect.py +506 -0
  283. fastmcp-2.13.2/src/fastmcp/utilities/json_schema.py +230 -0
  284. fastmcp-2.13.2/src/fastmcp/utilities/json_schema_type.py +648 -0
  285. fastmcp-2.13.2/src/fastmcp/utilities/logging.py +230 -0
  286. fastmcp-2.13.2/src/fastmcp/utilities/mcp_server_config/__init__.py +25 -0
  287. fastmcp-2.13.2/src/fastmcp/utilities/mcp_server_config/v1/environments/base.py +29 -0
  288. fastmcp-2.13.2/src/fastmcp/utilities/mcp_server_config/v1/environments/uv.py +271 -0
  289. fastmcp-2.13.2/src/fastmcp/utilities/mcp_server_config/v1/mcp_server_config.py +447 -0
  290. fastmcp-2.13.2/src/fastmcp/utilities/mcp_server_config/v1/schema.json +365 -0
  291. fastmcp-2.13.2/src/fastmcp/utilities/mcp_server_config/v1/sources/base.py +29 -0
  292. fastmcp-2.13.2/src/fastmcp/utilities/openapi.py +1568 -0
  293. fastmcp-2.13.2/src/fastmcp/utilities/tests.py +280 -0
  294. fastmcp-2.13.2/src/fastmcp/utilities/types.py +488 -0
  295. fastmcp-2.13.2/src/fastmcp/utilities/ui.py +626 -0
  296. fastmcp-2.13.2/tests/cli/test_cli.py +616 -0
  297. fastmcp-2.13.2/tests/cli/test_config.py +434 -0
  298. fastmcp-2.13.2/tests/cli/test_cursor.py +433 -0
  299. fastmcp-2.13.2/tests/cli/test_install.py +313 -0
  300. fastmcp-2.13.2/tests/cli/test_mcp_server_config_integration.py +293 -0
  301. fastmcp-2.13.2/tests/cli/test_mcp_server_config_schema.py +172 -0
  302. fastmcp-2.13.2/tests/cli/test_project_prepare.py +306 -0
  303. fastmcp-2.13.2/tests/cli/test_run.py +602 -0
  304. fastmcp-2.13.2/tests/cli/test_run_config.py +312 -0
  305. fastmcp-2.13.2/tests/cli/test_server_args.py +135 -0
  306. fastmcp-2.13.2/tests/client/auth/test_oauth_client.py +126 -0
  307. fastmcp-2.13.2/tests/client/test_client.py +1173 -0
  308. fastmcp-2.13.2/tests/client/test_elicitation.py +731 -0
  309. fastmcp-2.13.2/tests/client/test_logs.py +242 -0
  310. fastmcp-2.13.2/tests/client/test_oauth_callback_xss.py +159 -0
  311. fastmcp-2.13.2/tests/client/test_openapi_experimental.py +194 -0
  312. fastmcp-2.13.2/tests/client/test_openapi_legacy.py +190 -0
  313. fastmcp-2.13.2/tests/client/test_sse.py +190 -0
  314. fastmcp-2.13.2/tests/client/test_stdio.py +364 -0
  315. fastmcp-2.13.2/tests/client/test_streamable_http.py +254 -0
  316. fastmcp-2.13.2/tests/client/transports/test_transports.py +37 -0
  317. fastmcp-2.13.2/tests/client/transports/test_uv_transport.py +98 -0
  318. fastmcp-2.13.2/tests/conftest.py +76 -0
  319. fastmcp-2.13.2/tests/contrib/test_bulk_tool_caller.py +288 -0
  320. fastmcp-2.13.2/tests/contrib/test_mcp_mixin.py +322 -0
  321. fastmcp-2.13.2/tests/experimental/openapi_parser/server/openapi/test_comprehensive.py +695 -0
  322. fastmcp-2.13.2/tests/experimental/openapi_parser/server/openapi/test_deepobject_style.py +333 -0
  323. fastmcp-2.13.2/tests/experimental/openapi_parser/server/openapi/test_openapi_features.py +401 -0
  324. fastmcp-2.13.2/tests/experimental/openapi_parser/server/openapi/test_openapi_performance.py +143 -0
  325. fastmcp-2.13.2/tests/experimental/openapi_parser/server/openapi/test_parameter_collisions.py +212 -0
  326. fastmcp-2.13.2/tests/experimental/openapi_parser/server/openapi/test_performance_comparison.py +285 -0
  327. fastmcp-2.13.2/tests/experimental/openapi_parser/server/openapi/test_server.py +337 -0
  328. fastmcp-2.13.2/tests/experimental/openapi_parser/utilities/openapi/test_direct_array_schemas.py +323 -0
  329. fastmcp-2.13.2/tests/experimental/openapi_parser/utilities/openapi/test_models.py +476 -0
  330. fastmcp-2.13.2/tests/experimental/openapi_parser/utilities/openapi/test_nullable_fields.py +375 -0
  331. fastmcp-2.13.2/tests/experimental/openapi_parser/utilities/openapi/test_schemas.py +635 -0
  332. fastmcp-2.13.2/tests/experimental/openapi_parser/utilities/openapi/test_transitive_references.py +842 -0
  333. fastmcp-2.13.2/tests/integration_tests/auth/test_github_provider_integration.py +401 -0
  334. fastmcp-2.13.2/tests/integration_tests/test_github_mcp_remote.py +123 -0
  335. fastmcp-2.13.2/tests/prompts/test_prompt_manager.py +436 -0
  336. fastmcp-2.13.2/tests/resources/test_resource_manager.py +760 -0
  337. fastmcp-2.13.2/tests/resources/test_resource_template.py +956 -0
  338. fastmcp-2.13.2/tests/resources/test_resources.py +116 -0
  339. fastmcp-2.13.2/tests/server/auth/providers/test_auth0.py +284 -0
  340. fastmcp-2.13.2/tests/server/auth/providers/test_aws.py +251 -0
  341. fastmcp-2.13.2/tests/server/auth/providers/test_azure.py +881 -0
  342. fastmcp-2.13.2/tests/server/auth/providers/test_descope.py +264 -0
  343. fastmcp-2.13.2/tests/server/auth/providers/test_discord.py +119 -0
  344. fastmcp-2.13.2/tests/server/auth/providers/test_github.py +245 -0
  345. fastmcp-2.13.2/tests/server/auth/providers/test_google.py +164 -0
  346. fastmcp-2.13.2/tests/server/auth/providers/test_introspection.py +463 -0
  347. fastmcp-2.13.2/tests/server/auth/providers/test_scalekit.py +259 -0
  348. fastmcp-2.13.2/tests/server/auth/providers/test_supabase.py +202 -0
  349. fastmcp-2.13.2/tests/server/auth/providers/test_workos.py +208 -0
  350. fastmcp-2.13.2/tests/server/auth/test_auth_provider.py +105 -0
  351. fastmcp-2.13.2/tests/server/auth/test_debug_verifier.py +169 -0
  352. fastmcp-2.13.2/tests/server/auth/test_enhanced_error_responses.py +364 -0
  353. fastmcp-2.13.2/tests/server/auth/test_jwt_issuer.py +230 -0
  354. fastmcp-2.13.2/tests/server/auth/test_jwt_provider.py +1101 -0
  355. fastmcp-2.13.2/tests/server/auth/test_oauth_consent_flow.py +1062 -0
  356. fastmcp-2.13.2/tests/server/auth/test_oauth_mounting.py +267 -0
  357. fastmcp-2.13.2/tests/server/auth/test_oauth_proxy.py +1411 -0
  358. fastmcp-2.13.2/tests/server/auth/test_oauth_proxy_redirect_validation.py +201 -0
  359. fastmcp-2.13.2/tests/server/auth/test_oauth_proxy_storage.py +207 -0
  360. fastmcp-2.13.2/tests/server/auth/test_oidc_proxy.py +878 -0
  361. fastmcp-2.13.2/tests/server/auth/test_remote_auth_provider.py +485 -0
  362. fastmcp-2.13.2/tests/server/http/test_custom_routes.py +105 -0
  363. fastmcp-2.13.2/tests/server/http/test_http_auth_middleware.py +93 -0
  364. fastmcp-2.13.2/tests/server/http/test_http_dependencies.py +122 -0
  365. fastmcp-2.13.2/tests/server/http/test_stale_access_token.py +159 -0
  366. fastmcp-2.13.2/tests/server/middleware/test_caching.py +523 -0
  367. fastmcp-2.13.2/tests/server/middleware/test_error_handling.py +635 -0
  368. fastmcp-2.13.2/tests/server/middleware/test_initialization_middleware.py +251 -0
  369. fastmcp-2.13.2/tests/server/middleware/test_logging.py +670 -0
  370. fastmcp-2.13.2/tests/server/middleware/test_middleware.py +905 -0
  371. fastmcp-2.13.2/tests/server/middleware/test_rate_limiting.py +456 -0
  372. fastmcp-2.13.2/tests/server/middleware/test_timing.py +317 -0
  373. fastmcp-2.13.2/tests/server/middleware/test_tool_injection.py +498 -0
  374. fastmcp-2.13.2/tests/server/openapi/conftest.py +135 -0
  375. fastmcp-2.13.2/tests/server/openapi/test_advanced_behavior.py +315 -0
  376. fastmcp-2.13.2/tests/server/openapi/test_basic_functionality.py +369 -0
  377. fastmcp-2.13.2/tests/server/openapi/test_configuration.py +933 -0
  378. fastmcp-2.13.2/tests/server/openapi/test_description_propagation.py +796 -0
  379. fastmcp-2.13.2/tests/server/openapi/test_openapi_path_parameters.py +624 -0
  380. fastmcp-2.13.2/tests/server/proxy/test_proxy_client.py +419 -0
  381. fastmcp-2.13.2/tests/server/proxy/test_proxy_server.py +771 -0
  382. fastmcp-2.13.2/tests/server/test_auth_integration.py +1240 -0
  383. fastmcp-2.13.2/tests/server/test_context.py +236 -0
  384. fastmcp-2.13.2/tests/server/test_file_server.py +127 -0
  385. fastmcp-2.13.2/tests/server/test_icons.py +342 -0
  386. fastmcp-2.13.2/tests/server/test_import_server.py +646 -0
  387. fastmcp-2.13.2/tests/server/test_input_validation.py +353 -0
  388. fastmcp-2.13.2/tests/server/test_log_level.py +88 -0
  389. fastmcp-2.13.2/tests/server/test_mount.py +1241 -0
  390. fastmcp-2.13.2/tests/server/test_server.py +1686 -0
  391. fastmcp-2.13.2/tests/server/test_server_interactions.py +2775 -0
  392. fastmcp-2.13.2/tests/server/test_server_lifespan.py +68 -0
  393. fastmcp-2.13.2/tests/server/test_tool_annotations.py +221 -0
  394. fastmcp-2.13.2/tests/server/test_tool_exclude_args.py +124 -0
  395. fastmcp-2.13.2/tests/server/test_tool_transformation.py +68 -0
  396. fastmcp-2.13.2/tests/test_examples.py +70 -0
  397. fastmcp-2.13.2/tests/test_mcp_config.py +771 -0
  398. fastmcp-2.13.2/tests/tools/test_tool.py +1708 -0
  399. fastmcp-2.13.2/tests/tools/test_tool_manager.py +1053 -0
  400. fastmcp-2.13.2/tests/tools/test_tool_transform.py +1693 -0
  401. fastmcp-2.13.2/tests/utilities/openapi/test_openapi_fastapi.py +540 -0
  402. fastmcp-2.13.2/tests/utilities/test_cli.py +195 -0
  403. fastmcp-2.13.2/tests/utilities/test_inspect.py +1112 -0
  404. fastmcp-2.13.2/tests/utilities/test_json_schema.py +507 -0
  405. fastmcp-2.13.2/tests/utilities/test_json_schema_type.py +1586 -0
  406. fastmcp-2.13.2/tests/utilities/test_logging.py +56 -0
  407. fastmcp-2.13.2/tests/utilities/test_types.py +716 -0
  408. fastmcp-2.13.2/uv.lock +2103 -0
  409. fastmcp-2.12.1/.github/pull_request_template.md +0 -28
  410. fastmcp-2.12.1/.github/workflows/auto-close-duplicates.yml +0 -28
  411. fastmcp-2.12.1/.github/workflows/marvin-dedupe-issues.yml +0 -80
  412. fastmcp-2.12.1/.github/workflows/marvin-label-triage.yml +0 -157
  413. fastmcp-2.12.1/.github/workflows/marvin.yml +0 -71
  414. fastmcp-2.12.1/.github/workflows/publish.yml +0 -26
  415. fastmcp-2.12.1/.github/workflows/run-static.yml +0 -54
  416. fastmcp-2.12.1/.github/workflows/run-tests.yml +0 -81
  417. fastmcp-2.12.1/.github/workflows/update-config-schema.yml +0 -91
  418. fastmcp-2.12.1/.github/workflows/update-sdk-docs.yml +0 -74
  419. fastmcp-2.12.1/.pre-commit-config.yaml +0 -41
  420. fastmcp-2.12.1/AGENTS.md +0 -265
  421. fastmcp-2.12.1/PKG-INFO +0 -470
  422. fastmcp-2.12.1/README.md +0 -434
  423. fastmcp-2.12.1/README_OPENAPI.md +0 -246
  424. fastmcp-2.12.1/Windows_Notes.md +0 -58
  425. fastmcp-2.12.1/docs/assets/brand/card-background.png +0 -0
  426. fastmcp-2.12.1/docs/assets/brand/logo-wordmark-dark.svg +0 -4
  427. fastmcp-2.12.1/docs/assets/brand/logo-wordmark.svg +0 -4
  428. fastmcp-2.12.1/docs/changelog.mdx +0 -1767
  429. fastmcp-2.12.1/docs/clients/auth/oauth.mdx +0 -118
  430. fastmcp-2.12.1/docs/clients/client.mdx +0 -291
  431. fastmcp-2.12.1/docs/clients/elicitation.mdx +0 -126
  432. fastmcp-2.12.1/docs/clients/sampling.mdx +0 -201
  433. fastmcp-2.12.1/docs/clients/tools.mdx +0 -270
  434. fastmcp-2.12.1/docs/community/showcase.mdx +0 -59
  435. fastmcp-2.12.1/docs/css/style.css +0 -20
  436. fastmcp-2.12.1/docs/deployment/running-server.mdx +0 -258
  437. fastmcp-2.12.1/docs/deployment/self-hosted.mdx +0 -209
  438. fastmcp-2.12.1/docs/development/contributing.mdx +0 -187
  439. fastmcp-2.12.1/docs/development/tests.mdx +0 -350
  440. fastmcp-2.12.1/docs/docs.json +0 -433
  441. fastmcp-2.12.1/docs/getting-started/installation.mdx +0 -82
  442. fastmcp-2.12.1/docs/getting-started/quickstart.mdx +0 -137
  443. fastmcp-2.12.1/docs/getting-started/welcome.mdx +0 -78
  444. fastmcp-2.12.1/docs/integrations/asgi.mdx +0 -213
  445. fastmcp-2.12.1/docs/integrations/authkit.mdx +0 -133
  446. fastmcp-2.12.1/docs/integrations/azure.mdx +0 -254
  447. fastmcp-2.12.1/docs/integrations/chatgpt.mdx +0 -159
  448. fastmcp-2.12.1/docs/integrations/cursor.mdx +0 -285
  449. fastmcp-2.12.1/docs/integrations/fastapi.mdx +0 -446
  450. fastmcp-2.12.1/docs/integrations/github.mdx +0 -209
  451. fastmcp-2.12.1/docs/integrations/google.mdx +0 -222
  452. fastmcp-2.12.1/docs/integrations/mcp-json-configuration.mdx +0 -423
  453. fastmcp-2.12.1/docs/integrations/openapi.mdx +0 -473
  454. fastmcp-2.12.1/docs/integrations/workos-oauth.mdx +0 -242
  455. fastmcp-2.12.1/docs/patterns/cli.mdx +0 -577
  456. fastmcp-2.12.1/docs/patterns/tool-transformation.mdx +0 -576
  457. fastmcp-2.12.1/docs/public/schemas/fastmcp.json/latest.json +0 -361
  458. fastmcp-2.12.1/docs/public/schemas/fastmcp.json/v1.json +0 -361
  459. fastmcp-2.12.1/docs/python-sdk/fastmcp-cli-claude.mdx +0 -43
  460. fastmcp-2.12.1/docs/python-sdk/fastmcp-cli-cli.mdx +0 -129
  461. fastmcp-2.12.1/docs/python-sdk/fastmcp-cli-install-claude_code.mdx +0 -71
  462. fastmcp-2.12.1/docs/python-sdk/fastmcp-cli-install-claude_desktop.mdx +0 -58
  463. fastmcp-2.12.1/docs/python-sdk/fastmcp-cli-install-cursor.mdx +0 -107
  464. fastmcp-2.12.1/docs/python-sdk/fastmcp-cli-install-mcp_json.mdx +0 -49
  465. fastmcp-2.12.1/docs/python-sdk/fastmcp-cli-run.mdx +0 -119
  466. fastmcp-2.12.1/docs/python-sdk/fastmcp-client-auth-oauth.mdx +0 -165
  467. fastmcp-2.12.1/docs/python-sdk/fastmcp-client-client.mdx +0 -505
  468. fastmcp-2.12.1/docs/python-sdk/fastmcp-client-logging.mdx +0 -24
  469. fastmcp-2.12.1/docs/python-sdk/fastmcp-client-oauth_callback.mdx +0 -63
  470. fastmcp-2.12.1/docs/python-sdk/fastmcp-client-transports.mdx +0 -300
  471. fastmcp-2.12.1/docs/python-sdk/fastmcp-mcp_config.mdx +0 -188
  472. fastmcp-2.12.1/docs/python-sdk/fastmcp-prompts-prompt.mdx +0 -114
  473. fastmcp-2.12.1/docs/python-sdk/fastmcp-prompts-prompt_manager.mdx +0 -89
  474. fastmcp-2.12.1/docs/python-sdk/fastmcp-resources-resource.mdx +0 -120
  475. fastmcp-2.12.1/docs/python-sdk/fastmcp-resources-resource_manager.mdx +0 -181
  476. fastmcp-2.12.1/docs/python-sdk/fastmcp-resources-template.mdx +0 -143
  477. fastmcp-2.12.1/docs/python-sdk/fastmcp-resources-types.mdx +0 -134
  478. fastmcp-2.12.1/docs/python-sdk/fastmcp-server-auth-auth.mdx +0 -181
  479. fastmcp-2.12.1/docs/python-sdk/fastmcp-server-auth-oauth_proxy.mdx +0 -304
  480. fastmcp-2.12.1/docs/python-sdk/fastmcp-server-auth-providers-azure.mdx +0 -63
  481. fastmcp-2.12.1/docs/python-sdk/fastmcp-server-auth-providers-github.mdx +0 -72
  482. fastmcp-2.12.1/docs/python-sdk/fastmcp-server-auth-providers-google.mdx +0 -72
  483. fastmcp-2.12.1/docs/python-sdk/fastmcp-server-auth-providers-in_memory.mdx +0 -96
  484. fastmcp-2.12.1/docs/python-sdk/fastmcp-server-auth-providers-jwt.mdx +0 -152
  485. fastmcp-2.12.1/docs/python-sdk/fastmcp-server-auth-providers-workos.mdx +0 -110
  486. fastmcp-2.12.1/docs/python-sdk/fastmcp-server-context.mdx +0 -340
  487. fastmcp-2.12.1/docs/python-sdk/fastmcp-server-dependencies.mdx +0 -49
  488. fastmcp-2.12.1/docs/python-sdk/fastmcp-server-http.mdx +0 -103
  489. fastmcp-2.12.1/docs/python-sdk/fastmcp-server-low_level.mdx +0 -18
  490. fastmcp-2.12.1/docs/python-sdk/fastmcp-server-middleware-error_handling.mdx +0 -60
  491. fastmcp-2.12.1/docs/python-sdk/fastmcp-server-middleware-logging.mdx +0 -63
  492. fastmcp-2.12.1/docs/python-sdk/fastmcp-server-middleware-middleware.mdx +0 -106
  493. fastmcp-2.12.1/docs/python-sdk/fastmcp-server-openapi.mdx +0 -91
  494. fastmcp-2.12.1/docs/python-sdk/fastmcp-server-proxy.mdx +0 -339
  495. fastmcp-2.12.1/docs/python-sdk/fastmcp-server-server.mdx +0 -851
  496. fastmcp-2.12.1/docs/python-sdk/fastmcp-settings.mdx +0 -78
  497. fastmcp-2.12.1/docs/python-sdk/fastmcp-tools-tool.mdx +0 -114
  498. fastmcp-2.12.1/docs/python-sdk/fastmcp-tools-tool_manager.mdx +0 -131
  499. fastmcp-2.12.1/docs/python-sdk/fastmcp-tools-tool_transform.mdx +0 -290
  500. fastmcp-2.12.1/docs/python-sdk/fastmcp-utilities-cli.mdx +0 -55
  501. fastmcp-2.12.1/docs/python-sdk/fastmcp-utilities-components.mdx +0 -121
  502. fastmcp-2.12.1/docs/python-sdk/fastmcp-utilities-inspect.mdx +0 -143
  503. fastmcp-2.12.1/docs/python-sdk/fastmcp-utilities-json_schema.mdx +0 -25
  504. fastmcp-2.12.1/docs/python-sdk/fastmcp-utilities-logging.mdx +0 -42
  505. fastmcp-2.12.1/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-environments-base.mdx +0 -43
  506. fastmcp-2.12.1/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-environments-uv.mdx +0 -75
  507. fastmcp-2.12.1/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-mcp_server_config.mdx +0 -235
  508. fastmcp-2.12.1/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-sources-base.mdx +0 -42
  509. fastmcp-2.12.1/docs/python-sdk/fastmcp-utilities-tests.mdx +0 -85
  510. fastmcp-2.12.1/docs/python-sdk/fastmcp-utilities-types.mdx +0 -141
  511. fastmcp-2.12.1/docs/servers/auth/authentication.mdx +0 -267
  512. fastmcp-2.12.1/docs/servers/auth/full-oauth-server.mdx +0 -229
  513. fastmcp-2.12.1/docs/servers/auth/oauth-proxy.mdx +0 -322
  514. fastmcp-2.12.1/docs/servers/auth/remote-oauth.mdx +0 -221
  515. fastmcp-2.12.1/docs/servers/auth/token-verification.mdx +0 -247
  516. fastmcp-2.12.1/docs/servers/composition.mdx +0 -321
  517. fastmcp-2.12.1/docs/servers/context.mdx +0 -428
  518. fastmcp-2.12.1/docs/servers/elicitation.mdx +0 -320
  519. fastmcp-2.12.1/docs/servers/logging.mdx +0 -236
  520. fastmcp-2.12.1/docs/servers/middleware.mdx +0 -641
  521. fastmcp-2.12.1/docs/servers/prompts.mdx +0 -343
  522. fastmcp-2.12.1/docs/servers/proxy.mdx +0 -335
  523. fastmcp-2.12.1/docs/servers/resources.mdx +0 -612
  524. fastmcp-2.12.1/docs/servers/sampling.mdx +0 -191
  525. fastmcp-2.12.1/docs/servers/server.mdx +0 -413
  526. fastmcp-2.12.1/docs/servers/tools.mdx +0 -1095
  527. fastmcp-2.12.1/docs/tutorials/rest-api.mdx +0 -203
  528. fastmcp-2.12.1/docs/updates.mdx +0 -187
  529. fastmcp-2.12.1/examples/atproto_mcp/src/atproto_mcp/_atproto/__init__.py +0 -20
  530. fastmcp-2.12.1/examples/auth/azure_oauth/server.py +0 -39
  531. fastmcp-2.12.1/examples/auth/workos_oauth/README.md +0 -159
  532. fastmcp-2.12.1/examples/get_file.py +0 -33
  533. fastmcp-2.12.1/examples/memory.py +0 -346
  534. fastmcp-2.12.1/examples/mount_example.py +0 -116
  535. fastmcp-2.12.1/examples/serializer.py +0 -32
  536. fastmcp-2.12.1/examples/smart_home/src/smart_home/hub.py +0 -35
  537. fastmcp-2.12.1/examples/smart_home/src/smart_home/lights/hue_utils.py +0 -34
  538. fastmcp-2.12.1/examples/smart_home/src/smart_home/settings.py +0 -12
  539. fastmcp-2.12.1/examples/smart_home/uv.lock +0 -657
  540. fastmcp-2.12.1/pyproject.toml +0 -144
  541. fastmcp-2.12.1/src/fastmcp/__init__.py +0 -56
  542. fastmcp-2.12.1/src/fastmcp/cli/claude.py +0 -144
  543. fastmcp-2.12.1/src/fastmcp/cli/cli.py +0 -858
  544. fastmcp-2.12.1/src/fastmcp/cli/install/__init__.py +0 -20
  545. fastmcp-2.12.1/src/fastmcp/cli/install/claude_code.py +0 -253
  546. fastmcp-2.12.1/src/fastmcp/cli/install/claude_desktop.py +0 -222
  547. fastmcp-2.12.1/src/fastmcp/cli/install/cursor.py +0 -347
  548. fastmcp-2.12.1/src/fastmcp/cli/install/mcp_json.py +0 -204
  549. fastmcp-2.12.1/src/fastmcp/cli/run.py +0 -304
  550. fastmcp-2.12.1/src/fastmcp/client/__init__.py +0 -32
  551. fastmcp-2.12.1/src/fastmcp/client/auth/oauth.py +0 -414
  552. fastmcp-2.12.1/src/fastmcp/client/client.py +0 -939
  553. fastmcp-2.12.1/src/fastmcp/client/elicitation.py +0 -69
  554. fastmcp-2.12.1/src/fastmcp/client/logging.py +0 -50
  555. fastmcp-2.12.1/src/fastmcp/client/oauth_callback.py +0 -328
  556. fastmcp-2.12.1/src/fastmcp/client/sampling.py +0 -56
  557. fastmcp-2.12.1/src/fastmcp/client/transports.py +0 -1064
  558. fastmcp-2.12.1/src/fastmcp/contrib/component_manager/__init__.py +0 -4
  559. fastmcp-2.12.1/src/fastmcp/contrib/component_manager/component_manager.py +0 -186
  560. fastmcp-2.12.1/src/fastmcp/contrib/component_manager/component_service.py +0 -225
  561. fastmcp-2.12.1/src/fastmcp/contrib/mcp_mixin/README.md +0 -116
  562. fastmcp-2.12.1/src/fastmcp/contrib/mcp_mixin/__init__.py +0 -8
  563. fastmcp-2.12.1/src/fastmcp/contrib/mcp_mixin/mcp_mixin.py +0 -229
  564. fastmcp-2.12.1/src/fastmcp/experimental/sampling/handlers/openai.py +0 -170
  565. fastmcp-2.12.1/src/fastmcp/experimental/server/openapi/__init__.py +0 -38
  566. fastmcp-2.12.1/src/fastmcp/experimental/server/openapi/components.py +0 -348
  567. fastmcp-2.12.1/src/fastmcp/experimental/server/openapi/routing.py +0 -130
  568. fastmcp-2.12.1/src/fastmcp/experimental/utilities/openapi/__init__.py +0 -68
  569. fastmcp-2.12.1/src/fastmcp/experimental/utilities/openapi/director.py +0 -208
  570. fastmcp-2.12.1/src/fastmcp/experimental/utilities/openapi/json_schema_converter.py +0 -340
  571. fastmcp-2.12.1/src/fastmcp/experimental/utilities/openapi/models.py +0 -88
  572. fastmcp-2.12.1/src/fastmcp/experimental/utilities/openapi/parser.py +0 -800
  573. fastmcp-2.12.1/src/fastmcp/experimental/utilities/openapi/schemas.py +0 -567
  574. fastmcp-2.12.1/src/fastmcp/mcp_config.py +0 -339
  575. fastmcp-2.12.1/src/fastmcp/prompts/__init__.py +0 -9
  576. fastmcp-2.12.1/src/fastmcp/prompts/prompt.py +0 -376
  577. fastmcp-2.12.1/src/fastmcp/prompts/prompt_manager.py +0 -203
  578. fastmcp-2.12.1/src/fastmcp/resources/__init__.py +0 -22
  579. fastmcp-2.12.1/src/fastmcp/resources/resource.py +0 -215
  580. fastmcp-2.12.1/src/fastmcp/resources/resource_manager.py +0 -502
  581. fastmcp-2.12.1/src/fastmcp/resources/template.py +0 -311
  582. fastmcp-2.12.1/src/fastmcp/resources/types.py +0 -151
  583. fastmcp-2.12.1/src/fastmcp/server/__init__.py +0 -6
  584. fastmcp-2.12.1/src/fastmcp/server/auth/__init__.py +0 -30
  585. fastmcp-2.12.1/src/fastmcp/server/auth/auth.py +0 -366
  586. fastmcp-2.12.1/src/fastmcp/server/auth/oauth_proxy.py +0 -948
  587. fastmcp-2.12.1/src/fastmcp/server/auth/providers/azure.py +0 -261
  588. fastmcp-2.12.1/src/fastmcp/server/auth/providers/bearer.py +0 -25
  589. fastmcp-2.12.1/src/fastmcp/server/auth/providers/github.py +0 -279
  590. fastmcp-2.12.1/src/fastmcp/server/auth/providers/google.py +0 -298
  591. fastmcp-2.12.1/src/fastmcp/server/auth/providers/in_memory.py +0 -340
  592. fastmcp-2.12.1/src/fastmcp/server/auth/providers/jwt.py +0 -547
  593. fastmcp-2.12.1/src/fastmcp/server/auth/providers/workos.py +0 -405
  594. fastmcp-2.12.1/src/fastmcp/server/context.py +0 -676
  595. fastmcp-2.12.1/src/fastmcp/server/dependencies.py +0 -123
  596. fastmcp-2.12.1/src/fastmcp/server/elicitation.py +0 -220
  597. fastmcp-2.12.1/src/fastmcp/server/http.py +0 -321
  598. fastmcp-2.12.1/src/fastmcp/server/low_level.py +0 -37
  599. fastmcp-2.12.1/src/fastmcp/server/middleware/__init__.py +0 -11
  600. fastmcp-2.12.1/src/fastmcp/server/middleware/error_handling.py +0 -206
  601. fastmcp-2.12.1/src/fastmcp/server/middleware/logging.py +0 -214
  602. fastmcp-2.12.1/src/fastmcp/server/middleware/middleware.py +0 -194
  603. fastmcp-2.12.1/src/fastmcp/server/middleware/rate_limiting.py +0 -231
  604. fastmcp-2.12.1/src/fastmcp/server/openapi.py +0 -1079
  605. fastmcp-2.12.1/src/fastmcp/server/proxy.py +0 -683
  606. fastmcp-2.12.1/src/fastmcp/server/server.py +0 -2408
  607. fastmcp-2.12.1/src/fastmcp/settings.py +0 -364
  608. fastmcp-2.12.1/src/fastmcp/tools/__init__.py +0 -5
  609. fastmcp-2.12.1/src/fastmcp/tools/tool.py +0 -540
  610. fastmcp-2.12.1/src/fastmcp/tools/tool_manager.py +0 -254
  611. fastmcp-2.12.1/src/fastmcp/tools/tool_transform.py +0 -952
  612. fastmcp-2.12.1/src/fastmcp/utilities/cli.py +0 -235
  613. fastmcp-2.12.1/src/fastmcp/utilities/components.py +0 -176
  614. fastmcp-2.12.1/src/fastmcp/utilities/inspect.py +0 -450
  615. fastmcp-2.12.1/src/fastmcp/utilities/json_schema.py +0 -213
  616. fastmcp-2.12.1/src/fastmcp/utilities/json_schema_type.py +0 -648
  617. fastmcp-2.12.1/src/fastmcp/utilities/logging.py +0 -58
  618. fastmcp-2.12.1/src/fastmcp/utilities/mcp_server_config/__init__.py +0 -25
  619. fastmcp-2.12.1/src/fastmcp/utilities/mcp_server_config/v1/environments/base.py +0 -30
  620. fastmcp-2.12.1/src/fastmcp/utilities/mcp_server_config/v1/environments/uv.py +0 -306
  621. fastmcp-2.12.1/src/fastmcp/utilities/mcp_server_config/v1/mcp_server_config.py +0 -446
  622. fastmcp-2.12.1/src/fastmcp/utilities/mcp_server_config/v1/schema.json +0 -361
  623. fastmcp-2.12.1/src/fastmcp/utilities/mcp_server_config/v1/sources/base.py +0 -30
  624. fastmcp-2.12.1/src/fastmcp/utilities/openapi.py +0 -1568
  625. fastmcp-2.12.1/src/fastmcp/utilities/tests.py +0 -197
  626. fastmcp-2.12.1/src/fastmcp/utilities/types.py +0 -422
  627. fastmcp-2.12.1/tests/cli/test_cli.py +0 -592
  628. fastmcp-2.12.1/tests/cli/test_config.py +0 -444
  629. fastmcp-2.12.1/tests/cli/test_cursor.py +0 -357
  630. fastmcp-2.12.1/tests/cli/test_install.py +0 -251
  631. fastmcp-2.12.1/tests/cli/test_mcp_server_config_integration.py +0 -290
  632. fastmcp-2.12.1/tests/cli/test_mcp_server_config_schema.py +0 -149
  633. fastmcp-2.12.1/tests/cli/test_project_prepare.py +0 -303
  634. fastmcp-2.12.1/tests/cli/test_run.py +0 -393
  635. fastmcp-2.12.1/tests/cli/test_run_config.py +0 -271
  636. fastmcp-2.12.1/tests/cli/test_run_with_uv.py +0 -249
  637. fastmcp-2.12.1/tests/cli/test_server_args.py +0 -139
  638. fastmcp-2.12.1/tests/client/auth/test_oauth_client.py +0 -128
  639. fastmcp-2.12.1/tests/client/auth/test_oauth_token_expiry.py +0 -152
  640. fastmcp-2.12.1/tests/client/test_client.py +0 -1034
  641. fastmcp-2.12.1/tests/client/test_elicitation.py +0 -719
  642. fastmcp-2.12.1/tests/client/test_logs.py +0 -193
  643. fastmcp-2.12.1/tests/client/test_openapi_experimental.py +0 -201
  644. fastmcp-2.12.1/tests/client/test_openapi_legacy.py +0 -198
  645. fastmcp-2.12.1/tests/client/test_sse.py +0 -166
  646. fastmcp-2.12.1/tests/client/test_stdio.py +0 -255
  647. fastmcp-2.12.1/tests/client/test_streamable_http.py +0 -246
  648. fastmcp-2.12.1/tests/client/transports/test_uv_transport.py +0 -98
  649. fastmcp-2.12.1/tests/conftest.py +0 -17
  650. fastmcp-2.12.1/tests/contrib/test_bulk_tool_caller.py +0 -216
  651. fastmcp-2.12.1/tests/contrib/test_mcp_mixin.py +0 -255
  652. fastmcp-2.12.1/tests/experimental/openapi_parser/server/openapi/test_comprehensive.py +0 -706
  653. fastmcp-2.12.1/tests/experimental/openapi_parser/server/openapi/test_deepobject_style.py +0 -338
  654. fastmcp-2.12.1/tests/experimental/openapi_parser/server/openapi/test_openapi_features.py +0 -391
  655. fastmcp-2.12.1/tests/experimental/openapi_parser/server/openapi/test_openapi_performance.py +0 -142
  656. fastmcp-2.12.1/tests/experimental/openapi_parser/server/openapi/test_parameter_collisions.py +0 -215
  657. fastmcp-2.12.1/tests/experimental/openapi_parser/server/openapi/test_performance_comparison.py +0 -291
  658. fastmcp-2.12.1/tests/experimental/openapi_parser/server/openapi/test_server.py +0 -340
  659. fastmcp-2.12.1/tests/experimental/openapi_parser/utilities/openapi/test_models.py +0 -455
  660. fastmcp-2.12.1/tests/experimental/openapi_parser/utilities/openapi/test_nullable_fields.py +0 -245
  661. fastmcp-2.12.1/tests/experimental/openapi_parser/utilities/openapi/test_schemas.py +0 -534
  662. fastmcp-2.12.1/tests/experimental/openapi_parser/utilities/openapi/test_transitive_references.py +0 -788
  663. fastmcp-2.12.1/tests/integration_tests/auth/test_github_provider_integration.py +0 -356
  664. fastmcp-2.12.1/tests/integration_tests/test_github_mcp_remote.py +0 -117
  665. fastmcp-2.12.1/tests/prompts/test_prompt_manager.py +0 -435
  666. fastmcp-2.12.1/tests/resources/test_resource_manager.py +0 -654
  667. fastmcp-2.12.1/tests/resources/test_resource_template.py +0 -709
  668. fastmcp-2.12.1/tests/resources/test_resources.py +0 -115
  669. fastmcp-2.12.1/tests/server/auth/providers/test_azure.py +0 -164
  670. fastmcp-2.12.1/tests/server/auth/providers/test_github.py +0 -240
  671. fastmcp-2.12.1/tests/server/auth/providers/test_google.py +0 -116
  672. fastmcp-2.12.1/tests/server/auth/providers/test_workos.py +0 -206
  673. fastmcp-2.12.1/tests/server/auth/test_auth_provider.py +0 -102
  674. fastmcp-2.12.1/tests/server/auth/test_jwt_provider.py +0 -1083
  675. fastmcp-2.12.1/tests/server/auth/test_oauth_proxy.py +0 -795
  676. fastmcp-2.12.1/tests/server/auth/test_oauth_proxy_redirect_validation.py +0 -198
  677. fastmcp-2.12.1/tests/server/auth/test_remote_auth_provider.py +0 -444
  678. fastmcp-2.12.1/tests/server/http/test_custom_routes.py +0 -105
  679. fastmcp-2.12.1/tests/server/http/test_http_auth_middleware.py +0 -78
  680. fastmcp-2.12.1/tests/server/http/test_http_dependencies.py +0 -123
  681. fastmcp-2.12.1/tests/server/middleware/test_error_handling.py +0 -601
  682. fastmcp-2.12.1/tests/server/middleware/test_logging.py +0 -689
  683. fastmcp-2.12.1/tests/server/middleware/test_middleware.py +0 -894
  684. fastmcp-2.12.1/tests/server/middleware/test_rate_limiting.py +0 -455
  685. fastmcp-2.12.1/tests/server/middleware/test_timing.py +0 -316
  686. fastmcp-2.12.1/tests/server/openapi/conftest.py +0 -135
  687. fastmcp-2.12.1/tests/server/openapi/test_advanced_behavior.py +0 -312
  688. fastmcp-2.12.1/tests/server/openapi/test_basic_functionality.py +0 -367
  689. fastmcp-2.12.1/tests/server/openapi/test_configuration.py +0 -930
  690. fastmcp-2.12.1/tests/server/openapi/test_description_propagation.py +0 -795
  691. fastmcp-2.12.1/tests/server/openapi/test_openapi_path_parameters.py +0 -624
  692. fastmcp-2.12.1/tests/server/proxy/test_proxy_client.py +0 -418
  693. fastmcp-2.12.1/tests/server/proxy/test_proxy_server.py +0 -740
  694. fastmcp-2.12.1/tests/server/test_auth_integration.py +0 -1234
  695. fastmcp-2.12.1/tests/server/test_context.py +0 -179
  696. fastmcp-2.12.1/tests/server/test_file_server.py +0 -127
  697. fastmcp-2.12.1/tests/server/test_import_server.py +0 -645
  698. fastmcp-2.12.1/tests/server/test_mount.py +0 -1146
  699. fastmcp-2.12.1/tests/server/test_server.py +0 -1580
  700. fastmcp-2.12.1/tests/server/test_server_interactions.py +0 -2727
  701. fastmcp-2.12.1/tests/server/test_tool_annotations.py +0 -221
  702. fastmcp-2.12.1/tests/server/test_tool_exclude_args.py +0 -94
  703. fastmcp-2.12.1/tests/server/test_tool_transformation.py +0 -68
  704. fastmcp-2.12.1/tests/test_examples.py +0 -69
  705. fastmcp-2.12.1/tests/test_mcp_config.py +0 -770
  706. fastmcp-2.12.1/tests/tools/test_tool.py +0 -1661
  707. fastmcp-2.12.1/tests/tools/test_tool_manager.py +0 -1039
  708. fastmcp-2.12.1/tests/tools/test_tool_transform.py +0 -1709
  709. fastmcp-2.12.1/tests/utilities/openapi/test_openapi_fastapi.py +0 -539
  710. fastmcp-2.12.1/tests/utilities/test_cli.py +0 -192
  711. fastmcp-2.12.1/tests/utilities/test_inspect.py +0 -592
  712. fastmcp-2.12.1/tests/utilities/test_json_schema.py +0 -435
  713. fastmcp-2.12.1/tests/utilities/test_json_schema_type.py +0 -1580
  714. fastmcp-2.12.1/tests/utilities/test_logging.py +0 -30
  715. fastmcp-2.12.1/tests/utilities/test_types.py +0 -694
  716. fastmcp-2.12.1/uv.lock +0 -2207
  717. {fastmcp-2.12.1 → fastmcp-2.13.2}/.ccignore +0 -0
  718. {fastmcp-2.12.1 → fastmcp-2.13.2}/.cursor/rules/core-mcp-objects.mdc +0 -0
  719. {fastmcp-2.12.1 → fastmcp-2.13.2}/.github/ISSUE_TEMPLATE/bug.yml +0 -0
  720. {fastmcp-2.12.1 → fastmcp-2.13.2}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  721. {fastmcp-2.12.1 → fastmcp-2.13.2}/.github/ISSUE_TEMPLATE/enhancement.yml +0 -0
  722. {fastmcp-2.12.1 → fastmcp-2.13.2}/.github/copilot-instructions.md +0 -0
  723. {fastmcp-2.12.1 → fastmcp-2.13.2}/.github/dependabot.yml +0 -0
  724. {fastmcp-2.12.1 → fastmcp-2.13.2}/.github/release.yml +0 -0
  725. {fastmcp-2.12.1 → fastmcp-2.13.2}/.gitignore +0 -0
  726. {fastmcp-2.12.1 → fastmcp-2.13.2}/CLAUDE.md +0 -0
  727. {fastmcp-2.12.1 → fastmcp-2.13.2}/CODE_OF_CONDUCT.md +0 -0
  728. {fastmcp-2.12.1 → fastmcp-2.13.2}/LICENSE +0 -0
  729. {fastmcp-2.12.1 → fastmcp-2.13.2}/docs/.ccignore +0 -0
  730. {fastmcp-2.12.1 → fastmcp-2.13.2}/docs/.cursor/rules/mintlify.mdc +0 -0
  731. {fastmcp-2.12.1 → fastmcp-2.13.2}/docs/assets/brand/blue-logo.png +0 -0
  732. {fastmcp-2.12.1 → fastmcp-2.13.2}/docs/assets/brand/favicon.svg +0 -0
  733. {fastmcp-2.12.1 → fastmcp-2.13.2}/docs/assets/images/fastmcp_cloud/connect.png +0 -0
  734. {fastmcp-2.12.1 → fastmcp-2.13.2}/docs/assets/images/fastmcp_cloud/create_project.png +0 -0
  735. {fastmcp-2.12.1 → fastmcp-2.13.2}/docs/assets/images/fastmcp_cloud/deployment.png +0 -0
  736. {fastmcp-2.12.1 → fastmcp-2.13.2}/docs/assets/images/fastmcp_cloud/quickstart.png +0 -0
  737. {fastmcp-2.12.1 → fastmcp-2.13.2}/docs/assets/images/tutorial-rest-api-result.png +0 -0
  738. {fastmcp-2.12.1 → fastmcp-2.13.2}/docs/assets/schemas/mcp_server_config/latest.json +0 -0
  739. {fastmcp-2.12.1 → fastmcp-2.13.2}/docs/assets/schemas/mcp_server_config/v1.json +0 -0
  740. {fastmcp-2.12.1 → fastmcp-2.13.2}/docs/assets/updates/release-2-7.png +0 -0
  741. {fastmcp-2.12.1 → fastmcp-2.13.2}/docs/clients/auth/bearer.mdx +0 -0
  742. {fastmcp-2.12.1 → fastmcp-2.13.2}/docs/clients/logging.mdx +0 -0
  743. {fastmcp-2.12.1 → fastmcp-2.13.2}/docs/clients/messages.mdx +0 -0
  744. {fastmcp-2.12.1 → fastmcp-2.13.2}/docs/clients/progress.mdx +0 -0
  745. {fastmcp-2.12.1 → fastmcp-2.13.2}/docs/clients/prompts.mdx +0 -0
  746. {fastmcp-2.12.1 → fastmcp-2.13.2}/docs/clients/resources.mdx +0 -0
  747. {fastmcp-2.12.1 → fastmcp-2.13.2}/docs/clients/roots.mdx +0 -0
  748. {fastmcp-2.12.1 → fastmcp-2.13.2}/docs/clients/transports.mdx +0 -0
  749. {fastmcp-2.12.1 → fastmcp-2.13.2}/docs/community/README.md +0 -0
  750. {fastmcp-2.12.1 → fastmcp-2.13.2}/docs/css/banner.css +0 -0
  751. {fastmcp-2.12.1 → fastmcp-2.13.2}/docs/css/python-sdk.css +0 -0
  752. {fastmcp-2.12.1 → fastmcp-2.13.2}/docs/css/version-badge.css +0 -0
  753. {fastmcp-2.12.1 → fastmcp-2.13.2}/docs/deployment/fastmcp-cloud.mdx +0 -0
  754. {fastmcp-2.12.1 → fastmcp-2.13.2}/docs/deployment/server-configuration.mdx +0 -0
  755. {fastmcp-2.12.1 → fastmcp-2.13.2}/docs/development/releases.mdx +0 -0
  756. {fastmcp-2.12.1 → fastmcp-2.13.2}/docs/integrations/anthropic.mdx +0 -0
  757. {fastmcp-2.12.1 → fastmcp-2.13.2}/docs/integrations/claude-code.mdx +0 -0
  758. {fastmcp-2.12.1 → fastmcp-2.13.2}/docs/integrations/claude-desktop.mdx +0 -0
  759. {fastmcp-2.12.1 → fastmcp-2.13.2}/docs/integrations/cursor-install-mcp.png +0 -0
  760. {fastmcp-2.12.1 → fastmcp-2.13.2}/docs/integrations/eunomia-authorization.mdx +0 -0
  761. {fastmcp-2.12.1 → fastmcp-2.13.2}/docs/integrations/gemini.mdx +0 -0
  762. {fastmcp-2.12.1 → fastmcp-2.13.2}/docs/integrations/images/authkit/enable_dcr.png +0 -0
  763. {fastmcp-2.12.1 → fastmcp-2.13.2}/docs/integrations/images/permit/abac_condition_example.png +0 -0
  764. {fastmcp-2.12.1 → fastmcp-2.13.2}/docs/integrations/images/permit/abac_policy_example.png +0 -0
  765. {fastmcp-2.12.1 → fastmcp-2.13.2}/docs/integrations/images/permit/policy_mapping.png +0 -0
  766. {fastmcp-2.12.1 → fastmcp-2.13.2}/docs/integrations/images/permit/role_assignement.png +0 -0
  767. {fastmcp-2.12.1 → fastmcp-2.13.2}/docs/integrations/openai.mdx +0 -0
  768. {fastmcp-2.12.1 → fastmcp-2.13.2}/docs/integrations/permit.mdx +0 -0
  769. {fastmcp-2.12.1 → fastmcp-2.13.2}/docs/patterns/contrib.mdx +0 -0
  770. {fastmcp-2.12.1 → fastmcp-2.13.2}/docs/patterns/decorating-methods.mdx +0 -0
  771. {fastmcp-2.12.1 → fastmcp-2.13.2}/docs/python-sdk/fastmcp-cli-__init__.mdx +0 -0
  772. {fastmcp-2.12.1 → fastmcp-2.13.2}/docs/python-sdk/fastmcp-cli-install-__init__.mdx +0 -0
  773. {fastmcp-2.12.1 → fastmcp-2.13.2}/docs/python-sdk/fastmcp-cli-install-shared.mdx +0 -0
  774. {fastmcp-2.12.1 → fastmcp-2.13.2}/docs/python-sdk/fastmcp-client-__init__.mdx +0 -0
  775. {fastmcp-2.12.1 → fastmcp-2.13.2}/docs/python-sdk/fastmcp-client-auth-__init__.mdx +0 -0
  776. {fastmcp-2.12.1 → fastmcp-2.13.2}/docs/python-sdk/fastmcp-client-auth-bearer.mdx +0 -0
  777. {fastmcp-2.12.1 → fastmcp-2.13.2}/docs/python-sdk/fastmcp-client-elicitation.mdx +0 -0
  778. {fastmcp-2.12.1 → fastmcp-2.13.2}/docs/python-sdk/fastmcp-client-messages.mdx +0 -0
  779. {fastmcp-2.12.1 → fastmcp-2.13.2}/docs/python-sdk/fastmcp-client-progress.mdx +0 -0
  780. {fastmcp-2.12.1 → fastmcp-2.13.2}/docs/python-sdk/fastmcp-client-roots.mdx +0 -0
  781. {fastmcp-2.12.1 → fastmcp-2.13.2}/docs/python-sdk/fastmcp-client-sampling.mdx +0 -0
  782. {fastmcp-2.12.1 → fastmcp-2.13.2}/docs/python-sdk/fastmcp-exceptions.mdx +0 -0
  783. {fastmcp-2.12.1 → fastmcp-2.13.2}/docs/python-sdk/fastmcp-prompts-__init__.mdx +0 -0
  784. {fastmcp-2.12.1 → fastmcp-2.13.2}/docs/python-sdk/fastmcp-resources-__init__.mdx +0 -0
  785. {fastmcp-2.12.1 → fastmcp-2.13.2}/docs/python-sdk/fastmcp-server-__init__.mdx +0 -0
  786. {fastmcp-2.12.1 → fastmcp-2.13.2}/docs/python-sdk/fastmcp-server-auth-__init__.mdx +0 -0
  787. {fastmcp-2.12.1 → fastmcp-2.13.2}/docs/python-sdk/fastmcp-server-auth-providers-__init__.mdx +0 -0
  788. {fastmcp-2.12.1 → fastmcp-2.13.2}/docs/python-sdk/fastmcp-server-auth-providers-bearer.mdx +0 -0
  789. {fastmcp-2.12.1 → fastmcp-2.13.2}/docs/python-sdk/fastmcp-server-auth-redirect_validation.mdx +0 -0
  790. {fastmcp-2.12.1 → fastmcp-2.13.2}/docs/python-sdk/fastmcp-server-elicitation.mdx +0 -0
  791. {fastmcp-2.12.1 → fastmcp-2.13.2}/docs/python-sdk/fastmcp-server-middleware-__init__.mdx +0 -0
  792. {fastmcp-2.12.1 → fastmcp-2.13.2}/docs/python-sdk/fastmcp-server-middleware-rate_limiting.mdx +0 -0
  793. {fastmcp-2.12.1 → fastmcp-2.13.2}/docs/python-sdk/fastmcp-server-middleware-timing.mdx +0 -0
  794. {fastmcp-2.12.1 → fastmcp-2.13.2}/docs/python-sdk/fastmcp-tools-__init__.mdx +0 -0
  795. {fastmcp-2.12.1 → fastmcp-2.13.2}/docs/python-sdk/fastmcp-utilities-__init__.mdx +0 -0
  796. {fastmcp-2.12.1 → fastmcp-2.13.2}/docs/python-sdk/fastmcp-utilities-auth.mdx +0 -0
  797. {fastmcp-2.12.1 → fastmcp-2.13.2}/docs/python-sdk/fastmcp-utilities-exceptions.mdx +0 -0
  798. {fastmcp-2.12.1 → fastmcp-2.13.2}/docs/python-sdk/fastmcp-utilities-http.mdx +0 -0
  799. {fastmcp-2.12.1 → fastmcp-2.13.2}/docs/python-sdk/fastmcp-utilities-json_schema_type.mdx +0 -0
  800. {fastmcp-2.12.1 → fastmcp-2.13.2}/docs/python-sdk/fastmcp-utilities-mcp_config.mdx +0 -0
  801. {fastmcp-2.12.1 → fastmcp-2.13.2}/docs/python-sdk/fastmcp-utilities-mcp_server_config-__init__.mdx +0 -0
  802. {fastmcp-2.12.1 → fastmcp-2.13.2}/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-__init__.mdx +0 -0
  803. {fastmcp-2.12.1 → fastmcp-2.13.2}/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-environments-__init__.mdx +0 -0
  804. {fastmcp-2.12.1 → fastmcp-2.13.2}/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-sources-__init__.mdx +0 -0
  805. {fastmcp-2.12.1 → fastmcp-2.13.2}/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-sources-filesystem.mdx +0 -0
  806. {fastmcp-2.12.1 → fastmcp-2.13.2}/docs/python-sdk/fastmcp-utilities-openapi.mdx +0 -0
  807. {fastmcp-2.12.1 → fastmcp-2.13.2}/docs/servers/progress.mdx +0 -0
  808. {fastmcp-2.12.1 → fastmcp-2.13.2}/docs/snippets/local-focus.mdx +0 -0
  809. {fastmcp-2.12.1 → fastmcp-2.13.2}/docs/snippets/version-badge.mdx +0 -0
  810. {fastmcp-2.12.1 → fastmcp-2.13.2}/docs/snippets/youtube-embed.mdx +0 -0
  811. {fastmcp-2.12.1 → fastmcp-2.13.2}/docs/tutorials/create-mcp-server.mdx +0 -0
  812. {fastmcp-2.12.1 → fastmcp-2.13.2}/docs/tutorials/mcp.mdx +0 -0
  813. {fastmcp-2.12.1 → fastmcp-2.13.2}/examples/atproto_mcp/README.md +0 -0
  814. {fastmcp-2.12.1 → fastmcp-2.13.2}/examples/atproto_mcp/demo.py +0 -0
  815. {fastmcp-2.12.1 → fastmcp-2.13.2}/examples/atproto_mcp/fastmcp.json +0 -0
  816. {fastmcp-2.12.1 → fastmcp-2.13.2}/examples/atproto_mcp/pyproject.toml +0 -0
  817. {fastmcp-2.12.1 → fastmcp-2.13.2}/examples/atproto_mcp/src/atproto_mcp/__init__.py +0 -0
  818. {fastmcp-2.12.1 → fastmcp-2.13.2}/examples/atproto_mcp/src/atproto_mcp/__main__.py +0 -0
  819. {fastmcp-2.12.1 → fastmcp-2.13.2}/examples/atproto_mcp/src/atproto_mcp/_atproto/_client.py +0 -0
  820. {fastmcp-2.12.1 → fastmcp-2.13.2}/examples/atproto_mcp/src/atproto_mcp/_atproto/_posts.py +0 -0
  821. {fastmcp-2.12.1 → fastmcp-2.13.2}/examples/atproto_mcp/src/atproto_mcp/_atproto/_profile.py +0 -0
  822. {fastmcp-2.12.1 → fastmcp-2.13.2}/examples/atproto_mcp/src/atproto_mcp/_atproto/_read.py +0 -0
  823. {fastmcp-2.12.1 → fastmcp-2.13.2}/examples/atproto_mcp/src/atproto_mcp/_atproto/_social.py +0 -0
  824. {fastmcp-2.12.1 → fastmcp-2.13.2}/examples/atproto_mcp/src/atproto_mcp/py.typed +0 -0
  825. {fastmcp-2.12.1 → fastmcp-2.13.2}/examples/atproto_mcp/src/atproto_mcp/server.py +0 -0
  826. {fastmcp-2.12.1 → fastmcp-2.13.2}/examples/atproto_mcp/src/atproto_mcp/settings.py +0 -0
  827. {fastmcp-2.12.1 → fastmcp-2.13.2}/examples/atproto_mcp/src/atproto_mcp/types.py +0 -0
  828. {fastmcp-2.12.1/examples/auth/azure_oauth → fastmcp-2.13.2/examples/auth/authkit_dcr}/client.py +0 -0
  829. {fastmcp-2.12.1 → fastmcp-2.13.2}/examples/auth/azure_oauth/README.md +0 -0
  830. {fastmcp-2.12.1/examples/auth/github_oauth → fastmcp-2.13.2/examples/auth/azure_oauth}/client.py +0 -0
  831. {fastmcp-2.12.1 → fastmcp-2.13.2}/examples/auth/github_oauth/README.md +0 -0
  832. {fastmcp-2.12.1/examples/auth/google_oauth → fastmcp-2.13.2/examples/auth/github_oauth}/client.py +0 -0
  833. {fastmcp-2.12.1 → fastmcp-2.13.2}/examples/auth/github_oauth/server.py +0 -0
  834. {fastmcp-2.12.1 → fastmcp-2.13.2}/examples/auth/google_oauth/README.md +0 -0
  835. {fastmcp-2.12.1/examples/auth/workos_oauth → fastmcp-2.13.2/examples/auth/google_oauth}/client.py +0 -0
  836. {fastmcp-2.12.1 → fastmcp-2.13.2}/examples/auth/google_oauth/server.py +0 -0
  837. {fastmcp-2.12.1 → fastmcp-2.13.2}/examples/auth/workos_oauth/server.py +0 -0
  838. {fastmcp-2.12.1 → fastmcp-2.13.2}/examples/complex_inputs.py +0 -0
  839. {fastmcp-2.12.1 → fastmcp-2.13.2}/examples/config_server.py +0 -0
  840. {fastmcp-2.12.1 → fastmcp-2.13.2}/examples/desktop.py +0 -0
  841. {fastmcp-2.12.1 → fastmcp-2.13.2}/examples/echo.py +0 -0
  842. {fastmcp-2.12.1 → fastmcp-2.13.2}/examples/fastmcp_config/env_interpolation_example.json +0 -0
  843. {fastmcp-2.12.1 → fastmcp-2.13.2}/examples/fastmcp_config/fastmcp.json +0 -0
  844. {fastmcp-2.12.1 → fastmcp-2.13.2}/examples/fastmcp_config/full_example.fastmcp.json +0 -0
  845. {fastmcp-2.12.1 → fastmcp-2.13.2}/examples/fastmcp_config/server.py +0 -0
  846. {fastmcp-2.12.1 → fastmcp-2.13.2}/examples/fastmcp_config/simple.fastmcp.json +0 -0
  847. {fastmcp-2.12.1 → fastmcp-2.13.2}/examples/fastmcp_config_demo/README.md +0 -0
  848. {fastmcp-2.12.1 → fastmcp-2.13.2}/examples/fastmcp_config_demo/fastmcp.json +0 -0
  849. {fastmcp-2.12.1 → fastmcp-2.13.2}/examples/fastmcp_config_demo/server.py +0 -0
  850. {fastmcp-2.12.1 → fastmcp-2.13.2}/examples/in_memory_proxy_example.py +0 -0
  851. {fastmcp-2.12.1 → fastmcp-2.13.2}/examples/memory.fastmcp.json +0 -0
  852. {fastmcp-2.12.1 → fastmcp-2.13.2}/examples/mount_example.fastmcp.json +0 -0
  853. {fastmcp-2.12.1 → fastmcp-2.13.2}/examples/sampling.py +0 -0
  854. {fastmcp-2.12.1 → fastmcp-2.13.2}/examples/sampling_fallback.py +0 -0
  855. {fastmcp-2.12.1 → fastmcp-2.13.2}/examples/screenshot.fastmcp.json +0 -0
  856. {fastmcp-2.12.1 → fastmcp-2.13.2}/examples/screenshot.py +0 -0
  857. {fastmcp-2.12.1 → fastmcp-2.13.2}/examples/simple_echo.py +0 -0
  858. {fastmcp-2.12.1 → fastmcp-2.13.2}/examples/smart_home/README.md +0 -0
  859. {fastmcp-2.12.1 → fastmcp-2.13.2}/examples/smart_home/hub.fastmcp.json +0 -0
  860. {fastmcp-2.12.1 → fastmcp-2.13.2}/examples/smart_home/lights.fastmcp.json +0 -0
  861. {fastmcp-2.12.1 → fastmcp-2.13.2}/examples/smart_home/pyproject.toml +0 -0
  862. {fastmcp-2.12.1 → fastmcp-2.13.2}/examples/smart_home/src/smart_home/__init__.py +0 -0
  863. {fastmcp-2.12.1 → fastmcp-2.13.2}/examples/smart_home/src/smart_home/__main__.py +0 -0
  864. {fastmcp-2.12.1 → fastmcp-2.13.2}/examples/smart_home/src/smart_home/lights/__init__.py +0 -0
  865. {fastmcp-2.12.1 → fastmcp-2.13.2}/examples/smart_home/src/smart_home/lights/server.py +0 -0
  866. {fastmcp-2.12.1 → fastmcp-2.13.2}/examples/smart_home/src/smart_home/py.typed +0 -0
  867. {fastmcp-2.12.1 → fastmcp-2.13.2}/examples/tags_example.py +0 -0
  868. {fastmcp-2.12.1 → fastmcp-2.13.2}/examples/text_me.py +0 -0
  869. {fastmcp-2.12.1 → fastmcp-2.13.2}/justfile +0 -0
  870. {fastmcp-2.12.1 → fastmcp-2.13.2}/scripts/auto_close_duplicates.py +0 -0
  871. {fastmcp-2.12.1 → fastmcp-2.13.2}/src/fastmcp/cli/__init__.py +0 -0
  872. {fastmcp-2.12.1 → fastmcp-2.13.2}/src/fastmcp/cli/install/shared.py +0 -0
  873. {fastmcp-2.12.1 → fastmcp-2.13.2}/src/fastmcp/client/auth/__init__.py +0 -0
  874. {fastmcp-2.12.1 → fastmcp-2.13.2}/src/fastmcp/client/auth/bearer.py +0 -0
  875. {fastmcp-2.12.1 → fastmcp-2.13.2}/src/fastmcp/client/messages.py +0 -0
  876. {fastmcp-2.12.1 → fastmcp-2.13.2}/src/fastmcp/client/progress.py +0 -0
  877. {fastmcp-2.12.1 → fastmcp-2.13.2}/src/fastmcp/client/roots.py +0 -0
  878. {fastmcp-2.12.1 → fastmcp-2.13.2}/src/fastmcp/contrib/README.md +0 -0
  879. {fastmcp-2.12.1 → fastmcp-2.13.2}/src/fastmcp/contrib/bulk_tool_caller/README.md +0 -0
  880. {fastmcp-2.12.1 → fastmcp-2.13.2}/src/fastmcp/contrib/bulk_tool_caller/__init__.py +0 -0
  881. {fastmcp-2.12.1 → fastmcp-2.13.2}/src/fastmcp/contrib/bulk_tool_caller/bulk_tool_caller.py +0 -0
  882. {fastmcp-2.12.1 → fastmcp-2.13.2}/src/fastmcp/contrib/bulk_tool_caller/example.py +0 -0
  883. {fastmcp-2.12.1 → fastmcp-2.13.2}/src/fastmcp/contrib/component_manager/README.md +0 -0
  884. {fastmcp-2.12.1 → fastmcp-2.13.2}/src/fastmcp/contrib/component_manager/example.py +0 -0
  885. {fastmcp-2.12.1 → fastmcp-2.13.2}/src/fastmcp/contrib/mcp_mixin/example.py +0 -0
  886. {fastmcp-2.12.1 → fastmcp-2.13.2}/src/fastmcp/exceptions.py +0 -0
  887. {fastmcp-2.12.1 → fastmcp-2.13.2}/src/fastmcp/experimental/sampling/__init__.py +0 -0
  888. {fastmcp-2.12.1 → fastmcp-2.13.2}/src/fastmcp/experimental/sampling/handlers/__init__.py +0 -0
  889. {fastmcp-2.12.1 → fastmcp-2.13.2}/src/fastmcp/experimental/sampling/handlers/base.py +0 -0
  890. {fastmcp-2.12.1 → fastmcp-2.13.2}/src/fastmcp/experimental/server/openapi/README.md +0 -0
  891. {fastmcp-2.12.1 → fastmcp-2.13.2}/src/fastmcp/experimental/server/openapi/server.py +0 -0
  892. {fastmcp-2.12.1 → fastmcp-2.13.2}/src/fastmcp/experimental/utilities/openapi/README.md +0 -0
  893. {fastmcp-2.12.1 → fastmcp-2.13.2}/src/fastmcp/experimental/utilities/openapi/formatters.py +0 -0
  894. {fastmcp-2.12.1 → fastmcp-2.13.2}/src/fastmcp/py.typed +0 -0
  895. {fastmcp-2.12.1 → fastmcp-2.13.2}/src/fastmcp/server/auth/providers/__init__.py +0 -0
  896. {fastmcp-2.12.1 → fastmcp-2.13.2}/src/fastmcp/server/auth/redirect_validation.py +0 -0
  897. {fastmcp-2.12.1 → fastmcp-2.13.2}/src/fastmcp/server/middleware/timing.py +0 -0
  898. {fastmcp-2.12.1 → fastmcp-2.13.2}/src/fastmcp/server/sampling/handler.py +0 -0
  899. {fastmcp-2.12.1 → fastmcp-2.13.2}/src/fastmcp/utilities/__init__.py +0 -0
  900. {fastmcp-2.12.1 → fastmcp-2.13.2}/src/fastmcp/utilities/auth.py +0 -0
  901. {fastmcp-2.12.1 → fastmcp-2.13.2}/src/fastmcp/utilities/exceptions.py +0 -0
  902. {fastmcp-2.12.1 → fastmcp-2.13.2}/src/fastmcp/utilities/http.py +0 -0
  903. {fastmcp-2.12.1 → fastmcp-2.13.2}/src/fastmcp/utilities/mcp_config.py +0 -0
  904. {fastmcp-2.12.1 → fastmcp-2.13.2}/src/fastmcp/utilities/mcp_server_config/v1/__init__.py +0 -0
  905. {fastmcp-2.12.1 → fastmcp-2.13.2}/src/fastmcp/utilities/mcp_server_config/v1/environments/__init__.py +0 -0
  906. {fastmcp-2.12.1 → fastmcp-2.13.2}/src/fastmcp/utilities/mcp_server_config/v1/sources/__init__.py +0 -0
  907. {fastmcp-2.12.1 → fastmcp-2.13.2}/src/fastmcp/utilities/mcp_server_config/v1/sources/filesystem.py +0 -0
  908. {fastmcp-2.12.1 → fastmcp-2.13.2}/tests/__init__.py +0 -0
  909. {fastmcp-2.12.1 → fastmcp-2.13.2}/tests/cli/__init__.py +0 -0
  910. {fastmcp-2.12.1 → fastmcp-2.13.2}/tests/cli/test_shared.py +0 -0
  911. {fastmcp-2.12.1 → fastmcp-2.13.2}/tests/cli/test_with_argv.py +0 -0
  912. {fastmcp-2.12.1 → fastmcp-2.13.2}/tests/client/__init__.py +0 -0
  913. {fastmcp-2.12.1 → fastmcp-2.13.2}/tests/client/auth/__init__.py +0 -0
  914. {fastmcp-2.12.1 → fastmcp-2.13.2}/tests/client/test_notifications.py +0 -0
  915. {fastmcp-2.12.1 → fastmcp-2.13.2}/tests/client/test_progress.py +0 -0
  916. {fastmcp-2.12.1 → fastmcp-2.13.2}/tests/client/test_roots.py +0 -0
  917. {fastmcp-2.12.1 → fastmcp-2.13.2}/tests/client/test_sampling.py +0 -0
  918. {fastmcp-2.12.1 → fastmcp-2.13.2}/tests/client/transports/__init__.py +0 -0
  919. {fastmcp-2.12.1 → fastmcp-2.13.2}/tests/contrib/__init__.py +0 -0
  920. {fastmcp-2.12.1 → fastmcp-2.13.2}/tests/contrib/test_component_manager.py +0 -0
  921. {fastmcp-2.12.1 → fastmcp-2.13.2}/tests/deprecated/__init__.py +0 -0
  922. {fastmcp-2.12.1 → fastmcp-2.13.2}/tests/deprecated/test_bearer_auth_provider.py +0 -0
  923. {fastmcp-2.12.1 → fastmcp-2.13.2}/tests/deprecated/test_dependencies.py +0 -0
  924. {fastmcp-2.12.1 → fastmcp-2.13.2}/tests/deprecated/test_deprecated.py +0 -0
  925. {fastmcp-2.12.1 → fastmcp-2.13.2}/tests/deprecated/test_mount_import_arg_order.py +0 -0
  926. {fastmcp-2.12.1 → fastmcp-2.13.2}/tests/deprecated/test_mount_separators.py +0 -0
  927. {fastmcp-2.12.1 → fastmcp-2.13.2}/tests/deprecated/test_output_schema_false.py +0 -0
  928. {fastmcp-2.12.1 → fastmcp-2.13.2}/tests/deprecated/test_proxy_client.py +0 -0
  929. {fastmcp-2.12.1 → fastmcp-2.13.2}/tests/deprecated/test_resource_prefixes.py +0 -0
  930. {fastmcp-2.12.1 → fastmcp-2.13.2}/tests/deprecated/test_route_type_ignore.py +0 -0
  931. {fastmcp-2.12.1 → fastmcp-2.13.2}/tests/deprecated/test_settings.py +0 -0
  932. {fastmcp-2.12.1 → fastmcp-2.13.2}/tests/experimental/README.md +0 -0
  933. {fastmcp-2.12.1 → fastmcp-2.13.2}/tests/experimental/__init__.py +0 -0
  934. {fastmcp-2.12.1 → fastmcp-2.13.2}/tests/experimental/openapi_parser/README.md +0 -0
  935. {fastmcp-2.12.1 → fastmcp-2.13.2}/tests/experimental/openapi_parser/__init__.py +0 -0
  936. {fastmcp-2.12.1 → fastmcp-2.13.2}/tests/experimental/openapi_parser/conftest.py +0 -0
  937. {fastmcp-2.12.1 → fastmcp-2.13.2}/tests/experimental/openapi_parser/server/__init__.py +0 -0
  938. {fastmcp-2.12.1 → fastmcp-2.13.2}/tests/experimental/openapi_parser/server/openapi/__init__.py +0 -0
  939. {fastmcp-2.12.1 → fastmcp-2.13.2}/tests/experimental/openapi_parser/server/openapi/test_end_to_end_compatibility.py +0 -0
  940. {fastmcp-2.12.1 → fastmcp-2.13.2}/tests/experimental/openapi_parser/utilities/__init__.py +0 -0
  941. {fastmcp-2.12.1 → fastmcp-2.13.2}/tests/experimental/openapi_parser/utilities/openapi/__init__.py +0 -0
  942. {fastmcp-2.12.1 → fastmcp-2.13.2}/tests/experimental/openapi_parser/utilities/openapi/conftest.py +0 -0
  943. {fastmcp-2.12.1 → fastmcp-2.13.2}/tests/experimental/openapi_parser/utilities/openapi/test_allof_requestbody.py +0 -0
  944. {fastmcp-2.12.1 → fastmcp-2.13.2}/tests/experimental/openapi_parser/utilities/openapi/test_director.py +0 -0
  945. {fastmcp-2.12.1 → fastmcp-2.13.2}/tests/experimental/openapi_parser/utilities/openapi/test_legacy_compatibility.py +0 -0
  946. {fastmcp-2.12.1 → fastmcp-2.13.2}/tests/experimental/openapi_parser/utilities/openapi/test_parser.py +0 -0
  947. {fastmcp-2.12.1 → fastmcp-2.13.2}/tests/experimental/sampling/test_openai_handler.py +0 -0
  948. {fastmcp-2.12.1 → fastmcp-2.13.2}/tests/integration_tests/__init__.py +0 -0
  949. {fastmcp-2.12.1 → fastmcp-2.13.2}/tests/integration_tests/auth/__init__.py +0 -0
  950. {fastmcp-2.12.1 → fastmcp-2.13.2}/tests/integration_tests/conftest.py +0 -0
  951. {fastmcp-2.12.1 → fastmcp-2.13.2}/tests/prompts/__init__.py +0 -0
  952. {fastmcp-2.12.1 → fastmcp-2.13.2}/tests/prompts/test_prompt.py +0 -0
  953. {fastmcp-2.12.1 → fastmcp-2.13.2}/tests/resources/__init__.py +0 -0
  954. {fastmcp-2.12.1 → fastmcp-2.13.2}/tests/resources/test_file_resources.py +0 -0
  955. {fastmcp-2.12.1 → fastmcp-2.13.2}/tests/resources/test_function_resources.py +0 -0
  956. {fastmcp-2.12.1 → fastmcp-2.13.2}/tests/resources/test_resource_template_meta.py +0 -0
  957. {fastmcp-2.12.1 → fastmcp-2.13.2}/tests/server/__init__.py +0 -0
  958. {fastmcp-2.12.1 → fastmcp-2.13.2}/tests/server/auth/__init__.py +0 -0
  959. {fastmcp-2.12.1 → fastmcp-2.13.2}/tests/server/auth/providers/__init__.py +0 -0
  960. {fastmcp-2.12.1 → fastmcp-2.13.2}/tests/server/auth/test_redirect_validation.py +0 -0
  961. {fastmcp-2.12.1 → fastmcp-2.13.2}/tests/server/auth/test_static_token_verifier.py +0 -0
  962. {fastmcp-2.12.1 → fastmcp-2.13.2}/tests/server/http/__init__.py +0 -0
  963. {fastmcp-2.12.1 → fastmcp-2.13.2}/tests/server/http/test_bearer_auth_backend.py +0 -0
  964. {fastmcp-2.12.1 → fastmcp-2.13.2}/tests/server/http/test_http_middleware.py +0 -0
  965. {fastmcp-2.12.1 → fastmcp-2.13.2}/tests/server/middleware/__init__.py +0 -0
  966. {fastmcp-2.12.1 → fastmcp-2.13.2}/tests/server/openapi/__init__.py +0 -0
  967. {fastmcp-2.12.1 → fastmcp-2.13.2}/tests/server/openapi/test_deepobject_style.py +0 -0
  968. {fastmcp-2.12.1 → fastmcp-2.13.2}/tests/server/openapi/test_explode_integration.py +0 -0
  969. {fastmcp-2.12.1 → fastmcp-2.13.2}/tests/server/openapi/test_openapi_compatibility.py +0 -0
  970. {fastmcp-2.12.1 → fastmcp-2.13.2}/tests/server/openapi/test_optional_parameters.py +0 -0
  971. {fastmcp-2.12.1 → fastmcp-2.13.2}/tests/server/openapi/test_parameter_collisions.py +0 -0
  972. {fastmcp-2.12.1 → fastmcp-2.13.2}/tests/server/openapi/test_route_map_fn.py +0 -0
  973. {fastmcp-2.12.1 → fastmcp-2.13.2}/tests/server/proxy/__init__.py +0 -0
  974. {fastmcp-2.12.1 → fastmcp-2.13.2}/tests/server/proxy/test_stateful_proxy_client.py +0 -0
  975. {fastmcp-2.12.1 → fastmcp-2.13.2}/tests/server/test_app_state.py +0 -0
  976. {fastmcp-2.12.1 → fastmcp-2.13.2}/tests/server/test_experimental_openapi_feature_flag.py +0 -0
  977. {fastmcp-2.12.1 → fastmcp-2.13.2}/tests/server/test_logging.py +0 -0
  978. {fastmcp-2.12.1 → fastmcp-2.13.2}/tests/server/test_resource_prefix_formats.py +0 -0
  979. {fastmcp-2.12.1 → fastmcp-2.13.2}/tests/server/test_run_server.py +0 -0
  980. {fastmcp-2.12.1 → fastmcp-2.13.2}/tests/server/test_streamable_http_no_redirect.py +0 -0
  981. {fastmcp-2.12.1 → fastmcp-2.13.2}/tests/tools/__init__.py +0 -0
  982. {fastmcp-2.12.1 → fastmcp-2.13.2}/tests/tools/test_tool_future_annotations.py +0 -0
  983. {fastmcp-2.12.1 → fastmcp-2.13.2}/tests/utilities/__init__.py +0 -0
  984. {fastmcp-2.12.1 → fastmcp-2.13.2}/tests/utilities/openapi/__init__.py +0 -0
  985. {fastmcp-2.12.1 → fastmcp-2.13.2}/tests/utilities/openapi/conftest.py +0 -0
  986. {fastmcp-2.12.1 → fastmcp-2.13.2}/tests/utilities/openapi/test_nullable_fields.py +0 -0
  987. {fastmcp-2.12.1 → fastmcp-2.13.2}/tests/utilities/openapi/test_openapi.py +0 -0
  988. {fastmcp-2.12.1 → fastmcp-2.13.2}/tests/utilities/openapi/test_openapi_advanced.py +0 -0
  989. {fastmcp-2.12.1 → fastmcp-2.13.2}/tests/utilities/openapi/test_openapi_output_schemas.py +0 -0
  990. {fastmcp-2.12.1 → fastmcp-2.13.2}/tests/utilities/test_components.py +0 -0
  991. {fastmcp-2.12.1 → fastmcp-2.13.2}/tests/utilities/test_tests.py +0 -0
  992. {fastmcp-2.12.1 → fastmcp-2.13.2}/tests/utilities/test_typeadapter.py +0 -0
@@ -0,0 +1,6 @@
1
+ {
2
+ "setup-worktree": [
3
+ "uv sync",
4
+ "uv run pre-commit install"
5
+ ]
6
+ }
@@ -0,0 +1,28 @@
1
+ ## Description
2
+ <!--
3
+ Please provide a clear and concise description of the changes made in this pull request.
4
+
5
+ Using AI to generate code? Please include a note in the description with which AI tool you used.
6
+ -->
7
+
8
+ **Contributors Checklist**
9
+ <!--
10
+ NOTE:
11
+ 1. You must create an issue in the repository before making a Pull Request.
12
+ 2. You must not create a Pull Request for an issue that is already assigned to someone else.
13
+
14
+ If you do not follow these steps, your Pull Request will be closed without review.
15
+ -->
16
+
17
+ - [ ] My change closes #(issue number)
18
+ - [ ] I have followed the repository's development workflow
19
+ - [ ] I have tested my changes manually and by adding relevant tests
20
+ - [ ] I have performed all required documentation updates
21
+
22
+ **Review Checklist**
23
+ <!-- Your Pull Request will not be reviewed if tests are failing, you have not self-reviewed your changes, or you have not checked all of the following: -->
24
+
25
+ - [ ] I have self-reviewed my changes
26
+ - [ ] My Pull Request is ready for review
27
+
28
+ ---
@@ -0,0 +1,36 @@
1
+ name: Auto-close duplicate issues
2
+ description: Auto-closes issues that are duplicates of existing issues
3
+ on:
4
+ schedule:
5
+ - cron: "0 9 * * *" # Run daily at 9 AM UTC
6
+ workflow_dispatch:
7
+
8
+ jobs:
9
+ auto-close-duplicates:
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@v6
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 duplicate issues
32
+ run: uv run scripts/auto_close_duplicates.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,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@v6
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,173 @@
1
+ name: Martian Issue Triage
2
+
3
+ on:
4
+ issues:
5
+ types: [opened, labeled]
6
+
7
+ jobs:
8
+ martian-issue-triage:
9
+ if: |
10
+ (github.event.action == 'opened' && github.actor == 'strawgate') ||
11
+ (github.event.action == 'labeled' && github.event.label.name == 'triage-martian')
12
+
13
+ concurrency:
14
+ group: triage-martian-${{ github.event.issue.number }}
15
+ cancel-in-progress: true
16
+
17
+ runs-on: ubuntu-latest
18
+ timeout-minutes: 10
19
+ permissions:
20
+ contents: read
21
+ issues: write
22
+ pull-requests: read
23
+ id-token: write
24
+
25
+ steps:
26
+ - name: Checkout base repository
27
+ uses: actions/checkout@v6
28
+ with:
29
+ repository: ${{ github.repository }}
30
+ ref: ${{ github.event.repository.default_branch }}
31
+
32
+ # Install UV package manager
33
+ - name: Install UV
34
+ uses: astral-sh/setup-uv@v7
35
+ with:
36
+ enable-cache: true
37
+ cache-dependency-glob: "uv.lock"
38
+
39
+ - name: Generate Marvin App token
40
+ id: marvin-token
41
+ uses: actions/create-github-app-token@v2
42
+ with:
43
+ app-id: ${{ secrets.MARVIN_APP_ID }}
44
+ private-key: ${{ secrets.MARVIN_APP_PRIVATE_KEY }}
45
+
46
+ - name: Set triage prompt
47
+ id: triage-prompt
48
+ run: |
49
+ cat >> $GITHUB_OUTPUT << 'EOF'
50
+ PROMPT<<PROMPT_END
51
+ You're an issue triage assistant for FastMCP, a Python framework for building Model Context Protocol servers and clients.
52
+
53
+ # IMPORTANT RULES
54
+ 1. You will not make branches or pull requests. Your ONLY action will be investigating the issue, locating related issues,
55
+ pull requests, and files in the repository and reporting your findings.
56
+ 2. You will identify the issue type (bug/feature/question) up front and tailor the Recommendation (e.g., for questions: answer directly + links; for bugs: point to failing tests/lines).
57
+ 3. You will avoid speculation and only assert facts that are deeply rooted (traceable) to the codebase, language/framework conventions, related issues, related pull requests, etc.
58
+ 4. The main branch of the repository has been cloned locally, but changes will not be accepted and you are not allowed to make pull requests or other changes. You can search the local repository for relevant code. You will use the available MCP Server tools identify related issues and pull requests (search_issues and search_pull_requests) and you can use search_code to look at the code in relevant dependent packages. For example, you can use search_code to look at the underlying SDK `https://github.com/modelcontextprotocol/python-sdk` to see how it implements a certain class or function relevant to the issue at hand.
59
+
60
+ # Getting Started
61
+ 1. Call the generate_agents_md tool to get a high-level summary of the project you're working in
62
+ 2. Get the issue ${{ github.event.issue.number }} in the GitHub repository: ${{ github.repository }}.
63
+ 3. Use the search_issues and search_pull_requests tools to scour the repository for actually related issues and pull requests
64
+ 4. Call the search_code, get_files, etc. tools to search the repository to identify the related classes, methods, docs, tests, etc that are relevant to the issue.
65
+
66
+ # Providing a Great Response
67
+ Your number one priority is to provide a great response to the issue. A great response is a response that is clear, concise, accurate, and actionable. You will avoid long paragraphs, flowery language, and overly verbose responses. Your readers have limited time and attention, so you will be concise and to the point.
68
+
69
+ In priority order your goal is to:
70
+ 1. Provide context about the request or issue (related issues, pull requests, files, etc.)
71
+ 2. Layout a single high-quality and actionable recommendation for how to address the issue based on your knowledge of the project, codebase, and issue
72
+ 3. Provide an high quality and detailed plan that a junior developer could follow to implement the recommendation
73
+
74
+ Populate the following sections in your response:
75
+ Recommendation (or “No recommendation” with reason)
76
+ Findings
77
+ Detailed Action Plan
78
+ Related Items
79
+ Related Files
80
+ Related Webpages
81
+
82
+ You may not be able to do all of these things, sometimes you may find that all you can do is provide in-depth context of the issue and related items. That's perfectly acceptable and expected. Your performance is judged by how accurate your findings are, do the investigation required to have high confidence in your findings and recommendations. "I don't know" or "I'm unable to recommend a course of action" is better than a bad or wrong answer.
83
+
84
+ When formulating your response, you will never "bury the lede", you will always provide a clear and concise tl;dr as the first thing in your response. As your response grows in length you can organize the more detailed parts of your response collapsible sections using <details> and <summary> tags. You shouldn't put everything in collapsible sections, especially if the response is short. Use your discretion to determine when to use collapsible sections to avoid overwhelming the reader with too much detail -- think of them like an appendix that can be expanded if the reader is interested.
85
+
86
+ # Example output for "Recommendation" part of the response
87
+ PR #654 already implements the requested feature but is incomplete. The Pull Request is not in a mergeable state yet, the remaining work should be completed: 1) update the Calculator.divide method to utilize the new DivisionByZeroError or the safe_divide function, and 2) update the tests to ensure that the Calculator.divide method raises the new DivisionByZeroError when the divisor is 0.
88
+
89
+ <details>
90
+ <summary>Findings</summary>
91
+ ...details from the code analysis that are relevant to the issue and the recommendation...
92
+ </details>
93
+
94
+ <details>
95
+ <summary>Detailed Action Plan</summary>
96
+ ...a detailed plan that a junior developer could follow to implement the recommendation...
97
+ </details>
98
+
99
+ # Example Output for "Related Items" part of the response
100
+
101
+ <details>
102
+ <summary>Related Issues and Pull Requests</summary>
103
+
104
+ | Repository | Issue or PR | Relevance |
105
+ | --- | --- | --- |
106
+ | jlowin/fastmcp | [Add matrix operations support](https://github.com/jlowin/fastmcp/pull/680) | This pull request directly addresses the feature request for adding matrix operations to the calculator. |
107
+ | jlowin/fastmcp | [Add matrix operations support](https://github.com/jlowin/fastmcp/issues/681) | This issue directly addresses the feature request for adding matrix operations to the calculator. |
108
+ </details>
109
+
110
+ <details>
111
+ <summary>Related Files</summary>
112
+
113
+ | Repository | File | Relevance | Sections |
114
+ | --- | --- | --- | --- |
115
+ | modelcontextprotocol/python-sdk | [test_calculator.py](https://github.com/modelcontextprotocol/python-sdk/blob/main/test_calculator.py) | This file contains the test cases for the Calculator class, including a test that specifically asserts a ValueError is raised for division by zero, confirming the current intended behavior. | [25-27](https://github.com/modelcontextprotocol/python-sdk/blob/main/test_calculator.py#L25-L27) |
116
+ | modelcontextprotocol/python-sdk | [calculator.py](https://github.com/modelcontextprotocol/python-sdk/blob/main/calculator.py) | This file contains the implementation of the Calculator class, specifically the `divide` method which raises the ValueError when dividing by zero, matching the bug report. | [29-32](https://github.com/modelcontextprotocol/python-sdk/blob/main/calculator.py#L29-L32) |
117
+ </details>
118
+
119
+ <details>
120
+ <summary>Related Webpages</summary>
121
+ | Name | URL | Relevance |
122
+ | --- | --- | --- |
123
+ | Handling Division by Zero Best Practices | https://my-blog-about-division-by-zero.com/handling+division+by+zero+in+calculator | This webpage provides general best practices for handling division by zero in calculator applications and in Python, which is directly relevant to the issue and potential solutions. |
124
+ </details>
125
+
126
+ PROMPT_END
127
+ EOF
128
+
129
+ - name: Setup GitHub MCP Server
130
+ run: |
131
+ mkdir -p /tmp/mcp-config
132
+ cat > /tmp/mcp-config/mcp-servers.json << 'EOF'
133
+ {
134
+ "mcpServers": {
135
+ "repository-summary": {
136
+ "type": "http",
137
+ "url": "https://agents-md-generator.fastmcp.app/mcp"
138
+ },
139
+ "code-search": {
140
+ "type": "http",
141
+ "url": "https://public-code-search.fastmcp.app/mcp"
142
+ },
143
+ "github-research": {
144
+ "type": "stdio",
145
+ "command": "uvx",
146
+ "args": [
147
+ "github-research-mcp"
148
+ ],
149
+ "env": {
150
+ "DISABLE_SUMMARIES": "true",
151
+ "GITHUB_PERSONAL_ACCESS_TOKEN": "${{ steps.marvin-token.outputs.token }}"
152
+ }
153
+ }
154
+ }
155
+ }
156
+ EOF
157
+
158
+ - name: Run Martian for Issue Triage
159
+ uses: anthropics/claude-code-action@v1
160
+ with:
161
+ github_token: ${{ steps.marvin-token.outputs.token }}
162
+ bot_name: "Marvin Context Protocol"
163
+ prompt: ${{ steps.triage-prompt.outputs.PROMPT }}
164
+ anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY_FOR_CI }}
165
+ track_progress: true
166
+ claude_args: |
167
+ --model claude-sonnet-4-5-20250929
168
+ --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
169
+ --mcp-config /tmp/mcp-config/mcp-servers.json
170
+ settings: |
171
+ {
172
+ "GH_TOKEN": "${{ steps.marvin-token.outputs.token }}"
173
+ }
@@ -0,0 +1,179 @@
1
+ name: Marvin Test Failure Analysis
2
+
3
+ on:
4
+ workflow_run:
5
+ workflows: ["Tests", "Run static analysis"]
6
+ types:
7
+ - completed
8
+
9
+ concurrency:
10
+ group: marvin-test-failure-${{ github.event.workflow_run.head_branch }}
11
+ cancel-in-progress: true
12
+
13
+ jobs:
14
+ martian-test-failure:
15
+ # Only run if the test workflow failed
16
+ if: ${{ github.event.workflow_run.conclusion == 'failure' }}
17
+ runs-on: ubuntu-latest
18
+ permissions:
19
+ contents: read
20
+ pull-requests: write
21
+ issues: read
22
+ id-token: write
23
+ actions: read # Required for Claude to read CI results
24
+ steps:
25
+ - name: Checkout repository
26
+ uses: actions/checkout@v6
27
+ with:
28
+ fetch-depth: 1
29
+
30
+ - name: Generate Marvin App token
31
+ id: marvin-token
32
+ uses: actions/create-github-app-token@v2
33
+ with:
34
+ app-id: ${{ secrets.MARVIN_APP_ID }}
35
+ private-key: ${{ secrets.MARVIN_APP_PRIVATE_KEY }}
36
+
37
+ - name: Set up Python 3.10
38
+ uses: actions/setup-python@v6
39
+ with:
40
+ python-version: "3.10"
41
+
42
+ # Install UV package manager
43
+ - name: Install UV
44
+ uses: astral-sh/setup-uv@v7
45
+
46
+ # Install dependencies
47
+ - name: Install dependencies
48
+ run: uv sync --all-packages --group dev
49
+
50
+ - name: Set analysis prompt
51
+ id: analysis-prompt
52
+ run: |
53
+ cat >> $GITHUB_OUTPUT << 'EOF'
54
+ PROMPT<<PROMPT_END
55
+ You're a test failure analysis assistant for FastMCP, a Python framework for building Model Context Protocol servers and clients.
56
+
57
+ # Your Task
58
+ A GitHub Actions workflow has failed. Your job is to:
59
+ 1. Analyze the test failure(s) to understand what went wrong
60
+ 2. Identify the root cause of the failure(s)
61
+ 3. Suggest a clear, actionable solution to fix the failure(s)
62
+
63
+ # Getting Started
64
+ 1. Call the generate_agents_md tool to get a high-level summary of the project
65
+ 2. Get the pull request associated with this workflow run from the GitHub repository: ${{ github.repository }}
66
+ - The workflow run ID is: ${{ github.event.workflow_run.id }}
67
+ - The workflow run was triggered by: ${{ github.event.workflow_run.event }}
68
+ - Use GitHub MCP tools to get PR details and workflow run information
69
+ 3. Use the GitHub MCP tools to fetch job logs and failure information:
70
+ - Use get_workflow_run to get details about the failed workflow
71
+ - Use list_workflow_jobs to see which jobs failed
72
+ - Use get_job_logs with failed_only=true to get logs for failed jobs
73
+ - Use summarize_run_log_failures to get an AI summary of what failed
74
+ 4. Analyze the failures to understand the root cause
75
+ 5. Search the codebase for relevant files, tests, and implementations
76
+
77
+ # Your Response
78
+ Post a comment on the pull request with your analysis. Your comment should include:
79
+
80
+ ## Test Failure Analysis
81
+
82
+ **Summary**: A brief 1-2 sentence summary of what failed.
83
+
84
+ **Root Cause**: A clear explanation of why the tests failed, based on your analysis of the logs and code.
85
+
86
+ **Suggested Solution**: Specific, actionable steps to fix the failure(s). Include:
87
+ - Which files need to be modified
88
+ - What changes are needed
89
+ - Why these changes will fix the issue
90
+
91
+ <details>
92
+ <summary>Detailed Analysis</summary>
93
+
94
+ Include here:
95
+ - Relevant log excerpts showing the failure
96
+ - Code snippets that are causing the issue
97
+ - Any related issues or PRs that might be relevant
98
+ </details>
99
+
100
+ <details>
101
+ <summary>Related Files</summary>
102
+
103
+ List files that are relevant to the failure with brief explanations of their relevance.
104
+ </details>
105
+
106
+ # Important Guidelines
107
+ - Be concise and actionable - developers want to quickly understand and fix the issue
108
+ - Focus on facts from the logs and code, not speculation
109
+ - If you can't determine the root cause, say so clearly
110
+ - Provide specific file names, line numbers, and code references when possible
111
+ - You can run make commands (e.g., `make lint`, `make typecheck`, `make sync`) to build, test, or lint the code
112
+ - You can also run git commands (e.g., `git status`, `git log`, `git diff`) to inspect the repository
113
+ - You can use WebSearch and WebFetch to research errors, stack traces, or related issues
114
+ - For bash commands, you are limited to make and git commands only
115
+
116
+ # CRITICAL: Loop Detection
117
+ **IMPORTANT**: Before posting your analysis, check the PR comments to detect if there's a loop where:
118
+ - CodeRabbit or another bot triggered this workflow
119
+ - Your previous analysis triggered CodeRabbit or another bot
120
+ - This created a repeating cycle of bot comments
121
+
122
+ # CRITICAL: ANGRY USERS
123
+ **IMPORTANT**: If the user is angry with you, the triage bot, don't respond. Just exit immediately without further action.
124
+
125
+ If you detect such a loop (e.g., you see multiple similar bot comments or your own previous analysis comments):
126
+ 1. **DO NOT** post another analysis comment
127
+ 2. Exit immediately without further action
128
+
129
+ # Problems Encountered
130
+ If you encounter any problems during your analysis (e.g., unable to fetch logs, tools not working), document them clearly so the team knows what limitations you faced.
131
+ PROMPT_END
132
+ EOF
133
+
134
+ - name: Setup GitHub MCP Server
135
+ run: |
136
+ mkdir -p /tmp/mcp-config
137
+ cat > /tmp/mcp-config/mcp-servers.json << 'EOF'
138
+ {
139
+ "mcpServers": {
140
+ "repository-summary": {
141
+ "type": "http",
142
+ "url": "https://agents-md-generator.fastmcp.app/mcp"
143
+ },
144
+ "code-search": {
145
+ "type": "http",
146
+ "url": "https://public-code-search.fastmcp.app/mcp"
147
+ },
148
+ "github-research": {
149
+ "type": "stdio",
150
+ "command": "uvx",
151
+ "args": [
152
+ "github-research-mcp"
153
+ ],
154
+ "env": {
155
+ "DISABLE_SUMMARIES": "true",
156
+ "GITHUB_PERSONAL_ACCESS_TOKEN": "${{ secrets.GITHUB_TOKEN }}"
157
+ }
158
+ }
159
+ }
160
+ }
161
+ EOF
162
+
163
+ - name: Run Claude Code
164
+ id: claude
165
+ uses: anthropics/claude-code-action@v1
166
+ with:
167
+ github_token: ${{ steps.marvin-token.outputs.token }}
168
+ anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY_FOR_CI }}
169
+ bot_name: "Marvin Context Protocol"
170
+
171
+ claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
172
+
173
+ additional_permissions: |
174
+ actions: read
175
+
176
+ prompt: ${{ steps.analysis-prompt.outputs.PROMPT }}
177
+ claude_args: |
178
+ --allowed-tools mcp__repository-summary,mcp__code-search,mcp__github-research,WebSearch,WebFetch,Bash(make:*,git:*)
179
+ --mcp-config /tmp/mcp-config/mcp-servers.json
@@ -0,0 +1,92 @@
1
+ name: Marvin Issue Dedupe
2
+ # description: Automatically dedupe GitHub issues using Marvin
3
+ on:
4
+ issues:
5
+ types: [opened]
6
+ workflow_dispatch:
7
+ inputs:
8
+ issue_number:
9
+ description: "Issue number to process for duplicate detection"
10
+ required: true
11
+ type: string
12
+
13
+ jobs:
14
+ marvin-dedupe-issues:
15
+ runs-on: ubuntu-latest
16
+ timeout-minutes: 10
17
+ permissions:
18
+ contents: read
19
+ issues: write
20
+ id-token: write
21
+
22
+ steps:
23
+ - name: Checkout repository
24
+ uses: actions/checkout@v6
25
+
26
+ - name: Generate Marvin App token
27
+ id: marvin-token
28
+ uses: actions/create-github-app-token@v2
29
+ with:
30
+ app-id: ${{ secrets.MARVIN_APP_ID }}
31
+ private-key: ${{ secrets.MARVIN_APP_PRIVATE_KEY }}
32
+
33
+ - name: Set dedupe prompt
34
+ id: dedupe-prompt
35
+ run: |
36
+ cat >> $GITHUB_OUTPUT << 'EOF'
37
+ PROMPT<<PROMPT_END
38
+ Find up to 3 likely duplicate issues for GitHub issue ${{ github.repository }}/issues/${{ github.event.issue.number || inputs.issue_number }}.
39
+
40
+ Follow these steps precisely:
41
+
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.
43
+
44
+ 2. View the GitHub issue and produce a summary of the issue
45
+
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
47
+
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.
49
+
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.
51
+
52
+ Notes for your agents:
53
+ - Use `gh` to interact with GitHub, rather than web fetch
54
+ - Do not use other tools, beyond `gh` and Task (eg. don't use other MCP servers, file edit, etc.)
55
+ - Make a todo list first
56
+ - Never include this issue as a duplicate of itself
57
+
58
+ For your comment, follow this format precisely (example with 3 suspected duplicates):
59
+
60
+ ---
61
+ Found 3 possible duplicate issues:
62
+
63
+ 1. #123: Issue title here
64
+ 2. #456: Another issue title
65
+ 3. #789: Third issue title
66
+
67
+ This issue will be automatically closed as a duplicate in 3 days.
68
+
69
+ - If your issue is a duplicate, please close it and 👍 the existing issue instead
70
+ - To prevent auto-closure, add a comment or 👎 this comment
71
+
72
+ ---
73
+ PROMPT_END
74
+ EOF
75
+
76
+ - name: Run Marvin dedupe command
77
+ uses: anthropics/claude-code-action@v1
78
+ with:
79
+ github_token: ${{ steps.marvin-token.outputs.token }}
80
+ bot_name: "Marvin Context Protocol"
81
+ prompt: ${{ steps.dedupe-prompt.outputs.PROMPT }}
82
+ anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY_FOR_CI }}
83
+ allowed_non_write_users: "*"
84
+ claude_args: |
85
+ --allowedTools Bash(gh issue view:*),Bash(gh search:*),Bash(gh issue list:*),Bash(gh api:*),Bash(gh issue comment:*),Task
86
+ settings: |
87
+ {
88
+ "model": "claude-sonnet-4-5-20250929",
89
+ "env": {
90
+ "GH_TOKEN": "${{ steps.marvin-token.outputs.token }}"
91
+ }
92
+ }