fastmcp 2.12.2__tar.gz → 2.12.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 (588) hide show
  1. {fastmcp-2.12.2 → fastmcp-2.12.3}/PKG-INFO +2 -2
  2. {fastmcp-2.12.2 → fastmcp-2.12.3}/README.md +1 -1
  3. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/changelog.mdx +15 -1
  4. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/docs.json +16 -6
  5. fastmcp-2.12.3/docs/integrations/gemini-cli.mdx +173 -0
  6. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/integrations/openapi.mdx +1 -1
  7. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/public/schemas/fastmcp.json/latest.json +2 -1
  8. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/public/schemas/fastmcp.json/v1.json +2 -1
  9. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/python-sdk/fastmcp-cli-cli.mdx +5 -5
  10. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/python-sdk/fastmcp-cli-install-claude_code.mdx +1 -1
  11. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/python-sdk/fastmcp-cli-install-claude_desktop.mdx +1 -1
  12. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/python-sdk/fastmcp-cli-install-cursor.mdx +2 -2
  13. fastmcp-2.12.3/docs/python-sdk/fastmcp-cli-install-gemini_cli.mdx +68 -0
  14. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/python-sdk/fastmcp-cli-install-mcp_json.mdx +1 -1
  15. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/python-sdk/fastmcp-cli-run.mdx +6 -34
  16. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/python-sdk/fastmcp-client-client.mdx +2 -2
  17. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/python-sdk/fastmcp-prompts-prompt.mdx +5 -5
  18. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/python-sdk/fastmcp-resources-resource.mdx +12 -12
  19. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/python-sdk/fastmcp-resources-template.mdx +5 -5
  20. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/python-sdk/fastmcp-server-auth-oauth_proxy.mdx +10 -10
  21. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/python-sdk/fastmcp-server-dependencies.mdx +4 -4
  22. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/python-sdk/fastmcp-server-server.mdx +33 -33
  23. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/python-sdk/fastmcp-tools-tool.mdx +20 -17
  24. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/python-sdk/fastmcp-tools-tool_transform.mdx +1 -1
  25. fastmcp-2.12.3/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-environments-uv.mdx +45 -0
  26. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/python-sdk/fastmcp-utilities-types.mdx +19 -13
  27. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/servers/auth/oauth-proxy.mdx +64 -0
  28. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/servers/proxy.mdx +1 -1
  29. {fastmcp-2.12.2 → fastmcp-2.12.3}/pyproject.toml +0 -2
  30. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/cli/claude.py +1 -10
  31. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/cli/cli.py +45 -25
  32. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/cli/install/__init__.py +2 -0
  33. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/cli/install/claude_code.py +1 -10
  34. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/cli/install/claude_desktop.py +1 -9
  35. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/cli/install/cursor.py +2 -18
  36. fastmcp-2.12.3/src/fastmcp/cli/install/gemini_cli.py +242 -0
  37. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/cli/install/mcp_json.py +1 -9
  38. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/cli/run.py +0 -84
  39. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/client/auth/oauth.py +1 -1
  40. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/client/client.py +6 -6
  41. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/client/elicitation.py +6 -1
  42. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/client/transports.py +1 -1
  43. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/contrib/component_manager/component_service.py +1 -1
  44. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/contrib/mcp_mixin/README.md +1 -1
  45. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/contrib/mcp_mixin/mcp_mixin.py +41 -6
  46. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/experimental/utilities/openapi/director.py +8 -1
  47. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/prompts/prompt.py +10 -8
  48. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/resources/resource.py +14 -11
  49. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/resources/template.py +12 -10
  50. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/server/auth/auth.py +7 -1
  51. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/server/auth/oauth_proxy.py +51 -11
  52. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/server/context.py +10 -10
  53. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/server/dependencies.py +18 -5
  54. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/server/server.py +7 -5
  55. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/settings.py +15 -1
  56. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/tools/tool.py +101 -85
  57. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/tools/tool_transform.py +1 -1
  58. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/utilities/mcp_server_config/v1/environments/uv.py +4 -39
  59. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/utilities/mcp_server_config/v1/mcp_server_config.py +1 -1
  60. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/utilities/mcp_server_config/v1/schema.json +2 -1
  61. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/utilities/types.py +9 -5
  62. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/cli/test_cli.py +27 -2
  63. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/cli/test_config.py +5 -20
  64. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/cli/test_cursor.py +4 -4
  65. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/cli/test_install.py +62 -0
  66. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/cli/test_mcp_server_config_integration.py +7 -4
  67. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/cli/test_project_prepare.py +3 -0
  68. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/cli/test_run.py +5 -0
  69. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/cli/test_run_config.py +1 -1
  70. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/client/test_elicitation.py +14 -2
  71. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/client/test_streamable_http.py +2 -1
  72. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/conftest.py +7 -0
  73. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/contrib/test_bulk_tool_caller.py +126 -54
  74. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/experimental/openapi_parser/utilities/openapi/test_models.py +22 -1
  75. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/prompts/test_prompt_manager.py +4 -3
  76. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/resources/test_resource_template.py +2 -2
  77. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/server/auth/providers/test_workos.py +2 -0
  78. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/server/auth/test_jwt_provider.py +5 -0
  79. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/server/auth/test_oauth_proxy.py +169 -0
  80. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/server/middleware/test_error_handling.py +1 -0
  81. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/server/middleware/test_logging.py +3 -2
  82. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/server/middleware/test_rate_limiting.py +1 -1
  83. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/server/openapi/conftest.py +1 -1
  84. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/server/proxy/test_proxy_client.py +3 -2
  85. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/server/test_import_server.py +3 -2
  86. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/server/test_server_interactions.py +68 -35
  87. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/test_examples.py +9 -8
  88. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/test_mcp_config.py +1 -1
  89. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/tools/test_tool.py +232 -279
  90. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/tools/test_tool_manager.py +31 -17
  91. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/utilities/test_cli.py +9 -9
  92. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/utilities/test_json_schema_type.py +17 -11
  93. {fastmcp-2.12.2 → fastmcp-2.12.3}/uv.lock +22 -22
  94. fastmcp-2.12.2/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-environments-uv.mdx +0 -75
  95. fastmcp-2.12.2/tests/cli/test_run_with_uv.py +0 -249
  96. {fastmcp-2.12.2 → fastmcp-2.12.3}/.ccignore +0 -0
  97. {fastmcp-2.12.2 → fastmcp-2.12.3}/.cursor/rules/core-mcp-objects.mdc +0 -0
  98. {fastmcp-2.12.2 → fastmcp-2.12.3}/.github/ISSUE_TEMPLATE/bug.yml +0 -0
  99. {fastmcp-2.12.2 → fastmcp-2.12.3}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  100. {fastmcp-2.12.2 → fastmcp-2.12.3}/.github/ISSUE_TEMPLATE/enhancement.yml +0 -0
  101. {fastmcp-2.12.2 → fastmcp-2.12.3}/.github/copilot-instructions.md +0 -0
  102. {fastmcp-2.12.2 → fastmcp-2.12.3}/.github/dependabot.yml +0 -0
  103. {fastmcp-2.12.2 → fastmcp-2.12.3}/.github/pull_request_template.md +0 -0
  104. {fastmcp-2.12.2 → fastmcp-2.12.3}/.github/release.yml +0 -0
  105. {fastmcp-2.12.2 → fastmcp-2.12.3}/.github/workflows/auto-close-duplicates.yml +0 -0
  106. {fastmcp-2.12.2 → fastmcp-2.12.3}/.github/workflows/marvin-dedupe-issues.yml +0 -0
  107. {fastmcp-2.12.2 → fastmcp-2.12.3}/.github/workflows/marvin-label-triage.yml +0 -0
  108. {fastmcp-2.12.2 → fastmcp-2.12.3}/.github/workflows/marvin.yml +0 -0
  109. {fastmcp-2.12.2 → fastmcp-2.12.3}/.github/workflows/publish.yml +0 -0
  110. {fastmcp-2.12.2 → fastmcp-2.12.3}/.github/workflows/run-static.yml +0 -0
  111. {fastmcp-2.12.2 → fastmcp-2.12.3}/.github/workflows/run-tests.yml +0 -0
  112. {fastmcp-2.12.2 → fastmcp-2.12.3}/.github/workflows/update-config-schema.yml +0 -0
  113. {fastmcp-2.12.2 → fastmcp-2.12.3}/.github/workflows/update-sdk-docs.yml +0 -0
  114. {fastmcp-2.12.2 → fastmcp-2.12.3}/.gitignore +0 -0
  115. {fastmcp-2.12.2 → fastmcp-2.12.3}/.pre-commit-config.yaml +0 -0
  116. {fastmcp-2.12.2 → fastmcp-2.12.3}/AGENTS.md +0 -0
  117. {fastmcp-2.12.2 → fastmcp-2.12.3}/CLAUDE.md +0 -0
  118. {fastmcp-2.12.2 → fastmcp-2.12.3}/CODE_OF_CONDUCT.md +0 -0
  119. {fastmcp-2.12.2 → fastmcp-2.12.3}/LICENSE +0 -0
  120. {fastmcp-2.12.2 → fastmcp-2.12.3}/README_OPENAPI.md +0 -0
  121. {fastmcp-2.12.2 → fastmcp-2.12.3}/Windows_Notes.md +0 -0
  122. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/.ccignore +0 -0
  123. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/.cursor/rules/mintlify.mdc +0 -0
  124. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/assets/brand/blue-logo.png +0 -0
  125. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/assets/brand/card-background.png +0 -0
  126. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/assets/brand/favicon.svg +0 -0
  127. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/assets/brand/logo-wordmark-dark.svg +0 -0
  128. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/assets/brand/logo-wordmark.svg +0 -0
  129. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/assets/images/fastmcp_cloud/connect.png +0 -0
  130. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/assets/images/fastmcp_cloud/create_project.png +0 -0
  131. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/assets/images/fastmcp_cloud/deployment.png +0 -0
  132. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/assets/images/fastmcp_cloud/quickstart.png +0 -0
  133. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/assets/images/tutorial-rest-api-result.png +0 -0
  134. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/assets/schemas/mcp_server_config/latest.json +0 -0
  135. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/assets/schemas/mcp_server_config/v1.json +0 -0
  136. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/assets/updates/release-2-7.png +0 -0
  137. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/clients/auth/bearer.mdx +0 -0
  138. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/clients/auth/oauth.mdx +0 -0
  139. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/clients/client.mdx +0 -0
  140. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/clients/elicitation.mdx +0 -0
  141. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/clients/logging.mdx +0 -0
  142. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/clients/messages.mdx +0 -0
  143. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/clients/progress.mdx +0 -0
  144. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/clients/prompts.mdx +0 -0
  145. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/clients/resources.mdx +0 -0
  146. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/clients/roots.mdx +0 -0
  147. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/clients/sampling.mdx +0 -0
  148. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/clients/tools.mdx +0 -0
  149. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/clients/transports.mdx +0 -0
  150. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/community/README.md +0 -0
  151. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/community/showcase.mdx +0 -0
  152. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/css/banner.css +0 -0
  153. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/css/python-sdk.css +0 -0
  154. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/css/style.css +0 -0
  155. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/css/version-badge.css +0 -0
  156. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/deployment/fastmcp-cloud.mdx +0 -0
  157. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/deployment/running-server.mdx +0 -0
  158. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/deployment/self-hosted.mdx +0 -0
  159. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/deployment/server-configuration.mdx +0 -0
  160. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/development/contributing.mdx +0 -0
  161. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/development/releases.mdx +0 -0
  162. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/development/tests.mdx +0 -0
  163. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/getting-started/installation.mdx +0 -0
  164. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/getting-started/quickstart.mdx +0 -0
  165. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/getting-started/welcome.mdx +0 -0
  166. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/integrations/anthropic.mdx +0 -0
  167. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/integrations/asgi.mdx +0 -0
  168. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/integrations/authkit.mdx +0 -0
  169. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/integrations/azure.mdx +0 -0
  170. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/integrations/chatgpt.mdx +0 -0
  171. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/integrations/claude-code.mdx +0 -0
  172. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/integrations/claude-desktop.mdx +0 -0
  173. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/integrations/cursor-install-mcp.png +0 -0
  174. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/integrations/cursor.mdx +0 -0
  175. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/integrations/eunomia-authorization.mdx +0 -0
  176. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/integrations/fastapi.mdx +0 -0
  177. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/integrations/gemini.mdx +0 -0
  178. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/integrations/github.mdx +0 -0
  179. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/integrations/google.mdx +0 -0
  180. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/integrations/images/authkit/enable_dcr.png +0 -0
  181. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/integrations/images/permit/abac_condition_example.png +0 -0
  182. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/integrations/images/permit/abac_policy_example.png +0 -0
  183. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/integrations/images/permit/policy_mapping.png +0 -0
  184. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/integrations/images/permit/role_assignement.png +0 -0
  185. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/integrations/mcp-json-configuration.mdx +0 -0
  186. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/integrations/openai.mdx +0 -0
  187. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/integrations/permit.mdx +0 -0
  188. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/integrations/workos.mdx +0 -0
  189. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/patterns/cli.mdx +0 -0
  190. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/patterns/contrib.mdx +0 -0
  191. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/patterns/decorating-methods.mdx +0 -0
  192. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/patterns/tool-transformation.mdx +0 -0
  193. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/python-sdk/fastmcp-cli-__init__.mdx +0 -0
  194. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/python-sdk/fastmcp-cli-claude.mdx +0 -0
  195. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/python-sdk/fastmcp-cli-install-__init__.mdx +0 -0
  196. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/python-sdk/fastmcp-cli-install-shared.mdx +0 -0
  197. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/python-sdk/fastmcp-client-__init__.mdx +0 -0
  198. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/python-sdk/fastmcp-client-auth-__init__.mdx +0 -0
  199. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/python-sdk/fastmcp-client-auth-bearer.mdx +0 -0
  200. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/python-sdk/fastmcp-client-auth-oauth.mdx +0 -0
  201. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/python-sdk/fastmcp-client-elicitation.mdx +0 -0
  202. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/python-sdk/fastmcp-client-logging.mdx +0 -0
  203. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/python-sdk/fastmcp-client-messages.mdx +0 -0
  204. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/python-sdk/fastmcp-client-oauth_callback.mdx +0 -0
  205. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/python-sdk/fastmcp-client-progress.mdx +0 -0
  206. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/python-sdk/fastmcp-client-roots.mdx +0 -0
  207. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/python-sdk/fastmcp-client-sampling.mdx +0 -0
  208. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/python-sdk/fastmcp-client-transports.mdx +0 -0
  209. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/python-sdk/fastmcp-exceptions.mdx +0 -0
  210. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/python-sdk/fastmcp-mcp_config.mdx +0 -0
  211. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/python-sdk/fastmcp-prompts-__init__.mdx +0 -0
  212. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/python-sdk/fastmcp-prompts-prompt_manager.mdx +0 -0
  213. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/python-sdk/fastmcp-resources-__init__.mdx +0 -0
  214. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/python-sdk/fastmcp-resources-resource_manager.mdx +0 -0
  215. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/python-sdk/fastmcp-resources-types.mdx +0 -0
  216. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/python-sdk/fastmcp-server-__init__.mdx +0 -0
  217. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/python-sdk/fastmcp-server-auth-__init__.mdx +0 -0
  218. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/python-sdk/fastmcp-server-auth-auth.mdx +0 -0
  219. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/python-sdk/fastmcp-server-auth-providers-__init__.mdx +0 -0
  220. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/python-sdk/fastmcp-server-auth-providers-azure.mdx +0 -0
  221. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/python-sdk/fastmcp-server-auth-providers-bearer.mdx +0 -0
  222. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/python-sdk/fastmcp-server-auth-providers-github.mdx +0 -0
  223. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/python-sdk/fastmcp-server-auth-providers-google.mdx +0 -0
  224. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/python-sdk/fastmcp-server-auth-providers-in_memory.mdx +0 -0
  225. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/python-sdk/fastmcp-server-auth-providers-jwt.mdx +0 -0
  226. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/python-sdk/fastmcp-server-auth-providers-workos.mdx +0 -0
  227. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/python-sdk/fastmcp-server-auth-redirect_validation.mdx +0 -0
  228. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/python-sdk/fastmcp-server-context.mdx +0 -0
  229. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/python-sdk/fastmcp-server-elicitation.mdx +0 -0
  230. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/python-sdk/fastmcp-server-http.mdx +0 -0
  231. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/python-sdk/fastmcp-server-low_level.mdx +0 -0
  232. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/python-sdk/fastmcp-server-middleware-__init__.mdx +0 -0
  233. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/python-sdk/fastmcp-server-middleware-error_handling.mdx +0 -0
  234. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/python-sdk/fastmcp-server-middleware-logging.mdx +0 -0
  235. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/python-sdk/fastmcp-server-middleware-middleware.mdx +0 -0
  236. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/python-sdk/fastmcp-server-middleware-rate_limiting.mdx +0 -0
  237. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/python-sdk/fastmcp-server-middleware-timing.mdx +0 -0
  238. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/python-sdk/fastmcp-server-openapi.mdx +0 -0
  239. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/python-sdk/fastmcp-server-proxy.mdx +0 -0
  240. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/python-sdk/fastmcp-settings.mdx +0 -0
  241. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/python-sdk/fastmcp-tools-__init__.mdx +0 -0
  242. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/python-sdk/fastmcp-tools-tool_manager.mdx +0 -0
  243. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/python-sdk/fastmcp-utilities-__init__.mdx +0 -0
  244. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/python-sdk/fastmcp-utilities-auth.mdx +0 -0
  245. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/python-sdk/fastmcp-utilities-cli.mdx +0 -0
  246. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/python-sdk/fastmcp-utilities-components.mdx +0 -0
  247. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/python-sdk/fastmcp-utilities-exceptions.mdx +0 -0
  248. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/python-sdk/fastmcp-utilities-http.mdx +0 -0
  249. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/python-sdk/fastmcp-utilities-inspect.mdx +0 -0
  250. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/python-sdk/fastmcp-utilities-json_schema.mdx +0 -0
  251. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/python-sdk/fastmcp-utilities-json_schema_type.mdx +0 -0
  252. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/python-sdk/fastmcp-utilities-logging.mdx +0 -0
  253. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/python-sdk/fastmcp-utilities-mcp_config.mdx +0 -0
  254. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/python-sdk/fastmcp-utilities-mcp_server_config-__init__.mdx +0 -0
  255. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-__init__.mdx +0 -0
  256. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-environments-__init__.mdx +0 -0
  257. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-environments-base.mdx +0 -0
  258. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-mcp_server_config.mdx +0 -0
  259. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-sources-__init__.mdx +0 -0
  260. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-sources-base.mdx +0 -0
  261. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-sources-filesystem.mdx +0 -0
  262. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/python-sdk/fastmcp-utilities-openapi.mdx +0 -0
  263. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/python-sdk/fastmcp-utilities-tests.mdx +0 -0
  264. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/servers/auth/authentication.mdx +0 -0
  265. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/servers/auth/full-oauth-server.mdx +0 -0
  266. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/servers/auth/remote-oauth.mdx +0 -0
  267. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/servers/auth/token-verification.mdx +0 -0
  268. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/servers/composition.mdx +0 -0
  269. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/servers/context.mdx +0 -0
  270. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/servers/elicitation.mdx +0 -0
  271. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/servers/logging.mdx +0 -0
  272. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/servers/middleware.mdx +0 -0
  273. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/servers/progress.mdx +0 -0
  274. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/servers/prompts.mdx +0 -0
  275. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/servers/resources.mdx +0 -0
  276. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/servers/sampling.mdx +0 -0
  277. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/servers/server.mdx +0 -0
  278. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/servers/tools.mdx +0 -0
  279. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/snippets/local-focus.mdx +0 -0
  280. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/snippets/version-badge.mdx +0 -0
  281. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/snippets/youtube-embed.mdx +0 -0
  282. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/tutorials/create-mcp-server.mdx +0 -0
  283. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/tutorials/mcp.mdx +0 -0
  284. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/tutorials/rest-api.mdx +0 -0
  285. {fastmcp-2.12.2 → fastmcp-2.12.3}/docs/updates.mdx +0 -0
  286. {fastmcp-2.12.2 → fastmcp-2.12.3}/examples/atproto_mcp/README.md +0 -0
  287. {fastmcp-2.12.2 → fastmcp-2.12.3}/examples/atproto_mcp/demo.py +0 -0
  288. {fastmcp-2.12.2 → fastmcp-2.12.3}/examples/atproto_mcp/fastmcp.json +0 -0
  289. {fastmcp-2.12.2 → fastmcp-2.12.3}/examples/atproto_mcp/pyproject.toml +0 -0
  290. {fastmcp-2.12.2 → fastmcp-2.12.3}/examples/atproto_mcp/src/atproto_mcp/__init__.py +0 -0
  291. {fastmcp-2.12.2 → fastmcp-2.12.3}/examples/atproto_mcp/src/atproto_mcp/__main__.py +0 -0
  292. {fastmcp-2.12.2 → fastmcp-2.12.3}/examples/atproto_mcp/src/atproto_mcp/_atproto/__init__.py +0 -0
  293. {fastmcp-2.12.2 → fastmcp-2.12.3}/examples/atproto_mcp/src/atproto_mcp/_atproto/_client.py +0 -0
  294. {fastmcp-2.12.2 → fastmcp-2.12.3}/examples/atproto_mcp/src/atproto_mcp/_atproto/_posts.py +0 -0
  295. {fastmcp-2.12.2 → fastmcp-2.12.3}/examples/atproto_mcp/src/atproto_mcp/_atproto/_profile.py +0 -0
  296. {fastmcp-2.12.2 → fastmcp-2.12.3}/examples/atproto_mcp/src/atproto_mcp/_atproto/_read.py +0 -0
  297. {fastmcp-2.12.2 → fastmcp-2.12.3}/examples/atproto_mcp/src/atproto_mcp/_atproto/_social.py +0 -0
  298. {fastmcp-2.12.2 → fastmcp-2.12.3}/examples/atproto_mcp/src/atproto_mcp/py.typed +0 -0
  299. {fastmcp-2.12.2 → fastmcp-2.12.3}/examples/atproto_mcp/src/atproto_mcp/server.py +0 -0
  300. {fastmcp-2.12.2 → fastmcp-2.12.3}/examples/atproto_mcp/src/atproto_mcp/settings.py +0 -0
  301. {fastmcp-2.12.2 → fastmcp-2.12.3}/examples/atproto_mcp/src/atproto_mcp/types.py +0 -0
  302. {fastmcp-2.12.2 → fastmcp-2.12.3}/examples/auth/azure_oauth/README.md +0 -0
  303. {fastmcp-2.12.2 → fastmcp-2.12.3}/examples/auth/azure_oauth/client.py +0 -0
  304. {fastmcp-2.12.2 → fastmcp-2.12.3}/examples/auth/azure_oauth/server.py +0 -0
  305. {fastmcp-2.12.2 → fastmcp-2.12.3}/examples/auth/github_oauth/README.md +0 -0
  306. {fastmcp-2.12.2 → fastmcp-2.12.3}/examples/auth/github_oauth/client.py +0 -0
  307. {fastmcp-2.12.2 → fastmcp-2.12.3}/examples/auth/github_oauth/server.py +0 -0
  308. {fastmcp-2.12.2 → fastmcp-2.12.3}/examples/auth/google_oauth/README.md +0 -0
  309. {fastmcp-2.12.2 → fastmcp-2.12.3}/examples/auth/google_oauth/client.py +0 -0
  310. {fastmcp-2.12.2 → fastmcp-2.12.3}/examples/auth/google_oauth/server.py +0 -0
  311. {fastmcp-2.12.2 → fastmcp-2.12.3}/examples/auth/workos_oauth/README.md +0 -0
  312. {fastmcp-2.12.2 → fastmcp-2.12.3}/examples/auth/workos_oauth/client.py +0 -0
  313. {fastmcp-2.12.2 → fastmcp-2.12.3}/examples/auth/workos_oauth/server.py +0 -0
  314. {fastmcp-2.12.2 → fastmcp-2.12.3}/examples/complex_inputs.py +0 -0
  315. {fastmcp-2.12.2 → fastmcp-2.12.3}/examples/config_server.py +0 -0
  316. {fastmcp-2.12.2 → fastmcp-2.12.3}/examples/desktop.py +0 -0
  317. {fastmcp-2.12.2 → fastmcp-2.12.3}/examples/echo.py +0 -0
  318. {fastmcp-2.12.2 → fastmcp-2.12.3}/examples/fastmcp_config/env_interpolation_example.json +0 -0
  319. {fastmcp-2.12.2 → fastmcp-2.12.3}/examples/fastmcp_config/fastmcp.json +0 -0
  320. {fastmcp-2.12.2 → fastmcp-2.12.3}/examples/fastmcp_config/full_example.fastmcp.json +0 -0
  321. {fastmcp-2.12.2 → fastmcp-2.12.3}/examples/fastmcp_config/server.py +0 -0
  322. {fastmcp-2.12.2 → fastmcp-2.12.3}/examples/fastmcp_config/simple.fastmcp.json +0 -0
  323. {fastmcp-2.12.2 → fastmcp-2.12.3}/examples/fastmcp_config_demo/README.md +0 -0
  324. {fastmcp-2.12.2 → fastmcp-2.12.3}/examples/fastmcp_config_demo/fastmcp.json +0 -0
  325. {fastmcp-2.12.2 → fastmcp-2.12.3}/examples/fastmcp_config_demo/server.py +0 -0
  326. {fastmcp-2.12.2 → fastmcp-2.12.3}/examples/get_file.py +0 -0
  327. {fastmcp-2.12.2 → fastmcp-2.12.3}/examples/in_memory_proxy_example.py +0 -0
  328. {fastmcp-2.12.2 → fastmcp-2.12.3}/examples/memory.fastmcp.json +0 -0
  329. {fastmcp-2.12.2 → fastmcp-2.12.3}/examples/memory.py +0 -0
  330. {fastmcp-2.12.2 → fastmcp-2.12.3}/examples/mount_example.fastmcp.json +0 -0
  331. {fastmcp-2.12.2 → fastmcp-2.12.3}/examples/mount_example.py +0 -0
  332. {fastmcp-2.12.2 → fastmcp-2.12.3}/examples/sampling.py +0 -0
  333. {fastmcp-2.12.2 → fastmcp-2.12.3}/examples/sampling_fallback.py +0 -0
  334. {fastmcp-2.12.2 → fastmcp-2.12.3}/examples/screenshot.fastmcp.json +0 -0
  335. {fastmcp-2.12.2 → fastmcp-2.12.3}/examples/screenshot.py +0 -0
  336. {fastmcp-2.12.2 → fastmcp-2.12.3}/examples/serializer.py +0 -0
  337. {fastmcp-2.12.2 → fastmcp-2.12.3}/examples/simple_echo.py +0 -0
  338. {fastmcp-2.12.2 → fastmcp-2.12.3}/examples/smart_home/README.md +0 -0
  339. {fastmcp-2.12.2 → fastmcp-2.12.3}/examples/smart_home/hub.fastmcp.json +0 -0
  340. {fastmcp-2.12.2 → fastmcp-2.12.3}/examples/smart_home/lights.fastmcp.json +0 -0
  341. {fastmcp-2.12.2 → fastmcp-2.12.3}/examples/smart_home/pyproject.toml +0 -0
  342. {fastmcp-2.12.2 → fastmcp-2.12.3}/examples/smart_home/src/smart_home/__init__.py +0 -0
  343. {fastmcp-2.12.2 → fastmcp-2.12.3}/examples/smart_home/src/smart_home/__main__.py +0 -0
  344. {fastmcp-2.12.2 → fastmcp-2.12.3}/examples/smart_home/src/smart_home/hub.py +0 -0
  345. {fastmcp-2.12.2 → fastmcp-2.12.3}/examples/smart_home/src/smart_home/lights/__init__.py +0 -0
  346. {fastmcp-2.12.2 → fastmcp-2.12.3}/examples/smart_home/src/smart_home/lights/hue_utils.py +0 -0
  347. {fastmcp-2.12.2 → fastmcp-2.12.3}/examples/smart_home/src/smart_home/lights/server.py +0 -0
  348. {fastmcp-2.12.2 → fastmcp-2.12.3}/examples/smart_home/src/smart_home/py.typed +0 -0
  349. {fastmcp-2.12.2 → fastmcp-2.12.3}/examples/smart_home/src/smart_home/settings.py +0 -0
  350. {fastmcp-2.12.2 → fastmcp-2.12.3}/examples/smart_home/uv.lock +0 -0
  351. {fastmcp-2.12.2 → fastmcp-2.12.3}/examples/tags_example.py +0 -0
  352. {fastmcp-2.12.2 → fastmcp-2.12.3}/examples/text_me.py +0 -0
  353. {fastmcp-2.12.2 → fastmcp-2.12.3}/justfile +0 -0
  354. {fastmcp-2.12.2 → fastmcp-2.12.3}/scripts/auto_close_duplicates.py +0 -0
  355. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/__init__.py +0 -0
  356. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/cli/__init__.py +0 -0
  357. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/cli/install/shared.py +0 -0
  358. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/client/__init__.py +0 -0
  359. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/client/auth/__init__.py +0 -0
  360. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/client/auth/bearer.py +0 -0
  361. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/client/logging.py +0 -0
  362. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/client/messages.py +0 -0
  363. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/client/oauth_callback.py +0 -0
  364. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/client/progress.py +0 -0
  365. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/client/roots.py +0 -0
  366. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/client/sampling.py +0 -0
  367. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/contrib/README.md +0 -0
  368. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/contrib/bulk_tool_caller/README.md +0 -0
  369. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/contrib/bulk_tool_caller/__init__.py +0 -0
  370. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/contrib/bulk_tool_caller/bulk_tool_caller.py +0 -0
  371. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/contrib/bulk_tool_caller/example.py +0 -0
  372. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/contrib/component_manager/README.md +0 -0
  373. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/contrib/component_manager/__init__.py +0 -0
  374. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/contrib/component_manager/component_manager.py +0 -0
  375. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/contrib/component_manager/example.py +0 -0
  376. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/contrib/mcp_mixin/__init__.py +0 -0
  377. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/contrib/mcp_mixin/example.py +0 -0
  378. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/exceptions.py +0 -0
  379. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/experimental/sampling/__init__.py +0 -0
  380. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/experimental/sampling/handlers/__init__.py +0 -0
  381. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/experimental/sampling/handlers/base.py +0 -0
  382. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/experimental/sampling/handlers/openai.py +0 -0
  383. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/experimental/server/openapi/README.md +0 -0
  384. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/experimental/server/openapi/__init__.py +0 -0
  385. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/experimental/server/openapi/components.py +0 -0
  386. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/experimental/server/openapi/routing.py +0 -0
  387. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/experimental/server/openapi/server.py +0 -0
  388. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/experimental/utilities/openapi/README.md +0 -0
  389. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/experimental/utilities/openapi/__init__.py +0 -0
  390. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/experimental/utilities/openapi/formatters.py +0 -0
  391. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/experimental/utilities/openapi/json_schema_converter.py +0 -0
  392. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/experimental/utilities/openapi/models.py +0 -0
  393. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/experimental/utilities/openapi/parser.py +0 -0
  394. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/experimental/utilities/openapi/schemas.py +0 -0
  395. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/mcp_config.py +0 -0
  396. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/prompts/__init__.py +0 -0
  397. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/prompts/prompt_manager.py +0 -0
  398. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/py.typed +0 -0
  399. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/resources/__init__.py +0 -0
  400. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/resources/resource_manager.py +0 -0
  401. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/resources/types.py +0 -0
  402. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/server/__init__.py +0 -0
  403. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/server/auth/__init__.py +0 -0
  404. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/server/auth/providers/__init__.py +0 -0
  405. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/server/auth/providers/azure.py +0 -0
  406. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/server/auth/providers/bearer.py +0 -0
  407. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/server/auth/providers/github.py +0 -0
  408. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/server/auth/providers/google.py +0 -0
  409. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/server/auth/providers/in_memory.py +0 -0
  410. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/server/auth/providers/jwt.py +0 -0
  411. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/server/auth/providers/workos.py +0 -0
  412. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/server/auth/redirect_validation.py +0 -0
  413. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/server/elicitation.py +0 -0
  414. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/server/http.py +0 -0
  415. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/server/low_level.py +0 -0
  416. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/server/middleware/__init__.py +0 -0
  417. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/server/middleware/error_handling.py +0 -0
  418. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/server/middleware/logging.py +0 -0
  419. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/server/middleware/middleware.py +0 -0
  420. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/server/middleware/rate_limiting.py +0 -0
  421. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/server/middleware/timing.py +0 -0
  422. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/server/openapi.py +0 -0
  423. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/server/proxy.py +0 -0
  424. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/server/sampling/handler.py +0 -0
  425. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/tools/__init__.py +0 -0
  426. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/tools/tool_manager.py +0 -0
  427. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/utilities/__init__.py +0 -0
  428. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/utilities/auth.py +0 -0
  429. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/utilities/cli.py +0 -0
  430. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/utilities/components.py +0 -0
  431. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/utilities/exceptions.py +0 -0
  432. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/utilities/http.py +0 -0
  433. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/utilities/inspect.py +0 -0
  434. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/utilities/json_schema.py +0 -0
  435. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/utilities/json_schema_type.py +0 -0
  436. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/utilities/logging.py +0 -0
  437. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/utilities/mcp_config.py +0 -0
  438. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/utilities/mcp_server_config/__init__.py +0 -0
  439. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/utilities/mcp_server_config/v1/__init__.py +0 -0
  440. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/utilities/mcp_server_config/v1/environments/__init__.py +0 -0
  441. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/utilities/mcp_server_config/v1/environments/base.py +0 -0
  442. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/utilities/mcp_server_config/v1/sources/__init__.py +0 -0
  443. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/utilities/mcp_server_config/v1/sources/base.py +0 -0
  444. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/utilities/mcp_server_config/v1/sources/filesystem.py +0 -0
  445. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/utilities/openapi.py +0 -0
  446. {fastmcp-2.12.2 → fastmcp-2.12.3}/src/fastmcp/utilities/tests.py +0 -0
  447. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/__init__.py +0 -0
  448. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/cli/__init__.py +0 -0
  449. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/cli/test_mcp_server_config_schema.py +0 -0
  450. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/cli/test_server_args.py +0 -0
  451. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/cli/test_shared.py +0 -0
  452. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/cli/test_with_argv.py +0 -0
  453. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/client/__init__.py +0 -0
  454. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/client/auth/__init__.py +0 -0
  455. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/client/auth/test_oauth_client.py +0 -0
  456. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/client/auth/test_oauth_token_expiry.py +0 -0
  457. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/client/test_client.py +0 -0
  458. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/client/test_logs.py +0 -0
  459. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/client/test_notifications.py +0 -0
  460. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/client/test_openapi_experimental.py +0 -0
  461. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/client/test_openapi_legacy.py +0 -0
  462. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/client/test_progress.py +0 -0
  463. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/client/test_roots.py +0 -0
  464. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/client/test_sampling.py +0 -0
  465. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/client/test_sse.py +0 -0
  466. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/client/test_stdio.py +0 -0
  467. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/client/transports/__init__.py +0 -0
  468. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/client/transports/test_uv_transport.py +0 -0
  469. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/contrib/__init__.py +0 -0
  470. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/contrib/test_component_manager.py +0 -0
  471. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/contrib/test_mcp_mixin.py +0 -0
  472. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/deprecated/__init__.py +0 -0
  473. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/deprecated/test_bearer_auth_provider.py +0 -0
  474. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/deprecated/test_dependencies.py +0 -0
  475. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/deprecated/test_deprecated.py +0 -0
  476. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/deprecated/test_mount_import_arg_order.py +0 -0
  477. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/deprecated/test_mount_separators.py +0 -0
  478. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/deprecated/test_output_schema_false.py +0 -0
  479. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/deprecated/test_proxy_client.py +0 -0
  480. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/deprecated/test_resource_prefixes.py +0 -0
  481. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/deprecated/test_route_type_ignore.py +0 -0
  482. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/deprecated/test_settings.py +0 -0
  483. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/experimental/README.md +0 -0
  484. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/experimental/__init__.py +0 -0
  485. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/experimental/openapi_parser/README.md +0 -0
  486. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/experimental/openapi_parser/__init__.py +0 -0
  487. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/experimental/openapi_parser/conftest.py +0 -0
  488. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/experimental/openapi_parser/server/__init__.py +0 -0
  489. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/experimental/openapi_parser/server/openapi/__init__.py +0 -0
  490. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/experimental/openapi_parser/server/openapi/test_comprehensive.py +0 -0
  491. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/experimental/openapi_parser/server/openapi/test_deepobject_style.py +0 -0
  492. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/experimental/openapi_parser/server/openapi/test_end_to_end_compatibility.py +0 -0
  493. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/experimental/openapi_parser/server/openapi/test_openapi_features.py +0 -0
  494. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/experimental/openapi_parser/server/openapi/test_openapi_performance.py +0 -0
  495. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/experimental/openapi_parser/server/openapi/test_parameter_collisions.py +0 -0
  496. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/experimental/openapi_parser/server/openapi/test_performance_comparison.py +0 -0
  497. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/experimental/openapi_parser/server/openapi/test_server.py +0 -0
  498. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/experimental/openapi_parser/utilities/__init__.py +0 -0
  499. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/experimental/openapi_parser/utilities/openapi/__init__.py +0 -0
  500. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/experimental/openapi_parser/utilities/openapi/conftest.py +0 -0
  501. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/experimental/openapi_parser/utilities/openapi/test_allof_requestbody.py +0 -0
  502. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/experimental/openapi_parser/utilities/openapi/test_director.py +0 -0
  503. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/experimental/openapi_parser/utilities/openapi/test_legacy_compatibility.py +0 -0
  504. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/experimental/openapi_parser/utilities/openapi/test_nullable_fields.py +0 -0
  505. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/experimental/openapi_parser/utilities/openapi/test_parser.py +0 -0
  506. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/experimental/openapi_parser/utilities/openapi/test_schemas.py +0 -0
  507. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/experimental/openapi_parser/utilities/openapi/test_transitive_references.py +0 -0
  508. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/experimental/sampling/test_openai_handler.py +0 -0
  509. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/integration_tests/__init__.py +0 -0
  510. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/integration_tests/auth/__init__.py +0 -0
  511. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/integration_tests/auth/test_github_provider_integration.py +0 -0
  512. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/integration_tests/conftest.py +0 -0
  513. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/integration_tests/test_github_mcp_remote.py +0 -0
  514. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/prompts/__init__.py +0 -0
  515. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/prompts/test_prompt.py +0 -0
  516. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/resources/__init__.py +0 -0
  517. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/resources/test_file_resources.py +0 -0
  518. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/resources/test_function_resources.py +0 -0
  519. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/resources/test_resource_manager.py +0 -0
  520. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/resources/test_resource_template_meta.py +0 -0
  521. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/resources/test_resources.py +0 -0
  522. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/server/__init__.py +0 -0
  523. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/server/auth/__init__.py +0 -0
  524. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/server/auth/providers/__init__.py +0 -0
  525. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/server/auth/providers/test_azure.py +0 -0
  526. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/server/auth/providers/test_github.py +0 -0
  527. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/server/auth/providers/test_google.py +0 -0
  528. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/server/auth/test_auth_provider.py +0 -0
  529. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/server/auth/test_oauth_proxy_redirect_validation.py +0 -0
  530. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/server/auth/test_redirect_validation.py +0 -0
  531. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/server/auth/test_remote_auth_provider.py +0 -0
  532. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/server/auth/test_static_token_verifier.py +0 -0
  533. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/server/http/__init__.py +0 -0
  534. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/server/http/test_bearer_auth_backend.py +0 -0
  535. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/server/http/test_custom_routes.py +0 -0
  536. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/server/http/test_http_auth_middleware.py +0 -0
  537. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/server/http/test_http_dependencies.py +0 -0
  538. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/server/http/test_http_middleware.py +0 -0
  539. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/server/middleware/__init__.py +0 -0
  540. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/server/middleware/test_middleware.py +0 -0
  541. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/server/middleware/test_timing.py +0 -0
  542. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/server/openapi/__init__.py +0 -0
  543. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/server/openapi/test_advanced_behavior.py +0 -0
  544. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/server/openapi/test_basic_functionality.py +0 -0
  545. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/server/openapi/test_configuration.py +0 -0
  546. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/server/openapi/test_deepobject_style.py +0 -0
  547. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/server/openapi/test_description_propagation.py +0 -0
  548. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/server/openapi/test_explode_integration.py +0 -0
  549. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/server/openapi/test_openapi_compatibility.py +0 -0
  550. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/server/openapi/test_openapi_path_parameters.py +0 -0
  551. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/server/openapi/test_optional_parameters.py +0 -0
  552. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/server/openapi/test_parameter_collisions.py +0 -0
  553. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/server/openapi/test_route_map_fn.py +0 -0
  554. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/server/proxy/__init__.py +0 -0
  555. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/server/proxy/test_proxy_server.py +0 -0
  556. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/server/proxy/test_stateful_proxy_client.py +0 -0
  557. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/server/test_app_state.py +0 -0
  558. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/server/test_auth_integration.py +0 -0
  559. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/server/test_context.py +0 -0
  560. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/server/test_experimental_openapi_feature_flag.py +0 -0
  561. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/server/test_file_server.py +0 -0
  562. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/server/test_logging.py +0 -0
  563. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/server/test_mount.py +0 -0
  564. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/server/test_resource_prefix_formats.py +0 -0
  565. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/server/test_run_server.py +0 -0
  566. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/server/test_server.py +0 -0
  567. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/server/test_streamable_http_no_redirect.py +0 -0
  568. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/server/test_tool_annotations.py +0 -0
  569. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/server/test_tool_exclude_args.py +0 -0
  570. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/server/test_tool_transformation.py +0 -0
  571. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/tools/__init__.py +0 -0
  572. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/tools/test_tool_future_annotations.py +0 -0
  573. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/tools/test_tool_transform.py +0 -0
  574. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/utilities/__init__.py +0 -0
  575. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/utilities/openapi/__init__.py +0 -0
  576. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/utilities/openapi/conftest.py +0 -0
  577. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/utilities/openapi/test_nullable_fields.py +0 -0
  578. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/utilities/openapi/test_openapi.py +0 -0
  579. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/utilities/openapi/test_openapi_advanced.py +0 -0
  580. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/utilities/openapi/test_openapi_fastapi.py +0 -0
  581. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/utilities/openapi/test_openapi_output_schemas.py +0 -0
  582. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/utilities/test_components.py +0 -0
  583. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/utilities/test_inspect.py +0 -0
  584. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/utilities/test_json_schema.py +0 -0
  585. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/utilities/test_logging.py +0 -0
  586. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/utilities/test_tests.py +0 -0
  587. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/utilities/test_typeadapter.py +0 -0
  588. {fastmcp-2.12.2 → fastmcp-2.12.3}/tests/utilities/test_types.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fastmcp
