fastmcp 2.13.2__tar.gz → 2.14.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (923) hide show
  1. fastmcp-2.14.0/.github/workflows/martian-test-failure.yml +182 -0
  2. fastmcp-2.14.0/.github/workflows/run-tests.yml +112 -0
  3. fastmcp-2.14.0/.gitignore +77 -0
  4. fastmcp-2.14.0/.pre-commit-config.yaml +48 -0
  5. fastmcp-2.14.0/AGENTS.md +266 -0
  6. fastmcp-2.14.0/PKG-INFO +552 -0
  7. fastmcp-2.14.0/README.md +512 -0
  8. fastmcp-2.14.0/docs/changelog.mdx +2062 -0
  9. fastmcp-2.14.0/docs/clients/tasks.mdx +138 -0
  10. fastmcp-2.14.0/docs/css/version-badge.css +23 -0
  11. fastmcp-2.14.0/docs/deployment/http.mdx +736 -0
  12. fastmcp-2.14.0/docs/development/upgrade-guide.mdx +153 -0
  13. fastmcp-2.14.0/docs/docs.json +531 -0
  14. fastmcp-2.14.0/docs/integrations/fastapi.mdx +451 -0
  15. fastmcp-2.14.0/docs/integrations/oci.mdx +333 -0
  16. fastmcp-2.14.0/docs/integrations/openapi.mdx +451 -0
  17. fastmcp-2.14.0/docs/integrations/supabase.mdx +143 -0
  18. fastmcp-2.14.0/docs/python-sdk/fastmcp-cli-cli.mdx +129 -0
  19. fastmcp-2.14.0/docs/python-sdk/fastmcp-cli-tasks.mdx +41 -0
  20. fastmcp-2.14.0/docs/python-sdk/fastmcp-client-auth-oauth.mdx +104 -0
  21. fastmcp-2.14.0/docs/python-sdk/fastmcp-client-client.mdx +684 -0
  22. fastmcp-2.14.0/docs/python-sdk/fastmcp-client-elicitation.mdx +18 -0
  23. fastmcp-2.14.0/docs/python-sdk/fastmcp-client-messages.mdx +107 -0
  24. fastmcp-2.14.0/docs/python-sdk/fastmcp-client-tasks.mdx +219 -0
  25. fastmcp-2.14.0/docs/python-sdk/fastmcp-client-transports.mdx +312 -0
  26. fastmcp-2.14.0/docs/python-sdk/fastmcp-dependencies.mdx +14 -0
  27. fastmcp-2.14.0/docs/python-sdk/fastmcp-prompts-prompt.mdx +117 -0
  28. fastmcp-2.14.0/docs/python-sdk/fastmcp-resources-resource.mdx +123 -0
  29. fastmcp-2.14.0/docs/python-sdk/fastmcp-resources-template.mdx +182 -0
  30. fastmcp-2.14.0/docs/python-sdk/fastmcp-server-auth-auth.mdx +262 -0
  31. fastmcp-2.14.0/docs/python-sdk/fastmcp-server-auth-oauth_proxy.mdx +420 -0
  32. fastmcp-2.14.0/docs/python-sdk/fastmcp-server-auth-oidc_proxy.mdx +82 -0
  33. fastmcp-2.14.0/docs/python-sdk/fastmcp-server-auth-providers-azure.mdx +76 -0
  34. fastmcp-2.14.0/docs/python-sdk/fastmcp-server-auth-providers-discord.mdx +72 -0
  35. fastmcp-2.14.0/docs/python-sdk/fastmcp-server-context.mdx +421 -0
  36. fastmcp-2.14.0/docs/python-sdk/fastmcp-server-dependencies.mdx +262 -0
  37. fastmcp-2.14.0/docs/python-sdk/fastmcp-server-elicitation.mdx +140 -0
  38. fastmcp-2.14.0/docs/python-sdk/fastmcp-server-event_store.mdx +78 -0
  39. fastmcp-2.14.0/docs/python-sdk/fastmcp-server-http.mdx +106 -0
  40. fastmcp-2.14.0/docs/python-sdk/fastmcp-server-low_level.mdx +53 -0
  41. fastmcp-2.14.0/docs/python-sdk/fastmcp-server-middleware-middleware.mdx +112 -0
  42. fastmcp-2.14.0/docs/python-sdk/fastmcp-server-openapi-__init__.mdx +9 -0
  43. fastmcp-2.14.0/docs/python-sdk/fastmcp-server-openapi-components.mdx +62 -0
  44. fastmcp-2.14.0/docs/python-sdk/fastmcp-server-openapi-routing.mdx +23 -0
  45. fastmcp-2.14.0/docs/python-sdk/fastmcp-server-openapi-server.mdx +20 -0
  46. fastmcp-2.14.0/docs/python-sdk/fastmcp-server-proxy.mdx +339 -0
  47. fastmcp-2.14.0/docs/python-sdk/fastmcp-server-server.mdx +799 -0
  48. fastmcp-2.14.0/docs/python-sdk/fastmcp-server-tasks-__init__.mdx +12 -0
  49. fastmcp-2.14.0/docs/python-sdk/fastmcp-server-tasks-capabilities.mdx +24 -0
  50. fastmcp-2.14.0/docs/python-sdk/fastmcp-server-tasks-config.mdx +66 -0
  51. fastmcp-2.14.0/docs/python-sdk/fastmcp-server-tasks-converters.mdx +77 -0
  52. fastmcp-2.14.0/docs/python-sdk/fastmcp-server-tasks-handlers.mdx +78 -0
  53. fastmcp-2.14.0/docs/python-sdk/fastmcp-server-tasks-keys.mdx +91 -0
  54. fastmcp-2.14.0/docs/python-sdk/fastmcp-server-tasks-protocol.mdx +88 -0
  55. fastmcp-2.14.0/docs/python-sdk/fastmcp-server-tasks-subscriptions.mdx +35 -0
  56. fastmcp-2.14.0/docs/python-sdk/fastmcp-settings.mdx +56 -0
  57. fastmcp-2.14.0/docs/python-sdk/fastmcp-tools-tool.mdx +128 -0
  58. fastmcp-2.14.0/docs/python-sdk/fastmcp-tools-tool_transform.mdx +290 -0
  59. fastmcp-2.14.0/docs/python-sdk/fastmcp-utilities-openapi-__init__.mdx +9 -0
  60. fastmcp-2.14.0/docs/python-sdk/fastmcp-utilities-openapi-director.mdx +36 -0
  61. fastmcp-2.14.0/docs/python-sdk/fastmcp-utilities-openapi-formatters.mdx +115 -0
  62. fastmcp-2.14.0/docs/python-sdk/fastmcp-utilities-openapi-json_schema_converter.mdx +62 -0
  63. fastmcp-2.14.0/docs/python-sdk/fastmcp-utilities-openapi-models.mdx +35 -0
  64. fastmcp-2.14.0/docs/python-sdk/fastmcp-utilities-openapi-parser.mdx +43 -0
  65. fastmcp-2.14.0/docs/python-sdk/fastmcp-utilities-openapi-schemas.mdx +43 -0
  66. fastmcp-2.14.0/docs/python-sdk/fastmcp-utilities-tests.mdx +106 -0
  67. fastmcp-2.14.0/docs/python-sdk/fastmcp-utilities-types.mdx +169 -0
  68. fastmcp-2.14.0/docs/python-sdk/fastmcp-utilities-ui.mdx +140 -0
  69. fastmcp-2.14.0/docs/servers/auth/oauth-proxy.mdx +594 -0
  70. fastmcp-2.14.0/docs/servers/composition.mdx +326 -0
  71. fastmcp-2.14.0/docs/servers/context.mdx +613 -0
  72. fastmcp-2.14.0/docs/servers/elicitation.mdx +462 -0
  73. fastmcp-2.14.0/docs/servers/middleware.mdx +816 -0
  74. fastmcp-2.14.0/docs/servers/proxy.mdx +349 -0
  75. fastmcp-2.14.0/docs/servers/server.mdx +436 -0
  76. fastmcp-2.14.0/docs/servers/tasks.mdx +223 -0
  77. fastmcp-2.14.0/docs/servers/tools.mdx +991 -0
  78. fastmcp-2.14.0/docs/snippets/version-badge.mdx +7 -0
  79. fastmcp-2.14.0/examples/auth/mounted/README.md +39 -0
  80. fastmcp-2.14.0/examples/auth/mounted/client.py +50 -0
  81. fastmcp-2.14.0/examples/auth/mounted/server.py +121 -0
  82. fastmcp-2.14.0/examples/memory.py +341 -0
  83. fastmcp-2.14.0/examples/screenshot.py +34 -0
  84. fastmcp-2.14.0/examples/smart_home/src/smart_home/lights/server.py +307 -0
  85. fastmcp-2.14.0/examples/tasks/README.md +60 -0
  86. fastmcp-2.14.0/examples/tasks/client.py +160 -0
  87. fastmcp-2.14.0/examples/tasks/docker-compose.yml +10 -0
  88. fastmcp-2.14.0/examples/tasks/server.py +75 -0
  89. fastmcp-2.14.0/pyproject.toml +182 -0
  90. fastmcp-2.14.0/src/fastmcp/__init__.py +35 -0
  91. fastmcp-2.14.0/src/fastmcp/cli/__init__.py +3 -0
  92. fastmcp-2.14.0/src/fastmcp/cli/__main__.py +5 -0
  93. fastmcp-2.14.0/src/fastmcp/cli/cli.py +864 -0
  94. fastmcp-2.14.0/src/fastmcp/cli/install/shared.py +127 -0
  95. fastmcp-2.14.0/src/fastmcp/cli/tasks.py +110 -0
  96. fastmcp-2.14.0/src/fastmcp/client/auth/oauth.py +325 -0
  97. fastmcp-2.14.0/src/fastmcp/client/client.py +1551 -0
  98. fastmcp-2.14.0/src/fastmcp/client/elicitation.py +80 -0
  99. fastmcp-2.14.0/src/fastmcp/client/messages.py +128 -0
  100. fastmcp-2.14.0/src/fastmcp/client/roots.py +76 -0
  101. fastmcp-2.14.0/src/fastmcp/client/tasks.py +614 -0
  102. fastmcp-2.14.0/src/fastmcp/client/transports.py +1151 -0
  103. fastmcp-2.14.0/src/fastmcp/contrib/component_manager/component_service.py +209 -0
  104. fastmcp-2.14.0/src/fastmcp/dependencies.py +25 -0
  105. fastmcp-2.14.0/src/fastmcp/experimental/sampling/handlers/openai.py +170 -0
  106. fastmcp-2.14.0/src/fastmcp/experimental/server/openapi/__init__.py +37 -0
  107. fastmcp-2.14.0/src/fastmcp/experimental/utilities/openapi/__init__.py +37 -0
  108. fastmcp-2.14.0/src/fastmcp/prompts/prompt.py +381 -0
  109. fastmcp-2.14.0/src/fastmcp/resources/resource.py +240 -0
  110. fastmcp-2.14.0/src/fastmcp/resources/template.py +413 -0
  111. fastmcp-2.14.0/src/fastmcp/server/auth/__init__.py +25 -0
  112. fastmcp-2.14.0/src/fastmcp/server/auth/auth.py +523 -0
  113. fastmcp-2.14.0/src/fastmcp/server/auth/oauth_proxy.py +2189 -0
  114. fastmcp-2.14.0/src/fastmcp/server/auth/oidc_proxy.py +419 -0
  115. fastmcp-2.14.0/src/fastmcp/server/auth/providers/in_memory.py +364 -0
  116. fastmcp-2.14.0/src/fastmcp/server/auth/providers/oci.py +233 -0
  117. fastmcp-2.14.0/src/fastmcp/server/context.py +797 -0
  118. fastmcp-2.14.0/src/fastmcp/server/dependencies.py +621 -0
  119. fastmcp-2.14.0/src/fastmcp/server/elicitation.py +458 -0
  120. fastmcp-2.14.0/src/fastmcp/server/event_store.py +177 -0
  121. fastmcp-2.14.0/src/fastmcp/server/http.py +372 -0
  122. fastmcp-2.14.0/src/fastmcp/server/low_level.py +200 -0
  123. fastmcp-2.14.0/src/fastmcp/server/middleware/middleware.py +208 -0
  124. fastmcp-2.14.0/src/fastmcp/server/openapi/components.py +353 -0
  125. fastmcp-2.14.0/src/fastmcp/server/openapi/routing.py +130 -0
  126. fastmcp-2.14.0/src/fastmcp/server/openapi/server.py +452 -0
  127. fastmcp-2.14.0/src/fastmcp/server/proxy.py +707 -0
  128. fastmcp-2.14.0/src/fastmcp/server/server.py +3097 -0
  129. fastmcp-2.14.0/src/fastmcp/server/tasks/__init__.py +21 -0
  130. fastmcp-2.14.0/src/fastmcp/server/tasks/capabilities.py +22 -0
  131. fastmcp-2.14.0/src/fastmcp/server/tasks/config.py +89 -0
  132. fastmcp-2.14.0/src/fastmcp/server/tasks/converters.py +205 -0
  133. fastmcp-2.14.0/src/fastmcp/server/tasks/handlers.py +356 -0
  134. fastmcp-2.14.0/src/fastmcp/server/tasks/keys.py +93 -0
  135. fastmcp-2.14.0/src/fastmcp/server/tasks/protocol.py +355 -0
  136. fastmcp-2.14.0/src/fastmcp/server/tasks/subscriptions.py +205 -0
  137. fastmcp-2.14.0/src/fastmcp/settings.py +412 -0
  138. fastmcp-2.14.0/src/fastmcp/tools/tool.py +641 -0
  139. fastmcp-2.14.0/src/fastmcp/tools/tool_transform.py +943 -0
  140. fastmcp-2.14.0/src/fastmcp/utilities/components.py +181 -0
  141. fastmcp-2.14.0/src/fastmcp/utilities/json_schema_type.py +648 -0
  142. fastmcp-2.14.0/src/fastmcp/utilities/mcp_config.py +56 -0
  143. fastmcp-2.14.0/src/fastmcp/utilities/mcp_server_config/v1/mcp_server_config.py +447 -0
  144. fastmcp-2.14.0/src/fastmcp/utilities/openapi/README.md +211 -0
  145. fastmcp-2.14.0/src/fastmcp/utilities/openapi/formatters.py +389 -0
  146. fastmcp-2.14.0/src/fastmcp/utilities/openapi/json_schema_converter.py +344 -0
  147. fastmcp-2.14.0/src/fastmcp/utilities/tests.py +286 -0
  148. fastmcp-2.14.0/src/fastmcp/utilities/types.py +496 -0
  149. fastmcp-2.14.0/tests/cli/test_tasks.py +50 -0
  150. fastmcp-2.14.0/tests/client/auth/test_oauth_client.py +173 -0
  151. fastmcp-2.14.0/tests/client/tasks/conftest.py +3 -0
  152. fastmcp-2.14.0/tests/client/tasks/test_client_prompt_tasks.py +103 -0
  153. fastmcp-2.14.0/tests/client/tasks/test_client_resource_tasks.py +108 -0
  154. fastmcp-2.14.0/tests/client/tasks/test_client_task_notifications.py +209 -0
  155. fastmcp-2.14.0/tests/client/tasks/test_client_task_protocol.py +85 -0
  156. fastmcp-2.14.0/tests/client/tasks/test_client_tool_tasks.py +88 -0
  157. fastmcp-2.14.0/tests/client/tasks/test_task_context_validation.py +210 -0
  158. fastmcp-2.14.0/tests/client/tasks/test_task_result_caching.py +325 -0
  159. fastmcp-2.14.0/tests/client/test_client.py +1178 -0
  160. fastmcp-2.14.0/tests/client/test_elicitation.py +1071 -0
  161. fastmcp-2.14.0/tests/client/test_openapi.py +192 -0
  162. fastmcp-2.14.0/tests/client/test_sampling.py +165 -0
  163. fastmcp-2.14.0/tests/client/test_sse.py +190 -0
  164. fastmcp-2.14.0/tests/client/test_streamable_http.py +263 -0
  165. fastmcp-2.14.0/tests/client/transports/test_transports.py +39 -0
  166. fastmcp-2.14.0/tests/deprecated/test_deprecated.py +48 -0
  167. fastmcp-2.14.0/tests/deprecated/test_openapi_deprecations.py +73 -0
  168. fastmcp-2.14.0/tests/deprecated/test_settings.py +300 -0
  169. fastmcp-2.14.0/tests/integration_tests/conftest.py +72 -0
  170. fastmcp-2.14.0/tests/integration_tests/test_github_mcp_remote.py +122 -0
  171. fastmcp-2.14.0/tests/prompts/test_prompt_manager.py +464 -0
  172. fastmcp-2.14.0/tests/resources/test_resource_template.py +991 -0
  173. fastmcp-2.14.0/tests/server/auth/providers/test_azure.py +882 -0
  174. fastmcp-2.14.0/tests/server/auth/test_jwt_provider.py +1101 -0
  175. fastmcp-2.14.0/tests/server/auth/test_oauth_mounting.py +380 -0
  176. fastmcp-2.14.0/tests/server/auth/test_oauth_proxy.py +1470 -0
  177. fastmcp-2.14.0/tests/server/auth/test_oauth_proxy_redirect_validation.py +201 -0
  178. fastmcp-2.14.0/tests/server/auth/test_oauth_proxy_storage.py +209 -0
  179. fastmcp-2.14.0/tests/server/http/test_http_middleware.py +234 -0
  180. fastmcp-2.14.0/tests/server/middleware/test_caching.py +528 -0
  181. fastmcp-2.14.0/tests/server/middleware/test_initialization_middleware.py +375 -0
  182. fastmcp-2.14.0/tests/server/middleware/test_logging.py +670 -0
  183. fastmcp-2.14.0/tests/server/openapi/test_comprehensive.py +695 -0
  184. fastmcp-2.14.0/tests/server/openapi/test_deepobject_style.py +333 -0
  185. fastmcp-2.14.0/tests/server/openapi/test_end_to_end_compatibility.py +325 -0
  186. fastmcp-2.14.0/tests/server/openapi/test_openapi_features.py +401 -0
  187. fastmcp-2.14.0/tests/server/openapi/test_openapi_performance.py +136 -0
  188. fastmcp-2.14.0/tests/server/openapi/test_parameter_collisions.py +212 -0
  189. fastmcp-2.14.0/tests/server/openapi/test_performance_comparison.py +285 -0
  190. fastmcp-2.14.0/tests/server/openapi/test_server.py +337 -0
  191. fastmcp-2.14.0/tests/server/proxy/test_proxy_client.py +427 -0
  192. fastmcp-2.14.0/tests/server/proxy/test_proxy_server.py +789 -0
  193. fastmcp-2.14.0/tests/server/proxy/test_stateful_proxy_client.py +147 -0
  194. fastmcp-2.14.0/tests/server/tasks/__init__.py +1 -0
  195. fastmcp-2.14.0/tests/server/tasks/conftest.py +3 -0
  196. fastmcp-2.14.0/tests/server/tasks/test_progress_dependency.py +155 -0
  197. fastmcp-2.14.0/tests/server/tasks/test_server_tasks_parameter.py +310 -0
  198. fastmcp-2.14.0/tests/server/tasks/test_sync_function_task_disabled.py +229 -0
  199. fastmcp-2.14.0/tests/server/tasks/test_task_capabilities.py +44 -0
  200. fastmcp-2.14.0/tests/server/tasks/test_task_config_modes.py +350 -0
  201. fastmcp-2.14.0/tests/server/tasks/test_task_dependencies.py +272 -0
  202. fastmcp-2.14.0/tests/server/tasks/test_task_metadata.py +63 -0
  203. fastmcp-2.14.0/tests/server/tasks/test_task_methods.py +174 -0
  204. fastmcp-2.14.0/tests/server/tasks/test_task_mount.py +550 -0
  205. fastmcp-2.14.0/tests/server/tasks/test_task_prompts.py +92 -0
  206. fastmcp-2.14.0/tests/server/tasks/test_task_protocol.py +81 -0
  207. fastmcp-2.14.0/tests/server/tasks/test_task_proxy.py +165 -0
  208. fastmcp-2.14.0/tests/server/tasks/test_task_resources.py +108 -0
  209. fastmcp-2.14.0/tests/server/tasks/test_task_return_types.py +660 -0
  210. fastmcp-2.14.0/tests/server/tasks/test_task_security.py +47 -0
  211. fastmcp-2.14.0/tests/server/tasks/test_task_status_notifications.py +160 -0
  212. fastmcp-2.14.0/tests/server/tasks/test_task_tools.py +102 -0
  213. fastmcp-2.14.0/tests/server/tasks/test_task_ttl.py +87 -0
  214. fastmcp-2.14.0/tests/server/test_auth_integration.py +1242 -0
  215. fastmcp-2.14.0/tests/server/test_context.py +182 -0
  216. fastmcp-2.14.0/tests/server/test_dependencies.py +735 -0
  217. fastmcp-2.14.0/tests/server/test_event_store.py +237 -0
  218. fastmcp-2.14.0/tests/server/test_import_server.py +627 -0
  219. fastmcp-2.14.0/tests/server/test_logging.py +177 -0
  220. fastmcp-2.14.0/tests/server/test_mount.py +1363 -0
  221. fastmcp-2.14.0/tests/server/test_server.py +1526 -0
  222. fastmcp-2.14.0/tests/server/test_server_docket.py +170 -0
  223. fastmcp-2.14.0/tests/server/test_server_interactions.py +2804 -0
  224. fastmcp-2.14.0/tests/server/test_server_lifespan.py +71 -0
  225. fastmcp-2.14.0/tests/server/test_tool_annotations.py +255 -0
  226. fastmcp-2.14.0/tests/tools/test_tool.py +1897 -0
  227. fastmcp-2.14.0/tests/tools/test_tool_manager.py +1083 -0
  228. fastmcp-2.14.0/tests/utilities/openapi/test_allof_requestbody.py +227 -0
  229. fastmcp-2.14.0/tests/utilities/openapi/test_direct_array_schemas.py +323 -0
  230. fastmcp-2.14.0/tests/utilities/openapi/test_director.py +462 -0
  231. fastmcp-2.14.0/tests/utilities/openapi/test_legacy_compatibility.py +192 -0
  232. fastmcp-2.14.0/tests/utilities/openapi/test_models.py +476 -0
  233. fastmcp-2.14.0/tests/utilities/openapi/test_nullable_fields.py +375 -0
  234. fastmcp-2.14.0/tests/utilities/openapi/test_parser.py +460 -0
  235. fastmcp-2.14.0/tests/utilities/openapi/test_schemas.py +635 -0
  236. fastmcp-2.14.0/tests/utilities/openapi/test_transitive_references.py +842 -0
  237. fastmcp-2.14.0/tests/utilities/test_json_schema_type.py +1586 -0
  238. fastmcp-2.14.0/tests/utilities/test_types.py +673 -0
  239. fastmcp-2.14.0/uv.lock +2642 -0
  240. fastmcp-2.13.2/.github/workflows/martian-test-failure.yml +0 -179
  241. fastmcp-2.13.2/.github/workflows/run-tests.yml +0 -107
  242. fastmcp-2.13.2/.gitignore +0 -76
  243. fastmcp-2.13.2/.pre-commit-config.yaml +0 -48
  244. fastmcp-2.13.2/AGENTS.md +0 -265
  245. fastmcp-2.13.2/PKG-INFO +0 -551
  246. fastmcp-2.13.2/README.md +0 -512
  247. fastmcp-2.13.2/docs/changelog.mdx +0 -2062
  248. fastmcp-2.13.2/docs/css/version-badge.css +0 -39
  249. fastmcp-2.13.2/docs/deployment/http.mdx +0 -605
  250. fastmcp-2.13.2/docs/development/upgrade-guide.mdx +0 -50
  251. fastmcp-2.13.2/docs/docs.json +0 -491
  252. fastmcp-2.13.2/docs/integrations/fastapi.mdx +0 -460
  253. fastmcp-2.13.2/docs/integrations/oci.mdx +0 -333
  254. fastmcp-2.13.2/docs/integrations/openapi.mdx +0 -473
  255. fastmcp-2.13.2/docs/python-sdk/fastmcp-cli-cli.mdx +0 -129
  256. fastmcp-2.13.2/docs/python-sdk/fastmcp-client-auth-oauth.mdx +0 -104
  257. fastmcp-2.13.2/docs/python-sdk/fastmcp-client-client.mdx +0 -546
  258. fastmcp-2.13.2/docs/python-sdk/fastmcp-client-elicitation.mdx +0 -18
  259. fastmcp-2.13.2/docs/python-sdk/fastmcp-client-messages.mdx +0 -107
  260. fastmcp-2.13.2/docs/python-sdk/fastmcp-client-transports.mdx +0 -300
  261. fastmcp-2.13.2/docs/python-sdk/fastmcp-prompts-prompt.mdx +0 -117
  262. fastmcp-2.13.2/docs/python-sdk/fastmcp-resources-resource.mdx +0 -123
  263. fastmcp-2.13.2/docs/python-sdk/fastmcp-resources-template.mdx +0 -170
  264. fastmcp-2.13.2/docs/python-sdk/fastmcp-server-auth-auth.mdx +0 -210
  265. fastmcp-2.13.2/docs/python-sdk/fastmcp-server-auth-oauth_proxy.mdx +0 -429
  266. fastmcp-2.13.2/docs/python-sdk/fastmcp-server-auth-oidc_proxy.mdx +0 -82
  267. fastmcp-2.13.2/docs/python-sdk/fastmcp-server-auth-providers-azure.mdx +0 -76
  268. fastmcp-2.13.2/docs/python-sdk/fastmcp-server-auth-providers-bearer.mdx +0 -13
  269. fastmcp-2.13.2/docs/python-sdk/fastmcp-server-context.mdx +0 -412
  270. fastmcp-2.13.2/docs/python-sdk/fastmcp-server-dependencies.mdx +0 -49
  271. fastmcp-2.13.2/docs/python-sdk/fastmcp-server-elicitation.mdx +0 -87
  272. fastmcp-2.13.2/docs/python-sdk/fastmcp-server-http.mdx +0 -103
  273. fastmcp-2.13.2/docs/python-sdk/fastmcp-server-low_level.mdx +0 -53
  274. fastmcp-2.13.2/docs/python-sdk/fastmcp-server-middleware-middleware.mdx +0 -112
  275. fastmcp-2.13.2/docs/python-sdk/fastmcp-server-openapi.mdx +0 -91
  276. fastmcp-2.13.2/docs/python-sdk/fastmcp-server-proxy.mdx +0 -339
  277. fastmcp-2.13.2/docs/python-sdk/fastmcp-server-server.mdx +0 -876
  278. fastmcp-2.13.2/docs/python-sdk/fastmcp-settings.mdx +0 -84
  279. fastmcp-2.13.2/docs/python-sdk/fastmcp-tools-tool.mdx +0 -117
  280. fastmcp-2.13.2/docs/python-sdk/fastmcp-tools-tool_transform.mdx +0 -290
  281. fastmcp-2.13.2/docs/python-sdk/fastmcp-utilities-openapi.mdx +0 -180
  282. fastmcp-2.13.2/docs/python-sdk/fastmcp-utilities-tests.mdx +0 -106
  283. fastmcp-2.13.2/docs/python-sdk/fastmcp-utilities-types.mdx +0 -169
  284. fastmcp-2.13.2/docs/python-sdk/fastmcp-utilities-ui.mdx +0 -139
  285. fastmcp-2.13.2/docs/servers/auth/oauth-proxy.mdx +0 -591
  286. fastmcp-2.13.2/docs/servers/composition.mdx +0 -381
  287. fastmcp-2.13.2/docs/servers/context.mdx +0 -529
  288. fastmcp-2.13.2/docs/servers/elicitation.mdx +0 -319
  289. fastmcp-2.13.2/docs/servers/middleware.mdx +0 -790
  290. fastmcp-2.13.2/docs/servers/proxy.mdx +0 -352
  291. fastmcp-2.13.2/docs/servers/server.mdx +0 -439
  292. fastmcp-2.13.2/docs/servers/tools.mdx +0 -940
  293. fastmcp-2.13.2/docs/snippets/version-badge.mdx +0 -12
  294. fastmcp-2.13.2/examples/memory.py +0 -348
  295. fastmcp-2.13.2/examples/screenshot.py +0 -29
  296. fastmcp-2.13.2/examples/smart_home/src/smart_home/lights/server.py +0 -304
  297. fastmcp-2.13.2/pyproject.toml +0 -181
  298. fastmcp-2.13.2/src/fastmcp/__init__.py +0 -56
  299. fastmcp-2.13.2/src/fastmcp/cli/__init__.py +0 -6
  300. fastmcp-2.13.2/src/fastmcp/cli/cli.py +0 -878
  301. fastmcp-2.13.2/src/fastmcp/cli/install/shared.py +0 -142
  302. fastmcp-2.13.2/src/fastmcp/client/auth/oauth.py +0 -325
  303. fastmcp-2.13.2/src/fastmcp/client/client.py +0 -1015
  304. fastmcp-2.13.2/src/fastmcp/client/elicitation.py +0 -74
  305. fastmcp-2.13.2/src/fastmcp/client/messages.py +0 -126
  306. fastmcp-2.13.2/src/fastmcp/client/roots.py +0 -75
  307. fastmcp-2.13.2/src/fastmcp/client/transports.py +0 -1119
  308. fastmcp-2.13.2/src/fastmcp/contrib/component_manager/component_service.py +0 -225
  309. fastmcp-2.13.2/src/fastmcp/experimental/sampling/handlers/openai.py +0 -170
  310. fastmcp-2.13.2/src/fastmcp/experimental/server/openapi/components.py +0 -352
  311. fastmcp-2.13.2/src/fastmcp/experimental/server/openapi/routing.py +0 -130
  312. fastmcp-2.13.2/src/fastmcp/experimental/server/openapi/server.py +0 -451
  313. fastmcp-2.13.2/src/fastmcp/experimental/utilities/openapi/README.md +0 -239
  314. fastmcp-2.13.2/src/fastmcp/experimental/utilities/openapi/formatters.py +0 -389
  315. fastmcp-2.13.2/src/fastmcp/experimental/utilities/openapi/json_schema_converter.py +0 -344
  316. fastmcp-2.13.2/src/fastmcp/prompts/prompt.py +0 -381
  317. fastmcp-2.13.2/src/fastmcp/resources/resource.py +0 -223
  318. fastmcp-2.13.2/src/fastmcp/resources/template.py +0 -403
  319. fastmcp-2.13.2/src/fastmcp/server/auth/__init__.py +0 -34
  320. fastmcp-2.13.2/src/fastmcp/server/auth/auth.py +0 -399
  321. fastmcp-2.13.2/src/fastmcp/server/auth/oauth_proxy.py +0 -2239
  322. fastmcp-2.13.2/src/fastmcp/server/auth/oidc_proxy.py +0 -412
  323. fastmcp-2.13.2/src/fastmcp/server/auth/providers/bearer.py +0 -25
  324. fastmcp-2.13.2/src/fastmcp/server/auth/providers/in_memory.py +0 -364
  325. fastmcp-2.13.2/src/fastmcp/server/auth/providers/oci.py +0 -233
  326. fastmcp-2.13.2/src/fastmcp/server/context.py +0 -803
  327. fastmcp-2.13.2/src/fastmcp/server/dependencies.py +0 -163
  328. fastmcp-2.13.2/src/fastmcp/server/elicitation.py +0 -220
  329. fastmcp-2.13.2/src/fastmcp/server/http.py +0 -360
  330. fastmcp-2.13.2/src/fastmcp/server/low_level.py +0 -156
  331. fastmcp-2.13.2/src/fastmcp/server/middleware/middleware.py +0 -208
  332. fastmcp-2.13.2/src/fastmcp/server/openapi.py +0 -1087
  333. fastmcp-2.13.2/src/fastmcp/server/proxy.py +0 -694
  334. fastmcp-2.13.2/src/fastmcp/server/server.py +0 -2898
  335. fastmcp-2.13.2/src/fastmcp/settings.py +0 -414
  336. fastmcp-2.13.2/src/fastmcp/tools/tool.py +0 -605
  337. fastmcp-2.13.2/src/fastmcp/tools/tool_transform.py +0 -954
  338. fastmcp-2.13.2/src/fastmcp/utilities/components.py +0 -181
  339. fastmcp-2.13.2/src/fastmcp/utilities/json_schema_type.py +0 -648
  340. fastmcp-2.13.2/src/fastmcp/utilities/mcp_config.py +0 -57
  341. fastmcp-2.13.2/src/fastmcp/utilities/mcp_server_config/v1/mcp_server_config.py +0 -447
  342. fastmcp-2.13.2/src/fastmcp/utilities/openapi.py +0 -1568
  343. fastmcp-2.13.2/src/fastmcp/utilities/tests.py +0 -280
  344. fastmcp-2.13.2/src/fastmcp/utilities/types.py +0 -488
  345. fastmcp-2.13.2/tests/client/auth/test_oauth_client.py +0 -126
  346. fastmcp-2.13.2/tests/client/test_client.py +0 -1173
  347. fastmcp-2.13.2/tests/client/test_elicitation.py +0 -731
  348. fastmcp-2.13.2/tests/client/test_openapi_experimental.py +0 -194
  349. fastmcp-2.13.2/tests/client/test_openapi_legacy.py +0 -190
  350. fastmcp-2.13.2/tests/client/test_sampling.py +0 -163
  351. fastmcp-2.13.2/tests/client/test_sse.py +0 -190
  352. fastmcp-2.13.2/tests/client/test_streamable_http.py +0 -254
  353. fastmcp-2.13.2/tests/client/transports/test_transports.py +0 -37
  354. fastmcp-2.13.2/tests/deprecated/test_bearer_auth_provider.py +0 -13
  355. fastmcp-2.13.2/tests/deprecated/test_dependencies.py +0 -30
  356. fastmcp-2.13.2/tests/deprecated/test_deprecated.py +0 -111
  357. fastmcp-2.13.2/tests/deprecated/test_mount_import_arg_order.py +0 -275
  358. fastmcp-2.13.2/tests/deprecated/test_mount_separators.py +0 -113
  359. fastmcp-2.13.2/tests/deprecated/test_output_schema_false.py +0 -139
  360. fastmcp-2.13.2/tests/deprecated/test_proxy_client.py +0 -107
  361. fastmcp-2.13.2/tests/deprecated/test_resource_prefixes.py +0 -105
  362. fastmcp-2.13.2/tests/deprecated/test_route_type_ignore.py +0 -116
  363. fastmcp-2.13.2/tests/deprecated/test_settings.py +0 -361
  364. fastmcp-2.13.2/tests/experimental/openapi_parser/README.md +0 -5
  365. fastmcp-2.13.2/tests/experimental/openapi_parser/conftest.py +0 -11
  366. fastmcp-2.13.2/tests/experimental/openapi_parser/server/openapi/test_comprehensive.py +0 -695
  367. fastmcp-2.13.2/tests/experimental/openapi_parser/server/openapi/test_deepobject_style.py +0 -333
  368. fastmcp-2.13.2/tests/experimental/openapi_parser/server/openapi/test_end_to_end_compatibility.py +0 -325
  369. fastmcp-2.13.2/tests/experimental/openapi_parser/server/openapi/test_openapi_features.py +0 -401
  370. fastmcp-2.13.2/tests/experimental/openapi_parser/server/openapi/test_openapi_performance.py +0 -143
  371. fastmcp-2.13.2/tests/experimental/openapi_parser/server/openapi/test_parameter_collisions.py +0 -212
  372. fastmcp-2.13.2/tests/experimental/openapi_parser/server/openapi/test_performance_comparison.py +0 -285
  373. fastmcp-2.13.2/tests/experimental/openapi_parser/server/openapi/test_server.py +0 -337
  374. fastmcp-2.13.2/tests/experimental/openapi_parser/utilities/openapi/test_allof_requestbody.py +0 -227
  375. fastmcp-2.13.2/tests/experimental/openapi_parser/utilities/openapi/test_direct_array_schemas.py +0 -323
  376. fastmcp-2.13.2/tests/experimental/openapi_parser/utilities/openapi/test_director.py +0 -462
  377. fastmcp-2.13.2/tests/experimental/openapi_parser/utilities/openapi/test_legacy_compatibility.py +0 -333
  378. fastmcp-2.13.2/tests/experimental/openapi_parser/utilities/openapi/test_models.py +0 -476
  379. fastmcp-2.13.2/tests/experimental/openapi_parser/utilities/openapi/test_nullable_fields.py +0 -375
  380. fastmcp-2.13.2/tests/experimental/openapi_parser/utilities/openapi/test_parser.py +0 -460
  381. fastmcp-2.13.2/tests/experimental/openapi_parser/utilities/openapi/test_schemas.py +0 -635
  382. fastmcp-2.13.2/tests/experimental/openapi_parser/utilities/openapi/test_transitive_references.py +0 -842
  383. fastmcp-2.13.2/tests/integration_tests/conftest.py +0 -28
  384. fastmcp-2.13.2/tests/integration_tests/test_github_mcp_remote.py +0 -123
  385. fastmcp-2.13.2/tests/prompts/test_prompt_manager.py +0 -436
  386. fastmcp-2.13.2/tests/resources/test_resource_template.py +0 -956
  387. fastmcp-2.13.2/tests/server/auth/providers/test_azure.py +0 -881
  388. fastmcp-2.13.2/tests/server/auth/test_jwt_provider.py +0 -1101
  389. fastmcp-2.13.2/tests/server/auth/test_oauth_mounting.py +0 -267
  390. fastmcp-2.13.2/tests/server/auth/test_oauth_proxy.py +0 -1411
  391. fastmcp-2.13.2/tests/server/auth/test_oauth_proxy_redirect_validation.py +0 -201
  392. fastmcp-2.13.2/tests/server/auth/test_oauth_proxy_storage.py +0 -207
  393. fastmcp-2.13.2/tests/server/http/test_http_middleware.py +0 -213
  394. fastmcp-2.13.2/tests/server/middleware/__init__.py +0 -0
  395. fastmcp-2.13.2/tests/server/middleware/test_caching.py +0 -523
  396. fastmcp-2.13.2/tests/server/middleware/test_initialization_middleware.py +0 -251
  397. fastmcp-2.13.2/tests/server/middleware/test_logging.py +0 -670
  398. fastmcp-2.13.2/tests/server/openapi/__init__.py +0 -0
  399. fastmcp-2.13.2/tests/server/openapi/conftest.py +0 -135
  400. fastmcp-2.13.2/tests/server/openapi/test_advanced_behavior.py +0 -315
  401. fastmcp-2.13.2/tests/server/openapi/test_basic_functionality.py +0 -369
  402. fastmcp-2.13.2/tests/server/openapi/test_configuration.py +0 -933
  403. fastmcp-2.13.2/tests/server/openapi/test_deepobject_style.py +0 -281
  404. fastmcp-2.13.2/tests/server/openapi/test_description_propagation.py +0 -796
  405. fastmcp-2.13.2/tests/server/openapi/test_explode_integration.py +0 -320
  406. fastmcp-2.13.2/tests/server/openapi/test_openapi_compatibility.py +0 -661
  407. fastmcp-2.13.2/tests/server/openapi/test_openapi_path_parameters.py +0 -624
  408. fastmcp-2.13.2/tests/server/openapi/test_optional_parameters.py +0 -100
  409. fastmcp-2.13.2/tests/server/openapi/test_parameter_collisions.py +0 -258
  410. fastmcp-2.13.2/tests/server/openapi/test_route_map_fn.py +0 -452
  411. fastmcp-2.13.2/tests/server/proxy/__init__.py +0 -0
  412. fastmcp-2.13.2/tests/server/proxy/test_proxy_client.py +0 -419
  413. fastmcp-2.13.2/tests/server/proxy/test_proxy_server.py +0 -771
  414. fastmcp-2.13.2/tests/server/proxy/test_stateful_proxy_client.py +0 -148
  415. fastmcp-2.13.2/tests/server/test_auth_integration.py +0 -1240
  416. fastmcp-2.13.2/tests/server/test_context.py +0 -236
  417. fastmcp-2.13.2/tests/server/test_experimental_openapi_feature_flag.py +0 -98
  418. fastmcp-2.13.2/tests/server/test_import_server.py +0 -646
  419. fastmcp-2.13.2/tests/server/test_logging.py +0 -177
  420. fastmcp-2.13.2/tests/server/test_mount.py +0 -1241
  421. fastmcp-2.13.2/tests/server/test_resource_prefix_formats.py +0 -65
  422. fastmcp-2.13.2/tests/server/test_server.py +0 -1686
  423. fastmcp-2.13.2/tests/server/test_server_interactions.py +0 -2775
  424. fastmcp-2.13.2/tests/server/test_server_lifespan.py +0 -68
  425. fastmcp-2.13.2/tests/server/test_tool_annotations.py +0 -221
  426. fastmcp-2.13.2/tests/test_examples.py +0 -70
  427. fastmcp-2.13.2/tests/tools/__init__.py +0 -0
  428. fastmcp-2.13.2/tests/tools/test_tool.py +0 -1708
  429. fastmcp-2.13.2/tests/tools/test_tool_manager.py +0 -1053
  430. fastmcp-2.13.2/tests/utilities/openapi/__init__.py +0 -1
  431. fastmcp-2.13.2/tests/utilities/openapi/conftest.py +0 -1
  432. fastmcp-2.13.2/tests/utilities/openapi/test_nullable_fields.py +0 -243
  433. fastmcp-2.13.2/tests/utilities/openapi/test_openapi.py +0 -1285
  434. fastmcp-2.13.2/tests/utilities/openapi/test_openapi_advanced.py +0 -665
  435. fastmcp-2.13.2/tests/utilities/openapi/test_openapi_fastapi.py +0 -540
  436. fastmcp-2.13.2/tests/utilities/openapi/test_openapi_output_schemas.py +0 -276
  437. fastmcp-2.13.2/tests/utilities/test_json_schema_type.py +0 -1586
  438. fastmcp-2.13.2/tests/utilities/test_types.py +0 -716
  439. fastmcp-2.13.2/uv.lock +0 -2103
  440. {fastmcp-2.13.2 → fastmcp-2.14.0}/.ccignore +0 -0
  441. {fastmcp-2.13.2 → fastmcp-2.14.0}/.cursor/rules/core-mcp-objects.mdc +0 -0
  442. {fastmcp-2.13.2 → fastmcp-2.14.0}/.cursor/worktrees.json +0 -0
  443. {fastmcp-2.13.2 → fastmcp-2.14.0}/.github/ISSUE_TEMPLATE/bug.yml +0 -0
  444. {fastmcp-2.13.2 → fastmcp-2.14.0}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  445. {fastmcp-2.13.2 → fastmcp-2.14.0}/.github/ISSUE_TEMPLATE/enhancement.yml +0 -0
  446. {fastmcp-2.13.2 → fastmcp-2.14.0}/.github/copilot-instructions.md +0 -0
  447. {fastmcp-2.13.2 → fastmcp-2.14.0}/.github/dependabot.yml +0 -0
  448. {fastmcp-2.13.2 → fastmcp-2.14.0}/.github/pull_request_template.md +0 -0
  449. {fastmcp-2.13.2 → fastmcp-2.14.0}/.github/release.yml +0 -0
  450. {fastmcp-2.13.2 → fastmcp-2.14.0}/.github/workflows/auto-close-duplicates.yml +0 -0
  451. {fastmcp-2.13.2 → fastmcp-2.14.0}/.github/workflows/auto-close-needs-mre.yml +0 -0
  452. {fastmcp-2.13.2 → fastmcp-2.14.0}/.github/workflows/martian-issue-triage.yml +0 -0
  453. {fastmcp-2.13.2 → fastmcp-2.14.0}/.github/workflows/marvin-dedupe-issues.yml +0 -0
  454. {fastmcp-2.13.2 → fastmcp-2.14.0}/.github/workflows/marvin-label-triage.yml +0 -0
  455. {fastmcp-2.13.2 → fastmcp-2.14.0}/.github/workflows/marvin.yml +0 -0
  456. {fastmcp-2.13.2 → fastmcp-2.14.0}/.github/workflows/publish.yml +0 -0
  457. {fastmcp-2.13.2 → fastmcp-2.14.0}/.github/workflows/run-static.yml +0 -0
  458. {fastmcp-2.13.2 → fastmcp-2.14.0}/.github/workflows/update-config-schema.yml +0 -0
  459. {fastmcp-2.13.2 → fastmcp-2.14.0}/.github/workflows/update-sdk-docs.yml +0 -0
  460. {fastmcp-2.13.2 → fastmcp-2.14.0}/CLAUDE.md +0 -0
  461. {fastmcp-2.13.2 → fastmcp-2.14.0}/CODE_OF_CONDUCT.md +0 -0
  462. {fastmcp-2.13.2 → fastmcp-2.14.0}/LICENSE +0 -0
  463. {fastmcp-2.13.2 → fastmcp-2.14.0}/SECURITY.md +0 -0
  464. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/.ccignore +0 -0
  465. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/.cursor/rules/mintlify.mdc +0 -0
  466. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/assets/brand/blue-logo.png +0 -0
  467. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/assets/brand/f-watercolor-waves-dark.png +0 -0
  468. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/assets/brand/f-watercolor-waves.png +0 -0
  469. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/assets/brand/favicon.svg +0 -0
  470. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/assets/brand/thumbnail-background.png +0 -0
  471. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/assets/brand/wordmark-padded.png +0 -0
  472. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/assets/brand/wordmark-watercolor-rainbow-dark.png +0 -0
  473. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/assets/brand/wordmark-watercolor-rainbow.png +0 -0
  474. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/assets/brand/wordmark-watercolor-waves-dark.png +0 -0
  475. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/assets/brand/wordmark-watercolor-waves.png +0 -0
  476. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/assets/brand/wordmark-white-padded.png +0 -0
  477. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/assets/brand/wordmark-white.png +0 -0
  478. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/assets/brand/wordmark.png +0 -0
  479. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/assets/images/fastmcp_cloud/connect.png +0 -0
  480. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/assets/images/fastmcp_cloud/create_project.png +0 -0
  481. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/assets/images/fastmcp_cloud/deployment.png +0 -0
  482. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/assets/images/fastmcp_cloud/quickstart.png +0 -0
  483. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/assets/images/oauth-proxy-consent-screen.png +0 -0
  484. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/assets/images/tutorial-rest-api-result.png +0 -0
  485. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/assets/schemas/mcp_server_config/latest.json +0 -0
  486. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/assets/schemas/mcp_server_config/v1.json +0 -0
  487. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/assets/updates/release-2-7.png +0 -0
  488. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/clients/auth/bearer.mdx +0 -0
  489. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/clients/auth/oauth.mdx +0 -0
  490. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/clients/client.mdx +0 -0
  491. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/clients/elicitation.mdx +0 -0
  492. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/clients/logging.mdx +0 -0
  493. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/clients/messages.mdx +0 -0
  494. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/clients/progress.mdx +0 -0
  495. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/clients/prompts.mdx +0 -0
  496. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/clients/resources.mdx +0 -0
  497. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/clients/roots.mdx +0 -0
  498. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/clients/sampling.mdx +0 -0
  499. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/clients/tools.mdx +0 -0
  500. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/clients/transports.mdx +0 -0
  501. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/community/README.md +0 -0
  502. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/community/showcase.mdx +0 -0
  503. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/css/banner.css +0 -0
  504. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/css/python-sdk.css +0 -0
  505. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/css/style.css +0 -0
  506. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/deployment/fastmcp-cloud.mdx +0 -0
  507. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/deployment/running-server.mdx +0 -0
  508. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/deployment/server-configuration.mdx +0 -0
  509. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/development/contributing.mdx +0 -0
  510. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/development/releases.mdx +0 -0
  511. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/development/tests.mdx +0 -0
  512. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/getting-started/installation.mdx +0 -0
  513. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/getting-started/quickstart.mdx +0 -0
  514. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/getting-started/welcome.mdx +0 -0
  515. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/integrations/anthropic.mdx +0 -0
  516. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/integrations/auth0.mdx +0 -0
  517. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/integrations/authkit.mdx +0 -0
  518. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/integrations/aws-cognito.mdx +0 -0
  519. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/integrations/azure.mdx +0 -0
  520. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/integrations/chatgpt.mdx +0 -0
  521. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/integrations/claude-code.mdx +0 -0
  522. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/integrations/claude-desktop.mdx +0 -0
  523. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/integrations/cursor-install-mcp.png +0 -0
  524. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/integrations/cursor.mdx +0 -0
  525. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/integrations/descope.mdx +0 -0
  526. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/integrations/discord.mdx +0 -0
  527. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/integrations/eunomia-authorization.mdx +0 -0
  528. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/integrations/gemini-cli.mdx +0 -0
  529. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/integrations/gemini.mdx +0 -0
  530. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/integrations/github.mdx +0 -0
  531. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/integrations/google.mdx +0 -0
  532. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/integrations/images/authkit/enable_dcr.png +0 -0
  533. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/integrations/images/oci/ociaddapplication.png +0 -0
  534. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/integrations/images/oci/ocieditdomainsettings.png +0 -0
  535. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/integrations/images/oci/ocieditdomainsettingsbutton.png +0 -0
  536. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/integrations/images/oci/ocioauthconfiguration.png +0 -0
  537. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/integrations/images/permit/abac_condition_example.png +0 -0
  538. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/integrations/images/permit/abac_policy_example.png +0 -0
  539. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/integrations/images/permit/policy_mapping.png +0 -0
  540. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/integrations/images/permit/role_assignement.png +0 -0
  541. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/integrations/mcp-json-configuration.mdx +0 -0
  542. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/integrations/openai.mdx +0 -0
  543. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/integrations/permit.mdx +0 -0
  544. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/integrations/scalekit.mdx +0 -0
  545. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/integrations/workos.mdx +0 -0
  546. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/patterns/cli.mdx +0 -0
  547. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/patterns/contrib.mdx +0 -0
  548. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/patterns/decorating-methods.mdx +0 -0
  549. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/patterns/testing.mdx +0 -0
  550. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/patterns/tool-transformation.mdx +0 -0
  551. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/public/schemas/fastmcp.json/latest.json +0 -0
  552. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/public/schemas/fastmcp.json/v1.json +0 -0
  553. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/python-sdk/fastmcp-cli-__init__.mdx +0 -0
  554. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/python-sdk/fastmcp-cli-install-__init__.mdx +0 -0
  555. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/python-sdk/fastmcp-cli-install-claude_code.mdx +0 -0
  556. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/python-sdk/fastmcp-cli-install-claude_desktop.mdx +0 -0
  557. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/python-sdk/fastmcp-cli-install-cursor.mdx +0 -0
  558. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/python-sdk/fastmcp-cli-install-gemini_cli.mdx +0 -0
  559. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/python-sdk/fastmcp-cli-install-mcp_json.mdx +0 -0
  560. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/python-sdk/fastmcp-cli-install-shared.mdx +0 -0
  561. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/python-sdk/fastmcp-cli-run.mdx +0 -0
  562. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/python-sdk/fastmcp-client-__init__.mdx +0 -0
  563. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/python-sdk/fastmcp-client-auth-__init__.mdx +0 -0
  564. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/python-sdk/fastmcp-client-auth-bearer.mdx +0 -0
  565. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/python-sdk/fastmcp-client-logging.mdx +0 -0
  566. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/python-sdk/fastmcp-client-oauth_callback.mdx +0 -0
  567. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/python-sdk/fastmcp-client-progress.mdx +0 -0
  568. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/python-sdk/fastmcp-client-roots.mdx +0 -0
  569. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/python-sdk/fastmcp-client-sampling.mdx +0 -0
  570. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/python-sdk/fastmcp-exceptions.mdx +0 -0
  571. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/python-sdk/fastmcp-mcp_config.mdx +0 -0
  572. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/python-sdk/fastmcp-prompts-__init__.mdx +0 -0
  573. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/python-sdk/fastmcp-prompts-prompt_manager.mdx +0 -0
  574. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/python-sdk/fastmcp-resources-__init__.mdx +0 -0
  575. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/python-sdk/fastmcp-resources-resource_manager.mdx +0 -0
  576. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/python-sdk/fastmcp-resources-types.mdx +0 -0
  577. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/python-sdk/fastmcp-server-__init__.mdx +0 -0
  578. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/python-sdk/fastmcp-server-auth-__init__.mdx +0 -0
  579. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/python-sdk/fastmcp-server-auth-jwt_issuer.mdx +0 -0
  580. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/python-sdk/fastmcp-server-auth-middleware.mdx +0 -0
  581. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/python-sdk/fastmcp-server-auth-providers-__init__.mdx +0 -0
  582. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/python-sdk/fastmcp-server-auth-providers-auth0.mdx +0 -0
  583. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/python-sdk/fastmcp-server-auth-providers-aws.mdx +0 -0
  584. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/python-sdk/fastmcp-server-auth-providers-debug.mdx +0 -0
  585. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/python-sdk/fastmcp-server-auth-providers-descope.mdx +0 -0
  586. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/python-sdk/fastmcp-server-auth-providers-github.mdx +0 -0
  587. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/python-sdk/fastmcp-server-auth-providers-google.mdx +0 -0
  588. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/python-sdk/fastmcp-server-auth-providers-in_memory.mdx +0 -0
  589. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/python-sdk/fastmcp-server-auth-providers-introspection.mdx +0 -0
  590. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/python-sdk/fastmcp-server-auth-providers-jwt.mdx +0 -0
  591. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/python-sdk/fastmcp-server-auth-providers-oci.mdx +0 -0
  592. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/python-sdk/fastmcp-server-auth-providers-scalekit.mdx +0 -0
  593. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/python-sdk/fastmcp-server-auth-providers-supabase.mdx +0 -0
  594. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/python-sdk/fastmcp-server-auth-providers-workos.mdx +0 -0
  595. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/python-sdk/fastmcp-server-auth-redirect_validation.mdx +0 -0
  596. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/python-sdk/fastmcp-server-middleware-__init__.mdx +0 -0
  597. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/python-sdk/fastmcp-server-middleware-caching.mdx +0 -0
  598. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/python-sdk/fastmcp-server-middleware-error_handling.mdx +0 -0
  599. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/python-sdk/fastmcp-server-middleware-logging.mdx +0 -0
  600. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/python-sdk/fastmcp-server-middleware-rate_limiting.mdx +0 -0
  601. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/python-sdk/fastmcp-server-middleware-timing.mdx +0 -0
  602. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/python-sdk/fastmcp-server-middleware-tool_injection.mdx +0 -0
  603. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/python-sdk/fastmcp-tools-__init__.mdx +0 -0
  604. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/python-sdk/fastmcp-tools-tool_manager.mdx +0 -0
  605. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/python-sdk/fastmcp-utilities-__init__.mdx +0 -0
  606. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/python-sdk/fastmcp-utilities-auth.mdx +0 -0
  607. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/python-sdk/fastmcp-utilities-cli.mdx +0 -0
  608. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/python-sdk/fastmcp-utilities-components.mdx +0 -0
  609. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/python-sdk/fastmcp-utilities-exceptions.mdx +0 -0
  610. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/python-sdk/fastmcp-utilities-http.mdx +0 -0
  611. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/python-sdk/fastmcp-utilities-inspect.mdx +0 -0
  612. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/python-sdk/fastmcp-utilities-json_schema.mdx +0 -0
  613. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/python-sdk/fastmcp-utilities-json_schema_type.mdx +0 -0
  614. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/python-sdk/fastmcp-utilities-logging.mdx +0 -0
  615. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/python-sdk/fastmcp-utilities-mcp_config.mdx +0 -0
  616. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/python-sdk/fastmcp-utilities-mcp_server_config-__init__.mdx +0 -0
  617. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-__init__.mdx +0 -0
  618. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-environments-__init__.mdx +0 -0
  619. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-environments-base.mdx +0 -0
  620. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-environments-uv.mdx +0 -0
  621. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-mcp_server_config.mdx +0 -0
  622. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-sources-__init__.mdx +0 -0
  623. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-sources-base.mdx +0 -0
  624. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-sources-filesystem.mdx +0 -0
  625. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/servers/auth/authentication.mdx +0 -0
  626. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/servers/auth/full-oauth-server.mdx +0 -0
  627. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/servers/auth/oidc-proxy.mdx +0 -0
  628. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/servers/auth/remote-oauth.mdx +0 -0
  629. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/servers/auth/token-verification.mdx +0 -0
  630. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/servers/icons.mdx +0 -0
  631. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/servers/logging.mdx +0 -0
  632. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/servers/progress.mdx +0 -0
  633. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/servers/prompts.mdx +0 -0
  634. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/servers/resources.mdx +0 -0
  635. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/servers/sampling.mdx +0 -0
  636. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/servers/storage-backends.mdx +0 -0
  637. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/snippets/local-focus.mdx +0 -0
  638. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/snippets/youtube-embed.mdx +0 -0
  639. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/tutorials/create-mcp-server.mdx +0 -0
  640. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/tutorials/mcp.mdx +0 -0
  641. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/tutorials/rest-api.mdx +0 -0
  642. {fastmcp-2.13.2 → fastmcp-2.14.0}/docs/updates.mdx +0 -0
  643. {fastmcp-2.13.2 → fastmcp-2.14.0}/examples/atproto_mcp/README.md +0 -0
  644. {fastmcp-2.13.2 → fastmcp-2.14.0}/examples/atproto_mcp/demo.py +0 -0
  645. {fastmcp-2.13.2 → fastmcp-2.14.0}/examples/atproto_mcp/fastmcp.json +0 -0
  646. {fastmcp-2.13.2 → fastmcp-2.14.0}/examples/atproto_mcp/pyproject.toml +0 -0
  647. {fastmcp-2.13.2 → fastmcp-2.14.0}/examples/atproto_mcp/src/atproto_mcp/__init__.py +0 -0
  648. {fastmcp-2.13.2 → fastmcp-2.14.0}/examples/atproto_mcp/src/atproto_mcp/__main__.py +0 -0
  649. {fastmcp-2.13.2 → fastmcp-2.14.0}/examples/atproto_mcp/src/atproto_mcp/_atproto/__init__.py +0 -0
  650. {fastmcp-2.13.2 → fastmcp-2.14.0}/examples/atproto_mcp/src/atproto_mcp/_atproto/_client.py +0 -0
  651. {fastmcp-2.13.2 → fastmcp-2.14.0}/examples/atproto_mcp/src/atproto_mcp/_atproto/_posts.py +0 -0
  652. {fastmcp-2.13.2 → fastmcp-2.14.0}/examples/atproto_mcp/src/atproto_mcp/_atproto/_profile.py +0 -0
  653. {fastmcp-2.13.2 → fastmcp-2.14.0}/examples/atproto_mcp/src/atproto_mcp/_atproto/_read.py +0 -0
  654. {fastmcp-2.13.2 → fastmcp-2.14.0}/examples/atproto_mcp/src/atproto_mcp/_atproto/_social.py +0 -0
  655. {fastmcp-2.13.2 → fastmcp-2.14.0}/examples/atproto_mcp/src/atproto_mcp/py.typed +0 -0
  656. {fastmcp-2.13.2 → fastmcp-2.14.0}/examples/atproto_mcp/src/atproto_mcp/server.py +0 -0
  657. {fastmcp-2.13.2 → fastmcp-2.14.0}/examples/atproto_mcp/src/atproto_mcp/settings.py +0 -0
  658. {fastmcp-2.13.2 → fastmcp-2.14.0}/examples/atproto_mcp/src/atproto_mcp/types.py +0 -0
  659. {fastmcp-2.13.2 → fastmcp-2.14.0}/examples/auth/authkit_dcr/README.md +0 -0
  660. {fastmcp-2.13.2 → fastmcp-2.14.0}/examples/auth/authkit_dcr/client.py +0 -0
  661. {fastmcp-2.13.2 → fastmcp-2.14.0}/examples/auth/authkit_dcr/server.py +0 -0
  662. {fastmcp-2.13.2 → fastmcp-2.14.0}/examples/auth/aws_oauth/README.md +0 -0
  663. {fastmcp-2.13.2 → fastmcp-2.14.0}/examples/auth/aws_oauth/client.py +0 -0
  664. {fastmcp-2.13.2 → fastmcp-2.14.0}/examples/auth/aws_oauth/requirements.txt +0 -0
  665. {fastmcp-2.13.2 → fastmcp-2.14.0}/examples/auth/aws_oauth/server.py +0 -0
  666. {fastmcp-2.13.2 → fastmcp-2.14.0}/examples/auth/azure_oauth/README.md +0 -0
  667. {fastmcp-2.13.2 → fastmcp-2.14.0}/examples/auth/azure_oauth/client.py +0 -0
  668. {fastmcp-2.13.2 → fastmcp-2.14.0}/examples/auth/azure_oauth/server.py +0 -0
  669. {fastmcp-2.13.2 → fastmcp-2.14.0}/examples/auth/discord_oauth/README.md +0 -0
  670. {fastmcp-2.13.2 → fastmcp-2.14.0}/examples/auth/discord_oauth/client.py +0 -0
  671. {fastmcp-2.13.2 → fastmcp-2.14.0}/examples/auth/discord_oauth/server.py +0 -0
  672. {fastmcp-2.13.2 → fastmcp-2.14.0}/examples/auth/github_oauth/README.md +0 -0
  673. {fastmcp-2.13.2 → fastmcp-2.14.0}/examples/auth/github_oauth/client.py +0 -0
  674. {fastmcp-2.13.2 → fastmcp-2.14.0}/examples/auth/github_oauth/server.py +0 -0
  675. {fastmcp-2.13.2 → fastmcp-2.14.0}/examples/auth/google_oauth/README.md +0 -0
  676. {fastmcp-2.13.2 → fastmcp-2.14.0}/examples/auth/google_oauth/client.py +0 -0
  677. {fastmcp-2.13.2 → fastmcp-2.14.0}/examples/auth/google_oauth/server.py +0 -0
  678. {fastmcp-2.13.2 → fastmcp-2.14.0}/examples/auth/scalekit_oauth/README.md +0 -0
  679. {fastmcp-2.13.2 → fastmcp-2.14.0}/examples/auth/scalekit_oauth/client.py +0 -0
  680. {fastmcp-2.13.2 → fastmcp-2.14.0}/examples/auth/scalekit_oauth/server.py +0 -0
  681. {fastmcp-2.13.2 → fastmcp-2.14.0}/examples/auth/workos_oauth/README.md +0 -0
  682. {fastmcp-2.13.2 → fastmcp-2.14.0}/examples/auth/workos_oauth/client.py +0 -0
  683. {fastmcp-2.13.2 → fastmcp-2.14.0}/examples/auth/workos_oauth/server.py +0 -0
  684. {fastmcp-2.13.2 → fastmcp-2.14.0}/examples/complex_inputs.py +0 -0
  685. {fastmcp-2.13.2 → fastmcp-2.14.0}/examples/config_server.py +0 -0
  686. {fastmcp-2.13.2 → fastmcp-2.14.0}/examples/desktop.py +0 -0
  687. {fastmcp-2.13.2 → fastmcp-2.14.0}/examples/echo.py +0 -0
  688. {fastmcp-2.13.2 → fastmcp-2.14.0}/examples/fastmcp_config/env_interpolation_example.json +0 -0
  689. {fastmcp-2.13.2 → fastmcp-2.14.0}/examples/fastmcp_config/fastmcp.json +0 -0
  690. {fastmcp-2.13.2 → fastmcp-2.14.0}/examples/fastmcp_config/full_example.fastmcp.json +0 -0
  691. {fastmcp-2.13.2 → fastmcp-2.14.0}/examples/fastmcp_config/server.py +0 -0
  692. {fastmcp-2.13.2 → fastmcp-2.14.0}/examples/fastmcp_config/simple.fastmcp.json +0 -0
  693. {fastmcp-2.13.2 → fastmcp-2.14.0}/examples/fastmcp_config_demo/README.md +0 -0
  694. {fastmcp-2.13.2 → fastmcp-2.14.0}/examples/fastmcp_config_demo/fastmcp.json +0 -0
  695. {fastmcp-2.13.2 → fastmcp-2.14.0}/examples/fastmcp_config_demo/server.py +0 -0
  696. {fastmcp-2.13.2 → fastmcp-2.14.0}/examples/get_file.py +0 -0
  697. {fastmcp-2.13.2 → fastmcp-2.14.0}/examples/in_memory_proxy_example.py +0 -0
  698. {fastmcp-2.13.2 → fastmcp-2.14.0}/examples/memory.fastmcp.json +0 -0
  699. {fastmcp-2.13.2 → fastmcp-2.14.0}/examples/mount_example.fastmcp.json +0 -0
  700. {fastmcp-2.13.2 → fastmcp-2.14.0}/examples/mount_example.py +0 -0
  701. {fastmcp-2.13.2 → fastmcp-2.14.0}/examples/sampling.py +0 -0
  702. {fastmcp-2.13.2 → fastmcp-2.14.0}/examples/sampling_fallback.py +0 -0
  703. {fastmcp-2.13.2 → fastmcp-2.14.0}/examples/screenshot.fastmcp.json +0 -0
  704. {fastmcp-2.13.2 → fastmcp-2.14.0}/examples/serializer.py +0 -0
  705. {fastmcp-2.13.2 → fastmcp-2.14.0}/examples/simple_echo.py +0 -0
  706. {fastmcp-2.13.2 → fastmcp-2.14.0}/examples/smart_home/README.md +0 -0
  707. {fastmcp-2.13.2 → fastmcp-2.14.0}/examples/smart_home/hub.fastmcp.json +0 -0
  708. {fastmcp-2.13.2 → fastmcp-2.14.0}/examples/smart_home/lights.fastmcp.json +0 -0
  709. {fastmcp-2.13.2 → fastmcp-2.14.0}/examples/smart_home/pyproject.toml +0 -0
  710. {fastmcp-2.13.2 → fastmcp-2.14.0}/examples/smart_home/src/smart_home/__init__.py +0 -0
  711. {fastmcp-2.13.2 → fastmcp-2.14.0}/examples/smart_home/src/smart_home/__main__.py +0 -0
  712. {fastmcp-2.13.2 → fastmcp-2.14.0}/examples/smart_home/src/smart_home/hub.py +0 -0
  713. {fastmcp-2.13.2 → fastmcp-2.14.0}/examples/smart_home/src/smart_home/lights/__init__.py +0 -0
  714. {fastmcp-2.13.2 → fastmcp-2.14.0}/examples/smart_home/src/smart_home/lights/hue_utils.py +0 -0
  715. {fastmcp-2.13.2 → fastmcp-2.14.0}/examples/smart_home/src/smart_home/py.typed +0 -0
  716. {fastmcp-2.13.2 → fastmcp-2.14.0}/examples/smart_home/src/smart_home/settings.py +0 -0
  717. {fastmcp-2.13.2 → fastmcp-2.14.0}/examples/tags_example.py +0 -0
  718. {fastmcp-2.13.2 → fastmcp-2.14.0}/examples/testing_demo/README.md +0 -0
  719. {fastmcp-2.13.2 → fastmcp-2.14.0}/examples/testing_demo/pyproject.toml +0 -0
  720. {fastmcp-2.13.2 → fastmcp-2.14.0}/examples/testing_demo/server.py +0 -0
  721. {fastmcp-2.13.2 → fastmcp-2.14.0}/examples/testing_demo/tests/test_server.py +0 -0
  722. {fastmcp-2.13.2 → fastmcp-2.14.0}/examples/testing_demo/uv.lock +0 -0
  723. {fastmcp-2.13.2 → fastmcp-2.14.0}/examples/text_me.py +0 -0
  724. {fastmcp-2.13.2 → fastmcp-2.14.0}/examples/tool_result_echo.py +0 -0
  725. {fastmcp-2.13.2 → fastmcp-2.14.0}/justfile +0 -0
  726. {fastmcp-2.13.2 → fastmcp-2.14.0}/logo.py +0 -0
  727. {fastmcp-2.13.2 → fastmcp-2.14.0}/scripts/auto_close_duplicates.py +0 -0
  728. {fastmcp-2.13.2 → fastmcp-2.14.0}/scripts/auto_close_needs_mre.py +0 -0
  729. {fastmcp-2.13.2 → fastmcp-2.14.0}/src/fastmcp/cli/install/__init__.py +0 -0
  730. {fastmcp-2.13.2 → fastmcp-2.14.0}/src/fastmcp/cli/install/claude_code.py +0 -0
  731. {fastmcp-2.13.2 → fastmcp-2.14.0}/src/fastmcp/cli/install/claude_desktop.py +0 -0
  732. {fastmcp-2.13.2 → fastmcp-2.14.0}/src/fastmcp/cli/install/cursor.py +0 -0
  733. {fastmcp-2.13.2 → fastmcp-2.14.0}/src/fastmcp/cli/install/gemini_cli.py +0 -0
  734. {fastmcp-2.13.2 → fastmcp-2.14.0}/src/fastmcp/cli/install/mcp_json.py +0 -0
  735. {fastmcp-2.13.2 → fastmcp-2.14.0}/src/fastmcp/cli/run.py +0 -0
  736. {fastmcp-2.13.2 → fastmcp-2.14.0}/src/fastmcp/client/__init__.py +0 -0
  737. {fastmcp-2.13.2 → fastmcp-2.14.0}/src/fastmcp/client/auth/__init__.py +0 -0
  738. {fastmcp-2.13.2 → fastmcp-2.14.0}/src/fastmcp/client/auth/bearer.py +0 -0
  739. {fastmcp-2.13.2 → fastmcp-2.14.0}/src/fastmcp/client/logging.py +0 -0
  740. {fastmcp-2.13.2 → fastmcp-2.14.0}/src/fastmcp/client/oauth_callback.py +0 -0
  741. {fastmcp-2.13.2 → fastmcp-2.14.0}/src/fastmcp/client/progress.py +0 -0
  742. {fastmcp-2.13.2 → fastmcp-2.14.0}/src/fastmcp/client/sampling.py +0 -0
  743. {fastmcp-2.13.2 → fastmcp-2.14.0}/src/fastmcp/contrib/README.md +0 -0
  744. {fastmcp-2.13.2 → fastmcp-2.14.0}/src/fastmcp/contrib/bulk_tool_caller/README.md +0 -0
  745. {fastmcp-2.13.2 → fastmcp-2.14.0}/src/fastmcp/contrib/bulk_tool_caller/__init__.py +0 -0
  746. {fastmcp-2.13.2 → fastmcp-2.14.0}/src/fastmcp/contrib/bulk_tool_caller/bulk_tool_caller.py +0 -0
  747. {fastmcp-2.13.2 → fastmcp-2.14.0}/src/fastmcp/contrib/bulk_tool_caller/example.py +0 -0
  748. {fastmcp-2.13.2 → fastmcp-2.14.0}/src/fastmcp/contrib/component_manager/README.md +0 -0
  749. {fastmcp-2.13.2 → fastmcp-2.14.0}/src/fastmcp/contrib/component_manager/__init__.py +0 -0
  750. {fastmcp-2.13.2 → fastmcp-2.14.0}/src/fastmcp/contrib/component_manager/component_manager.py +0 -0
  751. {fastmcp-2.13.2 → fastmcp-2.14.0}/src/fastmcp/contrib/component_manager/example.py +0 -0
  752. {fastmcp-2.13.2 → fastmcp-2.14.0}/src/fastmcp/contrib/mcp_mixin/README.md +0 -0
  753. {fastmcp-2.13.2 → fastmcp-2.14.0}/src/fastmcp/contrib/mcp_mixin/__init__.py +0 -0
  754. {fastmcp-2.13.2 → fastmcp-2.14.0}/src/fastmcp/contrib/mcp_mixin/example.py +0 -0
  755. {fastmcp-2.13.2 → fastmcp-2.14.0}/src/fastmcp/contrib/mcp_mixin/mcp_mixin.py +0 -0
  756. {fastmcp-2.13.2 → fastmcp-2.14.0}/src/fastmcp/exceptions.py +0 -0
  757. {fastmcp-2.13.2 → fastmcp-2.14.0}/src/fastmcp/experimental/sampling/__init__.py +0 -0
  758. {fastmcp-2.13.2 → fastmcp-2.14.0}/src/fastmcp/experimental/sampling/handlers/__init__.py +0 -0
  759. {fastmcp-2.13.2 → fastmcp-2.14.0}/src/fastmcp/experimental/sampling/handlers/base.py +0 -0
  760. {fastmcp-2.13.2 → fastmcp-2.14.0}/src/fastmcp/mcp_config.py +0 -0
  761. {fastmcp-2.13.2 → fastmcp-2.14.0}/src/fastmcp/prompts/__init__.py +0 -0
  762. {fastmcp-2.13.2 → fastmcp-2.14.0}/src/fastmcp/prompts/prompt_manager.py +0 -0
  763. {fastmcp-2.13.2 → fastmcp-2.14.0}/src/fastmcp/py.typed +0 -0
  764. {fastmcp-2.13.2 → fastmcp-2.14.0}/src/fastmcp/resources/__init__.py +0 -0
  765. {fastmcp-2.13.2 → fastmcp-2.14.0}/src/fastmcp/resources/resource_manager.py +0 -0
  766. {fastmcp-2.13.2 → fastmcp-2.14.0}/src/fastmcp/resources/types.py +0 -0
  767. {fastmcp-2.13.2 → fastmcp-2.14.0}/src/fastmcp/server/__init__.py +0 -0
  768. {fastmcp-2.13.2 → fastmcp-2.14.0}/src/fastmcp/server/auth/handlers/authorize.py +0 -0
  769. {fastmcp-2.13.2 → fastmcp-2.14.0}/src/fastmcp/server/auth/jwt_issuer.py +0 -0
  770. {fastmcp-2.13.2 → fastmcp-2.14.0}/src/fastmcp/server/auth/middleware.py +0 -0
  771. {fastmcp-2.13.2 → fastmcp-2.14.0}/src/fastmcp/server/auth/providers/__init__.py +0 -0
  772. {fastmcp-2.13.2 → fastmcp-2.14.0}/src/fastmcp/server/auth/providers/auth0.py +0 -0
  773. {fastmcp-2.13.2 → fastmcp-2.14.0}/src/fastmcp/server/auth/providers/aws.py +0 -0
  774. {fastmcp-2.13.2 → fastmcp-2.14.0}/src/fastmcp/server/auth/providers/azure.py +0 -0
  775. {fastmcp-2.13.2 → fastmcp-2.14.0}/src/fastmcp/server/auth/providers/debug.py +0 -0
  776. {fastmcp-2.13.2 → fastmcp-2.14.0}/src/fastmcp/server/auth/providers/descope.py +0 -0
  777. {fastmcp-2.13.2 → fastmcp-2.14.0}/src/fastmcp/server/auth/providers/discord.py +0 -0
  778. {fastmcp-2.13.2 → fastmcp-2.14.0}/src/fastmcp/server/auth/providers/github.py +0 -0
  779. {fastmcp-2.13.2 → fastmcp-2.14.0}/src/fastmcp/server/auth/providers/google.py +0 -0
  780. {fastmcp-2.13.2 → fastmcp-2.14.0}/src/fastmcp/server/auth/providers/introspection.py +0 -0
  781. {fastmcp-2.13.2 → fastmcp-2.14.0}/src/fastmcp/server/auth/providers/jwt.py +0 -0
  782. {fastmcp-2.13.2 → fastmcp-2.14.0}/src/fastmcp/server/auth/providers/scalekit.py +0 -0
  783. {fastmcp-2.13.2 → fastmcp-2.14.0}/src/fastmcp/server/auth/providers/supabase.py +0 -0
  784. {fastmcp-2.13.2 → fastmcp-2.14.0}/src/fastmcp/server/auth/providers/workos.py +0 -0
  785. {fastmcp-2.13.2 → fastmcp-2.14.0}/src/fastmcp/server/auth/redirect_validation.py +0 -0
  786. {fastmcp-2.13.2 → fastmcp-2.14.0}/src/fastmcp/server/middleware/__init__.py +0 -0
  787. {fastmcp-2.13.2 → fastmcp-2.14.0}/src/fastmcp/server/middleware/caching.py +0 -0
  788. {fastmcp-2.13.2 → fastmcp-2.14.0}/src/fastmcp/server/middleware/error_handling.py +0 -0
  789. {fastmcp-2.13.2 → fastmcp-2.14.0}/src/fastmcp/server/middleware/logging.py +0 -0
  790. {fastmcp-2.13.2 → fastmcp-2.14.0}/src/fastmcp/server/middleware/rate_limiting.py +0 -0
  791. {fastmcp-2.13.2 → fastmcp-2.14.0}/src/fastmcp/server/middleware/timing.py +0 -0
  792. {fastmcp-2.13.2 → fastmcp-2.14.0}/src/fastmcp/server/middleware/tool_injection.py +0 -0
  793. {fastmcp-2.13.2/src/fastmcp/experimental → fastmcp-2.14.0/src/fastmcp}/server/openapi/README.md +0 -0
  794. {fastmcp-2.13.2/src/fastmcp/experimental → fastmcp-2.14.0/src/fastmcp}/server/openapi/__init__.py +0 -0
  795. {fastmcp-2.13.2 → fastmcp-2.14.0}/src/fastmcp/server/sampling/handler.py +0 -0
  796. {fastmcp-2.13.2 → fastmcp-2.14.0}/src/fastmcp/tools/__init__.py +0 -0
  797. {fastmcp-2.13.2 → fastmcp-2.14.0}/src/fastmcp/tools/tool_manager.py +0 -0
  798. {fastmcp-2.13.2 → fastmcp-2.14.0}/src/fastmcp/utilities/__init__.py +0 -0
  799. {fastmcp-2.13.2 → fastmcp-2.14.0}/src/fastmcp/utilities/auth.py +0 -0
  800. {fastmcp-2.13.2 → fastmcp-2.14.0}/src/fastmcp/utilities/cli.py +0 -0
  801. {fastmcp-2.13.2 → fastmcp-2.14.0}/src/fastmcp/utilities/exceptions.py +0 -0
  802. {fastmcp-2.13.2 → fastmcp-2.14.0}/src/fastmcp/utilities/http.py +0 -0
  803. {fastmcp-2.13.2 → fastmcp-2.14.0}/src/fastmcp/utilities/inspect.py +0 -0
  804. {fastmcp-2.13.2 → fastmcp-2.14.0}/src/fastmcp/utilities/json_schema.py +0 -0
  805. {fastmcp-2.13.2 → fastmcp-2.14.0}/src/fastmcp/utilities/logging.py +0 -0
  806. {fastmcp-2.13.2 → fastmcp-2.14.0}/src/fastmcp/utilities/mcp_server_config/__init__.py +0 -0
  807. {fastmcp-2.13.2 → fastmcp-2.14.0}/src/fastmcp/utilities/mcp_server_config/v1/__init__.py +0 -0
  808. {fastmcp-2.13.2 → fastmcp-2.14.0}/src/fastmcp/utilities/mcp_server_config/v1/environments/__init__.py +0 -0
  809. {fastmcp-2.13.2 → fastmcp-2.14.0}/src/fastmcp/utilities/mcp_server_config/v1/environments/base.py +0 -0
  810. {fastmcp-2.13.2 → fastmcp-2.14.0}/src/fastmcp/utilities/mcp_server_config/v1/environments/uv.py +0 -0
  811. {fastmcp-2.13.2 → fastmcp-2.14.0}/src/fastmcp/utilities/mcp_server_config/v1/schema.json +0 -0
  812. {fastmcp-2.13.2 → fastmcp-2.14.0}/src/fastmcp/utilities/mcp_server_config/v1/sources/__init__.py +0 -0
  813. {fastmcp-2.13.2 → fastmcp-2.14.0}/src/fastmcp/utilities/mcp_server_config/v1/sources/base.py +0 -0
  814. {fastmcp-2.13.2 → fastmcp-2.14.0}/src/fastmcp/utilities/mcp_server_config/v1/sources/filesystem.py +0 -0
  815. {fastmcp-2.13.2/src/fastmcp/experimental → fastmcp-2.14.0/src/fastmcp}/utilities/openapi/__init__.py +0 -0
  816. {fastmcp-2.13.2/src/fastmcp/experimental → fastmcp-2.14.0/src/fastmcp}/utilities/openapi/director.py +0 -0
  817. {fastmcp-2.13.2/src/fastmcp/experimental → fastmcp-2.14.0/src/fastmcp}/utilities/openapi/models.py +0 -0
  818. {fastmcp-2.13.2/src/fastmcp/experimental → fastmcp-2.14.0/src/fastmcp}/utilities/openapi/parser.py +0 -0
  819. {fastmcp-2.13.2/src/fastmcp/experimental → fastmcp-2.14.0/src/fastmcp}/utilities/openapi/schemas.py +0 -0
  820. {fastmcp-2.13.2 → fastmcp-2.14.0}/src/fastmcp/utilities/ui.py +0 -0
  821. {fastmcp-2.13.2 → fastmcp-2.14.0}/tests/__init__.py +0 -0
  822. {fastmcp-2.13.2 → fastmcp-2.14.0}/tests/cli/__init__.py +0 -0
  823. {fastmcp-2.13.2 → fastmcp-2.14.0}/tests/cli/test_cli.py +0 -0
  824. {fastmcp-2.13.2 → fastmcp-2.14.0}/tests/cli/test_config.py +0 -0
  825. {fastmcp-2.13.2 → fastmcp-2.14.0}/tests/cli/test_cursor.py +0 -0
  826. {fastmcp-2.13.2 → fastmcp-2.14.0}/tests/cli/test_install.py +0 -0
  827. {fastmcp-2.13.2 → fastmcp-2.14.0}/tests/cli/test_mcp_server_config_integration.py +0 -0
  828. {fastmcp-2.13.2 → fastmcp-2.14.0}/tests/cli/test_mcp_server_config_schema.py +0 -0
  829. {fastmcp-2.13.2 → fastmcp-2.14.0}/tests/cli/test_project_prepare.py +0 -0
  830. {fastmcp-2.13.2 → fastmcp-2.14.0}/tests/cli/test_run.py +0 -0
  831. {fastmcp-2.13.2 → fastmcp-2.14.0}/tests/cli/test_run_config.py +0 -0
  832. {fastmcp-2.13.2 → fastmcp-2.14.0}/tests/cli/test_server_args.py +0 -0
  833. {fastmcp-2.13.2 → fastmcp-2.14.0}/tests/cli/test_shared.py +0 -0
  834. {fastmcp-2.13.2 → fastmcp-2.14.0}/tests/cli/test_with_argv.py +0 -0
  835. {fastmcp-2.13.2 → fastmcp-2.14.0}/tests/client/__init__.py +0 -0
  836. {fastmcp-2.13.2 → fastmcp-2.14.0}/tests/client/auth/__init__.py +0 -0
  837. {fastmcp-2.13.2 → fastmcp-2.14.0}/tests/client/test_logs.py +0 -0
  838. {fastmcp-2.13.2 → fastmcp-2.14.0}/tests/client/test_notifications.py +0 -0
  839. {fastmcp-2.13.2 → fastmcp-2.14.0}/tests/client/test_oauth_callback_xss.py +0 -0
  840. {fastmcp-2.13.2 → fastmcp-2.14.0}/tests/client/test_progress.py +0 -0
  841. {fastmcp-2.13.2 → fastmcp-2.14.0}/tests/client/test_roots.py +0 -0
  842. {fastmcp-2.13.2 → fastmcp-2.14.0}/tests/client/test_stdio.py +0 -0
  843. {fastmcp-2.13.2 → fastmcp-2.14.0}/tests/client/transports/__init__.py +0 -0
  844. {fastmcp-2.13.2 → fastmcp-2.14.0}/tests/client/transports/test_uv_transport.py +0 -0
  845. {fastmcp-2.13.2 → fastmcp-2.14.0}/tests/conftest.py +0 -0
  846. {fastmcp-2.13.2 → fastmcp-2.14.0}/tests/contrib/__init__.py +0 -0
  847. {fastmcp-2.13.2 → fastmcp-2.14.0}/tests/contrib/test_bulk_tool_caller.py +0 -0
  848. {fastmcp-2.13.2 → fastmcp-2.14.0}/tests/contrib/test_component_manager.py +0 -0
  849. {fastmcp-2.13.2 → fastmcp-2.14.0}/tests/contrib/test_mcp_mixin.py +0 -0
  850. {fastmcp-2.13.2 → fastmcp-2.14.0}/tests/deprecated/__init__.py +0 -0
  851. {fastmcp-2.13.2 → fastmcp-2.14.0}/tests/experimental/README.md +0 -0
  852. {fastmcp-2.13.2 → fastmcp-2.14.0}/tests/experimental/__init__.py +0 -0
  853. {fastmcp-2.13.2 → fastmcp-2.14.0}/tests/experimental/sampling/test_openai_handler.py +0 -0
  854. {fastmcp-2.13.2/tests/experimental/openapi_parser → fastmcp-2.14.0/tests/integration_tests}/__init__.py +0 -0
  855. {fastmcp-2.13.2/tests/experimental/openapi_parser/server → fastmcp-2.14.0/tests/integration_tests/auth}/__init__.py +0 -0
  856. {fastmcp-2.13.2 → fastmcp-2.14.0}/tests/integration_tests/auth/test_github_provider_integration.py +0 -0
  857. {fastmcp-2.13.2/tests/experimental/openapi_parser/utilities → fastmcp-2.14.0/tests/prompts}/__init__.py +0 -0
  858. {fastmcp-2.13.2 → fastmcp-2.14.0}/tests/prompts/test_prompt.py +0 -0
  859. {fastmcp-2.13.2/tests/integration_tests → fastmcp-2.14.0/tests/resources}/__init__.py +0 -0
  860. {fastmcp-2.13.2 → fastmcp-2.14.0}/tests/resources/test_file_resources.py +0 -0
  861. {fastmcp-2.13.2 → fastmcp-2.14.0}/tests/resources/test_function_resources.py +0 -0
  862. {fastmcp-2.13.2 → fastmcp-2.14.0}/tests/resources/test_resource_manager.py +0 -0
  863. {fastmcp-2.13.2 → fastmcp-2.14.0}/tests/resources/test_resource_template_meta.py +0 -0
  864. {fastmcp-2.13.2 → fastmcp-2.14.0}/tests/resources/test_resources.py +0 -0
  865. {fastmcp-2.13.2/tests/integration_tests/auth → fastmcp-2.14.0/tests/server}/__init__.py +0 -0
  866. {fastmcp-2.13.2/tests/prompts → fastmcp-2.14.0/tests/server/auth}/__init__.py +0 -0
  867. {fastmcp-2.13.2/tests/resources → fastmcp-2.14.0/tests/server/auth/providers}/__init__.py +0 -0
  868. {fastmcp-2.13.2 → fastmcp-2.14.0}/tests/server/auth/providers/test_auth0.py +0 -0
  869. {fastmcp-2.13.2 → fastmcp-2.14.0}/tests/server/auth/providers/test_aws.py +0 -0
  870. {fastmcp-2.13.2 → fastmcp-2.14.0}/tests/server/auth/providers/test_descope.py +0 -0
  871. {fastmcp-2.13.2 → fastmcp-2.14.0}/tests/server/auth/providers/test_discord.py +0 -0
  872. {fastmcp-2.13.2 → fastmcp-2.14.0}/tests/server/auth/providers/test_github.py +0 -0
  873. {fastmcp-2.13.2 → fastmcp-2.14.0}/tests/server/auth/providers/test_google.py +0 -0
  874. {fastmcp-2.13.2 → fastmcp-2.14.0}/tests/server/auth/providers/test_introspection.py +0 -0
  875. {fastmcp-2.13.2 → fastmcp-2.14.0}/tests/server/auth/providers/test_scalekit.py +0 -0
  876. {fastmcp-2.13.2 → fastmcp-2.14.0}/tests/server/auth/providers/test_supabase.py +0 -0
  877. {fastmcp-2.13.2 → fastmcp-2.14.0}/tests/server/auth/providers/test_workos.py +0 -0
  878. {fastmcp-2.13.2 → fastmcp-2.14.0}/tests/server/auth/test_auth_provider.py +0 -0
  879. {fastmcp-2.13.2 → fastmcp-2.14.0}/tests/server/auth/test_debug_verifier.py +0 -0
  880. {fastmcp-2.13.2 → fastmcp-2.14.0}/tests/server/auth/test_enhanced_error_responses.py +0 -0
  881. {fastmcp-2.13.2 → fastmcp-2.14.0}/tests/server/auth/test_jwt_issuer.py +0 -0
  882. {fastmcp-2.13.2 → fastmcp-2.14.0}/tests/server/auth/test_oauth_consent_flow.py +0 -0
  883. {fastmcp-2.13.2 → fastmcp-2.14.0}/tests/server/auth/test_oidc_proxy.py +0 -0
  884. {fastmcp-2.13.2 → fastmcp-2.14.0}/tests/server/auth/test_redirect_validation.py +0 -0
  885. {fastmcp-2.13.2 → fastmcp-2.14.0}/tests/server/auth/test_remote_auth_provider.py +0 -0
  886. {fastmcp-2.13.2 → fastmcp-2.14.0}/tests/server/auth/test_static_token_verifier.py +0 -0
  887. {fastmcp-2.13.2/tests/server → fastmcp-2.14.0/tests/server/http}/__init__.py +0 -0
  888. {fastmcp-2.13.2 → fastmcp-2.14.0}/tests/server/http/test_bearer_auth_backend.py +0 -0
  889. {fastmcp-2.13.2 → fastmcp-2.14.0}/tests/server/http/test_custom_routes.py +0 -0
  890. {fastmcp-2.13.2 → fastmcp-2.14.0}/tests/server/http/test_http_auth_middleware.py +0 -0
  891. {fastmcp-2.13.2 → fastmcp-2.14.0}/tests/server/http/test_http_dependencies.py +0 -0
  892. {fastmcp-2.13.2 → fastmcp-2.14.0}/tests/server/http/test_stale_access_token.py +0 -0
  893. {fastmcp-2.13.2/tests/server/auth → fastmcp-2.14.0/tests/server/middleware}/__init__.py +0 -0
  894. {fastmcp-2.13.2 → fastmcp-2.14.0}/tests/server/middleware/test_error_handling.py +0 -0
  895. {fastmcp-2.13.2 → fastmcp-2.14.0}/tests/server/middleware/test_middleware.py +0 -0
  896. {fastmcp-2.13.2 → fastmcp-2.14.0}/tests/server/middleware/test_rate_limiting.py +0 -0
  897. {fastmcp-2.13.2 → fastmcp-2.14.0}/tests/server/middleware/test_timing.py +0 -0
  898. {fastmcp-2.13.2 → fastmcp-2.14.0}/tests/server/middleware/test_tool_injection.py +0 -0
  899. {fastmcp-2.13.2/tests/experimental/openapi_parser → fastmcp-2.14.0/tests}/server/openapi/__init__.py +0 -0
  900. {fastmcp-2.13.2/tests/server/auth/providers → fastmcp-2.14.0/tests/server/proxy}/__init__.py +0 -0
  901. {fastmcp-2.13.2 → fastmcp-2.14.0}/tests/server/test_app_state.py +0 -0
  902. {fastmcp-2.13.2 → fastmcp-2.14.0}/tests/server/test_file_server.py +0 -0
  903. {fastmcp-2.13.2 → fastmcp-2.14.0}/tests/server/test_icons.py +0 -0
  904. {fastmcp-2.13.2 → fastmcp-2.14.0}/tests/server/test_input_validation.py +0 -0
  905. {fastmcp-2.13.2 → fastmcp-2.14.0}/tests/server/test_log_level.py +0 -0
  906. {fastmcp-2.13.2 → fastmcp-2.14.0}/tests/server/test_run_server.py +0 -0
  907. {fastmcp-2.13.2 → fastmcp-2.14.0}/tests/server/test_streamable_http_no_redirect.py +0 -0
  908. {fastmcp-2.13.2 → fastmcp-2.14.0}/tests/server/test_tool_exclude_args.py +0 -0
  909. {fastmcp-2.13.2 → fastmcp-2.14.0}/tests/server/test_tool_transformation.py +0 -0
  910. {fastmcp-2.13.2 → fastmcp-2.14.0}/tests/test_mcp_config.py +0 -0
  911. {fastmcp-2.13.2/tests/server/http → fastmcp-2.14.0/tests/tools}/__init__.py +0 -0
  912. {fastmcp-2.13.2 → fastmcp-2.14.0}/tests/tools/test_tool_future_annotations.py +0 -0
  913. {fastmcp-2.13.2 → fastmcp-2.14.0}/tests/tools/test_tool_transform.py +0 -0
  914. {fastmcp-2.13.2 → fastmcp-2.14.0}/tests/utilities/__init__.py +0 -0
  915. {fastmcp-2.13.2/tests/experimental/openapi_parser → fastmcp-2.14.0/tests}/utilities/openapi/__init__.py +0 -0
  916. {fastmcp-2.13.2/tests/experimental/openapi_parser → fastmcp-2.14.0/tests}/utilities/openapi/conftest.py +0 -0
  917. {fastmcp-2.13.2 → fastmcp-2.14.0}/tests/utilities/test_cli.py +0 -0
  918. {fastmcp-2.13.2 → fastmcp-2.14.0}/tests/utilities/test_components.py +0 -0
  919. {fastmcp-2.13.2 → fastmcp-2.14.0}/tests/utilities/test_inspect.py +0 -0
  920. {fastmcp-2.13.2 → fastmcp-2.14.0}/tests/utilities/test_json_schema.py +0 -0
  921. {fastmcp-2.13.2 → fastmcp-2.14.0}/tests/utilities/test_logging.py +0 -0
  922. {fastmcp-2.13.2 → fastmcp-2.14.0}/tests/utilities/test_tests.py +0 -0
  923. {fastmcp-2.13.2 → fastmcp-2.14.0}/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,112 @@
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
+ fail-fast: false
34
+ timeout-minutes: 10
35
+
36
+ steps:
37
+ - uses: actions/checkout@v6
38
+
39
+ - name: Install uv
40
+ uses: astral-sh/setup-uv@v7
41
+ with:
42
+ enable-cache: true
43
+ cache-dependency-glob: "uv.lock"
44
+ python-version: ${{ matrix.python-version }}
45
+
46
+ - name: Install FastMCP
47
+ # run with upgrade to always test against the latest compatible versions
48
+ run: uv sync --upgrade
49
+
50
+ - name: Run tests (excluding integration and client_process)
51
+ run: |
52
+ if [ "${{ matrix.os }}" == "windows-latest" ]; then
53
+ uv run pytest --inline-snapshot=disable tests -m "not integration and not client_process"
54
+ else
55
+ uv run pytest --inline-snapshot=disable tests -m "not integration and not client_process" --numprocesses auto --maxprocesses 4 --dist worksteal
56
+ fi
57
+ shell: bash
58
+
59
+ - name: Run client process tests separately
60
+ run: uv run pytest --inline-snapshot=disable tests -m "client_process" -x
61
+
62
+ run_tests_lowest_direct:
63
+ name: "Run tests with lowest-direct dependencies"
64
+ runs-on: ubuntu-latest
65
+ timeout-minutes: 10
66
+
67
+ steps:
68
+ - uses: actions/checkout@v6
69
+
70
+ - name: Install uv
71
+ uses: astral-sh/setup-uv@v7
72
+ with:
73
+ enable-cache: true
74
+ cache-dependency-glob: "uv.lock"
75
+ python-version: "3.10"
76
+
77
+ - name: Install FastMCP with lowest-direct resolution
78
+ # run with lowest-direct to test against the minimum allowed dependency versions
79
+ run: uv sync --resolution lowest-direct
80
+
81
+ - name: Run tests (excluding integration and client_process)
82
+ run: uv run --resolution lowest-direct pytest --inline-snapshot=disable tests -m "not integration and not client_process" --numprocesses auto --maxprocesses 4 --dist worksteal
83
+
84
+ - name: Run client process tests separately
85
+ run: uv run --resolution lowest-direct pytest --inline-snapshot=disable tests -m "client_process" -x
86
+
87
+ run_integration_tests:
88
+ name: "Run integration tests"
89
+ runs-on: ubuntu-latest
90
+ timeout-minutes: 10
91
+
92
+ steps:
93
+ - uses: actions/checkout@v6
94
+
95
+ - name: Install uv
96
+ uses: astral-sh/setup-uv@v7
97
+ with:
98
+ enable-cache: true
99
+ cache-dependency-glob: "uv.lock"
100
+ python-version: "3.10"
101
+
102
+ - name: Install FastMCP
103
+ # run with upgrade to always test against the latest compatible versions
104
+ run: uv sync --upgrade
105
+
106
+ - name: Run integration tests
107
+ # use longer per-test timeout for remote API calls (default is 5s)
108
+ run: uv run pytest tests -m "integration" --timeout=30 --numprocesses auto --maxprocesses 2 --dist worksteal
109
+ env:
110
+ FASTMCP_GITHUB_TOKEN: ${{ secrets.FASTMCP_GITHUB_TOKEN }}
111
+ FASTMCP_TEST_AUTH_GITHUB_CLIENT_ID: ${{ secrets.FASTMCP_TEST_AUTH_GITHUB_CLIENT_ID }}
112
+ 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