fastmcp 2.13.3__tar.gz → 2.14.1__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 (943) hide show
  1. fastmcp-2.14.1/.github/workflows/martian-test-failure.yml +182 -0
  2. fastmcp-2.14.1/.github/workflows/run-tests.yml +115 -0
  3. fastmcp-2.14.1/.gitignore +77 -0
  4. fastmcp-2.14.1/.pre-commit-config.yaml +48 -0
  5. fastmcp-2.14.1/AGENTS.md +266 -0
  6. fastmcp-2.14.1/PKG-INFO +554 -0
  7. fastmcp-2.14.1/README.md +512 -0
  8. fastmcp-2.14.1/docs/changelog.mdx +2062 -0
  9. fastmcp-2.14.1/docs/clients/sampling.mdx +258 -0
  10. fastmcp-2.14.1/docs/clients/tasks.mdx +138 -0
  11. fastmcp-2.14.1/docs/css/version-badge.css +23 -0
  12. fastmcp-2.14.1/docs/deployment/http.mdx +736 -0
  13. fastmcp-2.14.1/docs/development/upgrade-guide.mdx +153 -0
  14. fastmcp-2.14.1/docs/docs.json +531 -0
  15. fastmcp-2.14.1/docs/integrations/fastapi.mdx +451 -0
  16. fastmcp-2.14.1/docs/integrations/oci.mdx +333 -0
  17. fastmcp-2.14.1/docs/integrations/openapi.mdx +451 -0
  18. fastmcp-2.14.1/docs/integrations/supabase.mdx +143 -0
  19. fastmcp-2.14.1/docs/python-sdk/fastmcp-cli-cli.mdx +129 -0
  20. fastmcp-2.14.1/docs/python-sdk/fastmcp-cli-tasks.mdx +41 -0
  21. fastmcp-2.14.1/docs/python-sdk/fastmcp-client-auth-oauth.mdx +104 -0
  22. fastmcp-2.14.1/docs/python-sdk/fastmcp-client-client.mdx +684 -0
  23. fastmcp-2.14.1/docs/python-sdk/fastmcp-client-elicitation.mdx +18 -0
  24. fastmcp-2.14.1/docs/python-sdk/fastmcp-client-messages.mdx +107 -0
  25. fastmcp-2.14.1/docs/python-sdk/fastmcp-client-tasks.mdx +219 -0
  26. fastmcp-2.14.1/docs/python-sdk/fastmcp-client-transports.mdx +312 -0
  27. fastmcp-2.14.1/docs/python-sdk/fastmcp-dependencies.mdx +14 -0
  28. fastmcp-2.14.1/docs/python-sdk/fastmcp-prompts-prompt.mdx +117 -0
  29. fastmcp-2.14.1/docs/python-sdk/fastmcp-resources-resource.mdx +123 -0
  30. fastmcp-2.14.1/docs/python-sdk/fastmcp-resources-template.mdx +182 -0
  31. fastmcp-2.14.1/docs/python-sdk/fastmcp-server-auth-auth.mdx +262 -0
  32. fastmcp-2.14.1/docs/python-sdk/fastmcp-server-auth-oauth_proxy.mdx +420 -0
  33. fastmcp-2.14.1/docs/python-sdk/fastmcp-server-auth-oidc_proxy.mdx +82 -0
  34. fastmcp-2.14.1/docs/python-sdk/fastmcp-server-auth-providers-azure.mdx +76 -0
  35. fastmcp-2.14.1/docs/python-sdk/fastmcp-server-auth-providers-discord.mdx +72 -0
  36. fastmcp-2.14.1/docs/python-sdk/fastmcp-server-context.mdx +421 -0
  37. fastmcp-2.14.1/docs/python-sdk/fastmcp-server-dependencies.mdx +262 -0
  38. fastmcp-2.14.1/docs/python-sdk/fastmcp-server-elicitation.mdx +140 -0
  39. fastmcp-2.14.1/docs/python-sdk/fastmcp-server-event_store.mdx +78 -0
  40. fastmcp-2.14.1/docs/python-sdk/fastmcp-server-http.mdx +106 -0
  41. fastmcp-2.14.1/docs/python-sdk/fastmcp-server-low_level.mdx +53 -0
  42. fastmcp-2.14.1/docs/python-sdk/fastmcp-server-middleware-middleware.mdx +112 -0
  43. fastmcp-2.14.1/docs/python-sdk/fastmcp-server-openapi-__init__.mdx +9 -0
  44. fastmcp-2.14.1/docs/python-sdk/fastmcp-server-openapi-components.mdx +62 -0
  45. fastmcp-2.14.1/docs/python-sdk/fastmcp-server-openapi-routing.mdx +23 -0
  46. fastmcp-2.14.1/docs/python-sdk/fastmcp-server-openapi-server.mdx +20 -0
  47. fastmcp-2.14.1/docs/python-sdk/fastmcp-server-proxy.mdx +339 -0
  48. fastmcp-2.14.1/docs/python-sdk/fastmcp-server-server.mdx +799 -0
  49. fastmcp-2.14.1/docs/python-sdk/fastmcp-server-tasks-__init__.mdx +12 -0
  50. fastmcp-2.14.1/docs/python-sdk/fastmcp-server-tasks-capabilities.mdx +24 -0
  51. fastmcp-2.14.1/docs/python-sdk/fastmcp-server-tasks-config.mdx +66 -0
  52. fastmcp-2.14.1/docs/python-sdk/fastmcp-server-tasks-converters.mdx +77 -0
  53. fastmcp-2.14.1/docs/python-sdk/fastmcp-server-tasks-handlers.mdx +78 -0
  54. fastmcp-2.14.1/docs/python-sdk/fastmcp-server-tasks-keys.mdx +91 -0
  55. fastmcp-2.14.1/docs/python-sdk/fastmcp-server-tasks-protocol.mdx +88 -0
  56. fastmcp-2.14.1/docs/python-sdk/fastmcp-server-tasks-subscriptions.mdx +35 -0
  57. fastmcp-2.14.1/docs/python-sdk/fastmcp-settings.mdx +56 -0
  58. fastmcp-2.14.1/docs/python-sdk/fastmcp-tools-tool.mdx +128 -0
  59. fastmcp-2.14.1/docs/python-sdk/fastmcp-tools-tool_transform.mdx +290 -0
  60. fastmcp-2.14.1/docs/python-sdk/fastmcp-utilities-openapi-__init__.mdx +9 -0
  61. fastmcp-2.14.1/docs/python-sdk/fastmcp-utilities-openapi-director.mdx +36 -0
  62. fastmcp-2.14.1/docs/python-sdk/fastmcp-utilities-openapi-formatters.mdx +115 -0
  63. fastmcp-2.14.1/docs/python-sdk/fastmcp-utilities-openapi-json_schema_converter.mdx +62 -0
  64. fastmcp-2.14.1/docs/python-sdk/fastmcp-utilities-openapi-models.mdx +35 -0
  65. fastmcp-2.14.1/docs/python-sdk/fastmcp-utilities-openapi-parser.mdx +43 -0
  66. fastmcp-2.14.1/docs/python-sdk/fastmcp-utilities-openapi-schemas.mdx +43 -0
  67. fastmcp-2.14.1/docs/python-sdk/fastmcp-utilities-tests.mdx +106 -0
  68. fastmcp-2.14.1/docs/python-sdk/fastmcp-utilities-types.mdx +169 -0
  69. fastmcp-2.14.1/docs/python-sdk/fastmcp-utilities-ui.mdx +140 -0
  70. fastmcp-2.14.1/docs/servers/auth/oauth-proxy.mdx +594 -0
  71. fastmcp-2.14.1/docs/servers/composition.mdx +326 -0
  72. fastmcp-2.14.1/docs/servers/context.mdx +613 -0
  73. fastmcp-2.14.1/docs/servers/elicitation.mdx +462 -0
  74. fastmcp-2.14.1/docs/servers/middleware.mdx +816 -0
  75. fastmcp-2.14.1/docs/servers/proxy.mdx +349 -0
  76. fastmcp-2.14.1/docs/servers/sampling.mdx +488 -0
  77. fastmcp-2.14.1/docs/servers/server.mdx +436 -0
  78. fastmcp-2.14.1/docs/servers/tasks.mdx +223 -0
  79. fastmcp-2.14.1/docs/servers/tools.mdx +982 -0
  80. fastmcp-2.14.1/docs/snippets/version-badge.mdx +7 -0
  81. fastmcp-2.14.1/examples/auth/mounted/README.md +39 -0
  82. fastmcp-2.14.1/examples/auth/mounted/client.py +50 -0
  83. fastmcp-2.14.1/examples/auth/mounted/server.py +121 -0
  84. fastmcp-2.14.1/examples/memory.py +341 -0
  85. fastmcp-2.14.1/examples/sampling/README.md +62 -0
  86. fastmcp-2.14.1/examples/sampling/server_fallback.py +88 -0
  87. fastmcp-2.14.1/examples/sampling/structured_output.py +110 -0
  88. fastmcp-2.14.1/examples/sampling/text.py +78 -0
  89. fastmcp-2.14.1/examples/sampling/tool_use.py +125 -0
  90. fastmcp-2.14.1/examples/screenshot.py +34 -0
  91. fastmcp-2.14.1/examples/smart_home/src/smart_home/lights/server.py +307 -0
  92. fastmcp-2.14.1/examples/tasks/README.md +60 -0
  93. fastmcp-2.14.1/examples/tasks/client.py +160 -0
  94. fastmcp-2.14.1/examples/tasks/docker-compose.yml +10 -0
  95. fastmcp-2.14.1/examples/tasks/server.py +75 -0
  96. fastmcp-2.14.1/pyproject.toml +183 -0
  97. fastmcp-2.14.1/src/fastmcp/__init__.py +35 -0
  98. fastmcp-2.14.1/src/fastmcp/cli/__init__.py +3 -0
  99. fastmcp-2.14.1/src/fastmcp/cli/__main__.py +5 -0
  100. fastmcp-2.14.1/src/fastmcp/cli/cli.py +864 -0
  101. fastmcp-2.14.1/src/fastmcp/cli/install/shared.py +127 -0
  102. fastmcp-2.14.1/src/fastmcp/cli/tasks.py +110 -0
  103. fastmcp-2.14.1/src/fastmcp/client/auth/oauth.py +325 -0
  104. fastmcp-2.14.1/src/fastmcp/client/client.py +1618 -0
  105. fastmcp-2.14.1/src/fastmcp/client/elicitation.py +80 -0
  106. fastmcp-2.14.1/src/fastmcp/client/messages.py +128 -0
  107. fastmcp-2.14.1/src/fastmcp/client/roots.py +76 -0
  108. fastmcp-2.14.1/src/fastmcp/client/sampling/__init__.py +69 -0
  109. fastmcp-2.14.1/src/fastmcp/client/sampling/handlers/anthropic.py +387 -0
  110. fastmcp-2.14.1/src/fastmcp/client/sampling/handlers/openai.py +399 -0
  111. fastmcp-2.14.1/src/fastmcp/client/tasks.py +551 -0
  112. fastmcp-2.14.1/src/fastmcp/client/transports.py +1170 -0
  113. fastmcp-2.14.1/src/fastmcp/contrib/component_manager/component_service.py +209 -0
  114. fastmcp-2.14.1/src/fastmcp/dependencies.py +25 -0
  115. fastmcp-2.14.1/src/fastmcp/experimental/sampling/handlers/__init__.py +5 -0
  116. fastmcp-2.14.1/src/fastmcp/experimental/sampling/handlers/openai.py +5 -0
  117. fastmcp-2.14.1/src/fastmcp/experimental/server/openapi/__init__.py +37 -0
  118. fastmcp-2.14.1/src/fastmcp/experimental/utilities/openapi/__init__.py +37 -0
  119. fastmcp-2.14.1/src/fastmcp/prompts/prompt.py +381 -0
  120. fastmcp-2.14.1/src/fastmcp/resources/resource.py +240 -0
  121. fastmcp-2.14.1/src/fastmcp/resources/template.py +413 -0
  122. fastmcp-2.14.1/src/fastmcp/server/auth/__init__.py +25 -0
  123. fastmcp-2.14.1/src/fastmcp/server/auth/auth.py +523 -0
  124. fastmcp-2.14.1/src/fastmcp/server/auth/oauth_proxy.py +2189 -0
  125. fastmcp-2.14.1/src/fastmcp/server/auth/oidc_proxy.py +419 -0
  126. fastmcp-2.14.1/src/fastmcp/server/auth/providers/in_memory.py +364 -0
  127. fastmcp-2.14.1/src/fastmcp/server/auth/providers/oci.py +233 -0
  128. fastmcp-2.14.1/src/fastmcp/server/context.py +1132 -0
  129. fastmcp-2.14.1/src/fastmcp/server/dependencies.py +621 -0
  130. fastmcp-2.14.1/src/fastmcp/server/elicitation.py +458 -0
  131. fastmcp-2.14.1/src/fastmcp/server/event_store.py +177 -0
  132. fastmcp-2.14.1/src/fastmcp/server/http.py +372 -0
  133. fastmcp-2.14.1/src/fastmcp/server/low_level.py +200 -0
  134. fastmcp-2.14.1/src/fastmcp/server/middleware/middleware.py +208 -0
  135. fastmcp-2.14.1/src/fastmcp/server/openapi/components.py +353 -0
  136. fastmcp-2.14.1/src/fastmcp/server/openapi/routing.py +130 -0
  137. fastmcp-2.14.1/src/fastmcp/server/openapi/server.py +452 -0
  138. fastmcp-2.14.1/src/fastmcp/server/proxy.py +707 -0
  139. fastmcp-2.14.1/src/fastmcp/server/sampling/__init__.py +10 -0
  140. fastmcp-2.14.1/src/fastmcp/server/sampling/run.py +301 -0
  141. fastmcp-2.14.1/src/fastmcp/server/sampling/sampling_tool.py +108 -0
  142. fastmcp-2.14.1/src/fastmcp/server/server.py +3139 -0
  143. fastmcp-2.14.1/src/fastmcp/server/tasks/__init__.py +21 -0
  144. fastmcp-2.14.1/src/fastmcp/server/tasks/capabilities.py +22 -0
  145. fastmcp-2.14.1/src/fastmcp/server/tasks/config.py +89 -0
  146. fastmcp-2.14.1/src/fastmcp/server/tasks/converters.py +206 -0
  147. fastmcp-2.14.1/src/fastmcp/server/tasks/handlers.py +356 -0
  148. fastmcp-2.14.1/src/fastmcp/server/tasks/keys.py +93 -0
  149. fastmcp-2.14.1/src/fastmcp/server/tasks/protocol.py +355 -0
  150. fastmcp-2.14.1/src/fastmcp/server/tasks/subscriptions.py +205 -0
  151. fastmcp-2.14.1/src/fastmcp/settings.py +412 -0
  152. fastmcp-2.14.1/src/fastmcp/tools/tool.py +639 -0
  153. fastmcp-2.14.1/src/fastmcp/tools/tool_transform.py +943 -0
  154. fastmcp-2.14.1/src/fastmcp/utilities/components.py +181 -0
  155. fastmcp-2.14.1/src/fastmcp/utilities/json_schema_type.py +648 -0
  156. fastmcp-2.14.1/src/fastmcp/utilities/mcp_config.py +56 -0
  157. fastmcp-2.14.1/src/fastmcp/utilities/mcp_server_config/v1/mcp_server_config.py +447 -0
  158. fastmcp-2.14.1/src/fastmcp/utilities/openapi/README.md +211 -0
  159. fastmcp-2.14.1/src/fastmcp/utilities/openapi/formatters.py +389 -0
  160. fastmcp-2.14.1/src/fastmcp/utilities/openapi/json_schema_converter.py +344 -0
  161. fastmcp-2.14.1/src/fastmcp/utilities/tests.py +286 -0
  162. fastmcp-2.14.1/src/fastmcp/utilities/types.py +496 -0
  163. fastmcp-2.14.1/tests/cli/test_tasks.py +50 -0
  164. fastmcp-2.14.1/tests/client/auth/test_oauth_client.py +173 -0
  165. fastmcp-2.14.1/tests/client/sampling/handlers/test_anthropic_handler.py +247 -0
  166. fastmcp-2.14.1/tests/client/sampling/handlers/test_openai_handler.py +100 -0
  167. fastmcp-2.14.1/tests/client/tasks/conftest.py +3 -0
  168. fastmcp-2.14.1/tests/client/tasks/test_client_prompt_tasks.py +103 -0
  169. fastmcp-2.14.1/tests/client/tasks/test_client_resource_tasks.py +108 -0
  170. fastmcp-2.14.1/tests/client/tasks/test_client_task_notifications.py +209 -0
  171. fastmcp-2.14.1/tests/client/tasks/test_client_task_protocol.py +85 -0
  172. fastmcp-2.14.1/tests/client/tasks/test_client_tool_tasks.py +88 -0
  173. fastmcp-2.14.1/tests/client/tasks/test_prompt_task_mcp_message.py +57 -0
  174. fastmcp-2.14.1/tests/client/tasks/test_task_context_validation.py +210 -0
  175. fastmcp-2.14.1/tests/client/tasks/test_task_result_caching.py +325 -0
  176. fastmcp-2.14.1/tests/client/test_client.py +1289 -0
  177. fastmcp-2.14.1/tests/client/test_elicitation.py +1071 -0
  178. fastmcp-2.14.1/tests/client/test_openapi.py +192 -0
  179. fastmcp-2.14.1/tests/client/test_sampling.py +988 -0
  180. fastmcp-2.14.1/tests/client/test_sse.py +190 -0
  181. fastmcp-2.14.1/tests/client/test_streamable_http.py +263 -0
  182. fastmcp-2.14.1/tests/client/transports/test_transports.py +39 -0
  183. fastmcp-2.14.1/tests/conftest.py +83 -0
  184. fastmcp-2.14.1/tests/deprecated/test_deprecated.py +48 -0
  185. fastmcp-2.14.1/tests/deprecated/test_openapi_deprecations.py +73 -0
  186. fastmcp-2.14.1/tests/deprecated/test_settings.py +300 -0
  187. fastmcp-2.14.1/tests/integration_tests/conftest.py +72 -0
  188. fastmcp-2.14.1/tests/integration_tests/test_github_mcp_remote.py +122 -0
  189. fastmcp-2.14.1/tests/prompts/test_prompt_manager.py +464 -0
  190. fastmcp-2.14.1/tests/resources/test_resource_template.py +991 -0
  191. fastmcp-2.14.1/tests/server/auth/providers/test_azure.py +882 -0
  192. fastmcp-2.14.1/tests/server/auth/test_jwt_provider.py +1101 -0
  193. fastmcp-2.14.1/tests/server/auth/test_oauth_mounting.py +380 -0
  194. fastmcp-2.14.1/tests/server/auth/test_oauth_proxy.py +1470 -0
  195. fastmcp-2.14.1/tests/server/auth/test_oauth_proxy_redirect_validation.py +201 -0
  196. fastmcp-2.14.1/tests/server/auth/test_oauth_proxy_storage.py +209 -0
  197. fastmcp-2.14.1/tests/server/http/test_http_middleware.py +234 -0
  198. fastmcp-2.14.1/tests/server/middleware/test_caching.py +528 -0
  199. fastmcp-2.14.1/tests/server/middleware/test_initialization_middleware.py +375 -0
  200. fastmcp-2.14.1/tests/server/middleware/test_logging.py +670 -0
  201. fastmcp-2.14.1/tests/server/middleware/test_tool_injection.py +498 -0
  202. fastmcp-2.14.1/tests/server/openapi/test_comprehensive.py +695 -0
  203. fastmcp-2.14.1/tests/server/openapi/test_deepobject_style.py +333 -0
  204. fastmcp-2.14.1/tests/server/openapi/test_end_to_end_compatibility.py +325 -0
  205. fastmcp-2.14.1/tests/server/openapi/test_openapi_features.py +401 -0
  206. fastmcp-2.14.1/tests/server/openapi/test_openapi_performance.py +136 -0
  207. fastmcp-2.14.1/tests/server/openapi/test_parameter_collisions.py +212 -0
  208. fastmcp-2.14.1/tests/server/openapi/test_performance_comparison.py +285 -0
  209. fastmcp-2.14.1/tests/server/openapi/test_server.py +337 -0
  210. fastmcp-2.14.1/tests/server/proxy/test_proxy_client.py +425 -0
  211. fastmcp-2.14.1/tests/server/proxy/test_proxy_server.py +789 -0
  212. fastmcp-2.14.1/tests/server/proxy/test_stateful_proxy_client.py +147 -0
  213. fastmcp-2.14.1/tests/server/sampling/test_sampling_tool.py +121 -0
  214. fastmcp-2.14.1/tests/server/tasks/__init__.py +1 -0
  215. fastmcp-2.14.1/tests/server/tasks/conftest.py +3 -0
  216. fastmcp-2.14.1/tests/server/tasks/test_progress_dependency.py +155 -0
  217. fastmcp-2.14.1/tests/server/tasks/test_server_tasks_parameter.py +310 -0
  218. fastmcp-2.14.1/tests/server/tasks/test_sync_function_task_disabled.py +229 -0
  219. fastmcp-2.14.1/tests/server/tasks/test_task_capabilities.py +44 -0
  220. fastmcp-2.14.1/tests/server/tasks/test_task_config_modes.py +350 -0
  221. fastmcp-2.14.1/tests/server/tasks/test_task_dependencies.py +272 -0
  222. fastmcp-2.14.1/tests/server/tasks/test_task_metadata.py +63 -0
  223. fastmcp-2.14.1/tests/server/tasks/test_task_methods.py +174 -0
  224. fastmcp-2.14.1/tests/server/tasks/test_task_mount.py +550 -0
  225. fastmcp-2.14.1/tests/server/tasks/test_task_prompts.py +92 -0
  226. fastmcp-2.14.1/tests/server/tasks/test_task_protocol.py +81 -0
  227. fastmcp-2.14.1/tests/server/tasks/test_task_proxy.py +165 -0
  228. fastmcp-2.14.1/tests/server/tasks/test_task_resources.py +108 -0
  229. fastmcp-2.14.1/tests/server/tasks/test_task_return_types.py +660 -0
  230. fastmcp-2.14.1/tests/server/tasks/test_task_security.py +47 -0
  231. fastmcp-2.14.1/tests/server/tasks/test_task_status_notifications.py +160 -0
  232. fastmcp-2.14.1/tests/server/tasks/test_task_tools.py +102 -0
  233. fastmcp-2.14.1/tests/server/tasks/test_task_ttl.py +87 -0
  234. fastmcp-2.14.1/tests/server/test_auth_integration.py +1242 -0
  235. fastmcp-2.14.1/tests/server/test_context.py +182 -0
  236. fastmcp-2.14.1/tests/server/test_dependencies.py +735 -0
  237. fastmcp-2.14.1/tests/server/test_event_store.py +237 -0
  238. fastmcp-2.14.1/tests/server/test_import_server.py +627 -0
  239. fastmcp-2.14.1/tests/server/test_logging.py +177 -0
  240. fastmcp-2.14.1/tests/server/test_mount.py +1426 -0
  241. fastmcp-2.14.1/tests/server/test_server.py +1526 -0
  242. fastmcp-2.14.1/tests/server/test_server_docket.py +170 -0
  243. fastmcp-2.14.1/tests/server/test_server_interactions.py +2804 -0
  244. fastmcp-2.14.1/tests/server/test_server_lifespan.py +71 -0
  245. fastmcp-2.14.1/tests/server/test_tool_annotations.py +255 -0
  246. fastmcp-2.14.1/tests/tools/test_tool.py +1897 -0
  247. fastmcp-2.14.1/tests/tools/test_tool_manager.py +1083 -0
  248. fastmcp-2.14.1/tests/utilities/openapi/test_allof_requestbody.py +227 -0
  249. fastmcp-2.14.1/tests/utilities/openapi/test_direct_array_schemas.py +323 -0
  250. fastmcp-2.14.1/tests/utilities/openapi/test_director.py +462 -0
  251. fastmcp-2.14.1/tests/utilities/openapi/test_legacy_compatibility.py +192 -0
  252. fastmcp-2.14.1/tests/utilities/openapi/test_models.py +476 -0
  253. fastmcp-2.14.1/tests/utilities/openapi/test_nullable_fields.py +375 -0
  254. fastmcp-2.14.1/tests/utilities/openapi/test_parser.py +460 -0
  255. fastmcp-2.14.1/tests/utilities/openapi/test_schemas.py +635 -0
  256. fastmcp-2.14.1/tests/utilities/openapi/test_transitive_references.py +842 -0
  257. fastmcp-2.14.1/tests/utilities/test_json_schema_type.py +1586 -0
  258. fastmcp-2.14.1/tests/utilities/test_types.py +673 -0
  259. fastmcp-2.14.1/uv.lock +2750 -0
  260. fastmcp-2.13.3/.github/workflows/martian-test-failure.yml +0 -179
  261. fastmcp-2.13.3/.github/workflows/run-tests.yml +0 -107
  262. fastmcp-2.13.3/.gitignore +0 -76
  263. fastmcp-2.13.3/.pre-commit-config.yaml +0 -48
  264. fastmcp-2.13.3/AGENTS.md +0 -265
  265. fastmcp-2.13.3/PKG-INFO +0 -551
  266. fastmcp-2.13.3/README.md +0 -512
  267. fastmcp-2.13.3/docs/changelog.mdx +0 -2062
  268. fastmcp-2.13.3/docs/clients/sampling.mdx +0 -156
  269. fastmcp-2.13.3/docs/css/version-badge.css +0 -39
  270. fastmcp-2.13.3/docs/deployment/http.mdx +0 -605
  271. fastmcp-2.13.3/docs/development/upgrade-guide.mdx +0 -50
  272. fastmcp-2.13.3/docs/docs.json +0 -491
  273. fastmcp-2.13.3/docs/integrations/fastapi.mdx +0 -460
  274. fastmcp-2.13.3/docs/integrations/oci.mdx +0 -333
  275. fastmcp-2.13.3/docs/integrations/openapi.mdx +0 -473
  276. fastmcp-2.13.3/docs/python-sdk/fastmcp-cli-cli.mdx +0 -129
  277. fastmcp-2.13.3/docs/python-sdk/fastmcp-client-auth-oauth.mdx +0 -104
  278. fastmcp-2.13.3/docs/python-sdk/fastmcp-client-client.mdx +0 -546
  279. fastmcp-2.13.3/docs/python-sdk/fastmcp-client-elicitation.mdx +0 -18
  280. fastmcp-2.13.3/docs/python-sdk/fastmcp-client-messages.mdx +0 -107
  281. fastmcp-2.13.3/docs/python-sdk/fastmcp-client-transports.mdx +0 -300
  282. fastmcp-2.13.3/docs/python-sdk/fastmcp-prompts-prompt.mdx +0 -117
  283. fastmcp-2.13.3/docs/python-sdk/fastmcp-resources-resource.mdx +0 -123
  284. fastmcp-2.13.3/docs/python-sdk/fastmcp-resources-template.mdx +0 -170
  285. fastmcp-2.13.3/docs/python-sdk/fastmcp-server-auth-auth.mdx +0 -210
  286. fastmcp-2.13.3/docs/python-sdk/fastmcp-server-auth-oauth_proxy.mdx +0 -429
  287. fastmcp-2.13.3/docs/python-sdk/fastmcp-server-auth-oidc_proxy.mdx +0 -82
  288. fastmcp-2.13.3/docs/python-sdk/fastmcp-server-auth-providers-azure.mdx +0 -76
  289. fastmcp-2.13.3/docs/python-sdk/fastmcp-server-auth-providers-bearer.mdx +0 -13
  290. fastmcp-2.13.3/docs/python-sdk/fastmcp-server-context.mdx +0 -412
  291. fastmcp-2.13.3/docs/python-sdk/fastmcp-server-dependencies.mdx +0 -49
  292. fastmcp-2.13.3/docs/python-sdk/fastmcp-server-elicitation.mdx +0 -87
  293. fastmcp-2.13.3/docs/python-sdk/fastmcp-server-http.mdx +0 -103
  294. fastmcp-2.13.3/docs/python-sdk/fastmcp-server-low_level.mdx +0 -53
  295. fastmcp-2.13.3/docs/python-sdk/fastmcp-server-middleware-middleware.mdx +0 -112
  296. fastmcp-2.13.3/docs/python-sdk/fastmcp-server-openapi.mdx +0 -91
  297. fastmcp-2.13.3/docs/python-sdk/fastmcp-server-proxy.mdx +0 -339
  298. fastmcp-2.13.3/docs/python-sdk/fastmcp-server-server.mdx +0 -876
  299. fastmcp-2.13.3/docs/python-sdk/fastmcp-settings.mdx +0 -84
  300. fastmcp-2.13.3/docs/python-sdk/fastmcp-tools-tool.mdx +0 -117
  301. fastmcp-2.13.3/docs/python-sdk/fastmcp-tools-tool_transform.mdx +0 -290
  302. fastmcp-2.13.3/docs/python-sdk/fastmcp-utilities-openapi.mdx +0 -180
  303. fastmcp-2.13.3/docs/python-sdk/fastmcp-utilities-tests.mdx +0 -106
  304. fastmcp-2.13.3/docs/python-sdk/fastmcp-utilities-types.mdx +0 -169
  305. fastmcp-2.13.3/docs/python-sdk/fastmcp-utilities-ui.mdx +0 -139
  306. fastmcp-2.13.3/docs/servers/auth/oauth-proxy.mdx +0 -591
  307. fastmcp-2.13.3/docs/servers/composition.mdx +0 -381
  308. fastmcp-2.13.3/docs/servers/context.mdx +0 -529
  309. fastmcp-2.13.3/docs/servers/elicitation.mdx +0 -319
  310. fastmcp-2.13.3/docs/servers/middleware.mdx +0 -790
  311. fastmcp-2.13.3/docs/servers/proxy.mdx +0 -352
  312. fastmcp-2.13.3/docs/servers/sampling.mdx +0 -270
  313. fastmcp-2.13.3/docs/servers/server.mdx +0 -439
  314. fastmcp-2.13.3/docs/servers/tools.mdx +0 -940
  315. fastmcp-2.13.3/docs/snippets/version-badge.mdx +0 -12
  316. fastmcp-2.13.3/examples/memory.py +0 -348
  317. fastmcp-2.13.3/examples/sampling.py +0 -52
  318. fastmcp-2.13.3/examples/sampling_fallback.py +0 -38
  319. fastmcp-2.13.3/examples/screenshot.py +0 -29
  320. fastmcp-2.13.3/examples/smart_home/src/smart_home/lights/server.py +0 -304
  321. fastmcp-2.13.3/pyproject.toml +0 -181
  322. fastmcp-2.13.3/src/fastmcp/__init__.py +0 -56
  323. fastmcp-2.13.3/src/fastmcp/cli/__init__.py +0 -6
  324. fastmcp-2.13.3/src/fastmcp/cli/cli.py +0 -878
  325. fastmcp-2.13.3/src/fastmcp/cli/install/shared.py +0 -142
  326. fastmcp-2.13.3/src/fastmcp/client/auth/oauth.py +0 -325
  327. fastmcp-2.13.3/src/fastmcp/client/client.py +0 -1015
  328. fastmcp-2.13.3/src/fastmcp/client/elicitation.py +0 -74
  329. fastmcp-2.13.3/src/fastmcp/client/messages.py +0 -126
  330. fastmcp-2.13.3/src/fastmcp/client/roots.py +0 -75
  331. fastmcp-2.13.3/src/fastmcp/client/sampling.py +0 -56
  332. fastmcp-2.13.3/src/fastmcp/client/transports.py +0 -1119
  333. fastmcp-2.13.3/src/fastmcp/contrib/component_manager/component_service.py +0 -225
  334. fastmcp-2.13.3/src/fastmcp/experimental/sampling/handlers/base.py +0 -21
  335. fastmcp-2.13.3/src/fastmcp/experimental/sampling/handlers/openai.py +0 -170
  336. fastmcp-2.13.3/src/fastmcp/experimental/server/openapi/components.py +0 -352
  337. fastmcp-2.13.3/src/fastmcp/experimental/server/openapi/routing.py +0 -130
  338. fastmcp-2.13.3/src/fastmcp/experimental/server/openapi/server.py +0 -451
  339. fastmcp-2.13.3/src/fastmcp/experimental/utilities/openapi/README.md +0 -239
  340. fastmcp-2.13.3/src/fastmcp/experimental/utilities/openapi/formatters.py +0 -389
  341. fastmcp-2.13.3/src/fastmcp/experimental/utilities/openapi/json_schema_converter.py +0 -344
  342. fastmcp-2.13.3/src/fastmcp/prompts/prompt.py +0 -381
  343. fastmcp-2.13.3/src/fastmcp/resources/resource.py +0 -223
  344. fastmcp-2.13.3/src/fastmcp/resources/template.py +0 -403
  345. fastmcp-2.13.3/src/fastmcp/server/auth/__init__.py +0 -34
  346. fastmcp-2.13.3/src/fastmcp/server/auth/auth.py +0 -399
  347. fastmcp-2.13.3/src/fastmcp/server/auth/oauth_proxy.py +0 -2239
  348. fastmcp-2.13.3/src/fastmcp/server/auth/oidc_proxy.py +0 -412
  349. fastmcp-2.13.3/src/fastmcp/server/auth/providers/bearer.py +0 -25
  350. fastmcp-2.13.3/src/fastmcp/server/auth/providers/in_memory.py +0 -364
  351. fastmcp-2.13.3/src/fastmcp/server/auth/providers/oci.py +0 -233
  352. fastmcp-2.13.3/src/fastmcp/server/context.py +0 -803
  353. fastmcp-2.13.3/src/fastmcp/server/dependencies.py +0 -163
  354. fastmcp-2.13.3/src/fastmcp/server/elicitation.py +0 -220
  355. fastmcp-2.13.3/src/fastmcp/server/http.py +0 -360
  356. fastmcp-2.13.3/src/fastmcp/server/low_level.py +0 -156
  357. fastmcp-2.13.3/src/fastmcp/server/middleware/middleware.py +0 -208
  358. fastmcp-2.13.3/src/fastmcp/server/openapi.py +0 -1087
  359. fastmcp-2.13.3/src/fastmcp/server/proxy.py +0 -694
  360. fastmcp-2.13.3/src/fastmcp/server/sampling/handler.py +0 -19
  361. fastmcp-2.13.3/src/fastmcp/server/server.py +0 -2898
  362. fastmcp-2.13.3/src/fastmcp/settings.py +0 -414
  363. fastmcp-2.13.3/src/fastmcp/tools/tool.py +0 -605
  364. fastmcp-2.13.3/src/fastmcp/tools/tool_transform.py +0 -954
  365. fastmcp-2.13.3/src/fastmcp/utilities/components.py +0 -181
  366. fastmcp-2.13.3/src/fastmcp/utilities/json_schema_type.py +0 -648
  367. fastmcp-2.13.3/src/fastmcp/utilities/mcp_config.py +0 -57
  368. fastmcp-2.13.3/src/fastmcp/utilities/mcp_server_config/v1/mcp_server_config.py +0 -447
  369. fastmcp-2.13.3/src/fastmcp/utilities/openapi.py +0 -1568
  370. fastmcp-2.13.3/src/fastmcp/utilities/tests.py +0 -280
  371. fastmcp-2.13.3/src/fastmcp/utilities/types.py +0 -488
  372. fastmcp-2.13.3/tests/client/auth/test_oauth_client.py +0 -126
  373. fastmcp-2.13.3/tests/client/test_client.py +0 -1173
  374. fastmcp-2.13.3/tests/client/test_elicitation.py +0 -731
  375. fastmcp-2.13.3/tests/client/test_openapi_experimental.py +0 -194
  376. fastmcp-2.13.3/tests/client/test_openapi_legacy.py +0 -190
  377. fastmcp-2.13.3/tests/client/test_sampling.py +0 -163
  378. fastmcp-2.13.3/tests/client/test_sse.py +0 -190
  379. fastmcp-2.13.3/tests/client/test_streamable_http.py +0 -254
  380. fastmcp-2.13.3/tests/client/transports/test_transports.py +0 -37
  381. fastmcp-2.13.3/tests/conftest.py +0 -76
  382. fastmcp-2.13.3/tests/deprecated/test_bearer_auth_provider.py +0 -13
  383. fastmcp-2.13.3/tests/deprecated/test_dependencies.py +0 -30
  384. fastmcp-2.13.3/tests/deprecated/test_deprecated.py +0 -111
  385. fastmcp-2.13.3/tests/deprecated/test_mount_import_arg_order.py +0 -275
  386. fastmcp-2.13.3/tests/deprecated/test_mount_separators.py +0 -113
  387. fastmcp-2.13.3/tests/deprecated/test_output_schema_false.py +0 -139
  388. fastmcp-2.13.3/tests/deprecated/test_proxy_client.py +0 -107
  389. fastmcp-2.13.3/tests/deprecated/test_resource_prefixes.py +0 -105
  390. fastmcp-2.13.3/tests/deprecated/test_route_type_ignore.py +0 -116
  391. fastmcp-2.13.3/tests/deprecated/test_settings.py +0 -361
  392. fastmcp-2.13.3/tests/experimental/openapi_parser/README.md +0 -5
  393. fastmcp-2.13.3/tests/experimental/openapi_parser/conftest.py +0 -11
  394. fastmcp-2.13.3/tests/experimental/openapi_parser/server/openapi/test_comprehensive.py +0 -695
  395. fastmcp-2.13.3/tests/experimental/openapi_parser/server/openapi/test_deepobject_style.py +0 -333
  396. fastmcp-2.13.3/tests/experimental/openapi_parser/server/openapi/test_end_to_end_compatibility.py +0 -325
  397. fastmcp-2.13.3/tests/experimental/openapi_parser/server/openapi/test_openapi_features.py +0 -401
  398. fastmcp-2.13.3/tests/experimental/openapi_parser/server/openapi/test_openapi_performance.py +0 -143
  399. fastmcp-2.13.3/tests/experimental/openapi_parser/server/openapi/test_parameter_collisions.py +0 -212
  400. fastmcp-2.13.3/tests/experimental/openapi_parser/server/openapi/test_performance_comparison.py +0 -285
  401. fastmcp-2.13.3/tests/experimental/openapi_parser/server/openapi/test_server.py +0 -337
  402. fastmcp-2.13.3/tests/experimental/openapi_parser/utilities/openapi/test_allof_requestbody.py +0 -227
  403. fastmcp-2.13.3/tests/experimental/openapi_parser/utilities/openapi/test_direct_array_schemas.py +0 -323
  404. fastmcp-2.13.3/tests/experimental/openapi_parser/utilities/openapi/test_director.py +0 -462
  405. fastmcp-2.13.3/tests/experimental/openapi_parser/utilities/openapi/test_legacy_compatibility.py +0 -333
  406. fastmcp-2.13.3/tests/experimental/openapi_parser/utilities/openapi/test_models.py +0 -476
  407. fastmcp-2.13.3/tests/experimental/openapi_parser/utilities/openapi/test_nullable_fields.py +0 -375
  408. fastmcp-2.13.3/tests/experimental/openapi_parser/utilities/openapi/test_parser.py +0 -460
  409. fastmcp-2.13.3/tests/experimental/openapi_parser/utilities/openapi/test_schemas.py +0 -635
  410. fastmcp-2.13.3/tests/experimental/openapi_parser/utilities/openapi/test_transitive_references.py +0 -842
  411. fastmcp-2.13.3/tests/experimental/sampling/test_openai_handler.py +0 -100
  412. fastmcp-2.13.3/tests/integration_tests/conftest.py +0 -28
  413. fastmcp-2.13.3/tests/integration_tests/test_github_mcp_remote.py +0 -123
  414. fastmcp-2.13.3/tests/prompts/test_prompt_manager.py +0 -436
  415. fastmcp-2.13.3/tests/resources/test_resource_template.py +0 -956
  416. fastmcp-2.13.3/tests/server/auth/providers/test_azure.py +0 -881
  417. fastmcp-2.13.3/tests/server/auth/test_jwt_provider.py +0 -1101
  418. fastmcp-2.13.3/tests/server/auth/test_oauth_mounting.py +0 -267
  419. fastmcp-2.13.3/tests/server/auth/test_oauth_proxy.py +0 -1411
  420. fastmcp-2.13.3/tests/server/auth/test_oauth_proxy_redirect_validation.py +0 -201
  421. fastmcp-2.13.3/tests/server/auth/test_oauth_proxy_storage.py +0 -207
  422. fastmcp-2.13.3/tests/server/http/test_http_middleware.py +0 -213
  423. fastmcp-2.13.3/tests/server/middleware/test_caching.py +0 -523
  424. fastmcp-2.13.3/tests/server/middleware/test_initialization_middleware.py +0 -251
  425. fastmcp-2.13.3/tests/server/middleware/test_logging.py +0 -670
  426. fastmcp-2.13.3/tests/server/middleware/test_tool_injection.py +0 -498
  427. fastmcp-2.13.3/tests/server/openapi/conftest.py +0 -135
  428. fastmcp-2.13.3/tests/server/openapi/test_advanced_behavior.py +0 -315
  429. fastmcp-2.13.3/tests/server/openapi/test_basic_functionality.py +0 -369
  430. fastmcp-2.13.3/tests/server/openapi/test_configuration.py +0 -933
  431. fastmcp-2.13.3/tests/server/openapi/test_deepobject_style.py +0 -281
  432. fastmcp-2.13.3/tests/server/openapi/test_description_propagation.py +0 -796
  433. fastmcp-2.13.3/tests/server/openapi/test_explode_integration.py +0 -320
  434. fastmcp-2.13.3/tests/server/openapi/test_openapi_compatibility.py +0 -661
  435. fastmcp-2.13.3/tests/server/openapi/test_openapi_path_parameters.py +0 -624
  436. fastmcp-2.13.3/tests/server/openapi/test_optional_parameters.py +0 -100
  437. fastmcp-2.13.3/tests/server/openapi/test_parameter_collisions.py +0 -258
  438. fastmcp-2.13.3/tests/server/openapi/test_route_map_fn.py +0 -452
  439. fastmcp-2.13.3/tests/server/proxy/test_proxy_client.py +0 -419
  440. fastmcp-2.13.3/tests/server/proxy/test_proxy_server.py +0 -771
  441. fastmcp-2.13.3/tests/server/proxy/test_stateful_proxy_client.py +0 -148
  442. fastmcp-2.13.3/tests/server/test_auth_integration.py +0 -1240
  443. fastmcp-2.13.3/tests/server/test_context.py +0 -236
  444. fastmcp-2.13.3/tests/server/test_experimental_openapi_feature_flag.py +0 -98
  445. fastmcp-2.13.3/tests/server/test_import_server.py +0 -646
  446. fastmcp-2.13.3/tests/server/test_logging.py +0 -177
  447. fastmcp-2.13.3/tests/server/test_mount.py +0 -1241
  448. fastmcp-2.13.3/tests/server/test_resource_prefix_formats.py +0 -65
  449. fastmcp-2.13.3/tests/server/test_server.py +0 -1686
  450. fastmcp-2.13.3/tests/server/test_server_interactions.py +0 -2775
  451. fastmcp-2.13.3/tests/server/test_server_lifespan.py +0 -68
  452. fastmcp-2.13.3/tests/server/test_tool_annotations.py +0 -221
  453. fastmcp-2.13.3/tests/test_examples.py +0 -70
  454. fastmcp-2.13.3/tests/tools/__init__.py +0 -0
  455. fastmcp-2.13.3/tests/tools/test_tool.py +0 -1708
  456. fastmcp-2.13.3/tests/tools/test_tool_manager.py +0 -1053
  457. fastmcp-2.13.3/tests/utilities/openapi/__init__.py +0 -1
  458. fastmcp-2.13.3/tests/utilities/openapi/conftest.py +0 -1
  459. fastmcp-2.13.3/tests/utilities/openapi/test_nullable_fields.py +0 -243
  460. fastmcp-2.13.3/tests/utilities/openapi/test_openapi.py +0 -1285
  461. fastmcp-2.13.3/tests/utilities/openapi/test_openapi_advanced.py +0 -665
  462. fastmcp-2.13.3/tests/utilities/openapi/test_openapi_fastapi.py +0 -540
  463. fastmcp-2.13.3/tests/utilities/openapi/test_openapi_output_schemas.py +0 -276
  464. fastmcp-2.13.3/tests/utilities/test_json_schema_type.py +0 -1586
  465. fastmcp-2.13.3/tests/utilities/test_types.py +0 -716
  466. fastmcp-2.13.3/uv.lock +0 -2103
  467. {fastmcp-2.13.3 → fastmcp-2.14.1}/.ccignore +0 -0
  468. {fastmcp-2.13.3 → fastmcp-2.14.1}/.cursor/rules/core-mcp-objects.mdc +0 -0
  469. {fastmcp-2.13.3 → fastmcp-2.14.1}/.cursor/worktrees.json +0 -0
  470. {fastmcp-2.13.3 → fastmcp-2.14.1}/.github/ISSUE_TEMPLATE/bug.yml +0 -0
  471. {fastmcp-2.13.3 → fastmcp-2.14.1}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  472. {fastmcp-2.13.3 → fastmcp-2.14.1}/.github/ISSUE_TEMPLATE/enhancement.yml +0 -0
  473. {fastmcp-2.13.3 → fastmcp-2.14.1}/.github/copilot-instructions.md +0 -0
  474. {fastmcp-2.13.3 → fastmcp-2.14.1}/.github/dependabot.yml +0 -0
  475. {fastmcp-2.13.3 → fastmcp-2.14.1}/.github/pull_request_template.md +0 -0
  476. {fastmcp-2.13.3 → fastmcp-2.14.1}/.github/release.yml +0 -0
  477. {fastmcp-2.13.3 → fastmcp-2.14.1}/.github/workflows/auto-close-duplicates.yml +0 -0
  478. {fastmcp-2.13.3 → fastmcp-2.14.1}/.github/workflows/auto-close-needs-mre.yml +0 -0
  479. {fastmcp-2.13.3 → fastmcp-2.14.1}/.github/workflows/martian-issue-triage.yml +0 -0
  480. {fastmcp-2.13.3 → fastmcp-2.14.1}/.github/workflows/marvin-dedupe-issues.yml +0 -0
  481. {fastmcp-2.13.3 → fastmcp-2.14.1}/.github/workflows/marvin-label-triage.yml +0 -0
  482. {fastmcp-2.13.3 → fastmcp-2.14.1}/.github/workflows/marvin.yml +0 -0
  483. {fastmcp-2.13.3 → fastmcp-2.14.1}/.github/workflows/publish.yml +0 -0
  484. {fastmcp-2.13.3 → fastmcp-2.14.1}/.github/workflows/run-static.yml +0 -0
  485. {fastmcp-2.13.3 → fastmcp-2.14.1}/.github/workflows/update-config-schema.yml +0 -0
  486. {fastmcp-2.13.3 → fastmcp-2.14.1}/.github/workflows/update-sdk-docs.yml +0 -0
  487. {fastmcp-2.13.3 → fastmcp-2.14.1}/CLAUDE.md +0 -0
  488. {fastmcp-2.13.3 → fastmcp-2.14.1}/CODE_OF_CONDUCT.md +0 -0
  489. {fastmcp-2.13.3 → fastmcp-2.14.1}/LICENSE +0 -0
  490. {fastmcp-2.13.3 → fastmcp-2.14.1}/SECURITY.md +0 -0
  491. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/.ccignore +0 -0
  492. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/.cursor/rules/mintlify.mdc +0 -0
  493. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/assets/brand/blue-logo.png +0 -0
  494. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/assets/brand/f-watercolor-waves-dark.png +0 -0
  495. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/assets/brand/f-watercolor-waves.png +0 -0
  496. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/assets/brand/favicon.svg +0 -0
  497. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/assets/brand/thumbnail-background.png +0 -0
  498. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/assets/brand/wordmark-padded.png +0 -0
  499. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/assets/brand/wordmark-watercolor-rainbow-dark.png +0 -0
  500. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/assets/brand/wordmark-watercolor-rainbow.png +0 -0
  501. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/assets/brand/wordmark-watercolor-waves-dark.png +0 -0
  502. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/assets/brand/wordmark-watercolor-waves.png +0 -0
  503. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/assets/brand/wordmark-white-padded.png +0 -0
  504. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/assets/brand/wordmark-white.png +0 -0
  505. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/assets/brand/wordmark.png +0 -0
  506. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/assets/images/fastmcp_cloud/connect.png +0 -0
  507. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/assets/images/fastmcp_cloud/create_project.png +0 -0
  508. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/assets/images/fastmcp_cloud/deployment.png +0 -0
  509. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/assets/images/fastmcp_cloud/quickstart.png +0 -0
  510. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/assets/images/oauth-proxy-consent-screen.png +0 -0
  511. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/assets/images/tutorial-rest-api-result.png +0 -0
  512. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/assets/schemas/mcp_server_config/latest.json +0 -0
  513. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/assets/schemas/mcp_server_config/v1.json +0 -0
  514. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/assets/updates/release-2-7.png +0 -0
  515. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/clients/auth/bearer.mdx +0 -0
  516. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/clients/auth/oauth.mdx +0 -0
  517. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/clients/client.mdx +0 -0
  518. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/clients/elicitation.mdx +0 -0
  519. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/clients/logging.mdx +0 -0
  520. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/clients/messages.mdx +0 -0
  521. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/clients/progress.mdx +0 -0
  522. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/clients/prompts.mdx +0 -0
  523. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/clients/resources.mdx +0 -0
  524. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/clients/roots.mdx +0 -0
  525. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/clients/tools.mdx +0 -0
  526. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/clients/transports.mdx +0 -0
  527. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/community/README.md +0 -0
  528. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/community/showcase.mdx +0 -0
  529. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/css/banner.css +0 -0
  530. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/css/python-sdk.css +0 -0
  531. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/css/style.css +0 -0
  532. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/deployment/fastmcp-cloud.mdx +0 -0
  533. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/deployment/running-server.mdx +0 -0
  534. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/deployment/server-configuration.mdx +0 -0
  535. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/development/contributing.mdx +0 -0
  536. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/development/releases.mdx +0 -0
  537. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/development/tests.mdx +0 -0
  538. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/getting-started/installation.mdx +0 -0
  539. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/getting-started/quickstart.mdx +0 -0
  540. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/getting-started/welcome.mdx +0 -0
  541. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/integrations/anthropic.mdx +0 -0
  542. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/integrations/auth0.mdx +0 -0
  543. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/integrations/authkit.mdx +0 -0
  544. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/integrations/aws-cognito.mdx +0 -0
  545. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/integrations/azure.mdx +0 -0
  546. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/integrations/chatgpt.mdx +0 -0
  547. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/integrations/claude-code.mdx +0 -0
  548. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/integrations/claude-desktop.mdx +0 -0
  549. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/integrations/cursor-install-mcp.png +0 -0
  550. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/integrations/cursor.mdx +0 -0
  551. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/integrations/descope.mdx +0 -0
  552. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/integrations/discord.mdx +0 -0
  553. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/integrations/eunomia-authorization.mdx +0 -0
  554. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/integrations/gemini-cli.mdx +0 -0
  555. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/integrations/gemini.mdx +0 -0
  556. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/integrations/github.mdx +0 -0
  557. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/integrations/google.mdx +0 -0
  558. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/integrations/images/authkit/enable_dcr.png +0 -0
  559. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/integrations/images/oci/ociaddapplication.png +0 -0
  560. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/integrations/images/oci/ocieditdomainsettings.png +0 -0
  561. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/integrations/images/oci/ocieditdomainsettingsbutton.png +0 -0
  562. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/integrations/images/oci/ocioauthconfiguration.png +0 -0
  563. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/integrations/images/permit/abac_condition_example.png +0 -0
  564. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/integrations/images/permit/abac_policy_example.png +0 -0
  565. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/integrations/images/permit/policy_mapping.png +0 -0
  566. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/integrations/images/permit/role_assignement.png +0 -0
  567. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/integrations/mcp-json-configuration.mdx +0 -0
  568. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/integrations/openai.mdx +0 -0
  569. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/integrations/permit.mdx +0 -0
  570. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/integrations/scalekit.mdx +0 -0
  571. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/integrations/workos.mdx +0 -0
  572. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/patterns/cli.mdx +0 -0
  573. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/patterns/contrib.mdx +0 -0
  574. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/patterns/decorating-methods.mdx +0 -0
  575. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/patterns/testing.mdx +0 -0
  576. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/patterns/tool-transformation.mdx +0 -0
  577. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/public/schemas/fastmcp.json/latest.json +0 -0
  578. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/public/schemas/fastmcp.json/v1.json +0 -0
  579. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/python-sdk/fastmcp-cli-__init__.mdx +0 -0
  580. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/python-sdk/fastmcp-cli-install-__init__.mdx +0 -0
  581. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/python-sdk/fastmcp-cli-install-claude_code.mdx +0 -0
  582. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/python-sdk/fastmcp-cli-install-claude_desktop.mdx +0 -0
  583. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/python-sdk/fastmcp-cli-install-cursor.mdx +0 -0
  584. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/python-sdk/fastmcp-cli-install-gemini_cli.mdx +0 -0
  585. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/python-sdk/fastmcp-cli-install-mcp_json.mdx +0 -0
  586. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/python-sdk/fastmcp-cli-install-shared.mdx +0 -0
  587. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/python-sdk/fastmcp-cli-run.mdx +0 -0
  588. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/python-sdk/fastmcp-client-__init__.mdx +0 -0
  589. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/python-sdk/fastmcp-client-auth-__init__.mdx +0 -0
  590. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/python-sdk/fastmcp-client-auth-bearer.mdx +0 -0
  591. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/python-sdk/fastmcp-client-logging.mdx +0 -0
  592. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/python-sdk/fastmcp-client-oauth_callback.mdx +0 -0
  593. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/python-sdk/fastmcp-client-progress.mdx +0 -0
  594. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/python-sdk/fastmcp-client-roots.mdx +0 -0
  595. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/python-sdk/fastmcp-client-sampling.mdx +0 -0
  596. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/python-sdk/fastmcp-exceptions.mdx +0 -0
  597. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/python-sdk/fastmcp-mcp_config.mdx +0 -0
  598. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/python-sdk/fastmcp-prompts-__init__.mdx +0 -0
  599. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/python-sdk/fastmcp-prompts-prompt_manager.mdx +0 -0
  600. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/python-sdk/fastmcp-resources-__init__.mdx +0 -0
  601. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/python-sdk/fastmcp-resources-resource_manager.mdx +0 -0
  602. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/python-sdk/fastmcp-resources-types.mdx +0 -0
  603. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/python-sdk/fastmcp-server-__init__.mdx +0 -0
  604. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/python-sdk/fastmcp-server-auth-__init__.mdx +0 -0
  605. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/python-sdk/fastmcp-server-auth-jwt_issuer.mdx +0 -0
  606. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/python-sdk/fastmcp-server-auth-middleware.mdx +0 -0
  607. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/python-sdk/fastmcp-server-auth-providers-__init__.mdx +0 -0
  608. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/python-sdk/fastmcp-server-auth-providers-auth0.mdx +0 -0
  609. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/python-sdk/fastmcp-server-auth-providers-aws.mdx +0 -0
  610. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/python-sdk/fastmcp-server-auth-providers-debug.mdx +0 -0
  611. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/python-sdk/fastmcp-server-auth-providers-descope.mdx +0 -0
  612. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/python-sdk/fastmcp-server-auth-providers-github.mdx +0 -0
  613. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/python-sdk/fastmcp-server-auth-providers-google.mdx +0 -0
  614. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/python-sdk/fastmcp-server-auth-providers-in_memory.mdx +0 -0
  615. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/python-sdk/fastmcp-server-auth-providers-introspection.mdx +0 -0
  616. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/python-sdk/fastmcp-server-auth-providers-jwt.mdx +0 -0
  617. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/python-sdk/fastmcp-server-auth-providers-oci.mdx +0 -0
  618. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/python-sdk/fastmcp-server-auth-providers-scalekit.mdx +0 -0
  619. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/python-sdk/fastmcp-server-auth-providers-supabase.mdx +0 -0
  620. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/python-sdk/fastmcp-server-auth-providers-workos.mdx +0 -0
  621. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/python-sdk/fastmcp-server-auth-redirect_validation.mdx +0 -0
  622. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/python-sdk/fastmcp-server-middleware-__init__.mdx +0 -0
  623. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/python-sdk/fastmcp-server-middleware-caching.mdx +0 -0
  624. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/python-sdk/fastmcp-server-middleware-error_handling.mdx +0 -0
  625. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/python-sdk/fastmcp-server-middleware-logging.mdx +0 -0
  626. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/python-sdk/fastmcp-server-middleware-rate_limiting.mdx +0 -0
  627. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/python-sdk/fastmcp-server-middleware-timing.mdx +0 -0
  628. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/python-sdk/fastmcp-server-middleware-tool_injection.mdx +0 -0
  629. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/python-sdk/fastmcp-tools-__init__.mdx +0 -0
  630. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/python-sdk/fastmcp-tools-tool_manager.mdx +0 -0
  631. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/python-sdk/fastmcp-utilities-__init__.mdx +0 -0
  632. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/python-sdk/fastmcp-utilities-auth.mdx +0 -0
  633. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/python-sdk/fastmcp-utilities-cli.mdx +0 -0
  634. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/python-sdk/fastmcp-utilities-components.mdx +0 -0
  635. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/python-sdk/fastmcp-utilities-exceptions.mdx +0 -0
  636. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/python-sdk/fastmcp-utilities-http.mdx +0 -0
  637. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/python-sdk/fastmcp-utilities-inspect.mdx +0 -0
  638. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/python-sdk/fastmcp-utilities-json_schema.mdx +0 -0
  639. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/python-sdk/fastmcp-utilities-json_schema_type.mdx +0 -0
  640. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/python-sdk/fastmcp-utilities-logging.mdx +0 -0
  641. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/python-sdk/fastmcp-utilities-mcp_config.mdx +0 -0
  642. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/python-sdk/fastmcp-utilities-mcp_server_config-__init__.mdx +0 -0
  643. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-__init__.mdx +0 -0
  644. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-environments-__init__.mdx +0 -0
  645. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-environments-base.mdx +0 -0
  646. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-environments-uv.mdx +0 -0
  647. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-mcp_server_config.mdx +0 -0
  648. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-sources-__init__.mdx +0 -0
  649. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-sources-base.mdx +0 -0
  650. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-sources-filesystem.mdx +0 -0
  651. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/servers/auth/authentication.mdx +0 -0
  652. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/servers/auth/full-oauth-server.mdx +0 -0
  653. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/servers/auth/oidc-proxy.mdx +0 -0
  654. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/servers/auth/remote-oauth.mdx +0 -0
  655. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/servers/auth/token-verification.mdx +0 -0
  656. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/servers/icons.mdx +0 -0
  657. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/servers/logging.mdx +0 -0
  658. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/servers/progress.mdx +0 -0
  659. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/servers/prompts.mdx +0 -0
  660. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/servers/resources.mdx +0 -0
  661. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/servers/storage-backends.mdx +0 -0
  662. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/snippets/local-focus.mdx +0 -0
  663. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/snippets/youtube-embed.mdx +0 -0
  664. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/tutorials/create-mcp-server.mdx +0 -0
  665. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/tutorials/mcp.mdx +0 -0
  666. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/tutorials/rest-api.mdx +0 -0
  667. {fastmcp-2.13.3 → fastmcp-2.14.1}/docs/updates.mdx +0 -0
  668. {fastmcp-2.13.3 → fastmcp-2.14.1}/examples/atproto_mcp/README.md +0 -0
  669. {fastmcp-2.13.3 → fastmcp-2.14.1}/examples/atproto_mcp/demo.py +0 -0
  670. {fastmcp-2.13.3 → fastmcp-2.14.1}/examples/atproto_mcp/fastmcp.json +0 -0
  671. {fastmcp-2.13.3 → fastmcp-2.14.1}/examples/atproto_mcp/pyproject.toml +0 -0
  672. {fastmcp-2.13.3 → fastmcp-2.14.1}/examples/atproto_mcp/src/atproto_mcp/__init__.py +0 -0
  673. {fastmcp-2.13.3 → fastmcp-2.14.1}/examples/atproto_mcp/src/atproto_mcp/__main__.py +0 -0
  674. {fastmcp-2.13.3 → fastmcp-2.14.1}/examples/atproto_mcp/src/atproto_mcp/_atproto/__init__.py +0 -0
  675. {fastmcp-2.13.3 → fastmcp-2.14.1}/examples/atproto_mcp/src/atproto_mcp/_atproto/_client.py +0 -0
  676. {fastmcp-2.13.3 → fastmcp-2.14.1}/examples/atproto_mcp/src/atproto_mcp/_atproto/_posts.py +0 -0
  677. {fastmcp-2.13.3 → fastmcp-2.14.1}/examples/atproto_mcp/src/atproto_mcp/_atproto/_profile.py +0 -0
  678. {fastmcp-2.13.3 → fastmcp-2.14.1}/examples/atproto_mcp/src/atproto_mcp/_atproto/_read.py +0 -0
  679. {fastmcp-2.13.3 → fastmcp-2.14.1}/examples/atproto_mcp/src/atproto_mcp/_atproto/_social.py +0 -0
  680. {fastmcp-2.13.3 → fastmcp-2.14.1}/examples/atproto_mcp/src/atproto_mcp/py.typed +0 -0
  681. {fastmcp-2.13.3 → fastmcp-2.14.1}/examples/atproto_mcp/src/atproto_mcp/server.py +0 -0
  682. {fastmcp-2.13.3 → fastmcp-2.14.1}/examples/atproto_mcp/src/atproto_mcp/settings.py +0 -0
  683. {fastmcp-2.13.3 → fastmcp-2.14.1}/examples/atproto_mcp/src/atproto_mcp/types.py +0 -0
  684. {fastmcp-2.13.3 → fastmcp-2.14.1}/examples/auth/authkit_dcr/README.md +0 -0
  685. {fastmcp-2.13.3 → fastmcp-2.14.1}/examples/auth/authkit_dcr/client.py +0 -0
  686. {fastmcp-2.13.3 → fastmcp-2.14.1}/examples/auth/authkit_dcr/server.py +0 -0
  687. {fastmcp-2.13.3 → fastmcp-2.14.1}/examples/auth/aws_oauth/README.md +0 -0
  688. {fastmcp-2.13.3 → fastmcp-2.14.1}/examples/auth/aws_oauth/client.py +0 -0
  689. {fastmcp-2.13.3 → fastmcp-2.14.1}/examples/auth/aws_oauth/requirements.txt +0 -0
  690. {fastmcp-2.13.3 → fastmcp-2.14.1}/examples/auth/aws_oauth/server.py +0 -0
  691. {fastmcp-2.13.3 → fastmcp-2.14.1}/examples/auth/azure_oauth/README.md +0 -0
  692. {fastmcp-2.13.3 → fastmcp-2.14.1}/examples/auth/azure_oauth/client.py +0 -0
  693. {fastmcp-2.13.3 → fastmcp-2.14.1}/examples/auth/azure_oauth/server.py +0 -0
  694. {fastmcp-2.13.3 → fastmcp-2.14.1}/examples/auth/discord_oauth/README.md +0 -0
  695. {fastmcp-2.13.3 → fastmcp-2.14.1}/examples/auth/discord_oauth/client.py +0 -0
  696. {fastmcp-2.13.3 → fastmcp-2.14.1}/examples/auth/discord_oauth/server.py +0 -0
  697. {fastmcp-2.13.3 → fastmcp-2.14.1}/examples/auth/github_oauth/README.md +0 -0
  698. {fastmcp-2.13.3 → fastmcp-2.14.1}/examples/auth/github_oauth/client.py +0 -0
  699. {fastmcp-2.13.3 → fastmcp-2.14.1}/examples/auth/github_oauth/server.py +0 -0
  700. {fastmcp-2.13.3 → fastmcp-2.14.1}/examples/auth/google_oauth/README.md +0 -0
  701. {fastmcp-2.13.3 → fastmcp-2.14.1}/examples/auth/google_oauth/client.py +0 -0
  702. {fastmcp-2.13.3 → fastmcp-2.14.1}/examples/auth/google_oauth/server.py +0 -0
  703. {fastmcp-2.13.3 → fastmcp-2.14.1}/examples/auth/scalekit_oauth/README.md +0 -0
  704. {fastmcp-2.13.3 → fastmcp-2.14.1}/examples/auth/scalekit_oauth/client.py +0 -0
  705. {fastmcp-2.13.3 → fastmcp-2.14.1}/examples/auth/scalekit_oauth/server.py +0 -0
  706. {fastmcp-2.13.3 → fastmcp-2.14.1}/examples/auth/workos_oauth/README.md +0 -0
  707. {fastmcp-2.13.3 → fastmcp-2.14.1}/examples/auth/workos_oauth/client.py +0 -0
  708. {fastmcp-2.13.3 → fastmcp-2.14.1}/examples/auth/workos_oauth/server.py +0 -0
  709. {fastmcp-2.13.3 → fastmcp-2.14.1}/examples/complex_inputs.py +0 -0
  710. {fastmcp-2.13.3 → fastmcp-2.14.1}/examples/config_server.py +0 -0
  711. {fastmcp-2.13.3 → fastmcp-2.14.1}/examples/desktop.py +0 -0
  712. {fastmcp-2.13.3 → fastmcp-2.14.1}/examples/echo.py +0 -0
  713. {fastmcp-2.13.3 → fastmcp-2.14.1}/examples/fastmcp_config/env_interpolation_example.json +0 -0
  714. {fastmcp-2.13.3 → fastmcp-2.14.1}/examples/fastmcp_config/fastmcp.json +0 -0
  715. {fastmcp-2.13.3 → fastmcp-2.14.1}/examples/fastmcp_config/full_example.fastmcp.json +0 -0
  716. {fastmcp-2.13.3 → fastmcp-2.14.1}/examples/fastmcp_config/server.py +0 -0
  717. {fastmcp-2.13.3 → fastmcp-2.14.1}/examples/fastmcp_config/simple.fastmcp.json +0 -0
  718. {fastmcp-2.13.3 → fastmcp-2.14.1}/examples/fastmcp_config_demo/README.md +0 -0
  719. {fastmcp-2.13.3 → fastmcp-2.14.1}/examples/fastmcp_config_demo/fastmcp.json +0 -0
  720. {fastmcp-2.13.3 → fastmcp-2.14.1}/examples/fastmcp_config_demo/server.py +0 -0
  721. {fastmcp-2.13.3 → fastmcp-2.14.1}/examples/get_file.py +0 -0
  722. {fastmcp-2.13.3 → fastmcp-2.14.1}/examples/in_memory_proxy_example.py +0 -0
  723. {fastmcp-2.13.3 → fastmcp-2.14.1}/examples/memory.fastmcp.json +0 -0
  724. {fastmcp-2.13.3 → fastmcp-2.14.1}/examples/mount_example.fastmcp.json +0 -0
  725. {fastmcp-2.13.3 → fastmcp-2.14.1}/examples/mount_example.py +0 -0
  726. {fastmcp-2.13.3 → fastmcp-2.14.1}/examples/screenshot.fastmcp.json +0 -0
  727. {fastmcp-2.13.3 → fastmcp-2.14.1}/examples/serializer.py +0 -0
  728. {fastmcp-2.13.3 → fastmcp-2.14.1}/examples/simple_echo.py +0 -0
  729. {fastmcp-2.13.3 → fastmcp-2.14.1}/examples/smart_home/README.md +0 -0
  730. {fastmcp-2.13.3 → fastmcp-2.14.1}/examples/smart_home/hub.fastmcp.json +0 -0
  731. {fastmcp-2.13.3 → fastmcp-2.14.1}/examples/smart_home/lights.fastmcp.json +0 -0
  732. {fastmcp-2.13.3 → fastmcp-2.14.1}/examples/smart_home/pyproject.toml +0 -0
  733. {fastmcp-2.13.3 → fastmcp-2.14.1}/examples/smart_home/src/smart_home/__init__.py +0 -0
  734. {fastmcp-2.13.3 → fastmcp-2.14.1}/examples/smart_home/src/smart_home/__main__.py +0 -0
  735. {fastmcp-2.13.3 → fastmcp-2.14.1}/examples/smart_home/src/smart_home/hub.py +0 -0
  736. {fastmcp-2.13.3 → fastmcp-2.14.1}/examples/smart_home/src/smart_home/lights/__init__.py +0 -0
  737. {fastmcp-2.13.3 → fastmcp-2.14.1}/examples/smart_home/src/smart_home/lights/hue_utils.py +0 -0
  738. {fastmcp-2.13.3 → fastmcp-2.14.1}/examples/smart_home/src/smart_home/py.typed +0 -0
  739. {fastmcp-2.13.3 → fastmcp-2.14.1}/examples/smart_home/src/smart_home/settings.py +0 -0
  740. {fastmcp-2.13.3 → fastmcp-2.14.1}/examples/tags_example.py +0 -0
  741. {fastmcp-2.13.3 → fastmcp-2.14.1}/examples/testing_demo/README.md +0 -0
  742. {fastmcp-2.13.3 → fastmcp-2.14.1}/examples/testing_demo/pyproject.toml +0 -0
  743. {fastmcp-2.13.3 → fastmcp-2.14.1}/examples/testing_demo/server.py +0 -0
  744. {fastmcp-2.13.3 → fastmcp-2.14.1}/examples/testing_demo/tests/test_server.py +0 -0
  745. {fastmcp-2.13.3 → fastmcp-2.14.1}/examples/testing_demo/uv.lock +0 -0
  746. {fastmcp-2.13.3 → fastmcp-2.14.1}/examples/text_me.py +0 -0
  747. {fastmcp-2.13.3 → fastmcp-2.14.1}/examples/tool_result_echo.py +0 -0
  748. {fastmcp-2.13.3 → fastmcp-2.14.1}/justfile +0 -0
  749. {fastmcp-2.13.3 → fastmcp-2.14.1}/logo.py +0 -0
  750. {fastmcp-2.13.3 → fastmcp-2.14.1}/scripts/auto_close_duplicates.py +0 -0
  751. {fastmcp-2.13.3 → fastmcp-2.14.1}/scripts/auto_close_needs_mre.py +0 -0
  752. {fastmcp-2.13.3 → fastmcp-2.14.1}/src/fastmcp/cli/install/__init__.py +0 -0
  753. {fastmcp-2.13.3 → fastmcp-2.14.1}/src/fastmcp/cli/install/claude_code.py +0 -0
  754. {fastmcp-2.13.3 → fastmcp-2.14.1}/src/fastmcp/cli/install/claude_desktop.py +0 -0
  755. {fastmcp-2.13.3 → fastmcp-2.14.1}/src/fastmcp/cli/install/cursor.py +0 -0
  756. {fastmcp-2.13.3 → fastmcp-2.14.1}/src/fastmcp/cli/install/gemini_cli.py +0 -0
  757. {fastmcp-2.13.3 → fastmcp-2.14.1}/src/fastmcp/cli/install/mcp_json.py +0 -0
  758. {fastmcp-2.13.3 → fastmcp-2.14.1}/src/fastmcp/cli/run.py +0 -0
  759. {fastmcp-2.13.3 → fastmcp-2.14.1}/src/fastmcp/client/__init__.py +0 -0
  760. {fastmcp-2.13.3 → fastmcp-2.14.1}/src/fastmcp/client/auth/__init__.py +0 -0
  761. {fastmcp-2.13.3 → fastmcp-2.14.1}/src/fastmcp/client/auth/bearer.py +0 -0
  762. {fastmcp-2.13.3 → fastmcp-2.14.1}/src/fastmcp/client/logging.py +0 -0
  763. {fastmcp-2.13.3 → fastmcp-2.14.1}/src/fastmcp/client/oauth_callback.py +0 -0
  764. {fastmcp-2.13.3 → fastmcp-2.14.1}/src/fastmcp/client/progress.py +0 -0
  765. {fastmcp-2.13.3/src/fastmcp/experimental/sampling → fastmcp-2.14.1/src/fastmcp/client/sampling/handlers}/__init__.py +0 -0
  766. {fastmcp-2.13.3 → fastmcp-2.14.1}/src/fastmcp/contrib/README.md +0 -0
  767. {fastmcp-2.13.3 → fastmcp-2.14.1}/src/fastmcp/contrib/bulk_tool_caller/README.md +0 -0
  768. {fastmcp-2.13.3 → fastmcp-2.14.1}/src/fastmcp/contrib/bulk_tool_caller/__init__.py +0 -0
  769. {fastmcp-2.13.3 → fastmcp-2.14.1}/src/fastmcp/contrib/bulk_tool_caller/bulk_tool_caller.py +0 -0
  770. {fastmcp-2.13.3 → fastmcp-2.14.1}/src/fastmcp/contrib/bulk_tool_caller/example.py +0 -0
  771. {fastmcp-2.13.3 → fastmcp-2.14.1}/src/fastmcp/contrib/component_manager/README.md +0 -0
  772. {fastmcp-2.13.3 → fastmcp-2.14.1}/src/fastmcp/contrib/component_manager/__init__.py +0 -0
  773. {fastmcp-2.13.3 → fastmcp-2.14.1}/src/fastmcp/contrib/component_manager/component_manager.py +0 -0
  774. {fastmcp-2.13.3 → fastmcp-2.14.1}/src/fastmcp/contrib/component_manager/example.py +0 -0
  775. {fastmcp-2.13.3 → fastmcp-2.14.1}/src/fastmcp/contrib/mcp_mixin/README.md +0 -0
  776. {fastmcp-2.13.3 → fastmcp-2.14.1}/src/fastmcp/contrib/mcp_mixin/__init__.py +0 -0
  777. {fastmcp-2.13.3 → fastmcp-2.14.1}/src/fastmcp/contrib/mcp_mixin/example.py +0 -0
  778. {fastmcp-2.13.3 → fastmcp-2.14.1}/src/fastmcp/contrib/mcp_mixin/mcp_mixin.py +0 -0
  779. {fastmcp-2.13.3 → fastmcp-2.14.1}/src/fastmcp/exceptions.py +0 -0
  780. {fastmcp-2.13.3/src/fastmcp/experimental/sampling/handlers → fastmcp-2.14.1/src/fastmcp/experimental/sampling}/__init__.py +0 -0
  781. {fastmcp-2.13.3 → fastmcp-2.14.1}/src/fastmcp/mcp_config.py +0 -0
  782. {fastmcp-2.13.3 → fastmcp-2.14.1}/src/fastmcp/prompts/__init__.py +0 -0
  783. {fastmcp-2.13.3 → fastmcp-2.14.1}/src/fastmcp/prompts/prompt_manager.py +0 -0
  784. {fastmcp-2.13.3 → fastmcp-2.14.1}/src/fastmcp/py.typed +0 -0
  785. {fastmcp-2.13.3 → fastmcp-2.14.1}/src/fastmcp/resources/__init__.py +0 -0
  786. {fastmcp-2.13.3 → fastmcp-2.14.1}/src/fastmcp/resources/resource_manager.py +0 -0
  787. {fastmcp-2.13.3 → fastmcp-2.14.1}/src/fastmcp/resources/types.py +0 -0
  788. {fastmcp-2.13.3 → fastmcp-2.14.1}/src/fastmcp/server/__init__.py +0 -0
  789. {fastmcp-2.13.3 → fastmcp-2.14.1}/src/fastmcp/server/auth/handlers/authorize.py +0 -0
  790. {fastmcp-2.13.3 → fastmcp-2.14.1}/src/fastmcp/server/auth/jwt_issuer.py +0 -0
  791. {fastmcp-2.13.3 → fastmcp-2.14.1}/src/fastmcp/server/auth/middleware.py +0 -0
  792. {fastmcp-2.13.3 → fastmcp-2.14.1}/src/fastmcp/server/auth/providers/__init__.py +0 -0
  793. {fastmcp-2.13.3 → fastmcp-2.14.1}/src/fastmcp/server/auth/providers/auth0.py +0 -0
  794. {fastmcp-2.13.3 → fastmcp-2.14.1}/src/fastmcp/server/auth/providers/aws.py +0 -0
  795. {fastmcp-2.13.3 → fastmcp-2.14.1}/src/fastmcp/server/auth/providers/azure.py +0 -0
  796. {fastmcp-2.13.3 → fastmcp-2.14.1}/src/fastmcp/server/auth/providers/debug.py +0 -0
  797. {fastmcp-2.13.3 → fastmcp-2.14.1}/src/fastmcp/server/auth/providers/descope.py +0 -0
  798. {fastmcp-2.13.3 → fastmcp-2.14.1}/src/fastmcp/server/auth/providers/discord.py +0 -0
  799. {fastmcp-2.13.3 → fastmcp-2.14.1}/src/fastmcp/server/auth/providers/github.py +0 -0
  800. {fastmcp-2.13.3 → fastmcp-2.14.1}/src/fastmcp/server/auth/providers/google.py +0 -0
  801. {fastmcp-2.13.3 → fastmcp-2.14.1}/src/fastmcp/server/auth/providers/introspection.py +0 -0
  802. {fastmcp-2.13.3 → fastmcp-2.14.1}/src/fastmcp/server/auth/providers/jwt.py +0 -0
  803. {fastmcp-2.13.3 → fastmcp-2.14.1}/src/fastmcp/server/auth/providers/scalekit.py +0 -0
  804. {fastmcp-2.13.3 → fastmcp-2.14.1}/src/fastmcp/server/auth/providers/supabase.py +0 -0
  805. {fastmcp-2.13.3 → fastmcp-2.14.1}/src/fastmcp/server/auth/providers/workos.py +0 -0
  806. {fastmcp-2.13.3 → fastmcp-2.14.1}/src/fastmcp/server/auth/redirect_validation.py +0 -0
  807. {fastmcp-2.13.3 → fastmcp-2.14.1}/src/fastmcp/server/middleware/__init__.py +0 -0
  808. {fastmcp-2.13.3 → fastmcp-2.14.1}/src/fastmcp/server/middleware/caching.py +0 -0
  809. {fastmcp-2.13.3 → fastmcp-2.14.1}/src/fastmcp/server/middleware/error_handling.py +0 -0
  810. {fastmcp-2.13.3 → fastmcp-2.14.1}/src/fastmcp/server/middleware/logging.py +0 -0
  811. {fastmcp-2.13.3 → fastmcp-2.14.1}/src/fastmcp/server/middleware/rate_limiting.py +0 -0
  812. {fastmcp-2.13.3 → fastmcp-2.14.1}/src/fastmcp/server/middleware/timing.py +0 -0
  813. {fastmcp-2.13.3 → fastmcp-2.14.1}/src/fastmcp/server/middleware/tool_injection.py +0 -0
  814. {fastmcp-2.13.3/src/fastmcp/experimental → fastmcp-2.14.1/src/fastmcp}/server/openapi/README.md +0 -0
  815. {fastmcp-2.13.3/src/fastmcp/experimental → fastmcp-2.14.1/src/fastmcp}/server/openapi/__init__.py +0 -0
  816. {fastmcp-2.13.3 → fastmcp-2.14.1}/src/fastmcp/tools/__init__.py +0 -0
  817. {fastmcp-2.13.3 → fastmcp-2.14.1}/src/fastmcp/tools/tool_manager.py +0 -0
  818. {fastmcp-2.13.3 → fastmcp-2.14.1}/src/fastmcp/utilities/__init__.py +0 -0
  819. {fastmcp-2.13.3 → fastmcp-2.14.1}/src/fastmcp/utilities/auth.py +0 -0
  820. {fastmcp-2.13.3 → fastmcp-2.14.1}/src/fastmcp/utilities/cli.py +0 -0
  821. {fastmcp-2.13.3 → fastmcp-2.14.1}/src/fastmcp/utilities/exceptions.py +0 -0
  822. {fastmcp-2.13.3 → fastmcp-2.14.1}/src/fastmcp/utilities/http.py +0 -0
  823. {fastmcp-2.13.3 → fastmcp-2.14.1}/src/fastmcp/utilities/inspect.py +0 -0
  824. {fastmcp-2.13.3 → fastmcp-2.14.1}/src/fastmcp/utilities/json_schema.py +0 -0
  825. {fastmcp-2.13.3 → fastmcp-2.14.1}/src/fastmcp/utilities/logging.py +0 -0
  826. {fastmcp-2.13.3 → fastmcp-2.14.1}/src/fastmcp/utilities/mcp_server_config/__init__.py +0 -0
  827. {fastmcp-2.13.3 → fastmcp-2.14.1}/src/fastmcp/utilities/mcp_server_config/v1/__init__.py +0 -0
  828. {fastmcp-2.13.3 → fastmcp-2.14.1}/src/fastmcp/utilities/mcp_server_config/v1/environments/__init__.py +0 -0
  829. {fastmcp-2.13.3 → fastmcp-2.14.1}/src/fastmcp/utilities/mcp_server_config/v1/environments/base.py +0 -0
  830. {fastmcp-2.13.3 → fastmcp-2.14.1}/src/fastmcp/utilities/mcp_server_config/v1/environments/uv.py +0 -0
  831. {fastmcp-2.13.3 → fastmcp-2.14.1}/src/fastmcp/utilities/mcp_server_config/v1/schema.json +0 -0
  832. {fastmcp-2.13.3 → fastmcp-2.14.1}/src/fastmcp/utilities/mcp_server_config/v1/sources/__init__.py +0 -0
  833. {fastmcp-2.13.3 → fastmcp-2.14.1}/src/fastmcp/utilities/mcp_server_config/v1/sources/base.py +0 -0
  834. {fastmcp-2.13.3 → fastmcp-2.14.1}/src/fastmcp/utilities/mcp_server_config/v1/sources/filesystem.py +0 -0
  835. {fastmcp-2.13.3/src/fastmcp/experimental → fastmcp-2.14.1/src/fastmcp}/utilities/openapi/__init__.py +0 -0
  836. {fastmcp-2.13.3/src/fastmcp/experimental → fastmcp-2.14.1/src/fastmcp}/utilities/openapi/director.py +0 -0
  837. {fastmcp-2.13.3/src/fastmcp/experimental → fastmcp-2.14.1/src/fastmcp}/utilities/openapi/models.py +0 -0
  838. {fastmcp-2.13.3/src/fastmcp/experimental → fastmcp-2.14.1/src/fastmcp}/utilities/openapi/parser.py +0 -0
  839. {fastmcp-2.13.3/src/fastmcp/experimental → fastmcp-2.14.1/src/fastmcp}/utilities/openapi/schemas.py +0 -0
  840. {fastmcp-2.13.3 → fastmcp-2.14.1}/src/fastmcp/utilities/ui.py +0 -0
  841. {fastmcp-2.13.3 → fastmcp-2.14.1}/tests/__init__.py +0 -0
  842. {fastmcp-2.13.3 → fastmcp-2.14.1}/tests/cli/__init__.py +0 -0
  843. {fastmcp-2.13.3 → fastmcp-2.14.1}/tests/cli/test_cli.py +0 -0
  844. {fastmcp-2.13.3 → fastmcp-2.14.1}/tests/cli/test_config.py +0 -0
  845. {fastmcp-2.13.3 → fastmcp-2.14.1}/tests/cli/test_cursor.py +0 -0
  846. {fastmcp-2.13.3 → fastmcp-2.14.1}/tests/cli/test_install.py +0 -0
  847. {fastmcp-2.13.3 → fastmcp-2.14.1}/tests/cli/test_mcp_server_config_integration.py +0 -0
  848. {fastmcp-2.13.3 → fastmcp-2.14.1}/tests/cli/test_mcp_server_config_schema.py +0 -0
  849. {fastmcp-2.13.3 → fastmcp-2.14.1}/tests/cli/test_project_prepare.py +0 -0
  850. {fastmcp-2.13.3 → fastmcp-2.14.1}/tests/cli/test_run.py +0 -0
  851. {fastmcp-2.13.3 → fastmcp-2.14.1}/tests/cli/test_run_config.py +0 -0
  852. {fastmcp-2.13.3 → fastmcp-2.14.1}/tests/cli/test_server_args.py +0 -0
  853. {fastmcp-2.13.3 → fastmcp-2.14.1}/tests/cli/test_shared.py +0 -0
  854. {fastmcp-2.13.3 → fastmcp-2.14.1}/tests/cli/test_with_argv.py +0 -0
  855. {fastmcp-2.13.3 → fastmcp-2.14.1}/tests/client/__init__.py +0 -0
  856. {fastmcp-2.13.3 → fastmcp-2.14.1}/tests/client/auth/__init__.py +0 -0
  857. {fastmcp-2.13.3/tests/client/transports → fastmcp-2.14.1/tests/client/sampling}/__init__.py +0 -0
  858. {fastmcp-2.13.3/tests/experimental → fastmcp-2.14.1/tests/client/sampling/handlers}/__init__.py +0 -0
  859. {fastmcp-2.13.3 → fastmcp-2.14.1}/tests/client/test_logs.py +0 -0
  860. {fastmcp-2.13.3 → fastmcp-2.14.1}/tests/client/test_notifications.py +0 -0
  861. {fastmcp-2.13.3 → fastmcp-2.14.1}/tests/client/test_oauth_callback_xss.py +0 -0
  862. {fastmcp-2.13.3 → fastmcp-2.14.1}/tests/client/test_progress.py +0 -0
  863. {fastmcp-2.13.3 → fastmcp-2.14.1}/tests/client/test_roots.py +0 -0
  864. {fastmcp-2.13.3 → fastmcp-2.14.1}/tests/client/test_stdio.py +0 -0
  865. {fastmcp-2.13.3/tests/experimental/openapi_parser → fastmcp-2.14.1/tests/client/transports}/__init__.py +0 -0
  866. {fastmcp-2.13.3 → fastmcp-2.14.1}/tests/client/transports/test_uv_transport.py +0 -0
  867. {fastmcp-2.13.3 → fastmcp-2.14.1}/tests/contrib/__init__.py +0 -0
  868. {fastmcp-2.13.3 → fastmcp-2.14.1}/tests/contrib/test_bulk_tool_caller.py +0 -0
  869. {fastmcp-2.13.3 → fastmcp-2.14.1}/tests/contrib/test_component_manager.py +0 -0
  870. {fastmcp-2.13.3 → fastmcp-2.14.1}/tests/contrib/test_mcp_mixin.py +0 -0
  871. {fastmcp-2.13.3 → fastmcp-2.14.1}/tests/deprecated/__init__.py +0 -0
  872. /fastmcp-2.13.3/tests/server/test_tool_exclude_args.py → /fastmcp-2.14.1/tests/deprecated/test_exclude_args.py +0 -0
  873. {fastmcp-2.13.3 → fastmcp-2.14.1}/tests/experimental/README.md +0 -0
  874. {fastmcp-2.13.3/tests/experimental/openapi_parser/server → fastmcp-2.14.1/tests/experimental}/__init__.py +0 -0
  875. {fastmcp-2.13.3/tests/experimental/openapi_parser/utilities → fastmcp-2.14.1/tests/integration_tests}/__init__.py +0 -0
  876. {fastmcp-2.13.3/tests/integration_tests → fastmcp-2.14.1/tests/integration_tests/auth}/__init__.py +0 -0
  877. {fastmcp-2.13.3 → fastmcp-2.14.1}/tests/integration_tests/auth/test_github_provider_integration.py +0 -0
  878. {fastmcp-2.13.3/tests/integration_tests/auth → fastmcp-2.14.1/tests/prompts}/__init__.py +0 -0
  879. {fastmcp-2.13.3 → fastmcp-2.14.1}/tests/prompts/test_prompt.py +0 -0
  880. {fastmcp-2.13.3/tests/prompts → fastmcp-2.14.1/tests/resources}/__init__.py +0 -0
  881. {fastmcp-2.13.3 → fastmcp-2.14.1}/tests/resources/test_file_resources.py +0 -0
  882. {fastmcp-2.13.3 → fastmcp-2.14.1}/tests/resources/test_function_resources.py +0 -0
  883. {fastmcp-2.13.3 → fastmcp-2.14.1}/tests/resources/test_resource_manager.py +0 -0
  884. {fastmcp-2.13.3 → fastmcp-2.14.1}/tests/resources/test_resource_template_meta.py +0 -0
  885. {fastmcp-2.13.3 → fastmcp-2.14.1}/tests/resources/test_resources.py +0 -0
  886. {fastmcp-2.13.3/tests/resources → fastmcp-2.14.1/tests/server}/__init__.py +0 -0
  887. {fastmcp-2.13.3/tests/server → fastmcp-2.14.1/tests/server/auth}/__init__.py +0 -0
  888. {fastmcp-2.13.3/tests/server/auth → fastmcp-2.14.1/tests/server/auth/providers}/__init__.py +0 -0
  889. {fastmcp-2.13.3 → fastmcp-2.14.1}/tests/server/auth/providers/test_auth0.py +0 -0
  890. {fastmcp-2.13.3 → fastmcp-2.14.1}/tests/server/auth/providers/test_aws.py +0 -0
  891. {fastmcp-2.13.3 → fastmcp-2.14.1}/tests/server/auth/providers/test_descope.py +0 -0
  892. {fastmcp-2.13.3 → fastmcp-2.14.1}/tests/server/auth/providers/test_discord.py +0 -0
  893. {fastmcp-2.13.3 → fastmcp-2.14.1}/tests/server/auth/providers/test_github.py +0 -0
  894. {fastmcp-2.13.3 → fastmcp-2.14.1}/tests/server/auth/providers/test_google.py +0 -0
  895. {fastmcp-2.13.3 → fastmcp-2.14.1}/tests/server/auth/providers/test_introspection.py +0 -0
  896. {fastmcp-2.13.3 → fastmcp-2.14.1}/tests/server/auth/providers/test_scalekit.py +0 -0
  897. {fastmcp-2.13.3 → fastmcp-2.14.1}/tests/server/auth/providers/test_supabase.py +0 -0
  898. {fastmcp-2.13.3 → fastmcp-2.14.1}/tests/server/auth/providers/test_workos.py +0 -0
  899. {fastmcp-2.13.3 → fastmcp-2.14.1}/tests/server/auth/test_auth_provider.py +0 -0
  900. {fastmcp-2.13.3 → fastmcp-2.14.1}/tests/server/auth/test_debug_verifier.py +0 -0
  901. {fastmcp-2.13.3 → fastmcp-2.14.1}/tests/server/auth/test_enhanced_error_responses.py +0 -0
  902. {fastmcp-2.13.3 → fastmcp-2.14.1}/tests/server/auth/test_jwt_issuer.py +0 -0
  903. {fastmcp-2.13.3 → fastmcp-2.14.1}/tests/server/auth/test_oauth_consent_flow.py +0 -0
  904. {fastmcp-2.13.3 → fastmcp-2.14.1}/tests/server/auth/test_oidc_proxy.py +0 -0
  905. {fastmcp-2.13.3 → fastmcp-2.14.1}/tests/server/auth/test_redirect_validation.py +0 -0
  906. {fastmcp-2.13.3 → fastmcp-2.14.1}/tests/server/auth/test_remote_auth_provider.py +0 -0
  907. {fastmcp-2.13.3 → fastmcp-2.14.1}/tests/server/auth/test_static_token_verifier.py +0 -0
  908. {fastmcp-2.13.3/tests/server/auth/providers → fastmcp-2.14.1/tests/server/http}/__init__.py +0 -0
  909. {fastmcp-2.13.3 → fastmcp-2.14.1}/tests/server/http/test_bearer_auth_backend.py +0 -0
  910. {fastmcp-2.13.3 → fastmcp-2.14.1}/tests/server/http/test_custom_routes.py +0 -0
  911. {fastmcp-2.13.3 → fastmcp-2.14.1}/tests/server/http/test_http_auth_middleware.py +0 -0
  912. {fastmcp-2.13.3 → fastmcp-2.14.1}/tests/server/http/test_http_dependencies.py +0 -0
  913. {fastmcp-2.13.3 → fastmcp-2.14.1}/tests/server/http/test_stale_access_token.py +0 -0
  914. {fastmcp-2.13.3/tests/server/http → fastmcp-2.14.1/tests/server/middleware}/__init__.py +0 -0
  915. {fastmcp-2.13.3 → fastmcp-2.14.1}/tests/server/middleware/test_error_handling.py +0 -0
  916. {fastmcp-2.13.3 → fastmcp-2.14.1}/tests/server/middleware/test_middleware.py +0 -0
  917. {fastmcp-2.13.3 → fastmcp-2.14.1}/tests/server/middleware/test_rate_limiting.py +0 -0
  918. {fastmcp-2.13.3 → fastmcp-2.14.1}/tests/server/middleware/test_timing.py +0 -0
  919. {fastmcp-2.13.3/tests/experimental/openapi_parser → fastmcp-2.14.1/tests}/server/openapi/__init__.py +0 -0
  920. {fastmcp-2.13.3/tests/server/middleware → fastmcp-2.14.1/tests/server/proxy}/__init__.py +0 -0
  921. {fastmcp-2.13.3/tests/server/openapi → fastmcp-2.14.1/tests/server/sampling}/__init__.py +0 -0
  922. {fastmcp-2.13.3 → fastmcp-2.14.1}/tests/server/test_app_state.py +0 -0
  923. {fastmcp-2.13.3 → fastmcp-2.14.1}/tests/server/test_file_server.py +0 -0
  924. {fastmcp-2.13.3 → fastmcp-2.14.1}/tests/server/test_icons.py +0 -0
  925. {fastmcp-2.13.3 → fastmcp-2.14.1}/tests/server/test_input_validation.py +0 -0
  926. {fastmcp-2.13.3 → fastmcp-2.14.1}/tests/server/test_log_level.py +0 -0
  927. {fastmcp-2.13.3 → fastmcp-2.14.1}/tests/server/test_run_server.py +0 -0
  928. {fastmcp-2.13.3 → fastmcp-2.14.1}/tests/server/test_streamable_http_no_redirect.py +0 -0
  929. {fastmcp-2.13.3 → fastmcp-2.14.1}/tests/server/test_tool_transformation.py +0 -0
  930. {fastmcp-2.13.3 → fastmcp-2.14.1}/tests/test_mcp_config.py +0 -0
  931. {fastmcp-2.13.3/tests/server/proxy → fastmcp-2.14.1/tests/tools}/__init__.py +0 -0
  932. {fastmcp-2.13.3 → fastmcp-2.14.1}/tests/tools/test_tool_future_annotations.py +0 -0
  933. {fastmcp-2.13.3 → fastmcp-2.14.1}/tests/tools/test_tool_transform.py +0 -0
  934. {fastmcp-2.13.3 → fastmcp-2.14.1}/tests/utilities/__init__.py +0 -0
  935. {fastmcp-2.13.3/tests/experimental/openapi_parser → fastmcp-2.14.1/tests}/utilities/openapi/__init__.py +0 -0
  936. {fastmcp-2.13.3/tests/experimental/openapi_parser → fastmcp-2.14.1/tests}/utilities/openapi/conftest.py +0 -0
  937. {fastmcp-2.13.3 → fastmcp-2.14.1}/tests/utilities/test_cli.py +0 -0
  938. {fastmcp-2.13.3 → fastmcp-2.14.1}/tests/utilities/test_components.py +0 -0
  939. {fastmcp-2.13.3 → fastmcp-2.14.1}/tests/utilities/test_inspect.py +0 -0
  940. {fastmcp-2.13.3 → fastmcp-2.14.1}/tests/utilities/test_json_schema.py +0 -0
  941. {fastmcp-2.13.3 → fastmcp-2.14.1}/tests/utilities/test_logging.py +0 -0
  942. {fastmcp-2.13.3 → fastmcp-2.14.1}/tests/utilities/test_tests.py +0 -0
  943. {fastmcp-2.13.3 → fastmcp-2.14.1}/tests/utilities/test_typeadapter.py +0 -0