3
- Version: 2.12.2
3
+ Version: 2.12.3
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
@@ -278,7 +278,7 @@ async def main():
278
278
  tools = await client.list_tools()
279
279
  print(f"Available tools: {tools}")
280
280
  result = await client.call_tool("add", {"a": 5, "b": 3})
281
- print(f"Result: {result.text}")
281
+ print(f"Result: {result.content[0].text}")
282
282
 
283
283
  # Connect via SSE
284
284
  async with Client("http://localhost:8000/sse") as client:
@@ -242,7 +242,7 @@ async def main():
242
242
  tools = await client.list_tools()
243
243
  print(f"Available tools: {tools}")
244
244
  result = await client.call_tool("add", {"a": 5, "b": 3})
245
- print(f"Result: {result.text}")
245
+ print(f"Result: {result.content[0].text}")
246
246
 
247
247
  # Connect via SSE
248
248
  async with Client("http://localhost:8000/sse") as client:
@@ -4,7 +4,21 @@ icon: "list-check"
4
4
  rss: true
5
5
  ---
6
6
 
7
- <Update label="v2.12.1" description="2025-09-06">
7
+ <Update label="v2.12.2" description="2025-09-03">
8
+
9
+ **[v2.12.2: Perchance to Stream](https://github.com/jlowin/fastmcp/releases/tag/v2.12.2)**
10
+
11
+ This is a hotfix for a bug where the `streamable-http` transport was not recognized as a valid option in `fastmcp.json` configuration files, despite being supported by the CLI. This resulted in a parsing error when the CLI arguments were merged against the configuration spec.
12
+
13
+ ## What's Changed
14
+ ### Fixes 🐞
15
+ * Fix streamable-http transport validation in fastmcp.json config by [@jlowin](https://github.com/jlowin) in [#1739](https://github.com/jlowin/fastmcp/pull/1739)
16
+
17
+ **Full Changelog**: [v2.12.1...v2.12.2](https://github.com/jlowin/fastmcp/compare/v2.12.1...v2.12.2)
18
+
19
+ </Update>
20
+
21
+ <Update label="v2.12.1" description="2025-09-03">
8
22
 
9
23
  **[v2.12.1: OAuth to Joy](https://github.com/jlowin/fastmcp/releases/tag/v2.12.1)**
10
24
 
@@ -4,9 +4,6 @@
4
4
  "default": "system",
5
5
  "strict": false
6
6
  },
7
- "interaction": {
8
- "drilldown": false
9
- },
10
7
  "background": {
11
8
  "color": {
12
9
  "dark": "#222831",
@@ -39,6 +36,9 @@
39
36
  "measurementId": "G-64R5W1TJXG"
40
37
  }
41
38
  },
39
+ "interaction": {
40
+ "drilldown": false
41
+ },
42
42
  "logo": {
43
43
  "dark": "/assets/brand/logo-wordmark-dark.svg",
44
44
  "light": "/assets/brand/logo-wordmark.svg"
@@ -118,7 +118,10 @@
118
118
  {
119
119
  "group": "Essentials",
120
120
  "icon": "cube",
121
- "pages": ["clients/client", "clients/transports"]
121
+ "pages": [
122
+ "clients/client",
123
+ "clients/transports"
124
+ ]
122
125
  },
123
126
  {
124
127
  "group": "Core Operations",
@@ -144,7 +147,10 @@
144
147
  {
145
148
  "group": "Authentication",
146
149
  "icon": "user-shield",
147
- "pages": ["clients/auth/oauth", "clients/auth/bearer"]
150
+ "pages": [
151
+ "clients/auth/oauth",
152
+ "clients/auth/bearer"
153
+ ]
148
154
  }
149
155
  ]
150
156
  },
@@ -222,7 +228,10 @@
222
228
  "tab": "Documentation"
223
229
  },
224
230
  {
225
- "pages": ["updates", "changelog"],
231
+ "pages": [
232
+ "updates",
233
+ "changelog"
234
+ ],
226
235
  "tab": "What's New"
227
236
  },
228
237
  {
@@ -247,6 +256,7 @@
247
256
  "python-sdk/fastmcp-cli-install-claude_code",
248
257
  "python-sdk/fastmcp-cli-install-claude_desktop",
249
258
  "python-sdk/fastmcp-cli-install-cursor",
259
+ "python-sdk/fastmcp-cli-install-gemini_cli",
250
260
  "python-sdk/fastmcp-cli-install-mcp_json",
251
261
  "python-sdk/fastmcp-cli-install-shared"
252
262
  ]
@@ -0,0 +1,173 @@
1
+ ---
2
+ title: Gemini CLI 🤝 FastMCP
3
+ sidebarTitle: Gemini CLI
4
+ description: Install and use FastMCP servers in Gemini CLI
5
+ icon: message-smile
6
+ ---
7
+
8
+ import { VersionBadge } from "/snippets/version-badge.mdx"
9
+ import { LocalFocusTip } from "/snippets/local-focus.mdx"
10
+
11
+ <LocalFocusTip />
12
+
13
+ Gemini CLI supports MCP servers through multiple transport methods including STDIO, SSE, and HTTP, allowing you to extend Gemini's capabilities with custom tools, resources, and prompts from your FastMCP servers.
14
+
15
+ ## Requirements
16
+
17
+ 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 Gemini CLI's built-in MCP management commands.
18
+
19
+ ## Create a Server
20
+
21
+ The examples in this guide will use the following simple dice-rolling server, saved as `server.py`.
22
+
23
+ ```python server.py
24
+ import random
25
+ from fastmcp import FastMCP
26
+
27
+ mcp = FastMCP(name="Dice Roller")
28
+
29
+ @mcp.tool
30
+ def roll_dice(n_dice: int) -> list[int]:
31
+ """Roll `n_dice` 6-sided dice and return the results."""
32
+ return [random.randint(1, 6) for _ in range(n_dice)]
33
+
34
+ if __name__ == "__main__":
35
+ mcp.run()
36
+ ```
37
+
38
+ ## Install the Server
39
+
40
+ ### FastMCP CLI
41
+ <VersionBadge version="2.13.0" />
42
+
43
+ The easiest way to install a FastMCP server in Gemini CLI is using the `fastmcp install gemini-cli` command. This automatically handles the configuration, dependency management, and calls Gemini CLI's built-in MCP management system.
44
+
45
+ ```bash
46
+ fastmcp install gemini-cli server.py
47
+ ```
48
+
49
+ 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:
50
+
51
+ ```bash
52
+ # These are equivalent if your server object is named 'mcp'
53
+ fastmcp install gemini-cli server.py
54
+ fastmcp install gemini-cli server.py:mcp
55
+
56
+ # Use explicit object name if your server has a different name
57
+ fastmcp install gemini-cli server.py:my_custom_server
58
+ ```
59
+
60
+ The command will automatically configure the server with Gemini CLI's `gemini mcp add` command.
61
+
62
+ #### Dependencies
63
+
64
+ FastMCP provides flexible dependency management options for your Gemini CLI servers:
65
+
66
+ **Individual packages**: Use the `--with` flag to specify packages your server needs. You can use this flag multiple times:
67
+
68
+ ```bash
69
+ fastmcp install gemini-cli server.py --with pandas --with requests
70
+ ```
71
+
72
+ **Requirements file**: If you maintain a `requirements.txt` file with all your dependencies, use `--with-requirements` to install them:
73
+
74
+ ```bash
75
+ fastmcp install gemini-cli server.py --with-requirements requirements.txt
76
+ ```
77
+
78
+ **Editable packages**: For local packages under development, use `--with-editable` to install them in editable mode:
79
+
80
+ ```bash
81
+ fastmcp install gemini-cli server.py --with-editable ./my-local-package
82
+ ```
83
+
84
+ Alternatively, you can use a `fastmcp.json` configuration file (recommended):
85
+
86
+ ```json fastmcp.json
87
+ {
88
+ "$schema": "https://gofastmcp.com/public/schemas/fastmcp.json/v1.json",
89
+ "source": {
90
+ "path": "server.py",
91
+ "entrypoint": "mcp"
92
+ },
93
+ "environment": {
94
+ "dependencies": ["pandas", "requests"]
95
+ }
96
+ }
97
+ ```
98
+
99
+
100
+ #### Python Version and Project Configuration
101
+
102
+ Control the Python environment for your server with these options:
103
+
104
+ **Python version**: Use `--python` to specify which Python version your server requires. This ensures compatibility when your server needs specific Python features:
105
+
106
+ ```bash
107
+ fastmcp install gemini-cli server.py --python 3.11
108
+ ```
109
+
110
+ **Project directory**: Use `--project` to run your server within a specific project context. This tells `uv` to use the project's configuration files and virtual environment:
111
+
112
+ ```bash
113
+ fastmcp install gemini-cli server.py --project /path/to/my-project
114
+ ```
115
+
116
+ #### Environment Variables
117
+
118
+ If your server needs environment variables (like API keys), you must include them:
119
+
120
+ ```bash
121
+ fastmcp install gemini-cli server.py --server-name "Weather Server" \
122
+ --env API_KEY=your-api-key \
123
+ --env DEBUG=true
124
+ ```
125
+
126
+ Or load them from a `.env` file:
127
+
128
+ ```bash
129
+ fastmcp install gemini-cli server.py --server-name "Weather Server" --env-file .env
130
+ ```
131
+
132
+ <Warning>
133
+ **Gemini CLI must be installed**. The integration looks for the Gemini CLI and uses the `gemini mcp add` command to register servers.
134
+ </Warning>
135
+
136
+ ### Manual Configuration
137
+
138
+ For more control over the configuration, you can manually use Gemini CLI's built-in MCP management commands. This gives you direct control over how your server is launched:
139
+
140
+ ```bash
141
+ # Add a server with custom configuration
142
+ gemini mcp add dice-roller uv -- run --with fastmcp fastmcp run server.py
143
+
144
+ # Add with environment variables
145
+ gemini mcp add weather-server -e API_KEY=secret -e DEBUG=true uv -- run --with fastmcp fastmcp run server.py
146
+
147
+ # Add with specific scope (user, or project)
148
+ gemini mcp add my-server --scope user uv -- run --with fastmcp fastmcp run server.py
149
+ ```
150
+
151
+ You can also manually specify Python versions and project directories in your Gemini CLI commands:
152
+
153
+ ```bash
154
+ # With specific Python version
155
+ gemini mcp add ml-server uv -- run --python 3.11 --with fastmcp fastmcp run server.py
156
+
157
+ # Within a project directory
158
+ gemini mcp add project-server uv -- run --project /path/to/project --with fastmcp fastmcp run server.py
159
+ ```
160
+
161
+ ## Using the Server
162
+
163
+ Once your server is installed, you can start using your FastMCP server with Gemini CLI.
164
+
165
+ Try asking Gemini something like:
166
+
167
+ > "Roll some dice for me"
168
+
169
+ Gemini will automatically detect your `roll_dice` tool and use it to fulfill your request.
170
+
171
+ Gemini CLI can now access all the tools and prompts you've defined in your FastMCP server.
172
+
173
+ If your server provides prompts, you can use them as slash commands with `/prompt_name`.
@@ -217,7 +217,7 @@ For advanced use cases that require more complex logic, you can provide a `route
217
217
  In addition to more precise targeting of methods, patterns, and tags, this function can access any additional OpenAPI metadata about the route.
218
218
 
219
219
  <Tip>
220
- The `route_map_fn` **is** called on routes that matched `MCPType.EXCLUDE` in your custom maps, giving you an opportunity to override the exclusion.
220
+ The `route_map_fn` is called on all routes, even those that matched `MCPType.EXCLUDE` in your custom maps. This gives you an opportunity to customize the mapping or even override an exclusion.
221
221
  </Tip>
222
222
 
223
223
  ```python
@@ -9,7 +9,8 @@
9
9
  "enum": [
10
10
  "stdio",
11
11
  "http",
12
- "sse"
12
+ "sse",
13
+ "streamable-http"
13
14
  ],
14
15
  "type": "string"
15
16
  },
@@ -9,7 +9,8 @@
9
9
  "enum": [
10
10
  "stdio",
11
11
  "http",
12
- "sse"
12
+ "sse",
13
+ "streamable-http"
13
14
  ],
14
15
  "type": "string"
15
16
  },
