fastmcp 2.10.1__tar.gz → 2.10.3__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 (397) hide show
  1. {fastmcp-2.10.1 → fastmcp-2.10.3}/.github/ISSUE_TEMPLATE/bug.yml +3 -1
  2. {fastmcp-2.10.1 → fastmcp-2.10.3}/.pre-commit-config.yaml +3 -3
  3. {fastmcp-2.10.1 → fastmcp-2.10.3}/PKG-INFO +4 -3
  4. fastmcp-2.10.3/docs/assets/favicon.svg +3 -0
  5. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/changelog.mdx +1 -1
  6. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/clients/client.mdx +1 -1
  7. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/clients/transports.mdx +13 -1
  8. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/community/showcase.mdx +1 -1
  9. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/css/style.css +1 -0
  10. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/docs.json +8 -6
  11. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/getting-started/quickstart.mdx +1 -1
  12. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/integrations/anthropic.mdx +2 -3
  13. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/integrations/chatgpt.mdx +3 -2
  14. fastmcp-2.10.3/docs/integrations/claude-code.mdx +133 -0
  15. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/integrations/claude-desktop.mdx +18 -9
  16. fastmcp-2.10.3/docs/integrations/cursor-install-mcp.png +0 -0
  17. fastmcp-2.10.3/docs/integrations/cursor.mdx +208 -0
  18. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/integrations/eunomia-authorization.mdx +3 -3
  19. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/integrations/gemini.mdx +2 -3
  20. fastmcp-2.10.3/docs/integrations/mcp-json-configuration.mdx +347 -0
  21. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/integrations/openai.mdx +2 -2
  22. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/patterns/cli.mdx +91 -12
  23. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/patterns/testing.mdx +12 -2
  24. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/patterns/tool-transformation.mdx +0 -1
  25. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/servers/composition.mdx +1 -1
  26. fastmcp-2.10.3/docs/servers/proxy.mdx +311 -0
  27. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/servers/server.mdx +2 -0
  28. fastmcp-2.10.3/docs/snippets/local-focus.mdx +7 -0
  29. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/tutorials/rest-api.mdx +1 -1
  30. {fastmcp-2.10.1 → fastmcp-2.10.3}/examples/memory.py +4 -4
  31. {fastmcp-2.10.1 → fastmcp-2.10.3}/pyproject.toml +4 -2
  32. {fastmcp-2.10.1 → fastmcp-2.10.3}/src/fastmcp/cli/cli.py +117 -225
  33. fastmcp-2.10.3/src/fastmcp/cli/install/__init__.py +20 -0
  34. fastmcp-2.10.3/src/fastmcp/cli/install/claude_code.py +186 -0
  35. fastmcp-2.10.3/src/fastmcp/cli/install/claude_desktop.py +186 -0
  36. fastmcp-2.10.3/src/fastmcp/cli/install/cursor.py +196 -0
  37. fastmcp-2.10.3/src/fastmcp/cli/install/mcp_config.py +165 -0
  38. fastmcp-2.10.3/src/fastmcp/cli/install/shared.py +85 -0
  39. {fastmcp-2.10.1 → fastmcp-2.10.3}/src/fastmcp/cli/run.py +17 -4
  40. {fastmcp-2.10.1 → fastmcp-2.10.3}/src/fastmcp/client/client.py +230 -124
  41. {fastmcp-2.10.1 → fastmcp-2.10.3}/src/fastmcp/client/elicitation.py +5 -0
  42. {fastmcp-2.10.1 → fastmcp-2.10.3}/src/fastmcp/client/transports.py +3 -5
  43. fastmcp-2.10.3/src/fastmcp/mcp_config.py +282 -0
  44. {fastmcp-2.10.1 → fastmcp-2.10.3}/src/fastmcp/prompts/prompt.py +2 -4
  45. {fastmcp-2.10.1 → fastmcp-2.10.3}/src/fastmcp/resources/resource.py +2 -2
  46. {fastmcp-2.10.1 → fastmcp-2.10.3}/src/fastmcp/resources/template.py +1 -1
  47. {fastmcp-2.10.1 → fastmcp-2.10.3}/src/fastmcp/server/auth/providers/bearer.py +15 -6
  48. {fastmcp-2.10.1 → fastmcp-2.10.3}/src/fastmcp/server/openapi.py +40 -9
  49. {fastmcp-2.10.1 → fastmcp-2.10.3}/src/fastmcp/server/proxy.py +206 -37
  50. {fastmcp-2.10.1 → fastmcp-2.10.3}/src/fastmcp/server/server.py +102 -20
  51. {fastmcp-2.10.1 → fastmcp-2.10.3}/src/fastmcp/settings.py +19 -1
  52. {fastmcp-2.10.1 → fastmcp-2.10.3}/src/fastmcp/tools/tool.py +3 -2
  53. {fastmcp-2.10.1 → fastmcp-2.10.3}/src/fastmcp/tools/tool_transform.py +5 -6
  54. fastmcp-2.10.3/src/fastmcp/utilities/cli.py +102 -0
  55. {fastmcp-2.10.1 → fastmcp-2.10.3}/src/fastmcp/utilities/json_schema.py +14 -3
  56. {fastmcp-2.10.1 → fastmcp-2.10.3}/src/fastmcp/utilities/logging.py +3 -0
  57. {fastmcp-2.10.1 → fastmcp-2.10.3}/src/fastmcp/utilities/openapi.py +92 -0
  58. {fastmcp-2.10.1 → fastmcp-2.10.3}/src/fastmcp/utilities/tests.py +13 -0
  59. {fastmcp-2.10.1 → fastmcp-2.10.3}/src/fastmcp/utilities/types.py +4 -3
  60. {fastmcp-2.10.1 → fastmcp-2.10.3}/tests/auth/providers/test_bearer.py +53 -0
  61. fastmcp-2.10.3/tests/cli/__init__.py +1 -0
  62. fastmcp-2.10.3/tests/cli/test_cli.py +411 -0
  63. fastmcp-2.10.3/tests/cli/test_cursor.py +349 -0
  64. fastmcp-2.10.3/tests/cli/test_install.py +165 -0
  65. fastmcp-2.10.3/tests/cli/test_run.py +199 -0
  66. fastmcp-2.10.3/tests/cli/test_shared.py +29 -0
  67. {fastmcp-2.10.1 → fastmcp-2.10.3}/tests/client/test_client.py +12 -12
  68. {fastmcp-2.10.1 → fastmcp-2.10.3}/tests/client/test_elicitation.py +36 -3
  69. {fastmcp-2.10.1 → fastmcp-2.10.3}/tests/client/test_openapi.py +1 -2
  70. {fastmcp-2.10.1 → fastmcp-2.10.3}/tests/client/test_streamable_http.py +15 -4
  71. {fastmcp-2.10.1 → fastmcp-2.10.3}/tests/contrib/test_component_manager.py +0 -12
  72. fastmcp-2.10.3/tests/deprecated/test_proxy_client.py +107 -0
  73. {fastmcp-2.10.1 → fastmcp-2.10.3}/tests/deprecated/test_settings.py +6 -3
  74. {fastmcp-2.10.1 → fastmcp-2.10.3}/tests/prompts/test_prompt_manager.py +8 -2
  75. {fastmcp-2.10.1 → fastmcp-2.10.3}/tests/resources/test_function_resources.py +2 -2
  76. {fastmcp-2.10.1 → fastmcp-2.10.3}/tests/resources/test_resource_manager.py +7 -2
  77. fastmcp-2.10.3/tests/server/openapi/conftest.py +135 -0
  78. fastmcp-2.10.3/tests/server/openapi/test_advanced_behavior.py +312 -0
  79. fastmcp-2.10.3/tests/server/openapi/test_basic_functionality.py +367 -0
  80. fastmcp-2.10.3/tests/server/openapi/test_configuration.py +930 -0
  81. fastmcp-2.10.3/tests/server/openapi/test_description_propagation.py +795 -0
  82. {fastmcp-2.10.1 → fastmcp-2.10.3}/tests/server/openapi/test_explode_integration.py +0 -4
  83. fastmcp-2.10.3/tests/server/openapi/test_openapi_compatibility.py +661 -0
  84. {fastmcp-2.10.1 → fastmcp-2.10.3}/tests/server/openapi/test_route_map_fn.py +78 -0
  85. fastmcp-2.10.3/tests/server/proxy/test_proxy_client.py +359 -0
  86. fastmcp-2.10.1/tests/server/test_proxy.py → fastmcp-2.10.3/tests/server/proxy/test_proxy_server.py +5 -5
  87. {fastmcp-2.10.1 → fastmcp-2.10.3}/tests/server/test_import_server.py +4 -4
  88. {fastmcp-2.10.1 → fastmcp-2.10.3}/tests/server/test_mount.py +28 -34
  89. {fastmcp-2.10.1 → fastmcp-2.10.3}/tests/server/test_server_interactions.py +1 -1
  90. {fastmcp-2.10.1 → fastmcp-2.10.3}/tests/test_examples.py +1 -1
  91. {fastmcp-2.10.1 → fastmcp-2.10.3}/tests/tools/test_tool.py +35 -11
  92. {fastmcp-2.10.1 → fastmcp-2.10.3}/tests/tools/test_tool_manager.py +6 -3
  93. {fastmcp-2.10.1 → fastmcp-2.10.3}/tests/tools/test_tool_transform.py +18 -2
  94. fastmcp-2.10.3/tests/utilities/openapi/test_openapi_output_schemas.py +236 -0
  95. {fastmcp-2.10.1 → fastmcp-2.10.3}/tests/utilities/test_json_schema.py +73 -0
  96. {fastmcp-2.10.1 → fastmcp-2.10.3}/tests/utilities/test_mcp_config.py +90 -1
  97. {fastmcp-2.10.1 → fastmcp-2.10.3}/tests/utilities/test_types.py +54 -0
  98. {fastmcp-2.10.1 → fastmcp-2.10.3}/uv.lock +353 -291
  99. fastmcp-2.10.1/docs/assets/demo-inspector.png +0 -0
  100. fastmcp-2.10.1/docs/assets/favicon.ico +0 -0
  101. fastmcp-2.10.1/docs/assets/logo.png +0 -0
  102. fastmcp-2.10.1/docs/integrations/claude-code.mdx +0 -60
  103. fastmcp-2.10.1/docs/servers/proxy.mdx +0 -169
  104. fastmcp-2.10.1/src/fastmcp/utilities/mcp_config.py +0 -93
  105. fastmcp-2.10.1/tests/cli/test_cli.py +0 -471
  106. fastmcp-2.10.1/tests/cli/test_run.py +0 -298
  107. fastmcp-2.10.1/tests/server/openapi/test_openapi.py +0 -2840
  108. {fastmcp-2.10.1 → fastmcp-2.10.3}/.ccignore +0 -0
  109. {fastmcp-2.10.1 → fastmcp-2.10.3}/.cursor/rules/core-mcp-objects.mdc +0 -0
  110. {fastmcp-2.10.1 → fastmcp-2.10.3}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  111. {fastmcp-2.10.1 → fastmcp-2.10.3}/.github/ISSUE_TEMPLATE/enhancement.yml +0 -0
  112. {fastmcp-2.10.1 → fastmcp-2.10.3}/.github/dependabot.yml +0 -0
  113. {fastmcp-2.10.1 → fastmcp-2.10.3}/.github/labeler.yml +0 -0
  114. {fastmcp-2.10.1 → fastmcp-2.10.3}/.github/release.yml +0 -0
  115. {fastmcp-2.10.1 → fastmcp-2.10.3}/.github/workflows/labeler.yml +0 -0
  116. {fastmcp-2.10.1 → fastmcp-2.10.3}/.github/workflows/publish.yml +0 -0
  117. {fastmcp-2.10.1 → fastmcp-2.10.3}/.github/workflows/run-static.yml +0 -0
  118. {fastmcp-2.10.1 → fastmcp-2.10.3}/.github/workflows/run-tests.yml +0 -0
  119. {fastmcp-2.10.1 → fastmcp-2.10.3}/.gitignore +0 -0
  120. {fastmcp-2.10.1 → fastmcp-2.10.3}/AGENTS.md +0 -0
  121. {fastmcp-2.10.1 → fastmcp-2.10.3}/CLAUDE.md +0 -0
  122. {fastmcp-2.10.1 → fastmcp-2.10.3}/LICENSE +0 -0
  123. {fastmcp-2.10.1 → fastmcp-2.10.3}/README.md +0 -0
  124. {fastmcp-2.10.1 → fastmcp-2.10.3}/Windows_Notes.md +0 -0
  125. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/.cursor/rules/mintlify.mdc +0 -0
  126. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/assets/images/tutorial-rest-api-result.png +0 -0
  127. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/assets/updates/release-2-7.png +0 -0
  128. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/clients/auth/bearer.mdx +0 -0
  129. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/clients/auth/oauth.mdx +0 -0
  130. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/clients/elicitation.mdx +0 -0
  131. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/clients/logging.mdx +0 -0
  132. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/clients/messages.mdx +0 -0
  133. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/clients/progress.mdx +0 -0
  134. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/clients/prompts.mdx +0 -0
  135. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/clients/resources.mdx +0 -0
  136. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/clients/roots.mdx +0 -0
  137. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/clients/sampling.mdx +0 -0
  138. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/clients/tools.mdx +0 -0
  139. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/community/README.md +0 -0
  140. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/css/banner.css +0 -0
  141. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/css/python-sdk.css +0 -0
  142. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/css/version-badge.css +0 -0
  143. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/deployment/asgi.mdx +0 -0
  144. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/deployment/running-server.mdx +0 -0
  145. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/getting-started/installation.mdx +0 -0
  146. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/getting-started/welcome.mdx +0 -0
  147. {fastmcp-2.10.1/docs/integrations → fastmcp-2.10.3/docs/patterns}/contrib.mdx +0 -0
  148. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/patterns/decorating-methods.mdx +0 -0
  149. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/patterns/http-requests.mdx +0 -0
  150. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/python-sdk/fastmcp-cli-__init__.mdx +0 -0
  151. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/python-sdk/fastmcp-cli-claude.mdx +0 -0
  152. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/python-sdk/fastmcp-cli-cli.mdx +0 -0
  153. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/python-sdk/fastmcp-cli-run.mdx +0 -0
  154. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/python-sdk/fastmcp-client-__init__.mdx +0 -0
  155. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/python-sdk/fastmcp-client-auth-__init__.mdx +0 -0
  156. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/python-sdk/fastmcp-client-auth-bearer.mdx +0 -0
  157. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/python-sdk/fastmcp-client-auth-oauth.mdx +0 -0
  158. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/python-sdk/fastmcp-client-client.mdx +0 -0
  159. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/python-sdk/fastmcp-client-logging.mdx +0 -0
  160. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/python-sdk/fastmcp-client-oauth_callback.mdx +0 -0
  161. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/python-sdk/fastmcp-client-progress.mdx +0 -0
  162. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/python-sdk/fastmcp-client-roots.mdx +0 -0
  163. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/python-sdk/fastmcp-client-sampling.mdx +0 -0
  164. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/python-sdk/fastmcp-client-transports.mdx +0 -0
  165. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/python-sdk/fastmcp-exceptions.mdx +0 -0
  166. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/python-sdk/fastmcp-prompts-__init__.mdx +0 -0
  167. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/python-sdk/fastmcp-prompts-prompt.mdx +0 -0
  168. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/python-sdk/fastmcp-prompts-prompt_manager.mdx +0 -0
  169. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/python-sdk/fastmcp-resources-__init__.mdx +0 -0
  170. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/python-sdk/fastmcp-resources-resource.mdx +0 -0
  171. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/python-sdk/fastmcp-resources-resource_manager.mdx +0 -0
  172. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/python-sdk/fastmcp-resources-template.mdx +0 -0
  173. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/python-sdk/fastmcp-resources-types.mdx +0 -0
  174. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/python-sdk/fastmcp-server-__init__.mdx +0 -0
  175. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/python-sdk/fastmcp-server-auth-__init__.mdx +0 -0
  176. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/python-sdk/fastmcp-server-auth-auth.mdx +0 -0
  177. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/python-sdk/fastmcp-server-auth-providers-__init__.mdx +0 -0
  178. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/python-sdk/fastmcp-server-auth-providers-bearer.mdx +0 -0
  179. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/python-sdk/fastmcp-server-auth-providers-bearer_env.mdx +0 -0
  180. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/python-sdk/fastmcp-server-auth-providers-in_memory.mdx +0 -0
  181. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/python-sdk/fastmcp-server-context.mdx +0 -0
  182. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/python-sdk/fastmcp-server-dependencies.mdx +0 -0
  183. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/python-sdk/fastmcp-server-http.mdx +0 -0
  184. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/python-sdk/fastmcp-server-middleware-__init__.mdx +0 -0
  185. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/python-sdk/fastmcp-server-middleware-error_handling.mdx +0 -0
  186. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/python-sdk/fastmcp-server-middleware-logging.mdx +0 -0
  187. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/python-sdk/fastmcp-server-middleware-middleware.mdx +0 -0
  188. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/python-sdk/fastmcp-server-middleware-rate_limiting.mdx +0 -0
  189. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/python-sdk/fastmcp-server-middleware-timing.mdx +0 -0
  190. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/python-sdk/fastmcp-server-middleware.mdx +0 -0
  191. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/python-sdk/fastmcp-server-openapi.mdx +0 -0
  192. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/python-sdk/fastmcp-server-proxy.mdx +0 -0
  193. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/python-sdk/fastmcp-server-server.mdx +0 -0
  194. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/python-sdk/fastmcp-settings.mdx +0 -0
  195. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/python-sdk/fastmcp-tools-__init__.mdx +0 -0
  196. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/python-sdk/fastmcp-tools-tool.mdx +0 -0
  197. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/python-sdk/fastmcp-tools-tool_manager.mdx +0 -0
  198. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/python-sdk/fastmcp-tools-tool_transform.mdx +0 -0
  199. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/python-sdk/fastmcp-utilities-__init__.mdx +0 -0
  200. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/python-sdk/fastmcp-utilities-cache.mdx +0 -0
  201. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/python-sdk/fastmcp-utilities-components.mdx +0 -0
  202. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/python-sdk/fastmcp-utilities-exceptions.mdx +0 -0
  203. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/python-sdk/fastmcp-utilities-http.mdx +0 -0
  204. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/python-sdk/fastmcp-utilities-inspect.mdx +0 -0
  205. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/python-sdk/fastmcp-utilities-json_schema.mdx +0 -0
  206. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/python-sdk/fastmcp-utilities-logging.mdx +0 -0
  207. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/python-sdk/fastmcp-utilities-mcp_config.mdx +0 -0
  208. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/python-sdk/fastmcp-utilities-openapi.mdx +0 -0
  209. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/python-sdk/fastmcp-utilities-tests.mdx +0 -0
  210. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/python-sdk/fastmcp-utilities-types.mdx +0 -0
  211. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/servers/auth/bearer.mdx +0 -0
  212. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/servers/context.mdx +0 -0
  213. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/servers/elicitation.mdx +0 -0
  214. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/servers/logging.mdx +0 -0
  215. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/servers/middleware.mdx +0 -0
  216. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/servers/openapi.mdx +0 -0
  217. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/servers/progress.mdx +0 -0
  218. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/servers/prompts.mdx +0 -0
  219. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/servers/resources.mdx +0 -0
  220. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/servers/sampling.mdx +0 -0
  221. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/servers/tools.mdx +0 -0
  222. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/snippets/version-badge.mdx +0 -0
  223. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/snippets/youtube-embed.mdx +0 -0
  224. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/tutorials/create-mcp-server.mdx +0 -0
  225. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/tutorials/mcp.mdx +0 -0
  226. {fastmcp-2.10.1 → fastmcp-2.10.3}/docs/updates.mdx +0 -0
  227. {fastmcp-2.10.1 → fastmcp-2.10.3}/examples/atproto_mcp/README.md +0 -0
  228. {fastmcp-2.10.1 → fastmcp-2.10.3}/examples/atproto_mcp/demo.py +0 -0
  229. {fastmcp-2.10.1 → fastmcp-2.10.3}/examples/atproto_mcp/pyproject.toml +0 -0
  230. {fastmcp-2.10.1 → fastmcp-2.10.3}/examples/atproto_mcp/src/atproto_mcp/__init__.py +0 -0
  231. {fastmcp-2.10.1 → fastmcp-2.10.3}/examples/atproto_mcp/src/atproto_mcp/__main__.py +0 -0
  232. {fastmcp-2.10.1 → fastmcp-2.10.3}/examples/atproto_mcp/src/atproto_mcp/_atproto/__init__.py +0 -0
  233. {fastmcp-2.10.1 → fastmcp-2.10.3}/examples/atproto_mcp/src/atproto_mcp/_atproto/_client.py +0 -0
  234. {fastmcp-2.10.1 → fastmcp-2.10.3}/examples/atproto_mcp/src/atproto_mcp/_atproto/_posts.py +0 -0
  235. {fastmcp-2.10.1 → fastmcp-2.10.3}/examples/atproto_mcp/src/atproto_mcp/_atproto/_profile.py +0 -0
  236. {fastmcp-2.10.1 → fastmcp-2.10.3}/examples/atproto_mcp/src/atproto_mcp/_atproto/_read.py +0 -0
  237. {fastmcp-2.10.1 → fastmcp-2.10.3}/examples/atproto_mcp/src/atproto_mcp/_atproto/_social.py +0 -0
  238. {fastmcp-2.10.1 → fastmcp-2.10.3}/examples/atproto_mcp/src/atproto_mcp/py.typed +0 -0
  239. {fastmcp-2.10.1 → fastmcp-2.10.3}/examples/atproto_mcp/src/atproto_mcp/server.py +0 -0
  240. {fastmcp-2.10.1 → fastmcp-2.10.3}/examples/atproto_mcp/src/atproto_mcp/settings.py +0 -0
  241. {fastmcp-2.10.1 → fastmcp-2.10.3}/examples/atproto_mcp/src/atproto_mcp/types.py +0 -0
  242. {fastmcp-2.10.1 → fastmcp-2.10.3}/examples/complex_inputs.py +0 -0
  243. {fastmcp-2.10.1 → fastmcp-2.10.3}/examples/config_server.py +0 -0
  244. {fastmcp-2.10.1 → fastmcp-2.10.3}/examples/desktop.py +0 -0
  245. {fastmcp-2.10.1 → fastmcp-2.10.3}/examples/echo.py +0 -0
  246. {fastmcp-2.10.1 → fastmcp-2.10.3}/examples/get_file.py +0 -0
  247. {fastmcp-2.10.1 → fastmcp-2.10.3}/examples/in_memory_proxy_example.py +0 -0
  248. {fastmcp-2.10.1 → fastmcp-2.10.3}/examples/mount_example.py +0 -0
  249. {fastmcp-2.10.1 → fastmcp-2.10.3}/examples/sampling.py +0 -0
  250. {fastmcp-2.10.1 → fastmcp-2.10.3}/examples/screenshot.py +0 -0
  251. {fastmcp-2.10.1 → fastmcp-2.10.3}/examples/serializer.py +0 -0
  252. {fastmcp-2.10.1 → fastmcp-2.10.3}/examples/simple_echo.py +0 -0
  253. {fastmcp-2.10.1 → fastmcp-2.10.3}/examples/smart_home/README.md +0 -0
  254. {fastmcp-2.10.1 → fastmcp-2.10.3}/examples/smart_home/pyproject.toml +0 -0
  255. {fastmcp-2.10.1 → fastmcp-2.10.3}/examples/smart_home/src/smart_home/__init__.py +0 -0
  256. {fastmcp-2.10.1 → fastmcp-2.10.3}/examples/smart_home/src/smart_home/__main__.py +0 -0
  257. {fastmcp-2.10.1 → fastmcp-2.10.3}/examples/smart_home/src/smart_home/hub.py +0 -0
  258. {fastmcp-2.10.1 → fastmcp-2.10.3}/examples/smart_home/src/smart_home/lights/__init__.py +0 -0
  259. {fastmcp-2.10.1 → fastmcp-2.10.3}/examples/smart_home/src/smart_home/lights/hue_utils.py +0 -0
  260. {fastmcp-2.10.1 → fastmcp-2.10.3}/examples/smart_home/src/smart_home/lights/server.py +0 -0
  261. {fastmcp-2.10.1 → fastmcp-2.10.3}/examples/smart_home/src/smart_home/py.typed +0 -0
  262. {fastmcp-2.10.1 → fastmcp-2.10.3}/examples/smart_home/src/smart_home/settings.py +0 -0
  263. {fastmcp-2.10.1 → fastmcp-2.10.3}/examples/smart_home/uv.lock +0 -0
  264. {fastmcp-2.10.1 → fastmcp-2.10.3}/examples/tags_example.py +0 -0
  265. {fastmcp-2.10.1 → fastmcp-2.10.3}/examples/text_me.py +0 -0
  266. {fastmcp-2.10.1 → fastmcp-2.10.3}/justfile +0 -0
  267. {fastmcp-2.10.1 → fastmcp-2.10.3}/src/fastmcp/__init__.py +0 -0
  268. {fastmcp-2.10.1 → fastmcp-2.10.3}/src/fastmcp/cli/__init__.py +0 -0
  269. {fastmcp-2.10.1 → fastmcp-2.10.3}/src/fastmcp/cli/claude.py +0 -0
  270. {fastmcp-2.10.1 → fastmcp-2.10.3}/src/fastmcp/client/__init__.py +0 -0
  271. {fastmcp-2.10.1 → fastmcp-2.10.3}/src/fastmcp/client/auth/__init__.py +0 -0
  272. {fastmcp-2.10.1 → fastmcp-2.10.3}/src/fastmcp/client/auth/bearer.py +0 -0
  273. {fastmcp-2.10.1 → fastmcp-2.10.3}/src/fastmcp/client/auth/oauth.py +0 -0
  274. {fastmcp-2.10.1 → fastmcp-2.10.3}/src/fastmcp/client/logging.py +0 -0
  275. {fastmcp-2.10.1 → fastmcp-2.10.3}/src/fastmcp/client/messages.py +0 -0
  276. {fastmcp-2.10.1 → fastmcp-2.10.3}/src/fastmcp/client/oauth_callback.py +0 -0
  277. {fastmcp-2.10.1 → fastmcp-2.10.3}/src/fastmcp/client/progress.py +0 -0
  278. {fastmcp-2.10.1 → fastmcp-2.10.3}/src/fastmcp/client/roots.py +0 -0
  279. {fastmcp-2.10.1 → fastmcp-2.10.3}/src/fastmcp/client/sampling.py +0 -0
  280. {fastmcp-2.10.1 → fastmcp-2.10.3}/src/fastmcp/contrib/README.md +0 -0
  281. {fastmcp-2.10.1 → fastmcp-2.10.3}/src/fastmcp/contrib/bulk_tool_caller/README.md +0 -0
  282. {fastmcp-2.10.1 → fastmcp-2.10.3}/src/fastmcp/contrib/bulk_tool_caller/__init__.py +0 -0
  283. {fastmcp-2.10.1 → fastmcp-2.10.3}/src/fastmcp/contrib/bulk_tool_caller/bulk_tool_caller.py +0 -0
  284. {fastmcp-2.10.1 → fastmcp-2.10.3}/src/fastmcp/contrib/bulk_tool_caller/example.py +0 -0
  285. {fastmcp-2.10.1 → fastmcp-2.10.3}/src/fastmcp/contrib/component_manager/README.md +0 -0
  286. {fastmcp-2.10.1 → fastmcp-2.10.3}/src/fastmcp/contrib/component_manager/__init__.py +0 -0
  287. {fastmcp-2.10.1 → fastmcp-2.10.3}/src/fastmcp/contrib/component_manager/component_manager.py +0 -0
  288. {fastmcp-2.10.1 → fastmcp-2.10.3}/src/fastmcp/contrib/component_manager/component_service.py +0 -0
  289. {fastmcp-2.10.1 → fastmcp-2.10.3}/src/fastmcp/contrib/component_manager/example.py +0 -0
  290. {fastmcp-2.10.1 → fastmcp-2.10.3}/src/fastmcp/contrib/mcp_mixin/README.md +0 -0
  291. {fastmcp-2.10.1 → fastmcp-2.10.3}/src/fastmcp/contrib/mcp_mixin/__init__.py +0 -0
  292. {fastmcp-2.10.1 → fastmcp-2.10.3}/src/fastmcp/contrib/mcp_mixin/example.py +0 -0
  293. {fastmcp-2.10.1 → fastmcp-2.10.3}/src/fastmcp/contrib/mcp_mixin/mcp_mixin.py +0 -0
  294. {fastmcp-2.10.1 → fastmcp-2.10.3}/src/fastmcp/exceptions.py +0 -0
  295. {fastmcp-2.10.1 → fastmcp-2.10.3}/src/fastmcp/prompts/__init__.py +0 -0
  296. {fastmcp-2.10.1 → fastmcp-2.10.3}/src/fastmcp/prompts/prompt_manager.py +0 -0
  297. {fastmcp-2.10.1 → fastmcp-2.10.3}/src/fastmcp/py.typed +0 -0
  298. {fastmcp-2.10.1 → fastmcp-2.10.3}/src/fastmcp/resources/__init__.py +0 -0
  299. {fastmcp-2.10.1 → fastmcp-2.10.3}/src/fastmcp/resources/resource_manager.py +0 -0
  300. {fastmcp-2.10.1 → fastmcp-2.10.3}/src/fastmcp/resources/types.py +0 -0
  301. {fastmcp-2.10.1 → fastmcp-2.10.3}/src/fastmcp/server/__init__.py +0 -0
  302. {fastmcp-2.10.1 → fastmcp-2.10.3}/src/fastmcp/server/auth/__init__.py +0 -0
  303. {fastmcp-2.10.1 → fastmcp-2.10.3}/src/fastmcp/server/auth/auth.py +0 -0
  304. {fastmcp-2.10.1 → fastmcp-2.10.3}/src/fastmcp/server/auth/providers/__init__.py +0 -0
  305. {fastmcp-2.10.1 → fastmcp-2.10.3}/src/fastmcp/server/auth/providers/bearer_env.py +0 -0
  306. {fastmcp-2.10.1 → fastmcp-2.10.3}/src/fastmcp/server/auth/providers/in_memory.py +0 -0
  307. {fastmcp-2.10.1 → fastmcp-2.10.3}/src/fastmcp/server/context.py +0 -0
  308. {fastmcp-2.10.1 → fastmcp-2.10.3}/src/fastmcp/server/dependencies.py +0 -0
  309. {fastmcp-2.10.1 → fastmcp-2.10.3}/src/fastmcp/server/elicitation.py +0 -0
  310. {fastmcp-2.10.1 → fastmcp-2.10.3}/src/fastmcp/server/http.py +0 -0
  311. {fastmcp-2.10.1 → fastmcp-2.10.3}/src/fastmcp/server/low_level.py +0 -0
  312. {fastmcp-2.10.1 → fastmcp-2.10.3}/src/fastmcp/server/middleware/__init__.py +0 -0
  313. {fastmcp-2.10.1 → fastmcp-2.10.3}/src/fastmcp/server/middleware/error_handling.py +0 -0
  314. {fastmcp-2.10.1 → fastmcp-2.10.3}/src/fastmcp/server/middleware/logging.py +0 -0
  315. {fastmcp-2.10.1 → fastmcp-2.10.3}/src/fastmcp/server/middleware/middleware.py +0 -0
  316. {fastmcp-2.10.1 → fastmcp-2.10.3}/src/fastmcp/server/middleware/rate_limiting.py +0 -0
  317. {fastmcp-2.10.1 → fastmcp-2.10.3}/src/fastmcp/server/middleware/timing.py +0 -0
  318. {fastmcp-2.10.1 → fastmcp-2.10.3}/src/fastmcp/tools/__init__.py +0 -0
  319. {fastmcp-2.10.1 → fastmcp-2.10.3}/src/fastmcp/tools/tool_manager.py +0 -0
  320. {fastmcp-2.10.1 → fastmcp-2.10.3}/src/fastmcp/utilities/__init__.py +0 -0
  321. {fastmcp-2.10.1 → fastmcp-2.10.3}/src/fastmcp/utilities/cache.py +0 -0
  322. {fastmcp-2.10.1 → fastmcp-2.10.3}/src/fastmcp/utilities/components.py +0 -0
  323. {fastmcp-2.10.1 → fastmcp-2.10.3}/src/fastmcp/utilities/exceptions.py +0 -0
  324. {fastmcp-2.10.1 → fastmcp-2.10.3}/src/fastmcp/utilities/http.py +0 -0
  325. {fastmcp-2.10.1 → fastmcp-2.10.3}/src/fastmcp/utilities/inspect.py +0 -0
  326. {fastmcp-2.10.1 → fastmcp-2.10.3}/src/fastmcp/utilities/json_schema_type.py +0 -0
  327. {fastmcp-2.10.1 → fastmcp-2.10.3}/tests/__init__.py +0 -0
  328. {fastmcp-2.10.1 → fastmcp-2.10.3}/tests/auth/__init__.py +0 -0
  329. {fastmcp-2.10.1 → fastmcp-2.10.3}/tests/auth/providers/test_bearer_env.py +0 -0
  330. {fastmcp-2.10.1 → fastmcp-2.10.3}/tests/auth/providers/test_token_verifier.py +0 -0
  331. {fastmcp-2.10.1 → fastmcp-2.10.3}/tests/auth/test_oauth_client.py +0 -0
  332. {fastmcp-2.10.1/tests/cli → fastmcp-2.10.3/tests/client}/__init__.py +0 -0
  333. {fastmcp-2.10.1 → fastmcp-2.10.3}/tests/client/test_logs.py +0 -0
  334. {fastmcp-2.10.1 → fastmcp-2.10.3}/tests/client/test_notifications.py +0 -0
  335. {fastmcp-2.10.1 → fastmcp-2.10.3}/tests/client/test_progress.py +0 -0
  336. {fastmcp-2.10.1 → fastmcp-2.10.3}/tests/client/test_roots.py +0 -0
  337. {fastmcp-2.10.1 → fastmcp-2.10.3}/tests/client/test_sampling.py +0 -0
  338. {fastmcp-2.10.1 → fastmcp-2.10.3}/tests/client/test_sse.py +0 -0
  339. {fastmcp-2.10.1 → fastmcp-2.10.3}/tests/client/test_stdio.py +0 -0
  340. {fastmcp-2.10.1 → fastmcp-2.10.3}/tests/conftest.py +0 -0
  341. {fastmcp-2.10.1 → fastmcp-2.10.3}/tests/contrib/__init__.py +0 -0
  342. {fastmcp-2.10.1 → fastmcp-2.10.3}/tests/contrib/test_bulk_tool_caller.py +0 -0
  343. {fastmcp-2.10.1 → fastmcp-2.10.3}/tests/contrib/test_mcp_mixin.py +0 -0
  344. {fastmcp-2.10.1 → fastmcp-2.10.3}/tests/deprecated/__init__.py +0 -0
  345. {fastmcp-2.10.1 → fastmcp-2.10.3}/tests/deprecated/test_deprecated.py +0 -0
  346. {fastmcp-2.10.1 → fastmcp-2.10.3}/tests/deprecated/test_mount_import_arg_order.py +0 -0
  347. {fastmcp-2.10.1 → fastmcp-2.10.3}/tests/deprecated/test_mount_separators.py +0 -0
  348. {fastmcp-2.10.1 → fastmcp-2.10.3}/tests/deprecated/test_resource_prefixes.py +0 -0
  349. {fastmcp-2.10.1 → fastmcp-2.10.3}/tests/deprecated/test_route_type_ignore.py +0 -0
  350. {fastmcp-2.10.1/tests/client → fastmcp-2.10.3/tests/prompts}/__init__.py +0 -0
  351. {fastmcp-2.10.1 → fastmcp-2.10.3}/tests/prompts/test_prompt.py +0 -0
  352. {fastmcp-2.10.1/tests/prompts → fastmcp-2.10.3/tests/resources}/__init__.py +0 -0
  353. {fastmcp-2.10.1 → fastmcp-2.10.3}/tests/resources/test_file_resources.py +0 -0
  354. {fastmcp-2.10.1 → fastmcp-2.10.3}/tests/resources/test_resource_template.py +0 -0
  355. {fastmcp-2.10.1 → fastmcp-2.10.3}/tests/resources/test_resources.py +0 -0
  356. {fastmcp-2.10.1/tests/resources → fastmcp-2.10.3/tests/server}/__init__.py +0 -0
  357. {fastmcp-2.10.1/tests/server → fastmcp-2.10.3/tests/server/http}/__init__.py +0 -0
  358. {fastmcp-2.10.1 → fastmcp-2.10.3}/tests/server/http/test_auth_setup.py +0 -0
  359. {fastmcp-2.10.1 → fastmcp-2.10.3}/tests/server/http/test_bearer_auth_backend.py +0 -0
  360. {fastmcp-2.10.1 → fastmcp-2.10.3}/tests/server/http/test_custom_routes.py +0 -0
  361. {fastmcp-2.10.1 → fastmcp-2.10.3}/tests/server/http/test_http_dependencies.py +0 -0
  362. {fastmcp-2.10.1 → fastmcp-2.10.3}/tests/server/http/test_http_middleware.py +0 -0
  363. {fastmcp-2.10.1/tests/server/http → fastmcp-2.10.3/tests/server/middleware}/__init__.py +0 -0
  364. {fastmcp-2.10.1 → fastmcp-2.10.3}/tests/server/middleware/test_error_handling.py +0 -0
  365. {fastmcp-2.10.1 → fastmcp-2.10.3}/tests/server/middleware/test_logging.py +0 -0
  366. {fastmcp-2.10.1 → fastmcp-2.10.3}/tests/server/middleware/test_middleware.py +0 -0
  367. {fastmcp-2.10.1 → fastmcp-2.10.3}/tests/server/middleware/test_rate_limiting.py +0 -0
  368. {fastmcp-2.10.1 → fastmcp-2.10.3}/tests/server/middleware/test_timing.py +0 -0
  369. {fastmcp-2.10.1/tests/server/middleware → fastmcp-2.10.3/tests/server/openapi}/__init__.py +0 -0
  370. {fastmcp-2.10.1 → fastmcp-2.10.3}/tests/server/openapi/test_openapi_path_parameters.py +0 -0
  371. {fastmcp-2.10.1/tests/server/openapi → fastmcp-2.10.3/tests/server/proxy}/__init__.py +0 -0
  372. {fastmcp-2.10.1 → fastmcp-2.10.3}/tests/server/test_app_state.py +0 -0
  373. {fastmcp-2.10.1 → fastmcp-2.10.3}/tests/server/test_auth_integration.py +0 -0
  374. {fastmcp-2.10.1 → fastmcp-2.10.3}/tests/server/test_context.py +0 -0
  375. {fastmcp-2.10.1 → fastmcp-2.10.3}/tests/server/test_file_server.py +0 -0
  376. {fastmcp-2.10.1 → fastmcp-2.10.3}/tests/server/test_logging.py +0 -0
  377. {fastmcp-2.10.1 → fastmcp-2.10.3}/tests/server/test_resource_prefix_formats.py +0 -0
  378. {fastmcp-2.10.1 → fastmcp-2.10.3}/tests/server/test_run_server.py +0 -0
  379. {fastmcp-2.10.1 → fastmcp-2.10.3}/tests/server/test_server.py +0 -0
  380. {fastmcp-2.10.1 → fastmcp-2.10.3}/tests/server/test_tool_annotations.py +0 -0
  381. {fastmcp-2.10.1 → fastmcp-2.10.3}/tests/server/test_tool_exclude_args.py +0 -0
  382. {fastmcp-2.10.1 → fastmcp-2.10.3}/tests/test_servers/fastmcp_server.py +0 -0
  383. {fastmcp-2.10.1 → fastmcp-2.10.3}/tests/test_servers/sse.py +0 -0
  384. {fastmcp-2.10.1 → fastmcp-2.10.3}/tests/test_servers/stdio.py +0 -0
  385. {fastmcp-2.10.1 → fastmcp-2.10.3}/tests/tools/__init__.py +0 -0
  386. {fastmcp-2.10.1 → fastmcp-2.10.3}/tests/utilities/__init__.py +0 -0
  387. {fastmcp-2.10.1 → fastmcp-2.10.3}/tests/utilities/openapi/__init__.py +0 -0
  388. {fastmcp-2.10.1 → fastmcp-2.10.3}/tests/utilities/openapi/conftest.py +0 -0
  389. {fastmcp-2.10.1 → fastmcp-2.10.3}/tests/utilities/openapi/test_openapi.py +0 -0
  390. {fastmcp-2.10.1 → fastmcp-2.10.3}/tests/utilities/openapi/test_openapi_advanced.py +0 -0
  391. {fastmcp-2.10.1 → fastmcp-2.10.3}/tests/utilities/openapi/test_openapi_fastapi.py +0 -0
  392. {fastmcp-2.10.1 → fastmcp-2.10.3}/tests/utilities/test_cache.py +0 -0
  393. {fastmcp-2.10.1 → fastmcp-2.10.3}/tests/utilities/test_inspect.py +0 -0
  394. {fastmcp-2.10.1 → fastmcp-2.10.3}/tests/utilities/test_json_schema_type.py +0 -0
  395. {fastmcp-2.10.1 → fastmcp-2.10.3}/tests/utilities/test_logging.py +0 -0
  396. {fastmcp-2.10.1 → fastmcp-2.10.3}/tests/utilities/test_tests.py +0 -0
  397. {fastmcp-2.10.1 → fastmcp-2.10.3}/tests/utilities/test_typeadapter.py +0 -0
