fastmcp 2.10.5__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 (438) hide show
  1. {fastmcp-2.10.5 → fastmcp-2.10.6}/.github/workflows/run-static.yml +2 -0
  2. {fastmcp-2.10.5 → fastmcp-2.10.6}/.github/workflows/run-tests.yml +23 -2
  3. {fastmcp-2.10.5 → fastmcp-2.10.6}/.pre-commit-config.yaml +6 -0
  4. {fastmcp-2.10.5 → fastmcp-2.10.6}/PKG-INFO +2 -2
  5. {fastmcp-2.10.5 → fastmcp-2.10.6}/README.md +1 -1
  6. {fastmcp-2.10.5 → fastmcp-2.10.6}/docs/changelog.mdx +139 -0
  7. {fastmcp-2.10.5 → fastmcp-2.10.6}/docs/docs.json +40 -7
  8. fastmcp-2.10.6/docs/integrations/eunomia-authorization.mdx +134 -0
  9. {fastmcp-2.10.5 → fastmcp-2.10.6}/docs/integrations/mcp-json-configuration.mdx +59 -49
  10. {fastmcp-2.10.5 → fastmcp-2.10.6}/docs/patterns/cli.mdx +21 -19
  11. {fastmcp-2.10.5 → fastmcp-2.10.6}/docs/python-sdk/fastmcp-cli-claude.mdx +2 -2
  12. fastmcp-2.10.6/docs/python-sdk/fastmcp-cli-cli.mdx +79 -0
  13. fastmcp-2.10.6/docs/python-sdk/fastmcp-cli-install-__init__.mdx +9 -0
  14. fastmcp-2.10.6/docs/python-sdk/fastmcp-cli-install-claude_code.mdx +68 -0
  15. fastmcp-2.10.6/docs/python-sdk/fastmcp-cli-install-claude_desktop.mdx +55 -0
  16. fastmcp-2.10.6/docs/python-sdk/fastmcp-cli-install-cursor.mdx +78 -0
  17. fastmcp-2.10.6/docs/python-sdk/fastmcp-cli-install-mcp_config.mdx +46 -0
  18. fastmcp-2.10.6/docs/python-sdk/fastmcp-cli-install-shared.mdx +31 -0
  19. {fastmcp-2.10.5 → fastmcp-2.10.6}/docs/python-sdk/fastmcp-cli-run.mdx +10 -8
  20. {fastmcp-2.10.5 → fastmcp-2.10.6}/docs/python-sdk/fastmcp-client-auth-bearer.mdx +2 -2
  21. fastmcp-2.10.6/docs/python-sdk/fastmcp-client-auth-oauth.mdx +152 -0
  22. fastmcp-2.10.6/docs/python-sdk/fastmcp-client-client.mdx +499 -0
  23. fastmcp-2.10.6/docs/python-sdk/fastmcp-client-elicitation.mdx +18 -0
  24. fastmcp-2.10.6/docs/python-sdk/fastmcp-client-logging.mdx +20 -0
  25. fastmcp-2.10.6/docs/python-sdk/fastmcp-client-messages.mdx +107 -0
  26. {fastmcp-2.10.5 → fastmcp-2.10.6}/docs/python-sdk/fastmcp-client-oauth_callback.mdx +5 -5
  27. fastmcp-2.10.6/docs/python-sdk/fastmcp-client-progress.mdx +25 -0
  28. {fastmcp-2.10.5 → fastmcp-2.10.6}/docs/python-sdk/fastmcp-client-roots.mdx +2 -2
  29. {fastmcp-2.10.5 → fastmcp-2.10.6}/docs/python-sdk/fastmcp-client-sampling.mdx +1 -1
  30. {fastmcp-2.10.5 → fastmcp-2.10.6}/docs/python-sdk/fastmcp-client-transports.mdx +110 -14
  31. fastmcp-2.10.6/docs/python-sdk/fastmcp-exceptions.mdx +65 -0
  32. fastmcp-2.10.6/docs/python-sdk/fastmcp-mcp_config.mdx +150 -0
  33. fastmcp-2.10.6/docs/python-sdk/fastmcp-prompts-prompt.mdx +114 -0
  34. fastmcp-2.10.6/docs/python-sdk/fastmcp-prompts-prompt_manager.mdx +89 -0
  35. fastmcp-2.10.6/docs/python-sdk/fastmcp-resources-resource.mdx +120 -0
  36. {fastmcp-2.10.5 → fastmcp-2.10.6}/docs/python-sdk/fastmcp-resources-resource_manager.mdx +77 -7
  37. fastmcp-2.10.6/docs/python-sdk/fastmcp-resources-template.mdx +143 -0
  38. fastmcp-2.10.6/docs/python-sdk/fastmcp-resources-types.mdx +134 -0
  39. fastmcp-2.10.6/docs/python-sdk/fastmcp-server-auth-auth.mdx +30 -0
  40. fastmcp-2.10.6/docs/python-sdk/fastmcp-server-auth-providers-bearer.mdx +152 -0
  41. {fastmcp-2.10.5 → fastmcp-2.10.6}/docs/python-sdk/fastmcp-server-auth-providers-bearer_env.mdx +2 -2
  42. fastmcp-2.10.6/docs/python-sdk/fastmcp-server-auth-providers-in_memory.mdx +96 -0
  43. fastmcp-2.10.6/docs/python-sdk/fastmcp-server-context.mdx +293 -0
  44. {fastmcp-2.10.5 → fastmcp-2.10.6}/docs/python-sdk/fastmcp-server-dependencies.mdx +3 -3
  45. fastmcp-2.10.6/docs/python-sdk/fastmcp-server-elicitation.mdx +54 -0
  46. {fastmcp-2.10.5 → fastmcp-2.10.6}/docs/python-sdk/fastmcp-server-http.mdx +8 -8
  47. fastmcp-2.10.6/docs/python-sdk/fastmcp-server-low_level.mdx +18 -0
  48. {fastmcp-2.10.5 → fastmcp-2.10.6}/docs/python-sdk/fastmcp-server-middleware-error_handling.mdx +23 -3
  49. fastmcp-2.10.6/docs/python-sdk/fastmcp-server-middleware-logging.mdx +51 -0
  50. fastmcp-2.10.6/docs/python-sdk/fastmcp-server-middleware-middleware.mdx +108 -0
  51. fastmcp-2.10.6/docs/python-sdk/fastmcp-server-middleware-rate_limiting.mdx +97 -0
  52. fastmcp-2.10.6/docs/python-sdk/fastmcp-server-middleware-timing.mdx +105 -0
  53. fastmcp-2.10.6/docs/python-sdk/fastmcp-server-openapi.mdx +91 -0
  54. fastmcp-2.10.6/docs/python-sdk/fastmcp-server-proxy.mdx +299 -0
  55. {fastmcp-2.10.5 → fastmcp-2.10.6}/docs/python-sdk/fastmcp-server-server.mdx +225 -37
  56. {fastmcp-2.10.5 → fastmcp-2.10.6}/docs/python-sdk/fastmcp-settings.mdx +13 -7
  57. fastmcp-2.10.6/docs/python-sdk/fastmcp-tools-tool.mdx +114 -0
  58. fastmcp-2.10.6/docs/python-sdk/fastmcp-tools-tool_manager.mdx +104 -0
  59. fastmcp-2.10.6/docs/python-sdk/fastmcp-tools-tool_transform.mdx +241 -0
  60. fastmcp-2.10.6/docs/python-sdk/fastmcp-utilities-cache.mdx +30 -0
  61. fastmcp-2.10.6/docs/python-sdk/fastmcp-utilities-cli.mdx +25 -0
  62. fastmcp-2.10.6/docs/python-sdk/fastmcp-utilities-components.mdx +99 -0
  63. {fastmcp-2.10.5 → fastmcp-2.10.6}/docs/python-sdk/fastmcp-utilities-exceptions.mdx +2 -2
  64. {fastmcp-2.10.5 → fastmcp-2.10.6}/docs/python-sdk/fastmcp-utilities-http.mdx +1 -1
  65. fastmcp-2.10.6/docs/python-sdk/fastmcp-utilities-inspect.mdx +94 -0
  66. {fastmcp-2.10.5 → fastmcp-2.10.6}/docs/python-sdk/fastmcp-utilities-json_schema.mdx +1 -1
  67. fastmcp-2.10.6/docs/python-sdk/fastmcp-utilities-json_schema_type.mdx +110 -0
  68. {fastmcp-2.10.5 → fastmcp-2.10.6}/docs/python-sdk/fastmcp-utilities-logging.mdx +2 -2
  69. fastmcp-2.10.6/docs/python-sdk/fastmcp-utilities-openapi.mdx +180 -0
  70. {fastmcp-2.10.5 → fastmcp-2.10.6}/docs/python-sdk/fastmcp-utilities-tests.mdx +12 -2
  71. fastmcp-2.10.6/docs/python-sdk/fastmcp-utilities-types.mdx +137 -0
  72. {fastmcp-2.10.5 → fastmcp-2.10.6}/docs/servers/sampling.mdx +1 -0
  73. {fastmcp-2.10.5 → fastmcp-2.10.6}/pyproject.toml +9 -0
  74. {fastmcp-2.10.5 → fastmcp-2.10.6}/src/fastmcp/__init__.py +7 -2
  75. {fastmcp-2.10.5 → fastmcp-2.10.6}/src/fastmcp/cli/install/__init__.py +2 -2
  76. fastmcp-2.10.5/src/fastmcp/cli/install/mcp_config.py → fastmcp-2.10.6/src/fastmcp/cli/install/mcp_json.py +10 -7
  77. {fastmcp-2.10.5 → fastmcp-2.10.6}/src/fastmcp/prompts/prompt_manager.py +1 -1
  78. {fastmcp-2.10.5 → fastmcp-2.10.6}/src/fastmcp/resources/resource_manager.py +2 -2
  79. {fastmcp-2.10.5 → fastmcp-2.10.6}/src/fastmcp/server/context.py +3 -0
  80. {fastmcp-2.10.5 → fastmcp-2.10.6}/src/fastmcp/server/openapi.py +25 -12
  81. {fastmcp-2.10.5 → fastmcp-2.10.6}/src/fastmcp/server/proxy.py +42 -0
  82. {fastmcp-2.10.5 → fastmcp-2.10.6}/src/fastmcp/server/server.py +2 -3
  83. {fastmcp-2.10.5 → fastmcp-2.10.6}/src/fastmcp/settings.py +10 -12
  84. {fastmcp-2.10.5 → fastmcp-2.10.6}/src/fastmcp/tools/tool.py +5 -3
  85. {fastmcp-2.10.5 → fastmcp-2.10.6}/src/fastmcp/tools/tool_manager.py +1 -1
  86. {fastmcp-2.10.5 → fastmcp-2.10.6}/src/fastmcp/tools/tool_transform.py +10 -3
  87. {fastmcp-2.10.5 → fastmcp-2.10.6}/src/fastmcp/utilities/openapi.py +96 -10
  88. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/cli/test_install.py +2 -2
  89. fastmcp-2.10.6/tests/conftest.py +9 -0
  90. fastmcp-2.10.6/tests/integration_tests/conftest.py +28 -0
  91. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/integration_tests/test_github_mcp_remote.py +1 -0
  92. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/server/openapi/test_openapi_path_parameters.py +148 -0
  93. fastmcp-2.10.6/tests/server/openapi/test_optional_parameters.py +100 -0
  94. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/server/proxy/test_proxy_client.py +1 -0
  95. fastmcp-2.10.6/tests/server/proxy/test_stateful_proxy_client.py +120 -0
  96. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/server/test_mount.py +6 -3
  97. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/tools/test_tool.py +82 -0
  98. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/tools/test_tool_transform.py +85 -0
  99. fastmcp-2.10.5/docs/integrations/eunomia-authorization.mdx +0 -108
  100. fastmcp-2.10.5/docs/python-sdk/fastmcp-cli-cli.mdx +0 -87
  101. fastmcp-2.10.5/docs/python-sdk/fastmcp-client-auth-oauth.mdx +0 -102
  102. fastmcp-2.10.5/docs/python-sdk/fastmcp-client-client.mdx +0 -94
  103. fastmcp-2.10.5/docs/python-sdk/fastmcp-client-logging.mdx +0 -14
  104. fastmcp-2.10.5/docs/python-sdk/fastmcp-client-progress.mdx +0 -8
  105. fastmcp-2.10.5/docs/python-sdk/fastmcp-exceptions.mdx +0 -65
  106. fastmcp-2.10.5/docs/python-sdk/fastmcp-prompts-prompt.mdx +0 -84
  107. fastmcp-2.10.5/docs/python-sdk/fastmcp-prompts-prompt_manager.mdx +0 -43
  108. fastmcp-2.10.5/docs/python-sdk/fastmcp-resources-resource.mdx +0 -90
  109. fastmcp-2.10.5/docs/python-sdk/fastmcp-resources-template.mdx +0 -104
  110. fastmcp-2.10.5/docs/python-sdk/fastmcp-resources-types.mdx +0 -83
  111. fastmcp-2.10.5/docs/python-sdk/fastmcp-server-auth-auth.mdx +0 -10
  112. fastmcp-2.10.5/docs/python-sdk/fastmcp-server-auth-providers-bearer.mdx +0 -69
  113. fastmcp-2.10.5/docs/python-sdk/fastmcp-server-auth-providers-in_memory.mdx +0 -15
  114. fastmcp-2.10.5/docs/python-sdk/fastmcp-server-context.mdx +0 -118
  115. fastmcp-2.10.5/docs/python-sdk/fastmcp-server-middleware-logging.mdx +0 -29
  116. fastmcp-2.10.5/docs/python-sdk/fastmcp-server-middleware-middleware.mdx +0 -56
  117. fastmcp-2.10.5/docs/python-sdk/fastmcp-server-middleware-rate_limiting.mdx +0 -47
  118. fastmcp-2.10.5/docs/python-sdk/fastmcp-server-middleware-timing.mdx +0 -29
  119. fastmcp-2.10.5/docs/python-sdk/fastmcp-server-openapi.mdx +0 -58
  120. fastmcp-2.10.5/docs/python-sdk/fastmcp-server-proxy.mdx +0 -101
  121. fastmcp-2.10.5/docs/python-sdk/fastmcp-tools-tool.mdx +0 -68
  122. fastmcp-2.10.5/docs/python-sdk/fastmcp-tools-tool_manager.mdx +0 -58
  123. fastmcp-2.10.5/docs/python-sdk/fastmcp-tools-tool_transform.mdx +0 -139
  124. fastmcp-2.10.5/docs/python-sdk/fastmcp-utilities-cache.mdx +0 -30
  125. fastmcp-2.10.5/docs/python-sdk/fastmcp-utilities-components.mdx +0 -52
  126. fastmcp-2.10.5/docs/python-sdk/fastmcp-utilities-inspect.mdx +0 -41
  127. fastmcp-2.10.5/docs/python-sdk/fastmcp-utilities-openapi.mdx +0 -118
  128. fastmcp-2.10.5/docs/python-sdk/fastmcp-utilities-types.mdx +0 -112
  129. fastmcp-2.10.5/tests/conftest.py +0 -0
  130. {fastmcp-2.10.5 → fastmcp-2.10.6}/.ccignore +0 -0
  131. {fastmcp-2.10.5 → fastmcp-2.10.6}/.cursor/rules/core-mcp-objects.mdc +0 -0
  132. {fastmcp-2.10.5 → fastmcp-2.10.6}/.github/ISSUE_TEMPLATE/bug.yml +0 -0
  133. {fastmcp-2.10.5 → fastmcp-2.10.6}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  134. {fastmcp-2.10.5 → fastmcp-2.10.6}/.github/ISSUE_TEMPLATE/enhancement.yml +0 -0
  135. {fastmcp-2.10.5 → fastmcp-2.10.6}/.github/dependabot.yml +0 -0
  136. {fastmcp-2.10.5 → fastmcp-2.10.6}/.github/labeler.yml +0 -0
  137. {fastmcp-2.10.5 → fastmcp-2.10.6}/.github/release.yml +0 -0
  138. {fastmcp-2.10.5 → fastmcp-2.10.6}/.github/workflows/labeler.yml +0 -0
  139. {fastmcp-2.10.5 → fastmcp-2.10.6}/.github/workflows/publish.yml +0 -0
  140. {fastmcp-2.10.5 → fastmcp-2.10.6}/.gitignore +0 -0
  141. {fastmcp-2.10.5 → fastmcp-2.10.6}/AGENTS.md +0 -0
  142. {fastmcp-2.10.5 → fastmcp-2.10.6}/CLAUDE.md +0 -0
  143. {fastmcp-2.10.5 → fastmcp-2.10.6}/LICENSE +0 -0
  144. {fastmcp-2.10.5 → fastmcp-2.10.6}/README_OPENAPI.md +0 -0
  145. {fastmcp-2.10.5 → fastmcp-2.10.6}/Windows_Notes.md +0 -0
  146. {fastmcp-2.10.5 → fastmcp-2.10.6}/docs/.cursor/rules/mintlify.mdc +0 -0
  147. {fastmcp-2.10.5 → fastmcp-2.10.6}/docs/assets/favicon.svg +0 -0
  148. {fastmcp-2.10.5 → fastmcp-2.10.6}/docs/assets/images/tutorial-rest-api-result.png +0 -0
  149. {fastmcp-2.10.5 → fastmcp-2.10.6}/docs/assets/updates/release-2-7.png +0 -0
  150. {fastmcp-2.10.5 → fastmcp-2.10.6}/docs/clients/auth/bearer.mdx +0 -0
  151. {fastmcp-2.10.5 → fastmcp-2.10.6}/docs/clients/auth/oauth.mdx +0 -0
  152. {fastmcp-2.10.5 → fastmcp-2.10.6}/docs/clients/client.mdx +0 -0
  153. {fastmcp-2.10.5 → fastmcp-2.10.6}/docs/clients/elicitation.mdx +0 -0
  154. {fastmcp-2.10.5 → fastmcp-2.10.6}/docs/clients/logging.mdx +0 -0
  155. {fastmcp-2.10.5 → fastmcp-2.10.6}/docs/clients/messages.mdx +0 -0
  156. {fastmcp-2.10.5 → fastmcp-2.10.6}/docs/clients/progress.mdx +0 -0
  157. {fastmcp-2.10.5 → fastmcp-2.10.6}/docs/clients/prompts.mdx +0 -0
  158. {fastmcp-2.10.5 → fastmcp-2.10.6}/docs/clients/resources.mdx +0 -0
  159. {fastmcp-2.10.5 → fastmcp-2.10.6}/docs/clients/roots.mdx +0 -0
  160. {fastmcp-2.10.5 → fastmcp-2.10.6}/docs/clients/sampling.mdx +0 -0
  161. {fastmcp-2.10.5 → fastmcp-2.10.6}/docs/clients/tools.mdx +0 -0
  162. {fastmcp-2.10.5 → fastmcp-2.10.6}/docs/clients/transports.mdx +0 -0
  163. {fastmcp-2.10.5 → fastmcp-2.10.6}/docs/community/README.md +0 -0
  164. {fastmcp-2.10.5 → fastmcp-2.10.6}/docs/community/showcase.mdx +0 -0
  165. {fastmcp-2.10.5 → fastmcp-2.10.6}/docs/css/banner.css +0 -0
  166. {fastmcp-2.10.5 → fastmcp-2.10.6}/docs/css/python-sdk.css +0 -0
  167. {fastmcp-2.10.5 → fastmcp-2.10.6}/docs/css/style.css +0 -0
  168. {fastmcp-2.10.5 → fastmcp-2.10.6}/docs/css/version-badge.css +0 -0
  169. {fastmcp-2.10.5 → fastmcp-2.10.6}/docs/deployment/running-server.mdx +0 -0
  170. {fastmcp-2.10.5 → fastmcp-2.10.6}/docs/getting-started/installation.mdx +0 -0
  171. {fastmcp-2.10.5 → fastmcp-2.10.6}/docs/getting-started/quickstart.mdx +0 -0
  172. {fastmcp-2.10.5 → fastmcp-2.10.6}/docs/getting-started/welcome.mdx +0 -0
  173. {fastmcp-2.10.5 → fastmcp-2.10.6}/docs/integrations/anthropic.mdx +0 -0
  174. {fastmcp-2.10.5 → fastmcp-2.10.6}/docs/integrations/chatgpt.mdx +0 -0
  175. {fastmcp-2.10.5 → fastmcp-2.10.6}/docs/integrations/claude-code.mdx +0 -0
  176. {fastmcp-2.10.5 → fastmcp-2.10.6}/docs/integrations/claude-desktop.mdx +0 -0
  177. {fastmcp-2.10.5 → fastmcp-2.10.6}/docs/integrations/cursor-install-mcp.png +0 -0
  178. {fastmcp-2.10.5 → fastmcp-2.10.6}/docs/integrations/cursor.mdx +0 -0
  179. {fastmcp-2.10.5 → fastmcp-2.10.6}/docs/integrations/fastapi.mdx +0 -0
  180. {fastmcp-2.10.5 → fastmcp-2.10.6}/docs/integrations/gemini.mdx +0 -0
  181. {fastmcp-2.10.5 → fastmcp-2.10.6}/docs/integrations/openai.mdx +0 -0
  182. {fastmcp-2.10.5 → fastmcp-2.10.6}/docs/integrations/openapi.mdx +0 -0
  183. {fastmcp-2.10.5 → fastmcp-2.10.6}/docs/integrations/starlette.mdx +0 -0
  184. {fastmcp-2.10.5 → fastmcp-2.10.6}/docs/patterns/contrib.mdx +0 -0
  185. {fastmcp-2.10.5 → fastmcp-2.10.6}/docs/patterns/decorating-methods.mdx +0 -0
  186. {fastmcp-2.10.5 → fastmcp-2.10.6}/docs/patterns/http-requests.mdx +0 -0
  187. {fastmcp-2.10.5 → fastmcp-2.10.6}/docs/patterns/testing.mdx +0 -0
  188. {fastmcp-2.10.5 → fastmcp-2.10.6}/docs/patterns/tool-transformation.mdx +0 -0
  189. {fastmcp-2.10.5 → fastmcp-2.10.6}/docs/python-sdk/fastmcp-cli-__init__.mdx +0 -0
  190. {fastmcp-2.10.5 → fastmcp-2.10.6}/docs/python-sdk/fastmcp-client-__init__.mdx +0 -0
  191. {fastmcp-2.10.5 → fastmcp-2.10.6}/docs/python-sdk/fastmcp-client-auth-__init__.mdx +0 -0
  192. {fastmcp-2.10.5 → fastmcp-2.10.6}/docs/python-sdk/fastmcp-prompts-__init__.mdx +0 -0
  193. {fastmcp-2.10.5 → fastmcp-2.10.6}/docs/python-sdk/fastmcp-resources-__init__.mdx +0 -0
  194. {fastmcp-2.10.5 → fastmcp-2.10.6}/docs/python-sdk/fastmcp-server-__init__.mdx +0 -0
  195. {fastmcp-2.10.5 → fastmcp-2.10.6}/docs/python-sdk/fastmcp-server-auth-__init__.mdx +0 -0
  196. {fastmcp-2.10.5 → fastmcp-2.10.6}/docs/python-sdk/fastmcp-server-auth-providers-__init__.mdx +0 -0
  197. {fastmcp-2.10.5 → fastmcp-2.10.6}/docs/python-sdk/fastmcp-server-middleware-__init__.mdx +0 -0
  198. {fastmcp-2.10.5 → fastmcp-2.10.6}/docs/python-sdk/fastmcp-server-middleware.mdx +0 -0
  199. {fastmcp-2.10.5 → fastmcp-2.10.6}/docs/python-sdk/fastmcp-tools-__init__.mdx +0 -0
  200. {fastmcp-2.10.5 → fastmcp-2.10.6}/docs/python-sdk/fastmcp-utilities-__init__.mdx +0 -0
  201. {fastmcp-2.10.5 → fastmcp-2.10.6}/docs/python-sdk/fastmcp-utilities-mcp_config.mdx +0 -0
  202. {fastmcp-2.10.5 → fastmcp-2.10.6}/docs/servers/auth/bearer.mdx +0 -0
  203. {fastmcp-2.10.5 → fastmcp-2.10.6}/docs/servers/composition.mdx +0 -0
  204. {fastmcp-2.10.5 → fastmcp-2.10.6}/docs/servers/context.mdx +0 -0
  205. {fastmcp-2.10.5 → fastmcp-2.10.6}/docs/servers/elicitation.mdx +0 -0
  206. {fastmcp-2.10.5 → fastmcp-2.10.6}/docs/servers/logging.mdx +0 -0
  207. {fastmcp-2.10.5 → fastmcp-2.10.6}/docs/servers/middleware.mdx +0 -0
  208. {fastmcp-2.10.5 → fastmcp-2.10.6}/docs/servers/progress.mdx +0 -0
  209. {fastmcp-2.10.5 → fastmcp-2.10.6}/docs/servers/prompts.mdx +0 -0
  210. {fastmcp-2.10.5 → fastmcp-2.10.6}/docs/servers/proxy.mdx +0 -0
  211. {fastmcp-2.10.5 → fastmcp-2.10.6}/docs/servers/resources.mdx +0 -0
  212. {fastmcp-2.10.5 → fastmcp-2.10.6}/docs/servers/server.mdx +0 -0
  213. {fastmcp-2.10.5 → fastmcp-2.10.6}/docs/servers/tools.mdx +0 -0
  214. {fastmcp-2.10.5 → fastmcp-2.10.6}/docs/snippets/local-focus.mdx +0 -0
  215. {fastmcp-2.10.5 → fastmcp-2.10.6}/docs/snippets/version-badge.mdx +0 -0
  216. {fastmcp-2.10.5 → fastmcp-2.10.6}/docs/snippets/youtube-embed.mdx +0 -0
  217. {fastmcp-2.10.5 → fastmcp-2.10.6}/docs/tutorials/create-mcp-server.mdx +0 -0
  218. {fastmcp-2.10.5 → fastmcp-2.10.6}/docs/tutorials/mcp.mdx +0 -0
  219. {fastmcp-2.10.5 → fastmcp-2.10.6}/docs/tutorials/rest-api.mdx +0 -0
  220. {fastmcp-2.10.5 → fastmcp-2.10.6}/docs/updates.mdx +0 -0
  221. {fastmcp-2.10.5 → fastmcp-2.10.6}/examples/atproto_mcp/README.md +0 -0
  222. {fastmcp-2.10.5 → fastmcp-2.10.6}/examples/atproto_mcp/demo.py +0 -0
  223. {fastmcp-2.10.5 → fastmcp-2.10.6}/examples/atproto_mcp/pyproject.toml +0 -0
  224. {fastmcp-2.10.5 → fastmcp-2.10.6}/examples/atproto_mcp/src/atproto_mcp/__init__.py +0 -0
  225. {fastmcp-2.10.5 → fastmcp-2.10.6}/examples/atproto_mcp/src/atproto_mcp/__main__.py +0 -0
  226. {fastmcp-2.10.5 → fastmcp-2.10.6}/examples/atproto_mcp/src/atproto_mcp/_atproto/__init__.py +0 -0
  227. {fastmcp-2.10.5 → fastmcp-2.10.6}/examples/atproto_mcp/src/atproto_mcp/_atproto/_client.py +0 -0
  228. {fastmcp-2.10.5 → fastmcp-2.10.6}/examples/atproto_mcp/src/atproto_mcp/_atproto/_posts.py +0 -0
  229. {fastmcp-2.10.5 → fastmcp-2.10.6}/examples/atproto_mcp/src/atproto_mcp/_atproto/_profile.py +0 -0
  230. {fastmcp-2.10.5 → fastmcp-2.10.6}/examples/atproto_mcp/src/atproto_mcp/_atproto/_read.py +0 -0
  231. {fastmcp-2.10.5 → fastmcp-2.10.6}/examples/atproto_mcp/src/atproto_mcp/_atproto/_social.py +0 -0
  232. {fastmcp-2.10.5 → fastmcp-2.10.6}/examples/atproto_mcp/src/atproto_mcp/py.typed +0 -0
  233. {fastmcp-2.10.5 → fastmcp-2.10.6}/examples/atproto_mcp/src/atproto_mcp/server.py +0 -0
  234. {fastmcp-2.10.5 → fastmcp-2.10.6}/examples/atproto_mcp/src/atproto_mcp/settings.py +0 -0
  235. {fastmcp-2.10.5 → fastmcp-2.10.6}/examples/atproto_mcp/src/atproto_mcp/types.py +0 -0
  236. {fastmcp-2.10.5 → fastmcp-2.10.6}/examples/complex_inputs.py +0 -0
  237. {fastmcp-2.10.5 → fastmcp-2.10.6}/examples/config_server.py +0 -0
  238. {fastmcp-2.10.5 → fastmcp-2.10.6}/examples/desktop.py +0 -0
  239. {fastmcp-2.10.5 → fastmcp-2.10.6}/examples/echo.py +0 -0
  240. {fastmcp-2.10.5 → fastmcp-2.10.6}/examples/get_file.py +0 -0
  241. {fastmcp-2.10.5 → fastmcp-2.10.6}/examples/in_memory_proxy_example.py +0 -0
  242. {fastmcp-2.10.5 → fastmcp-2.10.6}/examples/memory.py +0 -0
  243. {fastmcp-2.10.5 → fastmcp-2.10.6}/examples/mount_example.py +0 -0
  244. {fastmcp-2.10.5 → fastmcp-2.10.6}/examples/sampling.py +0 -0
  245. {fastmcp-2.10.5 → fastmcp-2.10.6}/examples/screenshot.py +0 -0
  246. {fastmcp-2.10.5 → fastmcp-2.10.6}/examples/serializer.py +0 -0
  247. {fastmcp-2.10.5 → fastmcp-2.10.6}/examples/simple_echo.py +0 -0
  248. {fastmcp-2.10.5 → fastmcp-2.10.6}/examples/smart_home/README.md +0 -0
  249. {fastmcp-2.10.5 → fastmcp-2.10.6}/examples/smart_home/pyproject.toml +0 -0
  250. {fastmcp-2.10.5 → fastmcp-2.10.6}/examples/smart_home/src/smart_home/__init__.py +0 -0
  251. {fastmcp-2.10.5 → fastmcp-2.10.6}/examples/smart_home/src/smart_home/__main__.py +0 -0
  252. {fastmcp-2.10.5 → fastmcp-2.10.6}/examples/smart_home/src/smart_home/hub.py +0 -0
  253. {fastmcp-2.10.5 → fastmcp-2.10.6}/examples/smart_home/src/smart_home/lights/__init__.py +0 -0
  254. {fastmcp-2.10.5 → fastmcp-2.10.6}/examples/smart_home/src/smart_home/lights/hue_utils.py +0 -0
  255. {fastmcp-2.10.5 → fastmcp-2.10.6}/examples/smart_home/src/smart_home/lights/server.py +0 -0
  256. {fastmcp-2.10.5 → fastmcp-2.10.6}/examples/smart_home/src/smart_home/py.typed +0 -0
  257. {fastmcp-2.10.5 → fastmcp-2.10.6}/examples/smart_home/src/smart_home/settings.py +0 -0
  258. {fastmcp-2.10.5 → fastmcp-2.10.6}/examples/smart_home/uv.lock +0 -0
  259. {fastmcp-2.10.5 → fastmcp-2.10.6}/examples/tags_example.py +0 -0
  260. {fastmcp-2.10.5 → fastmcp-2.10.6}/examples/text_me.py +0 -0
  261. {fastmcp-2.10.5 → fastmcp-2.10.6}/justfile +0 -0
  262. {fastmcp-2.10.5 → fastmcp-2.10.6}/src/fastmcp/cli/__init__.py +0 -0
  263. {fastmcp-2.10.5 → fastmcp-2.10.6}/src/fastmcp/cli/claude.py +0 -0
  264. {fastmcp-2.10.5 → fastmcp-2.10.6}/src/fastmcp/cli/cli.py +0 -0
  265. {fastmcp-2.10.5 → fastmcp-2.10.6}/src/fastmcp/cli/install/claude_code.py +0 -0
  266. {fastmcp-2.10.5 → fastmcp-2.10.6}/src/fastmcp/cli/install/claude_desktop.py +0 -0
  267. {fastmcp-2.10.5 → fastmcp-2.10.6}/src/fastmcp/cli/install/cursor.py +0 -0
  268. {fastmcp-2.10.5 → fastmcp-2.10.6}/src/fastmcp/cli/install/shared.py +0 -0
  269. {fastmcp-2.10.5 → fastmcp-2.10.6}/src/fastmcp/cli/run.py +0 -0
  270. {fastmcp-2.10.5 → fastmcp-2.10.6}/src/fastmcp/client/__init__.py +0 -0
  271. {fastmcp-2.10.5 → fastmcp-2.10.6}/src/fastmcp/client/auth/__init__.py +0 -0
  272. {fastmcp-2.10.5 → fastmcp-2.10.6}/src/fastmcp/client/auth/bearer.py +0 -0
  273. {fastmcp-2.10.5 → fastmcp-2.10.6}/src/fastmcp/client/auth/oauth.py +0 -0
  274. {fastmcp-2.10.5 → fastmcp-2.10.6}/src/fastmcp/client/client.py +0 -0
  275. {fastmcp-2.10.5 → fastmcp-2.10.6}/src/fastmcp/client/elicitation.py +0 -0
  276. {fastmcp-2.10.5 → fastmcp-2.10.6}/src/fastmcp/client/logging.py +0 -0
  277. {fastmcp-2.10.5 → fastmcp-2.10.6}/src/fastmcp/client/messages.py +0 -0
  278. {fastmcp-2.10.5 → fastmcp-2.10.6}/src/fastmcp/client/oauth_callback.py +0 -0
  279. {fastmcp-2.10.5 → fastmcp-2.10.6}/src/fastmcp/client/progress.py +0 -0
  280. {fastmcp-2.10.5 → fastmcp-2.10.6}/src/fastmcp/client/roots.py +0 -0
  281. {fastmcp-2.10.5 → fastmcp-2.10.6}/src/fastmcp/client/sampling.py +0 -0
  282. {fastmcp-2.10.5 → fastmcp-2.10.6}/src/fastmcp/client/transports.py +0 -0
  283. {fastmcp-2.10.5 → fastmcp-2.10.6}/src/fastmcp/contrib/README.md +0 -0
  284. {fastmcp-2.10.5 → fastmcp-2.10.6}/src/fastmcp/contrib/bulk_tool_caller/README.md +0 -0
  285. {fastmcp-2.10.5 → fastmcp-2.10.6}/src/fastmcp/contrib/bulk_tool_caller/__init__.py +0 -0
  286. {fastmcp-2.10.5 → fastmcp-2.10.6}/src/fastmcp/contrib/bulk_tool_caller/bulk_tool_caller.py +0 -0
  287. {fastmcp-2.10.5 → fastmcp-2.10.6}/src/fastmcp/contrib/bulk_tool_caller/example.py +0 -0
  288. {fastmcp-2.10.5 → fastmcp-2.10.6}/src/fastmcp/contrib/component_manager/README.md +0 -0
  289. {fastmcp-2.10.5 → fastmcp-2.10.6}/src/fastmcp/contrib/component_manager/__init__.py +0 -0
  290. {fastmcp-2.10.5 → fastmcp-2.10.6}/src/fastmcp/contrib/component_manager/component_manager.py +0 -0
  291. {fastmcp-2.10.5 → fastmcp-2.10.6}/src/fastmcp/contrib/component_manager/component_service.py +0 -0
  292. {fastmcp-2.10.5 → fastmcp-2.10.6}/src/fastmcp/contrib/component_manager/example.py +0 -0
  293. {fastmcp-2.10.5 → fastmcp-2.10.6}/src/fastmcp/contrib/mcp_mixin/README.md +0 -0
  294. {fastmcp-2.10.5 → fastmcp-2.10.6}/src/fastmcp/contrib/mcp_mixin/__init__.py +0 -0
  295. {fastmcp-2.10.5 → fastmcp-2.10.6}/src/fastmcp/contrib/mcp_mixin/example.py +0 -0
  296. {fastmcp-2.10.5 → fastmcp-2.10.6}/src/fastmcp/contrib/mcp_mixin/mcp_mixin.py +0 -0
  297. {fastmcp-2.10.5 → fastmcp-2.10.6}/src/fastmcp/exceptions.py +0 -0
  298. {fastmcp-2.10.5 → fastmcp-2.10.6}/src/fastmcp/mcp_config.py +0 -0
  299. {fastmcp-2.10.5 → fastmcp-2.10.6}/src/fastmcp/prompts/__init__.py +0 -0
  300. {fastmcp-2.10.5 → fastmcp-2.10.6}/src/fastmcp/prompts/prompt.py +0 -0
  301. {fastmcp-2.10.5 → fastmcp-2.10.6}/src/fastmcp/py.typed +0 -0
  302. {fastmcp-2.10.5 → fastmcp-2.10.6}/src/fastmcp/resources/__init__.py +0 -0
  303. {fastmcp-2.10.5 → fastmcp-2.10.6}/src/fastmcp/resources/resource.py +0 -0
  304. {fastmcp-2.10.5 → fastmcp-2.10.6}/src/fastmcp/resources/template.py +0 -0
  305. {fastmcp-2.10.5 → fastmcp-2.10.6}/src/fastmcp/resources/types.py +0 -0
  306. {fastmcp-2.10.5 → fastmcp-2.10.6}/src/fastmcp/server/__init__.py +0 -0
  307. {fastmcp-2.10.5 → fastmcp-2.10.6}/src/fastmcp/server/auth/__init__.py +0 -0
  308. {fastmcp-2.10.5 → fastmcp-2.10.6}/src/fastmcp/server/auth/auth.py +0 -0
  309. {fastmcp-2.10.5 → fastmcp-2.10.6}/src/fastmcp/server/auth/providers/__init__.py +0 -0
  310. {fastmcp-2.10.5 → fastmcp-2.10.6}/src/fastmcp/server/auth/providers/bearer.py +0 -0
  311. {fastmcp-2.10.5 → fastmcp-2.10.6}/src/fastmcp/server/auth/providers/bearer_env.py +0 -0
  312. {fastmcp-2.10.5 → fastmcp-2.10.6}/src/fastmcp/server/auth/providers/in_memory.py +0 -0
  313. {fastmcp-2.10.5 → fastmcp-2.10.6}/src/fastmcp/server/dependencies.py +0 -0
  314. {fastmcp-2.10.5 → fastmcp-2.10.6}/src/fastmcp/server/elicitation.py +0 -0
  315. {fastmcp-2.10.5 → fastmcp-2.10.6}/src/fastmcp/server/http.py +0 -0
  316. {fastmcp-2.10.5 → fastmcp-2.10.6}/src/fastmcp/server/low_level.py +0 -0
  317. {fastmcp-2.10.5 → fastmcp-2.10.6}/src/fastmcp/server/middleware/__init__.py +0 -0
  318. {fastmcp-2.10.5 → fastmcp-2.10.6}/src/fastmcp/server/middleware/error_handling.py +0 -0
  319. {fastmcp-2.10.5 → fastmcp-2.10.6}/src/fastmcp/server/middleware/logging.py +0 -0
  320. {fastmcp-2.10.5 → fastmcp-2.10.6}/src/fastmcp/server/middleware/middleware.py +0 -0
  321. {fastmcp-2.10.5 → fastmcp-2.10.6}/src/fastmcp/server/middleware/rate_limiting.py +0 -0
  322. {fastmcp-2.10.5 → fastmcp-2.10.6}/src/fastmcp/server/middleware/timing.py +0 -0
  323. {fastmcp-2.10.5 → fastmcp-2.10.6}/src/fastmcp/tools/__init__.py +0 -0
  324. {fastmcp-2.10.5 → fastmcp-2.10.6}/src/fastmcp/utilities/__init__.py +0 -0
  325. {fastmcp-2.10.5 → fastmcp-2.10.6}/src/fastmcp/utilities/cache.py +0 -0
  326. {fastmcp-2.10.5 → fastmcp-2.10.6}/src/fastmcp/utilities/cli.py +0 -0
  327. {fastmcp-2.10.5 → fastmcp-2.10.6}/src/fastmcp/utilities/components.py +0 -0
  328. {fastmcp-2.10.5 → fastmcp-2.10.6}/src/fastmcp/utilities/exceptions.py +0 -0
  329. {fastmcp-2.10.5 → fastmcp-2.10.6}/src/fastmcp/utilities/http.py +0 -0
  330. {fastmcp-2.10.5 → fastmcp-2.10.6}/src/fastmcp/utilities/inspect.py +0 -0
  331. {fastmcp-2.10.5 → fastmcp-2.10.6}/src/fastmcp/utilities/json_schema.py +0 -0
  332. {fastmcp-2.10.5 → fastmcp-2.10.6}/src/fastmcp/utilities/json_schema_type.py +0 -0
  333. {fastmcp-2.10.5 → fastmcp-2.10.6}/src/fastmcp/utilities/logging.py +0 -0
  334. {fastmcp-2.10.5 → fastmcp-2.10.6}/src/fastmcp/utilities/tests.py +0 -0
  335. {fastmcp-2.10.5 → fastmcp-2.10.6}/src/fastmcp/utilities/types.py +0 -0
  336. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/__init__.py +0 -0
  337. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/auth/__init__.py +0 -0
  338. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/auth/providers/test_bearer.py +0 -0
  339. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/auth/providers/test_bearer_env.py +0 -0
  340. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/auth/providers/test_token_verifier.py +0 -0
  341. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/auth/test_oauth_client.py +0 -0
  342. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/cli/__init__.py +0 -0
  343. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/cli/test_cli.py +0 -0
  344. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/cli/test_cursor.py +0 -0
  345. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/cli/test_run.py +0 -0
  346. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/cli/test_shared.py +0 -0
  347. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/client/__init__.py +0 -0
  348. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/client/test_client.py +0 -0
  349. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/client/test_elicitation.py +0 -0
  350. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/client/test_logs.py +0 -0
  351. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/client/test_notifications.py +0 -0
  352. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/client/test_openapi.py +0 -0
  353. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/client/test_progress.py +0 -0
  354. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/client/test_roots.py +0 -0
  355. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/client/test_sampling.py +0 -0
  356. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/client/test_sse.py +0 -0
  357. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/client/test_stdio.py +0 -0
  358. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/client/test_streamable_http.py +0 -0
  359. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/contrib/__init__.py +0 -0
  360. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/contrib/test_bulk_tool_caller.py +0 -0
  361. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/contrib/test_component_manager.py +0 -0
  362. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/contrib/test_mcp_mixin.py +0 -0
  363. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/deprecated/__init__.py +0 -0
  364. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/deprecated/test_deprecated.py +0 -0
  365. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/deprecated/test_mount_import_arg_order.py +0 -0
  366. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/deprecated/test_mount_separators.py +0 -0
  367. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/deprecated/test_proxy_client.py +0 -0
  368. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/deprecated/test_resource_prefixes.py +0 -0
  369. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/deprecated/test_route_type_ignore.py +0 -0
  370. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/deprecated/test_settings.py +0 -0
  371. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/integration_tests/__init__.py +0 -0
  372. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/prompts/__init__.py +0 -0
  373. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/prompts/test_prompt.py +0 -0
  374. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/prompts/test_prompt_manager.py +0 -0
  375. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/resources/__init__.py +0 -0
  376. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/resources/test_file_resources.py +0 -0
  377. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/resources/test_function_resources.py +0 -0
  378. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/resources/test_resource_manager.py +0 -0
  379. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/resources/test_resource_template.py +0 -0
  380. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/resources/test_resources.py +0 -0
  381. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/server/__init__.py +0 -0
  382. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/server/http/__init__.py +0 -0
  383. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/server/http/test_auth_setup.py +0 -0
  384. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/server/http/test_bearer_auth_backend.py +0 -0
  385. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/server/http/test_custom_routes.py +0 -0
  386. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/server/http/test_http_dependencies.py +0 -0
  387. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/server/http/test_http_middleware.py +0 -0
  388. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/server/middleware/__init__.py +0 -0
  389. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/server/middleware/test_error_handling.py +0 -0
  390. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/server/middleware/test_logging.py +0 -0
  391. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/server/middleware/test_middleware.py +0 -0
  392. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/server/middleware/test_rate_limiting.py +0 -0
  393. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/server/middleware/test_timing.py +0 -0
  394. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/server/openapi/__init__.py +0 -0
  395. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/server/openapi/conftest.py +0 -0
  396. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/server/openapi/test_advanced_behavior.py +0 -0
  397. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/server/openapi/test_basic_functionality.py +0 -0
  398. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/server/openapi/test_configuration.py +0 -0
  399. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/server/openapi/test_deepobject_style.py +0 -0
  400. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/server/openapi/test_description_propagation.py +0 -0
  401. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/server/openapi/test_explode_integration.py +0 -0
  402. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/server/openapi/test_openapi_compatibility.py +0 -0
  403. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/server/openapi/test_parameter_collisions.py +0 -0
  404. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/server/openapi/test_route_map_fn.py +0 -0
  405. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/server/proxy/__init__.py +0 -0
  406. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/server/proxy/test_proxy_server.py +0 -0
  407. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/server/test_app_state.py +0 -0
  408. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/server/test_auth_integration.py +0 -0
  409. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/server/test_context.py +0 -0
  410. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/server/test_file_server.py +0 -0
  411. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/server/test_import_server.py +0 -0
  412. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/server/test_logging.py +0 -0
  413. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/server/test_resource_prefix_formats.py +0 -0
  414. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/server/test_run_server.py +0 -0
  415. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/server/test_server.py +0 -0
  416. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/server/test_server_interactions.py +0 -0
  417. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/server/test_tool_annotations.py +0 -0
  418. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/server/test_tool_exclude_args.py +0 -0
  419. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/test_examples.py +0 -0
  420. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/tools/__init__.py +0 -0
  421. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/tools/test_tool_manager.py +0 -0
  422. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/utilities/__init__.py +0 -0
  423. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/utilities/openapi/__init__.py +0 -0
  424. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/utilities/openapi/conftest.py +0 -0
  425. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/utilities/openapi/test_openapi.py +0 -0
  426. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/utilities/openapi/test_openapi_advanced.py +0 -0
  427. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/utilities/openapi/test_openapi_fastapi.py +0 -0
  428. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/utilities/openapi/test_openapi_output_schemas.py +0 -0
  429. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/utilities/test_cache.py +0 -0
  430. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/utilities/test_inspect.py +0 -0
  431. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/utilities/test_json_schema.py +0 -0
  432. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/utilities/test_json_schema_type.py +0 -0
  433. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/utilities/test_logging.py +0 -0
  434. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/utilities/test_mcp_config.py +0 -0
  435. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/utilities/test_tests.py +0 -0
  436. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/utilities/test_typeadapter.py +0 -0
  437. {fastmcp-2.10.5 → fastmcp-2.10.6}/tests/utilities/test_types.py +0 -0
  438. {fastmcp-2.10.5 → fastmcp-2.10.6}/uv.lock +0 -0