@@ -10,7 +10,7 @@ FastMCP CLI tools using Cyclopts.
10
10
 
11
11
  ## Functions
12
12
 
13
- ### `with_argv` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/cli.py#L68" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
13
+ ### `with_argv` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/cli.py#L69" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
14
14
 
15
15
  ```python
16
16
  with_argv(args: list[str] | None)
@@ -27,7 +27,7 @@ Args are provided without the script name, so we preserve sys.argv[0]
27
27
  and replace the rest.
28
28
 
29
29
 
30
- ### `version` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/cli.py#L91" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
30
+ ### `version` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/cli.py#L92" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
31
31
 
32
32
  ```python
33
33
  version()
@@ -37,7 +37,7 @@ version()
37
37
  Display version information and platform details.
38
38
 
39
39
 
40
- ### `dev` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/cli.py#L129" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
40
+ ### `dev` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/cli.py#L130" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
41
41
 
42
42
  ```python
43
43
  dev(server_spec: str | None = None) -> None
@@ -74,7 +74,7 @@ fastmcp run server.py -- --config config.json --debug
74
74
  - `server_spec`: Python file, object specification (file\:obj), config file, URL, or None to auto-detect
75
75
 
76
76
 
77
- ### `inspect` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/cli.py#L524" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
77
+ ### `inspect` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/cli.py#L541" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
78
78
 
79
79
  ```python
