fastmcp 2.10.4__tar.gz → 2.10.6__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 (443) hide show
  1. {fastmcp-2.10.4 → fastmcp-2.10.6}/.github/labeler.yml +4 -0
  2. {fastmcp-2.10.4 → fastmcp-2.10.6}/.github/workflows/run-static.yml +2 -0
  3. {fastmcp-2.10.4 → fastmcp-2.10.6}/.github/workflows/run-tests.yml +25 -2
  4. {fastmcp-2.10.4 → fastmcp-2.10.6}/.gitignore +3 -0
  5. {fastmcp-2.10.4 → fastmcp-2.10.6}/.pre-commit-config.yaml +6 -0
  6. {fastmcp-2.10.4 → fastmcp-2.10.6}/PKG-INFO +2 -2
  7. {fastmcp-2.10.4 → fastmcp-2.10.6}/README.md +1 -1
  8. fastmcp-2.10.6/README_OPENAPI.md +246 -0
  9. {fastmcp-2.10.4 → fastmcp-2.10.6}/docs/changelog.mdx +139 -0
  10. fastmcp-2.10.6/docs/clients/transports.mdx +310 -0
  11. {fastmcp-2.10.4 → fastmcp-2.10.6}/docs/docs.json +56 -19
  12. fastmcp-2.10.6/docs/integrations/eunomia-authorization.mdx +134 -0
  13. fastmcp-2.10.6/docs/integrations/fastapi.mdx +229 -0
  14. {fastmcp-2.10.4 → fastmcp-2.10.6}/docs/integrations/mcp-json-configuration.mdx +59 -49
  15. {fastmcp-2.10.4/docs/servers → fastmcp-2.10.6/docs/integrations}/openapi.mdx +88 -190
  16. fastmcp-2.10.6/docs/integrations/starlette.mdx +213 -0
  17. {fastmcp-2.10.4 → fastmcp-2.10.6}/docs/patterns/cli.mdx +21 -19
  18. {fastmcp-2.10.4 → fastmcp-2.10.6}/docs/python-sdk/fastmcp-cli-claude.mdx +2 -2
  19. fastmcp-2.10.6/docs/python-sdk/fastmcp-cli-cli.mdx +79 -0
  20. fastmcp-2.10.6/docs/python-sdk/fastmcp-cli-install-__init__.mdx +9 -0
  21. fastmcp-2.10.6/docs/python-sdk/fastmcp-cli-install-claude_code.mdx +68 -0
  22. fastmcp-2.10.6/docs/python-sdk/fastmcp-cli-install-claude_desktop.mdx +55 -0
  23. fastmcp-2.10.6/docs/python-sdk/fastmcp-cli-install-cursor.mdx +78 -0
  24. fastmcp-2.10.6/docs/python-sdk/fastmcp-cli-install-mcp_config.mdx +46 -0
  25. fastmcp-2.10.6/docs/python-sdk/fastmcp-cli-install-shared.mdx +31 -0
  26. {fastmcp-2.10.4 → fastmcp-2.10.6}/docs/python-sdk/fastmcp-cli-run.mdx +10 -8
  27. {fastmcp-2.10.4 → fastmcp-2.10.6}/docs/python-sdk/fastmcp-client-auth-bearer.mdx +2 -2
  28. fastmcp-2.10.6/docs/python-sdk/fastmcp-client-auth-oauth.mdx +152 -0
  29. fastmcp-2.10.6/docs/python-sdk/fastmcp-client-client.mdx +499 -0
  30. fastmcp-2.10.6/docs/python-sdk/fastmcp-client-elicitation.mdx +18 -0
  31. fastmcp-2.10.6/docs/python-sdk/fastmcp-client-logging.mdx +20 -0
  32. fastmcp-2.10.6/docs/python-sdk/fastmcp-client-messages.mdx +107 -0
  33. {fastmcp-2.10.4 → fastmcp-2.10.6}/docs/python-sdk/fastmcp-client-oauth_callback.mdx +5 -5
  34. fastmcp-2.10.6/docs/python-sdk/fastmcp-client-progress.mdx +25 -0
  35. {fastmcp-2.10.4 → fastmcp-2.10.6}/docs/python-sdk/fastmcp-client-roots.mdx +2 -2
  36. {fastmcp-2.10.4 → fastmcp-2.10.6}/docs/python-sdk/fastmcp-client-sampling.mdx +1 -1
  37. {fastmcp-2.10.4 → fastmcp-2.10.6}/docs/python-sdk/fastmcp-client-transports.mdx +110 -14
  38. fastmcp-2.10.6/docs/python-sdk/fastmcp-exceptions.mdx +65 -0
  39. fastmcp-2.10.6/docs/python-sdk/fastmcp-mcp_config.mdx +150 -0
  40. fastmcp-2.10.6/docs/python-sdk/fastmcp-prompts-prompt.mdx +114 -0
  41. fastmcp-2.10.6/docs/python-sdk/fastmcp-prompts-prompt_manager.mdx +89 -0
  42. fastmcp-2.10.6/docs/python-sdk/fastmcp-resources-resource.mdx +120 -0
  43. {fastmcp-2.10.4 → fastmcp-2.10.6}/docs/python-sdk/fastmcp-resources-resource_manager.mdx +77 -7
  44. fastmcp-2.10.6/docs/python-sdk/fastmcp-resources-template.mdx +143 -0
  45. fastmcp-2.10.6/docs/python-sdk/fastmcp-resources-types.mdx +134 -0
  46. fastmcp-2.10.6/docs/python-sdk/fastmcp-server-auth-auth.mdx +30 -0
  47. fastmcp-2.10.6/docs/python-sdk/fastmcp-server-auth-providers-bearer.mdx +152 -0
  48. {fastmcp-2.10.4 → fastmcp-2.10.6}/docs/python-sdk/fastmcp-server-auth-providers-bearer_env.mdx +2 -2
  49. fastmcp-2.10.6/docs/python-sdk/fastmcp-server-auth-providers-in_memory.mdx +96 -0
  50. fastmcp-2.10.6/docs/python-sdk/fastmcp-server-context.mdx +293 -0
  51. {fastmcp-2.10.4 → fastmcp-2.10.6}/docs/python-sdk/fastmcp-server-dependencies.mdx +3 -3
  52. fastmcp-2.10.6/docs/python-sdk/fastmcp-server-elicitation.mdx +54 -0
  53. {fastmcp-2.10.4 → fastmcp-2.10.6}/docs/python-sdk/fastmcp-server-http.mdx +8 -8
  54. fastmcp-2.10.6/docs/python-sdk/fastmcp-server-low_level.mdx +18 -0
  55. {fastmcp-2.10.4 → fastmcp-2.10.6}/docs/python-sdk/fastmcp-server-middleware-error_handling.mdx +23 -3
  56. fastmcp-2.10.6/docs/python-sdk/fastmcp-server-middleware-logging.mdx +51 -0
  57. fastmcp-2.10.6/docs/python-sdk/fastmcp-server-middleware-middleware.mdx +108 -0
  58. fastmcp-2.10.6/docs/python-sdk/fastmcp-server-middleware-rate_limiting.mdx +97 -0
  59. fastmcp-2.10.6/docs/python-sdk/fastmcp-server-middleware-timing.mdx +105 -0
  60. fastmcp-2.10.6/docs/python-sdk/fastmcp-server-openapi.mdx +91 -0
  61. fastmcp-2.10.6/docs/python-sdk/fastmcp-server-proxy.mdx +299 -0
  62. {fastmcp-2.10.4 → fastmcp-2.10.6}/docs/python-sdk/fastmcp-server-server.mdx +225 -37
  63. {fastmcp-2.10.4 → fastmcp-2.10.6}/docs/python-sdk/fastmcp-settings.mdx +13 -7
  64. fastmcp-2.10.6/docs/python-sdk/fastmcp-tools-tool.mdx +114 -0
  65. fastmcp-2.10.6/docs/python-sdk/fastmcp-tools-tool_manager.mdx +104 -0
  66. fastmcp-2.10.6/docs/python-sdk/fastmcp-tools-tool_transform.mdx +241 -0
  67. fastmcp-2.10.6/docs/python-sdk/fastmcp-utilities-cache.mdx +30 -0
  68. fastmcp-2.10.6/docs/python-sdk/fastmcp-utilities-cli.mdx +25 -0
  69. fastmcp-2.10.6/docs/python-sdk/fastmcp-utilities-components.mdx +99 -0
  70. {fastmcp-2.10.4 → fastmcp-2.10.6}/docs/python-sdk/fastmcp-utilities-exceptions.mdx +2 -2
  71. {fastmcp-2.10.4 → fastmcp-2.10.6}/docs/python-sdk/fastmcp-utilities-http.mdx +1 -1
  72. fastmcp-2.10.6/docs/python-sdk/fastmcp-utilities-inspect.mdx +94 -0
  73. {fastmcp-2.10.4 → fastmcp-2.10.6}/docs/python-sdk/fastmcp-utilities-json_schema.mdx +1 -1
  74. fastmcp-2.10.6/docs/python-sdk/fastmcp-utilities-json_schema_type.mdx +110 -0
  75. {fastmcp-2.10.4 → fastmcp-2.10.6}/docs/python-sdk/fastmcp-utilities-logging.mdx +2 -2
  76. fastmcp-2.10.6/docs/python-sdk/fastmcp-utilities-openapi.mdx +180 -0
  77. {fastmcp-2.10.4 → fastmcp-2.10.6}/docs/python-sdk/fastmcp-utilities-tests.mdx +12 -2
  78. fastmcp-2.10.6/docs/python-sdk/fastmcp-utilities-types.mdx +137 -0
  79. {fastmcp-2.10.4 → fastmcp-2.10.6}/docs/servers/composition.mdx +1 -1
  80. {fastmcp-2.10.4 → fastmcp-2.10.6}/docs/servers/middleware.mdx +7 -7
  81. {fastmcp-2.10.4 → fastmcp-2.10.6}/docs/servers/proxy.mdx +29 -10
  82. {fastmcp-2.10.4 → fastmcp-2.10.6}/docs/servers/sampling.mdx +1 -0
  83. {fastmcp-2.10.4 → fastmcp-2.10.6}/docs/servers/server.mdx +25 -3
  84. {fastmcp-2.10.4 → fastmcp-2.10.6}/pyproject.toml +9 -0
  85. {fastmcp-2.10.4 → fastmcp-2.10.6}/src/fastmcp/__init__.py +7 -2
  86. {fastmcp-2.10.4 → fastmcp-2.10.6}/src/fastmcp/cli/install/__init__.py +2 -2
  87. {fastmcp-2.10.4 → fastmcp-2.10.6}/src/fastmcp/cli/install/claude_code.py +35 -6
  88. fastmcp-2.10.4/src/fastmcp/cli/install/mcp_config.py → fastmcp-2.10.6/src/fastmcp/cli/install/mcp_json.py +10 -7
  89. {fastmcp-2.10.4 → fastmcp-2.10.6}/src/fastmcp/prompts/prompt_manager.py +1 -1
  90. {fastmcp-2.10.4 → fastmcp-2.10.6}/src/fastmcp/resources/resource_manager.py +2 -2
  91. {fastmcp-2.10.4 → fastmcp-2.10.6}/src/fastmcp/server/context.py +3 -0
  92. fastmcp-2.10.6/src/fastmcp/server/middleware/__init__.py +11 -0
  93. {fastmcp-2.10.4 → fastmcp-2.10.6}/src/fastmcp/server/middleware/middleware.py +8 -34
  94. {fastmcp-2.10.4 → fastmcp-2.10.6}/src/fastmcp/server/openapi.py +140 -53
  95. {fastmcp-2.10.4 → fastmcp-2.10.6}/src/fastmcp/server/proxy.py +51 -4
  96. {fastmcp-2.10.4 → fastmcp-2.10.6}/src/fastmcp/server/server.py +26 -8
  97. {fastmcp-2.10.4 → fastmcp-2.10.6}/src/fastmcp/settings.py +10 -12
  98. {fastmcp-2.10.4 → fastmcp-2.10.6}/src/fastmcp/tools/tool.py +5 -3
  99. {fastmcp-2.10.4 → fastmcp-2.10.6}/src/fastmcp/tools/tool_manager.py +1 -1
  100. {fastmcp-2.10.4 → fastmcp-2.10.6}/src/fastmcp/tools/tool_transform.py +10 -3
  101. {fastmcp-2.10.4 → fastmcp-2.10.6}/src/fastmcp/utilities/cli.py +6 -6
  102. {fastmcp-2.10.4 → fastmcp-2.10.6}/src/fastmcp/utilities/components.py +43 -0
  103. {fastmcp-2.10.4 → fastmcp-2.10.6}/src/fastmcp/utilities/openapi.py +201 -20
  104. {fastmcp-2.10.4 → fastmcp-2.10.6}/tests/cli/test_install.py +2 -2
  105. fastmcp-2.10.6/tests/conftest.py +9 -0
  106. fastmcp-2.10.6/tests/integration_tests/conftest.py +28 -0
  107. fastmcp-2.10.6/tests/integration_tests/test_github_mcp_remote.py +117 -0
  108. {fastmcp-2.10.4 → fastmcp-2.10.6}/tests/server/middleware/test_middleware.py +146 -0
  109. fastmcp-2.10.6/tests/server/openapi/test_deepobject_style.py +281 -0
  110. {fastmcp-2.10.4 → fastmcp-2.10.6}/tests/server/openapi/test_openapi_path_parameters.py +148 -0
  111. fastmcp-2.10.6/tests/server/openapi/test_optional_parameters.py +100 -0
  112. fastmcp-2.10.6/tests/server/openapi/test_parameter_collisions.py +258 -0
  113. {fastmcp-2.10.4 → fastmcp-2.10.6}/tests/server/proxy/test_proxy_client.py +1 -0
  114. {fastmcp-2.10.4 → fastmcp-2.10.6}/tests/server/proxy/test_proxy_server.py +158 -0
  115. fastmcp-2.10.6/tests/server/proxy/test_stateful_proxy_client.py +120 -0
  116. {fastmcp-2.10.4 → fastmcp-2.10.6}/tests/server/test_mount.py +6 -3
  117. {fastmcp-2.10.4 → fastmcp-2.10.6}/tests/tools/test_tool.py +82 -0
  118. {fastmcp-2.10.4 → fastmcp-2.10.6}/tests/tools/test_tool_transform.py +85 -0
  119. {fastmcp-2.10.4 → fastmcp-2.10.6}/tests/utilities/openapi/test_openapi_output_schemas.py +40 -0
  120. fastmcp-2.10.4/docs/clients/transports.mdx +0 -449
  121. fastmcp-2.10.4/docs/deployment/asgi.mdx +0 -220
  122. fastmcp-2.10.4/docs/integrations/eunomia-authorization.mdx +0 -108
  123. fastmcp-2.10.4/docs/python-sdk/fastmcp-cli-cli.mdx +0 -87
  124. fastmcp-2.10.4/docs/python-sdk/fastmcp-client-auth-oauth.mdx +0 -102
  125. fastmcp-2.10.4/docs/python-sdk/fastmcp-client-client.mdx +0 -94
  126. fastmcp-2.10.4/docs/python-sdk/fastmcp-client-logging.mdx +0 -14
  127. fastmcp-2.10.4/docs/python-sdk/fastmcp-client-progress.mdx +0 -8
  128. fastmcp-2.10.4/docs/python-sdk/fastmcp-exceptions.mdx +0 -65
  129. fastmcp-2.10.4/docs/python-sdk/fastmcp-prompts-prompt.mdx +0 -84
  130. fastmcp-2.10.4/docs/python-sdk/fastmcp-prompts-prompt_manager.mdx +0 -43
  131. fastmcp-2.10.4/docs/python-sdk/fastmcp-resources-resource.mdx +0 -90
  132. fastmcp-2.10.4/docs/python-sdk/fastmcp-resources-template.mdx +0 -104
  133. fastmcp-2.10.4/docs/python-sdk/fastmcp-resources-types.mdx +0 -83
  134. fastmcp-2.10.4/docs/python-sdk/fastmcp-server-auth-auth.mdx +0 -10
  135. fastmcp-2.10.4/docs/python-sdk/fastmcp-server-auth-providers-bearer.mdx +0 -69
  136. fastmcp-2.10.4/docs/python-sdk/fastmcp-server-auth-providers-in_memory.mdx +0 -15
  137. fastmcp-2.10.4/docs/python-sdk/fastmcp-server-context.mdx +0 -118
  138. fastmcp-2.10.4/docs/python-sdk/fastmcp-server-middleware-logging.mdx +0 -29
  139. fastmcp-2.10.4/docs/python-sdk/fastmcp-server-middleware-middleware.mdx +0 -56
  140. fastmcp-2.10.4/docs/python-sdk/fastmcp-server-middleware-rate_limiting.mdx +0 -47
  141. fastmcp-2.10.4/docs/python-sdk/fastmcp-server-middleware-timing.mdx +0 -29
  142. fastmcp-2.10.4/docs/python-sdk/fastmcp-server-openapi.mdx +0 -58
  143. fastmcp-2.10.4/docs/python-sdk/fastmcp-server-proxy.mdx +0 -101
  144. fastmcp-2.10.4/docs/python-sdk/fastmcp-tools-tool.mdx +0 -68
  145. fastmcp-2.10.4/docs/python-sdk/fastmcp-tools-tool_manager.mdx +0 -58
  146. fastmcp-2.10.4/docs/python-sdk/fastmcp-tools-tool_transform.mdx +0 -139
  147. fastmcp-2.10.4/docs/python-sdk/fastmcp-utilities-cache.mdx +0 -30
  148. fastmcp-2.10.4/docs/python-sdk/fastmcp-utilities-components.mdx +0 -52
  149. fastmcp-2.10.4/docs/python-sdk/fastmcp-utilities-inspect.mdx +0 -41
  150. fastmcp-2.10.4/docs/python-sdk/fastmcp-utilities-openapi.mdx +0 -118
  151. fastmcp-2.10.4/docs/python-sdk/fastmcp-utilities-types.mdx +0 -112
  152. fastmcp-2.10.4/src/fastmcp/server/middleware/__init__.py +0 -19
  153. fastmcp-2.10.4/tests/test_servers/fastmcp_server.py +0 -58
  154. fastmcp-2.10.4/tests/test_servers/sse.py +0 -6
  155. fastmcp-2.10.4/tests/test_servers/stdio.py +0 -6
  156. {fastmcp-2.10.4 → fastmcp-2.10.6}/.ccignore +0 -0
  157. {fastmcp-2.10.4 → fastmcp-2.10.6}/.cursor/rules/core-mcp-objects.mdc +0 -0
  158. {fastmcp-2.10.4 → fastmcp-2.10.6}/.github/ISSUE_TEMPLATE/bug.yml +0 -0
  159. {fastmcp-2.10.4 → fastmcp-2.10.6}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  160. {fastmcp-2.10.4 → fastmcp-2.10.6}/.github/ISSUE_TEMPLATE/enhancement.yml +0 -0
  161. {fastmcp-2.10.4 → fastmcp-2.10.6}/.github/dependabot.yml +0 -0
  162. {fastmcp-2.10.4 → fastmcp-2.10.6}/.github/release.yml +0 -0
  163. {fastmcp-2.10.4 → fastmcp-2.10.6}/.github/workflows/labeler.yml +0 -0
  164. {fastmcp-2.10.4 → fastmcp-2.10.6}/.github/workflows/publish.yml +0 -0
  165. {fastmcp-2.10.4 → fastmcp-2.10.6}/AGENTS.md +0 -0
  166. {fastmcp-2.10.4 → fastmcp-2.10.6}/CLAUDE.md +0 -0
  167. {fastmcp-2.10.4 → fastmcp-2.10.6}/LICENSE +0 -0
  168. {fastmcp-2.10.4 → fastmcp-2.10.6}/Windows_Notes.md +0 -0
  169. {fastmcp-2.10.4 → fastmcp-2.10.6}/docs/.cursor/rules/mintlify.mdc +0 -0
  170. {fastmcp-2.10.4 → fastmcp-2.10.6}/docs/assets/favicon.svg +0 -0
  171. {fastmcp-2.10.4 → fastmcp-2.10.6}/docs/assets/images/tutorial-rest-api-result.png +0 -0
  172. {fastmcp-2.10.4 → fastmcp-2.10.6}/docs/assets/updates/release-2-7.png +0 -0
  173. {fastmcp-2.10.4 → fastmcp-2.10.6}/docs/clients/auth/bearer.mdx +0 -0
  174. {fastmcp-2.10.4 → fastmcp-2.10.6}/docs/clients/auth/oauth.mdx +0 -0
  175. {fastmcp-2.10.4 → fastmcp-2.10.6}/docs/clients/client.mdx +0 -0
  176. {fastmcp-2.10.4 → fastmcp-2.10.6}/docs/clients/elicitation.mdx +0 -0
  177. {fastmcp-2.10.4 → fastmcp-2.10.6}/docs/clients/logging.mdx +0 -0
  178. {fastmcp-2.10.4 → fastmcp-2.10.6}/docs/clients/messages.mdx +0 -0
  179. {fastmcp-2.10.4 → fastmcp-2.10.6}/docs/clients/progress.mdx +0 -0
  180. {fastmcp-2.10.4 → fastmcp-2.10.6}/docs/clients/prompts.mdx +0 -0
  181. {fastmcp-2.10.4 → fastmcp-2.10.6}/docs/clients/resources.mdx +0 -0
  182. {fastmcp-2.10.4 → fastmcp-2.10.6}/docs/clients/roots.mdx +0 -0
  183. {fastmcp-2.10.4 → fastmcp-2.10.6}/docs/clients/sampling.mdx +0 -0
  184. {fastmcp-2.10.4 → fastmcp-2.10.6}/docs/clients/tools.mdx +0 -0
  185. {fastmcp-2.10.4 → fastmcp-2.10.6}/docs/community/README.md +0 -0
  186. {fastmcp-2.10.4 → fastmcp-2.10.6}/docs/community/showcase.mdx +0 -0
  187. {fastmcp-2.10.4 → fastmcp-2.10.6}/docs/css/banner.css +0 -0
  188. {fastmcp-2.10.4 → fastmcp-2.10.6}/docs/css/python-sdk.css +0 -0
  189. {fastmcp-2.10.4 → fastmcp-2.10.6}/docs/css/style.css +0 -0
  190. {fastmcp-2.10.4 → fastmcp-2.10.6}/docs/css/version-badge.css +0 -0
  191. {fastmcp-2.10.4 → fastmcp-2.10.6}/docs/deployment/running-server.mdx +0 -0
  192. {fastmcp-2.10.4 → fastmcp-2.10.6}/docs/getting-started/installation.mdx +0 -0
  193. {fastmcp-2.10.4 → fastmcp-2.10.6}/docs/getting-started/quickstart.mdx +0 -0
  194. {fastmcp-2.10.4 → fastmcp-2.10.6}/docs/getting-started/welcome.mdx +0 -0
  195. {fastmcp-2.10.4 → fastmcp-2.10.6}/docs/integrations/anthropic.mdx +0 -0
  196. {fastmcp-2.10.4 → fastmcp-2.10.6}/docs/integrations/chatgpt.mdx +0 -0
  197. {fastmcp-2.10.4 → fastmcp-2.10.6}/docs/integrations/claude-code.mdx +0 -0
  198. {fastmcp-2.10.4 → fastmcp-2.10.6}/docs/integrations/claude-desktop.mdx +0 -0
  199. {fastmcp-2.10.4 → fastmcp-2.10.6}/docs/integrations/cursor-install-mcp.png +0 -0
  200. {fastmcp-2.10.4 → fastmcp-2.10.6}/docs/integrations/cursor.mdx +0 -0
  201. {fastmcp-2.10.4 → fastmcp-2.10.6}/docs/integrations/gemini.mdx +0 -0
  202. {fastmcp-2.10.4 → fastmcp-2.10.6}/docs/integrations/openai.mdx +0 -0
  203. {fastmcp-2.10.4 → fastmcp-2.10.6}/docs/patterns/contrib.mdx +0 -0
  204. {fastmcp-2.10.4 → fastmcp-2.10.6}/docs/patterns/decorating-methods.mdx +0 -0
  205. {fastmcp-2.10.4 → fastmcp-2.10.6}/docs/patterns/http-requests.mdx +0 -0
  206. {fastmcp-2.10.4 → fastmcp-2.10.6}/docs/patterns/testing.mdx +0 -0
  207. {fastmcp-2.10.4 → fastmcp-2.10.6}/docs/patterns/tool-transformation.mdx +0 -0
  208. {fastmcp-2.10.4 → fastmcp-2.10.6}/docs/python-sdk/fastmcp-cli-__init__.mdx +0 -0
  209. {fastmcp-2.10.4 → fastmcp-2.10.6}/docs/python-sdk/fastmcp-client-__init__.mdx +0 -0
  210. {fastmcp-2.10.4 → fastmcp-2.10.6}/docs/python-sdk/fastmcp-client-auth-__init__.mdx +0 -0
  211. {fastmcp-2.10.4 → fastmcp-2.10.6}/docs/python-sdk/fastmcp-prompts-__init__.mdx +0 -0
  212. {fastmcp-2.10.4 → fastmcp-2.10.6}/docs/python-sdk/fastmcp-resources-__init__.mdx +0 -0
  213. {fastmcp-2.10.4 → fastmcp-2.10.6}/docs/python-sdk/fastmcp-server-__init__.mdx +0 -0
  214. {fastmcp-2.10.4 → fastmcp-2.10.6}/docs/python-sdk/fastmcp-server-auth-__init__.mdx +0 -0
  215. {fastmcp-2.10.4 → fastmcp-2.10.6}/docs/python-sdk/fastmcp-server-auth-providers-__init__.mdx +0 -0
  216. {fastmcp-2.10.4 → fastmcp-2.10.6}/docs/python-sdk/fastmcp-server-middleware-__init__.mdx +0 -0
  217. {fastmcp-2.10.4 → fastmcp-2.10.6}/docs/python-sdk/fastmcp-server-middleware.mdx +0 -0
  218. {fastmcp-2.10.4 → fastmcp-2.10.6}/docs/python-sdk/fastmcp-tools-__init__.mdx +0 -0
  219. {fastmcp-2.10.4 → fastmcp-2.10.6}/docs/python-sdk/fastmcp-utilities-__init__.mdx +0 -0
  220. {fastmcp-2.10.4 → fastmcp-2.10.6}/docs/python-sdk/fastmcp-utilities-mcp_config.mdx +0 -0
  221. {fastmcp-2.10.4 → fastmcp-2.10.6}/docs/servers/auth/bearer.mdx +0 -0
  222. {fastmcp-2.10.4 → fastmcp-2.10.6}/docs/servers/context.mdx +0 -0
  223. {fastmcp-2.10.4 → fastmcp-2.10.6}/docs/servers/elicitation.mdx +0 -0
  224. {fastmcp-2.10.4 → fastmcp-2.10.6}/docs/servers/logging.mdx +0 -0
  225. {fastmcp-2.10.4 → fastmcp-2.10.6}/docs/servers/progress.mdx +0 -0
  226. {fastmcp-2.10.4 → fastmcp-2.10.6}/docs/servers/prompts.mdx +0 -0
  227. {fastmcp-2.10.4 → fastmcp-2.10.6}/docs/servers/resources.mdx +0 -0
  228. {fastmcp-2.10.4 → fastmcp-2.10.6}/docs/servers/tools.mdx +0 -0
  229. {fastmcp-2.10.4 → fastmcp-2.10.6}/docs/snippets/local-focus.mdx +0 -0
  230. {fastmcp-2.10.4 → fastmcp-2.10.6}/docs/snippets/version-badge.mdx +0 -0
  231. {fastmcp-2.10.4 → fastmcp-2.10.6}/docs/snippets/youtube-embed.mdx +0 -0
  232. {fastmcp-2.10.4 → fastmcp-2.10.6}/docs/tutorials/create-mcp-server.mdx +0 -0
  233. {fastmcp-2.10.4 → fastmcp-2.10.6}/docs/tutorials/mcp.mdx +0 -0
  234. {fastmcp-2.10.4 → fastmcp-2.10.6}/docs/tutorials/rest-api.mdx +0 -0
  235. {fastmcp-2.10.4 → fastmcp-2.10.6}/docs/updates.mdx +0 -0
  236. {fastmcp-2.10.4 → fastmcp-2.10.6}/examples/atproto_mcp/README.md +0 -0
  237. {fastmcp-2.10.4 → fastmcp-2.10.6}/examples/atproto_mcp/demo.py +0 -0
  238. {fastmcp-2.10.4 → fastmcp-2.10.6}/examples/atproto_mcp/pyproject.toml +0 -0
  239. {fastmcp-2.10.4 → fastmcp-2.10.6}/examples/atproto_mcp/src/atproto_mcp/__init__.py +0 -0
  240. {fastmcp-2.10.4 → fastmcp-2.10.6}/examples/atproto_mcp/src/atproto_mcp/__main__.py +0 -0
  241. {fastmcp-2.10.4 → fastmcp-2.10.6}/examples/atproto_mcp/src/atproto_mcp/_atproto/__init__.py +0 -0
  242. {fastmcp-2.10.4 → fastmcp-2.10.6}/examples/atproto_mcp/src/atproto_mcp/_atproto/_client.py +0 -0
  243. {fastmcp-2.10.4 → fastmcp-2.10.6}/examples/atproto_mcp/src/atproto_mcp/_atproto/_posts.py +0 -0
  244. {fastmcp-2.10.4 → fastmcp-2.10.6}/examples/atproto_mcp/src/atproto_mcp/_atproto/_profile.py +0 -0
  245. {fastmcp-2.10.4 → fastmcp-2.10.6}/examples/atproto_mcp/src/atproto_mcp/_atproto/_read.py +0 -0
  246. {fastmcp-2.10.4 → fastmcp-2.10.6}/examples/atproto_mcp/src/atproto_mcp/_atproto/_social.py +0 -0
  247. {fastmcp-2.10.4 → fastmcp-2.10.6}/examples/atproto_mcp/src/atproto_mcp/py.typed +0 -0
  248. {fastmcp-2.10.4 → fastmcp-2.10.6}/examples/atproto_mcp/src/atproto_mcp/server.py +0 -0
  249. {fastmcp-2.10.4 → fastmcp-2.10.6}/examples/atproto_mcp/src/atproto_mcp/settings.py +0 -0
  250. {fastmcp-2.10.4 → fastmcp-2.10.6}/examples/atproto_mcp/src/atproto_mcp/types.py +0 -0
  251. {fastmcp-2.10.4 → fastmcp-2.10.6}/examples/complex_inputs.py +0 -0
  252. {fastmcp-2.10.4 → fastmcp-2.10.6}/examples/config_server.py +0 -0
  253. {fastmcp-2.10.4 → fastmcp-2.10.6}/examples/desktop.py +0 -0
  254. {fastmcp-2.10.4 → fastmcp-2.10.6}/examples/echo.py +0 -0
  255. {fastmcp-2.10.4 → fastmcp-2.10.6}/examples/get_file.py +0 -0
  256. {fastmcp-2.10.4 → fastmcp-2.10.6}/examples/in_memory_proxy_example.py +0 -0
  257. {fastmcp-2.10.4 → fastmcp-2.10.6}/examples/memory.py +0 -0
  258. {fastmcp-2.10.4 → fastmcp-2.10.6}/examples/mount_example.py +0 -0
  259. {fastmcp-2.10.4 → fastmcp-2.10.6}/examples/sampling.py +0 -0
  260. {fastmcp-2.10.4 → fastmcp-2.10.6}/examples/screenshot.py +0 -0
  261. {fastmcp-2.10.4 → fastmcp-2.10.6}/examples/serializer.py +0 -0
  262. {fastmcp-2.10.4 → fastmcp-2.10.6}/examples/simple_echo.py +0 -0
  263. {fastmcp-2.10.4 → fastmcp-2.10.6}/examples/smart_home/README.md +0 -0
  264. {fastmcp-2.10.4 → fastmcp-2.10.6}/examples/smart_home/pyproject.toml +0 -0
  265. {fastmcp-2.10.4 → fastmcp-2.10.6}/examples/smart_home/src/smart_home/__init__.py +0 -0
  266. {fastmcp-2.10.4 → fastmcp-2.10.6}/examples/smart_home/src/smart_home/__main__.py +0 -0
  267. {fastmcp-2.10.4 → fastmcp-2.10.6}/examples/smart_home/src/smart_home/hub.py +0 -0
  268. {fastmcp-2.10.4 → fastmcp-2.10.6}/examples/smart_home/src/smart_home/lights/__init__.py +0 -0
  269. {fastmcp-2.10.4 → fastmcp-2.10.6}/examples/smart_home/src/smart_home/lights/hue_utils.py +0 -0
  270. {fastmcp-2.10.4 → fastmcp-2.10.6}/examples/smart_home/src/smart_home/lights/server.py +0 -0
  271. {fastmcp-2.10.4 → fastmcp-2.10.6}/examples/smart_home/src/smart_home/py.typed +0 -0
  272. {fastmcp-2.10.4 → fastmcp-2.10.6}/examples/smart_home/src/smart_home/settings.py +0 -0
  273. {fastmcp-2.10.4 → fastmcp-2.10.6}/examples/smart_home/uv.lock +0 -0
  274. {fastmcp-2.10.4 → fastmcp-2.10.6}/examples/tags_example.py +0 -0
  275. {fastmcp-2.10.4 → fastmcp-2.10.6}/examples/text_me.py +0 -0
  276. {fastmcp-2.10.4 → fastmcp-2.10.6}/justfile +0 -0
  277. {fastmcp-2.10.4 → fastmcp-2.10.6}/src/fastmcp/cli/__init__.py +0 -0
  278. {fastmcp-2.10.4 → fastmcp-2.10.6}/src/fastmcp/cli/claude.py +0 -0
  279. {fastmcp-2.10.4 → fastmcp-2.10.6}/src/fastmcp/cli/cli.py +0 -0
  280. {fastmcp-2.10.4 → fastmcp-2.10.6}/src/fastmcp/cli/install/claude_desktop.py +0 -0
  281. {fastmcp-2.10.4 → fastmcp-2.10.6}/src/fastmcp/cli/install/cursor.py +0 -0
  282. {fastmcp-2.10.4 → fastmcp-2.10.6}/src/fastmcp/cli/install/shared.py +0 -0
  283. {fastmcp-2.10.4 → fastmcp-2.10.6}/src/fastmcp/cli/run.py +0 -0
  284. {fastmcp-2.10.4 → fastmcp-2.10.6}/src/fastmcp/client/__init__.py +0 -0
  285. {fastmcp-2.10.4 → fastmcp-2.10.6}/src/fastmcp/client/auth/__init__.py +0 -0
  286. {fastmcp-2.10.4 → fastmcp-2.10.6}/src/fastmcp/client/auth/bearer.py +0 -0
  287. {fastmcp-2.10.4 → fastmcp-2.10.6}/src/fastmcp/client/auth/oauth.py +0 -0
  288. {fastmcp-2.10.4 → fastmcp-2.10.6}/src/fastmcp/client/client.py +0 -0
  289. {fastmcp-2.10.4 → fastmcp-2.10.6}/src/fastmcp/client/elicitation.py +0 -0
  290. {fastmcp-2.10.4 → fastmcp-2.10.6}/src/fastmcp/client/logging.py +0 -0
  291. {fastmcp-2.10.4 → fastmcp-2.10.6}/src/fastmcp/client/messages.py +0 -0
  292. {fastmcp-2.10.4 → fastmcp-2.10.6}/src/fastmcp/client/oauth_callback.py +0 -0
  293. {fastmcp-2.10.4 → fastmcp-2.10.6}/src/fastmcp/client/progress.py +0 -0
  294. {fastmcp-2.10.4 → fastmcp-2.10.6}/src/fastmcp/client/roots.py +0 -0
  295. {fastmcp-2.10.4 → fastmcp-2.10.6}/src/fastmcp/client/sampling.py +0 -0
  296. {fastmcp-2.10.4 → fastmcp-2.10.6}/src/fastmcp/client/transports.py +0 -0
  297. {fastmcp-2.10.4 → fastmcp-2.10.6}/src/fastmcp/contrib/README.md +0 -0
  298. {fastmcp-2.10.4 → fastmcp-2.10.6}/src/fastmcp/contrib/bulk_tool_caller/README.md +0 -0
  299. {fastmcp-2.10.4 → fastmcp-2.10.6}/src/fastmcp/contrib/bulk_tool_caller/__init__.py +0 -0
  300. {fastmcp-2.10.4 → fastmcp-2.10.6}/src/fastmcp/contrib/bulk_tool_caller/bulk_tool_caller.py +0 -0
  301. {fastmcp-2.10.4 → fastmcp-2.10.6}/src/fastmcp/contrib/bulk_tool_caller/example.py +0 -0
  302. {fastmcp-2.10.4 → fastmcp-2.10.6}/src/fastmcp/contrib/component_manager/README.md +0 -0
  303. {fastmcp-2.10.4 → fastmcp-2.10.6}/src/fastmcp/contrib/component_manager/__init__.py +0 -0
  304. {fastmcp-2.10.4 → fastmcp-2.10.6}/src/fastmcp/contrib/component_manager/component_manager.py +0 -0
  305. {fastmcp-2.10.4 → fastmcp-2.10.6}/src/fastmcp/contrib/component_manager/component_service.py +0 -0
  306. {fastmcp-2.10.4 → fastmcp-2.10.6}/src/fastmcp/contrib/component_manager/example.py +0 -0
  307. {fastmcp-2.10.4 → fastmcp-2.10.6}/src/fastmcp/contrib/mcp_mixin/README.md +0 -0
  308. {fastmcp-2.10.4 → fastmcp-2.10.6}/src/fastmcp/contrib/mcp_mixin/__init__.py +0 -0
  309. {fastmcp-2.10.4 → fastmcp-2.10.6}/src/fastmcp/contrib/mcp_mixin/example.py +0 -0
  310. {fastmcp-2.10.4 → fastmcp-2.10.6}/src/fastmcp/contrib/mcp_mixin/mcp_mixin.py +0 -0
  311. {fastmcp-2.10.4 → fastmcp-2.10.6}/src/fastmcp/exceptions.py +0 -0
  312. {fastmcp-2.10.4 → fastmcp-2.10.6}/src/fastmcp/mcp_config.py +0 -0
  313. {fastmcp-2.10.4 → fastmcp-2.10.6}/src/fastmcp/prompts/__init__.py +0 -0
  314. {fastmcp-2.10.4 → fastmcp-2.10.6}/src/fastmcp/prompts/prompt.py +0 -0
  315. {fastmcp-2.10.4 → fastmcp-2.10.6}/src/fastmcp/py.typed +0 -0
  316. {fastmcp-2.10.4 → fastmcp-2.10.6}/src/fastmcp/resources/__init__.py +0 -0
  317. {fastmcp-2.10.4 → fastmcp-2.10.6}/src/fastmcp/resources/resource.py +0 -0
  318. {fastmcp-2.10.4 → fastmcp-2.10.6}/src/fastmcp/resources/template.py +0 -0
  319. {fastmcp-2.10.4 → fastmcp-2.10.6}/src/fastmcp/resources/types.py +0 -0
  320. {fastmcp-2.10.4 → fastmcp-2.10.6}/src/fastmcp/server/__init__.py +0 -0
  321. {fastmcp-2.10.4 → fastmcp-2.10.6}/src/fastmcp/server/auth/__init__.py +0 -0
  322. {fastmcp-2.10.4 → fastmcp-2.10.6}/src/fastmcp/server/auth/auth.py +0 -0
  323. {fastmcp-2.10.4 → fastmcp-2.10.6}/src/fastmcp/server/auth/providers/__init__.py +0 -0
  324. {fastmcp-2.10.4 → fastmcp-2.10.6}/src/fastmcp/server/auth/providers/bearer.py +0 -0
  325. {fastmcp-2.10.4 → fastmcp-2.10.6}/src/fastmcp/server/auth/providers/bearer_env.py +0 -0
  326. {fastmcp-2.10.4 → fastmcp-2.10.6}/src/fastmcp/server/auth/providers/in_memory.py +0 -0
  327. {fastmcp-2.10.4 → fastmcp-2.10.6}/src/fastmcp/server/dependencies.py +0 -0
  328. {fastmcp-2.10.4 → fastmcp-2.10.6}/src/fastmcp/server/elicitation.py +0 -0
  329. {fastmcp-2.10.4 → fastmcp-2.10.6}/src/fastmcp/server/http.py +0 -0
  330. {fastmcp-2.10.4 → fastmcp-2.10.6}/src/fastmcp/server/low_level.py +0 -0
  331. {fastmcp-2.10.4 → fastmcp-2.10.6}/src/fastmcp/server/middleware/error_handling.py +0 -0
  332. {fastmcp-2.10.4 → fastmcp-2.10.6}/src/fastmcp/server/middleware/logging.py +0 -0
  333. {fastmcp-2.10.4 → fastmcp-2.10.6}/src/fastmcp/server/middleware/rate_limiting.py +0 -0
  334. {fastmcp-2.10.4 → fastmcp-2.10.6}/src/fastmcp/server/middleware/timing.py +0 -0
  335. {fastmcp-2.10.4 → fastmcp-2.10.6}/src/fastmcp/tools/__init__.py +0 -0
  336. {fastmcp-2.10.4 → fastmcp-2.10.6}/src/fastmcp/utilities/__init__.py +0 -0
  337. {fastmcp-2.10.4 → fastmcp-2.10.6}/src/fastmcp/utilities/cache.py +0 -0
  338. {fastmcp-2.10.4 → fastmcp-2.10.6}/src/fastmcp/utilities/exceptions.py +0 -0
  339. {fastmcp-2.10.4 → fastmcp-2.10.6}/src/fastmcp/utilities/http.py +0 -0
  340. {fastmcp-2.10.4 → fastmcp-2.10.6}/src/fastmcp/utilities/inspect.py +0 -0
  341. {fastmcp-2.10.4 → fastmcp-2.10.6}/src/fastmcp/utilities/json_schema.py +0 -0
  342. {fastmcp-2.10.4 → fastmcp-2.10.6}/src/fastmcp/utilities/json_schema_type.py +0 -0
  343. {fastmcp-2.10.4 → fastmcp-2.10.6}/src/fastmcp/utilities/logging.py +0 -0
  344. {fastmcp-2.10.4 → fastmcp-2.10.6}/src/fastmcp/utilities/tests.py +0 -0
  345. {fastmcp-2.10.4 → fastmcp-2.10.6}/src/fastmcp/utilities/types.py +0 -0
  346. {fastmcp-2.10.4 → fastmcp-2.10.6}/tests/__init__.py +0 -0
  347. {fastmcp-2.10.4 → fastmcp-2.10.6}/tests/auth/__init__.py +0 -0
  348. {fastmcp-2.10.4 → fastmcp-2.10.6}/tests/auth/providers/test_bearer.py +0 -0
  349. {fastmcp-2.10.4 → fastmcp-2.10.6}/tests/auth/providers/test_bearer_env.py +0 -0
  350. {fastmcp-2.10.4 → fastmcp-2.10.6}/tests/auth/providers/test_token_verifier.py +0 -0
  351. {fastmcp-2.10.4 → fastmcp-2.10.6}/tests/auth/test_oauth_client.py +0 -0
  352. {fastmcp-2.10.4 → fastmcp-2.10.6}/tests/cli/__init__.py +0 -0
  353. {fastmcp-2.10.4 → fastmcp-2.10.6}/tests/cli/test_cli.py +0 -0
  354. {fastmcp-2.10.4 → fastmcp-2.10.6}/tests/cli/test_cursor.py +0 -0
  355. {fastmcp-2.10.4 → fastmcp-2.10.6}/tests/cli/test_run.py +0 -0
  356. {fastmcp-2.10.4 → fastmcp-2.10.6}/tests/cli/test_shared.py +0 -0
  357. {fastmcp-2.10.4 → fastmcp-2.10.6}/tests/client/__init__.py +0 -0
  358. {fastmcp-2.10.4 → fastmcp-2.10.6}/tests/client/test_client.py +0 -0
  359. {fastmcp-2.10.4 → fastmcp-2.10.6}/tests/client/test_elicitation.py +0 -0
  360. {fastmcp-2.10.4 → fastmcp-2.10.6}/tests/client/test_logs.py +0 -0
  361. {fastmcp-2.10.4 → fastmcp-2.10.6}/tests/client/test_notifications.py +0 -0
  362. {fastmcp-2.10.4 → fastmcp-2.10.6}/tests/client/test_openapi.py +0 -0
  363. {fastmcp-2.10.4 → fastmcp-2.10.6}/tests/client/test_progress.py +0 -0
  364. {fastmcp-2.10.4 → fastmcp-2.10.6}/tests/client/test_roots.py +0 -0
  365. {fastmcp-2.10.4 → fastmcp-2.10.6}/tests/client/test_sampling.py +0 -0
  366. {fastmcp-2.10.4 → fastmcp-2.10.6}/tests/client/test_sse.py +0 -0
  367. {fastmcp-2.10.4 → fastmcp-2.10.6}/tests/client/test_stdio.py +0 -0
  368. {fastmcp-2.10.4 → fastmcp-2.10.6}/tests/client/test_streamable_http.py +0 -0
  369. {fastmcp-2.10.4 → fastmcp-2.10.6}/tests/contrib/__init__.py +0 -0
  370. {fastmcp-2.10.4 → fastmcp-2.10.6}/tests/contrib/test_bulk_tool_caller.py +0 -0
  371. {fastmcp-2.10.4 → fastmcp-2.10.6}/tests/contrib/test_component_manager.py +0 -0
  372. {fastmcp-2.10.4 → fastmcp-2.10.6}/tests/contrib/test_mcp_mixin.py +0 -0
  373. {fastmcp-2.10.4 → fastmcp-2.10.6}/tests/deprecated/__init__.py +0 -0
  374. {fastmcp-2.10.4 → fastmcp-2.10.6}/tests/deprecated/test_deprecated.py +0 -0
  375. {fastmcp-2.10.4 → fastmcp-2.10.6}/tests/deprecated/test_mount_import_arg_order.py +0 -0
  376. {fastmcp-2.10.4 → fastmcp-2.10.6}/tests/deprecated/test_mount_separators.py +0 -0
  377. {fastmcp-2.10.4 → fastmcp-2.10.6}/tests/deprecated/test_proxy_client.py +0 -0
  378. {fastmcp-2.10.4 → fastmcp-2.10.6}/tests/deprecated/test_resource_prefixes.py +0 -0
  379. {fastmcp-2.10.4 → fastmcp-2.10.6}/tests/deprecated/test_route_type_ignore.py +0 -0
  380. {fastmcp-2.10.4 → fastmcp-2.10.6}/tests/deprecated/test_settings.py +0 -0
  381. {fastmcp-2.10.4/tests/prompts → fastmcp-2.10.6/tests/integration_tests}/__init__.py +0 -0
  382. {fastmcp-2.10.4/tests/resources → fastmcp-2.10.6/tests/prompts}/__init__.py +0 -0
  383. {fastmcp-2.10.4 → fastmcp-2.10.6}/tests/prompts/test_prompt.py +0 -0
  384. {fastmcp-2.10.4 → fastmcp-2.10.6}/tests/prompts/test_prompt_manager.py +0 -0
  385. {fastmcp-2.10.4/tests/server → fastmcp-2.10.6/tests/resources}/__init__.py +0 -0
  386. {fastmcp-2.10.4 → fastmcp-2.10.6}/tests/resources/test_file_resources.py +0 -0
  387. {fastmcp-2.10.4 → fastmcp-2.10.6}/tests/resources/test_function_resources.py +0 -0
  388. {fastmcp-2.10.4 → fastmcp-2.10.6}/tests/resources/test_resource_manager.py +0 -0
  389. {fastmcp-2.10.4 → fastmcp-2.10.6}/tests/resources/test_resource_template.py +0 -0
  390. {fastmcp-2.10.4 → fastmcp-2.10.6}/tests/resources/test_resources.py +0 -0
  391. {fastmcp-2.10.4/tests/server/http → fastmcp-2.10.6/tests/server}/__init__.py +0 -0
  392. {fastmcp-2.10.4/tests/server/middleware → fastmcp-2.10.6/tests/server/http}/__init__.py +0 -0
  393. {fastmcp-2.10.4 → fastmcp-2.10.6}/tests/server/http/test_auth_setup.py +0 -0
  394. {fastmcp-2.10.4 → fastmcp-2.10.6}/tests/server/http/test_bearer_auth_backend.py +0 -0
  395. {fastmcp-2.10.4 → fastmcp-2.10.6}/tests/server/http/test_custom_routes.py +0 -0
  396. {fastmcp-2.10.4 → fastmcp-2.10.6}/tests/server/http/test_http_dependencies.py +0 -0
  397. {fastmcp-2.10.4 → fastmcp-2.10.6}/tests/server/http/test_http_middleware.py +0 -0
  398. {fastmcp-2.10.4/tests/server/openapi → fastmcp-2.10.6/tests/server/middleware}/__init__.py +0 -0
  399. {fastmcp-2.10.4 → fastmcp-2.10.6}/tests/server/middleware/test_error_handling.py +0 -0
  400. {fastmcp-2.10.4 → fastmcp-2.10.6}/tests/server/middleware/test_logging.py +0 -0
  401. {fastmcp-2.10.4 → fastmcp-2.10.6}/tests/server/middleware/test_rate_limiting.py +0 -0
  402. {fastmcp-2.10.4 → fastmcp-2.10.6}/tests/server/middleware/test_timing.py +0 -0
  403. {fastmcp-2.10.4/tests/server/proxy → fastmcp-2.10.6/tests/server/openapi}/__init__.py +0 -0
  404. {fastmcp-2.10.4 → fastmcp-2.10.6}/tests/server/openapi/conftest.py +0 -0
  405. {fastmcp-2.10.4 → fastmcp-2.10.6}/tests/server/openapi/test_advanced_behavior.py +0 -0
  406. {fastmcp-2.10.4 → fastmcp-2.10.6}/tests/server/openapi/test_basic_functionality.py +0 -0
  407. {fastmcp-2.10.4 → fastmcp-2.10.6}/tests/server/openapi/test_configuration.py +0 -0
  408. {fastmcp-2.10.4 → fastmcp-2.10.6}/tests/server/openapi/test_description_propagation.py +0 -0
  409. {fastmcp-2.10.4 → fastmcp-2.10.6}/tests/server/openapi/test_explode_integration.py +0 -0
  410. {fastmcp-2.10.4 → fastmcp-2.10.6}/tests/server/openapi/test_openapi_compatibility.py +0 -0
  411. {fastmcp-2.10.4 → fastmcp-2.10.6}/tests/server/openapi/test_route_map_fn.py +0 -0
  412. {fastmcp-2.10.4/tests/tools → fastmcp-2.10.6/tests/server/proxy}/__init__.py +0 -0
  413. {fastmcp-2.10.4 → fastmcp-2.10.6}/tests/server/test_app_state.py +0 -0
  414. {fastmcp-2.10.4 → fastmcp-2.10.6}/tests/server/test_auth_integration.py +0 -0
  415. {fastmcp-2.10.4 → fastmcp-2.10.6}/tests/server/test_context.py +0 -0
  416. {fastmcp-2.10.4 → fastmcp-2.10.6}/tests/server/test_file_server.py +0 -0
  417. {fastmcp-2.10.4 → fastmcp-2.10.6}/tests/server/test_import_server.py +0 -0
  418. {fastmcp-2.10.4 → fastmcp-2.10.6}/tests/server/test_logging.py +0 -0
  419. {fastmcp-2.10.4 → fastmcp-2.10.6}/tests/server/test_resource_prefix_formats.py +0 -0
  420. {fastmcp-2.10.4 → fastmcp-2.10.6}/tests/server/test_run_server.py +0 -0
  421. {fastmcp-2.10.4 → fastmcp-2.10.6}/tests/server/test_server.py +0 -0
  422. {fastmcp-2.10.4 → fastmcp-2.10.6}/tests/server/test_server_interactions.py +0 -0
  423. {fastmcp-2.10.4 → fastmcp-2.10.6}/tests/server/test_tool_annotations.py +0 -0
  424. {fastmcp-2.10.4 → fastmcp-2.10.6}/tests/server/test_tool_exclude_args.py +0 -0
  425. {fastmcp-2.10.4 → fastmcp-2.10.6}/tests/test_examples.py +0 -0
  426. /fastmcp-2.10.4/tests/conftest.py → /fastmcp-2.10.6/tests/tools/__init__.py +0 -0
  427. {fastmcp-2.10.4 → fastmcp-2.10.6}/tests/tools/test_tool_manager.py +0 -0
  428. {fastmcp-2.10.4 → fastmcp-2.10.6}/tests/utilities/__init__.py +0 -0
  429. {fastmcp-2.10.4 → fastmcp-2.10.6}/tests/utilities/openapi/__init__.py +0 -0
  430. {fastmcp-2.10.4 → fastmcp-2.10.6}/tests/utilities/openapi/conftest.py +0 -0
  431. {fastmcp-2.10.4 → fastmcp-2.10.6}/tests/utilities/openapi/test_openapi.py +0 -0
  432. {fastmcp-2.10.4 → fastmcp-2.10.6}/tests/utilities/openapi/test_openapi_advanced.py +0 -0
  433. {fastmcp-2.10.4 → fastmcp-2.10.6}/tests/utilities/openapi/test_openapi_fastapi.py +0 -0
  434. {fastmcp-2.10.4 → fastmcp-2.10.6}/tests/utilities/test_cache.py +0 -0
  435. {fastmcp-2.10.4 → fastmcp-2.10.6}/tests/utilities/test_inspect.py +0 -0
  436. {fastmcp-2.10.4 → fastmcp-2.10.6}/tests/utilities/test_json_schema.py +0 -0
  437. {fastmcp-2.10.4 → fastmcp-2.10.6}/tests/utilities/test_json_schema_type.py +0 -0
  438. {fastmcp-2.10.4 → fastmcp-2.10.6}/tests/utilities/test_logging.py +0 -0
  439. {fastmcp-2.10.4 → fastmcp-2.10.6}/tests/utilities/test_mcp_config.py +0 -0
  440. {fastmcp-2.10.4 → fastmcp-2.10.6}/tests/utilities/test_tests.py +0 -0
  441. {fastmcp-2.10.4 → fastmcp-2.10.6}/tests/utilities/test_typeadapter.py +0 -0
  442. {fastmcp-2.10.4 → fastmcp-2.10.6}/tests/utilities/test_types.py +0 -0
  443. {fastmcp-2.10.4 → fastmcp-2.10.6}/uv.lock +0 -0
