fastmcp 2.14.3__tar.gz → 2.14.4__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 (741) hide show
  1. fastmcp-2.14.4/.loq_cache +1 -0
  2. {fastmcp-2.14.3 → fastmcp-2.14.4}/PKG-INFO +4 -2
  3. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/changelog.mdx +52 -0
  4. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/servers/tools.mdx +4 -0
  5. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/updates.mdx +20 -0
  6. {fastmcp-2.14.3 → fastmcp-2.14.4}/pyproject.toml +3 -1
  7. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/client/transports.py +1 -7
  8. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/http.py +1 -7
  9. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/low_level.py +25 -0
  10. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/server.py +0 -5
  11. fastmcp-2.14.4/src/fastmcp/server/tasks/capabilities.py +30 -0
  12. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/utilities/json_schema.py +129 -5
  13. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/tasks/test_task_capabilities.py +6 -6
  14. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/utilities/test_json_schema.py +109 -0
  15. {fastmcp-2.14.3 → fastmcp-2.14.4}/uv.lock +11 -0
  16. fastmcp-2.14.3/src/fastmcp/server/tasks/capabilities.py +0 -22
  17. {fastmcp-2.14.3 → fastmcp-2.14.4}/.ccignore +0 -0
  18. {fastmcp-2.14.3 → fastmcp-2.14.4}/.cursor/rules/core-mcp-objects.mdc +0 -0
  19. {fastmcp-2.14.3 → fastmcp-2.14.4}/.cursor/worktrees.json +0 -0
  20. {fastmcp-2.14.3 → fastmcp-2.14.4}/.github/ISSUE_TEMPLATE/bug.yml +0 -0
  21. {fastmcp-2.14.3 → fastmcp-2.14.4}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  22. {fastmcp-2.14.3 → fastmcp-2.14.4}/.github/ISSUE_TEMPLATE/enhancement.yml +0 -0
  23. {fastmcp-2.14.3 → fastmcp-2.14.4}/.github/copilot-instructions.md +0 -0
  24. {fastmcp-2.14.3 → fastmcp-2.14.4}/.github/dependabot.yml +0 -0
  25. {fastmcp-2.14.3 → fastmcp-2.14.4}/.github/pull_request_template.md +0 -0
  26. {fastmcp-2.14.3 → fastmcp-2.14.4}/.github/release.yml +0 -0
  27. {fastmcp-2.14.3 → fastmcp-2.14.4}/.github/workflows/auto-close-duplicates.yml +0 -0
  28. {fastmcp-2.14.3 → fastmcp-2.14.4}/.github/workflows/auto-close-needs-mre.yml +0 -0
  29. {fastmcp-2.14.3 → fastmcp-2.14.4}/.github/workflows/martian-issue-triage.yml +0 -0
  30. {fastmcp-2.14.3 → fastmcp-2.14.4}/.github/workflows/martian-test-failure.yml +0 -0
  31. {fastmcp-2.14.3 → fastmcp-2.14.4}/.github/workflows/marvin-dedupe-issues.yml +0 -0
  32. {fastmcp-2.14.3 → fastmcp-2.14.4}/.github/workflows/marvin-label-triage.yml +0 -0
  33. {fastmcp-2.14.3 → fastmcp-2.14.4}/.github/workflows/marvin.yml +0 -0
  34. {fastmcp-2.14.3 → fastmcp-2.14.4}/.github/workflows/publish.yml +0 -0
  35. {fastmcp-2.14.3 → fastmcp-2.14.4}/.github/workflows/run-static.yml +0 -0
  36. {fastmcp-2.14.3 → fastmcp-2.14.4}/.github/workflows/run-tests.yml +0 -0
  37. {fastmcp-2.14.3 → fastmcp-2.14.4}/.github/workflows/update-config-schema.yml +0 -0
  38. {fastmcp-2.14.3 → fastmcp-2.14.4}/.github/workflows/update-sdk-docs.yml +0 -0
  39. {fastmcp-2.14.3 → fastmcp-2.14.4}/.gitignore +0 -0
  40. {fastmcp-2.14.3 → fastmcp-2.14.4}/.pre-commit-config.yaml +0 -0
  41. {fastmcp-2.14.3 → fastmcp-2.14.4}/AGENTS.md +0 -0
  42. {fastmcp-2.14.3 → fastmcp-2.14.4}/CLAUDE.md +0 -0
  43. {fastmcp-2.14.3 → fastmcp-2.14.4}/CODE_OF_CONDUCT.md +0 -0
  44. {fastmcp-2.14.3 → fastmcp-2.14.4}/LICENSE +0 -0
  45. {fastmcp-2.14.3 → fastmcp-2.14.4}/README.md +0 -0
  46. {fastmcp-2.14.3 → fastmcp-2.14.4}/SECURITY.md +0 -0
  47. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/.ccignore +0 -0
  48. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/.cursor/rules/mintlify.mdc +0 -0
  49. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/assets/brand/blue-logo.png +0 -0
  50. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/assets/brand/f-watercolor-waves-dark.png +0 -0
  51. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/assets/brand/f-watercolor-waves.png +0 -0
  52. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/assets/brand/favicon.svg +0 -0
  53. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/assets/brand/thumbnail-background.png +0 -0
  54. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/assets/brand/wordmark-padded.png +0 -0
  55. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/assets/brand/wordmark-watercolor-rainbow-dark.png +0 -0
  56. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/assets/brand/wordmark-watercolor-rainbow.png +0 -0
  57. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/assets/brand/wordmark-watercolor-waves-dark.png +0 -0
  58. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/assets/brand/wordmark-watercolor-waves.png +0 -0
  59. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/assets/brand/wordmark-white-padded.png +0 -0
  60. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/assets/brand/wordmark-white.png +0 -0
  61. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/assets/brand/wordmark.png +0 -0
  62. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/assets/images/fastmcp_cloud/connect.png +0 -0
  63. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/assets/images/fastmcp_cloud/create_project.png +0 -0
  64. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/assets/images/fastmcp_cloud/deployment.png +0 -0
  65. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/assets/images/fastmcp_cloud/quickstart.png +0 -0
  66. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/assets/images/oauth-proxy-consent-screen.png +0 -0
  67. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/assets/images/tutorial-rest-api-result.png +0 -0
  68. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/assets/schemas/mcp_server_config/latest.json +0 -0
  69. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/assets/schemas/mcp_server_config/v1.json +0 -0
  70. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/assets/updates/release-2-7.png +0 -0
  71. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/clients/auth/bearer.mdx +0 -0
  72. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/clients/auth/oauth.mdx +0 -0
  73. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/clients/client.mdx +0 -0
  74. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/clients/elicitation.mdx +0 -0
  75. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/clients/logging.mdx +0 -0
  76. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/clients/messages.mdx +0 -0
  77. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/clients/progress.mdx +0 -0
  78. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/clients/prompts.mdx +0 -0
  79. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/clients/resources.mdx +0 -0
  80. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/clients/roots.mdx +0 -0
  81. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/clients/sampling.mdx +0 -0
  82. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/clients/tasks.mdx +0 -0
  83. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/clients/tools.mdx +0 -0
  84. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/clients/transports.mdx +0 -0
  85. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/community/README.md +0 -0
  86. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/community/showcase.mdx +0 -0
  87. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/css/banner.css +0 -0
  88. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/css/python-sdk.css +0 -0
  89. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/css/style.css +0 -0
  90. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/css/version-badge.css +0 -0
  91. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/deployment/fastmcp-cloud.mdx +0 -0
  92. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/deployment/http.mdx +0 -0
  93. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/deployment/running-server.mdx +0 -0
  94. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/deployment/server-configuration.mdx +0 -0
  95. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/development/contributing.mdx +0 -0
  96. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/development/releases.mdx +0 -0
  97. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/development/tests.mdx +0 -0
  98. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/development/upgrade-guide.mdx +0 -0
  99. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/docs.json +0 -0
  100. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/getting-started/installation.mdx +0 -0
  101. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/getting-started/quickstart.mdx +0 -0
  102. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/getting-started/welcome.mdx +0 -0
  103. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/integrations/anthropic.mdx +0 -0
  104. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/integrations/auth0.mdx +0 -0
  105. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/integrations/authkit.mdx +0 -0
  106. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/integrations/aws-cognito.mdx +0 -0
  107. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/integrations/azure.mdx +0 -0
  108. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/integrations/chatgpt.mdx +0 -0
  109. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/integrations/claude-code.mdx +0 -0
  110. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/integrations/claude-desktop.mdx +0 -0
  111. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/integrations/cursor-install-mcp.png +0 -0
  112. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/integrations/cursor.mdx +0 -0
  113. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/integrations/descope.mdx +0 -0
  114. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/integrations/discord.mdx +0 -0
  115. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/integrations/eunomia-authorization.mdx +0 -0
  116. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/integrations/fastapi.mdx +0 -0
  117. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/integrations/gemini-cli.mdx +0 -0
  118. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/integrations/gemini.mdx +0 -0
  119. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/integrations/github.mdx +0 -0
  120. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/integrations/google.mdx +0 -0
  121. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/integrations/images/authkit/enable_dcr.png +0 -0
  122. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/integrations/images/oci/ociaddapplication.png +0 -0
  123. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/integrations/images/oci/ocieditdomainsettings.png +0 -0
  124. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/integrations/images/oci/ocieditdomainsettingsbutton.png +0 -0
  125. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/integrations/images/oci/ocioauthconfiguration.png +0 -0
  126. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/integrations/images/permit/abac_condition_example.png +0 -0
  127. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/integrations/images/permit/abac_policy_example.png +0 -0
  128. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/integrations/images/permit/policy_mapping.png +0 -0
  129. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/integrations/images/permit/role_assignement.png +0 -0
  130. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/integrations/mcp-json-configuration.mdx +0 -0
  131. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/integrations/oci.mdx +0 -0
  132. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/integrations/openai.mdx +0 -0
  133. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/integrations/openapi.mdx +0 -0
  134. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/integrations/permit.mdx +0 -0
  135. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/integrations/scalekit.mdx +0 -0
  136. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/integrations/supabase.mdx +0 -0
  137. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/integrations/workos.mdx +0 -0
  138. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/patterns/cli.mdx +0 -0
  139. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/patterns/contrib.mdx +0 -0
  140. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/patterns/decorating-methods.mdx +0 -0
  141. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/patterns/testing.mdx +0 -0
  142. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/patterns/tool-transformation.mdx +0 -0
  143. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/public/schemas/fastmcp.json/latest.json +0 -0
  144. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/public/schemas/fastmcp.json/v1.json +0 -0
  145. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-cli-__init__.mdx +0 -0
  146. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-cli-cli.mdx +0 -0
  147. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-cli-install-__init__.mdx +0 -0
  148. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-cli-install-claude_code.mdx +0 -0
  149. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-cli-install-claude_desktop.mdx +0 -0
  150. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-cli-install-cursor.mdx +0 -0
  151. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-cli-install-gemini_cli.mdx +0 -0
  152. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-cli-install-mcp_json.mdx +0 -0
  153. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-cli-install-shared.mdx +0 -0
  154. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-cli-run.mdx +0 -0
  155. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-cli-tasks.mdx +0 -0
  156. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-client-__init__.mdx +0 -0
  157. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-client-auth-__init__.mdx +0 -0
  158. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-client-auth-bearer.mdx +0 -0
  159. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-client-auth-oauth.mdx +0 -0
  160. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-client-client.mdx +0 -0
  161. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-client-elicitation.mdx +0 -0
  162. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-client-logging.mdx +0 -0
  163. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-client-messages.mdx +0 -0
  164. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-client-oauth_callback.mdx +0 -0
  165. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-client-progress.mdx +0 -0
  166. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-client-roots.mdx +0 -0
  167. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-client-sampling.mdx +0 -0
  168. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-client-tasks.mdx +0 -0
  169. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-client-transports.mdx +0 -0
  170. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-dependencies.mdx +0 -0
  171. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-exceptions.mdx +0 -0
  172. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-mcp_config.mdx +0 -0
  173. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-prompts-__init__.mdx +0 -0
  174. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-prompts-prompt.mdx +0 -0
  175. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-prompts-prompt_manager.mdx +0 -0
  176. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-resources-__init__.mdx +0 -0
  177. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-resources-resource.mdx +0 -0
  178. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-resources-resource_manager.mdx +0 -0
  179. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-resources-template.mdx +0 -0
  180. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-resources-types.mdx +0 -0
  181. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-__init__.mdx +0 -0
  182. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-auth-__init__.mdx +0 -0
  183. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-auth-auth.mdx +0 -0
  184. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-auth-jwt_issuer.mdx +0 -0
  185. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-auth-middleware.mdx +0 -0
  186. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-auth-oauth_proxy.mdx +0 -0
  187. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-auth-oidc_proxy.mdx +0 -0
  188. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-auth-providers-__init__.mdx +0 -0
  189. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-auth-providers-auth0.mdx +0 -0
  190. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-auth-providers-aws.mdx +0 -0
  191. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-auth-providers-azure.mdx +0 -0
  192. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-auth-providers-debug.mdx +0 -0
  193. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-auth-providers-descope.mdx +0 -0
  194. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-auth-providers-discord.mdx +0 -0
  195. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-auth-providers-github.mdx +0 -0
  196. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-auth-providers-google.mdx +0 -0
  197. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-auth-providers-in_memory.mdx +0 -0
  198. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-auth-providers-introspection.mdx +0 -0
  199. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-auth-providers-jwt.mdx +0 -0
  200. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-auth-providers-oci.mdx +0 -0
  201. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-auth-providers-scalekit.mdx +0 -0
  202. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-auth-providers-supabase.mdx +0 -0
  203. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-auth-providers-workos.mdx +0 -0
  204. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-auth-redirect_validation.mdx +0 -0
  205. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-context.mdx +0 -0
  206. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-dependencies.mdx +0 -0
  207. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-elicitation.mdx +0 -0
  208. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-event_store.mdx +0 -0
  209. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-http.mdx +0 -0
  210. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-low_level.mdx +0 -0
  211. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-middleware-__init__.mdx +0 -0
  212. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-middleware-caching.mdx +0 -0
  213. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-middleware-error_handling.mdx +0 -0
  214. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-middleware-logging.mdx +0 -0
  215. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-middleware-middleware.mdx +0 -0
  216. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-middleware-rate_limiting.mdx +0 -0
  217. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-middleware-timing.mdx +0 -0
  218. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-middleware-tool_injection.mdx +0 -0
  219. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-openapi-__init__.mdx +0 -0
  220. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-openapi-components.mdx +0 -0
  221. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-openapi-routing.mdx +0 -0
  222. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-openapi-server.mdx +0 -0
  223. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-proxy.mdx +0 -0
  224. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-server.mdx +0 -0
  225. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-tasks-__init__.mdx +0 -0
  226. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-tasks-capabilities.mdx +0 -0
  227. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-tasks-config.mdx +0 -0
  228. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-tasks-converters.mdx +0 -0
  229. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-tasks-handlers.mdx +0 -0
  230. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-tasks-keys.mdx +0 -0
  231. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-tasks-protocol.mdx +0 -0
  232. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-server-tasks-subscriptions.mdx +0 -0
  233. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-settings.mdx +0 -0
  234. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-tools-__init__.mdx +0 -0
  235. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-tools-tool.mdx +0 -0
  236. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-tools-tool_manager.mdx +0 -0
  237. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-tools-tool_transform.mdx +0 -0
  238. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-utilities-__init__.mdx +0 -0
  239. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-utilities-auth.mdx +0 -0
  240. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-utilities-cli.mdx +0 -0
  241. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-utilities-components.mdx +0 -0
  242. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-utilities-exceptions.mdx +0 -0
  243. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-utilities-http.mdx +0 -0
  244. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-utilities-inspect.mdx +0 -0
  245. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-utilities-json_schema.mdx +0 -0
  246. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-utilities-json_schema_type.mdx +0 -0
  247. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-utilities-logging.mdx +0 -0
  248. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-utilities-mcp_config.mdx +0 -0
  249. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-utilities-mcp_server_config-__init__.mdx +0 -0
  250. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-__init__.mdx +0 -0
  251. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-environments-__init__.mdx +0 -0
  252. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-environments-base.mdx +0 -0
  253. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-environments-uv.mdx +0 -0
  254. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-mcp_server_config.mdx +0 -0
  255. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-sources-__init__.mdx +0 -0
  256. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-sources-base.mdx +0 -0
  257. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-sources-filesystem.mdx +0 -0
  258. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-utilities-openapi-__init__.mdx +0 -0
  259. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-utilities-openapi-director.mdx +0 -0
  260. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-utilities-openapi-formatters.mdx +0 -0
  261. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-utilities-openapi-json_schema_converter.mdx +0 -0
  262. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-utilities-openapi-models.mdx +0 -0
  263. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-utilities-openapi-parser.mdx +0 -0
  264. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-utilities-openapi-schemas.mdx +0 -0
  265. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-utilities-tests.mdx +0 -0
  266. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-utilities-types.mdx +0 -0
  267. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/python-sdk/fastmcp-utilities-ui.mdx +0 -0
  268. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/servers/auth/authentication.mdx +0 -0
  269. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/servers/auth/full-oauth-server.mdx +0 -0
  270. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/servers/auth/oauth-proxy.mdx +0 -0
  271. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/servers/auth/oidc-proxy.mdx +0 -0
  272. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/servers/auth/remote-oauth.mdx +0 -0
  273. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/servers/auth/token-verification.mdx +0 -0
  274. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/servers/composition.mdx +0 -0
  275. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/servers/context.mdx +0 -0
  276. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/servers/elicitation.mdx +0 -0
  277. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/servers/icons.mdx +0 -0
  278. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/servers/logging.mdx +0 -0
  279. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/servers/middleware.mdx +0 -0
  280. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/servers/progress.mdx +0 -0
  281. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/servers/prompts.mdx +0 -0
  282. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/servers/proxy.mdx +0 -0
  283. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/servers/resources.mdx +0 -0
  284. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/servers/sampling.mdx +0 -0
  285. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/servers/server.mdx +0 -0
  286. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/servers/storage-backends.mdx +0 -0
  287. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/servers/tasks.mdx +0 -0
  288. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/snippets/local-focus.mdx +0 -0
  289. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/snippets/version-badge.mdx +0 -0
  290. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/snippets/youtube-embed.mdx +0 -0
  291. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/tutorials/create-mcp-server.mdx +0 -0
  292. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/tutorials/mcp.mdx +0 -0
  293. {fastmcp-2.14.3 → fastmcp-2.14.4}/docs/tutorials/rest-api.mdx +0 -0
  294. {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/atproto_mcp/README.md +0 -0
  295. {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/atproto_mcp/demo.py +0 -0
  296. {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/atproto_mcp/fastmcp.json +0 -0
  297. {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/atproto_mcp/pyproject.toml +0 -0
  298. {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/atproto_mcp/src/atproto_mcp/__init__.py +0 -0
  299. {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/atproto_mcp/src/atproto_mcp/__main__.py +0 -0
  300. {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/atproto_mcp/src/atproto_mcp/_atproto/__init__.py +0 -0
  301. {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/atproto_mcp/src/atproto_mcp/_atproto/_client.py +0 -0
  302. {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/atproto_mcp/src/atproto_mcp/_atproto/_posts.py +0 -0
  303. {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/atproto_mcp/src/atproto_mcp/_atproto/_profile.py +0 -0
  304. {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/atproto_mcp/src/atproto_mcp/_atproto/_read.py +0 -0
  305. {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/atproto_mcp/src/atproto_mcp/_atproto/_social.py +0 -0
  306. {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/atproto_mcp/src/atproto_mcp/py.typed +0 -0
  307. {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/atproto_mcp/src/atproto_mcp/server.py +0 -0
  308. {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/atproto_mcp/src/atproto_mcp/settings.py +0 -0
  309. {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/atproto_mcp/src/atproto_mcp/types.py +0 -0
  310. {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/auth/authkit_dcr/README.md +0 -0
  311. {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/auth/authkit_dcr/client.py +0 -0
  312. {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/auth/authkit_dcr/server.py +0 -0
  313. {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/auth/aws_oauth/README.md +0 -0
  314. {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/auth/aws_oauth/client.py +0 -0
  315. {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/auth/aws_oauth/requirements.txt +0 -0
  316. {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/auth/aws_oauth/server.py +0 -0
  317. {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/auth/azure_oauth/README.md +0 -0
  318. {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/auth/azure_oauth/client.py +0 -0
  319. {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/auth/azure_oauth/server.py +0 -0
  320. {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/auth/discord_oauth/README.md +0 -0
  321. {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/auth/discord_oauth/client.py +0 -0
  322. {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/auth/discord_oauth/server.py +0 -0
  323. {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/auth/github_oauth/README.md +0 -0
  324. {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/auth/github_oauth/client.py +0 -0
  325. {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/auth/github_oauth/server.py +0 -0
  326. {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/auth/google_oauth/README.md +0 -0
  327. {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/auth/google_oauth/client.py +0 -0
  328. {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/auth/google_oauth/server.py +0 -0
  329. {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/auth/mounted/README.md +0 -0
  330. {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/auth/mounted/client.py +0 -0
  331. {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/auth/mounted/server.py +0 -0
  332. {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/auth/scalekit_oauth/README.md +0 -0
  333. {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/auth/scalekit_oauth/client.py +0 -0
  334. {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/auth/scalekit_oauth/server.py +0 -0
  335. {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/auth/workos_oauth/README.md +0 -0
  336. {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/auth/workos_oauth/client.py +0 -0
  337. {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/auth/workos_oauth/server.py +0 -0
  338. {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/complex_inputs.py +0 -0
  339. {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/config_server.py +0 -0
  340. {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/desktop.py +0 -0
  341. {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/echo.py +0 -0
  342. {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/fastmcp_config/env_interpolation_example.json +0 -0
  343. {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/fastmcp_config/fastmcp.json +0 -0
  344. {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/fastmcp_config/full_example.fastmcp.json +0 -0
  345. {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/fastmcp_config/server.py +0 -0
  346. {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/fastmcp_config/simple.fastmcp.json +0 -0
  347. {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/fastmcp_config_demo/README.md +0 -0
  348. {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/fastmcp_config_demo/fastmcp.json +0 -0
  349. {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/fastmcp_config_demo/server.py +0 -0
  350. {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/get_file.py +0 -0
  351. {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/in_memory_proxy_example.py +0 -0
  352. {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/memory.fastmcp.json +0 -0
  353. {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/memory.py +0 -0
  354. {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/mount_example.fastmcp.json +0 -0
  355. {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/mount_example.py +0 -0
  356. {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/sampling/README.md +0 -0
  357. {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/sampling/server_fallback.py +0 -0
  358. {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/sampling/structured_output.py +0 -0
  359. {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/sampling/text.py +0 -0
  360. {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/sampling/tool_use.py +0 -0
  361. {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/screenshot.fastmcp.json +0 -0
  362. {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/screenshot.py +0 -0
  363. {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/serializer.py +0 -0
  364. {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/simple_echo.py +0 -0
  365. {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/smart_home/README.md +0 -0
  366. {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/smart_home/hub.fastmcp.json +0 -0
  367. {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/smart_home/lights.fastmcp.json +0 -0
  368. {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/smart_home/pyproject.toml +0 -0
  369. {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/smart_home/src/smart_home/__init__.py +0 -0
  370. {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/smart_home/src/smart_home/__main__.py +0 -0
  371. {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/smart_home/src/smart_home/hub.py +0 -0
  372. {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/smart_home/src/smart_home/lights/__init__.py +0 -0
  373. {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/smart_home/src/smart_home/lights/hue_utils.py +0 -0
  374. {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/smart_home/src/smart_home/lights/server.py +0 -0
  375. {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/smart_home/src/smart_home/py.typed +0 -0
  376. {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/smart_home/src/smart_home/settings.py +0 -0
  377. {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/tags_example.py +0 -0
  378. {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/tasks/README.md +0 -0
  379. {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/tasks/client.py +0 -0
  380. {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/tasks/docker-compose.yml +0 -0
  381. {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/tasks/server.py +0 -0
  382. {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/testing_demo/README.md +0 -0
  383. {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/testing_demo/pyproject.toml +0 -0
  384. {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/testing_demo/server.py +0 -0
  385. {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/testing_demo/tests/test_server.py +0 -0
  386. {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/testing_demo/uv.lock +0 -0
  387. {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/text_me.py +0 -0
  388. {fastmcp-2.14.3 → fastmcp-2.14.4}/examples/tool_result_echo.py +0 -0
  389. {fastmcp-2.14.3 → fastmcp-2.14.4}/justfile +0 -0
  390. {fastmcp-2.14.3 → fastmcp-2.14.4}/logo.py +0 -0
  391. {fastmcp-2.14.3 → fastmcp-2.14.4}/scripts/auto_close_duplicates.py +0 -0
  392. {fastmcp-2.14.3 → fastmcp-2.14.4}/scripts/auto_close_needs_mre.py +0 -0
  393. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/__init__.py +0 -0
  394. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/cli/__init__.py +0 -0
  395. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/cli/__main__.py +0 -0
  396. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/cli/cli.py +0 -0
  397. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/cli/install/__init__.py +0 -0
  398. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/cli/install/claude_code.py +0 -0
  399. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/cli/install/claude_desktop.py +0 -0
  400. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/cli/install/cursor.py +0 -0
  401. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/cli/install/gemini_cli.py +0 -0
  402. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/cli/install/mcp_json.py +0 -0
  403. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/cli/install/shared.py +0 -0
  404. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/cli/run.py +0 -0
  405. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/cli/tasks.py +0 -0
  406. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/client/__init__.py +0 -0
  407. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/client/auth/__init__.py +0 -0
  408. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/client/auth/bearer.py +0 -0
  409. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/client/auth/oauth.py +0 -0
  410. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/client/client.py +0 -0
  411. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/client/elicitation.py +0 -0
  412. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/client/logging.py +0 -0
  413. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/client/messages.py +0 -0
  414. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/client/oauth_callback.py +0 -0
  415. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/client/progress.py +0 -0
  416. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/client/roots.py +0 -0
  417. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/client/sampling/__init__.py +0 -0
  418. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/client/sampling/handlers/__init__.py +0 -0
  419. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/client/sampling/handlers/anthropic.py +0 -0
  420. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/client/sampling/handlers/openai.py +0 -0
  421. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/client/tasks.py +0 -0
  422. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/contrib/README.md +0 -0
  423. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/contrib/bulk_tool_caller/README.md +0 -0
  424. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/contrib/bulk_tool_caller/__init__.py +0 -0
  425. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/contrib/bulk_tool_caller/bulk_tool_caller.py +0 -0
  426. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/contrib/bulk_tool_caller/example.py +0 -0
  427. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/contrib/component_manager/README.md +0 -0
  428. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/contrib/component_manager/__init__.py +0 -0
  429. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/contrib/component_manager/component_manager.py +0 -0
  430. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/contrib/component_manager/component_service.py +0 -0
  431. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/contrib/component_manager/example.py +0 -0
  432. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/contrib/mcp_mixin/README.md +0 -0
  433. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/contrib/mcp_mixin/__init__.py +0 -0
  434. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/contrib/mcp_mixin/example.py +0 -0
  435. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/contrib/mcp_mixin/mcp_mixin.py +0 -0
  436. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/dependencies.py +0 -0
  437. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/exceptions.py +0 -0
  438. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/experimental/sampling/__init__.py +0 -0
  439. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/experimental/sampling/handlers/__init__.py +0 -0
  440. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/experimental/sampling/handlers/openai.py +0 -0
  441. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/experimental/server/openapi/__init__.py +0 -0
  442. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/experimental/utilities/openapi/__init__.py +0 -0
  443. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/mcp_config.py +0 -0
  444. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/prompts/__init__.py +0 -0
  445. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/prompts/prompt.py +0 -0
  446. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/prompts/prompt_manager.py +0 -0
  447. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/py.typed +0 -0
  448. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/resources/__init__.py +0 -0
  449. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/resources/resource.py +0 -0
  450. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/resources/resource_manager.py +0 -0
  451. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/resources/template.py +0 -0
  452. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/resources/types.py +0 -0
  453. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/__init__.py +0 -0
  454. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/auth/__init__.py +0 -0
  455. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/auth/auth.py +0 -0
  456. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/auth/handlers/authorize.py +0 -0
  457. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/auth/jwt_issuer.py +0 -0
  458. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/auth/middleware.py +0 -0
  459. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/auth/oauth_proxy.py +0 -0
  460. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/auth/oidc_proxy.py +0 -0
  461. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/auth/providers/__init__.py +0 -0
  462. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/auth/providers/auth0.py +0 -0
  463. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/auth/providers/aws.py +0 -0
  464. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/auth/providers/azure.py +0 -0
  465. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/auth/providers/debug.py +0 -0
  466. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/auth/providers/descope.py +0 -0
  467. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/auth/providers/discord.py +0 -0
  468. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/auth/providers/github.py +0 -0
  469. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/auth/providers/google.py +0 -0
  470. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/auth/providers/in_memory.py +0 -0
  471. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/auth/providers/introspection.py +0 -0
  472. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/auth/providers/jwt.py +0 -0
  473. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/auth/providers/oci.py +0 -0
  474. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/auth/providers/scalekit.py +0 -0
  475. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/auth/providers/supabase.py +0 -0
  476. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/auth/providers/workos.py +0 -0
  477. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/auth/redirect_validation.py +0 -0
  478. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/context.py +0 -0
  479. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/dependencies.py +0 -0
  480. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/elicitation.py +0 -0
  481. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/event_store.py +0 -0
  482. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/middleware/__init__.py +0 -0
  483. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/middleware/caching.py +0 -0
  484. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/middleware/error_handling.py +0 -0
  485. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/middleware/logging.py +0 -0
  486. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/middleware/middleware.py +0 -0
  487. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/middleware/rate_limiting.py +0 -0
  488. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/middleware/timing.py +0 -0
  489. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/middleware/tool_injection.py +0 -0
  490. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/openapi/README.md +0 -0
  491. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/openapi/__init__.py +0 -0
  492. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/openapi/components.py +0 -0
  493. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/openapi/routing.py +0 -0
  494. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/openapi/server.py +0 -0
  495. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/proxy.py +0 -0
  496. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/sampling/__init__.py +0 -0
  497. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/sampling/run.py +0 -0
  498. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/sampling/sampling_tool.py +0 -0
  499. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/tasks/__init__.py +0 -0
  500. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/tasks/config.py +0 -0
  501. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/tasks/converters.py +0 -0
  502. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/tasks/handlers.py +0 -0
  503. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/tasks/keys.py +0 -0
  504. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/tasks/protocol.py +0 -0
  505. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/server/tasks/subscriptions.py +0 -0
  506. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/settings.py +0 -0
  507. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/tools/__init__.py +0 -0
  508. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/tools/tool.py +0 -0
  509. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/tools/tool_manager.py +0 -0
  510. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/tools/tool_transform.py +0 -0
  511. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/utilities/__init__.py +0 -0
  512. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/utilities/auth.py +0 -0
  513. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/utilities/cli.py +0 -0
  514. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/utilities/components.py +0 -0
  515. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/utilities/exceptions.py +0 -0
  516. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/utilities/http.py +0 -0
  517. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/utilities/inspect.py +0 -0
  518. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/utilities/json_schema_type.py +0 -0
  519. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/utilities/logging.py +0 -0
  520. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/utilities/mcp_config.py +0 -0
  521. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/utilities/mcp_server_config/__init__.py +0 -0
  522. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/utilities/mcp_server_config/v1/__init__.py +0 -0
  523. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/utilities/mcp_server_config/v1/environments/__init__.py +0 -0
  524. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/utilities/mcp_server_config/v1/environments/base.py +0 -0
  525. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/utilities/mcp_server_config/v1/environments/uv.py +0 -0
  526. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/utilities/mcp_server_config/v1/mcp_server_config.py +0 -0
  527. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/utilities/mcp_server_config/v1/schema.json +0 -0
  528. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/utilities/mcp_server_config/v1/sources/__init__.py +0 -0
  529. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/utilities/mcp_server_config/v1/sources/base.py +0 -0
  530. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/utilities/mcp_server_config/v1/sources/filesystem.py +0 -0
  531. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/utilities/openapi/README.md +0 -0
  532. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/utilities/openapi/__init__.py +0 -0
  533. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/utilities/openapi/director.py +0 -0
  534. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/utilities/openapi/formatters.py +0 -0
  535. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/utilities/openapi/json_schema_converter.py +0 -0
  536. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/utilities/openapi/models.py +0 -0
  537. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/utilities/openapi/parser.py +0 -0
  538. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/utilities/openapi/schemas.py +0 -0
  539. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/utilities/tests.py +0 -0
  540. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/utilities/types.py +0 -0
  541. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/utilities/ui.py +0 -0
  542. {fastmcp-2.14.3 → fastmcp-2.14.4}/src/fastmcp/utilities/version_check.py +0 -0
  543. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/__init__.py +0 -0
  544. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/cli/__init__.py +0 -0
  545. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/cli/test_cli.py +0 -0
  546. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/cli/test_config.py +0 -0
  547. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/cli/test_cursor.py +0 -0
  548. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/cli/test_install.py +0 -0
  549. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/cli/test_mcp_server_config_integration.py +0 -0
  550. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/cli/test_mcp_server_config_schema.py +0 -0
  551. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/cli/test_project_prepare.py +0 -0
  552. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/cli/test_run.py +0 -0
  553. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/cli/test_run_config.py +0 -0
  554. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/cli/test_server_args.py +0 -0
  555. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/cli/test_shared.py +0 -0
  556. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/cli/test_tasks.py +0 -0
  557. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/cli/test_with_argv.py +0 -0
  558. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/client/__init__.py +0 -0
  559. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/client/auth/__init__.py +0 -0
  560. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/client/auth/test_oauth_client.py +0 -0
  561. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/client/sampling/__init__.py +0 -0
  562. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/client/sampling/handlers/__init__.py +0 -0
  563. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/client/sampling/handlers/test_anthropic_handler.py +0 -0
  564. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/client/sampling/handlers/test_openai_handler.py +0 -0
  565. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/client/tasks/conftest.py +0 -0
  566. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/client/tasks/test_client_prompt_tasks.py +0 -0
  567. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/client/tasks/test_client_resource_tasks.py +0 -0
  568. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/client/tasks/test_client_task_notifications.py +0 -0
  569. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/client/tasks/test_client_task_protocol.py +0 -0
  570. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/client/tasks/test_client_tool_tasks.py +0 -0
  571. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/client/tasks/test_prompt_task_mcp_message.py +0 -0
  572. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/client/tasks/test_task_context_validation.py +0 -0
  573. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/client/tasks/test_task_result_caching.py +0 -0
  574. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/client/test_client.py +0 -0
  575. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/client/test_elicitation.py +0 -0
  576. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/client/test_logs.py +0 -0
  577. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/client/test_notifications.py +0 -0
  578. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/client/test_oauth_callback_xss.py +0 -0
  579. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/client/test_openapi.py +0 -0
  580. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/client/test_progress.py +0 -0
  581. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/client/test_roots.py +0 -0
  582. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/client/test_sampling.py +0 -0
  583. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/client/test_sse.py +0 -0
  584. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/client/test_stdio.py +0 -0
  585. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/client/test_streamable_http.py +0 -0
  586. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/client/transports/__init__.py +0 -0
  587. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/client/transports/test_transports.py +0 -0
  588. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/client/transports/test_uv_transport.py +0 -0
  589. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/conftest.py +0 -0
  590. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/contrib/__init__.py +0 -0
  591. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/contrib/test_bulk_tool_caller.py +0 -0
  592. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/contrib/test_component_manager.py +0 -0
  593. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/contrib/test_mcp_mixin.py +0 -0
  594. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/deprecated/__init__.py +0 -0
  595. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/deprecated/test_deprecated.py +0 -0
  596. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/deprecated/test_exclude_args.py +0 -0
  597. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/deprecated/test_openapi_deprecations.py +0 -0
  598. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/deprecated/test_settings.py +0 -0
  599. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/experimental/README.md +0 -0
  600. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/experimental/__init__.py +0 -0
  601. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/integration_tests/__init__.py +0 -0
  602. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/integration_tests/auth/__init__.py +0 -0
  603. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/integration_tests/auth/test_github_provider_integration.py +0 -0
  604. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/integration_tests/conftest.py +0 -0
  605. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/integration_tests/test_github_mcp_remote.py +0 -0
  606. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/integration_tests/test_timeout_fix.py +0 -0
  607. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/prompts/__init__.py +0 -0
  608. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/prompts/test_prompt.py +0 -0
  609. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/prompts/test_prompt_manager.py +0 -0
  610. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/resources/__init__.py +0 -0
  611. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/resources/test_file_resources.py +0 -0
  612. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/resources/test_function_resources.py +0 -0
  613. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/resources/test_resource_manager.py +0 -0
  614. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/resources/test_resource_template.py +0 -0
  615. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/resources/test_resource_template_meta.py +0 -0
  616. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/resources/test_resources.py +0 -0
  617. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/__init__.py +0 -0
  618. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/auth/__init__.py +0 -0
  619. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/auth/providers/__init__.py +0 -0
  620. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/auth/providers/test_auth0.py +0 -0
  621. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/auth/providers/test_aws.py +0 -0
  622. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/auth/providers/test_azure.py +0 -0
  623. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/auth/providers/test_descope.py +0 -0
  624. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/auth/providers/test_discord.py +0 -0
  625. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/auth/providers/test_github.py +0 -0
  626. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/auth/providers/test_google.py +0 -0
  627. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/auth/providers/test_introspection.py +0 -0
  628. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/auth/providers/test_scalekit.py +0 -0
  629. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/auth/providers/test_supabase.py +0 -0
  630. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/auth/providers/test_workos.py +0 -0
  631. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/auth/test_auth_provider.py +0 -0
  632. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/auth/test_debug_verifier.py +0 -0
  633. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/auth/test_enhanced_error_responses.py +0 -0
  634. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/auth/test_jwt_issuer.py +0 -0
  635. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/auth/test_jwt_provider.py +0 -0
  636. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/auth/test_oauth_consent_flow.py +0 -0
  637. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/auth/test_oauth_mounting.py +0 -0
  638. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/auth/test_oauth_proxy.py +0 -0
  639. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/auth/test_oauth_proxy_redirect_validation.py +0 -0
  640. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/auth/test_oauth_proxy_storage.py +0 -0
  641. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/auth/test_oidc_proxy.py +0 -0
  642. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/auth/test_redirect_validation.py +0 -0
  643. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/auth/test_remote_auth_provider.py +0 -0
  644. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/auth/test_static_token_verifier.py +0 -0
  645. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/http/__init__.py +0 -0
  646. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/http/test_bearer_auth_backend.py +0 -0
  647. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/http/test_custom_routes.py +0 -0
  648. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/http/test_http_auth_middleware.py +0 -0
  649. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/http/test_http_dependencies.py +0 -0
  650. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/http/test_http_middleware.py +0 -0
  651. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/http/test_stale_access_token.py +0 -0
  652. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/middleware/__init__.py +0 -0
  653. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/middleware/test_caching.py +0 -0
  654. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/middleware/test_error_handling.py +0 -0
  655. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/middleware/test_initialization_middleware.py +0 -0
  656. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/middleware/test_logging.py +0 -0
  657. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/middleware/test_middleware.py +0 -0
  658. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/middleware/test_rate_limiting.py +0 -0
  659. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/middleware/test_timing.py +0 -0
  660. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/middleware/test_tool_injection.py +0 -0
  661. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/openapi/__init__.py +0 -0
  662. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/openapi/test_comprehensive.py +0 -0
  663. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/openapi/test_deepobject_style.py +0 -0
  664. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/openapi/test_end_to_end_compatibility.py +0 -0
  665. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/openapi/test_openapi_features.py +0 -0
  666. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/openapi/test_openapi_performance.py +0 -0
  667. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/openapi/test_parameter_collisions.py +0 -0
  668. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/openapi/test_performance_comparison.py +0 -0
  669. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/openapi/test_server.py +0 -0
  670. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/proxy/__init__.py +0 -0
  671. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/proxy/test_proxy_client.py +0 -0
  672. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/proxy/test_proxy_server.py +0 -0
  673. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/proxy/test_stateful_proxy_client.py +0 -0
  674. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/sampling/__init__.py +0 -0
  675. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/sampling/test_sampling_tool.py +0 -0
  676. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/tasks/__init__.py +0 -0
  677. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/tasks/conftest.py +0 -0
  678. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/tasks/test_progress_dependency.py +0 -0
  679. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/tasks/test_server_tasks_parameter.py +0 -0
  680. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/tasks/test_sync_function_task_disabled.py +0 -0
  681. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/tasks/test_task_config_modes.py +0 -0
  682. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/tasks/test_task_dependencies.py +0 -0
  683. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/tasks/test_task_metadata.py +0 -0
  684. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/tasks/test_task_methods.py +0 -0
  685. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/tasks/test_task_mount.py +0 -0
  686. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/tasks/test_task_prompts.py +0 -0
  687. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/tasks/test_task_protocol.py +0 -0
  688. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/tasks/test_task_proxy.py +0 -0
  689. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/tasks/test_task_resources.py +0 -0
  690. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/tasks/test_task_return_types.py +0 -0
  691. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/tasks/test_task_security.py +0 -0
  692. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/tasks/test_task_status_notifications.py +0 -0
  693. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/tasks/test_task_tools.py +0 -0
  694. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/tasks/test_task_ttl.py +0 -0
  695. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/test_app_state.py +0 -0
  696. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/test_auth_integration.py +0 -0
  697. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/test_context.py +0 -0
  698. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/test_dependencies.py +0 -0
  699. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/test_event_store.py +0 -0
  700. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/test_file_server.py +0 -0
  701. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/test_icons.py +0 -0
  702. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/test_import_server.py +0 -0
  703. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/test_input_validation.py +0 -0
  704. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/test_log_level.py +0 -0
  705. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/test_logging.py +0 -0
  706. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/test_mount.py +0 -0
  707. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/test_run_server.py +0 -0
  708. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/test_server.py +0 -0
  709. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/test_server_docket.py +0 -0
  710. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/test_server_interactions.py +0 -0
  711. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/test_server_lifespan.py +0 -0
  712. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/test_streamable_http_no_redirect.py +0 -0
  713. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/test_tool_annotations.py +0 -0
  714. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/server/test_tool_transformation.py +0 -0
  715. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/test_mcp_config.py +0 -0
  716. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/tools/__init__.py +0 -0
  717. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/tools/test_tool.py +0 -0
  718. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/tools/test_tool_future_annotations.py +0 -0
  719. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/tools/test_tool_manager.py +0 -0
  720. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/tools/test_tool_transform.py +0 -0
  721. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/utilities/__init__.py +0 -0
  722. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/utilities/openapi/__init__.py +0 -0
  723. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/utilities/openapi/conftest.py +0 -0
  724. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/utilities/openapi/test_allof_requestbody.py +0 -0
  725. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/utilities/openapi/test_direct_array_schemas.py +0 -0
  726. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/utilities/openapi/test_director.py +0 -0
  727. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/utilities/openapi/test_legacy_compatibility.py +0 -0
  728. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/utilities/openapi/test_models.py +0 -0
  729. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/utilities/openapi/test_nullable_fields.py +0 -0
  730. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/utilities/openapi/test_parser.py +0 -0
  731. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/utilities/openapi/test_schemas.py +0 -0
  732. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/utilities/openapi/test_transitive_references.py +0 -0
  733. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/utilities/test_cli.py +0 -0
  734. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/utilities/test_components.py +0 -0
  735. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/utilities/test_inspect.py +0 -0
  736. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/utilities/test_json_schema_type.py +0 -0
  737. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/utilities/test_logging.py +0 -0
  738. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/utilities/test_tests.py +0 -0
  739. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/utilities/test_typeadapter.py +0 -0
  740. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/utilities/test_types.py +0 -0
  741. {fastmcp-2.14.3 → fastmcp-2.14.4}/tests/utilities/test_version_check.py +0 -0
@@ -0,0 +1 @@
1
+ {"version":1,"config_hash":11396655348812081611,"entries":{"src/fastmcp/utilities/openapi/director.py":{"mtime_secs":1767910209,"mtime_nanos":992787531,"lines":214},"tests/cli/test_server_args.py":{"mtime_secs":1767910209,"mtime_nanos":995113177,"lines":135},"src/fastmcp/tools/tool_transform.py":{"mtime_secs":1768275412,"mtime_nanos":806607645,"lines":954},"tests/deprecated/test_exclude_args.py":{"mtime_secs":1767910209,"mtime_nanos":999348759,"lines":122},"docs/python-sdk/fastmcp-server-providers-openapi-components.mdx":{"mtime_secs":1768065435,"mtime_nanos":779723054,"lines":62},"src/fastmcp/client/auth/__init__.py":{"mtime_secs":1767910209,"mtime_nanos":977333260,"lines":4},"src/fastmcp/utilities/openapi/parser.py":{"mtime_secs":1768275516,"mtime_nanos":979099727,"lines":821},"SECURITY.md":{"mtime_secs":1767910209,"mtime_nanos":926953703,"lines":16},"src/fastmcp/utilities/ui.py":{"mtime_secs":1767910209,"mtime_nanos":993615038,"lines":626},"src/fastmcp/server/providers/base.py":{"mtime_secs":1768273914,"mtime_nanos":444251277,"lines":440},".git/logs/refs/heads/docs/v3-features":{"mtime_secs":1767969249,"mtime_nanos":769502827,"lines":2},"examples/auth/aws_oauth/client.py":{"mtime_secs":1767910209,"mtime_nanos":968159215,"lines":42},"tests/server/tasks/test_progress_dependency.py":{"mtime_secs":1767910210,"mtime_nanos":8447303,"lines":155},"examples/auth/mounted/README.md":{"mtime_secs":1767910209,"mtime_nanos":969564771,"lines":39},"docs/python-sdk/fastmcp-server-auth-providers-oci.mdx":{"mtime_secs":1767910209,"mtime_nanos":956156603,"lines":97},"src/fastmcp/client/sampling/handlers/anthropic.py":{"mtime_secs":1768275398,"mtime_nanos":427536231,"lines":387},"docs/getting-started/welcome.mdx":{"mtime_secs":1767910209,"mtime_nanos":944326533,"lines":111},"docs/python-sdk/fastmcp-server-providers-__init__.mdx":{"mtime_secs":1767910209,"mtime_nanos":958130038,"lines":34},"docs/python-sdk/fastmcp-client-sampling-__init__.mdx":{"mtime_secs":1767910209,"mtime_nanos":953356451,"lines":14},"src/fastmcp/server/middleware/ping.py":{"mtime_secs":1768091029,"mtime_nanos":865950840,"lines":70},".git/logs/refs/remotes/origin/main":{"mtime_secs":1768274758,"mtime_nanos":717800467,"lines":20},"docs/python-sdk/fastmcp-utilities-async_utils.mdx":{"mtime_secs":1767910209,"mtime_nanos":960405768,"lines":31},"tests/utilities/openapi/test_schemas.py":{"mtime_secs":1767910210,"mtime_nanos":13283015,"lines":641},"docs/python-sdk/fastmcp-server-providers-openapi-routing.mdx":{"mtime_secs":1767910209,"mtime_nanos":958712293,"lines":23},"docs/servers/auth/full-oauth-server.mdx":{"mtime_secs":1767910209,"mtime_nanos":962925875,"lines":229},"tests/prompts/test_prompt.py":{"mtime_secs":1767910210,"mtime_nanos":542895,"lines":552},"docs/python-sdk/fastmcp-cli-install-__init__.mdx":{"mtime_secs":1767910209,"mtime_nanos":951870646,"lines":9},".git/objects/e7/e6381760d02ce95c255e23d0af84c02f42220a":{"mtime_secs":1768005421,"mtime_nanos":534528398,"lines":1},"tests/server/providers/test_transforming_provider.py":{"mtime_secs":1768273914,"mtime_nanos":459430812,"lines":317},"docs/python-sdk/fastmcp-utilities-logging.mdx":{"mtime_secs":1767910209,"mtime_nanos":961037482,"lines":58},"tests/cli/test_run.py":{"mtime_secs":1767966312,"mtime_nanos":928730568,"lines":628},".git/hooks/post-update.sample":{"mtime_secs":1767910208,"mtime_nanos":710089045,"lines":8},"src/fastmcp/client/sampling/handlers/__init__.py":{"mtime_secs":1767910209,"mtime_nanos":978318686,"lines":0},".git/refs/tags/v2.14.3":{"mtime_secs":1768250271,"mtime_nanos":813098679,"lines":1},"tests/utilities/openapi/test_direct_array_schemas.py":{"mtime_secs":1767910210,"mtime_nanos":12777094,"lines":323},"docs/patterns/cli.mdx":{"mtime_secs":1767966312,"mtime_nanos":924886254,"lines":581},"v3-notes/provider-test-pattern.md":{"mtime_secs":1767910210,"mtime_nanos":15350284,"lines":60},"examples/auth/azure_oauth/README.md":{"mtime_secs":1767910209,"mtime_nanos":968397926,"lines":51},"examples/fastmcp_config_demo/fastmcp.json":{"mtime_secs":1767910209,"mtime_nanos":971255411,"lines":14},"examples/auth/workos_oauth/client.py":{"mtime_secs":1767910209,"mtime_nanos":970195151,"lines":32},"tests/server/providers/test_local_provider_tools.py":{"mtime_secs":1768273914,"mtime_nanos":458671764,"lines":1554},"examples/sampling/server_fallback.py":{"mtime_secs":1767910209,"mtime_nanos":972350172,"lines":88},".git/objects/b8/6856651bde553af9d8eb4dc0e5071d3c8d5aa1":{"mtime_secs":1768264193,"mtime_nanos":370429063,"lines":1},"tests/cli/__init__.py":{"mtime_secs":1767910209,"mtime_nanos":993941083,"lines":1},".git/logs/refs/heads/main":{"mtime_secs":1768307169,"mtime_nanos":292873529,"lines":18},"docs/snippets/version-badge.mdx":{"mtime_secs":1767910209,"mtime_nanos":965687359,"lines":7},"tests/resources/test_resource_template_meta.py":{"mtime_secs":1767910210,"mtime_nanos":1079442,"lines":25},".gitignore":{"mtime_secs":1768258809,"mtime_nanos":233149804,"lines":78},"src/fastmcp/server/providers/fastmcp_provider.py":{"mtime_secs":1768273914,"mtime_nanos":444544279,"lines":586},".github/workflows/run-tests.yml":{"mtime_secs":1767910209,"mtime_nanos":926165612,"lines":115},".git/refs/remotes/origin/marvin/update-sdk-docs":{"mtime_secs":1768089463,"mtime_nanos":978028759,"lines":1},"src/fastmcp/contrib/component_manager/component_manager.py":{"mtime_secs":1767910209,"mtime_nanos":979707033,"lines":186},"tests/utilities/test_tests.py":{"mtime_secs":1767910210,"mtime_nanos":14002730,"lines":10},"docs/integrations/google.mdx":{"mtime_secs":1767910209,"mtime_nanos":946224301,"lines":190},"examples/auth/discord_oauth/client.py":{"mtime_secs":1767910209,"mtime_nanos":968815055,"lines":32},"tests/client/transports/test_uv_transport.py":{"mtime_secs":1767910209,"mtime_nanos":998203373,"lines":120},"examples/providers/sqlite/server.py":{"mtime_secs":1767910209,"mtime_nanos":972114669,"lines":137},"tests/server/tasks/test_task_meta_parameter.py":{"mtime_secs":1768275439,"mtime_nanos":342125571,"lines":314},".git/hooks/fsmonitor-watchman.sample":{"mtime_secs":1767910208,"mtime_nanos":709482747,"lines":174},"tests/server/auth/test_static_token_verifier.py":{"mtime_secs":1767910210,"mtime_nanos":3875135,"lines":112},"examples/atproto_mcp/fastmcp.json":{"mtime_secs":1767910209,"mtime_nanos":966618743,"lines":11},"tests/client/tasks/test_client_tool_tasks.py":{"mtime_secs":1767910209,"mtime_nanos":996490982,"lines":88},"examples/atproto_mcp/src/atproto_mcp/types.py":{"mtime_secs":1767910209,"mtime_nanos":967685295,"lines":142},"tests/deprecated/test_settings.py":{"mtime_secs":1767910209,"mtime_nanos":999584095,"lines":319},"src/fastmcp/server/auth/providers/workos.py":{"mtime_secs":1767910209,"mtime_nanos":984868373,"lines":334},"justfile":{"mtime_secs":1768065435,"mtime_nanos":785265946,"lines":33},"examples/simple_echo.py":{"mtime_secs":1767910209,"mtime_nanos":972764176,"lines":14},"tests/client/sampling/__init__.py":{"mtime_secs":1767910209,"mtime_nanos":995675724,"lines":0},".git/objects/31/9dbc29ca3b5d2fa8002996bc59551ff71f9d70":{"mtime_secs":1768062579,"mtime_nanos":885083643,"lines":4},".git/objects/93/35be4d05ca027881cfcba80b81a6c1713a4f1d":{"mtime_secs":1768260294,"mtime_nanos":900190040,"lines":1},"tests/tools/test_tool_future_annotations.py":{"mtime_secs":1767910210,"mtime_nanos":12078754,"lines":170},"src/fastmcp/server/sampling/sampling_tool.py":{"mtime_secs":1768274887,"mtime_nanos":463792397,"lines":109},".git/logs/refs/remotes/origin/docs/2.14.3-release-notes":{"mtime_secs":1768257849,"mtime_nanos":588909791,"lines":2},"docs/python-sdk/fastmcp-server-auth-oauth_proxy.mdx":{"mtime_secs":1768065435,"mtime_nanos":777932327,"lines":450},"docs/python-sdk/fastmcp-server-tasks-capabilities.mdx":{"mtime_secs":1767910209,"mtime_nanos":959386550,"lines":24},"examples/atproto_mcp/pyproject.toml":{"mtime_secs":1767910209,"mtime_nanos":966687993,"lines":24},"tests/server/auth/test_redirect_validation.py":{"mtime_secs":1767910210,"mtime_nanos":3701592,"lines":141},"examples/providers/sqlite/README.md":{"mtime_secs":1767910209,"mtime_nanos":972017710,"lines":59},"docs/python-sdk/fastmcp-fs-provider.mdx":{"mtime_secs":1768065435,"mtime_nanos":776887191,"lines":111},"src/fastmcp/server/middleware/caching.py":{"mtime_secs":1767910209,"mtime_nanos":986217719,"lines":523},".git/hooks/pre-commit.sample":{"mtime_secs":1767910208,"mtime_nanos":709028535,"lines":49},".claude/skills/code-review/SKILL.md":{"mtime_secs":1768258809,"mtime_nanos":228829565,"lines":94},"tests/experimental/__init__.py":{"mtime_secs":1767910209,"mtime_nanos":999851972,"lines":0},"docs/integrations/authkit.mdx":{"mtime_secs":1767910209,"mtime_nanos":944617328,"lines":97},"examples/auth/azure_oauth/server.py":{"mtime_secs":1767910209,"mtime_nanos":968616595,"lines":44},"docs/python-sdk/fastmcp-server-auth-providers-scalekit.mdx":{"mtime_secs":1767910209,"mtime_nanos":956226145,"lines":61},"docs/css/version-badge.css":{"mtime_secs":1767910209,"mtime_nanos":942847894,"lines":23},"src/fastmcp/server/sampling/run.py":{"mtime_secs":1767910209,"mtime_nanos":988831452,"lines":301},"src/fastmcp/server/elicitation.py":{"mtime_secs":1768275640,"mtime_nanos":259244716,"lines":464},"docs/python-sdk/fastmcp-server-server.mdx":{"mtime_secs":1768065435,"mtime_nanos":780328686,"lines":999},"src/fastmcp/utilities/openapi/json_schema_converter.py":{"mtime_secs":1767910209,"mtime_nanos":992962449,"lines":344},"tests/utilities/test_types.py":{"mtime_secs":1768275527,"mtime_nanos":948940954,"lines":673},".git/objects/4c/60c479486a200c6964459fde312735a7e98b7f":{"mtime_secs":1768086708,"mtime_nanos":458223620,"lines":2},"docs/servers/authorization.mdx":{"mtime_secs":1768267998,"mtime_nanos":893587923,"lines":348},"tests/client/test_stdio.py":{"mtime_secs":1767910209,"mtime_nanos":997871370,"lines":364},"docs/servers/auth/remote-oauth.mdx":{"mtime_secs":1767994445,"mtime_nanos":311035162,"lines":226},"docs/python-sdk/fastmcp-utilities-openapi-__init__.mdx":{"mtime_secs":1767910209,"mtime_nanos":961889240,"lines":9},"docs/clients/tasks.mdx":{"mtime_secs":1767910209,"mtime_nanos":942184180,"lines":138},"docs/integrations/cursor.mdx":{"mtime_secs":1767910209,"mtime_nanos":945471836,"lines":284},"tests/utilities/openapi/test_models.py":{"mtime_secs":1768275463,"mtime_nanos":454793530,"lines":476},"tests/server/tasks/test_task_dependencies.py":{"mtime_secs":1768275526,"mtime_nanos":565296627,"lines":273},"tests/server/test_dependencies.py":{"mtime_secs":1768091029,"mtime_nanos":869855251,"lines":1046},"src/fastmcp/tools/__init__.py":{"mtime_secs":1768273914,"mtime_nanos":450073905,"lines":12},"examples/tags_example.py":{"mtime_secs":1767910209,"mtime_nanos":973748226,"lines":141},"src/fastmcp/server/auth/providers/jwt.py":{"mtime_secs":1768275400,"mtime_nanos":826342650,"lines":527},"examples/sampling/text.py":{"mtime_secs":1767910209,"mtime_nanos":972486756,"lines":78},"docs/snippets/youtube-embed.mdx":{"mtime_secs":1767910209,"mtime_nanos":965751026,"lines":12},"src/fastmcp/utilities/tests.py":{"mtime_secs":1767910209,"mtime_nanos":993432787,"lines":286},"tests/server/tasks/__init__.py":{"mtime_secs":1767910210,"mtime_nanos":8212759,"lines":1},"docs/python-sdk/fastmcp-mcp_config.mdx":{"mtime_secs":1768065435,"mtime_nanos":777111069,"lines":188},"docs/python-sdk/fastmcp-server-middleware-__init__.mdx":{"mtime_secs":1767910209,"mtime_nanos":957037111,"lines":8},".git/objects/f3/d31eb8ff45646ba054dbe7b987651d3ebdb521":{"mtime_secs":1768239135,"mtime_nanos":940129268,"lines":2},"examples/auth/google_oauth/server.py":{"mtime_secs":1767910209,"mtime_nanos":969466895,"lines":37},".git/objects/2f/565079e9b10d352c7239ad621fcc8598d5ed20":{"mtime_secs":1768062579,"mtime_nanos":824886000,"lines":1},"src/fastmcp/tools/tool.py":{"mtime_secs":1768273914,"mtime_nanos":451154831,"lines":482},"src/fastmcp/_vendor/docket_di/README.md":{"mtime_secs":1768091029,"mtime_nanos":862241388,"lines":7},"docs/clients/elicitation.mdx":{"mtime_secs":1767910209,"mtime_nanos":941396839,"lines":125},"src/fastmcp/server/tasks/requests.py":{"mtime_secs":1768091029,"mtime_nanos":868130360,"lines":426},"docs/python-sdk/fastmcp-tools-tool_transform.mdx":{"mtime_secs":1767910209,"mtime_nanos":960260975,"lines":310},"src/fastmcp/server/transforms/namespace.py":{"mtime_secs":1768273914,"mtime_nanos":448345558,"lines":188},"docs/servers/auth/token-verification.mdx":{"mtime_secs":1767910209,"mtime_nanos":963487422,"lines":333},"docs/integrations/gemini.mdx":{"mtime_secs":1767910209,"mtime_nanos":946005674,"lines":108},".git/logs/HEAD":{"mtime_secs":1768275805,"mtime_nanos":78401130,"lines":55},"src/fastmcp/utilities/__init__.py":{"mtime_secs":1767910209,"mtime_nanos":990509176,"lines":1},"src/fastmcp/server/auth/providers/supabase.py":{"mtime_secs":1767910209,"mtime_nanos":984783914,"lines":164},"examples/filesystem-provider/mcp/prompts/assistant.py":{"mtime_secs":1768065435,"mtime_nanos":784210477,"lines":39},"tests/server/auth/test_jwt_provider.py":{"mtime_secs":1768275438,"mtime_nanos":820705989,"lines":1101},"docs/tutorials/create-mcp-server.mdx":{"mtime_secs":1767910209,"mtime_nanos":965895778,"lines":198},"docs/python-sdk/fastmcp-server-tasks-routing.mdx":{"mtime_secs":1767910209,"mtime_nanos":959793637,"lines":37},"src/fastmcp/utilities/mcp_server_config/v1/mcp_server_config.py":{"mtime_secs":1768275416,"mtime_nanos":702325579,"lines":447},"src/fastmcp/contrib/component_manager/component_service.py":{"mtime_secs":1768273914,"mtime_nanos":439669741,"lines":275},"docs/python-sdk/fastmcp-server-middleware-timing.mdx":{"mtime_secs":1767910209,"mtime_nanos":957700700,"lines":105},"docs/python-sdk/fastmcp-client-tasks.mdx":{"mtime_secs":1767910209,"mtime_nanos":953645496,"lines":219},".git/logs/refs/remotes/origin/extract-parsedfunction":{"mtime_secs":1768307169,"mtime_nanos":50943729,"lines":2},"src/fastmcp/contrib/component_manager/__init__.py":{"mtime_secs":1767910209,"mtime_nanos":979611615,"lines":4},"docs/python-sdk/fastmcp-server-lifespan.mdx":{"mtime_secs":1768065435,"mtime_nanos":779457593,"lines":101},".git/objects/68/785c1444ba42226616d47299fae0f392c5d399":{"mtime_secs":1768273107,"mtime_nanos":896549041,"lines":3},".github/workflows/run-static.yml":{"mtime_secs":1767910209,"mtime_nanos":926107028,"lines":54},".git/objects/ea/1a67ab3a6b6d08e1123a73d1bc8eb92dbff771":{"mtime_secs":1768239165,"mtime_nanos":730277220,"lines":3},"docs/integrations/supabase.mdx":{"mtime_secs":1767910209,"mtime_nanos":950541508,"lines":112},"docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-mcp_server_config.mdx":{"mtime_secs":1767910209,"mtime_nanos":961622696,"lines":235},"tests/server/providers/test_local_provider_resources.py":{"mtime_secs":1768275439,"mtime_nanos":342156321,"lines":974},"tests/integration_tests/test_github_mcp_remote.py":{"mtime_secs":1767910210,"mtime_nanos":364144,"lines":123},"examples/fastmcp_config_demo/README.md":{"mtime_secs":1767910209,"mtime_nanos":971133452,"lines":55},"examples/testing_demo/server.py":{"mtime_secs":1767910209,"mtime_nanos":974447858,"lines":61},"CODE_OF_CONDUCT.md":{"mtime_secs":1767910209,"mtime_nanos":926670575,"lines":128},"examples/auth/scalekit_oauth/client.py":{"mtime_secs":1767910209,"mtime_nanos":969898232,"lines":41},"tests/deprecated/test_function_component_imports.py":{"mtime_secs":1768273914,"mtime_nanos":452909053,"lines":121},"docs/python-sdk/fastmcp-server-auth-middleware.mdx":{"mtime_secs":1767910209,"mtime_nanos":954913966,"lines":26},"tests/server/sampling/__init__.py":{"mtime_secs":1767910210,"mtime_nanos":8038674,"lines":0},".git/objects/cb/9fc0ca58c46cc07138bf43393b12ef01eda4b4":{"mtime_secs":1768257849,"mtime_nanos":518775600,"lines":2},"src/fastmcp/server/http.py":{"mtime_secs":1768275411,"mtime_nanos":464247158,"lines":382},"src/fastmcp/resources/template.py":{"mtime_secs":1768275400,"mtime_nanos":82008964,"lines":576},"examples/auth/workos_oauth/server.py":{"mtime_secs":1767910209,"mtime_nanos":970270527,"lines":37},".git/objects/19/7fe9cf35897c43fb5d57867dd764138f5fc2ab":{"mtime_secs":1767926606,"mtime_nanos":96458141,"lines":2},"docs/servers/prompts.mdx":{"mtime_secs":1768273914,"mtime_nanos":435132289,"lines":447},"tests/prompts/test_standalone_decorator.py":{"mtime_secs":1768275437,"mtime_nanos":873943221,"lines":138},"src/fastmcp/resources/function_resource.py":{"mtime_secs":1768275399,"mtime_nanos":858506815,"lines":311},".ccignore":{"mtime_secs":1767910209,"mtime_nanos":924747432,"lines":7},".git/objects/9b/33a05d09785b4230a6451273c18304be7c0492":{"mtime_secs":1768239135,"mtime_nanos":936469614,"lines":2},"src/fastmcp/server/providers/openapi/__init__.py":{"mtime_secs":1767910209,"mtime_nanos":987919818,"lines":39},"src/fastmcp/server/middleware/logging.py":{"mtime_secs":1767910209,"mtime_nanos":986532138,"lines":256},"docs/deployment/fastmcp-cloud.mdx":{"mtime_secs":1767910209,"mtime_nanos":943008979,"lines":89},"tests/server/middleware/test_error_handling.py":{"mtime_secs":1767910210,"mtime_nanos":4735185,"lines":652},"docs/python-sdk/fastmcp-server-middleware-error_handling.mdx":{"mtime_secs":1767910209,"mtime_nanos":957332864,"lines":60},"tests/server/auth/test_jwt_issuer.py":{"mtime_secs":1767910210,"mtime_nanos":2784666,"lines":230},"docs/integrations/openapi.mdx":{"mtime_secs":1767910209,"mtime_nanos":950315964,"lines":455},"tests/server/test_mount.py":{"mtime_secs":1768273914,"mtime_nanos":460305652,"lines":1560},"tests/test_mcp_config.py":{"mtime_secs":1768008814,"mtime_nanos":227519168,"lines":930},"docs/python-sdk/fastmcp-server-providers-transforming.mdx":{"mtime_secs":1767910209,"mtime_nanos":958857420,"lines":117},"src/fastmcp/server/auth/providers/aws.py":{"mtime_secs":1767910209,"mtime_nanos":983269149,"lines":194},"docs/integrations/aws-cognito.mdx":{"mtime_secs":1767910209,"mtime_nanos":944737995,"lines":279},"examples/screenshot.fastmcp.json":{"mtime_secs":1767910209,"mtime_nanos":972635924,"lines":7},"src/fastmcp/server/providers/openapi/components.py":{"mtime_secs":1767910209,"mtime_nanos":988069653,"lines":332},"tests/integration_tests/auth/test_github_provider_integration.py":{"mtime_secs":1767910210,"mtime_nanos":179975,"lines":401},"docs/python-sdk/fastmcp-tools-tool.mdx":{"mtime_secs":1767910209,"mtime_nanos":960127473,"lines":183},"src/fastmcp/server/auth/redirect_validation.py":{"mtime_secs":1767910209,"mtime_nanos":984937332,"lines":65},".git/objects/cd/904efabf4a61a937065edd2987f5891d02d7b0":{"mtime_secs":1768243987,"mtime_nanos":509810050,"lines":1},"scripts/auto_close_needs_mre.py":{"mtime_secs":1767910209,"mtime_nanos":975791829,"lines":384},".git/objects/37/21dde8cfec40eb43bd4388a209a25840683666":{"mtime_secs":1768268287,"mtime_nanos":210062148,"lines":3},"tests/cli/test_cursor.py":{"mtime_secs":1767910209,"mtime_nanos":994239961,"lines":433},"tests/__init__.py":{"mtime_secs":1767910209,"mtime_nanos":993815832,"lines":0},"docs/python-sdk/fastmcp-server-auth-jwt_issuer.mdx":{"mtime_secs":1767910209,"mtime_nanos":954849799,"lines":104},"src/fastmcp/server/middleware/timing.py":{"mtime_secs":1767910209,"mtime_nanos":986826808,"lines":156},"tests/client/__init__.py":{"mtime_secs":1767910209,"mtime_nanos":995406347,"lines":0},"docs/python-sdk/fastmcp-client-sampling-handlers-anthropic.mdx":{"mtime_secs":1767910209,"mtime_nanos":953481661,"lines":17},".git/refs/remotes/origin/main":{"mtime_secs":1768274758,"mtime_nanos":708872106,"lines":1},"docs/.cursor/rules/mintlify.mdc":{"mtime_secs":1767910209,"mtime_nanos":927227914,"lines":364},"docs/python-sdk/fastmcp-fs-__init__.mdx":{"mtime_secs":1768065435,"mtime_nanos":775960848,"lines":43},".git/objects/27/67471e1ff17ae54ae8414a0f7dbda7b8c8ca23":{"mtime_secs":1768052340,"mtime_nanos":61644163,"lines":2},"docs/servers/lifespan.mdx":{"mtime_secs":1768267998,"mtime_nanos":896437900,"lines":143},"examples/auth/authkit_dcr/README.md":{"mtime_secs":1767910209,"mtime_nanos":967833754,"lines":25},"src/fastmcp/client/auth/bearer.py":{"mtime_secs":1767910209,"mtime_nanos":977402511,"lines":17},"docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-environments-base.mdx":{"mtime_secs":1767910209,"mtime_nanos":961402777,"lines":43},"tests/server/auth/test_oauth_proxy_storage.py":{"mtime_secs":1767910210,"mtime_nanos":3496173,"lines":209},"docs/servers/resources.mdx":{"mtime_secs":1768273914,"mtime_nanos":437562516,"lines":731},"tests/server/tasks/test_custom_subclass_tasks.py":{"mtime_secs":1767910210,"mtime_nanos":8360302,"lines":184},"src/fastmcp/server/providers/proxy.py":{"mtime_secs":1768275412,"mtime_nanos":47513686,"lines":823},".git/objects/de/4d234c6bd2ea6aa73fa53984b455575f58d5ce":{"mtime_secs":1767969241,"mtime_nanos":781244482,"lines":1},"examples/testing_demo/pyproject.toml":{"mtime_secs":1767910209,"mtime_nanos":974385191,"lines":18},"docs/python-sdk/fastmcp-fs-discovery.mdx":{"mtime_secs":1768065435,"mtime_nanos":776652105,"lines":103},"tests/cli/test_mcp_server_config_schema.py":{"mtime_secs":1767910209,"mtime_nanos":994628340,"lines":172},"docs/python-sdk/fastmcp-client-auth-__init__.mdx":{"mtime_secs":1767910209,"mtime_nanos":952495652,"lines":8},".git/objects/72/6976a99f9047380adade068b0f62fff32db528":{"mtime_secs":1767994305,"mtime_nanos":379680587,"lines":1},".git/refs/remotes/origin/docs/2.14.3-release-notes":{"mtime_secs":1768257849,"mtime_nanos":588603706,"lines":1},".git/objects/7f/2c4c108dac2b2aff8177cca5d47b6f3f5595bf":{"mtime_secs":1768274969,"mtime_nanos":977579000,"lines":1},"tests/utilities/openapi/conftest.py":{"mtime_secs":1767910210,"mtime_nanos":12521841,"lines":222},"examples/auth/discord_oauth/server.py":{"mtime_secs":1767910209,"mtime_nanos":968888139,"lines":35},"tests/server/auth/providers/test_azure.py":{"mtime_secs":1767910210,"mtime_nanos":1640864,"lines":809},"tests/cli/test_run_config.py":{"mtime_secs":1767910209,"mtime_nanos":995001801,"lines":312},".github/workflows/update-sdk-docs.yml":{"mtime_secs":1767910209,"mtime_nanos":926281071,"lines":74},"src/fastmcp/server/middleware/__init__.py":{"mtime_secs":1768267998,"mtime_nanos":906111003,"lines":15},".github/dependabot.yml":{"mtime_secs":1767910209,"mtime_nanos":925259687,"lines":20},"src/fastmcp/utilities/openapi/__init__.py":{"mtime_secs":1767910209,"mtime_nanos":992693280,"lines":63},"docs/clients/transports.mdx":{"mtime_secs":1767910209,"mtime_nanos":942395223,"lines":383},"tests/utilities/openapi/test_director.py":{"mtime_secs":1767910210,"mtime_nanos":12861053,"lines":462},".git/objects/81/69bc871348c622817043ae2a2cc69915daeef8":{"mtime_secs":1767925044,"mtime_nanos":717035266,"lines":1},"docs/python-sdk/fastmcp-client-oauth_callback.mdx":{"mtime_secs":1767910209,"mtime_nanos":953129908,"lines":70},"docs/python-sdk/fastmcp-server-auth-providers-descope.mdx":{"mtime_secs":1767910209,"mtime_nanos":955584222,"lines":60},"tests/utilities/openapi/test_legacy_compatibility.py":{"mtime_secs":1767910210,"mtime_nanos":12980679,"lines":192},".git/objects/cb/7f22fd7fe77f5d6debbf0d4384697a05ea0c5a":{"mtime_secs":1767997243,"mtime_nanos":68587672,"lines":1},"docs/updates.mdx":{"mtime_secs":1768258809,"mtime_nanos":241599904,"lines":413},"src/fastmcp/server/tasks/config.py":{"mtime_secs":1768091029,"mtime_nanos":867540563,"lines":152},"docs/deployment/http.mdx":{"mtime_secs":1767910209,"mtime_nanos":943106230,"lines":736},"src/fastmcp/server/transforms/__init__.py":{"mtime_secs":1768273914,"mtime_nanos":448032140,"lines":206},"docs/python-sdk/fastmcp-cli-install-shared.mdx":{"mtime_secs":1767910209,"mtime_nanos":952237024,"lines":33},"examples/tasks/README.md":{"mtime_secs":1767910209,"mtime_nanos":973995479,"lines":60},"src/fastmcp/client/progress.py":{"mtime_secs":1767910209,"mtime_nanos":978046642,"lines":38},"docs/python-sdk/fastmcp-server-context.mdx":{"mtime_secs":1768065435,"mtime_nanos":778914671,"lines":550},"docs/python-sdk/fastmcp-server-sampling-__init__.mdx":{"mtime_secs":1767910209,"mtime_nanos":958973587,"lines":9},"tests/utilities/test_json_schema_type.py":{"mtime_secs":1767910210,"mtime_nanos":13865979,"lines":1584},"docs/python-sdk/fastmcp-server-auth-redirect_validation.mdx":{"mtime_secs":1767910209,"mtime_nanos":956452022,"lines":53},"tests/deprecated/test_add_tool_transformation.py":{"mtime_secs":1768273914,"mtime_nanos":452351048,"lines":104},".git/objects/37/3e318a95450b58f8b20a92cbf27caac2fc2342":{"mtime_secs":1768267927,"mtime_nanos":435378629,"lines":1},".git/objects/0e/9e0ff5d475ea45930b384363d976ec95c1b924":{"mtime_secs":1768258466,"mtime_nanos":330572205,"lines":2},"docs/python-sdk/fastmcp-cli-cli.mdx":{"mtime_secs":1768065435,"mtime_nanos":774813294,"lines":129},"tests/client/test_client.py":{"mtime_secs":1768008814,"mtime_nanos":227071121,"lines":1438},"docs/servers/elicitation.mdx":{"mtime_secs":1767910209,"mtime_nanos":963706257,"lines":462},".git/objects/25/a1f02624c36d90a452fe2cc7dc59f25cb58e12":{"mtime_secs":1767926596,"mtime_nanos":883682449,"lines":2},"src/fastmcp/utilities/types.py":{"mtime_secs":1768275416,"mtime_nanos":475484989,"lines":496},"src/fastmcp/server/auth/oauth_proxy.py":{"mtime_secs":1768275400,"mtime_nanos":665658828,"lines":2282},"tests/server/http/test_bearer_auth_backend.py":{"mtime_secs":1768275438,"mtime_nanos":343602974,"lines":179},"src/fastmcp/py.typed":{"mtime_secs":1767910209,"mtime_nanos":981481633,"lines":0},".git/hooks/push-to-checkout.sample":{"mtime_secs":1767910208,"mtime_nanos":711401932,"lines":78},"src/fastmcp/server/transforms/visibility.py":{"mtime_secs":1768273914,"mtime_nanos":448909855,"lines":304},"v3-notes/prompt-internal-types.md":{"mtime_secs":1767910210,"mtime_nanos":15218783,"lines":121},"src/fastmcp/client/oauth_callback.py":{"mtime_secs":1767910209,"mtime_nanos":977978183,"lines":242},"tests/resources/__init__.py":{"mtime_secs":1767910210,"mtime_nanos":639313,"lines":0},"tests/server/test_log_level.py":{"mtime_secs":1767910210,"mtime_nanos":10843825,"lines":88},"tests/client/tasks/test_client_task_protocol.py":{"mtime_secs":1767910209,"mtime_nanos":996408940,"lines":85},"src/fastmcp/server/auth/providers/in_memory.py":{"mtime_secs":1767910209,"mtime_nanos":984178533,"lines":364},"docs/python-sdk/fastmcp-utilities-openapi-director.mdx":{"mtime_secs":1767910209,"mtime_nanos":961954824,"lines":36},"tests/fs/test_discovery.py":{"mtime_secs":1768065435,"mtime_nanos":794675879,"lines":353},"docs/python-sdk/fastmcp-client-client.mdx":{"mtime_secs":1768065435,"mtime_nanos":775437843,"lines":704},".git/objects/d5/3bd83853418fecbe901cdb7971a9bdafa995b0":{"mtime_secs":1767994305,"mtime_nanos":375220000,"lines":2},"tests/resources/test_file_resources.py":{"mtime_secs":1767910210,"mtime_nanos":751897,"lines":121},"docs/python-sdk/fastmcp-utilities-openapi-json_schema_converter.mdx":{"mtime_secs":1767910209,"mtime_nanos":962117325,"lines":62},"examples/auth/authkit_dcr/server.py":{"mtime_secs":1767910209,"mtime_nanos":967980006,"lines":33},"docs/servers/providers/filesystem.mdx":{"mtime_secs":1768065435,"mtime_nanos":782146372,"lines":255},"src/fastmcp/client/client.py":{"mtime_secs":1768275398,"mtime_nanos":55253387,"lines":1722},".git/objects/54/c1f3adc038af7afd824ece430df893a9c1bf9f":{"mtime_secs":1768275805,"mtime_nanos":77719375,"lines":3},"tests/server/__init__.py":{"mtime_secs":1767910210,"mtime_nanos":1230985,"lines":0},"examples/testing_demo/README.md":{"mtime_secs":1767910209,"mtime_nanos":974324648,"lines":84},"tests/utilities/test_visibility.py":{"mtime_secs":1768273914,"mtime_nanos":462834797,"lines":118},"tests/client/tasks/test_task_result_caching.py":{"mtime_secs":1767910209,"mtime_nanos":996716526,"lines":325},"tests/server/middleware/test_rate_limiting.py":{"mtime_secs":1767910210,"mtime_nanos":5112397,"lines":457},"tests/tools/test_tool.py":{"mtime_secs":1768275439,"mtime_nanos":994409388,"lines":1923},"docs/python-sdk/fastmcp-fs-decorators.mdx":{"mtime_secs":1768065435,"mtime_nanos":776280351,"lines":156},".github/workflows/update-config-schema.yml":{"mtime_secs":1767910209,"mtime_nanos":926226363,"lines":91},"docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-sources-base.mdx":{"mtime_secs":1767910209,"mtime_nanos":961754197,"lines":42},".github/workflows/marvin-dedupe-issues.yml":{"mtime_secs":1767966312,"mtime_nanos":628563953,"lines":95},"tests/server/http/test_custom_routes.py":{"mtime_secs":1767910210,"mtime_nanos":4124137,"lines":105},"src/fastmcp/server/auth/handlers/authorize.py":{"mtime_secs":1767910209,"mtime_nanos":982424516,"lines":326},"tests/server/tasks/test_task_mount.py":{"mtime_secs":1767910210,"mtime_nanos":9343228,"lines":965},"src/fastmcp/utilities/inspect.py":{"mtime_secs":1767910209,"mtime_nanos":991093306,"lines":494},"src/fastmcp/server/auth/oidc_proxy.py":{"mtime_secs":1767994445,"mtime_nanos":315804138,"lines":419},"docs/integrations/azure.mdx":{"mtime_secs":1767910209,"mtime_nanos":944826829,"lines":281},"docs/python-sdk/fastmcp-client-transports.mdx":{"mtime_secs":1768065435,"mtime_nanos":775719304,"lines":297},"v3-notes/resource-internal-types.md":{"mtime_secs":1767910210,"mtime_nanos":15442160,"lines":196},"tests/deprecated/test_import_server.py":{"mtime_secs":1768273914,"mtime_nanos":453311931,"lines":714},"tests/cli/test_with_argv.py":{"mtime_secs":1767910209,"mtime_nanos":995324471,"lines":91},"src/fastmcp/cli/install/cursor.py":{"mtime_secs":1767910209,"mtime_nanos":976640254,"lines":333},"src/fastmcp/server/middleware/authorization.py":{"mtime_secs":1768267998,"mtime_nanos":907053550,"lines":299},"src/fastmcp/resources/types.py":{"mtime_secs":1767910209,"mtime_nanos":981937470,"lines":172},".git/objects/76/2c6269085b45785c856660da44aeb26922de38":{"mtime_secs":1768260294,"mtime_nanos":920717306,"lines":1},"scripts/auto_close_duplicates.py":{"mtime_secs":1767910209,"mtime_nanos":975661203,"lines":331},".git/refs/remotes/origin/metadata-decorators":{"mtime_secs":1768270101,"mtime_nanos":748739992,"lines":1},"docs/python-sdk/fastmcp-utilities-http.mdx":{"mtime_secs":1767910209,"mtime_nanos":960742854,"lines":18},"src/fastmcp/contrib/mcp_mixin/README.md":{"mtime_secs":1767910209,"mtime_nanos":980068411,"lines":147},"docs/python-sdk/fastmcp-server-auth-providers-aws.mdx":{"mtime_secs":1767910209,"mtime_nanos":955292595,"lines":82},"tests/server/auth/providers/test_descope.py":{"mtime_secs":1767910210,"mtime_nanos":1776032,"lines":238},"docs/python-sdk/fastmcp-cli-install-claude_desktop.mdx":{"mtime_secs":1767910209,"mtime_nanos":951999480,"lines":58},"docs/clients/progress.mdx":{"mtime_secs":1767910209,"mtime_nanos":941630674,"lines":70},"tests/server/providers/proxy/test_proxy_client.py":{"mtime_secs":1768275463,"mtime_nanos":382953013,"lines":430},"tests/server/providers/test_local_provider_prompts.py":{"mtime_secs":1768275439,"mtime_nanos":331951498,"lines":472},".git/objects/f6/a9d43ef0746d2da0a90b41a3ece2e33898d749":{"mtime_secs":1768270101,"mtime_nanos":714676512,"lines":2},"examples/smart_home/README.md":{"mtime_secs":1767910209,"mtime_nanos":972864843,"lines":15},"src/fastmcp/prompts/prompt.py":{"mtime_secs":1768273914,"mtime_nanos":441505130,"lines":425},"tests/client/transports/test_transports.py":{"mtime_secs":1767910209,"mtime_nanos":998136498,"lines":42},"docs/python-sdk/fastmcp-cli-run.mdx":{"mtime_secs":1768065435,"mtime_nanos":774987338,"lines":117},"tests/utilities/openapi/test_allof_requestbody.py":{"mtime_secs":1767910210,"mtime_nanos":12613300,"lines":227},"tests/utilities/test_json_schema.py":{"mtime_secs":1767966312,"mtime_nanos":635623411,"lines":543},"docs/python-sdk/fastmcp-utilities-exceptions.mdx":{"mtime_secs":1767910209,"mtime_nanos":960675020,"lines":20},"tests/server/auth/providers/test_aws.py":{"mtime_secs":1767910210,"mtime_nanos":1558488,"lines":107},"src/fastmcp/cli/install/claude_desktop.py":{"mtime_secs":1767910209,"mtime_nanos":976514544,"lines":210},"tests/contrib/__init__.py":{"mtime_secs":1767910209,"mtime_nanos":998376833,"lines":1},"src/fastmcp/server/server.py":{"mtime_secs":1768275412,"mtime_nanos":450905711,"lines":2942},"docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-__init__.mdx":{"mtime_secs":1767910209,"mtime_nanos":961254151,"lines":8},".git/logs/refs/remotes/origin/HEAD":{"mtime_secs":1768307169,"mtime_nanos":241461629,"lines":56},".git/objects/62/d50edd711afd1f6c1284ad63568a917e64fd8b":{"mtime_secs":1767936789,"mtime_nanos":901827035,"lines":2},"tests/server/middleware/test_middleware.py":{"mtime_secs":1768275520,"mtime_nanos":313642874,"lines":1070},"tests/server/providers/test_local_provider.py":{"mtime_secs":1768273914,"mtime_nanos":457293045,"lines":784},"docs/python-sdk/fastmcp-cli-__init__.mdx":{"mtime_secs":1767910209,"mtime_nanos":951712644,"lines":9},"examples/tasks/client.py":{"mtime_secs":1767910209,"mtime_nanos":974091146,"lines":160},"docs/servers/middleware.mdx":{"mtime_secs":1768273914,"mtime_nanos":434736161,"lines":846},"docs/python-sdk/fastmcp-cli-tasks.mdx":{"mtime_secs":1767910209,"mtime_nanos":952379192,"lines":41},"tests/server/auth/providers/test_auth0.py":{"mtime_secs":1767910210,"mtime_nanos":1466446,"lines":98},"tests/server/auth/test_debug_verifier.py":{"mtime_secs":1767910210,"mtime_nanos":2589998,"lines":169},"v3-notes/get-methods-consolidation.md":{"mtime_secs":1767910210,"mtime_nanos":15154783,"lines":69},"AGENTS.md":{"mtime_secs":1768273914,"mtime_nanos":432682436,"lines":116},"docs/servers/server.mdx":{"mtime_secs":1768065435,"mtime_nanos":783859515,"lines":404},"tests/client/tasks/test_client_prompt_tasks.py":{"mtime_secs":1767910209,"mtime_nanos":996158187,"lines":103},"docs/python-sdk/fastmcp-server-auth-providers-github.mdx":{"mtime_secs":1767910209,"mtime_nanos":955718849,"lines":66},"docs/python-sdk/fastmcp-server-providers-local_provider.mdx":{"mtime_secs":1767910209,"mtime_nanos":958449999,"lines":372},"src/fastmcp/server/low_level.py":{"mtime_secs":1767910209,"mtime_nanos":986025759,"lines":290},".git/objects/9a/ff985badef9af930ce45850d2407c473da973e":{"mtime_secs":1768273107,"mtime_nanos":900478739,"lines":2},"src/fastmcp/experimental/sampling/handlers/openai.py":{"mtime_secs":1767910209,"mtime_nanos":980797834,"lines":5},"tests/client/transports/__init__.py":{"mtime_secs":1767910209,"mtime_nanos":998056205,"lines":0},"examples/mount_example.fastmcp.json":{"mtime_secs":1767910209,"mtime_nanos":971796458,"lines":4},"src/fastmcp/server/auth/providers/descope.py":{"mtime_secs":1767910209,"mtime_nanos":983615361,"lines":198},"docs/python-sdk/fastmcp-cli-install-mcp_json.mdx":{"mtime_secs":1767910209,"mtime_nanos":952176565,"lines":49},".git/objects/cf/72cd4938c4fc6f7a8a16554ceefc9404fa5870":{"mtime_secs":1768008006,"mtime_nanos":563809624,"lines":4},"tests/client/sampling/handlers/__init__.py":{"mtime_secs":1767910209,"mtime_nanos":995786726,"lines":0},".git/objects/d9/ee2a1c35476aaf5706c39d6669fa22bde7cb57":{"mtime_secs":1768062579,"mtime_nanos":840053345,"lines":4},"tests/server/providers/openapi/test_end_to_end_compatibility.py":{"mtime_secs":1767910210,"mtime_nanos":6388742,"lines":221},"src/fastmcp/experimental/server/openapi/__init__.py":{"mtime_secs":1767910209,"mtime_nanos":980948086,"lines":40},"docs/python-sdk/fastmcp-server-auth-providers-auth0.mdx":{"mtime_secs":1767910209,"mtime_nanos":955218344,"lines":41},"src/fastmcp/client/transports.py":{"mtime_secs":1768275399,"mtime_nanos":20196202,"lines":1208},"docs/clients/roots.mdx":{"mtime_secs":1767910209,"mtime_nanos":941919385,"lines":42},"src/fastmcp/cli/__main__.py":{"mtime_secs":1767910209,"mtime_nanos":976096457,"lines":5},"docs/python-sdk/fastmcp-utilities-components.mdx":{"mtime_secs":1767910209,"mtime_nanos":960609478,"lines":115},"docs/python-sdk/fastmcp-server-middleware-middleware.mdx":{"mtime_secs":1767910209,"mtime_nanos":957556241,"lines":112},"docs/deployment/running-server.mdx":{"mtime_secs":1767966312,"mtime_nanos":924405293,"lines":282},"src/fastmcp/dependencies.py":{"mtime_secs":1768091029,"mtime_nanos":862680809,"lines":36},".git/objects/a1/7a4142d8f032cee80c7b57ff95dd0dfe931709":{"mtime_secs":1768257849,"mtime_nanos":517889178,"lines":3},".git/objects/0b/a7dfdbb7f2c3eeda565e5e09f375d9f6928592":{"mtime_secs":1768086974,"mtime_nanos":70925454,"lines":2},"docs/patterns/contrib.mdx":{"mtime_secs":1767910209,"mtime_nanos":950960429,"lines":45},"src/fastmcp/server/auth/providers/__init__.py":{"mtime_secs":1767910209,"mtime_nanos":983013772,"lines":0},"examples/fastmcp_config/server.py":{"mtime_secs":1767910209,"mtime_nanos":970957367,"lines":39},"src/fastmcp/contrib/mcp_mixin/mcp_mixin.py":{"mtime_secs":1767910209,"mtime_nanos":980336955,"lines":283},"tests/server/middleware/__init__.py":{"mtime_secs":1767910210,"mtime_nanos":4543891,"lines":0},"src/fastmcp/utilities/exceptions.py":{"mtime_secs":1767910209,"mtime_nanos":990943263,"lines":49},"examples/auth/authkit_dcr/client.py":{"mtime_secs":1767910209,"mtime_nanos":967906296,"lines":32},".github/workflows/martian-test-failure.yml":{"mtime_secs":1767966312,"mtime_nanos":628238410,"lines":185},"src/fastmcp/server/providers/local_provider.py":{"mtime_secs":1768273914,"mtime_nanos":445853789,"lines":962},"docs/python-sdk/fastmcp-client-auth-bearer.mdx":{"mtime_secs":1767910209,"mtime_nanos":952567611,"lines":18},"docs/python-sdk/fastmcp-resources-resource.mdx":{"mtime_secs":1767910209,"mtime_nanos":954293002,"lines":214},"tests/server/auth/__init__.py":{"mtime_secs":1767910210,"mtime_nanos":1309152,"lines":0},"examples/atproto_mcp/demo.py":{"mtime_secs":1767910209,"mtime_nanos":966549075,"lines":257},"tests/server/test_server.py":{"mtime_secs":1768273914,"mtime_nanos":461020449,"lines":458},"docs/python-sdk/fastmcp-utilities-mcp_server_config-__init__.mdx":{"mtime_secs":1767910209,"mtime_nanos":961183233,"lines":13},"docs/python-sdk/fastmcp-client-__init__.mdx":{"mtime_secs":1767910209,"mtime_nanos":952443068,"lines":8},"src/fastmcp/server/providers/filesystem_discovery.py":{"mtime_secs":1768273914,"mtime_nanos":445485620,"lines":327},"docs/servers/context.mdx":{"mtime_secs":1768267998,"mtime_nanos":895493810,"lines":650},"docs/integrations/oci.mdx":{"mtime_secs":1767910209,"mtime_nanos":950135838,"lines":249},"examples/smart_home/src/smart_home/hub.py":{"mtime_secs":1767966312,"mtime_nanos":925390299,"lines":31},".git/logs/refs/remotes/origin/metadata-decorators":{"mtime_secs":1768270101,"mtime_nanos":749305663,"lines":4},".git/COMMIT_EDITMSG":{"mtime_secs":1768275805,"mtime_nanos":77533624,"lines":4},"docs/servers/auth/oauth-proxy.mdx":{"mtime_secs":1767910209,"mtime_nanos":963100585,"lines":590},"docs/python-sdk/fastmcp-client-progress.mdx":{"mtime_secs":1767910209,"mtime_nanos":953193492,"lines":25},"src/fastmcp/server/auth/providers/azure.py":{"mtime_secs":1767910209,"mtime_nanos":983391775,"lines":358},"src/fastmcp/decorators.py":{"mtime_secs":1768273914,"mtime_nanos":440038410,"lines":41},"docs/development/releases.mdx":{"mtime_secs":1767910209,"mtime_nanos":943595068,"lines":79},"tests/utilities/__init__.py":{"mtime_secs":1767910210,"mtime_nanos":12317048,"lines":1},".git/objects/98/c654b8693488ba02040fe9edda733a2f9f8c96":{"mtime_secs":1768260294,"mtime_nanos":894109748,"lines":3},"tests/server/test_app_state.py":{"mtime_secs":1767910210,"mtime_nanos":10038193,"lines":26},"src/fastmcp/utilities/mcp_server_config/v1/environments/base.py":{"mtime_secs":1767910209,"mtime_nanos":991865564,"lines":29},"tests/server/auth/providers/test_workos.py":{"mtime_secs":1767910210,"mtime_nanos":2371579,"lines":152},"examples/filesystem-provider/mcp/resources/config.py":{"mtime_secs":1768065435,"mtime_nanos":784378770,"lines":55},"docs/python-sdk/fastmcp-server-middleware-tool_injection.mdx":{"mtime_secs":1767910209,"mtime_nanos":957778243,"lines":91},"src/fastmcp/server/middleware/middleware.py":{"mtime_secs":1767910209,"mtime_nanos":986644598,"lines":205},"docs/python-sdk/fastmcp-server-middleware-logging.mdx":{"mtime_secs":1767910209,"mtime_nanos":957453865,"lines":58},"src/fastmcp/tools/function_parsing.py":{"mtime_secs":1768275412,"mtime_nanos":738988075,"lines":201},"examples/filesystem-provider/mcp/tools/greeting.py":{"mtime_secs":1768065435,"mtime_nanos":784707482,"lines":28},"docs/python-sdk/fastmcp-server-auth-oidc_proxy.mdx":{"mtime_secs":1767910209,"mtime_nanos":955077926,"lines":82},"docs/python-sdk/fastmcp-utilities-types.mdx":{"mtime_secs":1767910209,"mtime_nanos":962493496,"lines":169},"tests/cli/test_mcp_server_config_integration.py":{"mtime_secs":1768275457,"mtime_nanos":35815783,"lines":293},"tests/server/tasks/test_sync_function_task_disabled.py":{"mtime_secs":1768273914,"mtime_nanos":459901149,"lines":229},"src/fastmcp/utilities/version_check.py":{"mtime_secs":1768258809,"mtime_nanos":250704508,"lines":153},"src/fastmcp/server/event_store.py":{"mtime_secs":1767910209,"mtime_nanos":985794840,"lines":177},".git/objects/fe/630a275a451a5d7dd8a70942990a6bd97ae895":{"mtime_secs":1768269718,"mtime_nanos":997369257,"lines":1},"tests/server/tasks/test_task_methods.py":{"mtime_secs":1767910210,"mtime_nanos":9256061,"lines":217},"src/fastmcp/utilities/cli.py":{"mtime_secs":1768258809,"mtime_nanos":250333464,"lines":281},"tests/integration_tests/conftest.py":{"mtime_secs":1767910210,"mtime_nanos":263434,"lines":72},".git/objects/a7/563df98b7e4ffdc0b3f18183317b582a1e716b":{"mtime_secs":1768275805,"mtime_nanos":65319911,"lines":4},"tests/server/http/test_http_dependencies.py":{"mtime_secs":1767910210,"mtime_nanos":4296431,"lines":128},"src/fastmcp/utilities/http.py":{"mtime_secs":1767910209,"mtime_nanos":991005389,"lines":8},"src/fastmcp/contrib/bulk_tool_caller/example.py":{"mtime_secs":1767910209,"mtime_nanos":979380154,"lines":17},"src/fastmcp/cli/install/mcp_json.py":{"mtime_secs":1767910209,"mtime_nanos":976825214,"lines":191},"src/fastmcp/server/providers/openapi/provider.py":{"mtime_secs":1767910209,"mtime_nanos":988137612,"lines":384},"examples/fastmcp_config/simple.fastmcp.json":{"mtime_secs":1767910209,"mtime_nanos":971018868,"lines":7},"tests/utilities/openapi/test_transitive_references.py":{"mtime_secs":1767910210,"mtime_nanos":13368933,"lines":842},"src/fastmcp/resources/resource.py":{"mtime_secs":1768273914,"mtime_nanos":443312394,"lines":443},"tests/server/auth/test_enhanced_error_responses.py":{"mtime_secs":1767910210,"mtime_nanos":2661749,"lines":364},"tests/server/auth/providers/test_discord.py":{"mtime_secs":1767910210,"mtime_nanos":1849033,"lines":70},"examples/smart_home/src/smart_home/__main__.py":{"mtime_secs":1767910209,"mtime_nanos":973255388,"lines":9},".git/logs/refs/heads/feature/reload-flag":{"mtime_secs":1767927080,"mtime_nanos":441195568,"lines":6},"src/fastmcp/client/elicitation.py":{"mtime_secs":1767910209,"mtime_nanos":977704347,"lines":80},"docs/integrations/discord.mdx":{"mtime_secs":1767910209,"mtime_nanos":945622545,"lines":184},"src/fastmcp/server/providers/aggregate.py":{"mtime_secs":1768273914,"mtime_nanos":443889815,"lines":207},"pyproject.toml":{"mtime_secs":1768275127,"mtime_nanos":809106522,"lines":199},"docs/python-sdk/fastmcp-server-auth-providers-debug.mdx":{"mtime_secs":1767910209,"mtime_nanos":955510138,"lines":70},"docs/servers/providers/custom.mdx":{"mtime_secs":1767910209,"mtime_nanos":964369180,"lines":241},".git/objects/75/af171cb9d1dc8540209c0bcaf469419fbe32fb":{"mtime_secs":1768065435,"mtime_nanos":673049972,"lines":1},"docs/python-sdk/fastmcp-server-__init__.mdx":{"mtime_secs":1767910209,"mtime_nanos":954571879,"lines":8},"docs/python-sdk/fastmcp-prompts-__init__.mdx":{"mtime_secs":1767910209,"mtime_nanos":954008249,"lines":8},"src/fastmcp/server/auth/providers/debug.py":{"mtime_secs":1767910209,"mtime_nanos":983478151,"lines":114},"docs/community/showcase.mdx":{"mtime_secs":1767910209,"mtime_nanos":942564725,"lines":65},"docs/clients/auth/bearer.mdx":{"mtime_secs":1767910209,"mtime_nanos":941034794,"lines":88},"tests/integration_tests/auth/__init__.py":{"mtime_secs":1767910210,"mtime_nanos":70224,"lines":0},"src/fastmcp/utilities/mcp_server_config/v1/sources/__init__.py":{"mtime_secs":1767910209,"mtime_nanos":992272359,"lines":0},"docs/clients/auth/oauth.mdx":{"mtime_secs":1767910209,"mtime_nanos":941154961,"lines":132},"tests/server/auth/providers/test_google.py":{"mtime_secs":1767910210,"mtime_nanos":2030118,"lines":118},".git/logs/refs/remotes/origin/release/2.x":{"mtime_secs":1768258884,"mtime_nanos":704964868,"lines":5},"docs/integrations/mcp-json-configuration.mdx":{"mtime_secs":1767910209,"mtime_nanos":949996545,"lines":422},"examples/sampling/structured_output.py":{"mtime_secs":1767910209,"mtime_nanos":972414464,"lines":110},"examples/atproto_mcp/src/atproto_mcp/__init__.py":{"mtime_secs":1767910209,"mtime_nanos":966835036,"lines":3},".git/hooks/pre-rebase.sample":{"mtime_secs":1767910208,"mtime_nanos":708822658,"lines":169},".git/objects/f2/62d9de7f50fc6133bc108376e5da45f11f0d20":{"mtime_secs":1768267926,"mtime_nanos":725680430,"lines":2},"src/fastmcp/cli/tasks.py":{"mtime_secs":1767910209,"mtime_nanos":977123758,"lines":110},"src/fastmcp/server/lifespan.py":{"mtime_secs":1768275411,"mtime_nanos":615886206,"lines":198},".git/objects/7c/7064e7b31cdfc85810d317c89218d5bc3599c6":{"mtime_secs":1768062579,"mtime_nanos":836300417,"lines":2},"src/fastmcp/utilities/async_utils.py":{"mtime_secs":1767910209,"mtime_nanos":990579635,"lines":56},"examples/text_me.py":{"mtime_secs":1767910209,"mtime_nanos":975166490,"lines":72},"tests/prompts/__init__.py":{"mtime_secs":1767910210,"mtime_nanos":444353,"lines":0},".git/refs/remotes/origin/release/2.x":{"mtime_secs":1768258884,"mtime_nanos":704644282,"lines":1},"tests/tools/test_tool_transform.py":{"mtime_secs":1768273914,"mtime_nanos":462189625,"lines":1748},"src/fastmcp/cli/install/shared.py":{"mtime_secs":1767910209,"mtime_nanos":976920215,"lines":127},"docs/python-sdk/fastmcp-utilities-tests.mdx":{"mtime_secs":1767910209,"mtime_nanos":962405120,"lines":106},"docs/getting-started/quickstart.mdx":{"mtime_secs":1767910209,"mtime_nanos":944227157,"lines":136},"LICENSE":{"mtime_secs":1767910209,"mtime_nanos":926792951,"lines":201},"docs/development/tests.mdx":{"mtime_secs":1767910209,"mtime_nanos":943683277,"lines":396},"docs/python-sdk/fastmcp-client-elicitation.mdx":{"mtime_secs":1767910209,"mtime_nanos":952787988,"lines":18},"src/fastmcp/server/openapi/routing.py":{"mtime_secs":1767910209,"mtime_nanos":987139311,"lines":46},".git/objects/8e/72b7124ee74702ac890c0dfc0d4c861f6b0cc1":{"mtime_secs":1767980392,"mtime_nanos":450449955,"lines":1},"docs/python-sdk/fastmcp-cli-install-cursor.mdx":{"mtime_secs":1767910209,"mtime_nanos":952060147,"lines":107},".claude/skills/python-tests/SKILL.md":{"mtime_secs":1768258809,"mtime_nanos":229630363,"lines":220},"examples/auth/scalekit_oauth/server.py":{"mtime_secs":1767910209,"mtime_nanos":969967691,"lines":58},"tests/server/middleware/test_caching.py":{"mtime_secs":1768273914,"mtime_nanos":455815867,"lines":617},"docs/python-sdk/fastmcp-utilities-openapi-formatters.mdx":{"mtime_secs":1767910209,"mtime_nanos":962050533,"lines":115},"docs/python-sdk/fastmcp-utilities-__init__.mdx":{"mtime_secs":1767910209,"mtime_nanos":960333309,"lines":9},"tests/deprecated/server/test_include_exclude_tags.py":{"mtime_secs":1767910209,"mtime_nanos":999204758,"lines":50},"src/fastmcp/utilities/auth.py":{"mtime_secs":1767910209,"mtime_nanos":990662719,"lines":34},"docs/clients/messages.mdx":{"mtime_secs":1767910209,"mtime_nanos":941569007,"lines":129},"docs/servers/sampling.mdx":{"mtime_secs":1767910209,"mtime_nanos":965018853,"lines":488},"examples/fastmcp_config/full_example.fastmcp.json":{"mtime_secs":1767910209,"mtime_nanos":970897700,"lines":27},"examples/memory.py":{"mtime_secs":1767910209,"mtime_nanos":971732666,"lines":341},"docs/integrations/auth0.mdx":{"mtime_secs":1767910209,"mtime_nanos":944548410,"lines":196},"docs/integrations/workos.mdx":{"mtime_secs":1767910209,"mtime_nanos":950630384,"lines":201},"tests/integration_tests/__init__.py":{"mtime_secs":1767910209,"mtime_nanos":999967723,"lines":0},"src/fastmcp/client/__init__.py":{"mtime_secs":1768008814,"mtime_nanos":226119109,"lines":30},".git/objects/e3/1e3fddb2bf4e0da2b4036ac7a562ecb8c8474e":{"mtime_secs":1768077500,"mtime_nanos":171713640,"lines":1},"docs/snippets/local-focus.mdx":{"mtime_secs":1767910209,"mtime_nanos":965621067,"lines":7},"docs/patterns/testing.mdx":{"mtime_secs":1767910209,"mtime_nanos":951143389,"lines":104},"docs/assets/brand/favicon.svg":{"mtime_secs":1767910209,"mtime_nanos":927970754,"lines":3},"tests/server/test_tool_transformation.py":{"mtime_secs":1768273914,"mtime_nanos":461395160,"lines":120},"tests/server/providers/__init__.py":{"mtime_secs":1767910210,"mtime_nanos":5479067,"lines":0},"docs/integrations/chatgpt.mdx":{"mtime_secs":1767910209,"mtime_nanos":944944831,"lines":157},"tests/resources/test_function_resources.py":{"mtime_secs":1768273914,"mtime_nanos":454083728,"lines":278},"src/fastmcp/client/tasks.py":{"mtime_secs":1768275398,"mtime_nanos":912262801,"lines":551},"src/fastmcp/utilities/lifespan.py":{"mtime_secs":1768065435,"mtime_nanos":794376750,"lines":56},".github/workflows/marvin.yml":{"mtime_secs":1767966312,"mtime_nanos":629167665,"lines":81},"src/fastmcp/server/openapi/server.py":{"mtime_secs":1767910209,"mtime_nanos":987208020,"lines":127},"docs/integrations/descope.mdx":{"mtime_secs":1767910209,"mtime_nanos":945529961,"lines":114},"examples/atproto_mcp/src/atproto_mcp/_atproto/_read.py":{"mtime_secs":1767910209,"mtime_nanos":967326749,"lines":124},"src/fastmcp/server/providers/openapi/README.md":{"mtime_secs":1767910209,"mtime_nanos":987850984,"lines":266},"tests/server/http/test_stale_access_token.py":{"mtime_secs":1767910210,"mtime_nanos":4471766,"lines":159},"tests/server/providers/openapi/test_performance_comparison.py":{"mtime_secs":1767910210,"mtime_nanos":6845496,"lines":286},"tests/server/providers/openapi/test_server.py":{"mtime_secs":1767910210,"mtime_nanos":6929330,"lines":305},".github/workflows/martian-issue-triage.yml":{"mtime_secs":1767966312,"mtime_nanos":627746823,"lines":176},"src/fastmcp/client/logging.py":{"mtime_secs":1767910209,"mtime_nanos":977769348,"lines":54},"tests/server/http/__init__.py":{"mtime_secs":1767910210,"mtime_nanos":3943011,"lines":0},"tests/server/tasks/test_task_security.py":{"mtime_secs":1767910210,"mtime_nanos":9776357,"lines":47},"tests/deprecated/test_openapi_deprecations.py":{"mtime_secs":1767910209,"mtime_nanos":999511427,"lines":78},"src/fastmcp/server/auth/providers/scalekit.py":{"mtime_secs":1767910209,"mtime_nanos":984682204,"lines":200},"src/fastmcp/server/auth/authorization.py":{"mtime_secs":1768267998,"mtime_nanos":903622237,"lines":190},".github/ISSUE_TEMPLATE/bug.yml":{"mtime_secs":1767910209,"mtime_nanos":925024851,"lines":71},"tests/server/auth/providers/test_github.py":{"mtime_secs":1767910210,"mtime_nanos":1943950,"lines":129},"tests/server/tasks/test_task_capabilities.py":{"mtime_secs":1767910210,"mtime_nanos":8809848,"lines":44},"src/fastmcp/server/context.py":{"mtime_secs":1768275401,"mtime_nanos":371133151,"lines":1272},"docs/css/python-sdk.css":{"mtime_secs":1767910209,"mtime_nanos":942730060,"lines":3},"tests/server/providers/proxy/test_stateful_proxy_client.py":{"mtime_secs":1768065435,"mtime_nanos":796294562,"lines":147},"docs/servers/providers/namespacing.mdx":{"mtime_secs":1768273914,"mtime_nanos":436395548,"lines":9},".git/logs/refs/heads/extract-parsedfunction":{"mtime_secs":1768275805,"mtime_nanos":78436214,"lines":4},"examples/auth/aws_oauth/requirements.txt":{"mtime_secs":1767910209,"mtime_nanos":968220049,"lines":2},"tests/server/tasks/test_task_status_notifications.py":{"mtime_secs":1767910210,"mtime_nanos":9864775,"lines":160},"docs/python-sdk/fastmcp-server-openapi-routing.mdx":{"mtime_secs":1767910209,"mtime_nanos":957969995,"lines":13},".git/objects/9c/aaff7cacbcca5b163465fdfab5a1a269b45fde":{"mtime_secs":1768005473,"mtime_nanos":488121058,"lines":1},"examples/fastmcp_config/fastmcp.json":{"mtime_secs":1767910209,"mtime_nanos":970837324,"lines":13},".github/workflows/publish.yml":{"mtime_secs":1767910209,"mtime_nanos":926045736,"lines":26},"tests/conftest.py":{"mtime_secs":1767910209,"mtime_nanos":998275582,"lines":83},".git/config":{"mtime_secs":1768307285,"mtime_nanos":997779687,"lines":36},"docs/python-sdk/fastmcp-exceptions.mdx":{"mtime_secs":1767910209,"mtime_nanos":953845581,"lines":65},"src/fastmcp/experimental/sampling/__init__.py":{"mtime_secs":1767910209,"mtime_nanos":980599833,"lines":0},".git/objects/6e/8c60b65e449d516dde82cefb6ffdd228c25c8a":{"mtime_secs":1767994305,"mtime_nanos":380528458,"lines":1},".git/objects/03/0e7190c2b413df5967214c240f685a1d7115c6":{"mtime_secs":1768258884,"mtime_nanos":602393117,"lines":4},"tests/experimental/README.md":{"mtime_secs":1767910209,"mtime_nanos":999797763,"lines":3},"docs/python-sdk/fastmcp-server-auth-providers-__init__.mdx":{"mtime_secs":1767910209,"mtime_nanos":955145218,"lines":8},"docs/deployment/server-configuration.mdx":{"mtime_secs":1767910209,"mtime_nanos":943334065,"lines":640},".git/hooks/update.sample":{"mtime_secs":1767910208,"mtime_nanos":711016678,"lines":128},"docs/integrations/claude-code.mdx":{"mtime_secs":1767910209,"mtime_nanos":945072873,"lines":177},"examples/atproto_mcp/src/atproto_mcp/_atproto/_client.py":{"mtime_secs":1767910209,"mtime_nanos":967089706,"lines":16},"examples/auth/google_oauth/README.md":{"mtime_secs":1767910209,"mtime_nanos":969278893,"lines":34},"tests/server/providers/test_fastmcp_provider.py":{"mtime_secs":1767910210,"mtime_nanos":7080540,"lines":446},"docs/servers/logging.mdx":{"mtime_secs":1767910209,"mtime_nanos":963926634,"lines":249},"docs/integrations/permit.mdx":{"mtime_secs":1767910209,"mtime_nanos":950379382,"lines":352},"docs/clients/client.mdx":{"mtime_secs":1767910209,"mtime_nanos":941287296,"lines":340},".git/objects/42/dcb8918df7d94962d750a3280285ff5da0f63c":{"mtime_secs":1767966312,"mtime_nanos":838173543,"lines":4},"src/fastmcp/server/tasks/routing.py":{"mtime_secs":1767910209,"mtime_nanos":989862420,"lines":76},"examples/auth/discord_oauth/README.md":{"mtime_secs":1767910209,"mtime_nanos":968748430,"lines":33},".git/objects/c0/48dfe4743324bc13eef500552c06e12f61fd7c":{"mtime_secs":1768157206,"mtime_nanos":108578893,"lines":3},"src/fastmcp/client/roots.py":{"mtime_secs":1767910209,"mtime_nanos":978121726,"lines":76},"src/fastmcp/server/tasks/capabilities.py":{"mtime_secs":1768091029,"mtime_nanos":867126809,"lines":34},"docs/python-sdk/fastmcp-utilities-cli.mdx":{"mtime_secs":1768065435,"mtime_nanos":781075235,"lines":48},"tests/resources/test_resource_template.py":{"mtime_secs":1768273914,"mtime_nanos":454701233,"lines":1009},"examples/providers/sqlite/setup_db.py":{"mtime_secs":1767910209,"mtime_nanos":972189045,"lines":102},"tests/server/auth/providers/test_introspection.py":{"mtime_secs":1767910210,"mtime_nanos":2098076,"lines":419},"tests/server/sampling/test_sampling_tool.py":{"mtime_secs":1767910210,"mtime_nanos":8119342,"lines":121},".git/objects/d8/b95a00e25fdcf12b6cba3ff42c26d77deccb07":{"mtime_secs":1767924161,"mtime_nanos":21715199,"lines":2},".git/objects/ac/9079f73a6e2b735527a3a7118603ff2bb0068b":{"mtime_secs":1767994305,"mtime_nanos":375725000,"lines":1},"docs/python-sdk/fastmcp-server-middleware-rate_limiting.mdx":{"mtime_secs":1767910209,"mtime_nanos":957619908,"lines":97},"src/fastmcp/server/transforms/tool_transform.py":{"mtime_secs":1768273914,"mtime_nanos":448749020,"lines":94},"src/fastmcp/exceptions.py":{"mtime_secs":1768267998,"mtime_nanos":897398697,"lines":43},"src/fastmcp/contrib/mcp_mixin/example.py":{"mtime_secs":1767910209,"mtime_nanos":980202079,"lines":52},"src/fastmcp/server/auth/providers/google.py":{"mtime_secs":1767910209,"mtime_nanos":984075157,"lines":278},"tests/server/test_server_docket.py":{"mtime_secs":1768091029,"mtime_nanos":870620842,"lines":227},"src/fastmcp/client/messages.py":{"mtime_secs":1767910209,"mtime_nanos":977857807,"lines":128},".git/packed-refs":{"mtime_secs":1768008006,"mtime_nanos":500897988,"lines":145},"examples/custom_tool_serializer_decorator.py":{"mtime_secs":1767910209,"mtime_nanos":970512529,"lines":72},"examples/smart_home/src/smart_home/settings.py":{"mtime_secs":1767910209,"mtime_nanos":973653059,"lines":12},"docs/servers/providers/local.mdx":{"mtime_secs":1768273914,"mtime_nanos":435480166,"lines":160},"tests/server/tasks/test_resource_task_meta_parameter.py":{"mtime_secs":1767910210,"mtime_nanos":8588638,"lines":287},"docs/development/contributing.mdx":{"mtime_secs":1767910209,"mtime_nanos":943504442,"lines":187},"tests/server/tasks/test_task_return_types.py":{"mtime_secs":1767910210,"mtime_nanos":9705148,"lines":662},"src/fastmcp/server/tasks/keys.py":{"mtime_secs":1768065435,"mtime_nanos":793456949,"lines":91},"examples/auth/scalekit_oauth/README.md":{"mtime_secs":1767910209,"mtime_nanos":969833523,"lines":55},"tests/server/middleware/test_tool_injection.py":{"mtime_secs":1768273914,"mtime_nanos":456109327,"lines":509},"src/fastmcp/contrib/component_manager/example.py":{"mtime_secs":1767910209,"mtime_nanos":979920868,"lines":59},"tests/server/test_logging.py":{"mtime_secs":1767910210,"mtime_nanos":10930826,"lines":192},".git/objects/de/5a3ce3e2f6bcf15d55b07022fc07537797de81":{"mtime_secs":1768052340,"mtime_nanos":63993054,"lines":1},".git/refs/heads/main":{"mtime_secs":1768307169,"mtime_nanos":292258069,"lines":1},"docs/servers/providers/overview.mdx":{"mtime_secs":1768273914,"mtime_nanos":436692676,"lines":80},"tests/deprecated/test_deprecated.py":{"mtime_secs":1767910209,"mtime_nanos":999277675,"lines":48},"tests/utilities/test_cli.py":{"mtime_secs":1767910210,"mtime_nanos":13466600,"lines":195},"docs/python-sdk/fastmcp-server-sampling-sampling_tool.mdx":{"mtime_secs":1767910209,"mtime_nanos":959157548,"lines":76},"src/fastmcp/client/sampling/__init__.py":{"mtime_secs":1767910209,"mtime_nanos":978238352,"lines":69},"docs/python-sdk/fastmcp-server-http.mdx":{"mtime_secs":1767910209,"mtime_nanos":956912152,"lines":106},"docs/servers/providers/mounting.mdx":{"mtime_secs":1768273914,"mtime_nanos":436124922,"lines":309},"docs/servers/visibility.mdx":{"mtime_secs":1768273914,"mtime_nanos":438443314,"lines":315},".git/objects/dc/2aab1e6a4c598aff1a536e7f1c055effb9180c":{"mtime_secs":1767994445,"mtime_nanos":248328183,"lines":2},"tests/server/auth/providers/test_scalekit.py":{"mtime_secs":1767910210,"mtime_nanos":2193077,"lines":220},"tests/server/providers/openapi/test_deepobject_style.py":{"mtime_secs":1767910210,"mtime_nanos":6122865,"lines":346},"src/fastmcp/utilities/mcp_server_config/v1/sources/base.py":{"mtime_secs":1767910209,"mtime_nanos":992359110,"lines":29},"docs/python-sdk/fastmcp-utilities-openapi-parser.mdx":{"mtime_secs":1767910209,"mtime_nanos":962271494,"lines":43},"examples/atproto_mcp/README.md":{"mtime_secs":1767910209,"mtime_nanos":966418699,"lines":156},".github/pull_request_template.md":{"mtime_secs":1767910209,"mtime_nanos":925329438,"lines":28},"tests/client/test_openapi.py":{"mtime_secs":1767910209,"mtime_nanos":997398366,"lines":202},"docs/clients/logging.mdx":{"mtime_secs":1767910209,"mtime_nanos":941466506,"lines":111},".git/objects/c1/12657274e038c4e3410b611169802645ea4497":{"mtime_secs":1768136535,"mtime_nanos":142455545,"lines":5},".git/objects/eb/9c9b95e3d66491a629f384bead15039ca1876f":{"mtime_secs":1768275801,"mtime_nanos":181061270,"lines":3},"src/fastmcp/server/auth/providers/oci.py":{"mtime_secs":1767910209,"mtime_nanos":984547203,"lines":170},".git/objects/e3/a8a4a2e6f845a16028b93ea74d70136b5162a3":{"mtime_secs":1767923559,"mtime_nanos":76282333,"lines":2},"tests/server/tasks/test_server_tasks_parameter.py":{"mtime_secs":1767910210,"mtime_nanos":8657055,"lines":388},"tests/client/test_sampling.py":{"mtime_secs":1767910209,"mtime_nanos":997618034,"lines":1002},"tests/client/test_progress.py":{"mtime_secs":1767910209,"mtime_nanos":997459283,"lines":70},"tests/client/tasks/test_client_task_notifications.py":{"mtime_secs":1767910209,"mtime_nanos":996339981,"lines":209},"examples/auth/azure_oauth/client.py":{"mtime_secs":1767910209,"mtime_nanos":968465052,"lines":32},"tests/server/test_icons.py":{"mtime_secs":1767910210,"mtime_nanos":10713533,"lines":342},"tests/server/tasks/test_task_proxy.py":{"mtime_secs":1767910210,"mtime_nanos":9575980,"lines":169},"docs/python-sdk/fastmcp-server-tasks-config.mdx":{"mtime_secs":1767910209,"mtime_nanos":959449842,"lines":91},".git/objects/c1/27dd979fd3b0b901db73662cfe9e5a9d6f7e95":{"mtime_secs":1768232585,"mtime_nanos":565466942,"lines":1},"examples/atproto_mcp/src/atproto_mcp/py.typed":{"mtime_secs":1767910209,"mtime_nanos":967425584,"lines":0},"tests/cli/test_project_prepare.py":{"mtime_secs":1767910209,"mtime_nanos":994755966,"lines":306},"tests/server/providers/openapi/test_parameter_collisions.py":{"mtime_secs":1767910210,"mtime_nanos":6721579,"lines":225},"docs/python-sdk/fastmcp-cli-install-gemini_cli.mdx":{"mtime_secs":1767910209,"mtime_nanos":952120690,"lines":68},"tests/server/tasks/test_task_tools.py":{"mtime_secs":1767910210,"mtime_nanos":9922317,"lines":102},"tests/client/tasks/conftest.py":{"mtime_secs":1767910209,"mtime_nanos":996082770,"lines":3},"tests/cli/test_config.py":{"mtime_secs":1767910209,"mtime_nanos":994129210,"lines":461},"examples/testing_demo/tests/test_server.py":{"mtime_secs":1767910209,"mtime_nanos":974626193,"lines":160},"examples/atproto_mcp/src/atproto_mcp/_atproto/_profile.py":{"mtime_secs":1767910209,"mtime_nanos":967258041,"lines":33},"docs/assets/schemas/mcp_server_config/latest.json":{"mtime_secs":1767910209,"mtime_nanos":939489571,"lines":348},"tests/server/providers/openapi/test_comprehensive.py":{"mtime_secs":1767910210,"mtime_nanos":5668985,"lines":741},".git/objects/87/b0d87df4d64af89a01cf2e756dd129194dd17d":{"mtime_secs":1768239135,"mtime_nanos":975651666,"lines":3},"src/fastmcp/prompts/__init__.py":{"mtime_secs":1768273914,"mtime_nanos":440717874,"lines":12},"tests/server/test_input_validation.py":{"mtime_secs":1767910210,"mtime_nanos":10779575,"lines":365},"logo.py":{"mtime_secs":1767910209,"mtime_nanos":975379367,"lines":25},"tests/server/providers/test_base_provider.py":{"mtime_secs":1768273914,"mtime_nanos":456788916,"lines":79},"docs/python-sdk/fastmcp-utilities-visibility.mdx":{"mtime_secs":1767910209,"mtime_nanos":962630289,"lines":86},"docs/python-sdk/fastmcp-utilities-ui.mdx":{"mtime_secs":1767910209,"mtime_nanos":962563413,"lines":140},"docs/python-sdk/fastmcp-resources-template.mdx":{"mtime_secs":1767910209,"mtime_nanos":954408545,"lines":238},"tests/server/test_auth_integration.py":{"mtime_secs":1767910210,"mtime_nanos":10156111,"lines":1242},"examples/get_file.py":{"mtime_secs":1767910209,"mtime_nanos":971439871,"lines":39},".git/objects/e5/2eb8258e13ea178e85c5067fd082b1c44ec2dd":{"mtime_secs":1768264034,"mtime_nanos":516252135,"lines":1},"tests/cli/test_install.py":{"mtime_secs":1767910209,"mtime_nanos":994379629,"lines":313},"tests/contrib/test_component_manager.py":{"mtime_secs":1767910209,"mtime_nanos":998586085,"lines":767},".git/refs/heads/docs/v3-features":{"mtime_secs":1767969249,"mtime_nanos":769250202,"lines":1},"examples/echo.py":{"mtime_secs":1767910209,"mtime_nanos":970660156,"lines":30},"docs/python-sdk/fastmcp-server-openapi-components.mdx":{"mtime_secs":1767910209,"mtime_nanos":957905244,"lines":12},"tests/resources/test_resources.py":{"mtime_secs":1768275463,"mtime_nanos":447592187,"lines":356},"examples/smart_home/src/smart_home/lights/server.py":{"mtime_secs":1767966312,"mtime_nanos":925762092,"lines":318},"tests/utilities/test_components.py":{"mtime_secs":1767910210,"mtime_nanos":13544851,"lines":397},"docs/getting-started/installation.mdx":{"mtime_secs":1768065435,"mtime_nanos":773145402,"lines":108},"src/fastmcp/utilities/openapi/schemas.py":{"mtime_secs":1767910209,"mtime_nanos":993300535,"lines":593},"tests/server/test_tool_annotations.py":{"mtime_secs":1767910210,"mtime_nanos":11624083,"lines":254},"docs/clients/sampling.mdx":{"mtime_secs":1767910209,"mtime_nanos":942082887,"lines":258},".git/objects/1b/723f302da048cc8f2239b36b56377bdb55bbcb":{"mtime_secs":1768273107,"mtime_nanos":883124144,"lines":3},".git/objects/8c/ba4cbc83f3ffda6351164f6c250f2ed089d292":{"mtime_secs":1768060130,"mtime_nanos":836709979,"lines":1},"tests/server/tasks/test_task_resources.py":{"mtime_secs":1767910210,"mtime_nanos":9633314,"lines":108},"docs/servers/auth/oidc-proxy.mdx":{"mtime_secs":1767910209,"mtime_nanos":963302212,"lines":265},"examples/atproto_mcp/src/atproto_mcp/_atproto/_posts.py":{"mtime_secs":1767910209,"mtime_nanos":967171331,"lines":420},"tests/client/test_sse.py":{"mtime_secs":1767910209,"mtime_nanos":997730827,"lines":200},".git/objects/07/d30483d73953e50aa6f4ac6f68952ba2ff4dc2":{"mtime_secs":1768250271,"mtime_nanos":586648207,"lines":2},"docs/python-sdk/fastmcp-server-tasks-__init__.mdx":{"mtime_secs":1767910209,"mtime_nanos":959328716,"lines":12},"src/fastmcp/server/auth/providers/discord.py":{"mtime_secs":1767910209,"mtime_nanos":983750362,"lines":247},"docs/python-sdk/fastmcp-server-auth-providers-discord.mdx":{"mtime_secs":1767910209,"mtime_nanos":955651598,"lines":66},"tests/server/auth/test_oauth_consent_flow.py":{"mtime_secs":1767910210,"mtime_nanos":2977001,"lines":1056},".git/objects/40/5708aad91a93c14d09d6c968f1e97a4ec65342":{"mtime_secs":1767927080,"mtime_nanos":432731822,"lines":2},".git/objects/cc/bc829ec456c3f0d9b46030f115f9537e3f18f8":{"mtime_secs":1768237034,"mtime_nanos":428248296,"lines":3},"src/fastmcp/client/sampling/handlers/openai.py":{"mtime_secs":1768275398,"mtime_nanos":609072954,"lines":399},".git/hooks/pre-merge-commit.sample":{"mtime_secs":1767910208,"mtime_nanos":710236963,"lines":13},"tests/server/tasks/test_task_metadata.py":{"mtime_secs":1767910210,"mtime_nanos":9168393,"lines":63},"tests/server/middleware/test_timing.py":{"mtime_secs":1767910210,"mtime_nanos":5259440,"lines":317},"docs/servers/providers/transforms.mdx":{"mtime_secs":1768273914,"mtime_nanos":437247180,"lines":405},"src/fastmcp/cli/__init__.py":{"mtime_secs":1767910209,"mtime_nanos":976035831,"lines":3},"docs/integrations/anthropic.mdx":{"mtime_secs":1767910209,"mtime_nanos":944458951,"lines":228},"src/fastmcp/server/sampling/__init__.py":{"mtime_secs":1767910209,"mtime_nanos":988707951,"lines":10},".git/hooks/applypatch-msg.sample":{"mtime_secs":1767910208,"mtime_nanos":709283745,"lines":15},"tests/server/providers/openapi/test_openapi_features.py":{"mtime_secs":1767910210,"mtime_nanos":6487285,"lines":414},"tests/server/middleware/test_logging.py":{"mtime_secs":1767910210,"mtime_nanos":4915603,"lines":670},"src/fastmcp/utilities/mcp_server_config/__init__.py":{"mtime_secs":1767910209,"mtime_nanos":991568102,"lines":25},"src/fastmcp/server/auth/middleware.py":{"mtime_secs":1767910209,"mtime_nanos":982585310,"lines":96},".git/objects/f3/d6ef1b75fc9547e8207dbc27f7bc3f1243a8f8":{"mtime_secs":1768260294,"mtime_nanos":941960828,"lines":3},"v3-notes/provider-architecture.md":{"mtime_secs":1767910210,"mtime_nanos":15284076,"lines":116},"tests/deprecated/test_tool_serializer.py":{"mtime_secs":1767910209,"mtime_nanos":999675470,"lines":185},".git/hooks/pre-push.sample":{"mtime_secs":1767910208,"mtime_nanos":710809135,"lines":53},"tests/integration_tests/test_timeout_fix.py":{"mtime_secs":1768258809,"mtime_nanos":251733807,"lines":51},".git/objects/ff/633b567d8765e0d017965eca9618ab06084e7b":{"mtime_secs":1768062579,"mtime_nanos":791355786,"lines":1},"docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-environments-__init__.mdx":{"mtime_secs":1767910209,"mtime_nanos":961324776,"lines":9},"tests/cli/test_shared.py":{"mtime_secs":1767910209,"mtime_nanos":995183886,"lines":29},"tests/client/tasks/test_client_resource_tasks.py":{"mtime_secs":1767910209,"mtime_nanos":996234896,"lines":108},"tests/utilities/test_inspect.py":{"mtime_secs":1767910210,"mtime_nanos":13635102,"lines":1111},"docs/python-sdk/fastmcp-client-roots.mdx":{"mtime_secs":1767910209,"mtime_nanos":953280451,"lines":20},"docs/python-sdk/fastmcp-utilities-openapi-schemas.mdx":{"mtime_secs":1767910209,"mtime_nanos":962333327,"lines":43},"tests/cli/test_cli.py":{"mtime_secs":1767910209,"mtime_nanos":994032501,"lines":618},".git/objects/41/0ea090cfe37e1db2c504e490202ec5dcaa142e":{"mtime_secs":1768062579,"mtime_nanos":780660422,"lines":2},"src/fastmcp/utilities/logging.py":{"mtime_secs":1767910209,"mtime_nanos":991394559,"lines":230},"src/fastmcp/contrib/mcp_mixin/__init__.py":{"mtime_secs":1767910209,"mtime_nanos":980134245,"lines":8},"tests/server/tasks/test_task_prompts.py":{"mtime_secs":1767910210,"mtime_nanos":9422479,"lines":92},"docs/integrations/gemini-cli.mdx":{"mtime_secs":1767910209,"mtime_nanos":945929715,"lines":174},".git/objects/ff/7c37d39c39be4edf7bdc7334b7b6784b20d40b":{"mtime_secs":1767980392,"mtime_nanos":422200587,"lines":1},"tests/server/auth/providers/test_supabase.py":{"mtime_secs":1767910210,"mtime_nanos":2284328,"lines":202},"examples/auth/github_oauth/README.md":{"mtime_secs":1767910209,"mtime_nanos":969038641,"lines":31},".github/release.yml":{"mtime_secs":1767910209,"mtime_nanos":925387105,"lines":47},"src/fastmcp/server/auth/auth.py":{"mtime_secs":1767910209,"mtime_nanos":982233390,"lines":558},"examples/tasks/server.py":{"mtime_secs":1767910209,"mtime_nanos":974223731,"lines":75},"src/fastmcp/server/middleware/tool_injection.py":{"mtime_secs":1767910209,"mtime_nanos":986907600,"lines":116},"examples/complex_inputs.py":{"mtime_secs":1767910209,"mtime_nanos":970366070,"lines":30},"docs/public/schemas/fastmcp.json/latest.json":{"mtime_secs":1767910209,"mtime_nanos":951495059,"lines":365},"examples/fastmcp_config_demo/server.py":{"mtime_secs":1767910209,"mtime_nanos":971338662,"lines":70},"tests/contrib/test_bulk_tool_caller.py":{"mtime_secs":1767910209,"mtime_nanos":998498209,"lines":288},".git/hooks/sendemail-validate.sample":{"mtime_secs":1767910208,"mtime_nanos":708929117,"lines":77},"tests/server/middleware/test_initialization_middleware.py":{"mtime_secs":1767910210,"mtime_nanos":4816977,"lines":377},".git/info/exclude":{"mtime_secs":1767910208,"mtime_nanos":707674272,"lines":6},"tests/client/sampling/handlers/test_openai_handler.py":{"mtime_secs":1767910209,"mtime_nanos":995983144,"lines":100},"docs/python-sdk/fastmcp-utilities-openapi-models.mdx":{"mtime_secs":1767910209,"mtime_nanos":962199493,"lines":35},"README.md":{"mtime_secs":1767910209,"mtime_nanos":926876660,"lines":515},"src/fastmcp/server/tasks/__init__.py":{"mtime_secs":1767910209,"mtime_nanos":989433624,"lines":22},".git/hooks/pre-applypatch.sample":{"mtime_secs":1767910208,"mtime_nanos":710476631,"lines":14},"docs/python-sdk/fastmcp-cli-install-claude_code.mdx":{"mtime_secs":1767910209,"mtime_nanos":951940605,"lines":71},"tests/server/tasks/conftest.py":{"mtime_secs":1767910210,"mtime_nanos":8271426,"lines":3},"src/fastmcp/server/auth/providers/introspection.py":{"mtime_secs":1767910209,"mtime_nanos":984330951,"lines":232},"tests/cli/test_tasks.py":{"mtime_secs":1767910209,"mtime_nanos":995257804,"lines":51},"docs/integrations/scalekit.mdx":{"mtime_secs":1767910209,"mtime_nanos":950470966,"lines":156},"src/fastmcp/server/openapi/components.py":{"mtime_secs":1767910209,"mtime_nanos":987083310,"lines":28},".git/objects/c0/51569de5b770348628df23c2f84594a484428c":{"mtime_secs":1768065435,"mtime_nanos":682174277,"lines":2},"src/fastmcp/contrib/README.md":{"mtime_secs":1767910209,"mtime_nanos":978996318,"lines":19},"docs/clients/tools.mdx":{"mtime_secs":1767910209,"mtime_nanos":942310347,"lines":295},"docs/python-sdk/fastmcp-resources-types.mdx":{"mtime_secs":1767910209,"mtime_nanos":954495420,"lines":134},".git/objects/b3/78331fafc94d484d48d0f4f01ac0c687559a15":{"mtime_secs":1768091029,"mtime_nanos":664477613,"lines":2},"docs/python-sdk/fastmcp-server-dependencies.mdx":{"mtime_secs":1767910209,"mtime_nanos":956670108,"lines":262},"src/fastmcp/server/__init__.py":{"mtime_secs":1768065435,"mtime_nanos":788985319,"lines":6},"docs/community/README.md":{"mtime_secs":1767910209,"mtime_nanos":942496057,"lines":22},"docs/python-sdk/fastmcp-client-logging.mdx":{"mtime_secs":1767910209,"mtime_nanos":952942739,"lines":24},".pre-commit-config.yaml":{"mtime_secs":1768307298,"mtime_nanos":259500063,"lines":55},".git/objects/81/adcdcb7c774850074e85fb0fa4b4a85d132af5":{"mtime_secs":1768248151,"mtime_nanos":545778925,"lines":4},"docs/python-sdk/fastmcp-server-auth-providers-in_memory.mdx":{"mtime_secs":1767910209,"mtime_nanos":955890184,"lines":96},".git/objects/4f/bd5ed99f52aae16d807b592b43b0fdaa5824df":{"mtime_secs":1768093424,"mtime_nanos":848695151,"lines":2},".git/objects/e7/42cfb59a305cd014e1b332a2a5fd080f6da783":{"mtime_secs":1768065435,"mtime_nanos":693951109,"lines":1},"docs/python-sdk/fastmcp-server-elicitation.mdx":{"mtime_secs":1768065435,"mtime_nanos":779122840,"lines":145},"src/fastmcp/utilities/openapi/formatters.py":{"mtime_secs":1767910209,"mtime_nanos":992885407,"lines":389},"examples/auth/aws_oauth/README.md":{"mtime_secs":1767910209,"mtime_nanos":968091465,"lines":47},"src/fastmcp/utilities/openapi/models.py":{"mtime_secs":1767910209,"mtime_nanos":993090367,"lines":88},"src/fastmcp/resources/__init__.py":{"mtime_secs":1768273914,"mtime_nanos":441763591,"lines":24},"docs/css/banner.css":{"mtime_secs":1767910209,"mtime_nanos":942669476,"lines":67},"src/fastmcp/cli/cli.py":{"mtime_secs":1768258809,"mtime_nanos":243879670,"lines":957},"docs/development/v3-notes/v3-features.mdx":{"mtime_secs":1768273914,"mtime_nanos":433838987,"lines":539},"src/fastmcp/contrib/component_manager/README.md":{"mtime_secs":1767910209,"mtime_nanos":979545406,"lines":170},".git/objects/b8/91305e65b62f19eeffc83ab0cb654a0ea2891c":{"mtime_secs":1768137600,"mtime_nanos":542451715,"lines":3},"src/fastmcp/server/middleware/error_handling.py":{"mtime_secs":1767910209,"mtime_nanos":986327803,"lines":210},"examples/auth/mounted/client.py":{"mtime_secs":1767910209,"mtime_nanos":969622104,"lines":50},"tests/resources/test_standalone_decorator.py":{"mtime_secs":1768273914,"mtime_nanos":455366988,"lines":154},".git/objects/50/efa27eb0bb623fce9db94455ec83ee0fd6f243":{"mtime_secs":1768137020,"mtime_nanos":832057407,"lines":2},"docs/python-sdk/fastmcp-server-low_level.mdx":{"mtime_secs":1767910209,"mtime_nanos":956974902,"lines":83},"docs/python-sdk/fastmcp-server-auth-providers-workos.mdx":{"mtime_secs":1767910209,"mtime_nanos":956390605,"lines":102},"tests/server/test_streamable_http_no_redirect.py":{"mtime_secs":1767910210,"mtime_nanos":11504748,"lines":85},"docs/python-sdk/fastmcp-server-tasks-keys.mdx":{"mtime_secs":1768065435,"mtime_nanos":780571022,"lines":89},"docs/integrations/claude-desktop.mdx":{"mtime_secs":1768065435,"mtime_nanos":773611157,"lines":299},"examples/tool_result_echo.py":{"mtime_secs":1767910209,"mtime_nanos":975231865,"lines":41},"docs/python-sdk/fastmcp-tools-__init__.mdx":{"mtime_secs":1767910209,"mtime_nanos":959998597,"lines":8},".cursor/rules/core-mcp-objects.mdc":{"mtime_secs":1768258809,"mtime_nanos":230499327,"lines":13},"docs/servers/auth/authentication.mdx":{"mtime_secs":1767910209,"mtime_nanos":962792123,"lines":216},"docs/servers/tools.mdx":{"mtime_secs":1768273914,"mtime_nanos":438023311,"lines":1040},"docs/tutorials/rest-api.mdx":{"mtime_secs":1767910209,"mtime_nanos":966102071,"lines":203},"src/fastmcp/server/auth/providers/github.py":{"mtime_secs":1767910209,"mtime_nanos":983912989,"lines":240},"src/fastmcp/server/providers/openapi/routing.py":{"mtime_secs":1767910209,"mtime_nanos":988211654,"lines":109},"examples/filesystem-provider/mcp/tools/calculator.py":{"mtime_secs":1768065435,"mtime_nanos":784557439,"lines":24},"examples/mount_example.py":{"mtime_secs":1767910209,"mtime_nanos":971860417,"lines":111},"docs/python-sdk/fastmcp-server-auth-auth.mdx":{"mtime_secs":1768065435,"mtime_nanos":777532531,"lines":279},"tests/utilities/test_logging.py":{"mtime_secs":1767910210,"mtime_nanos":13941146,"lines":56},".github/ISSUE_TEMPLATE/enhancement.yml":{"mtime_secs":1767910209,"mtime_nanos":925150269,"lines":34},".git/objects/24/edfdf9c8de9c126bfdb7729d9b07045c5194ba":{"mtime_secs":1768260294,"mtime_nanos":897853065,"lines":2},"src/fastmcp/server/middleware/rate_limiting.py":{"mtime_secs":1767910209,"mtime_nanos":986740807,"lines":231},"tests/server/middleware/test_ping.py":{"mtime_secs":1768091029,"mtime_nanos":869390580,"lines":241},"tests/server/tasks/test_task_protocol.py":{"mtime_secs":1767910210,"mtime_nanos":9487438,"lines":81},"src/fastmcp/server/tasks/subscriptions.py":{"mtime_secs":1768275412,"mtime_nanos":374665205,"lines":212},"examples/smart_home/src/smart_home/py.typed":{"mtime_secs":1767910209,"mtime_nanos":973567933,"lines":0},"examples/config_server.py":{"mtime_secs":1767910209,"mtime_nanos":970438737,"lines":46},"src/fastmcp/server/openapi/__init__.py":{"mtime_secs":1767910209,"mtime_nanos":986999268,"lines":55},"tests/server/auth/test_oauth_mounting.py":{"mtime_secs":1767910210,"mtime_nanos":3070377,"lines":380},"docs/python-sdk/fastmcp-server-providers-base.mdx":{"mtime_secs":1767910209,"mtime_nanos":958254497,"lines":264},"tests/deprecated/openapi/test_openapi.py":{"mtime_secs":1767910209,"mtime_nanos":999024506,"lines":170},"tests/server/auth/test_auth_provider.py":{"mtime_secs":1767910210,"mtime_nanos":2489414,"lines":105},"src/fastmcp/utilities/mcp_server_config/v1/environments/uv.py":{"mtime_secs":1767910209,"mtime_nanos":992003815,"lines":271},"docs/python-sdk/fastmcp-server-auth-providers-supabase.mdx":{"mtime_secs":1768065435,"mtime_nanos":778338040,"lines":67},"src/fastmcp/mcp_config.py":{"mtime_secs":1768273914,"mtime_nanos":440422955,"lines":347},"docs/servers/storage-backends.mdx":{"mtime_secs":1767910209,"mtime_nanos":965258063,"lines":275},"tests/server/tasks/test_task_config.py":{"mtime_secs":1767910210,"mtime_nanos":8878557,"lines":393},"tests/utilities/openapi/__init__.py":{"mtime_secs":1767910210,"mtime_nanos":12415174,"lines":1},"src/fastmcp/contrib/bulk_tool_caller/README.md":{"mtime_secs":1767910209,"mtime_nanos":979124569,"lines":35},".git/objects/59/2d0dad58b8002509e9f9f06a8cdfb79e0d1dab":{"mtime_secs":1768239135,"mtime_nanos":941631237,"lines":2},"docs/servers/progress.mdx":{"mtime_secs":1767910209,"mtime_nanos":964130844,"lines":189},"tests/server/auth/test_oauth_proxy_redirect_validation.py":{"mtime_secs":1767910210,"mtime_nanos":3339088,"lines":201},"src/fastmcp/_vendor/docket_di/__init__.py":{"mtime_secs":1768091029,"mtime_nanos":862366764,"lines":163},"src/fastmcp/server/proxy.py":{"mtime_secs":1767910209,"mtime_nanos":988580366,"lines":41},"examples/auth/workos_oauth/README.md":{"mtime_secs":1767910209,"mtime_nanos":970071234,"lines":27},"tests/client/auth/test_oauth_client.py":{"mtime_secs":1767910209,"mtime_nanos":995588932,"lines":358},"docs/python-sdk/fastmcp-server-providers-openapi-__init__.mdx":{"mtime_secs":1767910209,"mtime_nanos":958510542,"lines":23},"docs/python-sdk/fastmcp-server-auth-__init__.mdx":{"mtime_secs":1767910209,"mtime_nanos":954643088,"lines":8},".github/workflows/marvin-label-triage.yml":{"mtime_secs":1767966312,"mtime_nanos":628909164,"lines":146},"examples/atproto_mcp/src/atproto_mcp/server.py":{"mtime_secs":1767910209,"mtime_nanos":967541751,"lines":149},"docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-sources-filesystem.mdx":{"mtime_secs":1767910209,"mtime_nanos":961820823,"lines":37},"docs/python-sdk/fastmcp-server-openapi-__init__.mdx":{"mtime_secs":1767910209,"mtime_nanos":957844785,"lines":27},"tests/server/test_run_server.py":{"mtime_secs":1767910210,"mtime_nanos":11204996,"lines":98},".git/objects/f8/d9010672351b6167eef945a77d6070afaf64ce":{"mtime_secs":1768065435,"mtime_nanos":673484560,"lines":2},"docs/python-sdk/fastmcp-client-sampling-handlers-__init__.mdx":{"mtime_secs":1767910209,"mtime_nanos":953418535,"lines":8},"docs/python-sdk/fastmcp-server-providers-fastmcp_provider.mdx":{"mtime_secs":1767910209,"mtime_nanos":958383124,"lines":302},"docs/css/style.css":{"mtime_secs":1767910209,"mtime_nanos":942789518,"lines":20},"src/fastmcp/utilities/mcp_server_config/v1/environments/__init__.py":{"mtime_secs":1767910209,"mtime_nanos":991794771,"lines":6},"tests/fs/test_provider.py":{"mtime_secs":1768065435,"mtime_nanos":794991090,"lines":421},"tests/client/auth/__init__.py":{"mtime_secs":1767910209,"mtime_nanos":995499598,"lines":0},".git/objects/d4/9a61f5bcb362f24223a4f661810a9b99a5a488":{"mtime_secs":1767994445,"mtime_nanos":252684078,"lines":2},"examples/filesystem-provider/server.py":{"mtime_secs":1768065435,"mtime_nanos":784861734,"lines":29},"tests/server/auth/test_remote_auth_provider.py":{"mtime_secs":1767910210,"mtime_nanos":3773259,"lines":485},".git/objects/1d/6120c42e970f0f6a8fd3d2a598c0b44aee49a9":{"mtime_secs":1768274986,"mtime_nanos":132346000,"lines":2},".git/hooks/prepare-commit-msg.sample":{"mtime_secs":1767910208,"mtime_nanos":709952752,"lines":42},"tests/client/test_logs.py":{"mtime_secs":1767910209,"mtime_nanos":997087988,"lines":242},"src/fastmcp/server/providers/__init__.py":{"mtime_secs":1768273914,"mtime_nanos":443672230,"lines":59},"examples/memory.fastmcp.json":{"mtime_secs":1767910209,"mtime_nanos":971591748,"lines":7},"docs/python-sdk/fastmcp-server-middleware-caching.mdx":{"mtime_secs":1767910209,"mtime_nanos":957244946,"lines":221},".git/objects/92/05b08279f6a5a450c93d8d7dc8c66475ea9892":{"mtime_secs":1768091029,"mtime_nanos":673956202,"lines":6},"src/fastmcp/cli/install/gemini_cli.py":{"mtime_secs":1767910209,"mtime_nanos":976730005,"lines":237},"tests/server/http/test_http_middleware.py":{"mtime_secs":1767910210,"mtime_nanos":4386306,"lines":234},"docs/python-sdk/fastmcp-server-openapi-server.mdx":{"mtime_secs":1767910209,"mtime_nanos":958024704,"lines":43},"tests/tools/test_standalone_decorator.py":{"mtime_secs":1768275439,"mtime_nanos":418338078,"lines":138},"docs/python-sdk/fastmcp-settings.mdx":{"mtime_secs":1767910209,"mtime_nanos":959928388,"lines":50},"docs/integrations/github.mdx":{"mtime_secs":1767910209,"mtime_nanos":946128633,"lines":176},"tests/client/test_streamable_http.py":{"mtime_secs":1767910209,"mtime_nanos":997986163,"lines":271},"docs/public/schemas/fastmcp.json/v1.json":{"mtime_secs":1767910209,"mtime_nanos":951616102,"lines":365},"docs/servers/providers/proxy.mdx":{"mtime_secs":1768065435,"mtime_nanos":783643971,"lines":301},"tests/client/sampling/handlers/test_anthropic_handler.py":{"mtime_secs":1767910209,"mtime_nanos":995913727,"lines":247},"examples/atproto_mcp/src/atproto_mcp/__main__.py":{"mtime_secs":1767910209,"mtime_nanos":966907829,"lines":9},"docs/assets/schemas/mcp_server_config/v1.json":{"mtime_secs":1767910209,"mtime_nanos":939610864,"lines":348},"src/fastmcp/prompts/function_prompt.py":{"mtime_secs":1768275399,"mtime_nanos":600096498,"lines":449},"examples/smart_home/pyproject.toml":{"mtime_secs":1767910209,"mtime_nanos":973064428,"lines":19},"tests/client/test_oauth_callback_xss.py":{"mtime_secs":1767910209,"mtime_nanos":997307573,"lines":159},"docs/python-sdk/fastmcp-client-messages.mdx":{"mtime_secs":1767910209,"mtime_nanos":953050615,"lines":107},"examples/atproto_mcp/src/atproto_mcp/_atproto/_social.py":{"mtime_secs":1767910209,"mtime_nanos":967394458,"lines":108},".git/logs/refs/remotes/origin/consolidate-tool-transforms":{"mtime_secs":1768273613,"mtime_nanos":507273178,"lines":18},"examples/auth/github_oauth/server.py":{"mtime_secs":1767910209,"mtime_nanos":969166267,"lines":35},"examples/screenshot.py":{"mtime_secs":1767910209,"mtime_nanos":972703258,"lines":34},"tests/server/providers/openapi/__init__.py":{"mtime_secs":1767910210,"mtime_nanos":5586401,"lines":1},"docs/tutorials/mcp.mdx":{"mtime_secs":1767910209,"mtime_nanos":965996779,"lines":120},"tests/deprecated/__init__.py":{"mtime_secs":1767910209,"mtime_nanos":998823837,"lines":1},"src/fastmcp/contrib/bulk_tool_caller/__init__.py":{"mtime_secs":1767910209,"mtime_nanos":979201236,"lines":3},"tests/client/test_notifications.py":{"mtime_secs":1768275422,"mtime_nanos":287907709,"lines":556},".git/objects/b4/7896b09cafd1e4cc9842989e81be260587794e":{"mtime_secs":1768267926,"mtime_nanos":984003065,"lines":2},"src/fastmcp/server/tasks/handlers.py":{"mtime_secs":1768275412,"mtime_nanos":311074872,"lines":157},"tests/client/tasks/test_task_context_validation.py":{"mtime_secs":1767910209,"mtime_nanos":996601025,"lines":210},"docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-sources-__init__.mdx":{"mtime_secs":1767910209,"mtime_nanos":961695196,"lines":8},".git/objects/22/c76d09a8464e9a804f410fa924f7561f6cbd09":{"mtime_secs":1768250271,"mtime_nanos":584234730,"lines":1},".git/HEAD":{"mtime_secs":1768274985,"mtime_nanos":556264810,"lines":1},"tests/server/auth/test_oauth_proxy.py":{"mtime_secs":1767910210,"mtime_nanos":3208920,"lines":1899},"src/fastmcp/utilities/mcp_server_config/v1/schema.json":{"mtime_secs":1767910209,"mtime_nanos":992200484,"lines":365},".git/objects/c3/53e943d6333c628c16a10a9e4f1e33f823e692":{"mtime_secs":1768092842,"mtime_nanos":316929328,"lines":1},"docs/clients/resources.mdx":{"mtime_secs":1767910209,"mtime_nanos":941839676,"lines":204},"tests/server/auth/providers/__init__.py":{"mtime_secs":1767910210,"mtime_nanos":1390487,"lines":0},".git/objects/54/fdf5869298aba0a93a0a729b2da3050a6554a8":{"mtime_secs":1768062579,"mtime_nanos":837677255,"lines":2},".git/objects/4f/f5f87468426a2dde6d5c25e38ad49397e5f23e":{"mtime_secs":1768076204,"mtime_nanos":852890704,"lines":1},".git/objects/b3/42b8df0618b78a6a2de5b884a64e23c2be68d3":{"mtime_secs":1767969249,"mtime_nanos":767370869,"lines":1},"examples/smart_home/lights.fastmcp.json":{"mtime_secs":1767910209,"mtime_nanos":972989303,"lines":9},"tests/utilities/test_version_check.py":{"mtime_secs":1768258809,"mtime_nanos":253462361,"lines":315},"docs/python-sdk/fastmcp-server-auth-providers-azure.mdx":{"mtime_secs":1767910209,"mtime_nanos":955435012,"lines":70},".git/objects/be/91b6879d10acd18f93082b754c7a40a6d39c0d":{"mtime_secs":1767924161,"mtime_nanos":31520224,"lines":3},".git/objects/2a/b252054735a46f7cfddd7df8717960078336ff":{"mtime_secs":1767979182,"mtime_nanos":99591203,"lines":1},"examples/smart_home/src/smart_home/lights/hue_utils.py":{"mtime_secs":1767910209,"mtime_nanos":973462974,"lines":34},"tests/server/test_file_server.py":{"mtime_secs":1767910210,"mtime_nanos":10591323,"lines":134},"docs/python-sdk/fastmcp-utilities-inspect.mdx":{"mtime_secs":1767910209,"mtime_nanos":960831480,"lines":143},".git/refs/remotes/origin/extract-parsedfunction":{"mtime_secs":1768307169,"mtime_nanos":50322937,"lines":1},".git/refs/remotes/origin/HEAD":{"mtime_secs":1768307169,"mtime_nanos":239296625,"lines":1},"examples/smart_home/hub.fastmcp.json":{"mtime_secs":1767910209,"mtime_nanos":972926385,"lines":9},".git/objects/96/ce76a64c3cf09b157694aec6a7ebc0b30b03d3":{"mtime_secs":1768086974,"mtime_nanos":56235000,"lines":5},"docs/python-sdk/fastmcp-server-proxy.mdx":{"mtime_secs":1767910209,"mtime_nanos":958916837,"lines":14},"tests/utilities/test_typeadapter.py":{"mtime_secs":1767910210,"mtime_nanos":14133815,"lines":273},"docs/clients/prompts.mdx":{"mtime_secs":1767910209,"mtime_nanos":941722842,"lines":216},"docs/python-sdk/fastmcp-server-providers-openapi-provider.mdx":{"mtime_secs":1767910209,"mtime_nanos":958655209,"lines":94},"src/fastmcp/_vendor/__init__.py":{"mtime_secs":1768091029,"mtime_nanos":862090970,"lines":1},"examples/tasks/docker-compose.yml":{"mtime_secs":1767910209,"mtime_nanos":974155897,"lines":10},"docs/python-sdk/fastmcp-utilities-auth.mdx":{"mtime_secs":1767910209,"mtime_nanos":960472893,"lines":25},".git/logs/refs/remotes/origin/marvin/update-sdk-docs":{"mtime_secs":1768089463,"mtime_nanos":978178526,"lines":9},"tests/client/test_roots.py":{"mtime_secs":1767910209,"mtime_nanos":997526742,"lines":44},"examples/smart_home/src/smart_home/__init__.py":{"mtime_secs":1767910209,"mtime_nanos":973199055,"lines":3},".git/objects/2f/3cf47a6e5b38d74d38f94c7b01d45a1a45d7df":{"mtime_secs":1768065435,"mtime_nanos":674737781,"lines":4},".git/objects/50/23b9a6307492ec254f8d91cde94a95c4ad2838":{"mtime_secs":1768267926,"mtime_nanos":669355907,"lines":2},"docs/integrations/openai.mdx":{"mtime_secs":1767910209,"mtime_nanos":950235214,"lines":227},"tests/tools/__init__.py":{"mtime_secs":1767910210,"mtime_nanos":11842918,"lines":0},"src/fastmcp/utilities/json_schema.py":{"mtime_secs":1767966312,"mtime_nanos":634635197,"lines":401},".git/objects/fb/c0a3b35dd3df3d6e83c4b5164632a7ce8e50f4":{"mtime_secs":1768076785,"mtime_nanos":251090027,"lines":1},"src/fastmcp/cli/install/claude_code.py":{"mtime_secs":1767910209,"mtime_nanos":976420377,"lines":240},"src/fastmcp/server/dependencies.py":{"mtime_secs":1768275409,"mtime_nanos":847832657,"lines":908},"docs/python-sdk/fastmcp-server-sampling-run.mdx":{"mtime_secs":1767910209,"mtime_nanos":959035838,"lines":116},".git/refs/remotes/origin/consolidate-tool-transforms":{"mtime_secs":1768273613,"mtime_nanos":506487922,"lines":1},"v3-notes/visibility.md":{"mtime_secs":1767910210,"mtime_nanos":15599745,"lines":113},"tests/server/test_server_lifespan.py":{"mtime_secs":1768065435,"mtime_nanos":797942538,"lines":464},"tests/client/test_elicitation.py":{"mtime_secs":1767910209,"mtime_nanos":996938111,"lines":1132},"docs/development/upgrade-guide.mdx":{"mtime_secs":1768273914,"mtime_nanos":433401067,"lines":401},"tests/deprecated/conftest.py":{"mtime_secs":1767910209,"mtime_nanos":998886838,"lines":9},"docs/python-sdk/fastmcp-utilities-json_schema_type.mdx":{"mtime_secs":1767910209,"mtime_nanos":960965106,"lines":110},"docs/.ccignore":{"mtime_secs":1767910209,"mtime_nanos":927042704,"lines":2},"src/fastmcp/utilities/json_schema_type.py":{"mtime_secs":1768275640,"mtime_nanos":345539294,"lines":650},"docs/changelog.mdx":{"mtime_secs":1768258809,"mtime_nanos":238537549,"lines":2280},"examples/sampling/README.md":{"mtime_secs":1767910209,"mtime_nanos":972285171,"lines":62},"docs/python-sdk/fastmcp-utilities-mcp_server_config-v1-environments-uv.mdx":{"mtime_secs":1767910209,"mtime_nanos":961491570,"lines":45},"tests/server/test_context.py":{"mtime_secs":1768275525,"mtime_nanos":455869065,"lines":294},"examples/auth/github_oauth/client.py":{"mtime_secs":1767910209,"mtime_nanos":969101225,"lines":32},"docs/integrations/eunomia-authorization.mdx":{"mtime_secs":1767910209,"mtime_nanos":945746296,"lines":129},"src/fastmcp/server/auth/__init__.py":{"mtime_secs":1768267998,"mtime_nanos":902825982,"lines":39},"docs/python-sdk/fastmcp-dependencies.mdx":{"mtime_secs":1767910209,"mtime_nanos":953769580,"lines":14},"src/fastmcp/utilities/mcp_server_config/v1/__init__.py":{"mtime_secs":1767910209,"mtime_nanos":991637978,"lines":0},".git/refs/heads/feature/reload-flag":{"mtime_secs":1767927080,"mtime_nanos":440919312,"lines":1},"docs/python-sdk/fastmcp-client-sampling-handlers-openai.mdx":{"mtime_secs":1767910209,"mtime_nanos":953555870,"lines":17},".git/objects/15/ada0e0abca1bdd7c3e13fcdf6dd292f27d617c":{"mtime_secs":1768062579,"mtime_nanos":868791012,"lines":1},"tests/utilities/openapi/test_parser.py":{"mtime_secs":1767910210,"mtime_nanos":13193514,"lines":460},".git/objects/16/47fbea1a21e3f2b8384f4032724b2a4b994cca":{"mtime_secs":1768060130,"mtime_nanos":826156272,"lines":1},".git/objects/c8/2a2396c74b64e77bd7669372ac34bd8dfc680b":{"mtime_secs":1768157216,"mtime_nanos":347003934,"lines":3},"tests/server/auth/test_authorization.py":{"mtime_secs":1768267998,"mtime_nanos":912749711,"lines":604},"src/fastmcp/client/auth/oauth.py":{"mtime_secs":1767910209,"mtime_nanos":977478262,"lines":329},"src/fastmcp/cli/install/__init__.py":{"mtime_secs":1767910209,"mtime_nanos":976311792,"lines":22},"tests/server/providers/openapi/test_openapi_performance.py":{"mtime_secs":1767910210,"mtime_nanos":6598286,"lines":136},"examples/atproto_mcp/src/atproto_mcp/_atproto/__init__.py":{"mtime_secs":1767910209,"mtime_nanos":967014205,"lines":20},"tests/contrib/test_mcp_mixin.py":{"mtime_secs":1767910209,"mtime_nanos":998716003,"lines":339},"docs/servers/tasks.mdx":{"mtime_secs":1768091029,"mtime_nanos":860856583,"lines":253},"docs/integrations/fastapi.mdx":{"mtime_secs":1768065435,"mtime_nanos":774079745,"lines":445},".git/hooks/pre-receive.sample":{"mtime_secs":1767910208,"mtime_nanos":709805292,"lines":24},"docs/python-sdk/fastmcp-server-tasks-subscriptions.mdx":{"mtime_secs":1767910209,"mtime_nanos":959858012,"lines":36},"src/fastmcp/utilities/components.py":{"mtime_secs":1767910209,"mtime_nanos":990875679,"lines":184},"tests/server/test_providers.py":{"mtime_secs":1768273914,"mtime_nanos":460651113,"lines":439},"examples/smart_home/src/smart_home/lights/__init__.py":{"mtime_secs":1767910209,"mtime_nanos":973384390,"lines":0},"docs/python-sdk/fastmcp-utilities-json_schema.mdx":{"mtime_secs":1768065435,"mtime_nanos":781402780,"lines":79},"docs/python-sdk/fastmcp-server-tasks-requests.mdx":{"mtime_secs":1768065435,"mtime_nanos":780910525,"lines":89},"docs/python-sdk/fastmcp-utilities-lifespan.mdx":{"mtime_secs":1768065435,"mtime_nanos":781585199,"lines":36},"examples/sampling/tool_use.py":{"mtime_secs":1767910209,"mtime_nanos":972577174,"lines":125},"docs/docs.json":{"mtime_secs":1768273914,"mtime_nanos":434228823,"lines":589},"src/fastmcp/tools/function_tool.py":{"mtime_secs":1768275412,"mtime_nanos":805442386,"lines":411},"docs/servers/icons.mdx":{"mtime_secs":1767910209,"mtime_nanos":963789508,"lines":139},"tests/server/test_event_store.py":{"mtime_secs":1767910210,"mtime_nanos":10499114,"lines":238},"tests/utilities/openapi/test_nullable_fields.py":{"mtime_secs":1768275583,"mtime_nanos":811283856,"lines":385},"examples/in_memory_proxy_example.py":{"mtime_secs":1767910209,"mtime_nanos":971520789,"lines":82},".git/ORIG_HEAD":{"mtime_secs":1768274985,"mtime_nanos":262791434,"lines":1},"docs/python-sdk/fastmcp-server-auth-providers-jwt.mdx":{"mtime_secs":1767910209,"mtime_nanos":956058268,"lines":146},"src/fastmcp/server/providers/filesystem.py":{"mtime_secs":1768273914,"mtime_nanos":445181492,"lines":217},"examples/desktop.py":{"mtime_secs":1767910209,"mtime_nanos":970601530,"lines":32},"examples/fastmcp_config/env_interpolation_example.json":{"mtime_secs":1767910209,"mtime_nanos":970774407,"lines":20},".github/workflows/auto-close-duplicates.yml":{"mtime_secs":1767910209,"mtime_nanos":925481022,"lines":36},"examples/atproto_mcp/src/atproto_mcp/settings.py":{"mtime_secs":1767910209,"mtime_nanos":967610419,"lines":17},".git/objects/97/17b81aa0fc9fc8be7b60ee9ff6ac6648013f59":{"mtime_secs":1768005421,"mtime_nanos":578957736,"lines":1},"examples/auth/mounted/server.py":{"mtime_secs":1767910209,"mtime_nanos":969713022,"lines":121},"src/fastmcp/cli/run.py":{"mtime_secs":1768065435,"mtime_nanos":786414458,"lines":366},"src/fastmcp/experimental/sampling/handlers/__init__.py":{"mtime_secs":1767910209,"mtime_nanos":980731209,"lines":5},".github/ISSUE_TEMPLATE/config.yml":{"mtime_secs":1767910209,"mtime_nanos":925086685,"lines":8},"src/fastmcp/server/auth/providers/auth0.py":{"mtime_secs":1767910209,"mtime_nanos":983168148,"lines":123},"tests/server/tasks/test_task_ttl.py":{"mtime_secs":1767910210,"mtime_nanos":9979234,"lines":87},".git/description":{"mtime_secs":1767910208,"mtime_nanos":707959400,"lines":1},"src/fastmcp/utilities/mcp_server_config/v1/sources/filesystem.py":{"mtime_secs":1767910209,"mtime_nanos":992457361,"lines":216},"examples/auth/aws_oauth/server.py":{"mtime_secs":1767910209,"mtime_nanos":968288884,"lines":59},"docs/development/v3-notes/auth-provider-env-vars.mdx":{"mtime_secs":1767910209,"mtime_nanos":943921779,"lines":73},"src/fastmcp/settings.py":{"mtime_secs":1768273914,"mtime_nanos":449438692,"lines":367},"docs/python-sdk/fastmcp-server-auth-providers-google.mdx":{"mtime_secs":1767910209,"mtime_nanos":955794266,"lines":66},"src/fastmcp/__init__.py":{"mtime_secs":1767910209,"mtime_nanos":975938122,"lines":35},"docs/python-sdk/fastmcp-client-auth-oauth.mdx":{"mtime_secs":1768065435,"mtime_nanos":775104506,"lines":104},"docs/python-sdk/fastmcp-server-providers-proxy.mdx":{"mtime_secs":1768065435,"mtime_nanos":779964599,"lines":322},".git/refs/heads/extract-parsedfunction":{"mtime_secs":1768275805,"mtime_nanos":78366630,"lines":1},"src/fastmcp/utilities/openapi/README.md":{"mtime_secs":1767910209,"mtime_nanos":992630446,"lines":211},"docs/python-sdk/fastmcp-resources-__init__.mdx":{"mtime_secs":1767910209,"mtime_nanos":954184334,"lines":8},"docs/python-sdk/fastmcp-server-auth-providers-introspection.mdx":{"mtime_secs":1767910209,"mtime_nanos":955961976,"lines":71},".git/objects/0f/ddc85a07fa514936c4ed9a20887cb9ae922732":{"mtime_secs":1768259365,"mtime_nanos":685505137,"lines":2},".git/cursor/crepe/627c6cdad436cc6d81c268d8fc2c869e1b7e01da/metadata.json":{"mtime_secs":1767914918,"mtime_nanos":561926124,"lines":1},"tests/server/providers/proxy/__init__.py":{"mtime_secs":1768065435,"mtime_nanos":795461095,"lines":0},"v3-notes/task-meta-parameter.md":{"mtime_secs":1767910210,"mtime_nanos":15531745,"lines":109},".git/objects/f3/2b73b2d88cb8d9b63dff0ad0a62463ae0fe444":{"mtime_secs":1768077943,"mtime_nanos":871964525,"lines":3},"tests/deprecated/server/__init__.py":{"mtime_secs":1767910209,"mtime_nanos":999134215,"lines":1},".git/FETCH_HEAD":{"mtime_secs":1768307169,"mtime_nanos":51648273,"lines":69},"docs/python-sdk/fastmcp-server-event_store.mdx":{"mtime_secs":1767910209,"mtime_nanos":956825151,"lines":78},".git/objects/56/7083454d0c2ae5576f93b6a7dda7815b76e22b":{"mtime_secs":1768273914,"mtime_nanos":360682000,"lines":2},"tests/server/auth/test_oidc_proxy.py":{"mtime_secs":1767910210,"mtime_nanos":3595049,"lines":878},"examples/auth/google_oauth/client.py":{"mtime_secs":1767910209,"mtime_nanos":969343435,"lines":32},"docs/python-sdk/fastmcp-server-tasks-handlers.mdx":{"mtime_secs":1767910209,"mtime_nanos":959588677,"lines":41},"docs/python-sdk/fastmcp-prompts-prompt.mdx":{"mtime_secs":1767910209,"mtime_nanos":954120417,"lines":200},".git/objects/45/6100882d3e34e2f18d02b4b6a11874acaac864":{"mtime_secs":1767927080,"mtime_nanos":440059296,"lines":1},".git/objects/d8/d221a3d2234d9b5e70131969c4064a2d457606":{"mtime_secs":1768257849,"mtime_nanos":528083117,"lines":2},".github/workflows/auto-close-needs-mre.yml":{"mtime_secs":1767910209,"mtime_nanos":925534731,"lines":36},"tests/server/http/test_http_auth_middleware.py":{"mtime_secs":1767910210,"mtime_nanos":4197680,"lines":93},"src/fastmcp/experimental/utilities/openapi/__init__.py":{"mtime_secs":1767910209,"mtime_nanos":981096046,"lines":37},"tests/server/providers/proxy/test_proxy_server.py":{"mtime_secs":1768275439,"mtime_nanos":343715291,"lines":729},"src/fastmcp/server/auth/jwt_issuer.py":{"mtime_secs":1767910209,"mtime_nanos":982524476,"lines":236},"src/fastmcp/contrib/bulk_tool_caller/bulk_tool_caller.py":{"mtime_secs":1767910209,"mtime_nanos":979308612,"lines":133},".git/hooks/commit-msg.sample":{"mtime_secs":1767910208,"mtime_nanos":708589864,"lines":24},".git/objects/84/c11b074fc53b632c87cdf0c18461ea23bd8f19":{"mtime_secs":1767927045,"mtime_nanos":190585270,"lines":2}}}
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fastmcp
3
- Version: 2.14.3
3
+ Version: 2.14.4
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
@@ -22,13 +22,15 @@ Requires-Dist: authlib>=1.6.5
22
22
  Requires-Dist: cyclopts>=4.0.0
23
23
  Requires-Dist: exceptiongroup>=1.2.2
24
24
  Requires-Dist: httpx>=0.28.1
25
+ Requires-Dist: jsonref>=1.1.0
25
26
  Requires-Dist: jsonschema-path>=0.3.4
26
27
  Requires-Dist: mcp<2.0,>=1.24.0
27
28
  Requires-Dist: openapi-pydantic>=0.5.1
29
+ Requires-Dist: packaging>=20.0
28
30
  Requires-Dist: platformdirs>=4.0.0
29
31
  Requires-Dist: py-key-value-aio[disk,keyring,memory]<0.4.0,>=0.3.0
30
32
  Requires-Dist: pydantic[email]>=2.11.7
31
- Requires-Dist: pydocket>=0.16.6
33
+ Requires-Dist: pydocket<0.17.0,>=0.16.6
32
34
  Requires-Dist: pyperclip>=1.9.0
33
35
  Requires-Dist: python-dotenv>=1.1.0
34
36
  Requires-Dist: rich>=13.9.4
@@ -4,6 +4,58 @@ icon: "list-check"
4
4
  rss: true
5
5
  ---
6
6
 
7
+ <Update label="v2.14.3" description="2026-01-12">
8
+
9
+ **[v2.14.3: Time After Timeout](https://github.com/jlowin/fastmcp/releases/tag/v2.14.3)**
10
+
11
+ Sometimes five seconds just isn't enough. This release fixes an HTTP transport bug that was cutting connections short, along with OAuth and Redis fixes, better ASGI support, and CLI update notifications so you never miss a beat.
12
+
13
+ ## What's Changed
14
+ ### Enhancements 🔧
15
+ * Add debug logging for OAuth token expiry diagnostics by [@jlowin](https://github.com/jlowin) in [#2789](https://github.com/jlowin/fastmcp/pull/2789)
16
+ * Add CLI update notifications by [@jlowin](https://github.com/jlowin) in [#2839](https://github.com/jlowin/fastmcp/pull/2839)
17
+ * Use pip instead of uv pip in upgrade instructions by [@jlowin](https://github.com/jlowin) in [#2841](https://github.com/jlowin/fastmcp/pull/2841)
18
+ ### Fixes 🐞
19
+ * Backport OAuth token storage TTL fix to release/2.x by [@jlowin](https://github.com/jlowin) in [#2798](https://github.com/jlowin/fastmcp/pull/2798)
20
+ * Prefix Redis keys with docket name for ACL isolation (2.x backport) by [@chrisguidry](https://github.com/chrisguidry) in [#2812](https://github.com/jlowin/fastmcp/pull/2812)
21
+ * Fix ContextVar propagation for ASGI-mounted servers with tasks by [@chrisguidry](https://github.com/chrisguidry) in [#2843](https://github.com/jlowin/fastmcp/pull/2843)
22
+ * Fix HTTP transport timeout defaulting to 5 seconds by [@jlowin](https://github.com/jlowin) in [#2848](https://github.com/jlowin/fastmcp/pull/2848)
23
+
24
+ **Full Changelog**: [v2.14.2...v2.14.3](https://github.com/jlowin/fastmcp/compare/v2.14.2...v2.14.3)
25
+
26
+ </Update>
27
+
28
+ <Update label="v2.14.2" description="2025-12-31">
29
+
30
+ **[v2.14.2: Port Authority](https://github.com/jlowin/fastmcp/releases/tag/v2.14.2)**
31
+
32
+ FastMCP 2.14.2 brings a wave of community contributions safely into the 2.x line. A variety of important fixes backported from 3.0 work improve OpenAPI 3.1 compatibility, MCP spec compliance for output schemas and elicitation, and correct a subtle base_url fallback issue. The CLI now gently reminds you that FastMCP 3.0 is on the horizon.
33
+
34
+ ## What's Changed
35
+ ### Enhancements 🔧
36
+ * Pin MCP under 2.x by [@jlowin](https://github.com/jlowin) in [#2709](https://github.com/jlowin/fastmcp/pull/2709)
37
+ * Add auth_route parameter to SupabaseProvider by [@EloiZalczer](https://github.com/EloiZalczer) in [#2760](https://github.com/jlowin/fastmcp/pull/2760)
38
+ * Update CLI banner with FastMCP 3.0 notice by [@jlowin](https://github.com/jlowin) in [#2765](https://github.com/jlowin/fastmcp/pull/2765)
39
+ ### Fixes 🐞
40
+ * Let FastMCPError propagate unchanged from managers by [@jlowin](https://github.com/jlowin) in [#2697](https://github.com/jlowin/fastmcp/pull/2697)
41
+ * Fix test cleanup for uvicorn 0.39+ context isolation by [@jlowin](https://github.com/jlowin) in [#2696](https://github.com/jlowin/fastmcp/pull/2696)
42
+ * Bump pydocket to 0.16.3 to fix worker cleanup race condition by [@chrisguidry](https://github.com/chrisguidry) in [#2700](https://github.com/jlowin/fastmcp/pull/2700)
43
+ * Fix Prefect website URL in docs footer by [@mgoldsborough](https://github.com/mgoldsborough) in [#2705](https://github.com/jlowin/fastmcp/pull/2705)
44
+ * Fix: resolve root-level $ref in outputSchema for MCP spec compliance by [@majiayu000](https://github.com/majiayu000) in [#2727](https://github.com/jlowin/fastmcp/pull/2727)
45
+ * Fix OAuth Proxy resource parameter validation by [@jlowin](https://github.com/jlowin) in [#2763](https://github.com/jlowin/fastmcp/pull/2763)
46
+ * Fix openapi_version check to include 3.1 by [@deeleeramone](https://github.com/deeleeramone) in [#2769](https://github.com/jlowin/fastmcp/pull/2769)
47
+ * Fix titled enum elicitation schema to comply with MCP spec by [@jlowin](https://github.com/jlowin) in [#2774](https://github.com/jlowin/fastmcp/pull/2774)
48
+ * Fix base_url fallback when url is not set by [@bhbs](https://github.com/bhbs) in [#2782](https://github.com/jlowin/fastmcp/pull/2782)
49
+ * Lazy import DiskStore to avoid sqlite3 dependency on import by [@jlowin](https://github.com/jlowin) in [#2785](https://github.com/jlowin/fastmcp/pull/2785)
50
+ ### Docs 📚
51
+ * Add v3 breaking changes notice to README and docs by [@jlowin](https://github.com/jlowin) in [#2713](https://github.com/jlowin/fastmcp/pull/2713)
52
+ * Add changelog entries for v2.13.1 through v2.14.1 by [@jlowin](https://github.com/jlowin) in [#2724](https://github.com/jlowin/fastmcp/pull/2724)
53
+ * conference to 2.x branch by [@aaazzam](https://github.com/aaazzam) in [#2787](https://github.com/jlowin/fastmcp/pull/2787)
54
+
55
+ **Full Changelog**: [v2.14.1...v2.14.2](https://github.com/jlowin/fastmcp/compare/v2.14.1...v2.14.2)
56
+
57
+ </Update>
58
+
7
59
  <Update label="v2.14.1" description="2025-12-15">
8
60
 
9
61
  **[v2.14.1: 'Tis a Gift to Be Sample](https://github.com/jlowin/fastmcp/releases/tag/v2.14.1)**
@@ -173,6 +173,10 @@ def my_tool() -> None:
173
173
 
174
174
  By default, FastMCP converts Python functions into MCP tools by inspecting the function's signature and type annotations. This allows you to use standard Python type annotations for your tools. In general, the framework strives to "just work": idiomatic Python behaviors like parameter defaults and type annotations are automatically translated into MCP schemas. However, there are a number of ways to customize the behavior of your tools.
175
175
 
176
+ <Note>
177
+ FastMCP automatically dereferences `$ref` entries in tool schemas to ensure compatibility with MCP clients that don't fully support JSON Schema references (e.g., VS Code Copilot, Claude Desktop). This means complex Pydantic models with shared types are inlined in the schema rather than using `$defs` references.
178
+ </Note>
179
+
176
180
  ### Type Annotations
177
181
 
178
182
  MCP tools have typed arguments, and FastMCP uses type annotations to determine those types. Therefore, you should use standard Python type annotations for tool arguments:
@@ -5,6 +5,26 @@ icon: "sparkles"
5
5
  tag: NEW
6
6
  ---
7
7
 
8
+ <Update label="FastMCP 2.14.3" description="January 12, 2026" tags={["Releases"]}>
9
+ <Card
10
+ title="FastMCP 2.14.3: Time After Timeout"
11
+ href="https://github.com/jlowin/fastmcp/releases/tag/v2.14.3"
12
+ cta="Read the release notes"
13
+ >
14
+ Sometimes five seconds just isn't enough. This release fixes an HTTP transport bug that was cutting connections short, along with OAuth and Redis fixes, better ASGI support, and CLI update notifications so you never miss a beat.
15
+ </Card>
16
+ </Update>
17
+
18
+ <Update label="FastMCP 2.14.2" description="December 31, 2025" tags={["Releases"]}>
19
+ <Card
20
+ title="FastMCP 2.14.2: Port Authority"
21
+ href="https://github.com/jlowin/fastmcp/releases/tag/v2.14.2"
22
+ cta="Read the release notes"
23
+ >
24
+ FastMCP 2.14.2 brings a wave of community contributions safely into the 2.x line. A variety of important fixes backported from 3.0 work improve OpenAPI 3.1 compatibility, MCP spec compliance for output schemas and elicitation, and correct a subtle base_url fallback issue. The CLI now gently reminds you that FastMCP 3.0 is on the horizon.
25
+ </Card>
26
+ </Update>
27
+
8
28
  <Update label="FastMCP 2.14.1" description="December 15, 2025" tags={["Releases"]}>
9
29
  <Card
10
30
  title="FastMCP 2.14.1: 'Tis a Gift to Be Sample"
@@ -10,7 +10,7 @@ dependencies = [
10
10
  "mcp>=1.24.0,<2.0",
11
11
  "openapi-pydantic>=0.5.1",
12
12
  "platformdirs>=4.0.0",
13
- "pydocket>=0.16.6",
13
+ "pydocket>=0.16.6,<0.17.0",
14
14
  "rich>=13.9.4",
15
15
  "cyclopts>=4.0.0",
16
16
  "authlib>=1.6.5",
@@ -20,6 +20,8 @@ dependencies = [
20
20
  "uvicorn>=0.35",
21
21
  "websockets>=15.0.1",
22
22
  "jsonschema-path>=0.3.4",
23
+ "jsonref>=1.1.0",
24
+ "packaging>=20.0",
23
25
  ]
24
26
 
25
27
  requires-python = ">=3.10"
@@ -36,7 +36,6 @@ from fastmcp.client.auth.oauth import OAuth
36
36
  from fastmcp.mcp_config import MCPConfig, infer_transport_type_from_url
37
37
  from fastmcp.server.dependencies import get_http_headers
38
38
  from fastmcp.server.server import FastMCP
39
- from fastmcp.server.tasks.capabilities import get_task_capabilities
40
39
  from fastmcp.utilities.logging import get_logger
41
40
  from fastmcp.utilities.mcp_server_config.v1.environments.uv import UVEnvironment
42
41
 
@@ -900,16 +899,11 @@ class FastMCPTransport(ClientTransport):
900
899
  anyio.create_task_group() as tg,
901
900
  _enter_server_lifespan(server=self.server),
902
901
  ):
903
- # Build experimental capabilities
904
- experimental_capabilities = get_task_capabilities()
905
-
906
902
  tg.start_soon(
907
903
  lambda: self.server._mcp_server.run(
908
904
  server_read,
909
905
  server_write,
910
- self.server._mcp_server.create_initialization_options(
911
- experimental_capabilities=experimental_capabilities
912
- ),
906
+ self.server._mcp_server.create_initialization_options(),
913
907
  raise_exceptions=self.raise_exceptions,
914
908
  )
915
909
  )
@@ -21,7 +21,6 @@ from starlette.types import Lifespan, Receive, Scope, Send
21
21
 
22
22
  from fastmcp.server.auth import AuthProvider
23
23
  from fastmcp.server.auth.middleware import RequireAuthMiddleware
24
- from fastmcp.server.tasks.capabilities import get_task_capabilities
25
24
  from fastmcp.utilities.logging import get_logger
26
25
 
27
26
  if TYPE_CHECKING:
@@ -160,15 +159,10 @@ def create_sse_app(
160
159
  # Create handler for SSE connections
161
160
  async def handle_sse(scope: Scope, receive: Receive, send: Send) -> Response:
162
161
  async with sse.connect_sse(scope, receive, send) as streams:
163
- # Build experimental capabilities
164
- experimental_capabilities = get_task_capabilities()
165
-
166
162
  await server._mcp_server.run(
167
163
  streams[0],
168
164
  streams[1],
169
- server._mcp_server.create_initialization_options(
170
- experimental_capabilities=experimental_capabilities
171
- ),
165
+ server._mcp_server.create_initialization_options(),
172
166
  )
173
167
  return Response()
174
168
 
@@ -163,6 +163,31 @@ class LowLevelServer(_Server[LifespanResultT, RequestT]):
163
163
  **kwargs,
164
164
  )
165
165
 
166
+ def get_capabilities(
167
+ self,
168
+ notification_options: NotificationOptions,
169
+ experimental_capabilities: dict[str, dict[str, Any]],
170
+ ) -> mcp.types.ServerCapabilities:
171
+ """Override to set capabilities.tasks as a first-class field per SEP-1686.
172
+
173
+ This ensures task capabilities appear in capabilities.tasks instead of
174
+ capabilities.experimental.tasks, which is required by the MCP spec and
175
+ enables proper task detection by clients like VS Code Copilot 1.107+.
176
+ """
177
+ from fastmcp.server.tasks.capabilities import get_task_capabilities
178
+
179
+ # Get base capabilities from SDK (pass empty dict for experimental)
180
+ # since we'll set tasks as a first-class field instead
181
+ capabilities = super().get_capabilities(
182
+ notification_options,
183
+ experimental_capabilities or {},
184
+ )
185
+
186
+ # Set tasks as a first-class field (not experimental) per SEP-1686
187
+ capabilities.tasks = get_task_capabilities()
188
+
189
+ return capabilities
190
+
166
191
  async def run(
167
192
  self,
168
193
  read_stream: MemoryObjectReceiveStream[SessionMessage | Exception],
@@ -75,7 +75,6 @@ from fastmcp.server.http import (
75
75
  )
76
76
  from fastmcp.server.low_level import LowLevelServer
77
77
  from fastmcp.server.middleware import Middleware, MiddlewareContext
78
- from fastmcp.server.tasks.capabilities import get_task_capabilities
79
78
  from fastmcp.server.tasks.config import TaskConfig
80
79
  from fastmcp.server.tasks.handlers import (
81
80
  handle_prompt_as_task,
@@ -2508,9 +2507,6 @@ class FastMCP(Generic[LifespanResultT]):
2508
2507
  f"Starting MCP server {self.name!r} with transport 'stdio'"
2509
2508
  )
2510
2509
 
2511
- # Build experimental capabilities
2512
- experimental_capabilities = get_task_capabilities()
2513
-
2514
2510
  await self._mcp_server.run(
2515
2511
  read_stream,
2516
2512
  write_stream,
@@ -2518,7 +2514,6 @@ class FastMCP(Generic[LifespanResultT]):
2518
2514
  notification_options=NotificationOptions(
2519
2515
  tools_changed=True
2520
2516
  ),
2521
- experimental_capabilities=experimental_capabilities,
2522
2517
  ),
2523
2518
  )
2524
2519