80
80
  inspect(server_spec: str | None = None) -> None
@@ -105,7 +105,7 @@ fastmcp inspect # auto-detect fastmcp.json
105
105
  - `server_spec`: Python file to inspect, optionally with \:object suffix, or fastmcp.json
106
106
 
107
107
 
108
- ### `prepare` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/cli.py#L765" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
108
+ ### `prepare` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/cli.py#L782" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
109
109
 
110
110
  ```python
111
111
  prepare(config_path: Annotated[str | None, cyclopts.Parameter(help='Path to fastmcp.json configuration file')] = None, output_dir: Annotated[str | None, cyclopts.Parameter(help='Directory to create the persistent environment in')] = None, skip_source: Annotated[bool, cyclopts.Parameter(help='Skip source preparation (e.g., git clone)')] = False) -> None
@@ -57,7 +57,7 @@ Install FastMCP server in Claude Code.
57
57
  - True if installation was successful, False otherwise
58
58
 
59
59
 
60
- ### `claude_code_command` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/install/claude_code.py#L162" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
60
+ ### `claude_code_command` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/install/claude_code.py#L153" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
61
61
 
62
62
  ```python
63
63
  claude_code_command(server_spec: str) -> None
@@ -44,7 +44,7 @@ Install FastMCP server in Claude Desktop.
44
44
  - True if installation was successful, False otherwise