@@ -27,3 +27,7 @@ tests:
27
27
  - changed-files:
28
28
  - any-glob-to-any-file:
29
29
  - "src/**/*openapi*.py"
30
+ - "src/**/openapi/**"
31
+ - "tests/**/*openapi*.py"
32
+ - "tests/**/openapi/**"
33
+ - "docs/**/*openapi*"
@@ -44,3 +44,5 @@ jobs:
44
44
  run: uv sync --dev
45
45
  - name: Run pre-commit
46
46
  uses: pre-commit/action@v3.0.1
47
+ env:
48
+ SKIP: no-commit-to-branch
@@ -46,5 +46,28 @@ jobs:
46
46
  - name: Install FastMCP
47
47
  run: uv sync --locked
48
48
 
49
- - name: Run tests
50
- run: uv run pytest tests
49
+ - name: Run tests (excluding integration)
50
+ run: uv run pytest tests -m "not integration"
51
+
52
+ run_integration_tests:
53
+ name: "Run integration tests"
54
+ runs-on: ubuntu-latest
55
+ timeout-minutes: 10
56
+
57
+ steps:
58
+ - uses: actions/checkout@v4
59
+
60
+ - name: Install uv
61
+ uses: astral-sh/setup-uv@v6
62
+ with:
63
+ enable-cache: true
64
+ cache-dependency-glob: "uv.lock"
65
+ python-version: "3.10"
66
+
67
+ - name: Install FastMCP
68
+ run: uv sync --locked
69
+
70
+ - name: Run integration tests
71
+ run: uv run pytest tests -m "integration"
72
+ env:
73
+ FASTMCP_GITHUB_TOKEN: ${{ secrets.FASTMCP_GITHUB_TOKEN }}
@@ -60,3 +60,6 @@ dmypy.json
60
60
  *.sqlite