@@ -0,0 +1,182 @@
1
+ name: Marvin Test Failure Analysis
2
+
3
+ on:
4
+ workflow_run:
5
+ workflows: ["Tests", "Run static analysis"]
6
+ types:
7
+ - completed
8
+
9
+ concurrency:
10
+ group: marvin-test-failure-${{ github.event.workflow_run.head_branch }}
11
+ cancel-in-progress: true
12
+
13
+ jobs:
14
+ martian-test-failure:
15
+ # Only run if the test workflow failed
16
+ if: ${{ github.event.workflow_run.conclusion == 'failure' }}
17
+ runs-on: ubuntu-latest
18
+ permissions:
19
+ contents: read
20
+ pull-requests: write
21
+ issues: read
22
+ id-token: write
23
+ actions: read # Required for Claude to read CI results
24
+ steps:
25
+ - name: Checkout repository
26
+ uses: actions/checkout@v6
27
+ with:
28
+ fetch-depth: 1
29
+
30
+ - name: Generate Marvin App token
31
+ id: marvin-token
32
+ uses: actions/create-github-app-token@v2
33
+ with:
34
+ app-id: ${{ secrets.MARVIN_APP_ID }}
35
+ private-key: ${{ secrets.MARVIN_APP_PRIVATE_KEY }}
36
+
37
+ - name: Set up Python 3.10
38
+ uses: actions/setup-python@v6
39
+ with:
40
+ python-version: "3.10"
41
+
42
+ # Install UV package manager
43
+ - name: Install UV
44
+ uses: astral-sh/setup-uv@v7
45
+
46
+ # Install dependencies
47
+ - name: Install dependencies
48
+ run: uv sync --all-packages --group dev
49
+
50
+ - name: Set analysis prompt
51
+ id: analysis-prompt
52
+ run: |
53
+ cat >> $GITHUB_OUTPUT << 'EOF'
54
+ PROMPT<<PROMPT_END
55
+ You're a test failure analysis assistant for FastMCP, a Python framework for building Model Context Protocol servers and clients.
56
+
57
+ # Your Task
58
+ A GitHub Actions workflow has failed. Your job is to:
59
+ 1. Analyze the test failure(s) to understand what went wrong
60
+ 2. Identify the root cause of the failure(s)
61
+ 3. Suggest a clear, actionable solution to fix the failure(s)
62
+
63
+ # Getting Started
64
+ 1. Call the generate_agents_md tool to get a high-level summary of the project
65
+ 2. Get the pull request associated with this workflow run from the GitHub repository: ${{ github.repository }}
66
+ - The workflow run ID is: ${{ github.event.workflow_run.id }}
67
+ - The workflow run was triggered by: ${{ github.event.workflow_run.event }}
68
+ - Use GitHub MCP tools to get PR details and workflow run information
69
+ 3. Use the GitHub MCP tools to fetch job logs and failure information:
70
+ - Use get_workflow_run to get details about the failed workflow
71
+ - Use list_workflow_jobs to see which jobs failed
72
+ - Use get_job_logs with failed_only=true to get logs for failed jobs
73
+ - Use summarize_run_log_failures to get an AI summary of what failed
74
+ 4. Analyze the failures to understand the root cause
75
+ 5. Search the codebase for relevant files, tests, and implementations
76
+
77
+ # Your Response
78
+ Post a comment on the pull request with your analysis. Your comment should include:
79
+
80
+ ## Test Failure Analysis
81
+
82
+ **Summary**: A brief 1-2 sentence summary of what failed.
83
+
84
+ **Root Cause**: A clear explanation of why the tests failed, based on your analysis of the logs and code.
85
+
86
+ **Suggested Solution**: Specific, actionable steps to fix the failure(s). Include:
87
+ - Which files need to be modified
88
+ - What changes are needed
89
+ - Why these changes will fix the issue
90
+
91
+ <details>
92
+ <summary>Detailed Analysis</summary>
93
+
94
+ Include here:
95
+ - Relevant log excerpts showing the failure
96
+ - Code snippets that are causing the issue
97
+ - Any related issues or PRs that might be relevant
98
+ </details>
99
+
100
+ <details>
101
+ <summary>Related Files</summary>
102
+
103
+ List files that are relevant to the failure with brief explanations of their relevance.
104
+ </details>
105
+
106
+ # Important Guidelines
107
+ - Be concise and actionable - developers want to quickly understand and fix the issue. Provide
108
+ additional context, references, etc in collapsible details blocks to ensure that the comment you're adding
109
+ is short and easy to read but additional information is a click away.
110
+ - Focus on facts from the logs and code, not speculation
111
+ - If you can't determine the root cause, say so clearly
112
+ - If your only suggestion is a bad suggestion (disable the test, change the timeout, etc), indicate that you've run out of ideas and
113
+ that they probably don't want to do that.
114
+ - Provide specific file names, line numbers, and code references when possible
115
+ - You can run make commands (e.g., `make lint`, `make typecheck`, `make sync`) to build, test, or lint the code
116
+ - You can also run git commands (e.g., `git status`, `git log`, `git diff`) to inspect the repository
117
+ - You can use WebSearch and WebFetch to research errors, stack traces, or related issues
118
+ - For bash commands, you are limited to make and git commands only
119
+
120
+ # CRITICAL: ANGRY USERS
121
+ **IMPORTANT**: If the user is angry with you, the triage bot, don't respond. Just exit immediately without further action.
122
+ If at any point in the conversation the user has asked you to stop replying to the thread, just exit immediately.
123
+
124
+ If you are posting the same suggestion as you have previously made, do not post the suggestion again.
125
+
126
+ # IMPORTANT: EDIT YOUR COMMENT
127
+ Do not post a new comment every time you triage a failing workflow. If a previous comment has been posted by you (marvin)
128
+ in a previous triage, edit that comment do not add a new comment for each failure. Be sure to include a note that you've edited
129
+ your comment to reflect the latest analysis. Don't worry about keeping the old content around, there's comment history for
130
+ that.
131
+
132
+ # Problems Encountered
133
+ If you encounter any problems during your analysis (e.g., unable to fetch logs, tools not working), document them clearly so the team knows what limitations you faced.
134
+ PROMPT_END
135
+ EOF
136
+
137
+ - name: Setup GitHub MCP Server
138
+ run: |
139
+ mkdir -p /tmp/mcp-config
140
+ cat > /tmp/mcp-config/mcp-servers.json << 'EOF'
141
+ {
142
+ "mcpServers": {
143
+ "repository-summary": {
144
+ "type": "http",
145
+ "url": "https://agents-md-generator.fastmcp.app/mcp"
146
+ },
147
+ "code-search": {
148
+ "type": "http",
149
+ "url": "https://public-code-search.fastmcp.app/mcp"
150
+ },
151
+ "github-research": {
152
+ "type": "stdio",
153
+ "command": "uvx",
154
+ "args": [
155
+ "github-research-mcp"
156
+ ],
157
+ "env": {
158
+ "DISABLE_SUMMARIES": "true",
159
+ "GITHUB_PERSONAL_ACCESS_TOKEN": "${{ secrets.GITHUB_TOKEN }}"
160
+ }
161
+ }
162
+ }
163
+ }
164
+ EOF
165
+
166
+ - name: Run Claude Code
167
+ id: claude
168
+ uses: anthropics/claude-code-action@v1
169
+ with:
170
+ github_token: ${{ steps.marvin-token.outputs.token }}
171
+ anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY_FOR_CI }}
172
+ bot_name: "Marvin Context Protocol"
173
+
174
+ claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
175
+
176
+ additional_permissions: |
177
+ actions: read
178
+
179
+ prompt: ${{ steps.analysis-prompt.outputs.PROMPT }}
180
+ claude_args: |
181
+ --allowed-tools mcp__repository-summary,mcp__code-search,mcp__github-research,WebSearch,WebFetch,Bash(make:*,git:*)
182
+ --mcp-config /tmp/mcp-config/mcp-servers.json
@@ -0,0 +1,115 @@
1
+ name: Tests
2
+
3
+ env:
4
+ # enable colored output
5
+ PY_COLORS: 1
6
+
7
+ on:
8
+ push:
9
+ branches: ["main"]
10
+ paths:
11
+ - "src/**"
12
+ - "tests/**"
13
+ - "uv.lock"
14
+ - "pyproject.toml"
15
+ - ".github/workflows/**"
16
+
17
+ # run on all pull requests because these checks are required and will block merges otherwise
18
+ pull_request:
19
+
20
+ workflow_dispatch:
21
+
22
+ permissions:
23
+ contents: read
24
+
25
+ jobs:
26
+ run_tests:
27
+ name: "Run tests: Python ${{ matrix.python-version }} on ${{ matrix.os }}"
28
+ runs-on: ${{ matrix.os }}
29
+ strategy:
30
+ matrix:
31
+ os: [ubuntu-latest, windows-latest]
32
+ python-version: ["3.10"]
33
+ include:
34
+ - os: ubuntu-latest
35
+ python-version: "3.13"
36
+ fail-fast: false
37
+ timeout-minutes: 10
38
+
39
+ steps:
40
+ - uses: actions/checkout@v6
41
+
42
+ - name: Install uv
43
+ uses: astral-sh/setup-uv@v7
44
+ with:
45
+ enable-cache: true
46
+ cache-dependency-glob: "uv.lock"
47
+ python-version: ${{ matrix.python-version }}
48
+
49
+ - name: Install FastMCP
50
+ # run with upgrade to always test against the latest compatible versions
51
+ run: uv sync --upgrade
52
+
53
+ - name: Run tests (excluding integration and client_process)
54
+ run: |
55
+ if [ "${{ matrix.os }}" == "windows-latest" ]; then
56
+ uv run pytest --inline-snapshot=disable tests -m "not integration and not client_process"
57
+ else
58
+ uv run pytest --inline-snapshot=disable tests -m "not integration and not client_process" --numprocesses auto --maxprocesses 4 --dist worksteal
59
+ fi
60
+ shell: bash
61
+
62
+ - name: Run client process tests separately
63
+ run: uv run pytest --inline-snapshot=disable tests -m "client_process" -x
64
+
65
+ run_tests_lowest_direct:
66
+ name: "Run tests with lowest-direct dependencies"
67
+ runs-on: ubuntu-latest
68
+ timeout-minutes: 10
69
+
70
+ steps:
71
+ - uses: actions/checkout@v6
72
+
73
+ - name: Install uv
74
+ uses: astral-sh/setup-uv@v7
75
+ with:
76
+ enable-cache: true
77
+ cache-dependency-glob: "uv.lock"
78
+ python-version: "3.10"
79
+
80
+ - name: Install FastMCP with lowest-direct resolution
81
+ # run with lowest-direct to test against the minimum allowed dependency versions
82
+ run: uv sync --resolution lowest-direct
83
+
84
+ - name: Run tests (excluding integration and client_process)
85
+ run: uv run --resolution lowest-direct pytest --inline-snapshot=disable tests -m "not integration and not client_process" --numprocesses auto --maxprocesses 4 --dist worksteal
86
+
87
+ - name: Run client process tests separately
88
+ run: uv run --resolution lowest-direct pytest --inline-snapshot=disable tests -m "client_process" -x
89
+
90
+ run_integration_tests:
91
+ name: "Run integration tests"
92
+ runs-on: ubuntu-latest
93
+ timeout-minutes: 10
94
+
95
+ steps:
96
+ - uses: actions/checkout@v6
97
+
98
+ - name: Install uv
99
+ uses: astral-sh/setup-uv@v7
100
+ with:
101
+ enable-cache: true
102
+ cache-dependency-glob: "uv.lock"
103
+ python-version: "3.10"
104
+
105
+ - name: Install FastMCP
106
+ # run with upgrade to always test against the latest compatible versions
107
+ run: uv sync --upgrade
108
+
109
+ - name: Run integration tests
110
+ # use longer per-test timeout for remote API calls (default is 5s)
111
+ run: uv run pytest tests -m "integration" --timeout=30 --numprocesses auto --maxprocesses 2 --dist worksteal
112
+ env:
113
+ FASTMCP_GITHUB_TOKEN: ${{ secrets.FASTMCP_GITHUB_TOKEN }}
114
+ FASTMCP_TEST_AUTH_GITHUB_CLIENT_ID: ${{ secrets.FASTMCP_TEST_AUTH_GITHUB_CLIENT_ID }}
115
+ FASTMCP_TEST_AUTH_GITHUB_CLIENT_SECRET: ${{ secrets.FASTMCP_TEST_AUTH_GITHUB_CLIENT_SECRET }}
@@ -0,0 +1,77 @@
1
+ # Python-generated files
2
+ __pycache__/
3
+ *.py[cod]
4
+ *$py.class
5
+ build/
6
+ dist/
7
+ wheels/
8
+ *.egg-info/
9
+ *.egg
10
+ MANIFEST
11
+ .pytest_cache/
12
+ .coverage
13
+ htmlcov/
14
+ .tox/
15
+ nosetests.xml
16
+ coverage.xml
17
+ *.cover
18
+
19
+ # Virtual environments
20
+ .venv
21
+ venv/
22
+ env/
23
+ ENV/
24
+ .env
25
+
26
+ # System files
27
+ .DS_Store
28
+
29
+ # Version file
30
+ src/fastmcp/_version.py
31
+
32
+ # Editors and IDEs
33
+ .cursorrules
34
+ .vscode/
35
+ .idea/
36
+ *.swp
37
+ *.swo
38
+ *~
39
+ .project
40
+ .pydevproject
41
+ .settings/
42
+
43
+ # Jupyter Notebook
44
+ .ipynb_checkpoints
45
+
46
+ # Type checking
47
+ .mypy_cache/
48
+ .dmypy.json
49
+ dmypy.json
50
+ .pyre/
51
+ .pytype/
52
+
53
+ # Local development
54
+ .python-version
55
+ .envrc
56
+ .envrc.private
57
+ .direnv/
58
+
59
+ # Logs and databases
60
+ *.log
61
+ *.sqlite
62
+ *.db
63
+ *.ddb
64
+
65
+ # Claude worktree management
66
+ .claude-wt/worktrees
67
+
68
+ # Agents
69
+ /PLAN.md
70
+ /TODO.md
71
+ /STATUS.md
72
+
73
+ # Common FastMCP test files
74
+ /test.py
75
+ /server.py
76
+ /client.py
77
+ /test.json
@@ -0,0 +1,48 @@
1
+ fail_fast: false
2
+
3
+ repos:
4
+ - repo: https://github.com/abravalheri/validate-pyproject
5
+ rev: v0.24.1
6
+ hooks:
7
+ - id: validate-pyproject
8
+
9
+ - repo: https://github.com/pre-commit/mirrors-prettier
10
+ rev: v3.1.0
11
+ hooks:
12
+ - id: prettier
13
+ types_or: [yaml, json5]
14
+
15
+ - repo: https://github.com/astral-sh/ruff-pre-commit
16
+ # Ruff version.
17
+ rev: v0.12.1
18
+ hooks:
19
+ # Run the linter.
20
+ - id: ruff-check
21
+ args: [--fix, --exit-non-zero-on-fix]
22
+ # Run the formatter.
23
+ - id: ruff-format
24
+
25
+ - repo: local
26
+ hooks:
27
+ - id: ty
28
+ name: ty check
29
+ entry: uv run --isolated ty check
30
+ language: system
31
+ types: [python]
32
+ files: ^src/|^tests/
33
+ pass_filenames: false
34
+ require_serial: true
35
+
36
+ - repo: https://github.com/pre-commit/pre-commit-hooks
37
+ rev: v6.0.0
38
+ hooks:
39
+ - id: no-commit-to-branch
40
+ name: prevent commits to main
41
+ args: [--branch, main]
42
+
43
+ - repo: https://github.com/codespell-project/codespell
44
+ rev: v2.4.1
45
+ hooks:
46
+ - id: codespell # See pyproject.toml for args
47
+ additional_dependencies:
48
+ - tomli
@@ -0,0 +1,266 @@
1
+ # FastMCP Development Guidelines
2
+
3
+ > **Audience**: LLM-driven engineering agents and human developers
4
+
5
+ FastMCP is a comprehensive Python framework (Python ≥3.10) for building Model Context Protocol (MCP) servers and clients. This is the actively maintained v2.0 providing a complete toolkit for the MCP ecosystem.
6
+
7
+ ## Required Development Workflow
8
+
9
+ **CRITICAL**: Always run these commands in sequence before committing:
10
+
11
+ ```bash
12
+ uv sync # Install dependencies
13
+ uv run prek run --all-files # Ruff + Prettier + ty
14
+ uv run pytest # Run full test suite
15
+ ```
16
+
17
+ **All three must pass** - this is enforced by CI. Alternative: `just build && just typecheck && just test`
18
+
19
+ **Tests must pass and lint/typing must be clean before committing.**
20
+
21
+ ## Repository Structure
22
+
23
+ | Path | Purpose |
24
+ | ------------------ | ----------------------------------------------------------------------------------- |
25
+ | `src/fastmcp/` | Library source code (Python ≥ 3.10) |
26
+ | `├─server/` | Server implementation, `FastMCP`, auth, networking |
27
+ | `│ ├─auth/` | Authentication providers (Google, GitHub, Azure, AWS, WorkOS, Auth0, JWT, and more) |
28
+ | `│ └─middleware/` | Error handling, logging, rate limiting |
29
+ | `├─client/` | High-level client SDK + transports |
30
+ | `│ └─auth/` | Client authentication (Bearer, OAuth) |
31
+ | `├─tools/` | Tool implementations + `ToolManager` |
32
+ | `├─resources/` | Resources, templates + `ResourceManager` |
33
+ | `├─prompts/` | Prompt templates + `PromptManager` |
34
+ | `├─cli/` | FastMCP CLI commands (`run`, `dev`, `install`) |
35
+ | `├─contrib/` | Community contributions (bulk caller, mixins) |
36
+ | `├─experimental/` | Experimental features (sampling handlers) |
37
+ | `└─utilities/` | Shared utilities (logging, JSON schema, HTTP) |
38
+ | `tests/` | Comprehensive pytest suite with markers |
39
+ | `docs/` | Mintlify documentation (published to gofastmcp.com) |
40
+ | `examples/` | Runnable demo servers (echo, smart_home, atproto) |
41
+
42
+ ## Core MCP Objects
43
+
44
+ When modifying MCP functionality, changes typically need to be applied across all object types:
45
+
46
+ - **Tools** (`src/tools/` + `ToolManager`)
47
+ - **Resources** (`src/resources/` + `ResourceManager`)
48
+ - **Resource Templates** (`src/resources/` + `ResourceManager`)
49
+ - **Prompts** (`src/prompts/` + `PromptManager`)
50
+
51
+ ## Writing Style
52
+
53
+ - Be brief and to the point. Do not regurgitate information that can easily be gleaned from the code, except to guide the reader to where the code is located.
54
+ - **NEVER** use "This isn't..." or "not just..." constructions. State what something IS directly. Avoid defensive writing patterns like:
55
+ - "This isn't X, it's Y" or "Not just X, but Y" → Just say "This is Y"
56
+ - "Not just about X" → State the actual purpose
57
+ - "We're not doing X, we're doing Y" → Just explain what you're doing
58
+ - Any variation of explaining what something isn't before what it is
59
+
60
+ ## Testing Best Practices
61
+
62
+ ### Testing Standards
63
+
64
+ - Every test: atomic, self-contained, single functionality
65
+ - Use parameterization for multiple examples of same functionality
66
+ - Use separate tests for different functionality pieces
67
+ - **ALWAYS** Put imports at the top of the file, not in the test body
68
+ - **NEVER** add `@pytest.mark.asyncio` to tests - `asyncio_mode = "auto"` is set globally
69
+ - **ALWAYS** run pytest after significant changes
70
+
71
+ ### Inline Snapshots
72
+
73
+ FastMCP uses `inline-snapshot` for testing complex data structures. On first run with empty `snapshot()`, pytest will auto-populate the expected value when running `pytest --inline-snapshot=create`. To update snapshots after intentional changes, run `pytest --inline-snapshot=fix`. This is particularly useful for testing JSON schemas and API responses.
74
+
75
+ ### Always Use In-Memory Transport
76
+
77
+ Pass FastMCP servers directly to clients for testing:
78
+
79
+ ```python
80
+ mcp = FastMCP("TestServer")
81
+
82
+ @mcp.tool
83
+ def greet(name: str) -> str:
84
+ return f"Hello, {name}!"
85
+
86
+ # Direct connection - no network complexity
87
+ async with Client(mcp) as client:
88
+ result = await client.call_tool("greet", {"name": "World"})
89
+ ```
90
+
91
+ Only use HTTP transport when explicitly testing network features:
92
+
93
+ ```python
94
+ # Network testing only
95
+ async with Client(transport=StreamableHttpTransport(server_url)) as client:
96
+ result = await client.ping()
97
+ ```
98
+
99
+ ## Development Rules
100
+
101
+ ### Git & CI
102
+
103
+ - Prek hooks are required (run automatically on commits)
104
+ - Never amend commits to fix prek failures
105
+ - Apply PR labels: bugs/breaking/enhancements/features
106
+ - Improvements = enhancements (not features) unless specified
107
+ - **NEVER** force-push on collaborative repos
108
+ - **ALWAYS** run prek before PRs
109
+ - **NEVER** create a release, comment on an issue, or open a PR unless specifically instructed to do so.
110
+
111
+ ### Commit Messages and Agent Attribution
112
+
113
+ - **Agents NOT acting on behalf of @jlowin MUST identify themselves** (e.g., "🤖 Generated with Claude Code" in commits/PRs)
114
+ - Keep commit messages brief - ideally just headlines, not detailed messages
115
+ - Focus on what changed, not how or why
116
+ - Always read issue comments for follow-up information (treat maintainers as authoritative)
117
+
118
+ ### PR Messages - Required Structure
119
+
120
+ - 1-2 paragraphs: problem/tension + solution (PRs are documentation!)
121
+ - Focused code example showing key capability
122
+ - **Avoid:** bullet summaries, exhaustive change lists, verbose closes/fixes, marketing language
123
+ - **Do:** Be opinionated about why change matters, show before/after scenarios
124
+ - Minor fixes: keep body short and concise
125
+ - No "test plan" sections or testing summaries
126
+
127
+ ### Code Standards
128
+
129
+ - Python ≥ 3.10 with full type annotations
130
+ - Follow existing patterns and maintain consistency
131
+ - **Prioritize readable, understandable code** - clarity over cleverness
132
+ - Avoid obfuscated or confusing patterns even if they're shorter
133
+ - Use `# type: ignore[attr-defined]` in tests for MCP results instead of type assertions
134
+ - Each feature needs corresponding tests
135
+
136
+ ### Documentation
137
+
138
+ - Uses Mintlify framework
139
+ - Files must be in docs.json to be included
140
+ - Never modify `docs/python-sdk/**` (auto-generated)
141
+ - **Core Principle:** A feature doesn't exist unless it is documented!
142
+
143
+ ### Documentation Guidelines
144
+
145
+ - **Code Examples:** Explain before showing code, make blocks fully runnable (include imports)
146
+ - **Structure:** Headers form navigation guide, logical H2/H3 hierarchy
147
+ - **Content:** User-focused sections, motivate features (why) before mechanics (how)
148
+ - **Style:** Prose over code comments for important information
149
+
150
+ ## Code Review Guidelines
151
+
152
+ ### Philosophy
153
+
154
+ Code review is about maintaining a healthy codebase while helping contributors succeed. The burden of proof is on the PR to demonstrate it adds value in the intended way. Your job is to help it get there through actionable feedback.
155
+
156
+ **Critical**: A perfectly written PR that adds unwanted functionality must still be rejected. The code must advance the codebase in the intended direction, not just be well-written. When rejecting, provide clear guidance on how to align with project goals.
157
+
158
+ Be friendly and welcoming while maintaining high standards. Call out what works well - this reinforces good patterns. When code needs improvement, be specific about why and how to fix it. Remember that PRs serve as documentation for future developers.
159
+
160
+ ### Focus On
161
+
162
+ - **Does this advance the codebase in the intended direction?** (Even perfect code for unwanted features should be rejected)
163
+ - **API design and naming clarity** - Identify confusing patterns (e.g., parameter values that contradict defaults) or non-idiomatic code (mutable defaults, etc.). Contributed code will need to be maintained indefinitely, and by someone other than the author (unless the author is a maintainer).
164
+ - **Suggest specific improvements**, not generic "add more tests" comments
165
+ - **Think about API ergonomics and learning curve** from a user perspective
166
+
167
+ ### For Agent Reviewers
168
+
169
+ - **Read the full context**: Always examine related files, tests, and documentation before reviewing
170
+ - **Check against established patterns**: Look for consistency with existing codebase conventions
171
+ - **Verify functionality claims**: Don't just read code - understand what it actually does
172
+ - **Consider edge cases**: Think through error conditions and boundary scenarios
173
+
174
+ ### Avoid
175
+
176
+ - Generic feedback without specifics
177
+ - Hypothetical problems unlikely to occur
178
+ - Nitpicking organizational choices without strong reason
179
+ - Summarizing what the PR already describes
180
+ - Star ratings or excessive emojis
181
+ - Bikeshedding style preferences when functionality is correct
182
+ - Requesting changes without suggesting solutions
183
+ - Focusing on personal coding style over project conventions
184
+
185
+ ### Tone
186
+
187
+ - Acknowledge good decisions ("This API design is clean")
188
+ - Be direct but respectful
189
+ - Explain impact ("This will confuse users because...")
190
+ - Remember: Someone else maintains this code forever
191
+
192
+ ### Decision Framework
193
+
194
+ Before approving, ask yourself:
195
+
196
+ 1. Does this PR achieve its stated purpose?
197
+ 2. Is that purpose aligned with where the codebase should go?
198
+ 3. Would I be comfortable maintaining this code?
199
+ 4. Have I actually understood what it does, not just what it claims?
200
+ 5. Does this change introduce technical debt?
201
+
202
+ If something needs work, your review should help it get there through specific, actionable feedback. If it's solving the wrong problem, say so clearly.
203
+
204
+ ### Review Comment Examples
205
+
206
+ **Good Review Comments:**
207
+
208
+ ❌ "Add more tests"
209
+ ✅ "The `handle_timeout` method needs tests for the edge case where timeout=0"
210
+
211
+ ❌ "This API is confusing"
212
+ ✅ "The parameter name `data` is ambiguous - consider `message_content` to match the MCP specification"
213
+
214
+ ❌ "This could be better"
215
+ ✅ "This approach works but creates a circular dependency. Consider moving the validation to `utils/validators.py`"
216
+
217
+ ### Review Checklist
218
+
219
+ Before approving, verify:
220
+
221
+ - [ ] All required development workflow steps completed (uv sync, prek, pytest)
222
+ - [ ] Changes align with repository patterns and conventions
223
+ - [ ] API changes are documented and backwards-compatible where possible
224
+ - [ ] Error handling follows project patterns (specific exception types)
225
+ - [ ] Tests cover new functionality and edge cases
226
+
227
+ ## Key Tools & Commands
228
+
229
+ ### Environment Setup
230
+
231
+ ```bash
232
+ git clone <repo>
233
+ cd fastmcp
234
+ uv sync # Installs all deps including dev tools
235
+ ```
236
+
237
+ ### Validation Commands (Run Frequently)
238
+
239
+ - **Linting**: `uv run ruff check` (or with `--fix`)
240
+ - **Type Checking**: `uv run ty check`
241
+ - **All Checks**: `uv run prek run --all-files`
242
+
243
+ ### Testing
244
+
245
+ - **Standard**: `uv run pytest`
246
+ - **Integration**: `uv run pytest -m "integration"`
247
+ - **Excluding markers**: `uv run pytest -m "not integration and not client_process"`
248
+
249
+ ### CLI Usage
250
+
251
+ - **Run server**: `uv run fastmcp run server.py`
252
+ - **Inspect server**: `uv run fastmcp inspect server.py`
253
+
254
+ ## Critical Patterns
255
+
256
+ ### Error Handling
257
+
258
+ - Never use bare `except` - be specific with exception types
259
+ - Use `# type: ignore[attr-defined]` in tests for MCP results
260
+
261
+ ### Build Issues (Common Solutions)
262
+
263
+ 1. **Dependencies**: Always `uv sync` first
264
+ 2. **Prek fails**: Run `uv run prek run --all-files` to see failures
265
+ 3. **Type errors**: Use `uv run ty check` directly, check `pyproject.toml` config
266
+ 4. **Test timeouts**: Default 5s - optimize or mark as integration tests