45
45
 
46
46
 
47
- ### `claude_desktop_command` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/install/claude_desktop.py#L133" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
47
+ ### `claude_desktop_command` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/install/claude_desktop.py#L125" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
48
48
 
49
49
  ```python
50
50
  claude_desktop_command(server_spec: str) -> None
@@ -68,7 +68,7 @@ Install FastMCP server to workspace-specific Cursor configuration.
68
68
  - True if installation was successful, False otherwise
69
69
 
70
70
 
71
- ### `install_cursor` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/install/cursor.py#L157" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
71
+ ### `install_cursor` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/install/cursor.py#L149" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
72
72
 
73
73
  ```python
74
74
  install_cursor(file: Path, server_object: str | None, name: str) -> bool
@@ -93,7 +93,7 @@ Install FastMCP server in Cursor.
93
93
  - True if installation was successful, False otherwise
94
94
 
95
95
 
96
- ### `cursor_command` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/install/cursor.py#L250" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
96
+ ### `cursor_command` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/install/cursor.py#L234" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
97
97
 
98
98
  ```python
99
99
  cursor_command(server_spec: str) -> None
@@ -0,0 +1,68 @@
1
+ ---
2
+ title: gemini_cli
3
+ sidebarTitle: gemini_cli
4
+ ---
5
+
6
+ # `fastmcp.cli.install.gemini_cli`
7
+
8
+
9
+ Gemini CLI integration for FastMCP install using Cyclopts.
10
+
11
+ ## Functions
12
+
13
+ ### `find_gemini_command` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/install/gemini_cli.py#L20" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
14
+
15
+ ```python
16
+ find_gemini_command() -> str | None
17
+ ```
18
+
19
+
20
+ Find the Gemini CLI command.
21
+
22
+
23
+ ### `check_gemini_cli_available` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/install/gemini_cli.py#L64" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
24
+
25
+ ```python
26
+ check_gemini_cli_available() -> bool
27
+ ```
28
+
29
+
30
+ Check if Gemini CLI is available.
31
+
32
+
33
+ ### `install_gemini_cli` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/install/gemini_cli.py#L69" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
34
+
35
+ ```python
36
+ install_gemini_cli(file: Path, server_object: str | None, name: str) -> bool
37
+ ```
38
+
39
+
40
+ Install FastMCP server in Gemini CLI.
41
+
42
+ **Args:**
43
+ - `file`: Path to the server file
44
+ - `server_object`: Optional server object name (for \:object suffix)
45
+ - `name`: Name for the server in Gemini CLI
46
+ - `with_editable`: Optional list of directories to install in editable mode
47
+ - `with_packages`: Optional list of additional packages to install
48
+ - `env_vars`: Optional dictionary of environment variables
49
+ - `python_version`: Optional Python version to use
50
+ - `with_requirements`: Optional requirements file to install from
51
+ - `project`: Optional project directory to run within
52
+
53
+ **Returns:**
54
+ - True if installation was successful, False otherwise
55
+
56
+
57
+ ### `gemini_cli_command` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/install/gemini_cli.py#L151" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
58
+
59
+ ```python
60
+ gemini_cli_command(server_spec: str) -> None
61
+ ```
62
+
63
+
64
+ Install an MCP server in Gemini CLI.
65
+
66
+ **Args:**
67
+ - `server_spec`: Python file to install, optionally with \:object suffix
68
+
@@ -35,7 +35,7 @@ Generate MCP configuration JSON for manual installation.
35
35
  - True if generation was successful, False otherwise
36
36
 
37
37
 
38
- ### `mcp_json_command` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/install/mcp_json.py#L106" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
38
+ ### `mcp_json_command` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/install/mcp_json.py#L98" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
39
39
 
40
40
  ```python