@@ -48,9 +48,11 @@ body:
48
48
  To get this information, run the following command in your terminal and paste the output below:
49
49
 
50
50
  ```bash
51
- fastmcp version
51
+ fastmcp version --copy
52
52
  ```
53
53
 
54
+ *Note: if you're using FastMCP < 2.10.3, run `fastmcp version` instead.*
55
+
54
56
  If there is other information that would be helpful, please include it as well.
55
57
  render: Text
56
58
  validations:
@@ -2,7 +2,7 @@ fail_fast: false
2
2
 
3
3
  repos:
4
4
  - repo: https://github.com/abravalheri/validate-pyproject
5
- rev: v0.23
5
+ rev: v0.24.1
6
6
  hooks:
7
7
  - id: validate-pyproject
8
8
 
@@ -14,10 +14,10 @@ repos:
14
14
 
15
15
  - repo: https://github.com/astral-sh/ruff-pre-commit
16
16
  # Ruff version.
17
- rev: v0.11.4
17
+ rev: v0.12.1
18
18
  hooks:
19
19
  # Run the linter.
20
- - id: ruff
20
+ - id: ruff-check
21
21
  args: [--fix, --exit-non-zero-on-fix]
22
22
  # Run the formatter.
23
23
  - id: ruff-format
@@ -1,7 +1,7 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fastmcp
3
- Version: 2.10.1
4
- Summary: The fast, Pythonic way to build MCP servers.
3
+ Version: 2.10.3
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
7
7
  Project-URL: Documentation, https://gofastmcp.com