61
61
  *.db
62
62
  *.ddb
63
+
64
+ # Claude worktree management
65
+ .claude-wt/worktrees
@@ -27,3 +27,9 @@ repos:
27
27
  hooks:
28
28
  - id: pyright-pretty
29
29
  files: ^src/|^tests/
30
+
31
+ - repo: https://github.com/pre-commit/pre-commit-hooks
32
+ rev: v4.3.0
33
+ hooks:
34
+ - id: no-commit-to-branch
35
+ args: [--branch, main]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fastmcp
3
- Version: 2.10.4
3
+ Version: 2.10.6
4
4
  Summary: The fast, Pythonic way to build MCP servers and clients.
5
5
  Project-URL: Homepage, https://gofastmcp.com
6
6
  Project-URL: Repository, https://github.com/jlowin/fastmcp
@@ -38,7 +38,7 @@ Description-Content-Type: text/markdown
38
38
 
39
39
  <strong>The fast, Pythonic way to build MCP servers and clients.</strong>
40
40
 
41
- *FastMCP is made with 💙 by [Prefect](https://www.prefect.io/)*
41
+ *FastMCP is made with ☕️ by [Prefect](https://www.prefect.io/)*
42
42
 
43
43
  [![Docs](https://img.shields.io/badge/docs-gofastmcp.com-blue)](https://gofastmcp.com)
44
44
  [![PyPI - Version](https://img.shields.io/pypi/v/fastmcp.svg)](https://pypi.org/project/fastmcp)
@@ -5,7 +5,7 @@
5
5
 
6
6
  <strong>The fast, Pythonic way to build MCP servers and clients.</strong>
7
7
 
8
- *FastMCP is made with 💙 by [Prefect](https://www.prefect.io/)*
8
+ *FastMCP is made with ☕️ by [Prefect](https://www.prefect.io/)*
9
9
 
10
10
  [![Docs](https://img.shields.io/badge/docs-gofastmcp.com-blue)](https://gofastmcp.com)
11
11
  [![PyPI - Version](https://img.shields.io/pypi/v/fastmcp.svg)](https://pypi.org/project/fastmcp)
@@ -0,0 +1,246 @@
1
+ # FastMCP OpenAPI Integration
2
+
3
+ This document explains how FastMCP's OpenAPI integration works, what features are supported, and how to extend it. The OpenAPI functionality is split across two main files:
4
+
5
+ - `server/openapi.py` - High-level FastMCP server implementation and MCP component creation
6
+ - `utilities/openapi.py` - Low-level OpenAPI parsing and intermediate representation
7
+
8
+ ## Architecture Overview
9
+
10
+ ```
11
+ OpenAPI Spec → Parse → HTTPRoute IR → Create MCP Components → FastMCP Server
12
+ ```
13
+
14
+ ### 1. Parsing Phase (`utilities/openapi.py`)
15
+
16
+ OpenAPI specifications are parsed into an intermediate representation (IR) that normalizes differences between OpenAPI 3.0 and 3.1:
17
+
18
+ - **Input**: Raw OpenAPI spec (dict)
19
+ - **Output**: List of `HTTPRoute` objects with normalized parameter information
20
+ - **Key Classes**:
21
+ - `HTTPRoute` - Represents a single operation
22
+ - `ParameterInfo` - Represents a parameter with location, style, explode, etc.
23
+ - `RequestBodyInfo` - Represents request body information
24
+ - `ResponseInfo` - Represents response information
25
+
26
+ ### 2. Component Creation Phase (`server/openapi.py`)
27
+
28
+ HTTPRoute objects are converted into FastMCP components based on route mapping rules:
29
+
30
+ - **Tools** (`OpenAPITool`) - HTTP operations that can be called
31
+ - **Resources** (`OpenAPIResource`) - HTTP endpoints that return data
32
+ - **Resource Templates** (`OpenAPIResourceTemplate`) - Parameterized resources
33
+
34
+ ## Parameter Handling
35
+
36
+ FastMCP supports various OpenAPI parameter serialization styles and formats:
37
+
38
+ ### Supported Parameter Locations
39
+ - `query` - Query string parameters
40
+ - `path` - Path parameters
41
+ - `header` - HTTP headers
42
+ - `cookie` - Cookie parameters (parsed but not used in requests)
43
+
44
+ ### Supported Parameter Styles
45
+
46
+ #### Query Parameters
47
+ - **`form`** (default) - Standard query parameter format
48
+ - `explode=true` (default): `?tags=red&tags=blue`
49
+ - `explode=false`: `?tags=red,blue`
50
+ - **`deepObject`** - Object parameters with bracket notation
51
+ - `explode=true`: `?filter[name]=John&filter[age]=30`
52
+ - `explode=false`: Falls back to JSON string (non-standard, logs warning)
53
+
54
+ #### Path Parameters
55
+ - **`simple`** (default) - Comma-separated for arrays: `/users/1,2,3`
56
+
57
+ #### Header Parameters
58
+ - **`simple`** (default) - Standard header format
59
+
60
+ ### Parameter Type Support
61
+
62
+ #### Arrays
63
+ - String arrays with `explode=true/false`
64
+ - Number arrays with `explode=true/false`
65
+ - Boolean arrays with `explode=true/false`
66
+ - Complex object arrays (basic support, may not handle all cases)
67
+
68
+ #### Objects
69
+ - Objects with `deepObject` style and `explode=true`
70
+ - Objects with other styles fall back to JSON serialization
71
+
72
+ #### Primitives
73
+ - Strings, numbers, booleans
74
+ - Enums
75
+ - Default values
76
+
77
+ ## Request Body Handling
78
+
79
+ ### Supported Content Types
80
+ - `application/json` - JSON request bodies
81
+
82
+ ### Schema Support
83
+ - Object schemas with properties
84
+ - Array schemas
85
+ - Primitive schemas
86
+ - Schema references (`$ref` to local schemas only)
87
+ - Required properties
88
+ - Default values
89
+
90
+ ## Response Handling
91
+
92
+ ### Content Type Detection
93
+ - `application/json` - Parsed as JSON
94
+ - `text/*` - Returned as text
95
+ - `application/xml` - Returned as text
96
+ - Other types - Returned as binary
97
+
98
+ ### Output Schema Generation
99
+ - Success response schemas (200, 201, 202, 204)
100
+ - Object response wrapping for MCP compliance
101
+ - Schema compression (removes unused `$defs`)
102
+
103
+ ## Route Mapping
104
+
105
+ Routes are mapped to MCP component types using `RouteMap` configurations:
106
+
107
+ ```python
108
+ RouteMap(
109
+ methods=["GET", "POST"], # HTTP methods to match
110
+ pattern=r"/api/users/.*", # Regex pattern for path
111
+ mcp_type=MCPType.RESOURCE_TEMPLATE, # Target component type
112
+ tags={"user"}, # OpenAPI tags to match (AND condition)
113
+ mcp_tags={"fastmcp-user"} # Tags to add to created components
114
+ )
115
+ ```
116
+
117
+ ### Default Behavior
118
+ - All routes become **Tools** by default
119
+ - Use route maps to override specific patterns
120
+
121
+ ### Component Types
122
+ - `MCPType.TOOL` - Callable operations
123
+ - `MCPType.RESOURCE` - Static data endpoints
124
+ - `MCPType.RESOURCE_TEMPLATE` - Parameterized data endpoints
125
+ - `MCPType.EXCLUDE` - Skip route entirely
126
+
127
+ ## Known Limitations & Edge Cases
128
+
129
+ ### Parameter Edge Cases
130
+ 1. **Parameter Name Collisions** - When path/query parameters have same names as request body properties, non-body parameters get `__location` suffixes
131
+ 2. **Complex Array Serialization** - Limited support for arrays containing objects
132
+ 3. **Cookie Parameters** - Parsed but not used in requests
133
+ 4. **Non-standard Combinations** - e.g., `deepObject` with `explode=false`
134
+
135
+ ### Request Body Edge Cases
136
+ 1. **Content Type Priority** - Only first available content type is used
137
+ 2. **Nested Objects** - Deep nesting may not serialize correctly
138
+ 3. **Binary Content** - No support for file uploads or binary data
139
+
140
+ ### Response Edge Cases
141
+ 1. **Multiple Content Types** - Only JSON-compatible types are used for output schemas
142
+ 2. **Error Responses** - Not used for MCP output schema generation
143
+ 3. **Response Headers** - Not captured or exposed
144
+
145
+ ### Schema Edge Cases
146
+ 1. **External References** - `$ref` to external files not supported
147
+ 2. **Circular References** - May cause issues in schema processing
148
+ 3. **Polymorphism** - `oneOf`/`anyOf`/`allOf` limited support
149
+
150
+ ## Debugging Tips
151
+
152
+ ### Common Issues
153
+ 1. **"Unknown tool/resource"** - Check route mapping configuration
154
+ 2. **Parameter not found** - Check for name collisions or incorrect style/explode
155
+ 3. **Invalid request format** - Check parameter serialization and content types
156
+ 4. **Schema validation errors** - Check for external refs or complex schemas
157
+
158
+ ### Debugging Tools
159
+ ```python
160
+ # Parse routes to inspect intermediate representation
161
+ routes = parse_openapi_to_http_routes(openapi_spec)
162
+ for route in routes:
163
+ print(f"{route.method} {route.path}")
164
+ for param in route.parameters:
165
+ print(f" {param.name} ({param.location}): style={param.style}, explode={param.explode}")
166
+
167
+ # Check component creation
168
+ server = FastMCP.from_openapi(openapi_spec, client)
169
+ tools = await server.get_tools()
170
+ print(f"Created {len(tools)} tools: {list(tools.keys())}")
171
+ ```
172
+
173
+ ### Logging
174
+ - Set `FASTMCP_LOG_LEVEL=DEBUG` to see detailed parameter processing
175
+ - Look for warnings about non-standard parameter combinations
176
+ - Check for schema parsing errors in logs
177
+
178
+ ## Extension Points
179
+
180
+ ### Adding New Parameter Styles
181
+ 1. Add style handling in `utilities/openapi.py` - `ParameterInfo` class
182
+ 2. Implement serialization logic in `server/openapi.py` - `OpenAPITool.run()`
183
+ 3. Add tests for parsing and serialization
184
+
185
+ ### Adding New Content Types
186
+ 1. Extend request body handling in `OpenAPITool.run()`
187
+ 2. Add response parsing logic for new types
188
+ 3. Update content type priority in utilities
189
+
190
+ ### Custom Route Mapping
191
+ Use `route_map_fn` for complex routing logic:
192
+
193
+ ```python
194
+ def custom_mapper(route: HTTPRoute, current_type: MCPType) -> MCPType:
195
+ if route.path.startswith("/admin"):
196
+ return MCPType.EXCLUDE
197
+ return current_type
198
+
199
+ server = FastMCP.from_openapi(spec, client, route_map_fn=custom_mapper)
200
+ ```
201
+
202
+ ## Testing Patterns
203
+
204
+ ### Unit Tests
205
+ - Test parameter parsing with various styles/explode combinations
206
+ - Test route mapping with different patterns and tags
207
+ - Test schema generation and compression
208
+
209
+ ### Integration Tests
210
+ - Mock HTTP client to verify actual request parameters
211
+ - Test end-to-end component creation and execution
212
+ - Test error handling and edge cases
213
+
214
+ ### Example Test Pattern
215
+ ```python
216
+ async def test_parameter_style():
217
+ # 1. Create OpenAPI spec with specific parameter configuration
218
+ spec = {"openapi": "3.1.0", ...}
219
+
220
+ # 2. Parse and create components
221
+ routes = parse_openapi_to_http_routes(spec)
222
+ tool = OpenAPITool(mock_client, routes[0], ...)
223
+
224
+ # 3. Execute and verify request parameters
225
+ await tool.run({"param": "value"})
226
+ actual_params = mock_client.request.call_args.kwargs["params"]
227
+ assert actual_params == expected_params
228
+ ```
229
+
230
+ ## Testing
231
+
232
+ OpenAPI functionality is tested across multiple files in `tests/server/openapi/`:
233
+
234
+ - `test_basic_functionality.py` - Core component creation and execution
235
+ - `test_explode_integration.py` - Parameter explode behavior
236
+ - `test_deepobject_style.py` - DeepObject style parameter encoding
237
+ - `test_parameter_collisions.py` - Parameter name collision handling
238
+ - `test_openapi_path_parameters.py` - Path parameter serialization
239
+ - `test_configuration.py` - Route mapping and MCP names
240
+ - `test_description_propagation.py` - Schema and description handling
241
+
242
+ When adding new OpenAPI features, create focused test files rather than adding to existing monolithic files.
243
+
244
+ ---
245
+
246
+ *This document should be updated when new OpenAPI features are added or when edge cases are discovered and addressed.*
@@ -2,6 +2,145 @@
2
2
  icon: "list-check"
3
3
  ---
4
4
 
5
+ <Update label="v2.10.5" description="2025-07-11">
6
+
7
+ ## [v2.10.5: Middle Management](https://github.com/jlowin/fastmcp/releases/tag/v2.10.5)
8
+
9
+ A maintenance release focused on OpenAPI refinements and middleware fixes, plus console improvements.
10
+
11
+ ## What's Changed
12
+ ### Enhancements 🔧
13
+ * Fix Claude Code CLI detection for npm global installations by [@jlowin](https://github.com/jlowin) in [#1106](https://github.com/jlowin/fastmcp/pull/1106)
14
+ * Fix OpenAPI parameter name collisions with location suffixing by [@jlowin](https://github.com/jlowin) in [#1107](https://github.com/jlowin/fastmcp/pull/1107)
15
+ * Add mirrored component support for proxy servers by [@jlowin](https://github.com/jlowin) in [#1105](https://github.com/jlowin/fastmcp/pull/1105)
16
+ ### Fixes 🐞
17
+ * Fix OpenAPI deepObject style parameter encoding by [@jlowin](https://github.com/jlowin) in [#1122](https://github.com/jlowin/fastmcp/pull/1122)
18
+ * xfail when github token is not set ('' or None) by [@jlowin](https://github.com/jlowin) in [#1123](https://github.com/jlowin/fastmcp/pull/1123)
19
+ * fix: replace oneOf with anyOf in OpenAPI output schemas by [@MagnusS0](https://github.com/MagnusS0) in [#1119](https://github.com/jlowin/fastmcp/pull/1119)
20
+ * Fix middleware list result types by [@jlowin](https://github.com/jlowin) in [#1125](https://github.com/jlowin/fastmcp/pull/1125)
21
+ * Improve console width for logo by [@jlowin](https://github.com/jlowin) in [#1126](https://github.com/jlowin/fastmcp/pull/1126)
22
+ ### Docs 📚
23
+ * Improve transport + integration docs by [@jlowin](https://github.com/jlowin) in [#1103](https://github.com/jlowin/fastmcp/pull/1103)
24
+ * Update proxy.mdx by [@coldfire-x](https://github.com/coldfire-x) in [#1108](https://github.com/jlowin/fastmcp/pull/1108)
25
+ ### Other Changes 🦾
26
+ * Update github remote server tests with secret by [@jlowin](https://github.com/jlowin) in [#1112](https://github.com/jlowin/fastmcp/pull/1112)
27
+
28
+ ## New Contributors
29
+ * [@coldfire-x](https://github.com/coldfire-x) made their first contribution in [#1108](https://github.com/jlowin/fastmcp/pull/1108)
30
+ * [@MagnusS0](https://github.com/MagnusS0) made their first contribution in [#1119](https://github.com/jlowin/fastmcp/pull/1119)
31
+
32
+ **Full Changelog**: [v2.10.4...v2.10.5](https://github.com/jlowin/fastmcp/compare/v2.10.4...v2.10.5)
33
+
34
+ </Update>
35
+
36
+ <Update label="v2.10.4" description="2025-07-09">
37
+
38
+ ## [v2.10.4: Transport-ation](https://github.com/jlowin/fastmcp/releases/tag/v2.10.4)
39
+
40
+ A quick fix to ensure the CLI accepts "streamable-http" as a valid transport option.
41
+
42
+ ## What's Changed
43
+ ### Fixes 🐞
44
+ * Ensure the CLI accepts "streamable-http" as a valid transport by [@jlowin](https://github.com/jlowin) in [#1099](https://github.com/jlowin/fastmcp/pull/1099)
45
+
46
+ **Full Changelog**: [v2.10.3...v2.10.4](https://github.com/jlowin/fastmcp/compare/v2.10.3...v2.10.4)
47
+
48
+ </Update>
49
+
50
+ <Update label="v2.10.3" description="2025-07-09">
51
+
52
+ ## [v2.10.3: CLI Me a River](https://github.com/jlowin/fastmcp/releases/tag/v2.10.3)
53
+
54
+ A major CLI overhaul featuring a complete refactor from typer to cyclopts, new IDE integrations, and comprehensive OpenAPI improvements.
55
+
56
+ ## What's Changed
57
+ ### New Features 🎉
58
+ * Refactor CLI from typer to cyclopts and add comprehensive tests by [@jlowin](https://github.com/jlowin) in [#1062](https://github.com/jlowin/fastmcp/pull/1062)
59
+ * Add output schema support for OpenAPI tools by [@jlowin](https://github.com/jlowin) in [#1073](https://github.com/jlowin/fastmcp/pull/1073)
60
+ ### Enhancements 🔧
61
+ * Add Cursor support via CLI integration by [@jlowin](https://github.com/jlowin) in [#1052](https://github.com/jlowin/fastmcp/pull/1052)
62
+ * Add Claude Code install integration by [@jlowin](https://github.com/jlowin) in [#1053](https://github.com/jlowin/fastmcp/pull/1053)
63
+ * Generate MCP JSON config output from CLI as new `fastmcp install` command by [@jlowin](https://github.com/jlowin) in [#1056](https://github.com/jlowin/fastmcp/pull/1056)
64
+ * Use isawaitable instead of iscoroutine by [@jlowin](https://github.com/jlowin) in [#1059](https://github.com/jlowin/fastmcp/pull/1059)
65
+ * feat: Add `--path` Option to CLI for HTTP/SSE Route by [@davidbk-legit](https://github.com/davidbk-legit) in [#1087](https://github.com/jlowin/fastmcp/pull/1087)
66
+ * Fix concurrent proxy client operations with session isolation by [@jlowin](https://github.com/jlowin) in [#1083](https://github.com/jlowin/fastmcp/pull/1083)
67
+ ### Fixes 🐞
68
+ * Refactor Client context management to avoid concurrency issue by [@hopeful0](https://github.com/hopeful0) in [#1054](https://github.com/jlowin/fastmcp/pull/1054)
69
+ * Keep json schema $defs on transform by [@strawgate](https://github.com/strawgate) in [#1066](https://github.com/jlowin/fastmcp/pull/1066)
70
+ * Ensure fastmcp version copy is plaintext by [@jlowin](https://github.com/jlowin) in [#1071](https://github.com/jlowin/fastmcp/pull/1071)
71
+ * Fix single-element list unwrapping in tool content by [@jlowin](https://github.com/jlowin) in [#1074](https://github.com/jlowin/fastmcp/pull/1074)
72
+ * Fix max recursion error when pruning OpenAPI definitions by [@dimitribarbot](https://github.com/dimitribarbot) in [#1092](https://github.com/jlowin/fastmcp/pull/1092)
73
+ * Fix OpenAPI tool name registration when modified by mcp_component_fn by [@jlowin](https://github.com/jlowin) in [#1096](https://github.com/jlowin/fastmcp/pull/1096)
74
+ ### Docs 📚
75
+ * Docs: add example of more concise way to use bearer auth by [@neilconway](https://github.com/neilconway) in [#1055](https://github.com/jlowin/fastmcp/pull/1055)
76
+ * Update favicon by [@jlowin](https://github.com/jlowin) in [#1058](https://github.com/jlowin/fastmcp/pull/1058)
77
+ * Update environment note by [@jlowin](https://github.com/jlowin) in [#1075](https://github.com/jlowin/fastmcp/pull/1075)
78
+ * Add fastmcp version --copy documentation by [@jlowin](https://github.com/jlowin) in [#1076](https://github.com/jlowin/fastmcp/pull/1076)
79
+ ### Other Changes 🦾
80
+ * Remove asserts and add documentation following #1054 by [@jlowin](https://github.com/jlowin) in [#1057](https://github.com/jlowin/fastmcp/pull/1057)
81
+ * Add --copy flag for fastmcp version by [@jlowin](https://github.com/jlowin) in [#1063](https://github.com/jlowin/fastmcp/pull/1063)
82
+ * Fix docstring format for fastmcp.client.Client by [@neilconway](https://github.com/neilconway) in [#1094](https://github.com/jlowin/fastmcp/pull/1094)
83
+
84
+ ## New Contributors
85
+ * [@neilconway](https://github.com/neilconway) made their first contribution in [#1055](https://github.com/jlowin/fastmcp/pull/1055)
86
+ * [@davidbk-legit](https://github.com/davidbk-legit) made their first contribution in [#1087](https://github.com/jlowin/fastmcp/pull/1087)
87
+ * [@dimitribarbot](https://github.com/dimitribarbot) made their first contribution in [#1092](https://github.com/jlowin/fastmcp/pull/1092)
88
+
89
+ **Full Changelog**: [v2.10.2...v2.10.3](https://github.com/jlowin/fastmcp/compare/v2.10.2...v2.10.3)
90
+
91
+ </Update>
92
+
93
+ <Update label="v2.10.2" description="2025-07-05">
94
+
95
+ ## [v2.10.2: Forward March](https://github.com/jlowin/fastmcp/releases/tag/v2.10.2)
96
+
97
+ The headline feature of this release is the ability to "forward" advanced MCP interactions like logging, progress, and elicitation through proxy servers. If the remote server requests an elicitation, the proxy client will pass that request to the new, "ultimate" client.
98
+
99
+ ## What's Changed
100
+ ### New Features 🎉
101
+ * Proxy support advanced MCP features by [@hopeful0](https://github.com/hopeful0) in [#1022](https://github.com/jlowin/fastmcp/pull/1022)
102
+ ### Enhancements 🔧
103
+ * Re-add splash screen by [@jlowin](https://github.com/jlowin) in [#1027](https://github.com/jlowin/fastmcp/pull/1027)
104
+ * Reduce banner padding by [@jlowin](https://github.com/jlowin) in [#1030](https://github.com/jlowin/fastmcp/pull/1030)
105
+ * Allow per-server timeouts in MCPConfig by [@cegersdoerfer](https://github.com/cegersdoerfer) in [#1031](https://github.com/jlowin/fastmcp/pull/1031)
106
+ * Support 'scp' claim for OAuth scopes in BearerAuthProvider by [@jlowin](https://github.com/jlowin) in [#1033](https://github.com/jlowin/fastmcp/pull/1033)
107
+ * Add path expansion to image/audio/file by [@jlowin](https://github.com/jlowin) in [#1038](https://github.com/jlowin/fastmcp/pull/1038)
108
+ * Ensure multi-client configurations use new ProxyClient by [@jlowin](https://github.com/jlowin) in [#1045](https://github.com/jlowin/fastmcp/pull/1045)
109
+ ### Fixes 🐞
110
+ * Expose stateless_http kwarg for mcp.run() by [@jlowin](https://github.com/jlowin) in [#1018](https://github.com/jlowin/fastmcp/pull/1018)
111
+ * Avoid propagating logs by [@jlowin](https://github.com/jlowin) in [#1042](https://github.com/jlowin/fastmcp/pull/1042)
112
+ ### Docs 📚
113
+ * Clean up docs by [@jlowin](https://github.com/jlowin) in [#1028](https://github.com/jlowin/fastmcp/pull/1028)
114
+ * Docs: clarify server URL paths for ChatGPT integration by [@thap2331](https://github.com/thap2331) in [#1017](https://github.com/jlowin/fastmcp/pull/1017)
115
+ ### Other Changes 🦾
116
+ * Split giant openapi test file into smaller files by [@jlowin](https://github.com/jlowin) in [#1034](https://github.com/jlowin/fastmcp/pull/1034)
117
+ * Add comprehensive OpenAPI 3.0 vs 3.1 compatibility tests by [@jlowin](https://github.com/jlowin) in [#1035](https://github.com/jlowin/fastmcp/pull/1035)
118
+ * Update banner and use console.log by [@jlowin](https://github.com/jlowin) in [#1041](https://github.com/jlowin/fastmcp/pull/1041)
119
+
120
+ ## New Contributors
121
+ * [@cegersdoerfer](https://github.com/cegersdoerfer) made their first contribution in [#1031](https://github.com/jlowin/fastmcp/pull/1031)
122
+ * [@hopeful0](https://github.com/hopeful0) made their first contribution in [#1022](https://github.com/jlowin/fastmcp/pull/1022)
123
+ * [@thap2331](https://github.com/thap2331) made their first contribution in [#1017](https://github.com/jlowin/fastmcp/pull/1017)
124
+
125
+ **Full Changelog**: [v2.10.1...v2.10.2](https://github.com/jlowin/fastmcp/compare/v2.10.1...v2.10.2)
126
+
127
+ </Update>
128
+
129
+ <Update label="v2.10.1" description="2025-07-02">
130
+
131
+ ## [v2.10.1: Revert to Sender](https://github.com/jlowin/fastmcp/releases/tag/v2.10.1)
132
+
133
+ A quick patch to revert the CLI banner that was added in v2.10.0.
134
+
135
+ ## What's Changed
136
+ ### Docs 📚
137
+ * Update changelog.mdx by [@jlowin](https://github.com/jlowin) in [#1009](https://github.com/jlowin/fastmcp/pull/1009)
138
+ * Revert "Add CLI banner" by [@jlowin](https://github.com/jlowin) in [#1011](https://github.com/jlowin/fastmcp/pull/1011)
139
+
140
+ **Full Changelog**: [v2.10.0...v2.10.1](https://github.com/jlowin/fastmcp/compare/v2.10.0...v2.10.1)
141
+
142
+ </Update>
143
+
5
144
  <Update label="v2.10.0" description="2024-07-01">
6
145
 
7
146
  ## [v2.10.0: Great Spec-tations](https://github.com/jlowin/fastmcp/releases/tag/v2.10.0)