41
41
  mcp_json_command(server_spec: str) -> None
@@ -10,7 +10,7 @@ FastMCP run command implementation with enhanced type hints.
10
10
 
11
11
  ## Functions
12
12
 
13
- ### `is_url` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/run.py#L28" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
13
+ ### `is_url` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/run.py#L25" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
14
14
 
15
15
  ```python
16
16
  is_url(path: str) -> bool
@@ -20,35 +20,7 @@ is_url(path: str) -> bool
20
20
  Check if a string is a URL.
21
21
 
22
22
 
23
- ### `run_with_uv` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/run.py#L34" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
24
-
25
- ```python
26
- run_with_uv(server_spec: str, python_version: str | None = None, with_packages: list[str] | None = None, with_requirements: Path | None = None, project: Path | None = None, transport: TransportType | None = None, host: str | None = None, port: int | None = None, path: str | None = None, log_level: LogLevelType | None = None, show_banner: bool = True, editable: str | list[str] | None = None) -> None
27
- ```
28
-
29
-
30
- Run a MCP server using uv run subprocess.
31
-
32
- This function is called when we need to set up a Python environment with specific
33
- dependencies before running the server. The config parsing and merging should already
34
- be done by the caller.
35
-
36
- **Args:**
37
- - `server_spec`: Python file, object specification (file\:obj), config file, or URL
38
- - `python_version`: Python version to use (e.g. "3.10")
39
- - `with_packages`: Additional packages to install
40
- - `with_requirements`: Requirements file to use
41
- - `project`: Run the command within the given project directory
42
- - `transport`: Transport protocol to use
43
- - `host`: Host to bind to when using http transport
44
- - `port`: Port to bind to when using http transport
45
- - `path`: Path to bind to when using http transport
46
- - `log_level`: Log level
47
- - `show_banner`: Whether to show the server banner
48
- - `editable`: Editable package paths
49
-
50
-
51
- ### `create_client_server` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/run.py#L115" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
23
+ ### `create_client_server` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/run.py#L31" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
52
24
 
53
25
  ```python