@@ -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,7 +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"
51
72
  env:
52
73
  FASTMCP_GITHUB_TOKEN: ${{ secrets.FASTMCP_GITHUB_TOKEN }}
@@ -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.5
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)
@@ -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)
@@ -65,7 +65,10 @@
65
65
  {
66
66
  "group": "Essentials",
67
67
  "icon": "cube",
68
- "pages": ["servers/server", "deployment/running-server"]
68
+ "pages": [
69
+ "servers/server",
70
+ "deployment/running-server"
71
+ ]
69
72
  },
70
73
  {
71
74
  "group": "Core Components",
@@ -93,7 +96,9 @@
93
96
  {
94
97
  "group": "Authentication",
95
98
  "icon": "shield-check",
96
- "pages": ["servers/auth/bearer"]
99
+ "pages": [
100
+ "servers/auth/bearer"
101
+ ]
97
102
  }
98
103
  ]
99
104
  },
@@ -103,7 +108,10 @@
103
108
  {
104
109
  "group": "Essentials",
105
110
  "icon": "cube",
106
- "pages": ["clients/client", "clients/transports"]
111
+ "pages": [
112
+ "clients/client",
113
+ "clients/transports"
114
+ ]
107
115
  },
108
116
  {
109
117
  "group": "Core Operations",
@@ -129,7 +137,10 @@
129
137
  {
130
138
  "group": "Authentication",
131
139
  "icon": "user-shield",
132
- "pages": ["clients/auth/oauth", "clients/auth/bearer"]
140
+ "pages": [
141
+ "clients/auth/oauth",
142
+ "clients/auth/bearer"
143
+ ]
133
144
  }
134
145
  ]