@@ -18,14 +18,15 @@ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
18
18
  Classifier: Typing :: Typed
19
19
  Requires-Python: >=3.10
20
20
  Requires-Dist: authlib>=1.5.2
21
+ Requires-Dist: cyclopts>=3.0.0
21
22
  Requires-Dist: exceptiongroup>=1.2.2
22
23
  Requires-Dist: httpx>=0.28.1
23
24
  Requires-Dist: mcp>=1.10.0
24
25
  Requires-Dist: openapi-pydantic>=0.5.1
25
26
  Requires-Dist: pydantic[email]>=2.11.7
27
+ Requires-Dist: pyperclip>=1.9.0
26
28
  Requires-Dist: python-dotenv>=1.1.0
27
29
  Requires-Dist: rich>=13.9.4
28
- Requires-Dist: typer>=0.15.2
29
30
  Provides-Extra: websockets
30
31
  Requires-Dist: websockets>=15.0.1; extra == 'websockets'
31
32
  Description-Content-Type: text/markdown
@@ -0,0 +1,3 @@
1
+ <svg width="344" height="250" viewBox="0 0 344 250" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M317.594 60H178.438C158.407 60 140.309 71.9543 132.448 90.3779L123.789 111.3C129.321 110.442 134.957 109.998 140.653 109.998H297.593L272.593 169.999H140.653C123.17 169.999 100.093 177.499 88.0928 198.999L69.4229 242.662L66.5 249.726H0L77.2617 66.8311C94.5556 26.299 134.37 3.8525e-06 178.438 0H343.594L317.594 60Z" fill="black"/>
3
+ </svg>
@@ -212,7 +212,7 @@ FastMCP 2.8.0 introduces powerful new ways to customize and control your MCP ser
212
212
  The highlight of this release is first-class [**Tool Transformation**](/patterns/tool-transformation), a new feature that lets you create enhanced variations of existing tools. You can now easily rename arguments, hide parameters, modify descriptions, and even wrap tools with custom validation or post-processing logic—all without rewriting the original code. This makes it easier than ever to adapt generic tools for specific LLM use cases or to simplify complex APIs. Huge thanks to [@strawgate](https://github.com/strawgate) for partnering on this, starting with [#591](https://github.com/jlowin/fastmcp/discussions/591) and [#599](https://github.com/jlowin/fastmcp/pull/599) and continuing offline.
213
213
 
214
214
  ### Component Control
215
- This release also gives you more granular control over which components are exposed to clients. With new [**tag-based filtering**](/servers/fastmcp#tag-based-filtering), you can selectively enable or disable tools, resources, and prompts based on tags, perfect for managing different environments or user permissions. Complementing this, every component now supports being [programmatically enabled or disabled](/servers/tools#disabling-tools), offering dynamic control over your server's capabilities.
215
+ This release also gives you more granular control over which components are exposed to clients. With new [**tag-based filtering**](/servers/server#tag-based-filtering), you can selectively enable or disable tools, resources, and prompts based on tags, perfect for managing different environments or user permissions. Complementing this, every component now supports being [programmatically enabled or disabled](/servers/tools#disabling-tools), offering dynamic control over your server's capabilities.
216
216
 
217
217
  ### Tools-by-Default
218
218
  Finally, to improve compatibility with a wider range of LLM clients, this release changes the default behavior for OpenAPI integration: all API endpoints are now converted to `Tools` by default. This is a **breaking change** but pragmatically necessitated by the fact that the majority of MCP clients available today are, sadly, only compatible with MCP tools. Therefore, this change significantly simplifies the out-of-the-box experience and ensures your entire API is immediately accessible to any tool-using agent.
@@ -176,7 +176,7 @@ async with client:
176
176
 
177
177
  # Execute a tool
178
178
  result = await client.call_tool("multiply", {"a": 5, "b": 3})
179
- print(result[0].text) # "15"
179
+ print(result.data) # 15
180
180
  ```
181
181
 
182
182
  See [Tools](/clients/tools) for detailed documentation.
@@ -88,6 +88,18 @@ transport = StreamableHttpTransport(
88
88
  client = Client(transport)
89
89
  ```
90
90
 
91
+ This can be written more concisely using the `BearerAuth` helper function:
92
+
93
+ ```python
94
+ from fastmcp import Client
95
+ from fastmcp.client.auth import BearerAuth
96
+
97
+ client = Client(
98
+ "https://example.com/mcp",
99
+ auth=BearerAuth("your-token-here"),
100
+ )
101
+ ```
102
+
91
103
  ### SSE (Server-Sent Events)
92
104
 
93
105
  <VersionBadge version="2.0.0" />
@@ -434,4 +446,4 @@ If your configuration has only a single server, the client will connect directly
434
446
 
435
447
  <Note>
436
448
  The MCPConfig format is an emerging standard for MCP server configuration and may change as the MCP ecosystem evolves. While FastMCP aims to maintain compatibility with future versions, be aware that field names or structure might change.
437
- </Note>
449
+ </Note>
@@ -56,4 +56,4 @@ We review submissions regularly and feature projects that provide value to the F
56
56
 
57
57
  ## Further Reading
58
58
 
59
- - [Contrib Modules](/integrations/contrib) - Community-contributed modules that are distributed with FastMCP itself
59
+ - [Contrib Modules](/patterns/contrib) - Community-contributed modules that are distributed with FastMCP itself
@@ -1,6 +1,7 @@
1
1
  /* Code highlighting -- target only inline code elements, not code blocks */
2
2
  p code:not(pre code),
3
3
  table code:not(pre code),
4
+ .prose code:not(pre code),
4
5
  li code:not(pre code),
5
6
  h1 code:not(pre code),
6
7
  h2 code:not(pre code),
@@ -21,8 +21,8 @@
21
21
  },
22
22
  "description": "The fast, Pythonic way to build MCP servers and clients.",
23
23
  "favicon": {
24
- "dark": "/assets/favicon.ico",
25
- "light": "/assets/favicon.ico"
24
+ "dark": "/assets/favicon.svg",
25
+ "light": "/assets/favicon.svg"
26
26
  },
27
27
  "footer": {
28
28
  "socials": {
@@ -139,10 +139,11 @@
139
139
  "integrations/chatgpt",
140
140
  "integrations/claude-code",
141
141
  "integrations/claude-desktop",
142
- "integrations/gemini",
143
- "integrations/openai",
142
+ "integrations/cursor",
144
143
  "integrations/eunomia-authorization",
145
- "integrations/contrib"
144
+ "integrations/gemini",
145
+ "integrations/mcp-json-configuration",
146
+ "integrations/openai"
146
147
  ]
147
148
  },
148
149
  {
@@ -152,7 +153,8 @@
152
153
  "patterns/decorating-methods",
153
154
  "patterns/http-requests",
154
155
  "patterns/testing",
155
- "patterns/cli"
156
+ "patterns/cli",
157
+ "patterns/contrib"
156
158
  ]
157
159
  },
158
160
  {
@@ -125,5 +125,5 @@ fastmcp run my_server.py:mcp
125
125
  Note that FastMCP *does not* require the `__main__` block in the server file, and will ignore it if it is present. Instead, it looks for the server object provided in the CLI command (here, `mcp`). If no server object is provided, `fastmcp run` will automatically search for servers called "mcp", "app", or "server" in the file.
126
126
 
127
127
  <Tip>
128
- We pointed our client at the server file, which is recognized as a Python MCP server and executed with `python my_server.py` by default. This executes the `__main__` block of the server file. There are other ways to run the server, which are described in the [server configuration](/servers/fastmcp#running-the-server) guide.
128
+ We pointed our client at the server file, which is recognized as a Python MCP server and executed with `python my_server.py` by default. This executes the `__main__` block of the server file. There are other ways to run the server, which are described in the [server configuration](/servers/server#running-the-server) guide.
129
129
  </Tip>
@@ -1,9 +1,8 @@
1
1
  ---
2
- title: Anthropic API + FastMCP
2
+ title: Anthropic API 🤝 FastMCP
3
3
  sidebarTitle: Anthropic API
4
4
  description: Call FastMCP servers from the Anthropic API
5
- icon: message-smile
6
- tag: NEW
5
+ icon: message-code
7
6
  ---
8
7
 
9
8
  import { VersionBadge } from "/snippets/version-badge.mdx"
@@ -1,5 +1,5 @@
1
1
  ---
2
- title: ChatGPT + FastMCP
2
+ title: ChatGPT 🤝 FastMCP
3
3
  sidebarTitle: ChatGPT
4
4
  description: Connect FastMCP servers to ChatGPT Deep Research
5
5
  icon: message-smile
@@ -135,7 +135,8 @@ Replace `https://your-server-url.com` with the actual URL of your server (such a
135
135
  2. Click **Add custom connector**
136
136
  3. Enter your server details:
137
137
  - **Name**: Library Catalog
138
- - **URL**: Your server URL (e.g., `https://abc123.ngrok.io`)
138
+ - **URL**: Your server URL, including the path.
139
+ - **Note**: Ensure your URL includes the correct path for the transport you’re using. The defaults are /sse/ for SSE (e.g., https://abc123.ngrok.io/sse/) and /mcp/ for HTTP (e.g., https://abc123.ngrok.io/mcp/).
139
140
  - **Description**: A library catalog for searching and retrieving books
140
141
 
141
142
  #### Test the Connection
@@ -0,0 +1,133 @@
1
+ ---
2
+ title: Claude Code 🤝 FastMCP
3
+ sidebarTitle: Claude Code
4
+ description: Install and use FastMCP servers in Claude Code
5
+ icon: message-smile
6
+ tag: NEW
7
+ ---
8
+
9
+ import { VersionBadge } from "/snippets/version-badge.mdx"
10
+ import { LocalFocusTip } from "/snippets/local-focus.mdx"
11
+
12
+ <LocalFocusTip />
13
+
14
+ Claude Code supports MCP servers through multiple transport methods including STDIO, SSE, and HTTP, allowing you to extend Claude's capabilities with custom tools, resources, and prompts from your FastMCP servers.
15
+
16
+ ## Requirements
17
+
18
+ This integration uses STDIO transport to run your FastMCP server locally. For remote deployments, you can run your FastMCP server with HTTP or SSE transport and configure it directly using Claude Code's built-in MCP management commands.
19
+
20
+ ## Create a Server
21
+
22
+ The examples in this guide will use the following simple dice-rolling server, saved as `server.py`.
23
+
24
+ ```python server.py
25
+ import random
26
+ from fastmcp import FastMCP
27
+
28
+ mcp = FastMCP(name="Dice Roller")
29
+
30
+ @mcp.tool
31
+ def roll_dice(n_dice: int) -> list[int]:
32
+ """Roll `n_dice` 6-sided dice and return the results."""
33
+ return [random.randint(1, 6) for _ in range(n_dice)]
34
+
35
+ if __name__ == "__main__":
36
+ mcp.run()
37
+ ```
38
+
39
+ ## Install the Server
40
+
41
+ ### FastMCP CLI
42
+ <VersionBadge version="2.10.3" />
43
+
44
+ The easiest way to install a FastMCP server in Claude Code is using the `fastmcp install claude-code` command. This automatically handles the configuration, dependency management, and calls Claude Code's built-in MCP management system.
45
+
46
+ ```bash
47
+ fastmcp install claude-code server.py
48
+ ```
49
+
50
+ The install command supports the same `file.py:object` notation as the `run` command. If no object is specified, it will automatically look for a FastMCP server object named `mcp`, `server`, or `app` in your file:
51
+
52
+ ```bash
53
+ # These are equivalent if your server object is named 'mcp'
54
+ fastmcp install claude-code server.py
55
+ fastmcp install claude-code server.py:mcp
56
+
57
+ # Use explicit object name if your server has a different name
58
+ fastmcp install claude-code server.py:my_custom_server
59
+ ```
60
+
61
+ The command will automatically configure the server with Claude Code's `claude mcp add` command.
62
+
63
+ #### Dependencies
64
+
65
+ If your server has dependencies, include them with the `--with` flag:
66
+
67
+ ```bash
68
+ fastmcp install claude-code server.py --with pandas --with requests
69
+ ```
70
+
71
+ Alternatively, you can specify dependencies directly in your server code:
72
+
73
+ ```python server.py
74
+ from fastmcp import FastMCP
75
+
76
+ mcp = FastMCP(
77
+ name="Dice Roller",
78
+ dependencies=["pandas", "requests"]
79
+ )
80
+ ```
81
+
82
+ #### Environment Variables
83
+
84
+ If your server needs environment variables (like API keys), you must include them:
85
+
86
+ ```bash
87
+ fastmcp install claude-code server.py --name "Weather Server" \
88
+ --env-var API_KEY=your-api-key \
89
+ --env-var DEBUG=true
90
+ ```
91
+
92
+ Or load them from a `.env` file:
93
+
94
+ ```bash
95
+ fastmcp install claude-code server.py --name "Weather Server" --env-file .env
96
+ ```
97
+
98
+ <Warning>
99
+ **Claude Code must be installed**. The integration looks for the Claude Code CLI at the default installation location (`~/.claude/local/claude`) and uses the `claude mcp add` command to register servers.
100
+ </Warning>
101
+
102
+ ### Manual Configuration
103
+
104
+ For more control over the configuration, you can manually use Claude Code's built-in MCP management commands:
105
+
106
+ ```bash
107
+ # Add a server with custom configuration
108
+ claude mcp add dice-roller -- uv run --with fastmcp fastmcp run server.py
109
+
110
+ # Add with environment variables
111
+ claude mcp add weather-server -e API_KEY=secret -e DEBUG=true -- uv run --with fastmcp fastmcp run server.py
112
+
113
+ # Add with specific scope (local, user, or project)
114
+ claude mcp add my-server --scope user -- uv run --with fastmcp fastmcp run server.py
115
+ ```
116
+
117
+ ## Using the Server
118
+
119
+ Once your server is installed, you can start using your FastMCP server with Claude Code.
120
+
121
+ Try asking Claude something like:
122
+
123
+ > "Roll some dice for me"
124
+
125
+ Claude will automatically detect your `roll_dice` tool and use it to fulfill your request, returning something like:
126
+
127
+ > I'll roll some dice for you! Here are your results: [4, 2, 6]
128
+ >
129
+ > You rolled three dice and got a 4, a 2, and a 6!
130
+
131
+ Claude Code can now access all the tools, resources, and prompts you've defined in your FastMCP server.
132
+
133
+ If your server provides resources, you can reference them with `@` mentions using the format `@server:protocol://resource/path`. If your server provides prompts, you can use them as slash commands with `/mcp__servername__promptname`.
@@ -1,10 +1,14 @@
1
1
  ---
2
- title: Claude Desktop + FastMCP
2
+ title: Claude Desktop 🤝 FastMCP
3
3
  sidebarTitle: Claude Desktop
4
4
  description: Call FastMCP servers from Claude Desktop
5
5
  icon: message-smile
6
6
  ---
7
7
 
8
+ import { VersionBadge } from "/snippets/version-badge.mdx"
9
+ import { LocalFocusTip } from "/snippets/local-focus.mdx"
10
+
11
+ <LocalFocusTip />
8
12
 
9
13
  Claude Desktop supports MCP servers through local STDIO connections and remote servers (beta), allowing you to extend Claude's capabilities with custom tools, resources, and prompts from your FastMCP servers.
10
14
 
@@ -47,22 +51,27 @@ if __name__ == "__main__":
47
51
  ## Install the Server
48
52
 
49
53
  ### FastMCP CLI
54
+ <VersionBadge version="2.10.3" />
55
+
56
+ The easiest way to install a FastMCP server in Claude Desktop is using the `fastmcp install claude-desktop` command. This automatically handles the configuration and dependency management.
50
57
 
51
- The easiest way to install a FastMCP server in Claude Desktop is using the `fastmcp install` command. This automatically handles the configuration and dependency management.
58
+ <Tip>
59
+ Prior to version 2.10.3, Claude Desktop could be managed by running `fastmcp install <path>` without specifying the client.
60
+ </Tip>
52
61
 
53
62
  ```bash
54
- fastmcp install server.py
63
+ fastmcp install claude-desktop server.py
55
64
  ```
56
65
 
57
66
  The install command supports the same `file.py:object` notation as the `run` command. If no object is specified, it will automatically look for a FastMCP server object named `mcp`, `server`, or `app` in your file:
58
67
 
59
68
  ```bash
60
69
  # These are equivalent if your server object is named 'mcp'
61
- fastmcp install server.py
62
- fastmcp install server.py:mcp
70
+ fastmcp install claude-desktop server.py
71
+ fastmcp install claude-desktop server.py:mcp
63
72
 
64
73
  # Use explicit object name if your server has a different name
65
- fastmcp install server.py:my_custom_server
74
+ fastmcp install claude-desktop server.py:my_custom_server
66
75
  ```
67
76
 
68
77
  After installation, restart Claude Desktop completely. You should see a hammer icon (🔨) in the bottom left of the input box, indicating that MCP tools are available.
@@ -72,7 +81,7 @@ After installation, restart Claude Desktop completely. You should see a hammer i
72
81
  If your server has dependencies, include them with the `--with` flag:
73
82
 
74
83
  ```bash
75
- fastmcp install server.py --with pandas --with requests
84
+ fastmcp install claude-desktop server.py --with pandas --with requests
76
85
  ```
77
86
 
78
87
  Alternatively, you can specify dependencies directly in your server code:
@@ -95,7 +104,7 @@ Claude Desktop runs servers in a completely isolated environment with no access
95
104
  If your server needs environment variables (like API keys), you must include them:
96
105
 
97
106
  ```bash
98
- fastmcp install server.py --name "Weather Server" \
107
+ fastmcp install claude-desktop server.py --name "Weather Server" \
99
108
  --env-var API_KEY=your-api-key \
100
109
  --env-var DEBUG=true
101
110
  ```
@@ -103,7 +112,7 @@ fastmcp install server.py --name "Weather Server" \
103
112
  Or load them from a `.env` file:
104
113
 
105
114
  ```bash
106
- fastmcp install server.py --name "Weather Server" --env-file .env
115
+ fastmcp install claude-desktop server.py --name "Weather Server" --env-file .env
107
116
  ```
108
117
  <Warning>
109
118
  - **`uv` must be installed and available in your system PATH**. Claude Desktop runs in its own isolated environment and needs `uv` to manage dependencies.
@@ -0,0 +1,208 @@
1
+ ---
2
+ title: Cursor 🤝 FastMCP
3
+ sidebarTitle: Cursor
4
+ description: Install and use FastMCP servers in Cursor
5
+ icon: message-smile
6
+ tag: NEW
7
+ ---
8
+
9
+ import { VersionBadge } from "/snippets/version-badge.mdx"
10
+ import { LocalFocusTip } from "/snippets/local-focus.mdx"
11
+
12
+ <LocalFocusTip />
13
+
14
+ Cursor supports MCP servers through multiple transport methods including STDIO, SSE, and Streamable HTTP, allowing you to extend Cursor's AI assistant with custom tools, resources, and prompts from your FastMCP servers.
15
+
16
+ ## Requirements
17
+
18
+ This integration uses STDIO transport to run your FastMCP server locally. For remote deployments, you can run your FastMCP server with HTTP or SSE transport and configure it directly in Cursor's settings.
19
+
20
+ ## Create a Server
21
+
22
+ The examples in this guide will use the following simple dice-rolling server, saved as `server.py`.
23
+
24
+ ```python server.py
25
+ import random
26
+ from fastmcp import FastMCP
27
+
28
+ mcp = FastMCP(name="Dice Roller")
29
+
30
+ @mcp.tool
31
+ def roll_dice(n_dice: int) -> list[int]:
32
+ """Roll `n_dice` 6-sided dice and return the results."""
33
+ return [random.randint(1, 6) for _ in range(n_dice)]
34
+
35
+ if __name__ == "__main__":
36
+ mcp.run()
37
+ ```
38
+
39
+ ## Install the Server
40
+
41
+ ### FastMCP CLI
42
+ <VersionBadge version="2.10.3" />
43
+
44
+ The easiest way to install a FastMCP server in Cursor is using the `fastmcp install cursor` command. This automatically handles the configuration, dependency management, and opens Cursor with a deeplink to install the server.
45
+
46
+ ```bash
47
+ fastmcp install cursor server.py
48
+ ```
49
+
50
+ The install command supports the same `file.py:object` notation as the `run` command. If no object is specified, it will automatically look for a FastMCP server object named `mcp`, `server`, or `app` in your file:
51
+
52
+ ```bash
53
+ # These are equivalent if your server object is named 'mcp'
54
+ fastmcp install cursor server.py
55
+ fastmcp install cursor server.py:mcp
56
+
57
+ # Use explicit object name if your server has a different name
58
+ fastmcp install cursor server.py:my_custom_server
59
+ ```
60
+
61
+ After running the command, Cursor will open automatically and prompt you to install the server. The command will be `uv`, which is expected as this is a Python STDIO server. Click "Install" to confirm:
62
+
63
+ ![Cursor install prompt](./cursor-install-mcp.png)
64
+
65
+ #### Dependencies
66
+
67
+ If your server has dependencies, include them with the `--with` flag:
68
+
69
+ ```bash
70
+ fastmcp install cursor server.py --with pandas --with requests
71
+ ```
72
+
73
+ Alternatively, you can specify dependencies directly in your server code:
74
+
75
+ ```python server.py
76
+ from fastmcp import FastMCP
77
+
78
+ mcp = FastMCP(
79
+ name="Dice Roller",
80
+ dependencies=["pandas", "requests"]
81
+ )
82
+ ```
83
+
84
+ #### Environment Variables
85
+
86
+ <Warning>
87
+ Cursor runs servers in a completely isolated environment with no access to your shell environment or locally installed applications. You must explicitly pass any environment variables your server needs.
88
+ </Warning>
89
+
90
+ If your server needs environment variables (like API keys), you must include them:
91
+
92
+ ```bash
93
+ fastmcp install cursor server.py --name "Weather Server" \
94
+ --env-var API_KEY=your-api-key \
95
+ --env-var DEBUG=true
96
+ ```
97
+
98
+ Or load them from a `.env` file:
99
+
100
+ ```bash
101
+ fastmcp install cursor server.py --name "Weather Server" --env-file .env
102
+ ```
103
+
104
+ <Warning>
105
+ **`uv` must be installed and available in your system PATH**. Cursor runs in its own isolated environment and needs `uv` to manage dependencies.
106
+ </Warning>
107
+
108
+ ### Generate MCP JSON
109
+
110
+ <Note>
111
+ **Use the first-class integration above for the best experience.** The MCP JSON generation is useful for advanced use cases, manual configuration, or integration with other tools.
112
+ </Note>
113
+
114
+ You can generate MCP JSON configuration for manual use:
115
+
116
+ ```bash
117
+ # Generate configuration and output to stdout
118
+ fastmcp install mcp-json server.py --name "Dice Roller" --with pandas
119
+
120
+ # Copy configuration to clipboard for easy pasting
121
+ fastmcp install mcp-json server.py --name "Dice Roller" --copy
122
+ ```
123
+
124
+ This generates the standard `mcpServers` configuration format that can be used with any MCP-compatible client.
125
+
126
+ ### Manual Configuration
127
+
128
+ For more control over the configuration, you can manually edit Cursor's configuration file. The configuration file is located at:
129
+ - **All platforms**: `~/.cursor/mcp.json`
130
+
131
+ The configuration file is a JSON object with a `mcpServers` key, which contains the configuration for each MCP server.
132
+
133
+ ```json
134
+ {
135
+ "mcpServers": {
136
+ "dice-roller": {
137
+ "command": "python",
138
+ "args": ["path/to/your/server.py"]
139
+ }
140
+ }
141
+ }
142
+ ```
143
+
144
+ After updating the configuration file, your server should be available in Cursor.
145
+
146
+ #### Dependencies
147
+
148
+ If your server has dependencies, you can use `uv` or another package manager to set up the environment.
149
+
150
+ ```json
151
+ {
152
+ "mcpServers": {
153
+ "dice-roller": {
154
+ "command": "uv",
155
+ "args": [
156
+ "run",
157
+ "--with", "pandas",
158
+ "--with", "requests",
159
+ "python",
160
+ "path/to/your/server.py"
161
+ ]
162
+ }
163
+ }
164
+ }
165
+ ```
166
+
167
+ <Warning>
168
+ **`uv` must be installed and available in your system PATH**. Cursor runs in its own isolated environment and needs `uv` to manage dependencies.
169
+ </Warning>
170
+
171
+ #### Environment Variables
172
+
173
+ You can also specify environment variables in the configuration:
174
+
175
+ ```json
176
+ {
177
+ "mcpServers": {
178
+ "weather-server": {
179
+ "command": "python",
180
+ "args": ["path/to/weather_server.py"],
181
+ "env": {
182
+ "API_KEY": "your-api-key",
183
+ "DEBUG": "true"
184
+ }
185
+ }
186
+ }
187
+ }
188
+ ```
189
+
190
+ <Warning>
191
+ Cursor runs servers in a completely isolated environment with no access to your shell environment or locally installed applications. You must explicitly pass any environment variables your server needs.
192
+ </Warning>
193
+
194
+ ## Using the Server
195
+
196
+ Once your server is installed, you can start using your FastMCP server with Cursor's AI assistant.
197
+
198
+ Try asking Cursor something like:
199
+
200
+ > "Roll some dice for me"
201
+
202
+ Cursor will automatically detect your `roll_dice` tool and use it to fulfill your request, returning something like:
203
+
204
+ > 🎲 Here are your dice rolls: 4, 6, 4
205
+ >
206
+ > You rolled 3 dice with a total of 14! The 6 was a nice high roll there!
207
+
208
+ The AI assistant can now access all the tools, resources, and prompts you've defined in your FastMCP server.
@@ -1,8 +1,8 @@
1
1
  ---
2
- title: Eunomia Authorization + FastMCP
3
- sidebarTitle: Eunomia Authorization
2
+ title: Eunomia Authorization 🤝 FastMCP
3
+ sidebarTitle: Eunomia Auth
4
4
  description: Add policy-based authorization to your FastMCP servers
5
- icon: layer-group
5
+ icon: shield-check
6
6
  tag: NEW
7
7
  ---
8
8
 
@@ -1,9 +1,8 @@
1
1
  ---
2
- title: Gemini SDK + FastMCP
2
+ title: Gemini SDK 🤝 FastMCP
3
3
  sidebarTitle: Gemini SDK
4
4
  description: Call FastMCP servers from the Google Gemini SDK
5
- icon: message-smile
6
- tag: NEW
5
+ icon: message-code
7
6
  ---
8
7
 
9
8
  import { VersionBadge } from "/snippets/version-badge.mdx"