54
26
  create_client_server(url: str) -> Any
@@ -64,7 +36,7 @@ Create a FastMCP server from a client URL.
64
36
  - A FastMCP server instance
65
37
 
66
38
 
67
- ### `create_mcp_config_server` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/run.py#L135" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
39
+ ### `create_mcp_config_server` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/run.py#L51" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
68
40
 
69
41
  ```python
70
42
  create_mcp_config_server(mcp_config_path: Path) -> FastMCP[None]
@@ -74,7 +46,7 @@ create_mcp_config_server(mcp_config_path: Path) -> FastMCP[None]
74
46
  Create a FastMCP server from a MCPConfig.
75
47
 
76
48
 
77
- ### `load_mcp_server_config` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/run.py#L146" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
49
+ ### `load_mcp_server_config` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/run.py#L62" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
78
50
 
79
51
  ```python
80
52
  load_mcp_server_config(config_path: Path) -> MCPServerConfig
@@ -90,7 +62,7 @@ Load a FastMCP configuration from a fastmcp.json file.
90
62
  - MCPServerConfig object
91
63
 
92
64
 
93
- ### `run_command` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/run.py#L163" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
65
+ ### `run_command` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/run.py#L79" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
94
66
 
95
67
  ```python
96
68
  run_command(server_spec: str, transport: TransportType | None = None, host: str | None = None, port: int | None = None, path: str | None = None, log_level: LogLevelType | None = None, server_args: list[str] | None = None, show_banner: bool = True, use_direct_import: bool = False, skip_source: bool = False) -> None
@@ -112,7 +84,7 @@ Run a MCP server or connect to a remote one.
112
84
  - `skip_source`: Whether to skip source preparation step
113
85
 
114
86
 
115
- ### `run_v1_server` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/run.py#L284" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
87
+ ### `run_v1_server` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/run.py#L200" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
116
88
 
117
89
  ```python