135
146
  },
@@ -174,12 +185,17 @@
174
185
  },
175
186
  {
176
187
  "anchor": "What's New",
177
- "pages": ["updates", "changelog"]
188
+ "pages": [
189
+ "updates",
190
+ "changelog"
191
+ ]
178
192
  },
179
193
  {
180
194
  "anchor": "Community",
181
195
  "icon": "users",
182
- "pages": ["community/showcase"]
196
+ "pages": [
197
+ "community/showcase"
198
+ ]
183
199
  }
184
200
  ]
185
201
  },
@@ -191,6 +207,7 @@
191
207
  "icon": "python",
192
208
  "pages": [
193
209
  "python-sdk/fastmcp-exceptions",
210
+ "python-sdk/fastmcp-mcp_config",
194
211
  "python-sdk/fastmcp-settings",
195
212
  {
196
213
  "group": "fastmcp.cli",
@@ -198,6 +215,17 @@
198
215
  "python-sdk/fastmcp-cli-__init__",
199
216
  "python-sdk/fastmcp-cli-claude",
200
217
  "python-sdk/fastmcp-cli-cli",
218
+ {
219
+ "group": "install",
220
+ "pages": [
221
+ "python-sdk/fastmcp-cli-install-__init__",
222
+ "python-sdk/fastmcp-cli-install-claude_code",
223
+ "python-sdk/fastmcp-cli-install-claude_desktop",
224
+ "python-sdk/fastmcp-cli-install-cursor",
225
+ "python-sdk/fastmcp-cli-install-mcp_config",
226
+ "python-sdk/fastmcp-cli-install-shared"
227
+ ]
228
+ },
201
229
  "python-sdk/fastmcp-cli-run"
202
230
  ]
203
231
  },
