fastmcp 2.12.4__tar.gz → 2.13.0__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 (890) hide show
  1. fastmcp-2.13.0/.cursor/worktrees.json +6 -0
  2. fastmcp-2.13.0/.github/workflows/auto-close-duplicates.yml +36 -0
  3. fastmcp-2.13.0/.github/workflows/auto-close-needs-mre.yml +36 -0
  4. fastmcp-2.13.0/.github/workflows/martian-issue-triage.yml +173 -0
  5. fastmcp-2.13.0/.github/workflows/marvin-dedupe-issues.yml +92 -0
  6. fastmcp-2.13.0/.github/workflows/marvin-label-triage.yml +143 -0
  7. fastmcp-2.13.0/.github/workflows/marvin.yml +78 -0
  8. fastmcp-2.13.0/.github/workflows/publish.yml +26 -0
  9. fastmcp-2.13.0/.github/workflows/run-static.yml +54 -0
  10. fastmcp-2.13.0/.github/workflows/run-tests.yml +87 -0
  11. fastmcp-2.13.0/.github/workflows/update-config-schema.yml +91 -0
  12. fastmcp-2.13.0/.github/workflows/update-sdk-docs.yml +74 -0
  13. fastmcp-2.13.0/AGENTS.md +265 -0
  14. fastmcp-2.13.0/PKG-INFO +547 -0
  15. fastmcp-2.13.0/README.md +509 -0
  16. fastmcp-2.13.0/SECURITY.md +16 -0
  17. fastmcp-2.13.0/docs/assets/images/oauth-proxy-consent-screen.png +0 -0
  18. fastmcp-2.13.0/docs/changelog.mdx +2062 -0
  19. fastmcp-2.13.0/docs/clients/elicitation.mdx +125 -0
  20. fastmcp-2.13.0/docs/clients/sampling.mdx +156 -0
  21. fastmcp-2.13.0/docs/community/showcase.mdx +65 -0
  22. fastmcp-2.13.0/docs/deployment/http.mdx +604 -0
  23. fastmcp-2.13.0/docs/deployment/running-server.mdx +258 -0
  24. fastmcp-2.13.0/docs/development/tests.mdx +397 -0
  25. fastmcp-2.13.0/docs/development/upgrade-guide.mdx +50 -0
  26. fastmcp-2.13.0/docs/docs.json +488 -0
  27. fastmcp-2.13.0/docs/getting-started/welcome.mdx +110 -0
  28. fastmcp-2.13.0/docs/integrations/auth0.mdx +277 -0
  29. fastmcp-2.13.0/docs/integrations/aws-cognito.mdx +365 -0
  30. fastmcp-2.13.0/docs/integrations/azure.mdx +343 -0
  31. fastmcp-2.13.0/docs/integrations/chatgpt.mdx +157 -0
  32. fastmcp-2.13.0/docs/integrations/fastapi.mdx +460 -0
  33. fastmcp-2.13.0/docs/integrations/github.mdx +253 -0
  34. fastmcp-2.13.0/docs/integrations/google.mdx +267 -0
  35. fastmcp-2.13.0/docs/integrations/scalekit.mdx +187 -0
  36. fastmcp-2.13.0/docs/integrations/workos.mdx +288 -0
  37. fastmcp-2.13.0/docs/patterns/cli.mdx +577 -0
  38. fastmcp-2.13.0/docs/patterns/testing.mdx +85 -0
  39. fastmcp-2.13.0/docs/patterns/tool-transformation.mdx +707 -0
  40. fastmcp-2.13.0/docs/public/schemas/fastmcp.json/latest.json +365 -0
  41. fastmcp-2.13.0/docs/public/schemas/fastmcp.json/v1.json +365 -0
  42. fastmcp-2.13.0/docs/python-sdk/fastmcp-cli-cli.mdx +129 -0
  43. fastmcp-2.13.0/docs/python-sdk/fastmcp-cli-install-gemini_cli.mdx +68 -0
  44. fastmcp-2.13.0/docs/python-sdk/fastmcp-cli-run.mdx +101 -0
  45. fastmcp-2.13.0/docs/python-sdk/fastmcp-client-auth-oauth.mdx +104 -0
  46. fastmcp-2.13.0/docs/python-sdk/fastmcp-client-client.mdx +509 -0
  47. fastmcp-2.13.0/docs/python-sdk/fastmcp-client-logging.mdx +24 -0
  48. fastmcp-2.13.0/docs/python-sdk/fastmcp-client-oauth_callback.mdx +70 -0
  49. fastmcp-2.13.0/docs/python-sdk/fastmcp-client-transports.mdx +300 -0
  50. fastmcp-2.13.0/docs/python-sdk/fastmcp-prompts-prompt.mdx +117 -0
  51. fastmcp-2.13.0/docs/python-sdk/fastmcp-prompts-prompt_manager.mdx +71 -0
  52. fastmcp-2.13.0/docs/python-sdk/fastmcp-resources-resource.mdx +123 -0
  53. fastmcp-2.13.0/docs/python-sdk/fastmcp-resources-resource_manager.mdx +154 -0
  54. fastmcp-2.13.0/docs/python-sdk/fastmcp-resources-template.mdx +170 -0
  55. fastmcp-2.13.0/docs/python-sdk/fastmcp-resources-types.mdx +134 -0
  56. fastmcp-2.13.0/docs/python-sdk/fastmcp-server-auth-auth.mdx +210 -0
  57. fastmcp-2.13.0/docs/python-sdk/fastmcp-server-auth-jwt_issuer.mdx +104 -0
  58. fastmcp-2.13.0/docs/python-sdk/fastmcp-server-auth-middleware.mdx +26 -0
  59. fastmcp-2.13.0/docs/python-sdk/fastmcp-server-auth-oauth_proxy.mdx +409 -0
  60. fastmcp-2.13.0/docs/python-sdk/fastmcp-server-auth-oidc_proxy.mdx +82 -0
  61. fastmcp-2.13.0/docs/python-sdk/fastmcp-server-auth-providers-auth0.mdx +47 -0
  62. fastmcp-2.13.0/docs/python-sdk/fastmcp-server-auth-providers-aws.mdx +88 -0
  63. fastmcp-2.13.0/docs/python-sdk/fastmcp-server-auth-providers-azure.mdx +76 -0
  64. fastmcp-2.13.0/docs/python-sdk/fastmcp-server-auth-providers-descope.mdx +62 -0
  65. fastmcp-2.13.0/docs/python-sdk/fastmcp-server-auth-providers-github.mdx +72 -0
  66. fastmcp-2.13.0/docs/python-sdk/fastmcp-server-auth-providers-google.mdx +72 -0
  67. fastmcp-2.13.0/docs/python-sdk/fastmcp-server-auth-providers-introspection.mdx +77 -0
  68. fastmcp-2.13.0/docs/python-sdk/fastmcp-server-auth-providers-jwt.mdx +152 -0
  69. fastmcp-2.13.0/docs/python-sdk/fastmcp-server-auth-providers-scalekit.mdx +64 -0
  70. fastmcp-2.13.0/docs/python-sdk/fastmcp-server-auth-providers-supabase.mdx +62 -0
  71. fastmcp-2.13.0/docs/python-sdk/fastmcp-server-auth-providers-workos.mdx +110 -0
  72. fastmcp-2.13.0/docs/python-sdk/fastmcp-server-context.mdx +390 -0
  73. fastmcp-2.13.0/docs/python-sdk/fastmcp-server-http.mdx +103 -0
  74. fastmcp-2.13.0/docs/python-sdk/fastmcp-server-low_level.mdx +53 -0
  75. fastmcp-2.13.0/docs/python-sdk/fastmcp-server-middleware-caching.mdx +189 -0
  76. fastmcp-2.13.0/docs/python-sdk/fastmcp-server-middleware-error_handling.mdx +60 -0
  77. fastmcp-2.13.0/docs/python-sdk/fastmcp-server-middleware-logging.mdx +58 -0
  78. fastmcp-2.13.0/docs/python-sdk/fastmcp-server-middleware-middleware.mdx +112 -0
  79. fastmcp-2.13.0/docs/python-sdk/fastmcp-server-middleware-tool_injection.mdx +91 -0
  80. fastmcp-2.13.0/docs/python-sdk/fastmcp-server-server.mdx +874 -0
  81. fastmcp-2.13.0/docs/python-sdk/fastmcp-settings.mdx +84 -0
  82. fastmcp-2.13.0/docs/python-sdk/fastmcp-tools-tool.mdx +117 -0
  83. fastmcp-2.13.0/docs/python-sdk/fastmcp-tools-tool_manager.mdx +113 -0
  84. fastmcp-2.13.0/docs/python-sdk/fastmcp-tools-tool_transform.mdx +290 -0
  85. fastmcp-2.13.0/docs/python-sdk/fastmcp-utilities-cli.mdx +55 -0
  86. fastmcp-2.13.0/docs/python-sdk/fastmcp-utilities-components.mdx +121 -0
  87. fastmcp-2.13.0/docs/python-sdk/fastmcp-utilities-inspect.mdx +143 -0
  88. fastmcp-2.13.0/docs/python-sdk/fastmcp-utilities-json_schema.mdx +25 -0
  89. fastmcp-2.13.0/docs/python-sdk/fastmcp-utilities-logging.mdx +58 -0
  90. fastmcp-2.13.0/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-mcp_server_config.mdx +235 -0
  91. fastmcp-2.13.0/docs/python-sdk/fastmcp-utilities-tests.mdx +106 -0
  92. fastmcp-2.13.0/docs/python-sdk/fastmcp-utilities-types.mdx +147 -0
  93. fastmcp-2.13.0/docs/python-sdk/fastmcp-utilities-ui.mdx +139 -0
  94. fastmcp-2.13.0/docs/servers/auth/authentication.mdx +266 -0
  95. fastmcp-2.13.0/docs/servers/auth/full-oauth-server.mdx +229 -0
  96. fastmcp-2.13.0/docs/servers/auth/oauth-proxy.mdx +573 -0
  97. fastmcp-2.13.0/docs/servers/auth/oidc-proxy.mdx +247 -0
  98. fastmcp-2.13.0/docs/servers/auth/remote-oauth.mdx +226 -0
  99. fastmcp-2.13.0/docs/servers/auth/token-verification.mdx +278 -0
  100. fastmcp-2.13.0/docs/servers/composition.mdx +381 -0
  101. fastmcp-2.13.0/docs/servers/context.mdx +458 -0
  102. fastmcp-2.13.0/docs/servers/elicitation.mdx +319 -0
  103. fastmcp-2.13.0/docs/servers/icons.mdx +129 -0
  104. fastmcp-2.13.0/docs/servers/logging.mdx +249 -0
  105. fastmcp-2.13.0/docs/servers/middleware.mdx +756 -0
  106. fastmcp-2.13.0/docs/servers/prompts.mdx +353 -0
  107. fastmcp-2.13.0/docs/servers/proxy.mdx +352 -0
  108. fastmcp-2.13.0/docs/servers/resources.mdx +663 -0
  109. fastmcp-2.13.0/docs/servers/sampling.mdx +270 -0
  110. fastmcp-2.13.0/docs/servers/server.mdx +439 -0
  111. fastmcp-2.13.0/docs/servers/storage-backends.mdx +271 -0
  112. fastmcp-2.13.0/docs/servers/tools.mdx +858 -0
  113. fastmcp-2.13.0/docs/updates.mdx +313 -0
  114. fastmcp-2.13.0/examples/auth/authkit_dcr/README.md +25 -0
  115. fastmcp-2.13.0/examples/auth/authkit_dcr/server.py +33 -0
  116. fastmcp-2.13.0/examples/auth/scalekit_oauth/README.md +54 -0
  117. fastmcp-2.13.0/examples/auth/scalekit_oauth/client.py +41 -0
  118. fastmcp-2.13.0/examples/auth/scalekit_oauth/server.py +48 -0
  119. fastmcp-2.13.0/examples/auth/workos_oauth/README.md +27 -0
  120. fastmcp-2.13.0/examples/auth/workos_oauth/client.py +32 -0
  121. fastmcp-2.13.0/examples/memory.py +346 -0
  122. fastmcp-2.13.0/examples/mount_example.py +116 -0
  123. fastmcp-2.13.0/examples/serializer.py +32 -0
  124. fastmcp-2.13.0/examples/smart_home/src/smart_home/hub.py +30 -0
  125. fastmcp-2.13.0/examples/smart_home/src/smart_home/lights/hue_utils.py +34 -0
  126. fastmcp-2.13.0/examples/smart_home/src/smart_home/settings.py +12 -0
  127. fastmcp-2.13.0/logo.py +25 -0
  128. fastmcp-2.13.0/pyproject.toml +148 -0
  129. fastmcp-2.13.0/scripts/auto_close_needs_mre.py +384 -0
  130. fastmcp-2.13.0/src/fastmcp/cli/cli.py +879 -0
  131. fastmcp-2.13.0/src/fastmcp/cli/install/claude_code.py +244 -0
  132. fastmcp-2.13.0/src/fastmcp/cli/install/claude_desktop.py +214 -0
  133. fastmcp-2.13.0/src/fastmcp/cli/install/cursor.py +331 -0
  134. fastmcp-2.13.0/src/fastmcp/cli/install/gemini_cli.py +241 -0
  135. fastmcp-2.13.0/src/fastmcp/cli/install/mcp_json.py +196 -0
  136. fastmcp-2.13.0/src/fastmcp/cli/run.py +225 -0
  137. fastmcp-2.13.0/src/fastmcp/client/auth/oauth.py +319 -0
  138. fastmcp-2.13.0/src/fastmcp/client/client.py +949 -0
  139. fastmcp-2.13.0/src/fastmcp/client/logging.py +54 -0
  140. fastmcp-2.13.0/src/fastmcp/client/oauth_callback.py +242 -0
  141. fastmcp-2.13.0/src/fastmcp/client/transports.py +1119 -0
  142. fastmcp-2.13.0/src/fastmcp/contrib/component_manager/component_service.py +225 -0
  143. fastmcp-2.13.0/src/fastmcp/contrib/mcp_mixin/README.md +147 -0
  144. fastmcp-2.13.0/src/fastmcp/contrib/mcp_mixin/mcp_mixin.py +276 -0
  145. fastmcp-2.13.0/src/fastmcp/experimental/utilities/openapi/json_schema_converter.py +344 -0
  146. fastmcp-2.13.0/src/fastmcp/experimental/utilities/openapi/parser.py +820 -0
  147. fastmcp-2.13.0/src/fastmcp/prompts/prompt.py +385 -0
  148. fastmcp-2.13.0/src/fastmcp/prompts/prompt_manager.py +118 -0
  149. fastmcp-2.13.0/src/fastmcp/resources/resource.py +225 -0
  150. fastmcp-2.13.0/src/fastmcp/resources/resource_manager.py +343 -0
  151. fastmcp-2.13.0/src/fastmcp/resources/template.py +403 -0
  152. fastmcp-2.13.0/src/fastmcp/resources/types.py +157 -0
  153. fastmcp-2.13.0/src/fastmcp/server/auth/auth.py +380 -0
  154. fastmcp-2.13.0/src/fastmcp/server/auth/handlers/authorize.py +324 -0
  155. fastmcp-2.13.0/src/fastmcp/server/auth/jwt_issuer.py +236 -0
  156. fastmcp-2.13.0/src/fastmcp/server/auth/middleware.py +96 -0
  157. fastmcp-2.13.0/src/fastmcp/server/auth/oauth_proxy.py +2032 -0
  158. fastmcp-2.13.0/src/fastmcp/server/auth/oidc_proxy.py +365 -0
  159. fastmcp-2.13.0/src/fastmcp/server/auth/providers/auth0.py +193 -0
  160. fastmcp-2.13.0/src/fastmcp/server/auth/providers/aws.py +263 -0
  161. fastmcp-2.13.0/src/fastmcp/server/auth/providers/azure.py +316 -0
  162. fastmcp-2.13.0/src/fastmcp/server/auth/providers/descope.py +170 -0
  163. fastmcp-2.13.0/src/fastmcp/server/auth/providers/github.py +304 -0
  164. fastmcp-2.13.0/src/fastmcp/server/auth/providers/google.py +323 -0
  165. fastmcp-2.13.0/src/fastmcp/server/auth/providers/introspection.py +281 -0
  166. fastmcp-2.13.0/src/fastmcp/server/auth/providers/jwt.py +553 -0
  167. fastmcp-2.13.0/src/fastmcp/server/auth/providers/scalekit.py +179 -0
  168. fastmcp-2.13.0/src/fastmcp/server/auth/providers/supabase.py +172 -0
  169. fastmcp-2.13.0/src/fastmcp/server/auth/providers/workos.py +427 -0
  170. fastmcp-2.13.0/src/fastmcp/server/context.py +763 -0
  171. fastmcp-2.13.0/src/fastmcp/server/http.py +361 -0
  172. fastmcp-2.13.0/src/fastmcp/server/low_level.py +156 -0
  173. fastmcp-2.13.0/src/fastmcp/server/middleware/caching.py +469 -0
  174. fastmcp-2.13.0/src/fastmcp/server/middleware/error_handling.py +210 -0
  175. fastmcp-2.13.0/src/fastmcp/server/middleware/logging.py +256 -0
  176. fastmcp-2.13.0/src/fastmcp/server/middleware/middleware.py +208 -0
  177. fastmcp-2.13.0/src/fastmcp/server/middleware/rate_limiting.py +231 -0
  178. fastmcp-2.13.0/src/fastmcp/server/middleware/tool_injection.py +116 -0
  179. fastmcp-2.13.0/src/fastmcp/server/proxy.py +683 -0
  180. fastmcp-2.13.0/src/fastmcp/server/server.py +2891 -0
  181. fastmcp-2.13.0/src/fastmcp/settings.py +414 -0
  182. fastmcp-2.13.0/src/fastmcp/tools/tool.py +562 -0
  183. fastmcp-2.13.0/src/fastmcp/tools/tool_manager.py +172 -0
  184. fastmcp-2.13.0/src/fastmcp/tools/tool_transform.py +952 -0
  185. fastmcp-2.13.0/src/fastmcp/utilities/cli.py +275 -0
  186. fastmcp-2.13.0/src/fastmcp/utilities/components.py +181 -0
  187. fastmcp-2.13.0/src/fastmcp/utilities/inspect.py +506 -0
  188. fastmcp-2.13.0/src/fastmcp/utilities/logging.py +230 -0
  189. fastmcp-2.13.0/src/fastmcp/utilities/mcp_server_config/v1/environments/uv.py +271 -0
  190. fastmcp-2.13.0/src/fastmcp/utilities/mcp_server_config/v1/mcp_server_config.py +447 -0
  191. fastmcp-2.13.0/src/fastmcp/utilities/mcp_server_config/v1/schema.json +365 -0
  192. fastmcp-2.13.0/src/fastmcp/utilities/tests.py +282 -0
  193. fastmcp-2.13.0/src/fastmcp/utilities/types.py +426 -0
  194. fastmcp-2.13.0/src/fastmcp/utilities/ui.py +617 -0
  195. fastmcp-2.13.0/tests/cli/test_cli.py +616 -0
  196. fastmcp-2.13.0/tests/cli/test_config.py +434 -0
  197. fastmcp-2.13.0/tests/cli/test_cursor.py +357 -0
  198. fastmcp-2.13.0/tests/cli/test_mcp_server_config_integration.py +293 -0
  199. fastmcp-2.13.0/tests/cli/test_run.py +602 -0
  200. fastmcp-2.13.0/tests/cli/test_server_args.py +135 -0
  201. fastmcp-2.13.0/tests/client/auth/test_oauth_client.py +124 -0
  202. fastmcp-2.13.0/tests/client/test_client.py +1028 -0
  203. fastmcp-2.13.0/tests/client/test_logs.py +242 -0
  204. fastmcp-2.13.0/tests/client/test_oauth_callback_xss.py +159 -0
  205. fastmcp-2.13.0/tests/client/test_openapi_experimental.py +194 -0
  206. fastmcp-2.13.0/tests/client/test_openapi_legacy.py +190 -0
  207. fastmcp-2.13.0/tests/client/test_sse.py +187 -0
  208. fastmcp-2.13.0/tests/client/test_stdio.py +364 -0
  209. fastmcp-2.13.0/tests/client/test_streamable_http.py +254 -0
  210. fastmcp-2.13.0/tests/client/transports/test_uv_transport.py +98 -0
  211. fastmcp-2.13.0/tests/contrib/test_mcp_mixin.py +322 -0
  212. fastmcp-2.13.0/tests/experimental/openapi_parser/server/openapi/test_comprehensive.py +695 -0
  213. fastmcp-2.13.0/tests/experimental/openapi_parser/server/openapi/test_deepobject_style.py +333 -0
  214. fastmcp-2.13.0/tests/experimental/openapi_parser/server/openapi/test_openapi_features.py +401 -0
  215. fastmcp-2.13.0/tests/experimental/openapi_parser/server/openapi/test_openapi_performance.py +143 -0
  216. fastmcp-2.13.0/tests/experimental/openapi_parser/server/openapi/test_parameter_collisions.py +212 -0
  217. fastmcp-2.13.0/tests/experimental/openapi_parser/server/openapi/test_performance_comparison.py +285 -0
  218. fastmcp-2.13.0/tests/experimental/openapi_parser/server/openapi/test_server.py +337 -0
  219. fastmcp-2.13.0/tests/experimental/openapi_parser/utilities/openapi/test_nullable_fields.py +375 -0
  220. fastmcp-2.13.0/tests/experimental/openapi_parser/utilities/openapi/test_transitive_references.py +842 -0
  221. fastmcp-2.13.0/tests/integration_tests/auth/test_github_provider_integration.py +400 -0
  222. fastmcp-2.13.0/tests/integration_tests/test_github_mcp_remote.py +123 -0
  223. fastmcp-2.13.0/tests/resources/test_resource_template.py +956 -0
  224. fastmcp-2.13.0/tests/resources/test_resources.py +116 -0
  225. fastmcp-2.13.0/tests/server/auth/providers/test_auth0.py +284 -0
  226. fastmcp-2.13.0/tests/server/auth/providers/test_aws.py +251 -0
  227. fastmcp-2.13.0/tests/server/auth/providers/test_azure.py +322 -0
  228. fastmcp-2.13.0/tests/server/auth/providers/test_descope.py +163 -0
  229. fastmcp-2.13.0/tests/server/auth/providers/test_github.py +245 -0
  230. fastmcp-2.13.0/tests/server/auth/providers/test_google.py +121 -0
  231. fastmcp-2.13.0/tests/server/auth/providers/test_introspection.py +463 -0
  232. fastmcp-2.13.0/tests/server/auth/providers/test_scalekit.py +155 -0
  233. fastmcp-2.13.0/tests/server/auth/providers/test_supabase.py +165 -0
  234. fastmcp-2.13.0/tests/server/auth/providers/test_workos.py +208 -0
  235. fastmcp-2.13.0/tests/server/auth/test_auth_provider.py +105 -0
  236. fastmcp-2.13.0/tests/server/auth/test_enhanced_error_responses.py +364 -0
  237. fastmcp-2.13.0/tests/server/auth/test_jwt_issuer.py +230 -0
  238. fastmcp-2.13.0/tests/server/auth/test_jwt_provider.py +1078 -0
  239. fastmcp-2.13.0/tests/server/auth/test_oauth_consent_flow.py +875 -0
  240. fastmcp-2.13.0/tests/server/auth/test_oauth_mounting.py +196 -0
  241. fastmcp-2.13.0/tests/server/auth/test_oauth_proxy.py +1311 -0
  242. fastmcp-2.13.0/tests/server/auth/test_oauth_proxy_redirect_validation.py +201 -0
  243. fastmcp-2.13.0/tests/server/auth/test_oauth_proxy_storage.py +207 -0
  244. fastmcp-2.13.0/tests/server/auth/test_oidc_proxy.py +651 -0
  245. fastmcp-2.13.0/tests/server/auth/test_remote_auth_provider.py +485 -0
  246. fastmcp-2.13.0/tests/server/http/test_custom_routes.py +105 -0
  247. fastmcp-2.13.0/tests/server/http/test_http_auth_middleware.py +93 -0
  248. fastmcp-2.13.0/tests/server/http/test_http_dependencies.py +122 -0
  249. fastmcp-2.13.0/tests/server/middleware/test_caching.py +507 -0
  250. fastmcp-2.13.0/tests/server/middleware/test_error_handling.py +635 -0
  251. fastmcp-2.13.0/tests/server/middleware/test_initialization_middleware.py +251 -0
  252. fastmcp-2.13.0/tests/server/middleware/test_logging.py +670 -0
  253. fastmcp-2.13.0/tests/server/middleware/test_middleware.py +905 -0
  254. fastmcp-2.13.0/tests/server/middleware/test_rate_limiting.py +456 -0
  255. fastmcp-2.13.0/tests/server/middleware/test_tool_injection.py +498 -0
  256. fastmcp-2.13.0/tests/server/openapi/test_advanced_behavior.py +315 -0
  257. fastmcp-2.13.0/tests/server/openapi/test_basic_functionality.py +369 -0
  258. fastmcp-2.13.0/tests/server/openapi/test_configuration.py +933 -0
  259. fastmcp-2.13.0/tests/server/openapi/test_description_propagation.py +796 -0
  260. fastmcp-2.13.0/tests/server/openapi/test_openapi_path_parameters.py +624 -0
  261. fastmcp-2.13.0/tests/server/proxy/test_proxy_server.py +740 -0
  262. fastmcp-2.13.0/tests/server/test_context.py +180 -0
  263. fastmcp-2.13.0/tests/server/test_file_server.py +127 -0
  264. fastmcp-2.13.0/tests/server/test_icons.py +342 -0
  265. fastmcp-2.13.0/tests/server/test_input_validation.py +353 -0
  266. fastmcp-2.13.0/tests/server/test_mount.py +1241 -0
  267. fastmcp-2.13.0/tests/server/test_server.py +1686 -0
  268. fastmcp-2.13.0/tests/server/test_server_interactions.py +2774 -0
  269. fastmcp-2.13.0/tests/server/test_server_lifespan.py +68 -0
  270. fastmcp-2.13.0/tests/server/test_tool_annotations.py +221 -0
  271. fastmcp-2.13.0/tests/server/test_tool_transformation.py +68 -0
  272. fastmcp-2.13.0/tests/tools/test_tool.py +1607 -0
  273. fastmcp-2.13.0/tests/tools/test_tool_manager.py +1053 -0
  274. fastmcp-2.13.0/tests/utilities/test_cli.py +195 -0
  275. fastmcp-2.13.0/tests/utilities/test_inspect.py +1112 -0
  276. fastmcp-2.13.0/uv.lock +2413 -0
  277. fastmcp-2.12.4/.github/workflows/auto-close-duplicates.yml +0 -28
  278. fastmcp-2.12.4/.github/workflows/marvin-dedupe-issues.yml +0 -80
  279. fastmcp-2.12.4/.github/workflows/marvin-label-triage.yml +0 -157
  280. fastmcp-2.12.4/.github/workflows/marvin.yml +0 -71
  281. fastmcp-2.12.4/.github/workflows/publish.yml +0 -26
  282. fastmcp-2.12.4/.github/workflows/run-static.yml +0 -54
  283. fastmcp-2.12.4/.github/workflows/run-tests.yml +0 -81
  284. fastmcp-2.12.4/.github/workflows/update-config-schema.yml +0 -91
  285. fastmcp-2.12.4/.github/workflows/update-sdk-docs.yml +0 -74
  286. fastmcp-2.12.4/AGENTS.md +0 -265
  287. fastmcp-2.12.4/PKG-INFO +0 -543
  288. fastmcp-2.12.4/README.md +0 -507
  289. fastmcp-2.12.4/README_OPENAPI.md +0 -246
  290. fastmcp-2.12.4/Windows_Notes.md +0 -58
  291. fastmcp-2.12.4/docs/changelog.mdx +0 -1895
  292. fastmcp-2.12.4/docs/clients/elicitation.mdx +0 -126
  293. fastmcp-2.12.4/docs/clients/sampling.mdx +0 -201
  294. fastmcp-2.12.4/docs/community/showcase.mdx +0 -59
  295. fastmcp-2.12.4/docs/deployment/running-server.mdx +0 -258
  296. fastmcp-2.12.4/docs/deployment/self-hosted.mdx +0 -209
  297. fastmcp-2.12.4/docs/development/tests.mdx +0 -350
  298. fastmcp-2.12.4/docs/docs.json +0 -443
  299. fastmcp-2.12.4/docs/getting-started/welcome.mdx +0 -110
  300. fastmcp-2.12.4/docs/integrations/asgi.mdx +0 -213
  301. fastmcp-2.12.4/docs/integrations/auth0.mdx +0 -231
  302. fastmcp-2.12.4/docs/integrations/aws-cognito.mdx +0 -322
  303. fastmcp-2.12.4/docs/integrations/azure.mdx +0 -254
  304. fastmcp-2.12.4/docs/integrations/chatgpt.mdx +0 -159
  305. fastmcp-2.12.4/docs/integrations/fastapi.mdx +0 -446
  306. fastmcp-2.12.4/docs/integrations/github.mdx +0 -209
  307. fastmcp-2.12.4/docs/integrations/google.mdx +0 -222
  308. fastmcp-2.12.4/docs/integrations/workos.mdx +0 -242
  309. fastmcp-2.12.4/docs/patterns/cli.mdx +0 -577
  310. fastmcp-2.12.4/docs/patterns/tool-transformation.mdx +0 -576
  311. fastmcp-2.12.4/docs/public/schemas/fastmcp.json/latest.json +0 -362
  312. fastmcp-2.12.4/docs/public/schemas/fastmcp.json/v1.json +0 -362
  313. fastmcp-2.12.4/docs/python-sdk/fastmcp-cli-claude.mdx +0 -43
  314. fastmcp-2.12.4/docs/python-sdk/fastmcp-cli-cli.mdx +0 -129
  315. fastmcp-2.12.4/docs/python-sdk/fastmcp-cli-install-gemini_cli.mdx +0 -68
  316. fastmcp-2.12.4/docs/python-sdk/fastmcp-cli-run.mdx +0 -91
  317. fastmcp-2.12.4/docs/python-sdk/fastmcp-client-auth-oauth.mdx +0 -165
  318. fastmcp-2.12.4/docs/python-sdk/fastmcp-client-client.mdx +0 -507
  319. fastmcp-2.12.4/docs/python-sdk/fastmcp-client-logging.mdx +0 -24
  320. fastmcp-2.12.4/docs/python-sdk/fastmcp-client-oauth_callback.mdx +0 -63
  321. fastmcp-2.12.4/docs/python-sdk/fastmcp-client-transports.mdx +0 -300
  322. fastmcp-2.12.4/docs/python-sdk/fastmcp-prompts-prompt.mdx +0 -114
  323. fastmcp-2.12.4/docs/python-sdk/fastmcp-prompts-prompt_manager.mdx +0 -89
  324. fastmcp-2.12.4/docs/python-sdk/fastmcp-resources-resource.mdx +0 -120
  325. fastmcp-2.12.4/docs/python-sdk/fastmcp-resources-resource_manager.mdx +0 -181
  326. fastmcp-2.12.4/docs/python-sdk/fastmcp-resources-template.mdx +0 -143
  327. fastmcp-2.12.4/docs/python-sdk/fastmcp-resources-types.mdx +0 -134
  328. fastmcp-2.12.4/docs/python-sdk/fastmcp-server-auth-auth.mdx +0 -181
  329. fastmcp-2.12.4/docs/python-sdk/fastmcp-server-auth-oauth_proxy.mdx +0 -305
  330. fastmcp-2.12.4/docs/python-sdk/fastmcp-server-auth-providers-azure.mdx +0 -63
  331. fastmcp-2.12.4/docs/python-sdk/fastmcp-server-auth-providers-github.mdx +0 -72
  332. fastmcp-2.12.4/docs/python-sdk/fastmcp-server-auth-providers-google.mdx +0 -72
  333. fastmcp-2.12.4/docs/python-sdk/fastmcp-server-auth-providers-jwt.mdx +0 -152
  334. fastmcp-2.12.4/docs/python-sdk/fastmcp-server-auth-providers-workos.mdx +0 -110
  335. fastmcp-2.12.4/docs/python-sdk/fastmcp-server-context.mdx +0 -340
  336. fastmcp-2.12.4/docs/python-sdk/fastmcp-server-http.mdx +0 -103
  337. fastmcp-2.12.4/docs/python-sdk/fastmcp-server-low_level.mdx +0 -18
  338. fastmcp-2.12.4/docs/python-sdk/fastmcp-server-middleware-error_handling.mdx +0 -60
  339. fastmcp-2.12.4/docs/python-sdk/fastmcp-server-middleware-logging.mdx +0 -63
  340. fastmcp-2.12.4/docs/python-sdk/fastmcp-server-middleware-middleware.mdx +0 -106
  341. fastmcp-2.12.4/docs/python-sdk/fastmcp-server-server.mdx +0 -851
  342. fastmcp-2.12.4/docs/python-sdk/fastmcp-settings.mdx +0 -78
  343. fastmcp-2.12.4/docs/python-sdk/fastmcp-tools-tool.mdx +0 -117
  344. fastmcp-2.12.4/docs/python-sdk/fastmcp-tools-tool_manager.mdx +0 -131
  345. fastmcp-2.12.4/docs/python-sdk/fastmcp-tools-tool_transform.mdx +0 -290
  346. fastmcp-2.12.4/docs/python-sdk/fastmcp-utilities-cli.mdx +0 -55
  347. fastmcp-2.12.4/docs/python-sdk/fastmcp-utilities-components.mdx +0 -121
  348. fastmcp-2.12.4/docs/python-sdk/fastmcp-utilities-inspect.mdx +0 -143
  349. fastmcp-2.12.4/docs/python-sdk/fastmcp-utilities-json_schema.mdx +0 -25
  350. fastmcp-2.12.4/docs/python-sdk/fastmcp-utilities-logging.mdx +0 -42
  351. fastmcp-2.12.4/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-mcp_server_config.mdx +0 -235
  352. fastmcp-2.12.4/docs/python-sdk/fastmcp-utilities-tests.mdx +0 -85
  353. fastmcp-2.12.4/docs/python-sdk/fastmcp-utilities-types.mdx +0 -147
  354. fastmcp-2.12.4/docs/servers/auth/authentication.mdx +0 -267
  355. fastmcp-2.12.4/docs/servers/auth/full-oauth-server.mdx +0 -229
  356. fastmcp-2.12.4/docs/servers/auth/oauth-proxy.mdx +0 -418
  357. fastmcp-2.12.4/docs/servers/auth/oidc-proxy.mdx +0 -204
  358. fastmcp-2.12.4/docs/servers/auth/remote-oauth.mdx +0 -221
  359. fastmcp-2.12.4/docs/servers/auth/token-verification.mdx +0 -247
  360. fastmcp-2.12.4/docs/servers/composition.mdx +0 -321
  361. fastmcp-2.12.4/docs/servers/context.mdx +0 -428
  362. fastmcp-2.12.4/docs/servers/elicitation.mdx +0 -320
  363. fastmcp-2.12.4/docs/servers/logging.mdx +0 -236
  364. fastmcp-2.12.4/docs/servers/middleware.mdx +0 -641
  365. fastmcp-2.12.4/docs/servers/prompts.mdx +0 -343
  366. fastmcp-2.12.4/docs/servers/proxy.mdx +0 -335
  367. fastmcp-2.12.4/docs/servers/resources.mdx +0 -612
  368. fastmcp-2.12.4/docs/servers/sampling.mdx +0 -191
  369. fastmcp-2.12.4/docs/servers/server.mdx +0 -413
  370. fastmcp-2.12.4/docs/servers/tools.mdx +0 -1095
  371. fastmcp-2.12.4/docs/updates.mdx +0 -239
  372. fastmcp-2.12.4/examples/auth/workos_oauth/README.md +0 -159
  373. fastmcp-2.12.4/examples/memory.py +0 -346
  374. fastmcp-2.12.4/examples/mount_example.py +0 -116
  375. fastmcp-2.12.4/examples/serializer.py +0 -32
  376. fastmcp-2.12.4/examples/smart_home/src/smart_home/hub.py +0 -35
  377. fastmcp-2.12.4/examples/smart_home/src/smart_home/lights/hue_utils.py +0 -34
  378. fastmcp-2.12.4/examples/smart_home/src/smart_home/settings.py +0 -12
  379. fastmcp-2.12.4/pyproject.toml +0 -146
  380. fastmcp-2.12.4/src/fastmcp/cli/claude.py +0 -135
  381. fastmcp-2.12.4/src/fastmcp/cli/cli.py +0 -878
  382. fastmcp-2.12.4/src/fastmcp/cli/install/claude_code.py +0 -244
  383. fastmcp-2.12.4/src/fastmcp/cli/install/claude_desktop.py +0 -214
  384. fastmcp-2.12.4/src/fastmcp/cli/install/cursor.py +0 -331
  385. fastmcp-2.12.4/src/fastmcp/cli/install/gemini_cli.py +0 -241
  386. fastmcp-2.12.4/src/fastmcp/cli/install/mcp_json.py +0 -196
  387. fastmcp-2.12.4/src/fastmcp/cli/run.py +0 -220
  388. fastmcp-2.12.4/src/fastmcp/client/auth/oauth.py +0 -427
  389. fastmcp-2.12.4/src/fastmcp/client/client.py +0 -949
  390. fastmcp-2.12.4/src/fastmcp/client/logging.py +0 -50
  391. fastmcp-2.12.4/src/fastmcp/client/oauth_callback.py +0 -328
  392. fastmcp-2.12.4/src/fastmcp/client/transports.py +0 -1064
  393. fastmcp-2.12.4/src/fastmcp/contrib/component_manager/component_service.py +0 -225
  394. fastmcp-2.12.4/src/fastmcp/contrib/mcp_mixin/README.md +0 -116
  395. fastmcp-2.12.4/src/fastmcp/contrib/mcp_mixin/mcp_mixin.py +0 -264
  396. fastmcp-2.12.4/src/fastmcp/experimental/utilities/openapi/json_schema_converter.py +0 -340
  397. fastmcp-2.12.4/src/fastmcp/experimental/utilities/openapi/parser.py +0 -800
  398. fastmcp-2.12.4/src/fastmcp/prompts/prompt.py +0 -378
  399. fastmcp-2.12.4/src/fastmcp/prompts/prompt_manager.py +0 -203
  400. fastmcp-2.12.4/src/fastmcp/resources/resource.py +0 -218
  401. fastmcp-2.12.4/src/fastmcp/resources/resource_manager.py +0 -502
  402. fastmcp-2.12.4/src/fastmcp/resources/template.py +0 -313
  403. fastmcp-2.12.4/src/fastmcp/resources/types.py +0 -151
  404. fastmcp-2.12.4/src/fastmcp/server/auth/auth.py +0 -372
  405. fastmcp-2.12.4/src/fastmcp/server/auth/oauth_proxy.py +0 -1018
  406. fastmcp-2.12.4/src/fastmcp/server/auth/oidc_proxy.py +0 -348
  407. fastmcp-2.12.4/src/fastmcp/server/auth/providers/auth0.py +0 -174
  408. fastmcp-2.12.4/src/fastmcp/server/auth/providers/aws.py +0 -237
  409. fastmcp-2.12.4/src/fastmcp/server/auth/providers/azure.py +0 -265
  410. fastmcp-2.12.4/src/fastmcp/server/auth/providers/descope.py +0 -172
  411. fastmcp-2.12.4/src/fastmcp/server/auth/providers/github.py +0 -283
  412. fastmcp-2.12.4/src/fastmcp/server/auth/providers/google.py +0 -302
  413. fastmcp-2.12.4/src/fastmcp/server/auth/providers/jwt.py +0 -547
  414. fastmcp-2.12.4/src/fastmcp/server/auth/providers/workos.py +0 -409
  415. fastmcp-2.12.4/src/fastmcp/server/context.py +0 -677
  416. fastmcp-2.12.4/src/fastmcp/server/http.py +0 -321
  417. fastmcp-2.12.4/src/fastmcp/server/low_level.py +0 -37
  418. fastmcp-2.12.4/src/fastmcp/server/middleware/error_handling.py +0 -206
  419. fastmcp-2.12.4/src/fastmcp/server/middleware/logging.py +0 -245
  420. fastmcp-2.12.4/src/fastmcp/server/middleware/middleware.py +0 -195
  421. fastmcp-2.12.4/src/fastmcp/server/middleware/rate_limiting.py +0 -231
  422. fastmcp-2.12.4/src/fastmcp/server/proxy.py +0 -683
  423. fastmcp-2.12.4/src/fastmcp/server/server.py +0 -2415
  424. fastmcp-2.12.4/src/fastmcp/settings.py +0 -400
  425. fastmcp-2.12.4/src/fastmcp/tools/tool.py +0 -558
  426. fastmcp-2.12.4/src/fastmcp/tools/tool_manager.py +0 -254
  427. fastmcp-2.12.4/src/fastmcp/tools/tool_transform.py +0 -952
  428. fastmcp-2.12.4/src/fastmcp/utilities/cli.py +0 -235
  429. fastmcp-2.12.4/src/fastmcp/utilities/components.py +0 -176
  430. fastmcp-2.12.4/src/fastmcp/utilities/inspect.py +0 -450
  431. fastmcp-2.12.4/src/fastmcp/utilities/logging.py +0 -120
  432. fastmcp-2.12.4/src/fastmcp/utilities/mcp_server_config/v1/environments/uv.py +0 -271
  433. fastmcp-2.12.4/src/fastmcp/utilities/mcp_server_config/v1/mcp_server_config.py +0 -447
  434. fastmcp-2.12.4/src/fastmcp/utilities/mcp_server_config/v1/schema.json +0 -362
  435. fastmcp-2.12.4/src/fastmcp/utilities/storage.py +0 -204
  436. fastmcp-2.12.4/src/fastmcp/utilities/tests.py +0 -199
  437. fastmcp-2.12.4/src/fastmcp/utilities/types.py +0 -426
  438. fastmcp-2.12.4/tests/cli/test_cli.py +0 -617
  439. fastmcp-2.12.4/tests/cli/test_config.py +0 -429
  440. fastmcp-2.12.4/tests/cli/test_cursor.py +0 -357
  441. fastmcp-2.12.4/tests/cli/test_mcp_server_config_integration.py +0 -293
  442. fastmcp-2.12.4/tests/cli/test_run.py +0 -398
  443. fastmcp-2.12.4/tests/cli/test_server_args.py +0 -139
  444. fastmcp-2.12.4/tests/client/auth/test_oauth_client.py +0 -128
  445. fastmcp-2.12.4/tests/client/auth/test_oauth_token_expiry.py +0 -163
  446. fastmcp-2.12.4/tests/client/test_client.py +0 -1034
  447. fastmcp-2.12.4/tests/client/test_logs.py +0 -193
  448. fastmcp-2.12.4/tests/client/test_openapi_experimental.py +0 -201
  449. fastmcp-2.12.4/tests/client/test_openapi_legacy.py +0 -198
  450. fastmcp-2.12.4/tests/client/test_sse.py +0 -166
  451. fastmcp-2.12.4/tests/client/test_stdio.py +0 -255
  452. fastmcp-2.12.4/tests/client/test_streamable_http.py +0 -247
  453. fastmcp-2.12.4/tests/client/transports/test_uv_transport.py +0 -98
  454. fastmcp-2.12.4/tests/contrib/test_mcp_mixin.py +0 -255
  455. fastmcp-2.12.4/tests/experimental/openapi_parser/server/openapi/test_comprehensive.py +0 -706
  456. fastmcp-2.12.4/tests/experimental/openapi_parser/server/openapi/test_deepobject_style.py +0 -338
  457. fastmcp-2.12.4/tests/experimental/openapi_parser/server/openapi/test_openapi_features.py +0 -405
  458. fastmcp-2.12.4/tests/experimental/openapi_parser/server/openapi/test_openapi_performance.py +0 -142
  459. fastmcp-2.12.4/tests/experimental/openapi_parser/server/openapi/test_parameter_collisions.py +0 -215
  460. fastmcp-2.12.4/tests/experimental/openapi_parser/server/openapi/test_performance_comparison.py +0 -291
  461. fastmcp-2.12.4/tests/experimental/openapi_parser/server/openapi/test_server.py +0 -340
  462. fastmcp-2.12.4/tests/experimental/openapi_parser/utilities/openapi/test_nullable_fields.py +0 -245
  463. fastmcp-2.12.4/tests/experimental/openapi_parser/utilities/openapi/test_transitive_references.py +0 -788
  464. fastmcp-2.12.4/tests/integration_tests/auth/test_github_provider_integration.py +0 -356
  465. fastmcp-2.12.4/tests/integration_tests/test_github_mcp_remote.py +0 -117
  466. fastmcp-2.12.4/tests/resources/test_resource_template.py +0 -709
  467. fastmcp-2.12.4/tests/resources/test_resources.py +0 -115
  468. fastmcp-2.12.4/tests/server/auth/providers/test_auth0.py +0 -277
  469. fastmcp-2.12.4/tests/server/auth/providers/test_aws.py +0 -245
  470. fastmcp-2.12.4/tests/server/auth/providers/test_azure.py +0 -164
  471. fastmcp-2.12.4/tests/server/auth/providers/test_descope.py +0 -170
  472. fastmcp-2.12.4/tests/server/auth/providers/test_github.py +0 -240
  473. fastmcp-2.12.4/tests/server/auth/providers/test_google.py +0 -116
  474. fastmcp-2.12.4/tests/server/auth/providers/test_workos.py +0 -208
  475. fastmcp-2.12.4/tests/server/auth/test_auth_provider.py +0 -102
  476. fastmcp-2.12.4/tests/server/auth/test_jwt_provider.py +0 -1088
  477. fastmcp-2.12.4/tests/server/auth/test_oauth_proxy.py +0 -975
  478. fastmcp-2.12.4/tests/server/auth/test_oauth_proxy_redirect_validation.py +0 -198
  479. fastmcp-2.12.4/tests/server/auth/test_oauth_proxy_storage.py +0 -213
  480. fastmcp-2.12.4/tests/server/auth/test_oidc_proxy.py +0 -645
  481. fastmcp-2.12.4/tests/server/auth/test_remote_auth_provider.py +0 -467
  482. fastmcp-2.12.4/tests/server/http/test_custom_routes.py +0 -105
  483. fastmcp-2.12.4/tests/server/http/test_http_auth_middleware.py +0 -78
  484. fastmcp-2.12.4/tests/server/http/test_http_dependencies.py +0 -123
  485. fastmcp-2.12.4/tests/server/middleware/test_error_handling.py +0 -623
  486. fastmcp-2.12.4/tests/server/middleware/test_logging.py +0 -774
  487. fastmcp-2.12.4/tests/server/middleware/test_middleware.py +0 -894
  488. fastmcp-2.12.4/tests/server/middleware/test_rate_limiting.py +0 -455
  489. fastmcp-2.12.4/tests/server/openapi/test_advanced_behavior.py +0 -312
  490. fastmcp-2.12.4/tests/server/openapi/test_basic_functionality.py +0 -367
  491. fastmcp-2.12.4/tests/server/openapi/test_configuration.py +0 -930
  492. fastmcp-2.12.4/tests/server/openapi/test_description_propagation.py +0 -795
  493. fastmcp-2.12.4/tests/server/openapi/test_openapi_path_parameters.py +0 -624
  494. fastmcp-2.12.4/tests/server/proxy/test_proxy_server.py +0 -740
  495. fastmcp-2.12.4/tests/server/test_context.py +0 -179
  496. fastmcp-2.12.4/tests/server/test_file_server.py +0 -127
  497. fastmcp-2.12.4/tests/server/test_mount.py +0 -1146
  498. fastmcp-2.12.4/tests/server/test_server.py +0 -1637
  499. fastmcp-2.12.4/tests/server/test_server_interactions.py +0 -2765
  500. fastmcp-2.12.4/tests/server/test_tool_annotations.py +0 -221
  501. fastmcp-2.12.4/tests/server/test_tool_transformation.py +0 -68
  502. fastmcp-2.12.4/tests/tools/test_tool.py +0 -1604
  503. fastmcp-2.12.4/tests/tools/test_tool_manager.py +0 -1053
  504. fastmcp-2.12.4/tests/utilities/test_cli.py +0 -192
  505. fastmcp-2.12.4/tests/utilities/test_inspect.py +0 -592
  506. fastmcp-2.12.4/tests/utilities/test_storage.py +0 -143
  507. fastmcp-2.12.4/uv.lock +0 -2207
  508. {fastmcp-2.12.4 → fastmcp-2.13.0}/.ccignore +0 -0
  509. {fastmcp-2.12.4 → fastmcp-2.13.0}/.cursor/rules/core-mcp-objects.mdc +0 -0
  510. {fastmcp-2.12.4 → fastmcp-2.13.0}/.github/ISSUE_TEMPLATE/bug.yml +0 -0
  511. {fastmcp-2.12.4 → fastmcp-2.13.0}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  512. {fastmcp-2.12.4 → fastmcp-2.13.0}/.github/ISSUE_TEMPLATE/enhancement.yml +0 -0
  513. {fastmcp-2.12.4 → fastmcp-2.13.0}/.github/copilot-instructions.md +0 -0
  514. {fastmcp-2.12.4 → fastmcp-2.13.0}/.github/dependabot.yml +0 -0
  515. {fastmcp-2.12.4 → fastmcp-2.13.0}/.github/pull_request_template.md +0 -0
  516. {fastmcp-2.12.4 → fastmcp-2.13.0}/.github/release.yml +0 -0
  517. {fastmcp-2.12.4 → fastmcp-2.13.0}/.gitignore +0 -0
  518. {fastmcp-2.12.4 → fastmcp-2.13.0}/.pre-commit-config.yaml +0 -0
  519. {fastmcp-2.12.4 → fastmcp-2.13.0}/CLAUDE.md +0 -0
  520. {fastmcp-2.12.4 → fastmcp-2.13.0}/CODE_OF_CONDUCT.md +0 -0
  521. {fastmcp-2.12.4 → fastmcp-2.13.0}/LICENSE +0 -0
  522. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/.ccignore +0 -0
  523. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/.cursor/rules/mintlify.mdc +0 -0
  524. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/assets/brand/blue-logo.png +0 -0
  525. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/assets/brand/f-watercolor-waves-dark.png +0 -0
  526. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/assets/brand/f-watercolor-waves.png +0 -0
  527. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/assets/brand/favicon.svg +0 -0
  528. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/assets/brand/thumbnail-background.png +0 -0
  529. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/assets/brand/wordmark-padded.png +0 -0
  530. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/assets/brand/wordmark-watercolor-rainbow-dark.png +0 -0
  531. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/assets/brand/wordmark-watercolor-rainbow.png +0 -0
  532. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/assets/brand/wordmark-watercolor-waves-dark.png +0 -0
  533. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/assets/brand/wordmark-watercolor-waves.png +0 -0
  534. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/assets/brand/wordmark-white-padded.png +0 -0
  535. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/assets/brand/wordmark-white.png +0 -0
  536. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/assets/brand/wordmark.png +0 -0
  537. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/assets/images/fastmcp_cloud/connect.png +0 -0
  538. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/assets/images/fastmcp_cloud/create_project.png +0 -0
  539. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/assets/images/fastmcp_cloud/deployment.png +0 -0
  540. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/assets/images/fastmcp_cloud/quickstart.png +0 -0
  541. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/assets/images/tutorial-rest-api-result.png +0 -0
  542. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/assets/schemas/mcp_server_config/latest.json +0 -0
  543. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/assets/schemas/mcp_server_config/v1.json +0 -0
  544. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/assets/updates/release-2-7.png +0 -0
  545. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/clients/auth/bearer.mdx +0 -0
  546. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/clients/auth/oauth.mdx +0 -0
  547. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/clients/client.mdx +0 -0
  548. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/clients/logging.mdx +0 -0
  549. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/clients/messages.mdx +0 -0
  550. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/clients/progress.mdx +0 -0
  551. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/clients/prompts.mdx +0 -0
  552. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/clients/resources.mdx +0 -0
  553. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/clients/roots.mdx +0 -0
  554. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/clients/tools.mdx +0 -0
  555. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/clients/transports.mdx +0 -0
  556. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/community/README.md +0 -0
  557. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/css/banner.css +0 -0
  558. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/css/python-sdk.css +0 -0
  559. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/css/style.css +0 -0
  560. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/css/version-badge.css +0 -0
  561. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/deployment/fastmcp-cloud.mdx +0 -0
  562. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/deployment/server-configuration.mdx +0 -0
  563. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/development/contributing.mdx +0 -0
  564. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/development/releases.mdx +0 -0
  565. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/getting-started/installation.mdx +0 -0
  566. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/getting-started/quickstart.mdx +0 -0
  567. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/integrations/anthropic.mdx +0 -0
  568. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/integrations/authkit.mdx +0 -0
  569. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/integrations/claude-code.mdx +0 -0
  570. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/integrations/claude-desktop.mdx +0 -0
  571. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/integrations/cursor-install-mcp.png +0 -0
  572. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/integrations/cursor.mdx +0 -0
  573. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/integrations/descope.mdx +0 -0
  574. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/integrations/eunomia-authorization.mdx +0 -0
  575. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/integrations/gemini-cli.mdx +0 -0
  576. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/integrations/gemini.mdx +0 -0
  577. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/integrations/images/authkit/enable_dcr.png +0 -0
  578. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/integrations/images/permit/abac_condition_example.png +0 -0
  579. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/integrations/images/permit/abac_policy_example.png +0 -0
  580. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/integrations/images/permit/policy_mapping.png +0 -0
  581. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/integrations/images/permit/role_assignement.png +0 -0
  582. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/integrations/mcp-json-configuration.mdx +0 -0
  583. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/integrations/openai.mdx +0 -0
  584. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/integrations/openapi.mdx +0 -0
  585. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/integrations/permit.mdx +0 -0
  586. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/patterns/contrib.mdx +0 -0
  587. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/patterns/decorating-methods.mdx +0 -0
  588. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/python-sdk/fastmcp-cli-__init__.mdx +0 -0
  589. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/python-sdk/fastmcp-cli-install-__init__.mdx +0 -0
  590. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/python-sdk/fastmcp-cli-install-claude_code.mdx +0 -0
  591. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/python-sdk/fastmcp-cli-install-claude_desktop.mdx +0 -0
  592. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/python-sdk/fastmcp-cli-install-cursor.mdx +0 -0
  593. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/python-sdk/fastmcp-cli-install-mcp_json.mdx +0 -0
  594. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/python-sdk/fastmcp-cli-install-shared.mdx +0 -0
  595. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/python-sdk/fastmcp-client-__init__.mdx +0 -0
  596. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/python-sdk/fastmcp-client-auth-__init__.mdx +0 -0
  597. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/python-sdk/fastmcp-client-auth-bearer.mdx +0 -0
  598. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/python-sdk/fastmcp-client-elicitation.mdx +0 -0
  599. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/python-sdk/fastmcp-client-messages.mdx +0 -0
  600. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/python-sdk/fastmcp-client-progress.mdx +0 -0
  601. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/python-sdk/fastmcp-client-roots.mdx +0 -0
  602. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/python-sdk/fastmcp-client-sampling.mdx +0 -0
  603. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/python-sdk/fastmcp-exceptions.mdx +0 -0
  604. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/python-sdk/fastmcp-mcp_config.mdx +0 -0
  605. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/python-sdk/fastmcp-prompts-__init__.mdx +0 -0
  606. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/python-sdk/fastmcp-resources-__init__.mdx +0 -0
  607. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/python-sdk/fastmcp-server-__init__.mdx +0 -0
  608. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/python-sdk/fastmcp-server-auth-__init__.mdx +0 -0
  609. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/python-sdk/fastmcp-server-auth-providers-__init__.mdx +0 -0
  610. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/python-sdk/fastmcp-server-auth-providers-bearer.mdx +0 -0
  611. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/python-sdk/fastmcp-server-auth-providers-in_memory.mdx +0 -0
  612. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/python-sdk/fastmcp-server-auth-redirect_validation.mdx +0 -0
  613. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/python-sdk/fastmcp-server-dependencies.mdx +0 -0
  614. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/python-sdk/fastmcp-server-elicitation.mdx +0 -0
  615. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/python-sdk/fastmcp-server-middleware-__init__.mdx +0 -0
  616. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/python-sdk/fastmcp-server-middleware-rate_limiting.mdx +0 -0
  617. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/python-sdk/fastmcp-server-middleware-timing.mdx +0 -0
  618. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/python-sdk/fastmcp-server-openapi.mdx +0 -0
  619. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/python-sdk/fastmcp-server-proxy.mdx +0 -0
  620. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/python-sdk/fastmcp-tools-__init__.mdx +0 -0
  621. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/python-sdk/fastmcp-utilities-__init__.mdx +0 -0
  622. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/python-sdk/fastmcp-utilities-auth.mdx +0 -0
  623. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/python-sdk/fastmcp-utilities-exceptions.mdx +0 -0
  624. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/python-sdk/fastmcp-utilities-http.mdx +0 -0
  625. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/python-sdk/fastmcp-utilities-json_schema_type.mdx +0 -0
  626. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/python-sdk/fastmcp-utilities-mcp_config.mdx +0 -0
  627. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/python-sdk/fastmcp-utilities-mcp_server_config-__init__.mdx +0 -0
  628. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-__init__.mdx +0 -0
  629. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-environments-__init__.mdx +0 -0
  630. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-environments-base.mdx +0 -0
  631. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-environments-uv.mdx +0 -0
  632. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-sources-__init__.mdx +0 -0
  633. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-sources-base.mdx +0 -0
  634. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-sources-filesystem.mdx +0 -0
  635. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/python-sdk/fastmcp-utilities-openapi.mdx +0 -0
  636. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/servers/progress.mdx +0 -0
  637. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/snippets/local-focus.mdx +0 -0
  638. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/snippets/version-badge.mdx +0 -0
  639. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/snippets/youtube-embed.mdx +0 -0
  640. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/tutorials/create-mcp-server.mdx +0 -0
  641. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/tutorials/mcp.mdx +0 -0
  642. {fastmcp-2.12.4 → fastmcp-2.13.0}/docs/tutorials/rest-api.mdx +0 -0
  643. {fastmcp-2.12.4 → fastmcp-2.13.0}/examples/atproto_mcp/README.md +0 -0
  644. {fastmcp-2.12.4 → fastmcp-2.13.0}/examples/atproto_mcp/demo.py +0 -0
  645. {fastmcp-2.12.4 → fastmcp-2.13.0}/examples/atproto_mcp/fastmcp.json +0 -0
  646. {fastmcp-2.12.4 → fastmcp-2.13.0}/examples/atproto_mcp/pyproject.toml +0 -0
  647. {fastmcp-2.12.4 → fastmcp-2.13.0}/examples/atproto_mcp/src/atproto_mcp/__init__.py +0 -0
  648. {fastmcp-2.12.4 → fastmcp-2.13.0}/examples/atproto_mcp/src/atproto_mcp/__main__.py +0 -0
  649. {fastmcp-2.12.4 → fastmcp-2.13.0}/examples/atproto_mcp/src/atproto_mcp/_atproto/__init__.py +0 -0
  650. {fastmcp-2.12.4 → fastmcp-2.13.0}/examples/atproto_mcp/src/atproto_mcp/_atproto/_client.py +0 -0
  651. {fastmcp-2.12.4 → fastmcp-2.13.0}/examples/atproto_mcp/src/atproto_mcp/_atproto/_posts.py +0 -0
  652. {fastmcp-2.12.4 → fastmcp-2.13.0}/examples/atproto_mcp/src/atproto_mcp/_atproto/_profile.py +0 -0
  653. {fastmcp-2.12.4 → fastmcp-2.13.0}/examples/atproto_mcp/src/atproto_mcp/_atproto/_read.py +0 -0
  654. {fastmcp-2.12.4 → fastmcp-2.13.0}/examples/atproto_mcp/src/atproto_mcp/_atproto/_social.py +0 -0
  655. {fastmcp-2.12.4 → fastmcp-2.13.0}/examples/atproto_mcp/src/atproto_mcp/py.typed +0 -0
  656. {fastmcp-2.12.4 → fastmcp-2.13.0}/examples/atproto_mcp/src/atproto_mcp/server.py +0 -0
  657. {fastmcp-2.12.4 → fastmcp-2.13.0}/examples/atproto_mcp/src/atproto_mcp/settings.py +0 -0
  658. {fastmcp-2.12.4 → fastmcp-2.13.0}/examples/atproto_mcp/src/atproto_mcp/types.py +0 -0
  659. {fastmcp-2.12.4/examples/auth/azure_oauth → fastmcp-2.13.0/examples/auth/authkit_dcr}/client.py +0 -0
  660. {fastmcp-2.12.4 → fastmcp-2.13.0}/examples/auth/aws_oauth/README.md +0 -0
  661. {fastmcp-2.12.4 → fastmcp-2.13.0}/examples/auth/aws_oauth/client.py +0 -0
  662. {fastmcp-2.12.4 → fastmcp-2.13.0}/examples/auth/aws_oauth/requirements.txt +0 -0
  663. {fastmcp-2.12.4 → fastmcp-2.13.0}/examples/auth/aws_oauth/server.py +0 -0
  664. {fastmcp-2.12.4 → fastmcp-2.13.0}/examples/auth/azure_oauth/README.md +0 -0
  665. {fastmcp-2.12.4/examples/auth/github_oauth → fastmcp-2.13.0/examples/auth/azure_oauth}/client.py +0 -0
  666. {fastmcp-2.12.4 → fastmcp-2.13.0}/examples/auth/azure_oauth/server.py +0 -0
  667. {fastmcp-2.12.4 → fastmcp-2.13.0}/examples/auth/github_oauth/README.md +0 -0
  668. {fastmcp-2.12.4/examples/auth/google_oauth → fastmcp-2.13.0/examples/auth/github_oauth}/client.py +0 -0
  669. {fastmcp-2.12.4 → fastmcp-2.13.0}/examples/auth/github_oauth/server.py +0 -0
  670. {fastmcp-2.12.4 → fastmcp-2.13.0}/examples/auth/google_oauth/README.md +0 -0
  671. {fastmcp-2.12.4/examples/auth/workos_oauth → fastmcp-2.13.0/examples/auth/google_oauth}/client.py +0 -0
  672. {fastmcp-2.12.4 → fastmcp-2.13.0}/examples/auth/google_oauth/server.py +0 -0
  673. {fastmcp-2.12.4 → fastmcp-2.13.0}/examples/auth/workos_oauth/server.py +0 -0
  674. {fastmcp-2.12.4 → fastmcp-2.13.0}/examples/complex_inputs.py +0 -0
  675. {fastmcp-2.12.4 → fastmcp-2.13.0}/examples/config_server.py +0 -0
  676. {fastmcp-2.12.4 → fastmcp-2.13.0}/examples/desktop.py +0 -0
  677. {fastmcp-2.12.4 → fastmcp-2.13.0}/examples/echo.py +0 -0
  678. {fastmcp-2.12.4 → fastmcp-2.13.0}/examples/fastmcp_config/env_interpolation_example.json +0 -0
  679. {fastmcp-2.12.4 → fastmcp-2.13.0}/examples/fastmcp_config/fastmcp.json +0 -0
  680. {fastmcp-2.12.4 → fastmcp-2.13.0}/examples/fastmcp_config/full_example.fastmcp.json +0 -0
  681. {fastmcp-2.12.4 → fastmcp-2.13.0}/examples/fastmcp_config/server.py +0 -0
  682. {fastmcp-2.12.4 → fastmcp-2.13.0}/examples/fastmcp_config/simple.fastmcp.json +0 -0
  683. {fastmcp-2.12.4 → fastmcp-2.13.0}/examples/fastmcp_config_demo/README.md +0 -0
  684. {fastmcp-2.12.4 → fastmcp-2.13.0}/examples/fastmcp_config_demo/fastmcp.json +0 -0
  685. {fastmcp-2.12.4 → fastmcp-2.13.0}/examples/fastmcp_config_demo/server.py +0 -0
  686. {fastmcp-2.12.4 → fastmcp-2.13.0}/examples/get_file.py +0 -0
  687. {fastmcp-2.12.4 → fastmcp-2.13.0}/examples/in_memory_proxy_example.py +0 -0
  688. {fastmcp-2.12.4 → fastmcp-2.13.0}/examples/memory.fastmcp.json +0 -0
  689. {fastmcp-2.12.4 → fastmcp-2.13.0}/examples/mount_example.fastmcp.json +0 -0
  690. {fastmcp-2.12.4 → fastmcp-2.13.0}/examples/sampling.py +0 -0
  691. {fastmcp-2.12.4 → fastmcp-2.13.0}/examples/sampling_fallback.py +0 -0
  692. {fastmcp-2.12.4 → fastmcp-2.13.0}/examples/screenshot.fastmcp.json +0 -0
  693. {fastmcp-2.12.4 → fastmcp-2.13.0}/examples/screenshot.py +0 -0
  694. {fastmcp-2.12.4 → fastmcp-2.13.0}/examples/simple_echo.py +0 -0
  695. {fastmcp-2.12.4 → fastmcp-2.13.0}/examples/smart_home/README.md +0 -0
  696. {fastmcp-2.12.4 → fastmcp-2.13.0}/examples/smart_home/hub.fastmcp.json +0 -0
  697. {fastmcp-2.12.4 → fastmcp-2.13.0}/examples/smart_home/lights.fastmcp.json +0 -0
  698. {fastmcp-2.12.4 → fastmcp-2.13.0}/examples/smart_home/pyproject.toml +0 -0
  699. {fastmcp-2.12.4 → fastmcp-2.13.0}/examples/smart_home/src/smart_home/__init__.py +0 -0
  700. {fastmcp-2.12.4 → fastmcp-2.13.0}/examples/smart_home/src/smart_home/__main__.py +0 -0
  701. {fastmcp-2.12.4 → fastmcp-2.13.0}/examples/smart_home/src/smart_home/lights/__init__.py +0 -0
  702. {fastmcp-2.12.4 → fastmcp-2.13.0}/examples/smart_home/src/smart_home/lights/server.py +0 -0
  703. {fastmcp-2.12.4 → fastmcp-2.13.0}/examples/smart_home/src/smart_home/py.typed +0 -0
  704. {fastmcp-2.12.4 → fastmcp-2.13.0}/examples/tags_example.py +0 -0
  705. {fastmcp-2.12.4 → fastmcp-2.13.0}/examples/text_me.py +0 -0
  706. {fastmcp-2.12.4 → fastmcp-2.13.0}/justfile +0 -0
  707. {fastmcp-2.12.4 → fastmcp-2.13.0}/scripts/auto_close_duplicates.py +0 -0
  708. {fastmcp-2.12.4 → fastmcp-2.13.0}/src/fastmcp/__init__.py +0 -0
  709. {fastmcp-2.12.4 → fastmcp-2.13.0}/src/fastmcp/cli/__init__.py +0 -0
  710. {fastmcp-2.12.4 → fastmcp-2.13.0}/src/fastmcp/cli/install/__init__.py +0 -0
  711. {fastmcp-2.12.4 → fastmcp-2.13.0}/src/fastmcp/cli/install/shared.py +0 -0
  712. {fastmcp-2.12.4 → fastmcp-2.13.0}/src/fastmcp/client/__init__.py +0 -0
  713. {fastmcp-2.12.4 → fastmcp-2.13.0}/src/fastmcp/client/auth/__init__.py +0 -0
  714. {fastmcp-2.12.4 → fastmcp-2.13.0}/src/fastmcp/client/auth/bearer.py +0 -0
  715. {fastmcp-2.12.4 → fastmcp-2.13.0}/src/fastmcp/client/elicitation.py +0 -0
  716. {fastmcp-2.12.4 → fastmcp-2.13.0}/src/fastmcp/client/messages.py +0 -0
  717. {fastmcp-2.12.4 → fastmcp-2.13.0}/src/fastmcp/client/progress.py +0 -0
  718. {fastmcp-2.12.4 → fastmcp-2.13.0}/src/fastmcp/client/roots.py +0 -0
  719. {fastmcp-2.12.4 → fastmcp-2.13.0}/src/fastmcp/client/sampling.py +0 -0
  720. {fastmcp-2.12.4 → fastmcp-2.13.0}/src/fastmcp/contrib/README.md +0 -0
  721. {fastmcp-2.12.4 → fastmcp-2.13.0}/src/fastmcp/contrib/bulk_tool_caller/README.md +0 -0
  722. {fastmcp-2.12.4 → fastmcp-2.13.0}/src/fastmcp/contrib/bulk_tool_caller/__init__.py +0 -0
  723. {fastmcp-2.12.4 → fastmcp-2.13.0}/src/fastmcp/contrib/bulk_tool_caller/bulk_tool_caller.py +0 -0
  724. {fastmcp-2.12.4 → fastmcp-2.13.0}/src/fastmcp/contrib/bulk_tool_caller/example.py +0 -0
  725. {fastmcp-2.12.4 → fastmcp-2.13.0}/src/fastmcp/contrib/component_manager/README.md +0 -0
  726. {fastmcp-2.12.4 → fastmcp-2.13.0}/src/fastmcp/contrib/component_manager/__init__.py +0 -0
  727. {fastmcp-2.12.4 → fastmcp-2.13.0}/src/fastmcp/contrib/component_manager/component_manager.py +0 -0
  728. {fastmcp-2.12.4 → fastmcp-2.13.0}/src/fastmcp/contrib/component_manager/example.py +0 -0
  729. {fastmcp-2.12.4 → fastmcp-2.13.0}/src/fastmcp/contrib/mcp_mixin/__init__.py +0 -0
  730. {fastmcp-2.12.4 → fastmcp-2.13.0}/src/fastmcp/contrib/mcp_mixin/example.py +0 -0
  731. {fastmcp-2.12.4 → fastmcp-2.13.0}/src/fastmcp/exceptions.py +0 -0
  732. {fastmcp-2.12.4 → fastmcp-2.13.0}/src/fastmcp/experimental/sampling/__init__.py +0 -0
  733. {fastmcp-2.12.4 → fastmcp-2.13.0}/src/fastmcp/experimental/sampling/handlers/__init__.py +0 -0
  734. {fastmcp-2.12.4 → fastmcp-2.13.0}/src/fastmcp/experimental/sampling/handlers/base.py +0 -0
  735. {fastmcp-2.12.4 → fastmcp-2.13.0}/src/fastmcp/experimental/sampling/handlers/openai.py +0 -0
  736. {fastmcp-2.12.4 → fastmcp-2.13.0}/src/fastmcp/experimental/server/openapi/README.md +0 -0
  737. {fastmcp-2.12.4 → fastmcp-2.13.0}/src/fastmcp/experimental/server/openapi/__init__.py +0 -0
  738. {fastmcp-2.12.4 → fastmcp-2.13.0}/src/fastmcp/experimental/server/openapi/components.py +0 -0
  739. {fastmcp-2.12.4 → fastmcp-2.13.0}/src/fastmcp/experimental/server/openapi/routing.py +0 -0
  740. {fastmcp-2.12.4 → fastmcp-2.13.0}/src/fastmcp/experimental/server/openapi/server.py +0 -0
  741. {fastmcp-2.12.4 → fastmcp-2.13.0}/src/fastmcp/experimental/utilities/openapi/README.md +0 -0
  742. {fastmcp-2.12.4 → fastmcp-2.13.0}/src/fastmcp/experimental/utilities/openapi/__init__.py +0 -0
  743. {fastmcp-2.12.4 → fastmcp-2.13.0}/src/fastmcp/experimental/utilities/openapi/director.py +0 -0
  744. {fastmcp-2.12.4 → fastmcp-2.13.0}/src/fastmcp/experimental/utilities/openapi/formatters.py +0 -0
  745. {fastmcp-2.12.4 → fastmcp-2.13.0}/src/fastmcp/experimental/utilities/openapi/models.py +0 -0
  746. {fastmcp-2.12.4 → fastmcp-2.13.0}/src/fastmcp/experimental/utilities/openapi/schemas.py +0 -0
  747. {fastmcp-2.12.4 → fastmcp-2.13.0}/src/fastmcp/mcp_config.py +0 -0
  748. {fastmcp-2.12.4 → fastmcp-2.13.0}/src/fastmcp/prompts/__init__.py +0 -0
  749. {fastmcp-2.12.4 → fastmcp-2.13.0}/src/fastmcp/py.typed +0 -0
  750. {fastmcp-2.12.4 → fastmcp-2.13.0}/src/fastmcp/resources/__init__.py +0 -0
  751. {fastmcp-2.12.4 → fastmcp-2.13.0}/src/fastmcp/server/__init__.py +0 -0
  752. {fastmcp-2.12.4 → fastmcp-2.13.0}/src/fastmcp/server/auth/__init__.py +0 -0
  753. {fastmcp-2.12.4 → fastmcp-2.13.0}/src/fastmcp/server/auth/providers/__init__.py +0 -0
  754. {fastmcp-2.12.4 → fastmcp-2.13.0}/src/fastmcp/server/auth/providers/bearer.py +0 -0
  755. {fastmcp-2.12.4 → fastmcp-2.13.0}/src/fastmcp/server/auth/providers/in_memory.py +0 -0
  756. {fastmcp-2.12.4 → fastmcp-2.13.0}/src/fastmcp/server/auth/redirect_validation.py +0 -0
  757. {fastmcp-2.12.4 → fastmcp-2.13.0}/src/fastmcp/server/dependencies.py +0 -0
  758. {fastmcp-2.12.4 → fastmcp-2.13.0}/src/fastmcp/server/elicitation.py +0 -0
  759. {fastmcp-2.12.4 → fastmcp-2.13.0}/src/fastmcp/server/middleware/__init__.py +0 -0
  760. {fastmcp-2.12.4 → fastmcp-2.13.0}/src/fastmcp/server/middleware/timing.py +0 -0
  761. {fastmcp-2.12.4 → fastmcp-2.13.0}/src/fastmcp/server/openapi.py +0 -0
  762. {fastmcp-2.12.4 → fastmcp-2.13.0}/src/fastmcp/server/sampling/handler.py +0 -0
  763. {fastmcp-2.12.4 → fastmcp-2.13.0}/src/fastmcp/tools/__init__.py +0 -0
  764. {fastmcp-2.12.4 → fastmcp-2.13.0}/src/fastmcp/utilities/__init__.py +0 -0
  765. {fastmcp-2.12.4 → fastmcp-2.13.0}/src/fastmcp/utilities/auth.py +0 -0
  766. {fastmcp-2.12.4 → fastmcp-2.13.0}/src/fastmcp/utilities/exceptions.py +0 -0
  767. {fastmcp-2.12.4 → fastmcp-2.13.0}/src/fastmcp/utilities/http.py +0 -0
  768. {fastmcp-2.12.4 → fastmcp-2.13.0}/src/fastmcp/utilities/json_schema.py +0 -0
  769. {fastmcp-2.12.4 → fastmcp-2.13.0}/src/fastmcp/utilities/json_schema_type.py +0 -0
  770. {fastmcp-2.12.4 → fastmcp-2.13.0}/src/fastmcp/utilities/mcp_config.py +0 -0
  771. {fastmcp-2.12.4 → fastmcp-2.13.0}/src/fastmcp/utilities/mcp_server_config/__init__.py +0 -0
  772. {fastmcp-2.12.4 → fastmcp-2.13.0}/src/fastmcp/utilities/mcp_server_config/v1/__init__.py +0 -0
  773. {fastmcp-2.12.4 → fastmcp-2.13.0}/src/fastmcp/utilities/mcp_server_config/v1/environments/__init__.py +0 -0
  774. {fastmcp-2.12.4 → fastmcp-2.13.0}/src/fastmcp/utilities/mcp_server_config/v1/environments/base.py +0 -0
  775. {fastmcp-2.12.4 → fastmcp-2.13.0}/src/fastmcp/utilities/mcp_server_config/v1/sources/__init__.py +0 -0
  776. {fastmcp-2.12.4 → fastmcp-2.13.0}/src/fastmcp/utilities/mcp_server_config/v1/sources/base.py +0 -0
  777. {fastmcp-2.12.4 → fastmcp-2.13.0}/src/fastmcp/utilities/mcp_server_config/v1/sources/filesystem.py +0 -0
  778. {fastmcp-2.12.4 → fastmcp-2.13.0}/src/fastmcp/utilities/openapi.py +0 -0
  779. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/__init__.py +0 -0
  780. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/cli/__init__.py +0 -0
  781. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/cli/test_install.py +0 -0
  782. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/cli/test_mcp_server_config_schema.py +0 -0
  783. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/cli/test_project_prepare.py +0 -0
  784. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/cli/test_run_config.py +0 -0
  785. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/cli/test_shared.py +0 -0
  786. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/cli/test_with_argv.py +0 -0
  787. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/client/__init__.py +0 -0
  788. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/client/auth/__init__.py +0 -0
  789. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/client/test_elicitation.py +0 -0
  790. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/client/test_notifications.py +0 -0
  791. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/client/test_progress.py +0 -0
  792. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/client/test_roots.py +0 -0
  793. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/client/test_sampling.py +0 -0
  794. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/client/transports/__init__.py +0 -0
  795. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/conftest.py +0 -0
  796. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/contrib/__init__.py +0 -0
  797. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/contrib/test_bulk_tool_caller.py +0 -0
  798. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/contrib/test_component_manager.py +0 -0
  799. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/deprecated/__init__.py +0 -0
  800. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/deprecated/test_bearer_auth_provider.py +0 -0
  801. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/deprecated/test_dependencies.py +0 -0
  802. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/deprecated/test_deprecated.py +0 -0
  803. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/deprecated/test_mount_import_arg_order.py +0 -0
  804. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/deprecated/test_mount_separators.py +0 -0
  805. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/deprecated/test_output_schema_false.py +0 -0
  806. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/deprecated/test_proxy_client.py +0 -0
  807. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/deprecated/test_resource_prefixes.py +0 -0
  808. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/deprecated/test_route_type_ignore.py +0 -0
  809. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/deprecated/test_settings.py +0 -0
  810. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/experimental/README.md +0 -0
  811. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/experimental/__init__.py +0 -0
  812. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/experimental/openapi_parser/README.md +0 -0
  813. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/experimental/openapi_parser/__init__.py +0 -0
  814. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/experimental/openapi_parser/conftest.py +0 -0
  815. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/experimental/openapi_parser/server/__init__.py +0 -0
  816. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/experimental/openapi_parser/server/openapi/__init__.py +0 -0
  817. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/experimental/openapi_parser/server/openapi/test_end_to_end_compatibility.py +0 -0
  818. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/experimental/openapi_parser/utilities/__init__.py +0 -0
  819. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/experimental/openapi_parser/utilities/openapi/__init__.py +0 -0
  820. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/experimental/openapi_parser/utilities/openapi/conftest.py +0 -0
  821. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/experimental/openapi_parser/utilities/openapi/test_allof_requestbody.py +0 -0
  822. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/experimental/openapi_parser/utilities/openapi/test_direct_array_schemas.py +0 -0
  823. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/experimental/openapi_parser/utilities/openapi/test_director.py +0 -0
  824. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/experimental/openapi_parser/utilities/openapi/test_legacy_compatibility.py +0 -0
  825. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/experimental/openapi_parser/utilities/openapi/test_models.py +0 -0
  826. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/experimental/openapi_parser/utilities/openapi/test_parser.py +0 -0
  827. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/experimental/openapi_parser/utilities/openapi/test_schemas.py +0 -0
  828. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/experimental/sampling/test_openai_handler.py +0 -0
  829. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/integration_tests/__init__.py +0 -0
  830. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/integration_tests/auth/__init__.py +0 -0
  831. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/integration_tests/conftest.py +0 -0
  832. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/prompts/__init__.py +0 -0
  833. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/prompts/test_prompt.py +0 -0
  834. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/prompts/test_prompt_manager.py +0 -0
  835. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/resources/__init__.py +0 -0
  836. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/resources/test_file_resources.py +0 -0
  837. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/resources/test_function_resources.py +0 -0
  838. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/resources/test_resource_manager.py +0 -0
  839. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/resources/test_resource_template_meta.py +0 -0
  840. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/server/__init__.py +0 -0
  841. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/server/auth/__init__.py +0 -0
  842. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/server/auth/providers/__init__.py +0 -0
  843. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/server/auth/test_redirect_validation.py +0 -0
  844. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/server/auth/test_static_token_verifier.py +0 -0
  845. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/server/http/__init__.py +0 -0
  846. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/server/http/test_bearer_auth_backend.py +0 -0
  847. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/server/http/test_http_middleware.py +0 -0
  848. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/server/middleware/__init__.py +0 -0
  849. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/server/middleware/test_timing.py +0 -0
  850. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/server/openapi/__init__.py +0 -0
  851. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/server/openapi/conftest.py +0 -0
  852. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/server/openapi/test_deepobject_style.py +0 -0
  853. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/server/openapi/test_explode_integration.py +0 -0
  854. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/server/openapi/test_openapi_compatibility.py +0 -0
  855. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/server/openapi/test_optional_parameters.py +0 -0
  856. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/server/openapi/test_parameter_collisions.py +0 -0
  857. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/server/openapi/test_route_map_fn.py +0 -0
  858. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/server/proxy/__init__.py +0 -0
  859. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/server/proxy/test_proxy_client.py +0 -0
  860. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/server/proxy/test_stateful_proxy_client.py +0 -0
  861. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/server/test_app_state.py +0 -0
  862. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/server/test_auth_integration.py +0 -0
  863. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/server/test_experimental_openapi_feature_flag.py +0 -0
  864. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/server/test_import_server.py +0 -0
  865. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/server/test_log_level.py +0 -0
  866. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/server/test_logging.py +0 -0
  867. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/server/test_resource_prefix_formats.py +0 -0
  868. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/server/test_run_server.py +0 -0
  869. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/server/test_streamable_http_no_redirect.py +0 -0
  870. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/server/test_tool_exclude_args.py +0 -0
  871. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/test_examples.py +0 -0
  872. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/test_mcp_config.py +0 -0
  873. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/tools/__init__.py +0 -0
  874. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/tools/test_tool_future_annotations.py +0 -0
  875. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/tools/test_tool_transform.py +0 -0
  876. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/utilities/__init__.py +0 -0
  877. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/utilities/openapi/__init__.py +0 -0
  878. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/utilities/openapi/conftest.py +0 -0
  879. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/utilities/openapi/test_nullable_fields.py +0 -0
  880. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/utilities/openapi/test_openapi.py +0 -0
  881. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/utilities/openapi/test_openapi_advanced.py +0 -0
  882. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/utilities/openapi/test_openapi_fastapi.py +0 -0
  883. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/utilities/openapi/test_openapi_output_schemas.py +0 -0
  884. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/utilities/test_components.py +0 -0
  885. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/utilities/test_json_schema.py +0 -0
  886. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/utilities/test_json_schema_type.py +0 -0
  887. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/utilities/test_logging.py +0 -0
  888. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/utilities/test_tests.py +0 -0
  889. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/utilities/test_typeadapter.py +0 -0
  890. {fastmcp-2.12.4 → fastmcp-2.13.0}/tests/utilities/test_types.py +0 -0