118
90
  run_v1_server(server: FastMCP1x, host: str | None = None, port: int | None = None, transport: TransportType | None = None) -> None
@@ -374,7 +374,7 @@ containing the prompt messages and any additional metadata.
374
374
  #### `complete_mcp` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/client.py#L744" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
375
375
 
376
376
  ```python
377
- complete_mcp(self, ref: mcp.types.ResourceReference | mcp.types.PromptReference, argument: dict[str, str]) -> mcp.types.CompleteResult
377
+ complete_mcp(self, ref: mcp.types.ResourceTemplateReference | mcp.types.PromptReference, argument: dict[str, str]) -> mcp.types.CompleteResult
378
378
  ```
379
379
 
380
380
  Send a completion request and return the complete MCP protocol result.
@@ -394,7 +394,7 @@ containing the completion and any additional metadata.
394
394
  #### `complete` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/client.py#L767" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
395
395
 
396
396
  ```python
397
- complete(self, ref: mcp.types.ResourceReference | mcp.types.PromptReference, argument: dict[str, str]) -> mcp.types.Completion
397
+ complete(self, ref: mcp.types.ResourceTemplateReference | mcp.types.PromptReference, argument: dict[str, str]) -> mcp.types.Completion
398
398
  ```
399
399
 
400
400
  Send a completion request to the server.
@@ -57,7 +57,7 @@ to_mcp_prompt(self, **overrides: Any) -> MCPPrompt
57
57
  Convert the prompt to an MCP prompt.
58
58
 
59
59
 
60
- #### `from_function` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/prompts/prompt.py#L113" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
60
+ #### `from_function` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/prompts/prompt.py#L115" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
61
61
 
62
62
  ```python
63
63
  from_function(fn: Callable[..., PromptResult | Awaitable[PromptResult]], name: str | None = None, title: str | None = None, description: str | None = None, tags: set[str] | None = None, enabled: bool | None = None, meta: dict[str, Any] | None = None) -> FunctionPrompt
@@ -72,7 +72,7 @@ The function can return:
72
72
  - A sequence of any of the above
73
73
 
74
74
 
75
- #### `render` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/prompts/prompt.py#L141" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
75
+ #### `render` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/prompts/prompt.py#L143" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
76
76
 
77
77
  ```python
78
78
  render(self, arguments: dict[str, Any] | None = None) -> list[PromptMessage]
@@ -81,7 +81,7 @@ render(self, arguments: dict[str, Any] | None = None) -> list[PromptMessage]
81
81
  Render the prompt with arguments.
82
82
 
83
83
 
84
- ### `FunctionPrompt` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/prompts/prompt.py#L149" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
84
+ ### `FunctionPrompt` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/prompts/prompt.py#L151" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
85
85
 
86
86
 
87
87
  A prompt that is a function.
@@ -89,7 +89,7 @@ A prompt that is a function.
89
89
 
90
90
  **Methods:**
91
91
 
92
- #### `from_function` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/prompts/prompt.py#L155" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
92
+ #### `from_function` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/prompts/prompt.py#L157" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
93
93
 
94
94
  ```python
95
95
  from_function(cls, fn: Callable[..., PromptResult | Awaitable[PromptResult]], name: str | None = None, title: str | None = None, description: str | None = None, tags: set[str] | None = None, enabled: bool | None = None, meta: dict[str, Any] | None = None) -> FunctionPrompt
@@ -104,7 +104,7 @@ The function can return:
104
104
  - A sequence of any of the above
105
105
 
106
106
 
107
- #### `render` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/prompts/prompt.py#L315" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
107
+ #### `render` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/prompts/prompt.py#L317" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
108
108
 
109
109
  ```python
110
110
  render(self, arguments: dict[str, Any] | None = None) -> list[PromptMessage]