fastmcp 2.9.2__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 (921) hide show
  1. fastmcp-2.13.2/.ccignore +7 -0
  2. fastmcp-2.13.2/.cursor/worktrees.json +6 -0
  3. fastmcp-2.13.2/.github/ISSUE_TEMPLATE/bug.yml +71 -0
  4. fastmcp-2.13.2/.github/ISSUE_TEMPLATE/enhancement.yml +34 -0
  5. fastmcp-2.13.2/.github/copilot-instructions.md +1 -0
  6. fastmcp-2.13.2/.github/pull_request_template.md +28 -0
  7. fastmcp-2.13.2/.github/release.yml +47 -0
  8. fastmcp-2.13.2/.github/workflows/auto-close-duplicates.yml +36 -0
  9. fastmcp-2.13.2/.github/workflows/auto-close-needs-mre.yml +36 -0
  10. fastmcp-2.13.2/.github/workflows/martian-issue-triage.yml +173 -0
  11. fastmcp-2.13.2/.github/workflows/martian-test-failure.yml +179 -0
  12. fastmcp-2.13.2/.github/workflows/marvin-dedupe-issues.yml +92 -0
  13. fastmcp-2.13.2/.github/workflows/marvin-label-triage.yml +143 -0
  14. fastmcp-2.13.2/.github/workflows/marvin.yml +78 -0
  15. fastmcp-2.13.2/.github/workflows/publish.yml +26 -0
  16. fastmcp-2.13.2/.github/workflows/run-static.yml +54 -0
  17. fastmcp-2.13.2/.github/workflows/run-tests.yml +107 -0
  18. fastmcp-2.13.2/.github/workflows/update-config-schema.yml +91 -0
  19. fastmcp-2.13.2/.github/workflows/update-sdk-docs.yml +74 -0
  20. fastmcp-2.13.2/.gitignore +76 -0
  21. fastmcp-2.13.2/.pre-commit-config.yaml +48 -0
  22. fastmcp-2.13.2/AGENTS.md +265 -0
  23. fastmcp-2.13.2/CLAUDE.md +1 -0
  24. fastmcp-2.13.2/CODE_OF_CONDUCT.md +128 -0
  25. fastmcp-2.13.2/PKG-INFO +551 -0
  26. fastmcp-2.13.2/README.md +512 -0
  27. fastmcp-2.13.2/SECURITY.md +16 -0
  28. fastmcp-2.13.2/docs/.ccignore +2 -0
  29. fastmcp-2.13.2/docs/assets/brand/blue-logo.png +0 -0
  30. fastmcp-2.13.2/docs/assets/brand/f-watercolor-waves-dark.png +0 -0
  31. fastmcp-2.13.2/docs/assets/brand/f-watercolor-waves.png +0 -0
  32. fastmcp-2.13.2/docs/assets/brand/favicon.svg +3 -0
  33. fastmcp-2.13.2/docs/assets/brand/thumbnail-background.png +0 -0
  34. fastmcp-2.13.2/docs/assets/brand/wordmark-padded.png +0 -0
  35. fastmcp-2.13.2/docs/assets/brand/wordmark-watercolor-rainbow-dark.png +0 -0
  36. fastmcp-2.13.2/docs/assets/brand/wordmark-watercolor-rainbow.png +0 -0
  37. fastmcp-2.13.2/docs/assets/brand/wordmark-watercolor-waves-dark.png +0 -0
  38. fastmcp-2.13.2/docs/assets/brand/wordmark-watercolor-waves.png +0 -0
  39. fastmcp-2.13.2/docs/assets/brand/wordmark-white-padded.png +0 -0
  40. fastmcp-2.13.2/docs/assets/brand/wordmark-white.png +0 -0
  41. fastmcp-2.13.2/docs/assets/brand/wordmark.png +0 -0
  42. fastmcp-2.13.2/docs/assets/images/fastmcp_cloud/connect.png +0 -0
  43. fastmcp-2.13.2/docs/assets/images/fastmcp_cloud/create_project.png +0 -0
  44. fastmcp-2.13.2/docs/assets/images/fastmcp_cloud/deployment.png +0 -0
  45. fastmcp-2.13.2/docs/assets/images/fastmcp_cloud/quickstart.png +0 -0
  46. fastmcp-2.13.2/docs/assets/images/oauth-proxy-consent-screen.png +0 -0
  47. fastmcp-2.13.2/docs/assets/schemas/mcp_server_config/latest.json +348 -0
  48. fastmcp-2.13.2/docs/assets/schemas/mcp_server_config/v1.json +348 -0
  49. fastmcp-2.13.2/docs/changelog.mdx +2062 -0
  50. fastmcp-2.13.2/docs/clients/auth/bearer.mdx +88 -0
  51. fastmcp-2.13.2/docs/clients/auth/oauth.mdx +132 -0
  52. fastmcp-2.13.2/docs/clients/client.mdx +340 -0
  53. fastmcp-2.13.2/docs/clients/elicitation.mdx +125 -0
  54. fastmcp-2.13.2/docs/clients/logging.mdx +111 -0
  55. fastmcp-2.13.2/docs/clients/prompts.mdx +216 -0
  56. fastmcp-2.13.2/docs/clients/resources.mdx +204 -0
  57. fastmcp-2.13.2/docs/clients/sampling.mdx +156 -0
  58. fastmcp-2.13.2/docs/clients/tools.mdx +295 -0
  59. fastmcp-2.13.2/docs/clients/transports.mdx +383 -0
  60. fastmcp-2.13.2/docs/community/showcase.mdx +65 -0
  61. fastmcp-2.13.2/docs/css/style.css +20 -0
  62. fastmcp-2.13.2/docs/deployment/fastmcp-cloud.mdx +89 -0
  63. fastmcp-2.13.2/docs/deployment/http.mdx +605 -0
  64. fastmcp-2.13.2/docs/deployment/running-server.mdx +258 -0
  65. fastmcp-2.13.2/docs/deployment/server-configuration.mdx +640 -0
  66. fastmcp-2.13.2/docs/development/contributing.mdx +187 -0
  67. fastmcp-2.13.2/docs/development/releases.mdx +79 -0
  68. fastmcp-2.13.2/docs/development/tests.mdx +396 -0
  69. fastmcp-2.13.2/docs/development/upgrade-guide.mdx +50 -0
  70. fastmcp-2.13.2/docs/docs.json +491 -0
  71. fastmcp-2.13.2/docs/getting-started/installation.mdx +96 -0
  72. fastmcp-2.13.2/docs/getting-started/quickstart.mdx +136 -0
  73. fastmcp-2.13.2/docs/getting-started/welcome.mdx +111 -0
  74. fastmcp-2.13.2/docs/integrations/anthropic.mdx +228 -0
  75. fastmcp-2.13.2/docs/integrations/auth0.mdx +277 -0
  76. fastmcp-2.13.2/docs/integrations/authkit.mdx +133 -0
  77. fastmcp-2.13.2/docs/integrations/aws-cognito.mdx +365 -0
  78. fastmcp-2.13.2/docs/integrations/azure.mdx +391 -0
  79. fastmcp-2.13.2/docs/integrations/chatgpt.mdx +157 -0
  80. fastmcp-2.13.2/docs/integrations/claude-code.mdx +177 -0
  81. fastmcp-2.13.2/docs/integrations/claude-desktop.mdx +298 -0
  82. fastmcp-2.13.2/docs/integrations/cursor-install-mcp.png +0 -0
  83. fastmcp-2.13.2/docs/integrations/cursor.mdx +284 -0
  84. fastmcp-2.13.2/docs/integrations/descope.mdx +146 -0
  85. fastmcp-2.13.2/docs/integrations/discord.mdx +255 -0
  86. fastmcp-2.13.2/docs/integrations/eunomia-authorization.mdx +129 -0
  87. fastmcp-2.13.2/docs/integrations/fastapi.mdx +460 -0
  88. fastmcp-2.13.2/docs/integrations/gemini-cli.mdx +174 -0
  89. fastmcp-2.13.2/docs/integrations/gemini.mdx +108 -0
  90. fastmcp-2.13.2/docs/integrations/github.mdx +253 -0
  91. fastmcp-2.13.2/docs/integrations/google.mdx +267 -0
  92. fastmcp-2.13.2/docs/integrations/images/authkit/enable_dcr.png +0 -0
  93. fastmcp-2.13.2/docs/integrations/images/oci/ociaddapplication.png +0 -0
  94. fastmcp-2.13.2/docs/integrations/images/oci/ocieditdomainsettings.png +0 -0
  95. fastmcp-2.13.2/docs/integrations/images/oci/ocieditdomainsettingsbutton.png +0 -0
  96. fastmcp-2.13.2/docs/integrations/images/oci/ocioauthconfiguration.png +0 -0
  97. fastmcp-2.13.2/docs/integrations/images/permit/abac_condition_example.png +0 -0
  98. fastmcp-2.13.2/docs/integrations/images/permit/abac_policy_example.png +0 -0
  99. fastmcp-2.13.2/docs/integrations/images/permit/policy_mapping.png +0 -0
  100. fastmcp-2.13.2/docs/integrations/images/permit/role_assignement.png +0 -0
  101. fastmcp-2.13.2/docs/integrations/mcp-json-configuration.mdx +422 -0
  102. fastmcp-2.13.2/docs/integrations/oci.mdx +333 -0
  103. fastmcp-2.13.2/docs/integrations/openai.mdx +227 -0
  104. fastmcp-2.13.2/docs/integrations/openapi.mdx +473 -0
  105. fastmcp-2.13.2/docs/integrations/permit.mdx +352 -0
  106. fastmcp-2.13.2/docs/integrations/scalekit.mdx +194 -0
  107. fastmcp-2.13.2/docs/integrations/workos.mdx +288 -0
  108. fastmcp-2.13.2/docs/patterns/cli.mdx +577 -0
  109. fastmcp-2.13.2/docs/patterns/decorating-methods.mdx +225 -0
  110. fastmcp-2.13.2/docs/patterns/testing.mdx +104 -0
  111. fastmcp-2.13.2/docs/patterns/tool-transformation.mdx +707 -0
  112. fastmcp-2.13.2/docs/public/schemas/fastmcp.json/latest.json +365 -0
  113. fastmcp-2.13.2/docs/public/schemas/fastmcp.json/v1.json +365 -0
  114. fastmcp-2.13.2/docs/python-sdk/fastmcp-cli-cli.mdx +129 -0
  115. fastmcp-2.13.2/docs/python-sdk/fastmcp-cli-install-__init__.mdx +9 -0
  116. fastmcp-2.13.2/docs/python-sdk/fastmcp-cli-install-claude_code.mdx +71 -0
  117. fastmcp-2.13.2/docs/python-sdk/fastmcp-cli-install-claude_desktop.mdx +58 -0
  118. fastmcp-2.13.2/docs/python-sdk/fastmcp-cli-install-cursor.mdx +107 -0
  119. fastmcp-2.13.2/docs/python-sdk/fastmcp-cli-install-gemini_cli.mdx +68 -0
  120. fastmcp-2.13.2/docs/python-sdk/fastmcp-cli-install-mcp_json.mdx +49 -0
  121. fastmcp-2.13.2/docs/python-sdk/fastmcp-cli-install-shared.mdx +33 -0
  122. fastmcp-2.13.2/docs/python-sdk/fastmcp-cli-run.mdx +101 -0
  123. fastmcp-2.13.2/docs/python-sdk/fastmcp-client-auth-bearer.mdx +18 -0
  124. fastmcp-2.13.2/docs/python-sdk/fastmcp-client-auth-oauth.mdx +104 -0
  125. fastmcp-2.13.2/docs/python-sdk/fastmcp-client-client.mdx +546 -0
  126. fastmcp-2.13.2/docs/python-sdk/fastmcp-client-elicitation.mdx +18 -0
  127. fastmcp-2.13.2/docs/python-sdk/fastmcp-client-logging.mdx +24 -0
  128. fastmcp-2.13.2/docs/python-sdk/fastmcp-client-messages.mdx +107 -0
  129. fastmcp-2.13.2/docs/python-sdk/fastmcp-client-oauth_callback.mdx +70 -0
  130. fastmcp-2.13.2/docs/python-sdk/fastmcp-client-progress.mdx +25 -0
  131. fastmcp-2.13.2/docs/python-sdk/fastmcp-client-roots.mdx +20 -0
  132. fastmcp-2.13.2/docs/python-sdk/fastmcp-client-sampling.mdx +14 -0
  133. fastmcp-2.13.2/docs/python-sdk/fastmcp-client-transports.mdx +300 -0
  134. fastmcp-2.13.2/docs/python-sdk/fastmcp-exceptions.mdx +65 -0
  135. fastmcp-2.13.2/docs/python-sdk/fastmcp-mcp_config.mdx +188 -0
  136. fastmcp-2.13.2/docs/python-sdk/fastmcp-prompts-prompt.mdx +117 -0
  137. fastmcp-2.13.2/docs/python-sdk/fastmcp-prompts-prompt_manager.mdx +71 -0
  138. fastmcp-2.13.2/docs/python-sdk/fastmcp-resources-resource.mdx +123 -0
  139. fastmcp-2.13.2/docs/python-sdk/fastmcp-resources-resource_manager.mdx +154 -0
  140. fastmcp-2.13.2/docs/python-sdk/fastmcp-resources-template.mdx +170 -0
  141. fastmcp-2.13.2/docs/python-sdk/fastmcp-resources-types.mdx +134 -0
  142. fastmcp-2.13.2/docs/python-sdk/fastmcp-server-auth-auth.mdx +210 -0
  143. fastmcp-2.13.2/docs/python-sdk/fastmcp-server-auth-jwt_issuer.mdx +104 -0
  144. fastmcp-2.13.2/docs/python-sdk/fastmcp-server-auth-middleware.mdx +26 -0
  145. fastmcp-2.13.2/docs/python-sdk/fastmcp-server-auth-oauth_proxy.mdx +429 -0
  146. fastmcp-2.13.2/docs/python-sdk/fastmcp-server-auth-oidc_proxy.mdx +82 -0
  147. fastmcp-2.13.2/docs/python-sdk/fastmcp-server-auth-providers-auth0.mdx +47 -0
  148. fastmcp-2.13.2/docs/python-sdk/fastmcp-server-auth-providers-aws.mdx +88 -0
  149. fastmcp-2.13.2/docs/python-sdk/fastmcp-server-auth-providers-azure.mdx +76 -0
  150. fastmcp-2.13.2/docs/python-sdk/fastmcp-server-auth-providers-bearer.mdx +13 -0
  151. fastmcp-2.13.2/docs/python-sdk/fastmcp-server-auth-providers-debug.mdx +70 -0
  152. fastmcp-2.13.2/docs/python-sdk/fastmcp-server-auth-providers-descope.mdx +62 -0
  153. fastmcp-2.13.2/docs/python-sdk/fastmcp-server-auth-providers-github.mdx +72 -0
  154. fastmcp-2.13.2/docs/python-sdk/fastmcp-server-auth-providers-google.mdx +72 -0
  155. fastmcp-2.13.2/docs/python-sdk/fastmcp-server-auth-providers-in_memory.mdx +96 -0
  156. fastmcp-2.13.2/docs/python-sdk/fastmcp-server-auth-providers-introspection.mdx +77 -0
  157. fastmcp-2.13.2/docs/python-sdk/fastmcp-server-auth-providers-jwt.mdx +152 -0
  158. fastmcp-2.13.2/docs/python-sdk/fastmcp-server-auth-providers-oci.mdx +103 -0
  159. fastmcp-2.13.2/docs/python-sdk/fastmcp-server-auth-providers-scalekit.mdx +63 -0
  160. fastmcp-2.13.2/docs/python-sdk/fastmcp-server-auth-providers-supabase.mdx +68 -0
  161. fastmcp-2.13.2/docs/python-sdk/fastmcp-server-auth-providers-workos.mdx +110 -0
  162. fastmcp-2.13.2/docs/python-sdk/fastmcp-server-auth-redirect_validation.mdx +53 -0
  163. fastmcp-2.13.2/docs/python-sdk/fastmcp-server-context.mdx +412 -0
  164. fastmcp-2.13.2/docs/python-sdk/fastmcp-server-dependencies.mdx +49 -0
  165. fastmcp-2.13.2/docs/python-sdk/fastmcp-server-elicitation.mdx +87 -0
  166. fastmcp-2.13.2/docs/python-sdk/fastmcp-server-http.mdx +103 -0
  167. fastmcp-2.13.2/docs/python-sdk/fastmcp-server-low_level.mdx +53 -0
  168. fastmcp-2.13.2/docs/python-sdk/fastmcp-server-middleware-caching.mdx +189 -0
  169. fastmcp-2.13.2/docs/python-sdk/fastmcp-server-middleware-error_handling.mdx +60 -0
  170. fastmcp-2.13.2/docs/python-sdk/fastmcp-server-middleware-logging.mdx +58 -0
  171. fastmcp-2.13.2/docs/python-sdk/fastmcp-server-middleware-middleware.mdx +112 -0
  172. fastmcp-2.13.2/docs/python-sdk/fastmcp-server-middleware-rate_limiting.mdx +97 -0
  173. fastmcp-2.13.2/docs/python-sdk/fastmcp-server-middleware-timing.mdx +105 -0
  174. fastmcp-2.13.2/docs/python-sdk/fastmcp-server-middleware-tool_injection.mdx +91 -0
  175. fastmcp-2.13.2/docs/python-sdk/fastmcp-server-openapi.mdx +91 -0
  176. fastmcp-2.13.2/docs/python-sdk/fastmcp-server-proxy.mdx +339 -0
  177. fastmcp-2.13.2/docs/python-sdk/fastmcp-server-server.mdx +876 -0
  178. fastmcp-2.13.2/docs/python-sdk/fastmcp-settings.mdx +84 -0
  179. fastmcp-2.13.2/docs/python-sdk/fastmcp-tools-tool.mdx +117 -0
  180. fastmcp-2.13.2/docs/python-sdk/fastmcp-tools-tool_manager.mdx +113 -0
  181. fastmcp-2.13.2/docs/python-sdk/fastmcp-tools-tool_transform.mdx +290 -0
  182. fastmcp-2.13.2/docs/python-sdk/fastmcp-utilities-auth.mdx +25 -0
  183. fastmcp-2.13.2/docs/python-sdk/fastmcp-utilities-cli.mdx +55 -0
  184. fastmcp-2.13.2/docs/python-sdk/fastmcp-utilities-components.mdx +121 -0
  185. fastmcp-2.13.2/docs/python-sdk/fastmcp-utilities-exceptions.mdx +20 -0
  186. fastmcp-2.13.2/docs/python-sdk/fastmcp-utilities-http.mdx +18 -0
  187. fastmcp-2.13.2/docs/python-sdk/fastmcp-utilities-inspect.mdx +143 -0
  188. fastmcp-2.13.2/docs/python-sdk/fastmcp-utilities-json_schema.mdx +25 -0
  189. fastmcp-2.13.2/docs/python-sdk/fastmcp-utilities-json_schema_type.mdx +110 -0
  190. fastmcp-2.13.2/docs/python-sdk/fastmcp-utilities-logging.mdx +58 -0
  191. fastmcp-2.13.2/docs/python-sdk/fastmcp-utilities-mcp_config.mdx +28 -0
  192. fastmcp-2.13.2/docs/python-sdk/fastmcp-utilities-mcp_server_config-__init__.mdx +13 -0
  193. fastmcp-2.13.2/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-__init__.mdx +8 -0
  194. fastmcp-2.13.2/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-environments-__init__.mdx +9 -0
  195. fastmcp-2.13.2/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-environments-base.mdx +43 -0
  196. fastmcp-2.13.2/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-environments-uv.mdx +45 -0
  197. fastmcp-2.13.2/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-mcp_server_config.mdx +235 -0
  198. fastmcp-2.13.2/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-sources-__init__.mdx +8 -0
  199. fastmcp-2.13.2/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-sources-base.mdx +42 -0
  200. fastmcp-2.13.2/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-sources-filesystem.mdx +37 -0
  201. fastmcp-2.13.2/docs/python-sdk/fastmcp-utilities-openapi.mdx +180 -0
  202. fastmcp-2.13.2/docs/python-sdk/fastmcp-utilities-tests.mdx +106 -0
  203. fastmcp-2.13.2/docs/python-sdk/fastmcp-utilities-types.mdx +169 -0
  204. fastmcp-2.13.2/docs/python-sdk/fastmcp-utilities-ui.mdx +139 -0
  205. fastmcp-2.13.2/docs/servers/auth/authentication.mdx +266 -0
  206. fastmcp-2.13.2/docs/servers/auth/full-oauth-server.mdx +229 -0
  207. fastmcp-2.13.2/docs/servers/auth/oauth-proxy.mdx +591 -0
  208. fastmcp-2.13.2/docs/servers/auth/oidc-proxy.mdx +269 -0
  209. fastmcp-2.13.2/docs/servers/auth/remote-oauth.mdx +226 -0
  210. fastmcp-2.13.2/docs/servers/auth/token-verification.mdx +341 -0
  211. fastmcp-2.13.2/docs/servers/composition.mdx +381 -0
  212. fastmcp-2.13.2/docs/servers/context.mdx +529 -0
  213. fastmcp-2.13.2/docs/servers/elicitation.mdx +319 -0
  214. fastmcp-2.13.2/docs/servers/icons.mdx +139 -0
  215. fastmcp-2.13.2/docs/servers/logging.mdx +249 -0
  216. fastmcp-2.13.2/docs/servers/middleware.mdx +790 -0
  217. fastmcp-2.13.2/docs/servers/progress.mdx +189 -0
  218. fastmcp-2.13.2/docs/servers/prompts.mdx +353 -0
  219. fastmcp-2.13.2/docs/servers/proxy.mdx +352 -0
  220. fastmcp-2.13.2/docs/servers/resources.mdx +663 -0
  221. fastmcp-2.13.2/docs/servers/sampling.mdx +270 -0
  222. fastmcp-2.13.2/docs/servers/server.mdx +439 -0
  223. fastmcp-2.13.2/docs/servers/storage-backends.mdx +275 -0
  224. fastmcp-2.13.2/docs/servers/tools.mdx +940 -0
  225. fastmcp-2.13.2/docs/snippets/local-focus.mdx +7 -0
  226. fastmcp-2.13.2/docs/tutorials/rest-api.mdx +203 -0
  227. fastmcp-2.13.2/docs/updates.mdx +313 -0
  228. fastmcp-2.13.2/examples/atproto_mcp/fastmcp.json +11 -0
  229. fastmcp-2.13.2/examples/atproto_mcp/src/atproto_mcp/_atproto/__init__.py +20 -0
  230. fastmcp-2.13.2/examples/atproto_mcp/src/atproto_mcp/_atproto/_posts.py +420 -0
  231. fastmcp-2.13.2/examples/atproto_mcp/src/atproto_mcp/server.py +149 -0
  232. fastmcp-2.13.2/examples/auth/authkit_dcr/README.md +25 -0
  233. fastmcp-2.13.2/examples/auth/authkit_dcr/client.py +32 -0
  234. fastmcp-2.13.2/examples/auth/authkit_dcr/server.py +33 -0
  235. fastmcp-2.13.2/examples/auth/aws_oauth/README.md +47 -0
  236. fastmcp-2.13.2/examples/auth/aws_oauth/client.py +42 -0
  237. fastmcp-2.13.2/examples/auth/aws_oauth/requirements.txt +2 -0
  238. fastmcp-2.13.2/examples/auth/aws_oauth/server.py +59 -0
  239. fastmcp-2.13.2/examples/auth/azure_oauth/README.md +51 -0
  240. fastmcp-2.13.2/examples/auth/azure_oauth/client.py +32 -0
  241. fastmcp-2.13.2/examples/auth/azure_oauth/server.py +44 -0
  242. fastmcp-2.13.2/examples/auth/discord_oauth/README.md +33 -0
  243. fastmcp-2.13.2/examples/auth/discord_oauth/client.py +32 -0
  244. fastmcp-2.13.2/examples/auth/discord_oauth/server.py +35 -0
  245. fastmcp-2.13.2/examples/auth/github_oauth/README.md +31 -0
  246. fastmcp-2.13.2/examples/auth/github_oauth/client.py +32 -0
  247. fastmcp-2.13.2/examples/auth/github_oauth/server.py +35 -0
  248. fastmcp-2.13.2/examples/auth/google_oauth/README.md +34 -0
  249. fastmcp-2.13.2/examples/auth/google_oauth/client.py +32 -0
  250. fastmcp-2.13.2/examples/auth/google_oauth/server.py +37 -0
  251. fastmcp-2.13.2/examples/auth/scalekit_oauth/README.md +55 -0
  252. fastmcp-2.13.2/examples/auth/scalekit_oauth/client.py +41 -0
  253. fastmcp-2.13.2/examples/auth/scalekit_oauth/server.py +58 -0
  254. fastmcp-2.13.2/examples/auth/workos_oauth/README.md +27 -0
  255. fastmcp-2.13.2/examples/auth/workos_oauth/client.py +32 -0
  256. fastmcp-2.13.2/examples/auth/workos_oauth/server.py +37 -0
  257. fastmcp-2.13.2/examples/fastmcp_config/env_interpolation_example.json +20 -0
  258. fastmcp-2.13.2/examples/fastmcp_config/fastmcp.json +13 -0
  259. fastmcp-2.13.2/examples/fastmcp_config/full_example.fastmcp.json +27 -0
  260. fastmcp-2.13.2/examples/fastmcp_config/server.py +39 -0
  261. fastmcp-2.13.2/examples/fastmcp_config/simple.fastmcp.json +7 -0
  262. fastmcp-2.13.2/examples/fastmcp_config_demo/README.md +55 -0
  263. fastmcp-2.13.2/examples/fastmcp_config_demo/fastmcp.json +14 -0
  264. fastmcp-2.13.2/examples/fastmcp_config_demo/server.py +70 -0
  265. fastmcp-2.13.2/examples/get_file.py +39 -0
  266. fastmcp-2.13.2/examples/memory.fastmcp.json +7 -0
  267. fastmcp-2.13.2/examples/memory.py +348 -0
  268. fastmcp-2.13.2/examples/mount_example.fastmcp.json +4 -0
  269. fastmcp-2.13.2/examples/mount_example.py +116 -0
  270. fastmcp-2.13.2/examples/sampling_fallback.py +38 -0
  271. fastmcp-2.13.2/examples/screenshot.fastmcp.json +7 -0
  272. fastmcp-2.13.2/examples/serializer.py +32 -0
  273. fastmcp-2.13.2/examples/smart_home/hub.fastmcp.json +9 -0
  274. fastmcp-2.13.2/examples/smart_home/lights.fastmcp.json +9 -0
  275. fastmcp-2.13.2/examples/smart_home/src/smart_home/hub.py +30 -0
  276. fastmcp-2.13.2/examples/smart_home/src/smart_home/lights/hue_utils.py +34 -0
  277. fastmcp-2.13.2/examples/smart_home/src/smart_home/settings.py +12 -0
  278. fastmcp-2.13.2/examples/testing_demo/README.md +84 -0
  279. fastmcp-2.13.2/examples/testing_demo/pyproject.toml +18 -0
  280. fastmcp-2.13.2/examples/testing_demo/server.py +61 -0
  281. fastmcp-2.13.2/examples/testing_demo/tests/test_server.py +160 -0
  282. fastmcp-2.13.2/examples/testing_demo/uv.lock +1569 -0
  283. fastmcp-2.13.2/examples/tool_result_echo.py +41 -0
  284. fastmcp-2.13.2/justfile +29 -0
  285. fastmcp-2.13.2/logo.py +25 -0
  286. fastmcp-2.13.2/pyproject.toml +181 -0
  287. fastmcp-2.13.2/scripts/auto_close_duplicates.py +331 -0
  288. fastmcp-2.13.2/scripts/auto_close_needs_mre.py +384 -0
  289. fastmcp-2.13.2/src/fastmcp/__init__.py +56 -0
  290. fastmcp-2.13.2/src/fastmcp/cli/cli.py +878 -0
  291. fastmcp-2.13.2/src/fastmcp/cli/install/__init__.py +22 -0
  292. fastmcp-2.13.2/src/fastmcp/cli/install/claude_code.py +244 -0
  293. fastmcp-2.13.2/src/fastmcp/cli/install/claude_desktop.py +214 -0
  294. fastmcp-2.13.2/src/fastmcp/cli/install/cursor.py +337 -0
  295. fastmcp-2.13.2/src/fastmcp/cli/install/gemini_cli.py +241 -0
  296. fastmcp-2.13.2/src/fastmcp/cli/install/mcp_json.py +196 -0
  297. fastmcp-2.13.2/src/fastmcp/cli/install/shared.py +142 -0
  298. fastmcp-2.13.2/src/fastmcp/cli/run.py +225 -0
  299. fastmcp-2.13.2/src/fastmcp/client/__init__.py +32 -0
  300. fastmcp-2.13.2/src/fastmcp/client/auth/oauth.py +325 -0
  301. fastmcp-2.13.2/src/fastmcp/client/client.py +1015 -0
  302. fastmcp-2.13.2/src/fastmcp/client/elicitation.py +74 -0
  303. fastmcp-2.13.2/src/fastmcp/client/logging.py +54 -0
  304. fastmcp-2.13.2/src/fastmcp/client/oauth_callback.py +242 -0
  305. fastmcp-2.13.2/src/fastmcp/client/sampling.py +56 -0
  306. fastmcp-2.13.2/src/fastmcp/client/transports.py +1119 -0
  307. fastmcp-2.13.2/src/fastmcp/contrib/component_manager/README.md +170 -0
  308. fastmcp-2.13.2/src/fastmcp/contrib/component_manager/__init__.py +4 -0
  309. fastmcp-2.13.2/src/fastmcp/contrib/component_manager/component_manager.py +186 -0
  310. fastmcp-2.13.2/src/fastmcp/contrib/component_manager/component_service.py +225 -0
  311. fastmcp-2.13.2/src/fastmcp/contrib/component_manager/example.py +59 -0
  312. fastmcp-2.13.2/src/fastmcp/contrib/mcp_mixin/README.md +147 -0
  313. fastmcp-2.13.2/src/fastmcp/contrib/mcp_mixin/__init__.py +8 -0
  314. fastmcp-2.13.2/src/fastmcp/contrib/mcp_mixin/mcp_mixin.py +276 -0
  315. fastmcp-2.13.2/src/fastmcp/experimental/sampling/handlers/base.py +21 -0
  316. fastmcp-2.13.2/src/fastmcp/experimental/sampling/handlers/openai.py +170 -0
  317. fastmcp-2.13.2/src/fastmcp/experimental/server/openapi/README.md +266 -0
  318. fastmcp-2.13.2/src/fastmcp/experimental/server/openapi/__init__.py +35 -0
  319. fastmcp-2.13.2/src/fastmcp/experimental/server/openapi/components.py +352 -0
  320. fastmcp-2.13.2/src/fastmcp/experimental/server/openapi/routing.py +130 -0
  321. fastmcp-2.13.2/src/fastmcp/experimental/server/openapi/server.py +451 -0
  322. fastmcp-2.13.2/src/fastmcp/experimental/utilities/openapi/README.md +239 -0
  323. fastmcp-2.13.2/src/fastmcp/experimental/utilities/openapi/__init__.py +63 -0
  324. fastmcp-2.13.2/src/fastmcp/experimental/utilities/openapi/director.py +214 -0
  325. fastmcp-2.13.2/src/fastmcp/experimental/utilities/openapi/formatters.py +389 -0
  326. fastmcp-2.13.2/src/fastmcp/experimental/utilities/openapi/json_schema_converter.py +344 -0
  327. fastmcp-2.13.2/src/fastmcp/experimental/utilities/openapi/models.py +88 -0
  328. fastmcp-2.13.2/src/fastmcp/experimental/utilities/openapi/parser.py +821 -0
  329. fastmcp-2.13.2/src/fastmcp/experimental/utilities/openapi/schemas.py +593 -0
  330. fastmcp-2.13.2/src/fastmcp/mcp_config.py +338 -0
  331. fastmcp-2.13.2/src/fastmcp/prompts/__init__.py +9 -0
  332. fastmcp-2.13.2/src/fastmcp/prompts/prompt.py +381 -0
  333. fastmcp-2.13.2/src/fastmcp/prompts/prompt_manager.py +118 -0
  334. fastmcp-2.13.2/src/fastmcp/resources/__init__.py +22 -0
  335. fastmcp-2.13.2/src/fastmcp/resources/resource.py +223 -0
  336. fastmcp-2.13.2/src/fastmcp/resources/resource_manager.py +343 -0
  337. fastmcp-2.13.2/src/fastmcp/resources/template.py +403 -0
  338. fastmcp-2.13.2/src/fastmcp/resources/types.py +157 -0
  339. fastmcp-2.13.2/src/fastmcp/server/__init__.py +6 -0
  340. fastmcp-2.13.2/src/fastmcp/server/auth/__init__.py +34 -0
  341. fastmcp-2.13.2/src/fastmcp/server/auth/auth.py +399 -0
  342. fastmcp-2.13.2/src/fastmcp/server/auth/handlers/authorize.py +326 -0
  343. fastmcp-2.13.2/src/fastmcp/server/auth/jwt_issuer.py +236 -0
  344. fastmcp-2.13.2/src/fastmcp/server/auth/middleware.py +96 -0
  345. fastmcp-2.13.2/src/fastmcp/server/auth/oauth_proxy.py +2239 -0
  346. fastmcp-2.13.2/src/fastmcp/server/auth/oidc_proxy.py +412 -0
  347. fastmcp-2.13.2/src/fastmcp/server/auth/providers/auth0.py +193 -0
  348. fastmcp-2.13.2/src/fastmcp/server/auth/providers/aws.py +263 -0
  349. fastmcp-2.13.2/src/fastmcp/server/auth/providers/azure.py +446 -0
  350. fastmcp-2.13.2/src/fastmcp/server/auth/providers/bearer.py +25 -0
  351. fastmcp-2.13.2/src/fastmcp/server/auth/providers/debug.py +114 -0
  352. fastmcp-2.13.2/src/fastmcp/server/auth/providers/descope.py +229 -0
  353. fastmcp-2.13.2/src/fastmcp/server/auth/providers/discord.py +308 -0
  354. fastmcp-2.13.2/src/fastmcp/server/auth/providers/github.py +304 -0
  355. fastmcp-2.13.2/src/fastmcp/server/auth/providers/google.py +341 -0
  356. fastmcp-2.13.2/src/fastmcp/server/auth/providers/in_memory.py +364 -0
  357. fastmcp-2.13.2/src/fastmcp/server/auth/providers/introspection.py +281 -0
  358. fastmcp-2.13.2/src/fastmcp/server/auth/providers/jwt.py +564 -0
  359. fastmcp-2.13.2/src/fastmcp/server/auth/providers/oci.py +233 -0
  360. fastmcp-2.13.2/src/fastmcp/server/auth/providers/scalekit.py +238 -0
  361. fastmcp-2.13.2/src/fastmcp/server/auth/providers/supabase.py +188 -0
  362. fastmcp-2.13.2/src/fastmcp/server/auth/providers/workos.py +427 -0
  363. fastmcp-2.13.2/src/fastmcp/server/auth/redirect_validation.py +65 -0
  364. fastmcp-2.13.2/src/fastmcp/server/context.py +803 -0
  365. fastmcp-2.13.2/src/fastmcp/server/dependencies.py +163 -0
  366. fastmcp-2.13.2/src/fastmcp/server/elicitation.py +220 -0
  367. fastmcp-2.13.2/src/fastmcp/server/http.py +360 -0
  368. fastmcp-2.13.2/src/fastmcp/server/low_level.py +156 -0
  369. fastmcp-2.13.2/src/fastmcp/server/middleware/__init__.py +11 -0
  370. fastmcp-2.13.2/src/fastmcp/server/middleware/caching.py +476 -0
  371. fastmcp-2.13.2/src/fastmcp/server/middleware/error_handling.py +210 -0
  372. fastmcp-2.13.2/src/fastmcp/server/middleware/logging.py +256 -0
  373. fastmcp-2.13.2/src/fastmcp/server/middleware/middleware.py +208 -0
  374. fastmcp-2.13.2/src/fastmcp/server/middleware/rate_limiting.py +231 -0
  375. fastmcp-2.13.2/src/fastmcp/server/middleware/tool_injection.py +116 -0
  376. fastmcp-2.13.2/src/fastmcp/server/openapi.py +1087 -0
  377. fastmcp-2.13.2/src/fastmcp/server/proxy.py +694 -0
  378. fastmcp-2.13.2/src/fastmcp/server/sampling/handler.py +19 -0
  379. fastmcp-2.13.2/src/fastmcp/server/server.py +2898 -0
  380. fastmcp-2.13.2/src/fastmcp/settings.py +414 -0
  381. fastmcp-2.13.2/src/fastmcp/tools/__init__.py +5 -0
  382. fastmcp-2.13.2/src/fastmcp/tools/tool.py +605 -0
  383. fastmcp-2.13.2/src/fastmcp/tools/tool_manager.py +172 -0
  384. fastmcp-2.13.2/src/fastmcp/tools/tool_transform.py +954 -0
  385. fastmcp-2.13.2/src/fastmcp/utilities/auth.py +34 -0
  386. fastmcp-2.13.2/src/fastmcp/utilities/cli.py +274 -0
  387. fastmcp-2.13.2/src/fastmcp/utilities/components.py +181 -0
  388. fastmcp-2.13.2/src/fastmcp/utilities/inspect.py +506 -0
  389. fastmcp-2.13.2/src/fastmcp/utilities/json_schema.py +230 -0
  390. fastmcp-2.13.2/src/fastmcp/utilities/json_schema_type.py +648 -0
  391. fastmcp-2.13.2/src/fastmcp/utilities/logging.py +230 -0
  392. fastmcp-2.13.2/src/fastmcp/utilities/mcp_config.py +57 -0
  393. fastmcp-2.13.2/src/fastmcp/utilities/mcp_server_config/__init__.py +25 -0
  394. fastmcp-2.13.2/src/fastmcp/utilities/mcp_server_config/v1/environments/__init__.py +6 -0
  395. fastmcp-2.13.2/src/fastmcp/utilities/mcp_server_config/v1/environments/base.py +29 -0
  396. fastmcp-2.13.2/src/fastmcp/utilities/mcp_server_config/v1/environments/uv.py +271 -0
  397. fastmcp-2.13.2/src/fastmcp/utilities/mcp_server_config/v1/mcp_server_config.py +447 -0
  398. fastmcp-2.13.2/src/fastmcp/utilities/mcp_server_config/v1/schema.json +365 -0
  399. fastmcp-2.13.2/src/fastmcp/utilities/mcp_server_config/v1/sources/base.py +29 -0
  400. fastmcp-2.13.2/src/fastmcp/utilities/mcp_server_config/v1/sources/filesystem.py +216 -0
  401. fastmcp-2.13.2/src/fastmcp/utilities/openapi.py +1568 -0
  402. fastmcp-2.13.2/src/fastmcp/utilities/tests.py +280 -0
  403. fastmcp-2.13.2/src/fastmcp/utilities/types.py +488 -0
  404. fastmcp-2.13.2/src/fastmcp/utilities/ui.py +626 -0
  405. fastmcp-2.13.2/tests/cli/__init__.py +1 -0
  406. fastmcp-2.13.2/tests/cli/test_cli.py +616 -0
  407. fastmcp-2.13.2/tests/cli/test_config.py +434 -0
  408. fastmcp-2.13.2/tests/cli/test_cursor.py +433 -0
  409. fastmcp-2.13.2/tests/cli/test_install.py +313 -0
  410. fastmcp-2.13.2/tests/cli/test_mcp_server_config_integration.py +293 -0
  411. fastmcp-2.13.2/tests/cli/test_mcp_server_config_schema.py +172 -0
  412. fastmcp-2.13.2/tests/cli/test_project_prepare.py +306 -0
  413. fastmcp-2.13.2/tests/cli/test_run.py +602 -0
  414. fastmcp-2.13.2/tests/cli/test_run_config.py +312 -0
  415. fastmcp-2.13.2/tests/cli/test_server_args.py +135 -0
  416. fastmcp-2.13.2/tests/cli/test_shared.py +29 -0
  417. fastmcp-2.13.2/tests/cli/test_with_argv.py +91 -0
  418. fastmcp-2.13.2/tests/client/auth/test_oauth_client.py +126 -0
  419. fastmcp-2.13.2/tests/client/test_client.py +1173 -0
  420. fastmcp-2.13.2/tests/client/test_elicitation.py +731 -0
  421. fastmcp-2.13.2/tests/client/test_logs.py +242 -0
  422. fastmcp-2.13.2/tests/client/test_notifications.py +422 -0
  423. fastmcp-2.13.2/tests/client/test_oauth_callback_xss.py +159 -0
  424. fastmcp-2.13.2/tests/client/test_openapi_experimental.py +194 -0
  425. fastmcp-2.13.2/tests/client/test_openapi_legacy.py +190 -0
  426. fastmcp-2.13.2/tests/client/test_roots.py +44 -0
  427. fastmcp-2.13.2/tests/client/test_sampling.py +163 -0
  428. fastmcp-2.13.2/tests/client/test_sse.py +190 -0
  429. fastmcp-2.13.2/tests/client/test_stdio.py +364 -0
  430. fastmcp-2.13.2/tests/client/test_streamable_http.py +254 -0
  431. fastmcp-2.13.2/tests/client/transports/test_transports.py +37 -0
  432. fastmcp-2.13.2/tests/client/transports/test_uv_transport.py +98 -0
  433. fastmcp-2.13.2/tests/conftest.py +76 -0
  434. fastmcp-2.13.2/tests/contrib/test_bulk_tool_caller.py +288 -0
  435. fastmcp-2.13.2/tests/contrib/test_component_manager.py +730 -0
  436. fastmcp-2.13.2/tests/contrib/test_mcp_mixin.py +322 -0
  437. fastmcp-2.13.2/tests/deprecated/test_bearer_auth_provider.py +13 -0
  438. fastmcp-2.13.2/tests/deprecated/test_dependencies.py +30 -0
  439. fastmcp-2.13.2/tests/deprecated/test_mount_import_arg_order.py +275 -0
  440. fastmcp-2.13.2/tests/deprecated/test_output_schema_false.py +139 -0
  441. fastmcp-2.13.2/tests/deprecated/test_proxy_client.py +107 -0
  442. fastmcp-2.13.2/tests/deprecated/test_settings.py +361 -0
  443. fastmcp-2.13.2/tests/experimental/README.md +3 -0
  444. fastmcp-2.13.2/tests/experimental/openapi_parser/README.md +5 -0
  445. fastmcp-2.13.2/tests/experimental/openapi_parser/conftest.py +11 -0
  446. fastmcp-2.13.2/tests/experimental/openapi_parser/server/openapi/__init__.py +1 -0
  447. fastmcp-2.13.2/tests/experimental/openapi_parser/server/openapi/test_comprehensive.py +695 -0
  448. fastmcp-2.13.2/tests/experimental/openapi_parser/server/openapi/test_deepobject_style.py +333 -0
  449. fastmcp-2.13.2/tests/experimental/openapi_parser/server/openapi/test_end_to_end_compatibility.py +325 -0
  450. fastmcp-2.13.2/tests/experimental/openapi_parser/server/openapi/test_openapi_features.py +401 -0
  451. fastmcp-2.13.2/tests/experimental/openapi_parser/server/openapi/test_openapi_performance.py +143 -0
  452. fastmcp-2.13.2/tests/experimental/openapi_parser/server/openapi/test_parameter_collisions.py +212 -0
  453. fastmcp-2.13.2/tests/experimental/openapi_parser/server/openapi/test_performance_comparison.py +285 -0
  454. fastmcp-2.13.2/tests/experimental/openapi_parser/server/openapi/test_server.py +337 -0
  455. fastmcp-2.13.2/tests/experimental/openapi_parser/utilities/openapi/__init__.py +1 -0
  456. fastmcp-2.13.2/tests/experimental/openapi_parser/utilities/openapi/conftest.py +222 -0
  457. fastmcp-2.13.2/tests/experimental/openapi_parser/utilities/openapi/test_allof_requestbody.py +227 -0
  458. fastmcp-2.13.2/tests/experimental/openapi_parser/utilities/openapi/test_direct_array_schemas.py +323 -0
  459. fastmcp-2.13.2/tests/experimental/openapi_parser/utilities/openapi/test_director.py +462 -0
  460. fastmcp-2.13.2/tests/experimental/openapi_parser/utilities/openapi/test_legacy_compatibility.py +333 -0
  461. fastmcp-2.13.2/tests/experimental/openapi_parser/utilities/openapi/test_models.py +476 -0
  462. fastmcp-2.13.2/tests/experimental/openapi_parser/utilities/openapi/test_nullable_fields.py +375 -0
  463. fastmcp-2.13.2/tests/experimental/openapi_parser/utilities/openapi/test_parser.py +460 -0
  464. fastmcp-2.13.2/tests/experimental/openapi_parser/utilities/openapi/test_schemas.py +635 -0
  465. fastmcp-2.13.2/tests/experimental/openapi_parser/utilities/openapi/test_transitive_references.py +842 -0
  466. fastmcp-2.13.2/tests/experimental/sampling/test_openai_handler.py +100 -0
  467. fastmcp-2.13.2/tests/integration_tests/__init__.py +0 -0
  468. fastmcp-2.13.2/tests/integration_tests/auth/__init__.py +0 -0
  469. fastmcp-2.13.2/tests/integration_tests/auth/test_github_provider_integration.py +401 -0
  470. fastmcp-2.13.2/tests/integration_tests/conftest.py +28 -0
  471. fastmcp-2.13.2/tests/integration_tests/test_github_mcp_remote.py +123 -0
  472. fastmcp-2.13.2/tests/prompts/__init__.py +0 -0
  473. fastmcp-2.13.2/tests/prompts/test_prompt.py +499 -0
  474. fastmcp-2.13.2/tests/prompts/test_prompt_manager.py +436 -0
  475. fastmcp-2.13.2/tests/resources/__init__.py +0 -0
  476. fastmcp-2.13.2/tests/resources/test_function_resources.py +131 -0
  477. fastmcp-2.13.2/tests/resources/test_resource_manager.py +760 -0
  478. fastmcp-2.13.2/tests/resources/test_resource_template.py +956 -0
  479. fastmcp-2.13.2/tests/resources/test_resource_template_meta.py +25 -0
  480. fastmcp-2.13.2/tests/resources/test_resources.py +116 -0
  481. fastmcp-2.13.2/tests/server/__init__.py +0 -0
  482. fastmcp-2.13.2/tests/server/auth/__init__.py +0 -0
  483. fastmcp-2.13.2/tests/server/auth/providers/__init__.py +0 -0
  484. fastmcp-2.13.2/tests/server/auth/providers/test_auth0.py +284 -0
  485. fastmcp-2.13.2/tests/server/auth/providers/test_aws.py +251 -0
  486. fastmcp-2.13.2/tests/server/auth/providers/test_azure.py +881 -0
  487. fastmcp-2.13.2/tests/server/auth/providers/test_descope.py +264 -0
  488. fastmcp-2.13.2/tests/server/auth/providers/test_discord.py +119 -0
  489. fastmcp-2.13.2/tests/server/auth/providers/test_github.py +245 -0
  490. fastmcp-2.13.2/tests/server/auth/providers/test_google.py +164 -0
  491. fastmcp-2.13.2/tests/server/auth/providers/test_introspection.py +463 -0
  492. fastmcp-2.13.2/tests/server/auth/providers/test_scalekit.py +259 -0
  493. fastmcp-2.13.2/tests/server/auth/providers/test_supabase.py +202 -0
  494. fastmcp-2.13.2/tests/server/auth/providers/test_workos.py +208 -0
  495. fastmcp-2.13.2/tests/server/auth/test_auth_provider.py +105 -0
  496. fastmcp-2.13.2/tests/server/auth/test_debug_verifier.py +169 -0
  497. fastmcp-2.13.2/tests/server/auth/test_enhanced_error_responses.py +364 -0
  498. fastmcp-2.13.2/tests/server/auth/test_jwt_issuer.py +230 -0
  499. fastmcp-2.13.2/tests/server/auth/test_jwt_provider.py +1101 -0
  500. fastmcp-2.13.2/tests/server/auth/test_oauth_consent_flow.py +1062 -0
  501. fastmcp-2.13.2/tests/server/auth/test_oauth_mounting.py +267 -0
  502. fastmcp-2.13.2/tests/server/auth/test_oauth_proxy.py +1411 -0
  503. fastmcp-2.13.2/tests/server/auth/test_oauth_proxy_redirect_validation.py +201 -0
  504. fastmcp-2.13.2/tests/server/auth/test_oauth_proxy_storage.py +207 -0
  505. fastmcp-2.13.2/tests/server/auth/test_oidc_proxy.py +878 -0
  506. fastmcp-2.13.2/tests/server/auth/test_redirect_validation.py +141 -0
  507. fastmcp-2.13.2/tests/server/auth/test_remote_auth_provider.py +485 -0
  508. fastmcp-2.13.2/tests/server/auth/test_static_token_verifier.py +112 -0
  509. fastmcp-2.13.2/tests/server/http/__init__.py +0 -0
  510. fastmcp-2.13.2/tests/server/http/test_bearer_auth_backend.py +178 -0
  511. fastmcp-2.13.2/tests/server/http/test_custom_routes.py +105 -0
  512. fastmcp-2.13.2/tests/server/http/test_http_auth_middleware.py +93 -0
  513. fastmcp-2.13.2/tests/server/http/test_http_dependencies.py +122 -0
  514. fastmcp-2.13.2/tests/server/http/test_stale_access_token.py +159 -0
  515. fastmcp-2.13.2/tests/server/middleware/__init__.py +0 -0
  516. fastmcp-2.13.2/tests/server/middleware/test_caching.py +523 -0
  517. fastmcp-2.13.2/tests/server/middleware/test_error_handling.py +635 -0
  518. fastmcp-2.13.2/tests/server/middleware/test_initialization_middleware.py +251 -0
  519. fastmcp-2.13.2/tests/server/middleware/test_logging.py +670 -0
  520. fastmcp-2.13.2/tests/server/middleware/test_middleware.py +905 -0
  521. fastmcp-2.13.2/tests/server/middleware/test_rate_limiting.py +456 -0
  522. fastmcp-2.13.2/tests/server/middleware/test_timing.py +317 -0
  523. fastmcp-2.13.2/tests/server/middleware/test_tool_injection.py +498 -0
  524. fastmcp-2.13.2/tests/server/openapi/__init__.py +0 -0
  525. fastmcp-2.13.2/tests/server/openapi/conftest.py +135 -0
  526. fastmcp-2.13.2/tests/server/openapi/test_advanced_behavior.py +315 -0
  527. fastmcp-2.13.2/tests/server/openapi/test_basic_functionality.py +369 -0
  528. fastmcp-2.13.2/tests/server/openapi/test_configuration.py +933 -0
  529. fastmcp-2.13.2/tests/server/openapi/test_deepobject_style.py +281 -0
  530. fastmcp-2.13.2/tests/server/openapi/test_description_propagation.py +796 -0
  531. fastmcp-2.13.2/tests/server/openapi/test_explode_integration.py +320 -0
  532. fastmcp-2.13.2/tests/server/openapi/test_openapi_compatibility.py +661 -0
  533. fastmcp-2.13.2/tests/server/openapi/test_openapi_path_parameters.py +624 -0
  534. fastmcp-2.13.2/tests/server/openapi/test_optional_parameters.py +100 -0
  535. fastmcp-2.13.2/tests/server/openapi/test_parameter_collisions.py +258 -0
  536. fastmcp-2.13.2/tests/server/openapi/test_route_map_fn.py +452 -0
  537. fastmcp-2.13.2/tests/server/proxy/__init__.py +0 -0
  538. fastmcp-2.13.2/tests/server/proxy/test_proxy_client.py +419 -0
  539. fastmcp-2.13.2/tests/server/proxy/test_proxy_server.py +771 -0
  540. fastmcp-2.13.2/tests/server/proxy/test_stateful_proxy_client.py +148 -0
  541. fastmcp-2.13.2/tests/server/test_auth_integration.py +1240 -0
  542. fastmcp-2.13.2/tests/server/test_context.py +236 -0
  543. fastmcp-2.13.2/tests/server/test_experimental_openapi_feature_flag.py +98 -0
  544. fastmcp-2.13.2/tests/server/test_file_server.py +127 -0
  545. fastmcp-2.13.2/tests/server/test_icons.py +342 -0
  546. fastmcp-2.13.2/tests/server/test_import_server.py +646 -0
  547. fastmcp-2.13.2/tests/server/test_input_validation.py +353 -0
  548. fastmcp-2.13.2/tests/server/test_log_level.py +88 -0
  549. fastmcp-2.13.2/tests/server/test_mount.py +1241 -0
  550. fastmcp-2.13.2/tests/server/test_server.py +1686 -0
  551. fastmcp-2.13.2/tests/server/test_server_interactions.py +2775 -0
  552. fastmcp-2.13.2/tests/server/test_server_lifespan.py +68 -0
  553. fastmcp-2.13.2/tests/server/test_streamable_http_no_redirect.py +85 -0
  554. fastmcp-2.13.2/tests/server/test_tool_annotations.py +221 -0
  555. fastmcp-2.13.2/tests/server/test_tool_exclude_args.py +124 -0
  556. fastmcp-2.13.2/tests/server/test_tool_transformation.py +68 -0
  557. fastmcp-2.13.2/tests/test_examples.py +70 -0
  558. fastmcp-2.13.2/tests/test_mcp_config.py +771 -0
  559. fastmcp-2.13.2/tests/tools/__init__.py +0 -0
  560. fastmcp-2.13.2/tests/tools/test_tool.py +1708 -0
  561. fastmcp-2.13.2/tests/tools/test_tool_future_annotations.py +170 -0
  562. fastmcp-2.13.2/tests/tools/test_tool_manager.py +1053 -0
  563. fastmcp-2.13.2/tests/tools/test_tool_transform.py +1693 -0
  564. fastmcp-2.13.2/tests/utilities/openapi/test_nullable_fields.py +243 -0
  565. fastmcp-2.13.2/tests/utilities/openapi/test_openapi.py +1285 -0
  566. fastmcp-2.13.2/tests/utilities/openapi/test_openapi_fastapi.py +540 -0
  567. fastmcp-2.13.2/tests/utilities/openapi/test_openapi_output_schemas.py +276 -0
  568. fastmcp-2.13.2/tests/utilities/test_cli.py +195 -0
  569. fastmcp-2.13.2/tests/utilities/test_components.py +438 -0
  570. fastmcp-2.13.2/tests/utilities/test_inspect.py +1112 -0
  571. fastmcp-2.13.2/tests/utilities/test_json_schema.py +507 -0
  572. fastmcp-2.13.2/tests/utilities/test_json_schema_type.py +1586 -0
  573. fastmcp-2.13.2/tests/utilities/test_logging.py +56 -0
  574. fastmcp-2.13.2/tests/utilities/test_typeadapter.py +273 -0
  575. fastmcp-2.13.2/tests/utilities/test_types.py +716 -0
  576. fastmcp-2.13.2/uv.lock +2103 -0
  577. fastmcp-2.9.2/.github/ISSUE_TEMPLATE/bug.yml +0 -68
  578. fastmcp-2.9.2/.github/ISSUE_TEMPLATE/enhancement.yml +0 -38
  579. fastmcp-2.9.2/.github/labeler.yml +0 -29
  580. fastmcp-2.9.2/.github/release.yml +0 -51
  581. fastmcp-2.9.2/.github/workflows/labeler.yml +0 -13
  582. fastmcp-2.9.2/.github/workflows/publish.yml +0 -26
  583. fastmcp-2.9.2/.github/workflows/run-static.yml +0 -46
  584. fastmcp-2.9.2/.github/workflows/run-tests.yml +0 -50
  585. fastmcp-2.9.2/.gitignore +0 -62
  586. fastmcp-2.9.2/.pre-commit-config.yaml +0 -29
  587. fastmcp-2.9.2/AGENTS.md +0 -67
  588. fastmcp-2.9.2/CLAUDE.md +0 -37
  589. fastmcp-2.9.2/PKG-INFO +0 -465
  590. fastmcp-2.9.2/README.md +0 -434
  591. fastmcp-2.9.2/Windows_Notes.md +0 -58
  592. fastmcp-2.9.2/docs/assets/demo-inspector.png +0 -0
  593. fastmcp-2.9.2/docs/assets/favicon.ico +0 -0
  594. fastmcp-2.9.2/docs/assets/logo.png +0 -0
  595. fastmcp-2.9.2/docs/changelog.mdx +0 -1226
  596. fastmcp-2.9.2/docs/clients/auth/bearer.mdx +0 -89
  597. fastmcp-2.9.2/docs/clients/auth/oauth.mdx +0 -117
  598. fastmcp-2.9.2/docs/clients/client.mdx +0 -291
  599. fastmcp-2.9.2/docs/clients/logging.mdx +0 -76
  600. fastmcp-2.9.2/docs/clients/prompts.mdx +0 -187
  601. fastmcp-2.9.2/docs/clients/resources.mdx +0 -171
  602. fastmcp-2.9.2/docs/clients/sampling.mdx +0 -152
  603. fastmcp-2.9.2/docs/clients/tools.mdx +0 -143
  604. fastmcp-2.9.2/docs/clients/transports.mdx +0 -437
  605. fastmcp-2.9.2/docs/community/showcase.mdx +0 -59
  606. fastmcp-2.9.2/docs/css/style.css +0 -13
  607. fastmcp-2.9.2/docs/deployment/asgi.mdx +0 -220
  608. fastmcp-2.9.2/docs/deployment/running-server.mdx +0 -287
  609. fastmcp-2.9.2/docs/docs.json +0 -310
  610. fastmcp-2.9.2/docs/getting-started/installation.mdx +0 -110
  611. fastmcp-2.9.2/docs/getting-started/quickstart.mdx +0 -129
  612. fastmcp-2.9.2/docs/getting-started/welcome.mdx +0 -78
  613. fastmcp-2.9.2/docs/integrations/anthropic.mdx +0 -229
  614. fastmcp-2.9.2/docs/integrations/chatgpt.mdx +0 -158
  615. fastmcp-2.9.2/docs/integrations/claude-code.mdx +0 -60
  616. fastmcp-2.9.2/docs/integrations/claude-desktop.mdx +0 -225
  617. fastmcp-2.9.2/docs/integrations/gemini.mdx +0 -109
  618. fastmcp-2.9.2/docs/integrations/openai.mdx +0 -228
  619. fastmcp-2.9.2/docs/patterns/cli.mdx +0 -213
  620. fastmcp-2.9.2/docs/patterns/decorating-methods.mdx +0 -225
  621. fastmcp-2.9.2/docs/patterns/http-requests.mdx +0 -87
  622. fastmcp-2.9.2/docs/patterns/testing.mdx +0 -38
  623. fastmcp-2.9.2/docs/patterns/tool-transformation.mdx +0 -455
  624. fastmcp-2.9.2/docs/python-sdk/fastmcp-cli-claude.mdx +0 -43
  625. fastmcp-2.9.2/docs/python-sdk/fastmcp-cli-cli.mdx +0 -87
  626. fastmcp-2.9.2/docs/python-sdk/fastmcp-cli-run.mdx +0 -106
  627. fastmcp-2.9.2/docs/python-sdk/fastmcp-client-auth-bearer.mdx +0 -18
  628. fastmcp-2.9.2/docs/python-sdk/fastmcp-client-auth-oauth.mdx +0 -102
  629. fastmcp-2.9.2/docs/python-sdk/fastmcp-client-client.mdx +0 -94
  630. fastmcp-2.9.2/docs/python-sdk/fastmcp-client-logging.mdx +0 -14
  631. fastmcp-2.9.2/docs/python-sdk/fastmcp-client-oauth_callback.mdx +0 -63
  632. fastmcp-2.9.2/docs/python-sdk/fastmcp-client-progress.mdx +0 -8
  633. fastmcp-2.9.2/docs/python-sdk/fastmcp-client-roots.mdx +0 -20
  634. fastmcp-2.9.2/docs/python-sdk/fastmcp-client-sampling.mdx +0 -14
  635. fastmcp-2.9.2/docs/python-sdk/fastmcp-client-transports.mdx +0 -192
  636. fastmcp-2.9.2/docs/python-sdk/fastmcp-exceptions.mdx +0 -65
  637. fastmcp-2.9.2/docs/python-sdk/fastmcp-prompts-prompt.mdx +0 -84
  638. fastmcp-2.9.2/docs/python-sdk/fastmcp-prompts-prompt_manager.mdx +0 -43
  639. fastmcp-2.9.2/docs/python-sdk/fastmcp-resources-resource.mdx +0 -90
  640. fastmcp-2.9.2/docs/python-sdk/fastmcp-resources-resource_manager.mdx +0 -111
  641. fastmcp-2.9.2/docs/python-sdk/fastmcp-resources-template.mdx +0 -104
  642. fastmcp-2.9.2/docs/python-sdk/fastmcp-resources-types.mdx +0 -83
  643. fastmcp-2.9.2/docs/python-sdk/fastmcp-server-auth-auth.mdx +0 -10
  644. fastmcp-2.9.2/docs/python-sdk/fastmcp-server-auth-providers-bearer.mdx +0 -69
  645. fastmcp-2.9.2/docs/python-sdk/fastmcp-server-auth-providers-bearer_env.mdx +0 -22
  646. fastmcp-2.9.2/docs/python-sdk/fastmcp-server-auth-providers-in_memory.mdx +0 -15
  647. fastmcp-2.9.2/docs/python-sdk/fastmcp-server-context.mdx +0 -118
  648. fastmcp-2.9.2/docs/python-sdk/fastmcp-server-dependencies.mdx +0 -36
  649. fastmcp-2.9.2/docs/python-sdk/fastmcp-server-http.mdx +0 -113
  650. fastmcp-2.9.2/docs/python-sdk/fastmcp-server-middleware-error_handling.mdx +0 -40
  651. fastmcp-2.9.2/docs/python-sdk/fastmcp-server-middleware-logging.mdx +0 -29
  652. fastmcp-2.9.2/docs/python-sdk/fastmcp-server-middleware-middleware.mdx +0 -56
  653. fastmcp-2.9.2/docs/python-sdk/fastmcp-server-middleware-rate_limiting.mdx +0 -47
  654. fastmcp-2.9.2/docs/python-sdk/fastmcp-server-middleware-timing.mdx +0 -29
  655. fastmcp-2.9.2/docs/python-sdk/fastmcp-server-middleware.mdx +0 -56
  656. fastmcp-2.9.2/docs/python-sdk/fastmcp-server-openapi.mdx +0 -58
  657. fastmcp-2.9.2/docs/python-sdk/fastmcp-server-proxy.mdx +0 -101
  658. fastmcp-2.9.2/docs/python-sdk/fastmcp-server-server.mdx +0 -629
  659. fastmcp-2.9.2/docs/python-sdk/fastmcp-settings.mdx +0 -59
  660. fastmcp-2.9.2/docs/python-sdk/fastmcp-tools-tool.mdx +0 -68
  661. fastmcp-2.9.2/docs/python-sdk/fastmcp-tools-tool_manager.mdx +0 -58
  662. fastmcp-2.9.2/docs/python-sdk/fastmcp-tools-tool_transform.mdx +0 -139
  663. fastmcp-2.9.2/docs/python-sdk/fastmcp-utilities-cache.mdx +0 -30
  664. fastmcp-2.9.2/docs/python-sdk/fastmcp-utilities-components.mdx +0 -52
  665. fastmcp-2.9.2/docs/python-sdk/fastmcp-utilities-exceptions.mdx +0 -20
  666. fastmcp-2.9.2/docs/python-sdk/fastmcp-utilities-http.mdx +0 -18
  667. fastmcp-2.9.2/docs/python-sdk/fastmcp-utilities-inspect.mdx +0 -41
  668. fastmcp-2.9.2/docs/python-sdk/fastmcp-utilities-json_schema.mdx +0 -25
  669. fastmcp-2.9.2/docs/python-sdk/fastmcp-utilities-logging.mdx +0 -41
  670. fastmcp-2.9.2/docs/python-sdk/fastmcp-utilities-mcp_config.mdx +0 -50
  671. fastmcp-2.9.2/docs/python-sdk/fastmcp-utilities-openapi.mdx +0 -118
  672. fastmcp-2.9.2/docs/python-sdk/fastmcp-utilities-tests.mdx +0 -42
  673. fastmcp-2.9.2/docs/python-sdk/fastmcp-utilities-types.mdx +0 -112
  674. fastmcp-2.9.2/docs/servers/auth/bearer.mdx +0 -233
  675. fastmcp-2.9.2/docs/servers/composition.mdx +0 -311
  676. fastmcp-2.9.2/docs/servers/context.mdx +0 -373
  677. fastmcp-2.9.2/docs/servers/middleware.mdx +0 -574
  678. fastmcp-2.9.2/docs/servers/openapi.mdx +0 -518
  679. fastmcp-2.9.2/docs/servers/prompts.mdx +0 -336
  680. fastmcp-2.9.2/docs/servers/proxy.mdx +0 -169
  681. fastmcp-2.9.2/docs/servers/resources.mdx +0 -554
  682. fastmcp-2.9.2/docs/servers/server.mdx +0 -366
  683. fastmcp-2.9.2/docs/servers/tools.mdx +0 -868
  684. fastmcp-2.9.2/docs/tutorials/rest-api.mdx +0 -203
  685. fastmcp-2.9.2/docs/updates.mdx +0 -187
  686. fastmcp-2.9.2/examples/atproto_mcp/src/atproto_mcp/_atproto/__init__.py +0 -20
  687. fastmcp-2.9.2/examples/atproto_mcp/src/atproto_mcp/_atproto/_posts.py +0 -385
  688. fastmcp-2.9.2/examples/atproto_mcp/src/atproto_mcp/server.py +0 -154
  689. fastmcp-2.9.2/examples/get_file.py +0 -33
  690. fastmcp-2.9.2/examples/memory.py +0 -346
  691. fastmcp-2.9.2/examples/mount_example.py +0 -118
  692. fastmcp-2.9.2/examples/serializer.py +0 -32
  693. fastmcp-2.9.2/examples/smart_home/src/smart_home/hub.py +0 -35
  694. fastmcp-2.9.2/examples/smart_home/src/smart_home/lights/hue_utils.py +0 -34
  695. fastmcp-2.9.2/examples/smart_home/src/smart_home/settings.py +0 -12
  696. fastmcp-2.9.2/examples/smart_home/uv.lock +0 -657
  697. fastmcp-2.9.2/justfile +0 -30
  698. fastmcp-2.9.2/pyproject.toml +0 -118
  699. fastmcp-2.9.2/src/fastmcp/__init__.py +0 -50
  700. fastmcp-2.9.2/src/fastmcp/cli/claude.py +0 -140
  701. fastmcp-2.9.2/src/fastmcp/cli/cli.py +0 -535
  702. fastmcp-2.9.2/src/fastmcp/cli/run.py +0 -208
  703. fastmcp-2.9.2/src/fastmcp/client/__init__.py +0 -30
  704. fastmcp-2.9.2/src/fastmcp/client/auth/oauth.py +0 -390
  705. fastmcp-2.9.2/src/fastmcp/client/client.py +0 -706
  706. fastmcp-2.9.2/src/fastmcp/client/logging.py +0 -26
  707. fastmcp-2.9.2/src/fastmcp/client/oauth_callback.py +0 -310
  708. fastmcp-2.9.2/src/fastmcp/client/sampling.py +0 -48
  709. fastmcp-2.9.2/src/fastmcp/client/transports.py +0 -922
  710. fastmcp-2.9.2/src/fastmcp/contrib/mcp_mixin/README.md +0 -116
  711. fastmcp-2.9.2/src/fastmcp/contrib/mcp_mixin/__init__.py +0 -8
  712. fastmcp-2.9.2/src/fastmcp/contrib/mcp_mixin/mcp_mixin.py +0 -229
  713. fastmcp-2.9.2/src/fastmcp/prompts/__init__.py +0 -9
  714. fastmcp-2.9.2/src/fastmcp/prompts/prompt.py +0 -360
  715. fastmcp-2.9.2/src/fastmcp/prompts/prompt_manager.py +0 -201
  716. fastmcp-2.9.2/src/fastmcp/resources/__init__.py +0 -22
  717. fastmcp-2.9.2/src/fastmcp/resources/resource.py +0 -190
  718. fastmcp-2.9.2/src/fastmcp/resources/resource_manager.py +0 -492
  719. fastmcp-2.9.2/src/fastmcp/resources/template.py +0 -287
  720. fastmcp-2.9.2/src/fastmcp/resources/types.py +0 -151
  721. fastmcp-2.9.2/src/fastmcp/server/__init__.py +0 -6
  722. fastmcp-2.9.2/src/fastmcp/server/auth/__init__.py +0 -4
  723. fastmcp-2.9.2/src/fastmcp/server/auth/auth.py +0 -45
  724. fastmcp-2.9.2/src/fastmcp/server/auth/providers/bearer.py +0 -426
  725. fastmcp-2.9.2/src/fastmcp/server/auth/providers/bearer_env.py +0 -59
  726. fastmcp-2.9.2/src/fastmcp/server/auth/providers/in_memory.py +0 -325
  727. fastmcp-2.9.2/src/fastmcp/server/context.py +0 -401
  728. fastmcp-2.9.2/src/fastmcp/server/dependencies.py +0 -89
  729. fastmcp-2.9.2/src/fastmcp/server/http.py +0 -368
  730. fastmcp-2.9.2/src/fastmcp/server/low_level.py +0 -35
  731. fastmcp-2.9.2/src/fastmcp/server/middleware/__init__.py +0 -6
  732. fastmcp-2.9.2/src/fastmcp/server/middleware/error_handling.py +0 -206
  733. fastmcp-2.9.2/src/fastmcp/server/middleware/logging.py +0 -165
  734. fastmcp-2.9.2/src/fastmcp/server/middleware/middleware.py +0 -236
  735. fastmcp-2.9.2/src/fastmcp/server/middleware/rate_limiting.py +0 -231
  736. fastmcp-2.9.2/src/fastmcp/server/openapi.py +0 -1019
  737. fastmcp-2.9.2/src/fastmcp/server/proxy.py +0 -401
  738. fastmcp-2.9.2/src/fastmcp/server/server.py +0 -2112
  739. fastmcp-2.9.2/src/fastmcp/settings.py +0 -278
  740. fastmcp-2.9.2/src/fastmcp/tools/__init__.py +0 -5
  741. fastmcp-2.9.2/src/fastmcp/tools/tool.py +0 -339
  742. fastmcp-2.9.2/src/fastmcp/tools/tool_manager.py +0 -215
  743. fastmcp-2.9.2/src/fastmcp/tools/tool_transform.py +0 -695
  744. fastmcp-2.9.2/src/fastmcp/utilities/cache.py +0 -26
  745. fastmcp-2.9.2/src/fastmcp/utilities/components.py +0 -75
  746. fastmcp-2.9.2/src/fastmcp/utilities/inspect.py +0 -326
  747. fastmcp-2.9.2/src/fastmcp/utilities/json_schema.py +0 -164
  748. fastmcp-2.9.2/src/fastmcp/utilities/logging.py +0 -52
  749. fastmcp-2.9.2/src/fastmcp/utilities/mcp_config.py +0 -93
  750. fastmcp-2.9.2/src/fastmcp/utilities/openapi.py +0 -1040
  751. fastmcp-2.9.2/src/fastmcp/utilities/tests.py +0 -131
  752. fastmcp-2.9.2/src/fastmcp/utilities/types.py +0 -294
  753. fastmcp-2.9.2/tests/auth/providers/test_bearer.py +0 -727
  754. fastmcp-2.9.2/tests/auth/providers/test_bearer_env.py +0 -91
  755. fastmcp-2.9.2/tests/auth/test_oauth_client.py +0 -265
  756. fastmcp-2.9.2/tests/cli/test_cli.py +0 -471
  757. fastmcp-2.9.2/tests/cli/test_run.py +0 -298
  758. fastmcp-2.9.2/tests/client/test_client.py +0 -1021
  759. fastmcp-2.9.2/tests/client/test_logs.py +0 -60
  760. fastmcp-2.9.2/tests/client/test_notifications.py +0 -422
  761. fastmcp-2.9.2/tests/client/test_openapi.py +0 -167
  762. fastmcp-2.9.2/tests/client/test_roots.py +0 -46
  763. fastmcp-2.9.2/tests/client/test_sampling.py +0 -85
  764. fastmcp-2.9.2/tests/client/test_sse.py +0 -166
  765. fastmcp-2.9.2/tests/client/test_stdio.py +0 -117
  766. fastmcp-2.9.2/tests/client/test_streamable_http.py +0 -219
  767. fastmcp-2.9.2/tests/contrib/test_bulk_tool_caller.py +0 -213
  768. fastmcp-2.9.2/tests/contrib/test_mcp_mixin.py +0 -255
  769. fastmcp-2.9.2/tests/deprecated/test_mount_import_arg_order.py +0 -275
  770. fastmcp-2.9.2/tests/deprecated/test_settings.py +0 -357
  771. fastmcp-2.9.2/tests/prompts/test_prompt.py +0 -484
  772. fastmcp-2.9.2/tests/prompts/test_prompt_manager.py +0 -429
  773. fastmcp-2.9.2/tests/resources/test_function_resources.py +0 -131
  774. fastmcp-2.9.2/tests/resources/test_resource_manager.py +0 -649
  775. fastmcp-2.9.2/tests/resources/test_resource_template.py +0 -709
  776. fastmcp-2.9.2/tests/resources/test_resources.py +0 -95
  777. fastmcp-2.9.2/tests/server/http/test_custom_routes.py +0 -105
  778. fastmcp-2.9.2/tests/server/http/test_http_dependencies.py +0 -125
  779. fastmcp-2.9.2/tests/server/middleware/test_error_handling.py +0 -601
  780. fastmcp-2.9.2/tests/server/middleware/test_logging.py +0 -426
  781. fastmcp-2.9.2/tests/server/middleware/test_middleware.py +0 -567
  782. fastmcp-2.9.2/tests/server/middleware/test_rate_limiting.py +0 -448
  783. fastmcp-2.9.2/tests/server/middleware/test_timing.py +0 -312
  784. fastmcp-2.9.2/tests/server/openapi/test_openapi.py +0 -2812
  785. fastmcp-2.9.2/tests/server/openapi/test_openapi_path_parameters.py +0 -485
  786. fastmcp-2.9.2/tests/server/openapi/test_route_map_fn.py +0 -374
  787. fastmcp-2.9.2/tests/server/test_auth_integration.py +0 -1234
  788. fastmcp-2.9.2/tests/server/test_context.py +0 -125
  789. fastmcp-2.9.2/tests/server/test_file_server.py +0 -127
  790. fastmcp-2.9.2/tests/server/test_import_server.py +0 -607
  791. fastmcp-2.9.2/tests/server/test_mount.py +0 -965
  792. fastmcp-2.9.2/tests/server/test_proxy.py +0 -516
  793. fastmcp-2.9.2/tests/server/test_server.py +0 -1346
  794. fastmcp-2.9.2/tests/server/test_server_interactions.py +0 -2140
  795. fastmcp-2.9.2/tests/server/test_tool_annotations.py +0 -225
  796. fastmcp-2.9.2/tests/server/test_tool_exclude_args.py +0 -100
  797. fastmcp-2.9.2/tests/test_examples.py +0 -69
  798. fastmcp-2.9.2/tests/test_servers/fastmcp_server.py +0 -58
  799. fastmcp-2.9.2/tests/test_servers/sse.py +0 -6
  800. fastmcp-2.9.2/tests/test_servers/stdio.py +0 -6
  801. fastmcp-2.9.2/tests/tools/test_tool.py +0 -720
  802. fastmcp-2.9.2/tests/tools/test_tool_manager.py +0 -923
  803. fastmcp-2.9.2/tests/tools/test_tool_transform.py +0 -1021
  804. fastmcp-2.9.2/tests/utilities/openapi/test_openapi.py +0 -1205
  805. fastmcp-2.9.2/tests/utilities/openapi/test_openapi_fastapi.py +0 -539
  806. fastmcp-2.9.2/tests/utilities/test_cache.py +0 -233
  807. fastmcp-2.9.2/tests/utilities/test_inspect.py +0 -388
  808. fastmcp-2.9.2/tests/utilities/test_json_schema.py +0 -316
  809. fastmcp-2.9.2/tests/utilities/test_logging.py +0 -30
  810. fastmcp-2.9.2/tests/utilities/test_mcp_config.py +0 -197
  811. fastmcp-2.9.2/tests/utilities/test_typeadapter.py +0 -244
  812. fastmcp-2.9.2/tests/utilities/test_types.py +0 -538
  813. fastmcp-2.9.2/uv.lock +0 -1692
  814. {fastmcp-2.9.2 → fastmcp-2.13.2}/.cursor/rules/core-mcp-objects.mdc +0 -0
  815. {fastmcp-2.9.2 → fastmcp-2.13.2}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  816. {fastmcp-2.9.2 → fastmcp-2.13.2}/.github/dependabot.yml +0 -0
  817. {fastmcp-2.9.2 → fastmcp-2.13.2}/LICENSE +0 -0
  818. {fastmcp-2.9.2 → fastmcp-2.13.2}/docs/.cursor/rules/mintlify.mdc +0 -0
  819. {fastmcp-2.9.2 → fastmcp-2.13.2}/docs/assets/images/tutorial-rest-api-result.png +0 -0
  820. {fastmcp-2.9.2 → fastmcp-2.13.2}/docs/assets/updates/release-2-7.png +0 -0
  821. {fastmcp-2.9.2 → fastmcp-2.13.2}/docs/clients/messages.mdx +0 -0
  822. {fastmcp-2.9.2 → fastmcp-2.13.2}/docs/clients/progress.mdx +0 -0
  823. {fastmcp-2.9.2 → fastmcp-2.13.2}/docs/clients/roots.mdx +0 -0
  824. {fastmcp-2.9.2 → fastmcp-2.13.2}/docs/community/README.md +0 -0
  825. {fastmcp-2.9.2 → fastmcp-2.13.2}/docs/css/banner.css +0 -0
  826. {fastmcp-2.9.2 → fastmcp-2.13.2}/docs/css/python-sdk.css +0 -0
  827. {fastmcp-2.9.2 → fastmcp-2.13.2}/docs/css/version-badge.css +0 -0
  828. {fastmcp-2.9.2/docs/integrations → fastmcp-2.13.2/docs/patterns}/contrib.mdx +0 -0
  829. {fastmcp-2.9.2 → fastmcp-2.13.2}/docs/python-sdk/fastmcp-cli-__init__.mdx +0 -0
  830. {fastmcp-2.9.2 → fastmcp-2.13.2}/docs/python-sdk/fastmcp-client-__init__.mdx +0 -0
  831. {fastmcp-2.9.2 → fastmcp-2.13.2}/docs/python-sdk/fastmcp-client-auth-__init__.mdx +0 -0
  832. {fastmcp-2.9.2 → fastmcp-2.13.2}/docs/python-sdk/fastmcp-prompts-__init__.mdx +0 -0
  833. {fastmcp-2.9.2 → fastmcp-2.13.2}/docs/python-sdk/fastmcp-resources-__init__.mdx +0 -0
  834. {fastmcp-2.9.2 → fastmcp-2.13.2}/docs/python-sdk/fastmcp-server-__init__.mdx +0 -0
  835. {fastmcp-2.9.2 → fastmcp-2.13.2}/docs/python-sdk/fastmcp-server-auth-__init__.mdx +0 -0
  836. {fastmcp-2.9.2 → fastmcp-2.13.2}/docs/python-sdk/fastmcp-server-auth-providers-__init__.mdx +0 -0
  837. {fastmcp-2.9.2 → fastmcp-2.13.2}/docs/python-sdk/fastmcp-server-middleware-__init__.mdx +0 -0
  838. {fastmcp-2.9.2 → fastmcp-2.13.2}/docs/python-sdk/fastmcp-tools-__init__.mdx +0 -0
  839. {fastmcp-2.9.2 → fastmcp-2.13.2}/docs/python-sdk/fastmcp-utilities-__init__.mdx +0 -0
  840. {fastmcp-2.9.2 → fastmcp-2.13.2}/docs/snippets/version-badge.mdx +0 -0
  841. {fastmcp-2.9.2 → fastmcp-2.13.2}/docs/snippets/youtube-embed.mdx +0 -0
  842. {fastmcp-2.9.2 → fastmcp-2.13.2}/docs/tutorials/create-mcp-server.mdx +0 -0
  843. {fastmcp-2.9.2 → fastmcp-2.13.2}/docs/tutorials/mcp.mdx +0 -0
  844. {fastmcp-2.9.2 → fastmcp-2.13.2}/examples/atproto_mcp/README.md +0 -0
  845. {fastmcp-2.9.2 → fastmcp-2.13.2}/examples/atproto_mcp/demo.py +0 -0
  846. {fastmcp-2.9.2 → fastmcp-2.13.2}/examples/atproto_mcp/pyproject.toml +0 -0
  847. {fastmcp-2.9.2 → fastmcp-2.13.2}/examples/atproto_mcp/src/atproto_mcp/__init__.py +0 -0
  848. {fastmcp-2.9.2 → fastmcp-2.13.2}/examples/atproto_mcp/src/atproto_mcp/__main__.py +0 -0
  849. {fastmcp-2.9.2 → fastmcp-2.13.2}/examples/atproto_mcp/src/atproto_mcp/_atproto/_client.py +0 -0
  850. {fastmcp-2.9.2 → fastmcp-2.13.2}/examples/atproto_mcp/src/atproto_mcp/_atproto/_profile.py +0 -0
  851. {fastmcp-2.9.2 → fastmcp-2.13.2}/examples/atproto_mcp/src/atproto_mcp/_atproto/_read.py +0 -0
  852. {fastmcp-2.9.2 → fastmcp-2.13.2}/examples/atproto_mcp/src/atproto_mcp/_atproto/_social.py +0 -0
  853. {fastmcp-2.9.2 → fastmcp-2.13.2}/examples/atproto_mcp/src/atproto_mcp/py.typed +0 -0
  854. {fastmcp-2.9.2 → fastmcp-2.13.2}/examples/atproto_mcp/src/atproto_mcp/settings.py +0 -0
  855. {fastmcp-2.9.2 → fastmcp-2.13.2}/examples/atproto_mcp/src/atproto_mcp/types.py +0 -0
  856. {fastmcp-2.9.2 → fastmcp-2.13.2}/examples/complex_inputs.py +0 -0
  857. {fastmcp-2.9.2 → fastmcp-2.13.2}/examples/config_server.py +0 -0
  858. {fastmcp-2.9.2 → fastmcp-2.13.2}/examples/desktop.py +0 -0
  859. {fastmcp-2.9.2 → fastmcp-2.13.2}/examples/echo.py +0 -0
  860. {fastmcp-2.9.2 → fastmcp-2.13.2}/examples/in_memory_proxy_example.py +0 -0
  861. {fastmcp-2.9.2 → fastmcp-2.13.2}/examples/sampling.py +0 -0
  862. {fastmcp-2.9.2 → fastmcp-2.13.2}/examples/screenshot.py +0 -0
  863. {fastmcp-2.9.2 → fastmcp-2.13.2}/examples/simple_echo.py +0 -0
  864. {fastmcp-2.9.2 → fastmcp-2.13.2}/examples/smart_home/README.md +0 -0
  865. {fastmcp-2.9.2 → fastmcp-2.13.2}/examples/smart_home/pyproject.toml +0 -0
  866. {fastmcp-2.9.2 → fastmcp-2.13.2}/examples/smart_home/src/smart_home/__init__.py +0 -0
  867. {fastmcp-2.9.2 → fastmcp-2.13.2}/examples/smart_home/src/smart_home/__main__.py +0 -0
  868. {fastmcp-2.9.2 → fastmcp-2.13.2}/examples/smart_home/src/smart_home/lights/__init__.py +0 -0
  869. {fastmcp-2.9.2 → fastmcp-2.13.2}/examples/smart_home/src/smart_home/lights/server.py +0 -0
  870. {fastmcp-2.9.2 → fastmcp-2.13.2}/examples/smart_home/src/smart_home/py.typed +0 -0
  871. {fastmcp-2.9.2 → fastmcp-2.13.2}/examples/tags_example.py +0 -0
  872. {fastmcp-2.9.2 → fastmcp-2.13.2}/examples/text_me.py +0 -0
  873. {fastmcp-2.9.2 → fastmcp-2.13.2}/src/fastmcp/cli/__init__.py +0 -0
  874. {fastmcp-2.9.2 → fastmcp-2.13.2}/src/fastmcp/client/auth/__init__.py +0 -0
  875. {fastmcp-2.9.2 → fastmcp-2.13.2}/src/fastmcp/client/auth/bearer.py +0 -0
  876. {fastmcp-2.9.2 → fastmcp-2.13.2}/src/fastmcp/client/messages.py +0 -0
  877. {fastmcp-2.9.2 → fastmcp-2.13.2}/src/fastmcp/client/progress.py +0 -0
  878. {fastmcp-2.9.2 → fastmcp-2.13.2}/src/fastmcp/client/roots.py +0 -0
  879. {fastmcp-2.9.2 → fastmcp-2.13.2}/src/fastmcp/contrib/README.md +0 -0
  880. {fastmcp-2.9.2 → fastmcp-2.13.2}/src/fastmcp/contrib/bulk_tool_caller/README.md +0 -0
  881. {fastmcp-2.9.2 → fastmcp-2.13.2}/src/fastmcp/contrib/bulk_tool_caller/__init__.py +0 -0
  882. {fastmcp-2.9.2 → fastmcp-2.13.2}/src/fastmcp/contrib/bulk_tool_caller/bulk_tool_caller.py +0 -0
  883. {fastmcp-2.9.2 → fastmcp-2.13.2}/src/fastmcp/contrib/bulk_tool_caller/example.py +0 -0
  884. {fastmcp-2.9.2 → fastmcp-2.13.2}/src/fastmcp/contrib/mcp_mixin/example.py +0 -0
  885. {fastmcp-2.9.2 → fastmcp-2.13.2}/src/fastmcp/exceptions.py +0 -0
  886. {fastmcp-2.9.2/src/fastmcp/server/auth/providers → fastmcp-2.13.2/src/fastmcp/experimental/sampling}/__init__.py +0 -0
  887. {fastmcp-2.9.2/tests → fastmcp-2.13.2/src/fastmcp/experimental/sampling/handlers}/__init__.py +0 -0
  888. {fastmcp-2.9.2 → fastmcp-2.13.2}/src/fastmcp/py.typed +0 -0
  889. {fastmcp-2.9.2/tests/auth → fastmcp-2.13.2/src/fastmcp/server/auth/providers}/__init__.py +0 -0
  890. {fastmcp-2.9.2 → fastmcp-2.13.2}/src/fastmcp/server/middleware/timing.py +0 -0
  891. {fastmcp-2.9.2 → fastmcp-2.13.2}/src/fastmcp/utilities/__init__.py +0 -0
  892. {fastmcp-2.9.2 → fastmcp-2.13.2}/src/fastmcp/utilities/exceptions.py +0 -0
  893. {fastmcp-2.9.2 → fastmcp-2.13.2}/src/fastmcp/utilities/http.py +0 -0
  894. {fastmcp-2.9.2/tests/cli → fastmcp-2.13.2/src/fastmcp/utilities/mcp_server_config/v1}/__init__.py +0 -0
  895. {fastmcp-2.9.2/tests/client → fastmcp-2.13.2/src/fastmcp/utilities/mcp_server_config/v1/sources}/__init__.py +0 -0
  896. {fastmcp-2.9.2/tests/prompts → fastmcp-2.13.2/tests}/__init__.py +0 -0
  897. {fastmcp-2.9.2/tests/resources → fastmcp-2.13.2/tests/client}/__init__.py +0 -0
  898. {fastmcp-2.9.2/tests/server → fastmcp-2.13.2/tests/client/auth}/__init__.py +0 -0
  899. {fastmcp-2.9.2 → fastmcp-2.13.2}/tests/client/test_progress.py +0 -0
  900. {fastmcp-2.9.2/tests/server/http → fastmcp-2.13.2/tests/client/transports}/__init__.py +0 -0
  901. {fastmcp-2.9.2 → fastmcp-2.13.2}/tests/contrib/__init__.py +0 -0
  902. {fastmcp-2.9.2 → fastmcp-2.13.2}/tests/deprecated/__init__.py +0 -0
  903. {fastmcp-2.9.2 → fastmcp-2.13.2}/tests/deprecated/test_deprecated.py +0 -0
  904. {fastmcp-2.9.2 → fastmcp-2.13.2}/tests/deprecated/test_mount_separators.py +0 -0
  905. {fastmcp-2.9.2 → fastmcp-2.13.2}/tests/deprecated/test_resource_prefixes.py +0 -0
  906. {fastmcp-2.9.2 → fastmcp-2.13.2}/tests/deprecated/test_route_type_ignore.py +0 -0
  907. {fastmcp-2.9.2/tests/server/middleware → fastmcp-2.13.2/tests/experimental}/__init__.py +0 -0
  908. {fastmcp-2.9.2/tests/server/openapi → fastmcp-2.13.2/tests/experimental/openapi_parser}/__init__.py +0 -0
  909. {fastmcp-2.9.2/tests/tools → fastmcp-2.13.2/tests/experimental/openapi_parser/server}/__init__.py +0 -0
  910. /fastmcp-2.9.2/tests/conftest.py → /fastmcp-2.13.2/tests/experimental/openapi_parser/utilities/__init__.py +0 -0
  911. {fastmcp-2.9.2 → fastmcp-2.13.2}/tests/resources/test_file_resources.py +0 -0
  912. {fastmcp-2.9.2 → fastmcp-2.13.2}/tests/server/http/test_http_middleware.py +0 -0
  913. {fastmcp-2.9.2 → fastmcp-2.13.2}/tests/server/test_app_state.py +0 -0
  914. {fastmcp-2.9.2 → fastmcp-2.13.2}/tests/server/test_logging.py +0 -0
  915. {fastmcp-2.9.2 → fastmcp-2.13.2}/tests/server/test_resource_prefix_formats.py +0 -0
  916. {fastmcp-2.9.2 → fastmcp-2.13.2}/tests/server/test_run_server.py +0 -0
  917. {fastmcp-2.9.2 → fastmcp-2.13.2}/tests/utilities/__init__.py +0 -0
  918. {fastmcp-2.9.2 → fastmcp-2.13.2}/tests/utilities/openapi/__init__.py +0 -0
  919. {fastmcp-2.9.2 → fastmcp-2.13.2}/tests/utilities/openapi/conftest.py +0 -0
  920. {fastmcp-2.9.2 → fastmcp-2.13.2}/tests/utilities/openapi/test_openapi_advanced.py +0 -0
  921. {fastmcp-2.9.2 → fastmcp-2.13.2}/tests/utilities/test_tests.py +0 -0
