fastmcp 2.11.0__tar.gz → 2.11.1__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 (471) hide show
  1. {fastmcp-2.11.0 → fastmcp-2.11.1}/PKG-INFO +1 -1
  2. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/changelog.mdx +105 -0
  3. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/clients/auth/bearer.mdx +0 -1
  4. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/docs.json +8 -7
  5. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/integrations/authkit.mdx +7 -7
  6. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/integrations/chatgpt.mdx +1 -1
  7. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/integrations/claude-code.mdx +0 -1
  8. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/integrations/eunomia-authorization.mdx +0 -1
  9. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/integrations/mcp-json-configuration.mdx +1 -1
  10. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/integrations/openai.mdx +0 -1
  11. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/integrations/permit.mdx +1 -2
  12. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/patterns/decorating-methods.mdx +2 -2
  13. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/python-sdk/fastmcp-cli-cli.mdx +2 -2
  14. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/python-sdk/fastmcp-cli-run.mdx +14 -8
  15. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/python-sdk/fastmcp-client-auth-oauth.mdx +40 -51
  16. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/python-sdk/fastmcp-client-transports.mdx +31 -25
  17. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/python-sdk/fastmcp-prompts-prompt.mdx +7 -7
  18. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/python-sdk/fastmcp-resources-resource.mdx +14 -14
  19. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/python-sdk/fastmcp-resources-template.mdx +18 -18
  20. fastmcp-2.11.1/docs/python-sdk/fastmcp-server-auth-auth.mdx +124 -0
  21. fastmcp-2.11.1/docs/python-sdk/fastmcp-server-auth-providers-bearer.mdx +13 -0
  22. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/python-sdk/fastmcp-server-auth-providers-in_memory.mdx +10 -10
  23. fastmcp-2.11.1/docs/python-sdk/fastmcp-server-auth-providers-jwt.mdx +149 -0
  24. fastmcp-2.11.1/docs/python-sdk/fastmcp-server-auth-providers-workos.mdx +58 -0
  25. fastmcp-2.11.1/docs/python-sdk/fastmcp-server-auth-registry.mdx +43 -0
  26. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/python-sdk/fastmcp-server-context.mdx +46 -36
  27. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/python-sdk/fastmcp-server-dependencies.mdx +1 -1
  28. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/python-sdk/fastmcp-server-http.mdx +14 -14
  29. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/python-sdk/fastmcp-server-middleware-middleware.mdx +15 -17
  30. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/python-sdk/fastmcp-server-proxy.mdx +44 -35
  31. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/python-sdk/fastmcp-server-server.mdx +53 -49
  32. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/python-sdk/fastmcp-tools-tool.mdx +11 -11
  33. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/python-sdk/fastmcp-tools-tool_transform.mdx +16 -12
  34. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/python-sdk/fastmcp-utilities-components.mdx +24 -10
  35. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/python-sdk/fastmcp-utilities-mcp_config.mdx +4 -4
  36. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/python-sdk/fastmcp-utilities-openapi.mdx +10 -9
  37. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/python-sdk/fastmcp-utilities-tests.mdx +34 -3
  38. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/python-sdk/fastmcp-utilities-types.mdx +10 -10
  39. fastmcp-2.11.1/docs/servers/auth/authentication.mdx +193 -0
  40. fastmcp-2.11.1/docs/servers/auth/full-oauth-server.mdx +229 -0
  41. fastmcp-2.11.1/docs/servers/auth/remote-oauth.mdx +189 -0
  42. fastmcp-2.11.1/docs/servers/auth/token-verification.mdx +200 -0
  43. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/server/auth/__init__.py +2 -1
  44. fastmcp-2.11.1/src/fastmcp/server/auth/auth.py +278 -0
  45. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/server/auth/providers/jwt.py +1 -1
  46. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/server/auth/providers/workos.py +27 -46
  47. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/server/http.py +32 -73
  48. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/utilities/components.py +6 -1
  49. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/utilities/openapi.py +3 -7
  50. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/utilities/types.py +6 -1
  51. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/server/test_mount.py +14 -5
  52. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/utilities/test_typeadapter.py +29 -0
  53. fastmcp-2.11.0/docs/python-sdk/fastmcp-server-auth-auth.mdx +0 -30
  54. fastmcp-2.11.0/docs/python-sdk/fastmcp-server-auth-providers-bearer.mdx +0 -152
  55. fastmcp-2.11.0/docs/servers/auth/authentication.mdx +0 -167
  56. fastmcp-2.11.0/docs/servers/auth/full-oauth-server.mdx +0 -128
  57. fastmcp-2.11.0/docs/servers/auth/remote-authentication.mdx +0 -146
  58. fastmcp-2.11.0/docs/servers/auth/token-verification.mdx +0 -210
  59. fastmcp-2.11.0/src/fastmcp/server/auth/auth.py +0 -197
  60. fastmcp-2.11.0/tests/server/http/test_auth_setup.py +0 -189
  61. {fastmcp-2.11.0 → fastmcp-2.11.1}/.ccignore +0 -0
  62. {fastmcp-2.11.0 → fastmcp-2.11.1}/.cursor/rules/core-mcp-objects.mdc +0 -0
  63. {fastmcp-2.11.0 → fastmcp-2.11.1}/.github/ISSUE_TEMPLATE/bug.yml +0 -0
  64. {fastmcp-2.11.0 → fastmcp-2.11.1}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  65. {fastmcp-2.11.0 → fastmcp-2.11.1}/.github/ISSUE_TEMPLATE/enhancement.yml +0 -0
  66. {fastmcp-2.11.0 → fastmcp-2.11.1}/.github/dependabot.yml +0 -0
  67. {fastmcp-2.11.0 → fastmcp-2.11.1}/.github/labeler.yml +0 -0
  68. {fastmcp-2.11.0 → fastmcp-2.11.1}/.github/release.yml +0 -0
  69. {fastmcp-2.11.0 → fastmcp-2.11.1}/.github/workflows/labeler.yml +0 -0
  70. {fastmcp-2.11.0 → fastmcp-2.11.1}/.github/workflows/publish.yml +0 -0
  71. {fastmcp-2.11.0 → fastmcp-2.11.1}/.github/workflows/run-static.yml +0 -0
  72. {fastmcp-2.11.0 → fastmcp-2.11.1}/.github/workflows/run-tests.yml +0 -0
  73. {fastmcp-2.11.0 → fastmcp-2.11.1}/.gitignore +0 -0
  74. {fastmcp-2.11.0 → fastmcp-2.11.1}/.pre-commit-config.yaml +0 -0
  75. {fastmcp-2.11.0 → fastmcp-2.11.1}/AGENTS.md +0 -0
  76. {fastmcp-2.11.0 → fastmcp-2.11.1}/CLAUDE.md +0 -0
  77. {fastmcp-2.11.0 → fastmcp-2.11.1}/LICENSE +0 -0
  78. {fastmcp-2.11.0 → fastmcp-2.11.1}/README.md +0 -0
  79. {fastmcp-2.11.0 → fastmcp-2.11.1}/README_OPENAPI.md +0 -0
  80. {fastmcp-2.11.0 → fastmcp-2.11.1}/Windows_Notes.md +0 -0
  81. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/.ccignore +0 -0
  82. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/.cursor/rules/mintlify.mdc +0 -0
  83. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/assets/favicon.svg +0 -0
  84. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/assets/images/tutorial-rest-api-result.png +0 -0
  85. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/assets/updates/release-2-7.png +0 -0
  86. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/clients/auth/oauth.mdx +0 -0
  87. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/clients/client.mdx +0 -0
  88. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/clients/elicitation.mdx +0 -0
  89. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/clients/logging.mdx +0 -0
  90. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/clients/messages.mdx +0 -0
  91. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/clients/progress.mdx +0 -0
  92. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/clients/prompts.mdx +0 -0
  93. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/clients/resources.mdx +0 -0
  94. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/clients/roots.mdx +0 -0
  95. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/clients/sampling.mdx +0 -0
  96. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/clients/tools.mdx +0 -0
  97. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/clients/transports.mdx +0 -0
  98. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/community/README.md +0 -0
  99. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/community/showcase.mdx +0 -0
  100. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/css/banner.css +0 -0
  101. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/css/python-sdk.css +0 -0
  102. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/css/style.css +0 -0
  103. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/css/version-badge.css +0 -0
  104. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/deployment/running-server.mdx +0 -0
  105. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/getting-started/installation.mdx +0 -0
  106. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/getting-started/quickstart.mdx +0 -0
  107. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/getting-started/welcome.mdx +0 -0
  108. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/integrations/anthropic.mdx +0 -0
  109. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/integrations/claude-desktop.mdx +0 -0
  110. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/integrations/cursor-install-mcp.png +0 -0
  111. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/integrations/cursor.mdx +0 -0
  112. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/integrations/fastapi.mdx +0 -0
  113. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/integrations/gemini.mdx +0 -0
  114. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/integrations/images/authkit/enable_dcr.png +0 -0
  115. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/integrations/images/permit/abac_condition_example.png +0 -0
  116. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/integrations/images/permit/abac_policy_example.png +0 -0
  117. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/integrations/images/permit/policy_mapping.png +0 -0
  118. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/integrations/images/permit/role_assignement.png +0 -0
  119. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/integrations/openapi.mdx +0 -0
  120. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/integrations/starlette.mdx +0 -0
  121. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/patterns/cli.mdx +0 -0
  122. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/patterns/contrib.mdx +0 -0
  123. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/patterns/http-requests.mdx +0 -0
  124. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/patterns/testing.mdx +0 -0
  125. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/patterns/tool-transformation.mdx +0 -0
  126. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/python-sdk/fastmcp-cli-__init__.mdx +0 -0
  127. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/python-sdk/fastmcp-cli-claude.mdx +0 -0
  128. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/python-sdk/fastmcp-cli-install-__init__.mdx +0 -0
  129. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/python-sdk/fastmcp-cli-install-claude_code.mdx +0 -0
  130. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/python-sdk/fastmcp-cli-install-claude_desktop.mdx +0 -0
  131. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/python-sdk/fastmcp-cli-install-cursor.mdx +0 -0
  132. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/python-sdk/fastmcp-cli-install-mcp_json.mdx +0 -0
  133. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/python-sdk/fastmcp-cli-install-shared.mdx +0 -0
  134. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/python-sdk/fastmcp-client-__init__.mdx +0 -0
  135. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/python-sdk/fastmcp-client-auth-__init__.mdx +0 -0
  136. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/python-sdk/fastmcp-client-auth-bearer.mdx +0 -0
  137. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/python-sdk/fastmcp-client-client.mdx +0 -0
  138. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/python-sdk/fastmcp-client-elicitation.mdx +0 -0
  139. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/python-sdk/fastmcp-client-logging.mdx +0 -0
  140. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/python-sdk/fastmcp-client-messages.mdx +0 -0
  141. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/python-sdk/fastmcp-client-oauth_callback.mdx +0 -0
  142. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/python-sdk/fastmcp-client-progress.mdx +0 -0
  143. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/python-sdk/fastmcp-client-roots.mdx +0 -0
  144. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/python-sdk/fastmcp-client-sampling.mdx +0 -0
  145. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/python-sdk/fastmcp-exceptions.mdx +0 -0
  146. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/python-sdk/fastmcp-mcp_config.mdx +0 -0
  147. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/python-sdk/fastmcp-prompts-__init__.mdx +0 -0
  148. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/python-sdk/fastmcp-prompts-prompt_manager.mdx +0 -0
  149. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/python-sdk/fastmcp-resources-__init__.mdx +0 -0
  150. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/python-sdk/fastmcp-resources-resource_manager.mdx +0 -0
  151. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/python-sdk/fastmcp-resources-types.mdx +0 -0
  152. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/python-sdk/fastmcp-server-__init__.mdx +0 -0
  153. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/python-sdk/fastmcp-server-auth-__init__.mdx +0 -0
  154. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/python-sdk/fastmcp-server-auth-providers-__init__.mdx +0 -0
  155. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/python-sdk/fastmcp-server-auth-providers-bearer_env.mdx +0 -0
  156. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/python-sdk/fastmcp-server-elicitation.mdx +0 -0
  157. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/python-sdk/fastmcp-server-low_level.mdx +0 -0
  158. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/python-sdk/fastmcp-server-middleware-__init__.mdx +0 -0
  159. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/python-sdk/fastmcp-server-middleware-error_handling.mdx +0 -0
  160. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/python-sdk/fastmcp-server-middleware-logging.mdx +0 -0
  161. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/python-sdk/fastmcp-server-middleware-rate_limiting.mdx +0 -0
  162. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/python-sdk/fastmcp-server-middleware-timing.mdx +0 -0
  163. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/python-sdk/fastmcp-server-openapi.mdx +0 -0
  164. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/python-sdk/fastmcp-settings.mdx +0 -0
  165. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/python-sdk/fastmcp-tools-__init__.mdx +0 -0
  166. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/python-sdk/fastmcp-tools-tool_manager.mdx +0 -0
  167. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/python-sdk/fastmcp-utilities-__init__.mdx +0 -0
  168. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/python-sdk/fastmcp-utilities-cli.mdx +0 -0
  169. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/python-sdk/fastmcp-utilities-exceptions.mdx +0 -0
  170. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/python-sdk/fastmcp-utilities-http.mdx +0 -0
  171. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/python-sdk/fastmcp-utilities-inspect.mdx +0 -0
  172. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/python-sdk/fastmcp-utilities-json_schema.mdx +0 -0
  173. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/python-sdk/fastmcp-utilities-json_schema_type.mdx +0 -0
  174. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/python-sdk/fastmcp-utilities-logging.mdx +0 -0
  175. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/servers/composition.mdx +0 -0
  176. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/servers/context.mdx +0 -0
  177. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/servers/elicitation.mdx +0 -0
  178. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/servers/logging.mdx +0 -0
  179. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/servers/middleware.mdx +0 -0
  180. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/servers/progress.mdx +0 -0
  181. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/servers/prompts.mdx +0 -0
  182. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/servers/proxy.mdx +0 -0
  183. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/servers/resources.mdx +0 -0
  184. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/servers/sampling.mdx +0 -0
  185. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/servers/server.mdx +0 -0
  186. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/servers/tools.mdx +0 -0
  187. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/snippets/local-focus.mdx +0 -0
  188. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/snippets/version-badge.mdx +0 -0
  189. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/snippets/youtube-embed.mdx +0 -0
  190. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/tutorials/create-mcp-server.mdx +0 -0
  191. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/tutorials/mcp.mdx +0 -0
  192. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/tutorials/rest-api.mdx +0 -0
  193. {fastmcp-2.11.0 → fastmcp-2.11.1}/docs/updates.mdx +0 -0
  194. {fastmcp-2.11.0 → fastmcp-2.11.1}/examples/atproto_mcp/README.md +0 -0
  195. {fastmcp-2.11.0 → fastmcp-2.11.1}/examples/atproto_mcp/demo.py +0 -0
  196. {fastmcp-2.11.0 → fastmcp-2.11.1}/examples/atproto_mcp/pyproject.toml +0 -0
  197. {fastmcp-2.11.0 → fastmcp-2.11.1}/examples/atproto_mcp/src/atproto_mcp/__init__.py +0 -0
  198. {fastmcp-2.11.0 → fastmcp-2.11.1}/examples/atproto_mcp/src/atproto_mcp/__main__.py +0 -0
  199. {fastmcp-2.11.0 → fastmcp-2.11.1}/examples/atproto_mcp/src/atproto_mcp/_atproto/__init__.py +0 -0
  200. {fastmcp-2.11.0 → fastmcp-2.11.1}/examples/atproto_mcp/src/atproto_mcp/_atproto/_client.py +0 -0
  201. {fastmcp-2.11.0 → fastmcp-2.11.1}/examples/atproto_mcp/src/atproto_mcp/_atproto/_posts.py +0 -0
  202. {fastmcp-2.11.0 → fastmcp-2.11.1}/examples/atproto_mcp/src/atproto_mcp/_atproto/_profile.py +0 -0
  203. {fastmcp-2.11.0 → fastmcp-2.11.1}/examples/atproto_mcp/src/atproto_mcp/_atproto/_read.py +0 -0
  204. {fastmcp-2.11.0 → fastmcp-2.11.1}/examples/atproto_mcp/src/atproto_mcp/_atproto/_social.py +0 -0
  205. {fastmcp-2.11.0 → fastmcp-2.11.1}/examples/atproto_mcp/src/atproto_mcp/py.typed +0 -0
  206. {fastmcp-2.11.0 → fastmcp-2.11.1}/examples/atproto_mcp/src/atproto_mcp/server.py +0 -0
  207. {fastmcp-2.11.0 → fastmcp-2.11.1}/examples/atproto_mcp/src/atproto_mcp/settings.py +0 -0
  208. {fastmcp-2.11.0 → fastmcp-2.11.1}/examples/atproto_mcp/src/atproto_mcp/types.py +0 -0
  209. {fastmcp-2.11.0 → fastmcp-2.11.1}/examples/complex_inputs.py +0 -0
  210. {fastmcp-2.11.0 → fastmcp-2.11.1}/examples/config_server.py +0 -0
  211. {fastmcp-2.11.0 → fastmcp-2.11.1}/examples/desktop.py +0 -0
  212. {fastmcp-2.11.0 → fastmcp-2.11.1}/examples/echo.py +0 -0
  213. {fastmcp-2.11.0 → fastmcp-2.11.1}/examples/get_file.py +0 -0
  214. {fastmcp-2.11.0 → fastmcp-2.11.1}/examples/in_memory_proxy_example.py +0 -0
  215. {fastmcp-2.11.0 → fastmcp-2.11.1}/examples/memory.py +0 -0
  216. {fastmcp-2.11.0 → fastmcp-2.11.1}/examples/mount_example.py +0 -0
  217. {fastmcp-2.11.0 → fastmcp-2.11.1}/examples/sampling.py +0 -0
  218. {fastmcp-2.11.0 → fastmcp-2.11.1}/examples/screenshot.py +0 -0
  219. {fastmcp-2.11.0 → fastmcp-2.11.1}/examples/serializer.py +0 -0
  220. {fastmcp-2.11.0 → fastmcp-2.11.1}/examples/simple_echo.py +0 -0
  221. {fastmcp-2.11.0 → fastmcp-2.11.1}/examples/smart_home/README.md +0 -0
  222. {fastmcp-2.11.0 → fastmcp-2.11.1}/examples/smart_home/pyproject.toml +0 -0
  223. {fastmcp-2.11.0 → fastmcp-2.11.1}/examples/smart_home/src/smart_home/__init__.py +0 -0
  224. {fastmcp-2.11.0 → fastmcp-2.11.1}/examples/smart_home/src/smart_home/__main__.py +0 -0
  225. {fastmcp-2.11.0 → fastmcp-2.11.1}/examples/smart_home/src/smart_home/hub.py +0 -0
  226. {fastmcp-2.11.0 → fastmcp-2.11.1}/examples/smart_home/src/smart_home/lights/__init__.py +0 -0
  227. {fastmcp-2.11.0 → fastmcp-2.11.1}/examples/smart_home/src/smart_home/lights/hue_utils.py +0 -0
  228. {fastmcp-2.11.0 → fastmcp-2.11.1}/examples/smart_home/src/smart_home/lights/server.py +0 -0
  229. {fastmcp-2.11.0 → fastmcp-2.11.1}/examples/smart_home/src/smart_home/py.typed +0 -0
  230. {fastmcp-2.11.0 → fastmcp-2.11.1}/examples/smart_home/src/smart_home/settings.py +0 -0
  231. {fastmcp-2.11.0 → fastmcp-2.11.1}/examples/smart_home/uv.lock +0 -0
  232. {fastmcp-2.11.0 → fastmcp-2.11.1}/examples/tags_example.py +0 -0
  233. {fastmcp-2.11.0 → fastmcp-2.11.1}/examples/text_me.py +0 -0
  234. {fastmcp-2.11.0 → fastmcp-2.11.1}/justfile +0 -0
  235. {fastmcp-2.11.0 → fastmcp-2.11.1}/pyproject.toml +0 -0
  236. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/__init__.py +0 -0
  237. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/cli/__init__.py +0 -0
  238. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/cli/claude.py +0 -0
  239. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/cli/cli.py +0 -0
  240. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/cli/install/__init__.py +0 -0
  241. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/cli/install/claude_code.py +0 -0
  242. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/cli/install/claude_desktop.py +0 -0
  243. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/cli/install/cursor.py +0 -0
  244. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/cli/install/mcp_json.py +0 -0
  245. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/cli/install/shared.py +0 -0
  246. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/cli/run.py +0 -0
  247. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/client/__init__.py +0 -0
  248. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/client/auth/__init__.py +0 -0
  249. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/client/auth/bearer.py +0 -0
  250. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/client/auth/oauth.py +0 -0
  251. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/client/client.py +0 -0
  252. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/client/elicitation.py +0 -0
  253. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/client/logging.py +0 -0
  254. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/client/messages.py +0 -0
  255. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/client/oauth_callback.py +0 -0
  256. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/client/progress.py +0 -0
  257. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/client/roots.py +0 -0
  258. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/client/sampling.py +0 -0
  259. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/client/transports.py +0 -0
  260. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/contrib/README.md +0 -0
  261. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/contrib/bulk_tool_caller/README.md +0 -0
  262. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/contrib/bulk_tool_caller/__init__.py +0 -0
  263. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/contrib/bulk_tool_caller/bulk_tool_caller.py +0 -0
  264. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/contrib/bulk_tool_caller/example.py +0 -0
  265. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/contrib/component_manager/README.md +0 -0
  266. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/contrib/component_manager/__init__.py +0 -0
  267. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/contrib/component_manager/component_manager.py +0 -0
  268. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/contrib/component_manager/component_service.py +0 -0
  269. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/contrib/component_manager/example.py +0 -0
  270. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/contrib/mcp_mixin/README.md +0 -0
  271. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/contrib/mcp_mixin/__init__.py +0 -0
  272. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/contrib/mcp_mixin/example.py +0 -0
  273. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/contrib/mcp_mixin/mcp_mixin.py +0 -0
  274. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/exceptions.py +0 -0
  275. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/experimental/server/openapi/README.md +0 -0
  276. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/experimental/server/openapi/__init__.py +0 -0
  277. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/experimental/server/openapi/components.py +0 -0
  278. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/experimental/server/openapi/routing.py +0 -0
  279. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/experimental/server/openapi/server.py +0 -0
  280. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/experimental/utilities/openapi/README.md +0 -0
  281. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/experimental/utilities/openapi/__init__.py +0 -0
  282. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/experimental/utilities/openapi/director.py +0 -0
  283. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/experimental/utilities/openapi/formatters.py +0 -0
  284. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/experimental/utilities/openapi/json_schema_converter.py +0 -0
  285. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/experimental/utilities/openapi/models.py +0 -0
  286. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/experimental/utilities/openapi/parser.py +0 -0
  287. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/experimental/utilities/openapi/schemas.py +0 -0
  288. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/mcp_config.py +0 -0
  289. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/prompts/__init__.py +0 -0
  290. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/prompts/prompt.py +0 -0
  291. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/prompts/prompt_manager.py +0 -0
  292. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/py.typed +0 -0
  293. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/resources/__init__.py +0 -0
  294. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/resources/resource.py +0 -0
  295. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/resources/resource_manager.py +0 -0
  296. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/resources/template.py +0 -0
  297. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/resources/types.py +0 -0
  298. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/server/__init__.py +0 -0
  299. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/server/auth/providers/__init__.py +0 -0
  300. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/server/auth/providers/bearer.py +0 -0
  301. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/server/auth/providers/in_memory.py +0 -0
  302. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/server/auth/registry.py +0 -0
  303. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/server/context.py +0 -0
  304. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/server/dependencies.py +0 -0
  305. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/server/elicitation.py +0 -0
  306. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/server/low_level.py +0 -0
  307. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/server/middleware/__init__.py +0 -0
  308. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/server/middleware/error_handling.py +0 -0
  309. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/server/middleware/logging.py +0 -0
  310. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/server/middleware/middleware.py +0 -0
  311. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/server/middleware/rate_limiting.py +0 -0
  312. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/server/middleware/timing.py +0 -0
  313. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/server/openapi.py +0 -0
  314. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/server/proxy.py +0 -0
  315. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/server/server.py +0 -0
  316. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/settings.py +0 -0
  317. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/tools/__init__.py +0 -0
  318. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/tools/tool.py +0 -0
  319. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/tools/tool_manager.py +0 -0
  320. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/tools/tool_transform.py +0 -0
  321. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/utilities/__init__.py +0 -0
  322. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/utilities/cli.py +0 -0
  323. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/utilities/exceptions.py +0 -0
  324. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/utilities/http.py +0 -0
  325. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/utilities/inspect.py +0 -0
  326. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/utilities/json_schema.py +0 -0
  327. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/utilities/json_schema_type.py +0 -0
  328. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/utilities/logging.py +0 -0
  329. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/utilities/mcp_config.py +0 -0
  330. {fastmcp-2.11.0 → fastmcp-2.11.1}/src/fastmcp/utilities/tests.py +0 -0
  331. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/__init__.py +0 -0
  332. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/cli/__init__.py +0 -0
  333. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/cli/test_cli.py +0 -0
  334. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/cli/test_cursor.py +0 -0
  335. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/cli/test_install.py +0 -0
  336. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/cli/test_run.py +0 -0
  337. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/cli/test_run_with_uv.py +0 -0
  338. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/cli/test_shared.py +0 -0
  339. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/client/__init__.py +0 -0
  340. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/client/auth/__init__.py +0 -0
  341. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/client/auth/test_oauth_client.py +0 -0
  342. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/client/test_client.py +0 -0
  343. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/client/test_elicitation.py +0 -0
  344. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/client/test_logs.py +0 -0
  345. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/client/test_notifications.py +0 -0
  346. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/client/test_openapi_experimental.py +0 -0
  347. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/client/test_openapi_legacy.py +0 -0
  348. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/client/test_progress.py +0 -0
  349. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/client/test_roots.py +0 -0
  350. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/client/test_sampling.py +0 -0
  351. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/client/test_sse.py +0 -0
  352. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/client/test_stdio.py +0 -0
  353. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/client/test_streamable_http.py +0 -0
  354. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/client/transports/__init__.py +0 -0
  355. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/client/transports/test_uv_transport.py +0 -0
  356. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/conftest.py +0 -0
  357. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/contrib/__init__.py +0 -0
  358. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/contrib/test_bulk_tool_caller.py +0 -0
  359. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/contrib/test_component_manager.py +0 -0
  360. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/contrib/test_mcp_mixin.py +0 -0
  361. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/deprecated/__init__.py +0 -0
  362. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/deprecated/test_bearer_auth_provider.py +0 -0
  363. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/deprecated/test_deprecated.py +0 -0
  364. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/deprecated/test_mount_import_arg_order.py +0 -0
  365. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/deprecated/test_mount_separators.py +0 -0
  366. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/deprecated/test_proxy_client.py +0 -0
  367. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/deprecated/test_resource_prefixes.py +0 -0
  368. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/deprecated/test_route_type_ignore.py +0 -0
  369. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/deprecated/test_settings.py +0 -0
  370. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/experimental/__init__.py +0 -0
  371. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/experimental/server/__init__.py +0 -0
  372. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/experimental/server/openapi/__init__.py +0 -0
  373. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/experimental/server/openapi/test_comprehensive.py +0 -0
  374. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/experimental/server/openapi/test_deepobject_style.py +0 -0
  375. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/experimental/server/openapi/test_end_to_end_compatibility.py +0 -0
  376. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/experimental/server/openapi/test_openapi_features.py +0 -0
  377. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/experimental/server/openapi/test_parameter_collisions.py +0 -0
  378. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/experimental/server/openapi/test_performance_comparison.py +0 -0
  379. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/experimental/server/openapi/test_server.py +0 -0
  380. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/experimental/server/test_openapi_performance.py +0 -0
  381. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/experimental/utilities/__init__.py +0 -0
  382. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/experimental/utilities/openapi/__init__.py +0 -0
  383. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/experimental/utilities/openapi/conftest.py +0 -0
  384. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/experimental/utilities/openapi/test_director.py +0 -0
  385. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/experimental/utilities/openapi/test_legacy_compatibility.py +0 -0
  386. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/experimental/utilities/openapi/test_models.py +0 -0
  387. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/experimental/utilities/openapi/test_nullable_fields.py +0 -0
  388. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/experimental/utilities/openapi/test_parser.py +0 -0
  389. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/experimental/utilities/openapi/test_schemas.py +0 -0
  390. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/integration_tests/__init__.py +0 -0
  391. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/integration_tests/conftest.py +0 -0
  392. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/integration_tests/test_github_mcp_remote.py +0 -0
  393. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/prompts/__init__.py +0 -0
  394. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/prompts/test_prompt.py +0 -0
  395. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/prompts/test_prompt_manager.py +0 -0
  396. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/resources/__init__.py +0 -0
  397. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/resources/test_file_resources.py +0 -0
  398. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/resources/test_function_resources.py +0 -0
  399. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/resources/test_resource_manager.py +0 -0
  400. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/resources/test_resource_template.py +0 -0
  401. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/resources/test_resource_template_meta.py +0 -0
  402. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/resources/test_resources.py +0 -0
  403. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/server/__init__.py +0 -0
  404. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/server/auth/test_jwt_provider.py +0 -0
  405. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/server/auth/test_static_token_verifier.py +0 -0
  406. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/server/auth/test_workos.py +0 -0
  407. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/server/http/__init__.py +0 -0
  408. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/server/http/test_bearer_auth_backend.py +0 -0
  409. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/server/http/test_custom_routes.py +0 -0
  410. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/server/http/test_http_auth_middleware.py +0 -0
  411. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/server/http/test_http_dependencies.py +0 -0
  412. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/server/http/test_http_middleware.py +0 -0
  413. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/server/middleware/__init__.py +0 -0
  414. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/server/middleware/test_error_handling.py +0 -0
  415. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/server/middleware/test_logging.py +0 -0
  416. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/server/middleware/test_middleware.py +0 -0
  417. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/server/middleware/test_rate_limiting.py +0 -0
  418. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/server/middleware/test_timing.py +0 -0
  419. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/server/openapi/__init__.py +0 -0
  420. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/server/openapi/conftest.py +0 -0
  421. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/server/openapi/test_advanced_behavior.py +0 -0
  422. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/server/openapi/test_basic_functionality.py +0 -0
  423. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/server/openapi/test_configuration.py +0 -0
  424. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/server/openapi/test_deepobject_style.py +0 -0
  425. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/server/openapi/test_description_propagation.py +0 -0
  426. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/server/openapi/test_explode_integration.py +0 -0
  427. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/server/openapi/test_openapi_compatibility.py +0 -0
  428. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/server/openapi/test_openapi_path_parameters.py +0 -0
  429. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/server/openapi/test_optional_parameters.py +0 -0
  430. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/server/openapi/test_parameter_collisions.py +0 -0
  431. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/server/openapi/test_route_map_fn.py +0 -0
  432. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/server/proxy/__init__.py +0 -0
  433. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/server/proxy/test_proxy_client.py +0 -0
  434. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/server/proxy/test_proxy_server.py +0 -0
  435. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/server/proxy/test_stateful_proxy_client.py +0 -0
  436. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/server/test_app_state.py +0 -0
  437. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/server/test_auth_integration.py +0 -0
  438. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/server/test_context.py +0 -0
  439. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/server/test_experimental_openapi_feature_flag.py +0 -0
  440. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/server/test_file_server.py +0 -0
  441. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/server/test_import_server.py +0 -0
  442. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/server/test_logging.py +0 -0
  443. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/server/test_resource_prefix_formats.py +0 -0
  444. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/server/test_run_server.py +0 -0
  445. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/server/test_server.py +0 -0
  446. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/server/test_server_interactions.py +0 -0
  447. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/server/test_tool_annotations.py +0 -0
  448. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/server/test_tool_exclude_args.py +0 -0
  449. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/server/test_tool_transformation.py +0 -0
  450. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/test_examples.py +0 -0
  451. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/test_mcp_config.py +0 -0
  452. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/tools/__init__.py +0 -0
  453. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/tools/test_tool.py +0 -0
  454. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/tools/test_tool_future_annotations.py +0 -0
  455. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/tools/test_tool_manager.py +0 -0
  456. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/tools/test_tool_transform.py +0 -0
  457. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/utilities/__init__.py +0 -0
  458. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/utilities/openapi/__init__.py +0 -0
  459. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/utilities/openapi/conftest.py +0 -0
  460. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/utilities/openapi/test_nullable_fields.py +0 -0
  461. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/utilities/openapi/test_openapi.py +0 -0
  462. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/utilities/openapi/test_openapi_advanced.py +0 -0
  463. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/utilities/openapi/test_openapi_fastapi.py +0 -0
  464. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/utilities/openapi/test_openapi_output_schemas.py +0 -0
  465. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/utilities/test_inspect.py +0 -0
  466. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/utilities/test_json_schema.py +0 -0
  467. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/utilities/test_json_schema_type.py +0 -0
  468. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/utilities/test_logging.py +0 -0
  469. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/utilities/test_tests.py +0 -0
  470. {fastmcp-2.11.0 → fastmcp-2.11.1}/tests/utilities/test_types.py +0 -0
  471. {fastmcp-2.11.0 → fastmcp-2.11.1}/uv.lock +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fastmcp