@@ -0,0 +1,6 @@
1
+ {
2
+ "setup-worktree": [
3
+ "uv sync",
4
+ "uv run pre-commit install"
5
+ ]
6
+ }
@@ -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@v5
20
+
21
+ - name: Generate Marvin App token
22
+ id: marvin-token
23
+ uses: actions/create-github-app-token@v2
24
+ with:
25
+ app-id: ${{ secrets.MARVIN_APP_ID }}
26
+ private-key: ${{ secrets.MARVIN_APP_PRIVATE_KEY }}
27
+
28
+ - name: Install uv
29
+ uses: astral-sh/setup-uv@v7
30
+
31
+ - name: Auto-close 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@v5
20
+
21
+ - name: Generate Marvin App token
22
+ id: marvin-token
23
+ uses: actions/create-github-app-token@v2
24
+ with:
25
+ app-id: ${{ secrets.MARVIN_APP_ID }}
26
+ private-key: ${{ secrets.MARVIN_APP_PRIVATE_KEY }}
27
+
28
+ - name: Install uv
29
+ uses: astral-sh/setup-uv@v7
30
+
31
+ - name: Auto-close needs MRE issues
32
+ run: uv run scripts/auto_close_needs_mre.py
33
+ env:
34
+ GITHUB_TOKEN: ${{ steps.marvin-token.outputs.token }}
35
+ GITHUB_REPOSITORY_OWNER: ${{ github.repository_owner }}
36
+ GITHUB_REPOSITORY_NAME: ${{ github.event.repository.name }}
@@ -0,0 +1,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@v5
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,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@v5
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
+ }
@@ -0,0 +1,143 @@
1
+ name: Marvin Label Triage
2
+ # Automatically triage GitHub issues and PRs using Marvin
3
+
4
+ on:
5
+ issues:
6
+ types: [opened]
7
+ pull_request_target:
8
+ types: [opened]
9
+ workflow_dispatch:
10
+ inputs:
11
+ issue_number:
12
+ description: "Issue or PR number to triage"
13
+ required: true
14
+ type: string
15
+
16
+ concurrency:
17
+ group: triage-${{ github.event.issue.number || github.event.pull_request.number || inputs.issue_number }}
18
+ cancel-in-progress: false
19
+
20
+ jobs:
21
+ label-issue-or-pr:
22
+ runs-on: ubuntu-latest
23
+ timeout-minutes: 10
24
+ permissions:
25
+ contents: read
26
+ issues: write
27
+ pull-requests: write
28
+
29
+ steps:
30
+ - name: Checkout base repository
31
+ uses: actions/checkout@v5
32
+ with:
33
+ repository: ${{ github.repository }}
34
+ ref: ${{ github.event.repository.default_branch }}
35
+
36
+ - name: Generate Marvin App token
37
+ id: marvin-token
38
+ uses: actions/create-github-app-token@v2
39
+ with:
40
+ app-id: ${{ secrets.MARVIN_APP_ID }}
41
+ private-key: ${{ secrets.MARVIN_APP_PRIVATE_KEY }}
42
+
43
+ - name: Set triage prompt
44
+ id: triage-prompt
45
+ run: |
46
+ cat >> $GITHUB_OUTPUT << 'EOF'
47
+ PROMPT<<PROMPT_END
48
+ You're an issue triage assistant for FastMCP, a Python framework for building Model Context Protocol servers and clients. Your task is to analyze issues/PRs and apply appropriate labels.
49
+
50
+ IMPORTANT: Your ONLY action should be to apply labels using mcp__github__update_issue. DO NOT post any comments.
51
+
52
+ Issue/PR Information:
53
+ - REPO: ${{ github.repository }}
54
+ - NUMBER: ${{ github.event.issue.number || github.event.pull_request.number || inputs.issue_number }}
55
+ - TYPE: ${{ github.event.issue && 'issue' || (github.event.pull_request && 'pull_request') || 'unknown' }}
56
+
57
+ TRIAGE PROCESS:
58
+
59
+ 1. Get available labels:
60
+ Run: `gh label list`
61
+
62
+ 2. Retrieve issue/PR details using GitHub tools:
63
+ - mcp__github__get_issue: Get the issue/PR details
64
+ - mcp__github__get_issue_comments: Read any discussion
65
+ - If the issue/PR mentions other issues (e.g., "fixes #123", "related to #456"), use mcp__github__get_issue to read those linked issues for additional context
66
+
67
+ 3. Analyze and apply labels based on these guidelines:
68
+
69
+ CORE CATEGORIES (apply EXACTLY ONE - these are mutually exclusive):
70
+ - bug: Reports of broken functionality OR PRs that fix bugs
71
+ - enhancement: New functions/endpoints, improvements to existing features, internal tooling, workflow improvements, minor new capabilities
72
+ - feature: ONLY for major headline functionality worthy of a blog post announcement (2-4 per release, never for issues)
73
+ - documentation: Primary change is to user-facing docs, examples, or guides
74
+
75
+ SPECIAL DOCUMENTATION RULES:
76
+ - DO NOT apply "documentation" label if PR only updates auto-generated SDK docs (docs/python-sdk/**)
77
+ - DO apply "documentation" label for significant user-facing documentation changes (guides, examples, API docs)
78
+ - Auto-generated docs updates should get appropriate category label (enhancement, bug, etc.) based on the underlying code changes
79
+
80
+ FEATURE vs ENHANCEMENT guidance:
81
+ - feature: Major systems like new auth systems, MCP composition, proxying MCP servers, major CLI commands that transform workflows
82
+ - enhancement: New functions/endpoints, internal workflows, CI improvements, developer tooling, refactoring, utilities, typical new CLI commands
83
+ - If unsure between feature/enhancement, choose enhancement
84
+
85
+ Note: If a PR fixes a bug, label it "bug" not "enhancement"
86
+
87
+ SPECIAL CATEGORY (can be combined with above):
88
+ - breaking change: Changes that break backward compatibility (in addition to core category)
89
+
90
+ PRIORITY (apply if clearly evident):
91
+ - high-priority: Critical bugs affecting many users, security issues, or blocking core functionality
92
+ - low-priority: Edge cases, nice-to-have improvements, or cosmetic issues
93
+ - Default to no priority label if unclear
94
+
95
+ STATUS (apply if applicable):
96
+ - needs more info: Issue lacks reproduction steps, error messages, or clear description
97
+ - good first issue: ONLY if it's clearly scoped, has obvious solution, and touches limited files
98
+ - invalid: Spam, completely off-topic, or nonsensical (often LLM-generated)
99
+
100
+ AREA LABELS (apply ONLY when thematically central to the issue):
101
+ - cli: Issues primarily about FastMCP CLI commands (run, dev, install)
102
+ - client: Issues primarily about the Client SDK or client-side functionality
103
+ - server: Issues primarily about FastMCP server implementation
104
+ - auth: Authentication is the main concern (Bearer, JWT, OAuth, WorkOS)
105
+ - openapi: OpenAPI integration/parsing is the primary topic
106
+ - http: HTTP transport or networking is the main issue
107
+ - contrib: Specifically about community contributions in src/contrib/
108
+ - tests: Issues primarily about testing infrastructure, CI/CD workflows, or test coverage
109
+
110
+ IMPORTANT LABELING RULES:
111
+ - Be selective - only apply labels that are clearly relevant
112
+ - Don't apply area labels just because a file in that area is mentioned
113
+ - The issue must be PRIMARILY about that area to get the label
114
+ - When in doubt, don't apply the label
115
+ - Apply 2-5 labels total typically (category + maybe priority + maybe 1-2 areas)
116
+
117
+ META LABELS (rarely needed for issues):
118
+ - dependencies: Only for dependabot PRs or issues specifically about package updates
119
+ - DON'T MERGE: Only if PR author explicitly states it's not ready
120
+
121
+ 4. Apply selected labels:
122
+ Use mcp__github__update_issue to apply your selected labels
123
+ DO NOT post any comments
124
+ PROMPT_END
125
+ EOF
126
+
127
+ - name: Run Marvin for Issue Triage
128
+ uses: anthropics/claude-code-action@v1
129
+ with:
130
+ github_token: ${{ steps.marvin-token.outputs.token }}
131
+ bot_name: "Marvin Context Protocol"
132
+ prompt: ${{ steps.triage-prompt.outputs.PROMPT }}
133
+ anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY_FOR_CI }}
134
+ allowed_non_write_users: "*"
135
+ claude_args: |
136
+ --allowedTools Bash(gh label list),mcp__github__get_issue,mcp__github__get_issue_comments,mcp__github__update_issue,mcp__github__get_pull_request_files
137
+ settings: |
138
+ {
139
+ "model": "claude-sonnet-4-5-20250929",
140
+ "env": {
141
+ "GH_TOKEN": "${{ steps.marvin-token.outputs.token }}"
142
+ }
143
+ }
@@ -0,0 +1,78 @@
1
+ name: Marvin Context Protocol
2
+
3
+ on:
4
+ issue_comment: { types: [created] }
5
+ pull_request_review_comment: { types: [created] }
6
+ pull_request_review: { types: [submitted] }
7
+ pull_request: { types: [opened, edited] }
8
+ issues: { types: [opened, edited, assigned, labeled] }
9
+ discussion: { types: [created, edited, labeled] }
10
+ discussion_comment: { types: [created] }
11
+
12
+ permissions:
13
+ contents: write
14
+ issues: write
15
+ pull-requests: write
16
+ discussions: write
17
+ actions: read
18
+ id-token: write
19
+
20
+ jobs:
21
+ marvin:
22
+ if: |
23
+ (github.event_name == 'issue_comment' && contains(github.event.comment.body, '/marvin')) ||
24
+ (github.event_name == 'pull_request_review_comment' && contains(github.event.comment.body, '/marvin')) ||
25
+ (github.event_name == 'pull_request_review' && contains(github.event.review.body, '/marvin')) ||
26
+ (github.event_name == 'pull_request' && contains(github.event.pull_request.body, '/marvin')) ||
27
+ (github.event_name == 'issues' && contains(github.event.issue.body, '/marvin')) ||
28
+ (github.event_name == 'discussion' && contains(github.event.discussion.body, '/marvin')) ||
29
+ (github.event_name == 'discussion_comment' && contains(github.event.comment.body, '/marvin')) ||
30
+ (github.event_name == 'issues' && github.event.action == 'assigned' && github.event.assignee.login == 'Marvin Context Protocol') ||
31
+ (github.event_name == 'issues' && github.event.action == 'labeled' && github.event.label.name == 'marvin')
32
+ runs-on: ubuntu-latest
33
+ steps:
34
+ - uses: actions/checkout@v5
35
+
36
+ # Install UV package manager
37
+ - name: Install UV
38
+ uses: astral-sh/setup-uv@v7
39
+ with:
40
+ enable-cache: true
41
+ cache-dependency-glob: "uv.lock"
42
+
43
+ # Install project dependencies
44
+ - name: Install dependencies
45
+ run: uv sync --python 3.12
46
+
47
+ # Install pre-commit hooks automatically
48
+ - name: Install pre-commit hooks
49
+ run: |
50
+ uv run pre-commit install
51
+ echo "✅ Pre-commit hooks installed"
52
+
53
+ - name: Generate Marvin App token
54
+ id: marvin-token
55
+ uses: actions/create-github-app-token@v2
56
+ with:
57
+ app-id: ${{ secrets.MARVIN_APP_ID }}
58
+ private-key: ${{ secrets.MARVIN_APP_PRIVATE_KEY }}
59
+
60
+ # Marvin Assistant
61
+ - name: Run Marvin
62
+ uses: anthropics/claude-code-action@v1
63
+ with:
64
+ github_token: ${{ steps.marvin-token.outputs.token }}
65
+ anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
66
+ trigger_phrase: "/marvin"
67
+ allowed_bots: "*"
68
+ claude_args: |
69
+ --allowedTools WebSearch,WebFetch,Bash(uv:*),Bash(pre-commit:*),Bash(pytest:*),Bash(ruff:*),Bash(ty:*),Bash(git:*),Bash(gh:*),mcp__github__add_issue_comment,mcp__github__create_issue,mcp__github__get_issue,mcp__github__list_issues,mcp__github__search_issues,mcp__github__update_issue,mcp__github__update_issue_comment,mcp__github__create_pull_request,mcp__github__get_pull_request,mcp__github__get_pull_request_comments,mcp__github__get_pull_request_files,mcp__github__get_pull_request_reviews,mcp__github__get_pull_request_status,mcp__github__list_pull_requests,mcp__github__update_pull_request,mcp__github__update_pull_request_branch,mcp__github__update_pull_request_comment,mcp__github__merge_pull_request
70
+ additional_permissions: |
71
+ actions: read
72
+ settings: |
73
+ {
74
+ "model": "claude-sonnet-4-5-20250929",
75
+ "env": {
76
+ "GH_TOKEN": "${{ steps.marvin-token.outputs.token }}"
77
+ }
78
+ }
@@ -0,0 +1,26 @@
1
+ name: Publish FastMCP to PyPI
2
+ on:
3
+ release:
4
+ types: [published]
5
+ workflow_dispatch:
6
+
7
+ jobs:
8
+ pypi-publish:
9
+ name: Upload to PyPI
10
+ runs-on: ubuntu-latest
11
+ permissions:
12
+ id-token: write # For PyPI's trusted publishing
13
+ steps:
14
+ - name: Checkout
15
+ uses: actions/checkout@v5
16
+ with:
17
+ fetch-depth: 0
18
+
19
+ - name: "Install uv"
20
+ uses: astral-sh/setup-uv@v7
21
+
22
+ - name: Build
23
+ run: uv build
24
+
25
+ - name: Publish to PyPi
26
+ run: uv publish -v dist/*
@@ -0,0 +1,54 @@
1
+ name: Run static analysis
2
+
3
+ env:
4
+ # enable colored output
5
+ # https://github.com/pytest-dev/pytest/issues/7443
6
+ PY_COLORS: 1
7
+
8
+ on:
9
+ push:
10
+ branches: ["main"]
11
+ paths:
12
+ - "src/**"
13
+ - "tests/**"
14
+ - "uv.lock"
15
+ - "pyproject.toml"
16
+ - ".github/workflows/**"
17
+
18
+ # run on all pull requests because these checks are required and will block merges otherwise
19
+ pull_request:
20
+
21
+ workflow_dispatch:
22
+
23
+ permissions:
24
+ contents: read
25
+
26
+ jobs:
27
+ static_analysis:
28
+ timeout-minutes: 2
29
+
30
+ runs-on: ubuntu-latest
31
+
32
+ steps:
33
+ - uses: actions/checkout@v5
34
+ - name: Install uv
35
+ uses: astral-sh/setup-uv@v7
36
+ with:
37
+ enable-cache: true
38
+ cache-dependency-glob: "uv.lock"
39
+
40
+ - name: Install dependencies
41
+ run: uv sync
42
+
43
+ - name: Check lockfile is up to date
44
+ run: |
45
+ if ! uv lock --check; then
46
+ echo "❌ Lockfile is out of date!"
47
+ echo "To update the lockfile, run 'uv lock'."
48
+ exit 1
49
+ fi
50
+ echo "✅ Lockfile is up to date"
51
+ - name: Run pre-commit
52
+ run: uv run pre-commit run --all-files
53
+ env:
54
+ SKIP: no-commit-to-branch