@@ -0,0 +1,7 @@
1
+ .pre-commit-config.yaml
2
+ .github/
3
+ docs/changelog.mdx
4
+ docs/python-sdk/
5
+ examples/
6
+ src/fastmcp/contrib/
7
+ tests/contrib/
@@ -0,0 +1,6 @@
1
+ {
2
+ "setup-worktree": [
3
+ "uv sync",
4
+ "uv run pre-commit install"
5
+ ]
6
+ }
@@ -0,0 +1,71 @@
1
+ name: 🐛 Bug Report
2
+ description: Report a bug or unexpected behavior in FastMCP
3
+ labels: [bug, pending]
4
+
5
+ body:
6
+ - type: markdown
7
+ attributes:
8
+ value: Thanks for contributing to FastMCP! 🙏
9
+
10
+ - type: markdown
11
+ attributes:
12
+ value: |
13
+ ### Before you submit
14
+
15
+ To help us help you, please:
16
+
17
+ - 🔄 **Make sure you're testing on the latest version of FastMCP** - many issues are already fixed in newer versions
18
+ - 🔍 **Check if someone else has already reported this issue** or if it's been fixed on the main branch
19
+ - 📋 **You MUST include a copy/pasteable and properly formatted MRE** (minimal reproducible example) below or your issue may be closed without response
20
+
21
+ Thanks for helping to make FastMCP better! 🚀
22
+
23
+ - type: textarea
24
+ id: description
25
+ attributes:
26
+ label: Description
27
+ description: |
28
+ Please explain what you're experiencing and what you would expect to happen instead.
29
+
30
+ Provide as much detail as possible to help us understand and solve your problem quickly.
31
+ validations:
32
+ required: true
33
+
34
+ - type: textarea
35
+ id: example
36
+ attributes:
37
+ label: Example Code
38
+ description: >
39
+ If applicable, please provide a self-contained,
40
+ [minimal, reproducible example](https://stackoverflow.com/help/minimal-reproducible-example)
41
+ demonstrating the bug. If possible, your example should be a single-file script.
42
+
43
+ placeholder: |
44
+ import asyncio
45
+ from fastmcp import FastMCP, Client
46
+
47
+ mcp = FastMCP()
48
+
49
+ async def demo():
50
+ async with Client(mcp) as client:
51
+ ... # show the bug here
52
+
53
+ if __name__ == "__main__":
54
+ asyncio.run(demo())
55
+ render: Python
56
+
57
+ - type: textarea
58
+ id: version
59
+ attributes:
60
+ label: Version Information
61
+ description: |
62
+ Please tell us about your FastMCP version, MCP version, Python version, and OS, as well as any other relevant details about your environment.
63
+
64
+ To get the basic information, run the following command in your terminal and paste the output below:
65
+
66
+ ```bash
67
+ fastmcp version --copy
68
+ ```
69
+ render: Text
70
+ validations:
71
+ required: true
@@ -0,0 +1,34 @@
1
+ name: 💡 Enhancement Request
2
+ description: Suggest an idea or improvement for FastMCP
3
+ labels: [enhancement, pending]
4
+
5
+ body:
6
+ - type: markdown
7
+ attributes:
8
+ value: Thanks for contributing to FastMCP! 🙏
9
+
10
+ - type: markdown
11
+ attributes:
12
+ value: |
13
+ ### Before you submit
14
+
15
+ To help us evaluate your enhancement request:
16
+
17
+ - 🔍 **Check if this has already been requested** - search existing issues first
18
+ - 💭 **Think about the broader impact** - how would this affect other users?
19
+ - 📋 **Consider implementation complexity** - is this a small change or a major feature?
20
+
21
+ Thanks for helping to make FastMCP better! 🚀
22
+
23
+ - type: textarea
24
+ id: description
25
+ attributes:
26
+ label: Enhancement
27
+ description: |
28
+ Please describe the enhancement:
29
+
30
+ - What problem or use case would it solve?
31
+ - How would it improve your workflow or experience with FastMCP?
32
+ - Are there any alternative solutions you've considered?
33
+ validations:
34
+ required: true
@@ -0,0 +1 @@
1
+ ../AGENTS.md
@@ -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,47 @@
1
+ changelog:
2
+ exclude:
3
+ labels:
4
+ - ignore in release notes
5
+
6
+ categories:
7
+ - title: New Features 🎉
8
+ labels:
9
+ - feature
10
+
11
+ - title: Enhancements 🔧
12
+ labels:
13
+ - enhancement
14
+ exclude:
15
+ labels:
16
+ - breaking change
17
+
18
+ - title: Fixes 🐞
19
+ labels:
20
+ - bug
21
+ exclude:
22
+ labels:
23
+ - contrib
24
+
25
+ - title: Breaking Changes 🛫
26
+ labels:
27
+ - breaking change
28
+ exclude:
29
+ labels:
30
+ - contrib
31
+
32
+ - title: Docs 📚
33
+ labels:
34
+ - documentation
35
+
36
+ - title: Examples & Contrib 💡
37
+ labels:
38
+ - example
39
+ - contrib
40
+
41
+ - title: Dependencies 📦
42
+ labels:
43
+ - dependencies
44
+
45
+ - title: Other Changes 🦾
46
+ labels:
47
+ - "*"
@@ -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