3
- Version: 2.11.0
3
+ Version: 2.11.1
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
@@ -2,6 +2,111 @@
2
2
  icon: "list-check"
3
3
  ---
4
4
 
5
+ <Update label="v2.11.0" description="2025-08-01">
6
+
7
+ ## [v2.11.0: Auth to a Good Start](https://github.com/jlowin/fastmcp/releases/tag/v2.11.0)
8
+
9
+ FastMCP 2.11 doubles down on what developers need most: speed and simplicity. This massive release delivers significant performance improvements and a dramatically better developer experience.
10
+
11
+ 🔐 **Enterprise-Ready Authentication** brings comprehensive OAuth 2.1 support with WorkOS's AuthKit integration. The new AuthProvider interface leverages MCP's support for separate resource and authorization servers, handling API keys and remote authentication with Dynamic Client Registration. AuthKit integration means you can plug into existing enterprise identity systems without rebuilding your auth stack, setting the stage for plug-and-play auth that doesn't require users to become security experts overnight.
12
+
13
+ ⚡ The **Experimental OpenAPI Parser** delivers dramatic performance improvements through single-pass schema processing and optimized memory usage. OpenAPI integrations are now significantly faster, with cleaner, more maintainable code. _(Note: the experimental parser is disabled by default, set `FASTMCPEXPERIMENTALENABLENEWOPENAPIPARSER=1` to enable it. A message will be shown to all users on the legacy parser encouraging them to try the new one before it becomes the default.)_
14
+
15
+ 🧠 **Context State Management** finally gives you persistent state across tool calls with a simple dict interface, while enhanced meta support lets you expose rich component metadata to clients. Combined with improved type annotations, string-based argument descriptions, and UV transport support, this release makes FastMCP feel more intuitive than ever.
16
+
17
+ This release represents a TON of community contributions and sets the foundation for even more ambitious features ahead.
18
+
19
+ ## What's Changed
20
+ ### New Features 🎉
21
+ * Introduce experimental OpenAPI parser with improved performance and maintainability by [@jlowin](https://github.com/jlowin) in [#1209](https://github.com/jlowin/fastmcp/pull/1209)
22
+ * Add state dict to Context (#1118) by [@mukulmurthy](https://github.com/mukulmurthy) in [#1160](https://github.com/jlowin/fastmcp/pull/1160)
23
+ * Expose FastMCP tags to clients via component `meta` dict by [@jlowin](https://github.com/jlowin) in [#1281](https://github.com/jlowin/fastmcp/pull/1281)
24
+ * Add _fastmcp meta namespace by [@jlowin](https://github.com/jlowin) in [#1290](https://github.com/jlowin/fastmcp/pull/1290)
25
+ * Add TokenVerifier protocol support alongside existing OAuthProvider authentication by [@jlowin](https://github.com/jlowin) in [#1297](https://github.com/jlowin/fastmcp/pull/1297)
26
+ * Add comprehensive OAuth 2.1 authentication system with WorkOS integration by [@jlowin](https://github.com/jlowin) in [#1327](https://github.com/jlowin/fastmcp/pull/1327)
27
+ ### Enhancements 🔧
28
+ * [🐶] Transform MCP Server Tools by [@strawgate](https://github.com/strawgate) in [#1132](https://github.com/jlowin/fastmcp/pull/1132)
29
+ * Add --python, --project, and --with-requirements options to CLI commands by [@jlowin](https://github.com/jlowin) in [#1190](https://github.com/jlowin/fastmcp/pull/1190)
30
+ * Support `fastmcp run mcp.json` by [@strawgate](https://github.com/strawgate) in [#1138](https://github.com/jlowin/fastmcp/pull/1138)
31
+ * Support from __future__ import annotations by [@jlowin](https://github.com/jlowin) in [#1199](https://github.com/jlowin/fastmcp/pull/1199)
32
+ * Optimize OpenAPI parser performance with single-pass schema processing by [@jlowin](https://github.com/jlowin) in [#1214](https://github.com/jlowin/fastmcp/pull/1214)
33
+ * Log tool name on transform validation error by [@strawgate](https://github.com/strawgate) in [#1238](https://github.com/jlowin/fastmcp/pull/1238)
34
+ * Refactor `get_http_request` and `context.session_id` by [@hopeful0](https://github.com/hopeful0) in [#1242](https://github.com/jlowin/fastmcp/pull/1242)
35
+ * Support creating tool argument descriptions from string annotations by [@jlowin](https://github.com/jlowin) in [#1255](https://github.com/jlowin/fastmcp/pull/1255)
36
+ * feat: Add Annotations support for resources and resource templates by [@chughtapan](https://github.com/chughtapan) in [#1260](https://github.com/jlowin/fastmcp/pull/1260)
37
+ * Add UV Transport by [@strawgate](https://github.com/strawgate) in [#1270](https://github.com/jlowin/fastmcp/pull/1270)
38
+ * Improve OpenAPI-to-JSONSchema conversion utilities by [@jlowin](https://github.com/jlowin) in [#1283](https://github.com/jlowin/fastmcp/pull/1283)
39
+ * Ensure proxy components forward meta dicts by [@jlowin](https://github.com/jlowin) in [#1282](https://github.com/jlowin/fastmcp/pull/1282)
40
+ * fix: server argument passing in CLI run command by [@chughtapan](https://github.com/chughtapan) in [#1293](https://github.com/jlowin/fastmcp/pull/1293)
41
+ * Add meta support to tool transformation utilities by [@jlowin](https://github.com/jlowin) in [#1295](https://github.com/jlowin/fastmcp/pull/1295)
42
+ * feat: Allow Resource Metadata URL as field in OAuthProvider by [@dacamposol](https://github.com/dacamposol) in [#1287](https://github.com/jlowin/fastmcp/pull/1287)
43
+ * Use a simple overwrite instead of a merge for meta by [@jlowin](https://github.com/jlowin) in [#1296](https://github.com/jlowin/fastmcp/pull/1296)
44
+ * Remove unused TimedCache by [@strawgate](https://github.com/strawgate) in [#1303](https://github.com/jlowin/fastmcp/pull/1303)
45
+ * refactor: standardize logging usage across OpenAPI utilities by [@chi2liu](https://github.com/chi2liu) in [#1322](https://github.com/jlowin/fastmcp/pull/1322)
46
+ * perf: optimize OpenAPI parsing by reducing dict copy operations by [@chi2liu](https://github.com/chi2liu) in [#1321](https://github.com/jlowin/fastmcp/pull/1321)
47
+ * Structured client-side logging by [@cjermain](https://github.com/cjermain) in [#1326](https://github.com/jlowin/fastmcp/pull/1326)
48
+ ### Fixes 🐞
49
+ * fix: preserve def reference when referenced in allOf / oneOf / anyOf by [@algirdasci](https://github.com/algirdasci) in [#1208](https://github.com/jlowin/fastmcp/pull/1208)
50
+ * fix: add type hint to custom_route decorator by [@zzstoatzz](https://github.com/zzstoatzz) in [#1210](https://github.com/jlowin/fastmcp/pull/1210)
51
+ * chore: typo by [@richardkmichael](https://github.com/richardkmichael) in [#1216](https://github.com/jlowin/fastmcp/pull/1216)
52
+ * fix: handle non-string $ref values in experimental OpenAPI parser by [@jlowin](https://github.com/jlowin) in [#1217](https://github.com/jlowin/fastmcp/pull/1217)
53
+ * Skip repeated type conversion and validation in proxy client elicitation handler by [@chughtapan](https://github.com/chughtapan) in [#1222](https://github.com/jlowin/fastmcp/pull/1222)
54
+ * Ensure default fields are not marked nullable by [@jlowin](https://github.com/jlowin) in [#1224](https://github.com/jlowin/fastmcp/pull/1224)
55
+ * Fix stateful proxy client mixing in multi-proxies sessions by [@hopeful0](https://github.com/hopeful0) in [#1245](https://github.com/jlowin/fastmcp/pull/1245)
56
+ * Fix invalid async context manager usage in proxy documentation by [@zzstoatzz](https://github.com/zzstoatzz) in [#1246](https://github.com/jlowin/fastmcp/pull/1246)
57
+ * fix: experimental FastMCPOpenAPI server lost headers in request when __init__(client with headers) by [@itaru2622](https://github.com/itaru2622) in [#1254](https://github.com/jlowin/fastmcp/pull/1254)
58
+ * Fix typing, add tests for tool call middleware by [@jlowin](https://github.com/jlowin) in [#1269](https://github.com/jlowin/fastmcp/pull/1269)
59
+ * Fix: prune hidden parameter defs by [@muhammadkhalid-03](https://github.com/muhammadkhalid-03) in [#1257](https://github.com/jlowin/fastmcp/pull/1257)
60
+ * Fix nullable field handling in OpenAPI to JSON Schema conversion by [@jlowin](https://github.com/jlowin) in [#1279](https://github.com/jlowin/fastmcp/pull/1279)
61
+ * Ensure fastmcp run supports v1 servers by [@jlowin](https://github.com/jlowin) in [#1332](https://github.com/jlowin/fastmcp/pull/1332)
62
+ ### Breaking Changes 🛫
63
+ * Change server flag to --name by [@jlowin](https://github.com/jlowin) in [#1248](https://github.com/jlowin/fastmcp/pull/1248)
64
+ ### Docs 📚
65
+ * Remove unused import from FastAPI integration documentation by [@mariotaddeucci](https://github.com/mariotaddeucci) in [#1194](https://github.com/jlowin/fastmcp/pull/1194)
66
+ * Update fastapi docs by [@jlowin](https://github.com/jlowin) in [#1198](https://github.com/jlowin/fastmcp/pull/1198)
67
+ * Add docs for context state management by [@jlowin](https://github.com/jlowin) in [#1227](https://github.com/jlowin/fastmcp/pull/1227)
68
+ * Permit.io integration docs by [@orweis](https://github.com/orweis) in [#1226](https://github.com/jlowin/fastmcp/pull/1226)
69
+ * Update docs to reflect sync tools by [@jlowin](https://github.com/jlowin) in [#1234](https://github.com/jlowin/fastmcp/pull/1234)
70
+ * Update changelog.mdx by [@jlowin](https://github.com/jlowin) in [#1235](https://github.com/jlowin/fastmcp/pull/1235)
71
+ * Update SDK docs by [@jlowin](https://github.com/jlowin) in [#1236](https://github.com/jlowin/fastmcp/pull/1236)
72
+ * Update --name flag documentation for Cursor/Claude by [@adam-conway](https://github.com/adam-conway) in [#1239](https://github.com/jlowin/fastmcp/pull/1239)
73
+ * Add annotations docs by [@jlowin](https://github.com/jlowin) in [#1268](https://github.com/jlowin/fastmcp/pull/1268)
74
+ * Update openapi/fastapi URLs README.md by [@jbn](https://github.com/jbn) in [#1278](https://github.com/jlowin/fastmcp/pull/1278)
75
+ * Add 2.11 version badge for state management by [@jlowin](https://github.com/jlowin) in [#1289](https://github.com/jlowin/fastmcp/pull/1289)
76
+ * Add meta parameter support to tools, resources, templates, and prompts decorators by [@jlowin](https://github.com/jlowin) in [#1294](https://github.com/jlowin/fastmcp/pull/1294)
77
+ * docs: update get_state and set_state references by [@Maxi91f](https://github.com/Maxi91f) in [#1306](https://github.com/jlowin/fastmcp/pull/1306)
78
+ * Add unit tests and docs for denying tool calls with middleware by [@jlowin](https://github.com/jlowin) in [#1333](https://github.com/jlowin/fastmcp/pull/1333)
79
+ * Remove reference to stacked decorators by [@jlowin](https://github.com/jlowin) in [#1334](https://github.com/jlowin/fastmcp/pull/1334)
80
+ * Eunomia authorization server can run embedded within the MCP server by [@tommitt](https://github.com/tommitt) in [#1317](https://github.com/jlowin/fastmcp/pull/1317)
81
+ ### Other Changes 🦾
82
+ * Update README.md by [@jlowin](https://github.com/jlowin) in [#1230](https://github.com/jlowin/fastmcp/pull/1230)
83
+ * Logcapture addition to test_server file by [@Sourav-Tripathy](https://github.com/Sourav-Tripathy) in [#1229](https://github.com/jlowin/fastmcp/pull/1229)
84
+ * Add tests for headers with both legacy and experimental openapi parser by [@jlowin](https://github.com/jlowin) in [#1259](https://github.com/jlowin/fastmcp/pull/1259)
85
+ * Small clean-up from MCP Tool Transform PR by [@strawgate](https://github.com/strawgate) in [#1267](https://github.com/jlowin/fastmcp/pull/1267)
86
+ * Add test for proxy tags visibility by [@jlowin](https://github.com/jlowin) in [#1302](https://github.com/jlowin/fastmcp/pull/1302)
87
+ * Add unit test for sampling with image messages by [@jlowin](https://github.com/jlowin) in [#1329](https://github.com/jlowin/fastmcp/pull/1329)
88
+ * Remove redundant resource_metadata_url assignment by [@jlowin](https://github.com/jlowin) in [#1328](https://github.com/jlowin/fastmcp/pull/1328)
89
+ * Update bug.yml by [@jlowin](https://github.com/jlowin) in [#1331](https://github.com/jlowin/fastmcp/pull/1331)
90
+ * Ensure validation errors are raised when masked by [@jlowin](https://github.com/jlowin) in [#1330](https://github.com/jlowin/fastmcp/pull/1330)
91
+
92
+ ## New Contributors
93
+ * [@mariotaddeucci](https://github.com/mariotaddeucci) made their first contribution in [#1194](https://github.com/jlowin/fastmcp/pull/1194)
94
+ * [@algirdasci](https://github.com/algirdasci) made their first contribution in [#1208](https://github.com/jlowin/fastmcp/pull/1208)
95
+ * [@chughtapan](https://github.com/chughtapan) made their first contribution in [#1222](https://github.com/jlowin/fastmcp/pull/1222)
96
+ * [@mukulmurthy](https://github.com/mukulmurthy) made their first contribution in [#1160](https://github.com/jlowin/fastmcp/pull/1160)
97
+ * [@orweis](https://github.com/orweis) made their first contribution in [#1226](https://github.com/jlowin/fastmcp/pull/1226)
98
+ * [@Sourav-Tripathy](https://github.com/Sourav-Tripathy) made their first contribution in [#1229](https://github.com/jlowin/fastmcp/pull/1229)
99
+ * [@adam-conway](https://github.com/adam-conway) made their first contribution in [#1239](https://github.com/jlowin/fastmcp/pull/1239)
100
+ * [@muhammadkhalid-03](https://github.com/muhammadkhalid-03) made their first contribution in [#1257](https://github.com/jlowin/fastmcp/pull/1257)
101
+ * [@jbn](https://github.com/jbn) made their first contribution in [#1278](https://github.com/jlowin/fastmcp/pull/1278)
102
+ * [@dacamposol](https://github.com/dacamposol) made their first contribution in [#1287](https://github.com/jlowin/fastmcp/pull/1287)
103
+ * [@chi2liu](https://github.com/chi2liu) made their first contribution in [#1322](https://github.com/jlowin/fastmcp/pull/1322)
104
+ * [@cjermain](https://github.com/cjermain) made their first contribution in [#1326](https://github.com/jlowin/fastmcp/pull/1326)
105
+
106
+ **Full Changelog**: [v2.10.6...v2.11.0](https://github.com/jlowin/fastmcp/compare/v2.10.6...v2.11.0)
107
+
108
+ </Update>
109
+
5
110
  <Update label="v2.10.6" description="2025-07-19">
6
111
 
7
112
  ## [v2.10.6: Hymn for the Weekend](https://github.com/jlowin/fastmcp/releases/tag/v2.10.6)
@@ -3,7 +3,6 @@ title: Bearer Token Authentication
3
3
  sidebarTitle: Bearer Auth
4
4
  description: Authenticate your FastMCP client with a Bearer token.
5
5
  icon: key
6
- tag: NEW
7
6
  ---
8
7
 
9
8
  import { VersionBadge } from "/snippets/version-badge.mdx"
@@ -95,8 +95,8 @@
95
95
  "icon": "shield-check",
96
96
  "pages": [
97
97
  "servers/auth/authentication",
98
+ "servers/auth/remote-oauth",
98
99
  "servers/auth/token-verification",
99
- "servers/auth/remote-authentication",
100
100
  "servers/auth/full-oauth-server"
101
101
  ]
102
102
  }
@@ -142,6 +142,7 @@
142
142
  "group": "Integrations",
143
143
  "pages": [
144
144
  "integrations/anthropic",
145
+ "integrations/authkit",
145
146
  "integrations/chatgpt",
146
147
  "integrations/claude-code",
147
148
  "integrations/claude-desktop",
@@ -153,8 +154,7 @@
153
154
  "integrations/openai",
154
155
  "integrations/openapi",
155
156
  "integrations/permit",
156
- "integrations/starlette",
157
- "integrations/authkit"
157
+ "integrations/starlette"
158
158
  ]
159
159
  },
160
160
  {
@@ -275,10 +275,12 @@
275
275
  "pages": [
276
276
  "python-sdk/fastmcp-server-auth-providers-__init__",
277
277
  "python-sdk/fastmcp-server-auth-providers-bearer",
278
- "python-sdk/fastmcp-server-auth-providers-bearer_env",
279
- "python-sdk/fastmcp-server-auth-providers-in_memory"
278
+ "python-sdk/fastmcp-server-auth-providers-in_memory",
279
+ "python-sdk/fastmcp-server-auth-providers-jwt",
280
+ "python-sdk/fastmcp-server-auth-providers-workos"
280
281
  ]
281
- }
282
+ },
283
+ "python-sdk/fastmcp-server-auth-registry"
282
284
  ]
283
285
  },
284
286
  "python-sdk/fastmcp-server-context",
@@ -315,7 +317,6 @@
315
317
  "group": "fastmcp.utilities",
316
318
  "pages": [
317
319
  "python-sdk/fastmcp-utilities-__init__",
318
- "python-sdk/fastmcp-utilities-cache",
319
320
  "python-sdk/fastmcp-utilities-cli",
320
321
  "python-sdk/fastmcp-utilities-components",
321
322
  "python-sdk/fastmcp-utilities-exceptions",
@@ -1,7 +1,7 @@
1
1
  ---
2
- title: WorkOS AuthKit 🤝 FastMCP
3
- sidebarTitle: WorkOS AuthKit
4
- description: Secure your FastMCP server with WorkOS AuthKit
2
+ title: AuthKit 🤝 FastMCP
3
+ sidebarTitle: AuthKit
4
+ description: Secure your FastMCP server with AuthKit by WorkOS
5
5
  icon: shield-check
6
6
  tag: NEW
7
7
  ---
@@ -10,20 +10,20 @@ import { VersionBadge } from "/snippets/version-badge.mdx"
10
10
 
11
11
  <VersionBadge version="2.11.0" />
12
12
 
13
- This guide shows you how to secure your FastMCP server using **WorkOS AuthKit**, a complete authentication and user management solution. This integration uses the [**Remote Authentication**](/servers/auth/remote-authentication) pattern, where WorkOS handles user login and your FastMCP server validates the tokens.
13
+ This guide shows you how to secure your FastMCP server using WorkOS's **AuthKit**, a complete authentication and user management solution. This integration uses the [**Remote OAuth**](/servers/auth/remote-oauth) pattern, where AuthKit handles user login and your FastMCP server validates the tokens.
14
14
 
15
15
 
16
16
  ## Configuration
17
17
  ### Prerequisites
18
18
 
19
19
  Before you begin, you will need:
20
- 1. A **WorkOS Account** and a new **Project**.
21
- 2. An **AuthKit** instance configured within your WorkOS project.
20
+ 1. A **[WorkOS Account](https://workos.com/)** and a new **Project**.
21
+ 2. An **[AuthKit](https://www.authkit.com/)** instance configured within your WorkOS project.
22
22
  3. Your FastMCP server's URL (can be localhost for development, e.g., `http://localhost:8000`).
23
23
 
24
24
  ### Step 1: AuthKit Configuration
25
25
 
26
- In your WorkOS Dashboard, navigate to your AuthKit instance and configure the following settings:
26
+ In your WorkOS Dashboard, enable AuthKit and configure the following settings:
27
27
 
28
28
  <Steps>
29
29
  <Step title="Enable Dynamic Client Registration">
@@ -3,7 +3,7 @@ title: ChatGPT 🤝 FastMCP
3
3
  sidebarTitle: ChatGPT
4
4
  description: Connect FastMCP servers to ChatGPT Deep Research
5
5
  icon: message-smile
6
- tag: NEW
6
+
7
7
  ---
8
8
 
9
9
  ChatGPT supports MCP servers through remote HTTP connections, allowing you to extend ChatGPT's capabilities with custom tools and knowledge from your FastMCP servers.
@@ -3,7 +3,6 @@ title: Claude Code 🤝 FastMCP
3
3
  sidebarTitle: Claude Code
4
4
  description: Install and use FastMCP servers in Claude Code
5
5
  icon: message-smile
6
- tag: NEW
7
6
  ---
8
7
 
9
8
  import { VersionBadge } from "/snippets/version-badge.mdx"
@@ -3,7 +3,6 @@ title: Eunomia Authorization 🤝 FastMCP
3
3
  sidebarTitle: Eunomia Auth
4
4
  description: Add policy-based authorization to your FastMCP servers with Eunomia
5
5
  icon: shield-check
6
- tag: NEW
7
6
  ---
8
7
 
9
8
  Add **policy-based authorization** to your FastMCP servers with one-line code addition with the **[Eunomia][eunomia-github] authorization middleware**.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  title: MCP JSON Configuration 🤝 FastMCP
3
- sidebarTitle: MCP JSON
3
+ sidebarTitle: MCP.json
4
4
  description: Generate standard MCP configuration files for any compatible client
5
5
  icon: brackets-curly
6
6
  tag: NEW
@@ -3,7 +3,6 @@ title: OpenAI API 🤝 FastMCP
3
3
  sidebarTitle: OpenAI API
4
4
  description: Call FastMCP servers from the OpenAI API
5
5
  icon: message-code
6
- tag: NEW
7
6
  ---
8
7
 
9
8
  import { VersionBadge } from "/snippets/version-badge.mdx"
@@ -1,9 +1,8 @@
1
1
  ---
2
2
  title: Permit.io Authorization 🤝 FastMCP
3
- sidebarTitle: Permit.io Permissions
3
+ sidebarTitle: Permit.io
4
4
  description: Add fine-grained authorization to your FastMCP servers with Permit.io
5
5
  icon: shield-check
6
- tag: NEW
7
6
  ---
8
7
 
9
8
  Add **policy-based authorization** to your FastMCP servers with one-line code addition with the **[Permit.io][permit-github] authorization middleware**.
@@ -5,7 +5,7 @@ description: Properly use instance methods, class methods, and static methods wi
5
5
  icon: at
6
6
  ---
7
7
 
8
- FastMCP's decorator system is designed to work with functions, but you may see unexpected behavior if you try to decorate an instance or class method. This guide explains the correct approach for using methods with all FastMCP decorators (`@tool`, `@resource`, and `.prompt`).
8
+ FastMCP's decorator system is designed to work with functions, but you may see unexpected behavior if you try to decorate an instance or class method. This guide explains the correct approach for using methods with all FastMCP decorators (`@tool`, `@resource`, and `@prompt`).
9
9
 
10
10
  ## Why Are Methods Hard?
11
11
 
@@ -222,4 +222,4 @@ The current behavior of FastMCP decorators with methods is:
222
222
  For class and instance methods, you should register them after creating the instance or class to ensure proper method binding. This ensures that the methods are properly bound before being registered.
223
223
 
224
224
 
225
- Understanding these patterns allows you to effectively organize your components into classes while maintaining proper method binding, giving you the benefits of object-oriented design without sacrificing the simplicity of FastMCP's decorator system.
225
+ Understanding these patterns allows you to effectively organize your components into classes while maintaining proper method binding, giving you the benefits of object-oriented design without sacrificing the simplicity of FastMCP's decorator system.
@@ -36,7 +36,7 @@ Run an MCP server with the MCP Inspector for development.
36
36
  ### `run` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/cli.py#L286" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
37
37
 
38
38
  ```python
39
- run(server_spec: str) -> None
39
+ run(server_spec: str, *server_args: str) -> None
40
40
  ```
41
41
 
42
42
 
@@ -55,7 +55,7 @@ fastmcp run server.py -- --config config.json --debug
55
55
  - `server_spec`: Python file, object specification (file\:obj), MCPConfig file, or URL
56
56
 
57
57
 
58
- ### `inspect` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/cli.py#L442" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
58
+ ### `inspect` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/cli.py#L439" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
59
59
 
60
60
  ```python
61
61
  inspect(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#L21" 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#L24" 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,7 +20,7 @@ is_url(path: str) -> bool
20
20
  Check if a string is a URL.
21
21
 
22
22
 
23
- ### `parse_file_path` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/run.py#L27" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
23
+ ### `parse_file_path` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/run.py#L30" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
24
24
 
25
25
  ```python
26
26
  parse_file_path(server_spec: str) -> tuple[Path, str | None]
@@ -36,7 +36,7 @@ Parse a file path that may include a server object specification.
36
36
  - Tuple of (file_path, server_object)
37
37
 
38
38
 
39
- ### `import_server` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/run.py#L58" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
39
+ ### `import_server` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/run.py#L61" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
40
40
 
41
41
  ```python
42
42
  import_server(file: Path, server_object: str | None = None) -> Any
@@ -53,7 +53,7 @@ Import a MCP server from a file.
53
53
  - The server object
54
54
 
55
55
 
56
- ### `run_with_uv` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/run.py#L128" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
56
+ ### `run_with_uv` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/run.py#L131" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
57
57
 
58
58
  ```python
59
59
  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) -> None
@@ -76,7 +76,7 @@ Run a MCP server using uv run subprocess.
76
76
  - `show_banner`: Whether to show the server banner
77
77
 
78
78
 
79
- ### `create_client_server` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/run.py#L206" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
79
+ ### `create_client_server` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/run.py#L209" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
80
80
 
81
81
  ```python
82
82
  create_client_server(url: str) -> Any
@@ -92,7 +92,7 @@ Create a FastMCP server from a client URL.
92
92
  - A FastMCP server instance
93
93
 
94
94
 
95
- ### `create_mcp_config_server` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/run.py#L226" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
95
+ ### `create_mcp_config_server` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/run.py#L229" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
96
96
 
97
97
  ```python
98
98
  create_mcp_config_server(mcp_config_path: Path) -> FastMCP[None]
@@ -102,7 +102,7 @@ create_mcp_config_server(mcp_config_path: Path) -> FastMCP[None]
102
102
  Create a FastMCP server from a MCPConfig.
103
103
 
104
104
 
105
- ### `import_server_with_args` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/run.py#L237" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
105
+ ### `import_server_with_args` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/run.py#L240" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
106
106
 
107
107
  ```python
108
108
  import_server_with_args(file: Path, server_object: str | None = None, server_args: list[str] | None = None) -> Any
@@ -120,7 +120,7 @@ Import a server with optional command line arguments.
120
120
  - The imported server object
121
121
 
122
122
 
123
- ### `run_command` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/run.py#L261" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
123
+ ### `run_command` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/run.py#L264" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
124
124
 
125
125
  ```python
126
126
  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) -> None
@@ -140,3 +140,9 @@ Run a MCP server or connect to a remote one.
140
140
  - `show_banner`: Whether to show the server banner
141
141
  - `use_direct_import`: Whether to use direct import instead of subprocess
142
142
 
143
+
144
+ ### `run_v1_server` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/run.py#L329" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
145
+
146
+ ```python
147
+ run_v1_server(server: FastMCP1x, host: str | None = None, port: int | None = None, transport: TransportType | None = None) -> None
148
+ ```
@@ -7,30 +7,13 @@ sidebarTitle: oauth
7
7
 
8
8
  ## Functions
9
9
 
10
- ### `default_cache_dir` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/auth/oauth.py#L35" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
10
+ ### `default_cache_dir` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/auth/oauth.py#L34" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
11
11
 
12
12
  ```python
13
13
  default_cache_dir() -> Path
14
14
  ```
15
15
 
16
- ### `discover_oauth_metadata` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/auth/oauth.py#L153" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
17
-
18
- ```python
19
- discover_oauth_metadata(server_base_url: str, httpx_kwargs: dict[str, Any] | None = None) -> OAuthMetadata | None
20
- ```
21
-
22
-
23
- Discover OAuth metadata from the server using RFC 8414 well-known endpoint.
24
-
25
- **Args:**
26
- - `server_base_url`: Base URL of the OAuth server (e.g., "https\://example.com")
27
- - `httpx_kwargs`: Additional kwargs for httpx client
28
-
29
- **Returns:**
30
- - OAuth metadata if found, None otherwise
31
-
32
-
33
- ### `check_if_auth_required` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/auth/oauth.py#L188" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
16
+ ### `check_if_auth_required` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/auth/oauth.py#L152" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
34
17
 
35
18
  ```python
36
19
  check_if_auth_required(mcp_url: str, httpx_kwargs: dict[str, Any] | None = None) -> bool
@@ -43,32 +26,9 @@ Check if the MCP endpoint requires authentication by making a test request.
43
26
  - True if auth appears to be required, False otherwise
44
27
 
45
28
 
46
- ### `OAuth` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/auth/oauth.py#L218" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
47
-
48
- ```python
49
- OAuth(mcp_url: str, scopes: str | list[str] | None = None, client_name: str = 'FastMCP Client', token_storage_cache_dir: Path | None = None, additional_client_metadata: dict[str, Any] | None = None) -> OAuthClientProvider
50
- ```
51
-
52
-
53
- Create an OAuthClientProvider for an MCP server.
54
-
55
- This is intended to be provided to the `auth` parameter of an
56
- httpx.AsyncClient (or appropriate FastMCP client/transport instance)
57
-
58
- **Args:**
59
- - `mcp_url`: Full URL to the MCP endpoint (e.g. "http\://host/mcp/sse/")
60
- - `scopes`: OAuth scopes to request. Can be a
61
- - `client_name`: Name for this client during registration
62
- - `token_storage_cache_dir`: Directory for FileTokenStorage
63
- - `additional_client_metadata`: Extra fields for OAuthClientMetadata
64
-
65
- **Returns:**
66
- - OAuthClientProvider
67
-
68
-
69
29
  ## Classes
70
30
 
71
- ### `FileTokenStorage` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/auth/oauth.py#L39" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
31
+ ### `FileTokenStorage` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/auth/oauth.py#L38" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
72
32
 
73
33
 
74
34
  File-based token storage implementation for OAuth credentials and tokens.
@@ -79,7 +39,7 @@ Each instance is tied to a specific server URL for proper token isolation.
79
39
 
80
40
  **Methods:**
81
41
 
82
- #### `get_base_url` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/auth/oauth.py#L54" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
42
+ #### `get_base_url` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/auth/oauth.py#L53" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
83
43
 
84
44
  ```python
85
45
  get_base_url(url: str) -> str
@@ -88,7 +48,7 @@ get_base_url(url: str) -> str
88
48
  Extract the base URL (scheme + host) from a URL.
89
49
 
90
50
 
91
- #### `get_cache_key` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/auth/oauth.py#L59" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
51
+ #### `get_cache_key` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/auth/oauth.py#L58" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
92
52
 
93
53
  ```python
94
54
  get_cache_key(self) -> str
@@ -97,7 +57,7 @@ get_cache_key(self) -> str
97
57
  Generate a safe filesystem key from the server's base URL.
98
58
 
99
59
 
100
- #### `get_tokens` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/auth/oauth.py#L74" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
60
+ #### `get_tokens` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/auth/oauth.py#L73" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
101
61
 
102
62
  ```python
103
63
  get_tokens(self) -> OAuthToken | None
@@ -106,7 +66,7 @@ get_tokens(self) -> OAuthToken | None
106
66
  Load tokens from file storage.
107
67
 
108
68
 
109
- #### `set_tokens` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/auth/oauth.py#L91" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
69
+ #### `set_tokens` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/auth/oauth.py#L90" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
110
70
 
111
71
  ```python
112
72
  set_tokens(self, tokens: OAuthToken) -> None
@@ -115,7 +75,7 @@ set_tokens(self, tokens: OAuthToken) -> None
115
75
  Save tokens to file storage.
116
76
 
117
77
 
118
- #### `get_client_info` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/auth/oauth.py#L97" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
78
+ #### `get_client_info` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/auth/oauth.py#L96" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
119
79
 
120
80
  ```python
121
81
  get_client_info(self) -> OAuthClientInformationFull | None
@@ -124,7 +84,7 @@ get_client_info(self) -> OAuthClientInformationFull | None
124
84
  Load client information from file storage.
125
85
 
126
86
 
127
- #### `set_client_info` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/auth/oauth.py#L125" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
87
+ #### `set_client_info` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/auth/oauth.py#L124" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
128
88
 
129
89
  ```python
130
90
  set_client_info(self, client_info: OAuthClientInformationFull) -> None
@@ -133,7 +93,7 @@ set_client_info(self, client_info: OAuthClientInformationFull) -> None
133
93
  Save client information to file storage.
134
94
 
135
95
 
136
- #### `clear` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/auth/oauth.py#L131" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
96
+ #### `clear` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/auth/oauth.py#L130" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
137
97
 
138
98
  ```python
139
99
  clear(self) -> None
@@ -142,7 +102,7 @@ clear(self) -> None
142
102
  Clear all cached data for this server.
143
103
 
144
104
 
145
- #### `clear_all` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/auth/oauth.py#L140" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
105
+ #### `clear_all` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/auth/oauth.py#L139" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
146
106
 
147
107
  ```python
148
108
  clear_all(cls, cache_dir: Path | None = None) -> None
@@ -150,3 +110,32 @@ clear_all(cls, cache_dir: Path | None = None) -> None
150
110
 
151
111
  Clear all cached data for all servers.
152
112
 
113
+
114
+ ### `OAuth` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/auth/oauth.py#L182" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
115
+
116
+
117
+ OAuth client provider for MCP servers with browser-based authentication.
118
+
119
+ This class provides OAuth authentication for FastMCP clients by opening
120
+ a browser for user authorization and running a local callback server.
121
+
122
+
123
+ **Methods:**
124
+
125
+ #### `redirect_handler` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/auth/oauth.py#L248" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
126
+
127
+ ```python
128
+ redirect_handler(self, authorization_url: str) -> None
129
+ ```
130
+
131
+ Open browser for authorization.
132
+
133
+
134
+ #### `callback_handler` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/auth/oauth.py#L253" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
135
+
136
+ ```python
137
+ callback_handler(self) -> tuple[str, str | None]
138
+ ```
139
+
140
+ Handle OAuth callback and return (auth_code, state).
141
+