@@ -214,7 +242,9 @@
214
242
  ]
215
243
  },
216
244
  "python-sdk/fastmcp-client-client",
245
+ "python-sdk/fastmcp-client-elicitation",
217
246
  "python-sdk/fastmcp-client-logging",
247
+ "python-sdk/fastmcp-client-messages",
218
248
  "python-sdk/fastmcp-client-oauth_callback",
219
249
  "python-sdk/fastmcp-client-progress",
220
250
  "python-sdk/fastmcp-client-roots",
@@ -262,7 +292,9 @@
262
292
  },
263
293
  "python-sdk/fastmcp-server-context",
264
294
  "python-sdk/fastmcp-server-dependencies",
295
+ "python-sdk/fastmcp-server-elicitation",
265
296
  "python-sdk/fastmcp-server-http",
297
+ "python-sdk/fastmcp-server-low_level",
266
298
  {
267
299
  "group": "middleware",
268
300
  "pages": [
@@ -293,13 +325,14 @@
293
325
  "pages": [
294
326
  "python-sdk/fastmcp-utilities-__init__",
295
327
  "python-sdk/fastmcp-utilities-cache",
328
+ "python-sdk/fastmcp-utilities-cli",
296
329
  "python-sdk/fastmcp-utilities-components",
297
330
  "python-sdk/fastmcp-utilities-exceptions",
298
331
  "python-sdk/fastmcp-utilities-http",
299
332
  "python-sdk/fastmcp-utilities-inspect",
300
333
  "python-sdk/fastmcp-utilities-json_schema",
334
+ "python-sdk/fastmcp-utilities-json_schema_type",
301
335
  "python-sdk/fastmcp-utilities-logging",
302
- "python-sdk/fastmcp-utilities-mcp_config",
303
336
  "python-sdk/fastmcp-utilities-openapi",
304
337
  "python-sdk/fastmcp-utilities-tests",
305
338
  "python-sdk/fastmcp-utilities-types"
@@ -0,0 +1,134 @@
1
+ ---
2
+ title: Eunomia Authorization 🤝 FastMCP
3
+ sidebarTitle: Eunomia Auth
4
+ description: Add policy-based authorization to your FastMCP servers
5
+ icon: shield-check
6
+ tag: NEW
7
+ ---
8
+
9
+ Add **policy-based authorization** to your FastMCP servers with one-line code addition with the **[Eunomia][eunomia-github] authorization middleware**.
10
+
11
+ Control which tools, resources and prompts MCP clients can view and execute on your server. Define dynamic JSON-based policies and obtain a comprehensive audit log of all access attempts and violations.
12
+
13
+ ## How it Works
14
+
15
+ Exploiting FastMCP's [Middleware][fastmcp-middleare], the Eunomia middleware intercepts all MCP requests to your server and, then, automatically maps MCP methods to authorization checks.
16
+
17
+ ### Listing Operations
18
+
19
+ The middleware behaves as a filter for listing operations (`tools/list`, `resources/list`, `prompts/list`), hiding to the client components that are not authorized by the defined policies.
20
+
21
+ ```mermaid
22
+ sequenceDiagram
23
+ participant MCPClient as MCP Client
24
+ participant EunomiaMiddleware as Eunomia Middleware
25
+ participant MCPServer as FastMCP Server
26
+ participant EunomiaServer as Eunomia Server
27
+
28
+ MCPClient->>EunomiaMiddleware: MCP Listing Request (e.g., tools/list)
29
+ EunomiaMiddleware->>MCPServer: MCP Listing Request
30
+ MCPServer-->>EunomiaMiddleware: MCP Listing Response
31
+ EunomiaMiddleware->>EunomiaServer: Authorization Checks
32
+ EunomiaServer->>EunomiaMiddleware: Authorization Decisions
33
+ EunomiaMiddleware-->>MCPClient: Filtered MCP Listing Response
34
+ ```
35
+
36
+ ### Execution Operations
37
+
38
+ The middleware behaves as a firewall for execution operations (`tools/call`, `resources/read`, `prompts/get`), blocking operations that are not authorized by the defined policies.
39
+
40
+ ```mermaid
41
+ sequenceDiagram
42
+ participant MCPClient as MCP Client
43
+ participant EunomiaMiddleware as Eunomia Middleware
44
+ participant MCPServer as FastMCP Server
45
+ participant EunomiaServer as Eunomia Server
46
+
47
+ MCPClient->>EunomiaMiddleware: MCP Execution Request (e.g., tools/call)
48
+ EunomiaMiddleware->>EunomiaServer: Authorization Check
49
+ EunomiaServer->>EunomiaMiddleware: Authorization Decision
50
+ EunomiaMiddleware-->>MCPClient: MCP Unauthorized Error (if denied)
51
+ EunomiaMiddleware->>MCPServer: MCP Execution Request (if allowed)
52
+ MCPServer-->>EunomiaMiddleware: MCP Execution Response (if allowed)
53
+ EunomiaMiddleware-->>MCPClient: MCP Execution Response (if allowed)
54
+ ```
55
+
56
+ ## Add Authorization to Your Server
57
+
58
+ <Note>
59
+ Eunomia is an AI-specific standalone authorization server that handles policy decisions. You must have an Eunomia server running alongside your FastMCP server for the middleware to function.
60
+
61
+ Run it in the background with Docker:
62
+
63
+ ```bash
64
+ docker run -d -p 8000:8000 ttommitt/eunomia-server:latest
65
+ ```
66
+
67
+ </Note>
68
+
69
+ ### Create a Server with Authorization
70
+
71
+ First, install the `eunomia-mcp` package:
72
+
73
+ ```bash
74
+ pip install eunomia-mcp
75
+ ```
76
+
77
+ Then create a FastMCP server and add the Eunomia middleware in one line:
78
+
79
+ ```python server.py
80
+ from fastmcp import FastMCP
81
+ from eunomia_mcp import EunomiaMcpMiddleware
82
+
83
+ mcp = FastMCP("Secure FastMCP Server 🔒")
84
+
85
+ @mcp.tool()
86
+ def add(a: int, b: int) -> int:
87
+ """Add two numbers"""
88
+ return a + b
89
+
90
+ middleware = EunomiaMcpMiddleware()
91
+ app = mcp.add_middleware(middleware)
92
+
93
+ if __name__ == "__main__":
94
+ mcp.run()
95
+ ```
96
+
97
+ ### Configure Access Policies
98
+
99
+ Use the `eunomia-mcp` CLI in your terminal to manage your authorization policies:
100
+
101
+ ```bash
102
+ # Create a default policy configuration file
103
+ eunomia-mcp init
104
+ ```
105
+
106
+ This creates a policy file you can customize to control access to your MCP tools and resources.
107
+
108
+ ```bash
109
+ # Once ready, validate your policy
110
+ eunomia-mcp validate mcp_policies.json
111
+
112
+ # And push it to the Eunomia server
113
+ eunomia-mcp push mcp_policies.json
114
+ ```
115
+
116
+ ### Run the Server
117
+
118
+ Start your FastMCP server normally:
119
+
120
+ ```bash
121
+ python server.py
122
+ ```
123
+
124
+ The middleware will now intercept all MCP requests and check them against your policies. Requests include agent identification through headers like `X-Agent-ID`, `X-User-ID`, `User-Agent`, or `Authorization` and an automatic mapping of MCP methods to authorization resources and actions.
125
+
126
+ <Tip>
127
+ For detailed policy configuration, custom authentication, and advanced
128
+ deployment patterns, visit the [Eunomia MCP Middleware
129
+ repository][eunomia-mcp-github].
130
+ </Tip>
131
+
132
+ [eunomia-github]: https://github.com/whataboutyou-ai/eunomia
133
+ [eunomia-mcp-github]: https://github.com/whataboutyou-ai/eunomia/tree/main/pkgs/extensions/mcp
134
+ [fastmcp-middleare]: /servers/middleware
@@ -98,23 +98,25 @@ Generate configuration and output to stdout (useful for piping):
98
98
  fastmcp install mcp-json server.py
99
99
  ```
100
100
 
101
- This outputs the server configuration JSON that you add to the `mcpServers` object:
101
+ This outputs the server configuration JSON with the server name as the root key:
102
102
 
103
103
  ```json
104
104
  {
105
- "command": "uv",
106
- "args": [
107
- "run",
108
- "--with",
109
- "fastmcp",
110
- "fastmcp",
111
- "run",
112
- "/absolute/path/to/server.py"
113
- ]
105
+ "My Server": {
106
+ "command": "uv",
107
+ "args": [
108
+ "run",
109
+ "--with",
110
+ "fastmcp",
111
+ "fastmcp",
112
+ "run",
113
+ "/absolute/path/to/server.py"
114
+ ]
115
+ }
114
116
  }
115
117
  ```
116
118
 
117
- To use this in a client configuration file, add it under a server name in the `mcpServers` object:
119
+ To use this in a client configuration file, add it to the `mcpServers` object in your client's configuration:
118
120
 
119
121
  ```json
120
122
  {
@@ -134,6 +136,10 @@ To use this in a client configuration file, add it under a server name in the `m
134
136
  }
135
137
  ```
136
138
 
139
+ <Note>
140
+ Different MCP clients may have specific configuration requirements or formatting needs. Always consult your client's documentation to ensure proper integration.
141
+ </Note>
142
+
137
143
  ## Configuration Options
138
144
 
139
145
  ### Server Naming
@@ -177,8 +183,8 @@ mcp = FastMCP(
177
183
  ```bash
178
184
  # Individual environment variables
179
185
  fastmcp install mcp-json server.py \
180
- --env-var API_KEY=your-secret-key \
181
- --env-var DEBUG=true
186
+ --env API_KEY=your-secret-key \
187
+ --env DEBUG=true
182
188
 
183
189
  # Load from .env file
184
190
  fastmcp install mcp-json server.py --env-file .env
@@ -219,15 +225,17 @@ fastmcp install mcp-json dice_server.py
219
225
  Output:
220
226
  ```json
221
227
  {
222
- "command": "uv",
223
- "args": [
224
- "run",
225
- "--with",
226
- "fastmcp",
227
- "fastmcp",
228
- "run",
229
- "/home/user/dice_server.py"
230
- ]
228
+ "Dice Server": {
229
+ "command": "uv",
230
+ "args": [
231
+ "run",
232
+ "--with",
233
+ "fastmcp",
234
+ "fastmcp",
235
+ "run",
236
+ "/home/user/dice_server.py"
237
+ ]
238
+ }
231
239
  }
232
240
  ```
233
241
 
@@ -238,29 +246,31 @@ fastmcp install mcp-json api_server.py \
238
246
  --name "Production API Server" \
239
247
  --with requests \
240
248
  --with python-dotenv \
241
- --env-var API_BASE_URL=https://api.example.com \
242
- --env-var TIMEOUT=30
249
+ --env API_BASE_URL=https://api.example.com \
250
+ --env TIMEOUT=30
243
251
  ```
244
252
 
245
253
  Output:
246
254
  ```json
247
255
  {
248
- "command": "uv",
249
- "args": [
250
- "run",
251
- "--with",
252
- "fastmcp",
253
- "--with",
254
- "python-dotenv",
255
- "--with",
256
- "requests",
257
- "fastmcp",
258
- "run",
259
- "/home/user/api_server.py"
260
- ],
261
- "env": {
262
- "API_BASE_URL": "https://api.example.com",
263
- "TIMEOUT": "30"
256
+ "Production API Server": {
257
+ "command": "uv",
258
+ "args": [
259
+ "run",
260
+ "--with",
261
+ "fastmcp",
262
+ "--with",
263
+ "python-dotenv",
264
+ "--with",
265
+ "requests",
266
+ "fastmcp",
267
+ "run",
268
+ "/home/user/api_server.py"
269
+ ],
270
+ "env": {
271
+ "API_BASE_URL": "https://api.example.com",
272
+ "TIMEOUT": "30"
273
+ }
264
274
  }
265
275
  }
266
276
  ```
@@ -278,7 +288,7 @@ Use in shell scripts:
278
288
  ```bash
279
289
  #!/bin/bash
280
290
  CONFIG=$(fastmcp install mcp-json server.py --name "CI Server")
281
- echo "$CONFIG" | jq '.command'
291
+ echo "$CONFIG" | jq '."CI Server".command'
282
292
  # Output: "uv"
283
293
  ```
284
294
 
@@ -306,22 +316,22 @@ Use the JSON configuration with any application that supports the MCP protocol
306
316
 
307
317
  ## Configuration Format
308
318
 
309
- The generated configuration follows the standard MCP server specification:
319
+ The generated configuration outputs a server object with the server name as the root key:
310
320
 
311
321
  ```json
312
322
  {
313
- "mcpServers": {
314
- "<server-name>": {
315
- "command": "<executable>",
316
- "args": ["<arg1>", "<arg2>", "..."],
317
- "env": {
318
- "<ENV_VAR>": "<value>"
319
- }
323
+ "<server-name>": {
324
+ "command": "<executable>",
325
+ "args": ["<arg1>", "<arg2>", "..."],
326
+ "env": {
327
+ "<ENV_VAR>": "<value>"
320
328
  }
321
329
  }
322
330
  }
323
331
  ```
324
332
 
333
+ To use this in an MCP client, add it to the client's `mcpServers` configuration object.
334
+
325
335
  **Fields:**
326
336
  - `command`: The executable to run (always `uv` for FastMCP servers)
327
337
  - `args`: Command-line arguments including dependencies and server path