fastmcp 2.12.2__py3-none-any.whl → 2.12.4__py3-none-any.whl

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 (54) hide show
  1. fastmcp/cli/claude.py +1 -10
  2. fastmcp/cli/cli.py +45 -25
  3. fastmcp/cli/install/__init__.py +2 -0
  4. fastmcp/cli/install/claude_code.py +1 -10
  5. fastmcp/cli/install/claude_desktop.py +1 -9
  6. fastmcp/cli/install/cursor.py +2 -18
  7. fastmcp/cli/install/gemini_cli.py +241 -0
  8. fastmcp/cli/install/mcp_json.py +1 -9
  9. fastmcp/cli/run.py +2 -86
  10. fastmcp/client/auth/oauth.py +50 -37
  11. fastmcp/client/client.py +18 -8
  12. fastmcp/client/elicitation.py +6 -1
  13. fastmcp/client/transports.py +1 -1
  14. fastmcp/contrib/component_manager/component_service.py +1 -1
  15. fastmcp/contrib/mcp_mixin/README.md +3 -3
  16. fastmcp/contrib/mcp_mixin/mcp_mixin.py +41 -6
  17. fastmcp/experimental/utilities/openapi/director.py +8 -1
  18. fastmcp/experimental/utilities/openapi/schemas.py +31 -5
  19. fastmcp/prompts/prompt.py +10 -8
  20. fastmcp/resources/resource.py +14 -11
  21. fastmcp/resources/template.py +12 -10
  22. fastmcp/server/auth/auth.py +10 -4
  23. fastmcp/server/auth/oauth_proxy.py +93 -23
  24. fastmcp/server/auth/oidc_proxy.py +348 -0
  25. fastmcp/server/auth/providers/auth0.py +174 -0
  26. fastmcp/server/auth/providers/aws.py +237 -0
  27. fastmcp/server/auth/providers/azure.py +6 -2
  28. fastmcp/server/auth/providers/descope.py +172 -0
  29. fastmcp/server/auth/providers/github.py +6 -2
  30. fastmcp/server/auth/providers/google.py +6 -2
  31. fastmcp/server/auth/providers/workos.py +6 -2
  32. fastmcp/server/context.py +17 -16
  33. fastmcp/server/dependencies.py +18 -5
  34. fastmcp/server/http.py +1 -1
  35. fastmcp/server/middleware/logging.py +147 -116
  36. fastmcp/server/middleware/middleware.py +3 -2
  37. fastmcp/server/openapi.py +5 -1
  38. fastmcp/server/server.py +43 -36
  39. fastmcp/settings.py +42 -6
  40. fastmcp/tools/tool.py +105 -87
  41. fastmcp/tools/tool_transform.py +1 -1
  42. fastmcp/utilities/json_schema.py +18 -1
  43. fastmcp/utilities/logging.py +66 -4
  44. fastmcp/utilities/mcp_server_config/v1/environments/uv.py +4 -39
  45. fastmcp/utilities/mcp_server_config/v1/mcp_server_config.py +3 -2
  46. fastmcp/utilities/mcp_server_config/v1/schema.json +2 -1
  47. fastmcp/utilities/storage.py +204 -0
  48. fastmcp/utilities/tests.py +8 -6
  49. fastmcp/utilities/types.py +9 -5
  50. {fastmcp-2.12.2.dist-info → fastmcp-2.12.4.dist-info}/METADATA +121 -48
  51. {fastmcp-2.12.2.dist-info → fastmcp-2.12.4.dist-info}/RECORD +54 -48
  52. {fastmcp-2.12.2.dist-info → fastmcp-2.12.4.dist-info}/WHEEL +0 -0
  53. {fastmcp-2.12.2.dist-info → fastmcp-2.12.4.dist-info}/entry_points.txt +0 -0
  54. {fastmcp-2.12.2.dist-info → fastmcp-2.12.4.dist-info}/licenses/LICENSE +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fastmcp
3
- Version: 2.12.2
3
+ Version: 2.12.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
@@ -37,6 +37,13 @@ Description-Content-Type: text/markdown
37
37
  <div align="center">
38
38
 
39
39
  <!-- omit in toc -->
40
+
41
+ <picture>
42
+ <source width="550" media="(prefers-color-scheme: dark)" srcset="docs/assets/brand/wordmark-watercolor-waves-dark.png">
43
+ <source width="550" media="(prefers-color-scheme: light)" srcset="docs/assets/brand/wordmark-watercolor-waves.png">
44
+ <img width="550" alt="FastMCP Logo" src="docs/assets/brand/wordmark-watercolor-waves.png">
45
+ </picture>
46
+
40
47
  # FastMCP v2 🚀
41
48
 
42
49
  <strong>The fast, Pythonic way to build MCP servers and clients.</strong>
@@ -53,19 +60,19 @@ Description-Content-Type: text/markdown
53
60
 
54
61
  > [!Note]
55
62
  >
56
- > #### Beyond the Protocol
57
- >
58
- > FastMCP is the standard framework for working with the Model Context Protocol. FastMCP 1.0 was incorporated into the [official MCP Python SDK](https://github.com/modelcontextprotocol/python-sdk) in 2024.
63
+ > #### FastMCP 2.0: The Standard Framework
59
64
  >
60
- > This is FastMCP 2.0, the **actively maintained version** that provides a complete toolkit for working with the MCP ecosystem.
65
+ > FastMCP pioneered Python MCP development, and FastMCP 1.0 was incorporated into the [official MCP SDK](https://github.com/modelcontextprotocol/python-sdk) in 2024.
61
66
  >
62
- > FastMCP 2.0 has a comprehensive set of features that go far beyond the core MCP specification, all in service of providing **the simplest path to production**. These include deployment, auth, clients, server proxying and composition, generating servers from REST APIs, dynamic tool rewriting, built-in testing tools, integrations, and more.
67
+ > **This is FastMCP 2.0** the actively maintained, production-ready framework that extends far beyond basic protocol implementation. While the SDK provides core functionality, FastMCP 2.0 delivers everything needed for production: advanced MCP patterns (server composition, proxying, OpenAPI/FastAPI generation, tool transformation), enterprise auth (Google, GitHub, WorkOS, Azure, Auth0, and more), deployment tools, testing utilities, and comprehensive client libraries.
63
68
  >
64
- > Ready to upgrade or get started? Follow the [installation instructions](https://gofastmcp.com/getting-started/installation), which include steps for upgrading from the official MCP SDK.
69
+ > **For production MCP applications, install FastMCP:** `pip install fastmcp`
65
70
 
66
71
  ---
67
72
 
68
- The [Model Context Protocol (MCP)](https://modelcontextprotocol.io) is a new, standardized way to provide context and tools to your LLMs, and FastMCP makes building MCP servers and clients simple and intuitive. Create tools, expose resources, define prompts, and connect components with clean, Pythonic code.
73
+ **FastMCP is the standard framework for building MCP applications**, providing the fastest path from idea to production.
74
+
75
+ The [Model Context Protocol (MCP)](https://modelcontextprotocol.io) is a standardized way to provide context and tools to LLMs. FastMCP makes building production-ready MCP servers simple, with enterprise auth, deployment tools, and a complete ecosystem built in.
69
76
 
70
77
  ```python
71
78
  # server.py
@@ -104,28 +111,33 @@ There are two ways to access the LLM-friendly documentation:
104
111
  <!-- omit in toc -->
105
112
  ## Table of Contents
106
113
 
107
- - [What is MCP?](#what-is-mcp)
108
- - [Why FastMCP?](#why-fastmcp)
109
- - [Installation](#installation)
110
- - [Core Concepts](#core-concepts)
111
- - [The `FastMCP` Server](#the-fastmcp-server)
112
- - [Tools](#tools)
113
- - [Resources \& Templates](#resources--templates)
114
- - [Prompts](#prompts)
115
- - [Context](#context)
116
- - [MCP Clients](#mcp-clients)
117
- - [Advanced Features](#advanced-features)
118
- - [Proxy Servers](#proxy-servers)
119
- - [Composing MCP Servers](#composing-mcp-servers)
120
- - [OpenAPI \& FastAPI Generation](#openapi--fastapi-generation)
121
- - [Authentication \& Security](#authentication--security)
122
- - [Running Your Server](#running-your-server)
123
- - [Contributing](#contributing)
124
- - [Prerequisites](#prerequisites)
125
- - [Setup](#setup)
126
- - [Unit Tests](#unit-tests)
127
- - [Static Checks](#static-checks)
128
- - [Pull Requests](#pull-requests)
114
+ - [FastMCP v2 🚀](#fastmcp-v2-)
115
+ - [📚 Documentation](#-documentation)
116
+ - [What is MCP?](#what-is-mcp)
117
+ - [Why FastMCP?](#why-fastmcp)
118
+ - [Installation](#installation)
119
+ - [Core Concepts](#core-concepts)
120
+ - [The `FastMCP` Server](#the-fastmcp-server)
121
+ - [Tools](#tools)
122
+ - [Resources \& Templates](#resources--templates)
123
+ - [Prompts](#prompts)
124
+ - [Context](#context)
125
+ - [MCP Clients](#mcp-clients)
126
+ - [Authentication](#authentication)
127
+ - [Enterprise Authentication, Zero Configuration](#enterprise-authentication-zero-configuration)
128
+ - [Deployment](#deployment)
129
+ - [From Development to Production](#from-development-to-production)
130
+ - [Advanced Features](#advanced-features)
131
+ - [Proxy Servers](#proxy-servers)
132
+ - [Composing MCP Servers](#composing-mcp-servers)
133
+ - [OpenAPI \& FastAPI Generation](#openapi--fastapi-generation)
134
+ - [Running Your Server](#running-your-server)
135
+ - [Contributing](#contributing)
136
+ - [Prerequisites](#prerequisites)
137
+ - [Setup](#setup)
138
+ - [Unit Tests](#unit-tests)
139
+ - [Static Checks](#static-checks)
140
+ - [Pull Requests](#pull-requests)
129
141
 
130
142
  ---
131
143
 
@@ -142,11 +154,7 @@ FastMCP provides a high-level, Pythonic interface for building, managing, and in
142
154
 
143
155
  ## Why FastMCP?
144
156
 
145
- The MCP protocol is powerful but implementing it involves a lot of boilerplate - server setup, protocol handlers, content types, error management. FastMCP handles all the complex protocol details and server management, so you can focus on building great tools. It's designed to be high-level and Pythonic; in most cases, decorating a function is all you need.
146
-
147
- FastMCP 2.0 has evolved into a comprehensive platform that goes far beyond basic protocol implementation. While 1.0 provided server-building capabilities (and is now part of the official MCP SDK), 2.0 offers a complete ecosystem including client libraries, authentication systems, deployment tools, integrations with major AI platforms, testing frameworks, and production-ready infrastructure patterns.
148
-
149
- FastMCP aims to be:
157
+ FastMCP handles all the complex protocol details so you can focus on building. In most cases, decorating a Python function is all you need — FastMCP handles the rest.
150
158
 
151
159
  🚀 **Fast:** High-level interface means less code and faster development
152
160
 
@@ -154,7 +162,9 @@ FastMCP aims to be:
154
162
 
155
163
  🐍 **Pythonic:** Feels natural to Python developers
156
164
 
157
- 🔍 **Complete:** A comprehensive platform for all MCP use cases, from dev to prod
165
+ 🔍 **Complete:** Everything for production enterprise auth (Google, GitHub, Azure, Auth0, WorkOS), deployment tools, testing frameworks, client libraries, and more
166
+
167
+ FastMCP provides the shortest path from idea to production. Deploy locally, to the cloud with [FastMCP Cloud](https://fastmcp.cloud), or to your own infrastructure.
158
168
 
159
169
  ## Installation
160
170
 
@@ -278,7 +288,7 @@ async def main():
278
288
  tools = await client.list_tools()
279
289
  print(f"Available tools: {tools}")
280
290
  result = await client.call_tool("add", {"a": 5, "b": 3})
281
- print(f"Result: {result.text}")
291
+ print(f"Result: {result.content[0].text}")
282
292
 
283
293
  # Connect via SSE
284
294
  async with Client("http://localhost:8000/sse") as client:
@@ -324,9 +334,82 @@ async def main():
324
334
 
325
335
  Learn more in the [**Client Documentation**](https://gofastmcp.com/clients/client) and [**Transports Documentation**](https://gofastmcp.com/clients/transports).
326
336
 
337
+ ## Authentication
338
+
339
+ ### Enterprise Authentication, Zero Configuration
340
+
341
+ FastMCP provides comprehensive authentication support that sets it apart from basic MCP implementations. Secure your servers and authenticate your clients with the same enterprise-grade providers used by major corporations.
342
+
343
+ **Built-in OAuth Providers:**
344
+
345
+ - **Google**
346
+ - **GitHub**
347
+ - **Microsoft Azure**
348
+ - **Auth0**
349
+ - **WorkOS**
350
+ - **Descope**
351
+ - **JWT/Custom**
352
+ - **API Keys**
353
+
354
+ Protecting a server takes just two lines:
355
+
356
+ ```python
357
+ from fastmcp.server.auth import GoogleProvider
358
+
359
+ auth = GoogleProvider(client_id="...", client_secret="...", base_url="https://myserver.com")
360
+ mcp = FastMCP("Protected Server", auth=auth)
361
+ ```
362
+
363
+ Connecting to protected servers is even simpler:
364
+
365
+ ```python
366
+ async with Client("https://protected-server.com/mcp", auth="oauth") as client:
367
+ # Automatic browser-based OAuth flow
368
+ result = await client.call_tool("protected_tool")
369
+ ```
370
+
371
+ **Why FastMCP Auth Matters:**
372
+
373
+ - **Production-Ready:** Persistent storage, token refresh, comprehensive error handling
374
+ - **Zero-Config OAuth:** Just pass `auth="oauth"` for automatic setup
375
+ - **Enterprise Integration:** WorkOS SSO, Azure Active Directory, Auth0 tenants
376
+ - **Developer Experience:** Automatic browser launch, local callback server, environment variable support
377
+ - **Advanced Architecture:** Full OIDC support, Dynamic Client Registration (DCR), and unique OAuth proxy pattern that enables DCR with any provider
378
+
379
+ *Authentication this comprehensive is unique to FastMCP 2.0.*
380
+
381
+ Learn more in the **Authentication Documentation** for [servers](https://gofastmcp.com/servers/auth) and [clients](https://gofastmcp.com/clients/auth).
382
+
383
+ ## Deployment
384
+
385
+ ### From Development to Production
386
+
387
+ FastMCP supports every deployment scenario from local development to global scale:
388
+
389
+ **Development:** Run locally with a single command
390
+
391
+ ```bash
392
+ fastmcp run server.py
393
+ ```
394
+
395
+ **Production:** Deploy to [**FastMCP Cloud**](https://fastmcp.cloud) — Remote MCP that just works
396
+
397
+ - Instant HTTPS endpoints
398
+ - Built-in authentication
399
+ - Zero configuration
400
+ - Free for personal servers
401
+
402
+ **Self-Hosted:** Use HTTP or SSE transports for your own infrastructure
403
+
404
+ ```python
405
+ mcp.run(transport="http", host="0.0.0.0", port=8000)
406
+ ```
407
+
408
+ Learn more in the [**Deployment Documentation**](https://gofastmcp.com/deployment).
409
+
327
410
  ## Advanced Features
328
411
 
329
- FastMCP introduces powerful ways to structure and deploy your MCP applications.
412
+ FastMCP introduces powerful ways to structure and compose your MCP applications.
330
413
 
331
414
  ### Proxy Servers
332
415
 
@@ -346,16 +429,6 @@ Automatically generate FastMCP servers from existing OpenAPI specifications (`Fa
346
429
 
347
430
  Learn more: [**OpenAPI Integration**](https://gofastmcp.com/integrations/openapi) | [**FastAPI Integration**](https://gofastmcp.com/integrations/fastapi).
348
431
 
349
- ### Authentication & Security
350
-
351
- FastMCP provides built-in authentication support to secure both your MCP servers and clients in production environments. Protect your server endpoints from unauthorized access and authenticate your clients against secured MCP servers using industry-standard protocols.
352
-
353
- - **Server Protection**: Secure your FastMCP server endpoints with configurable authentication providers
354
- - **Client Authentication**: Connect to authenticated MCP servers with automatic credential management
355
- - **Production Ready**: Support for common authentication patterns used in enterprise environments
356
-
357
- Learn more in the **Authentication Documentation** for [servers](https://gofastmcp.com/servers/auth) and [clients](https://gofastmcp.com/clients/auth).
358
-
359
432
  ## Running Your Server
360
433
 
361
434
  The main way to run a FastMCP server is by calling the `run()` method on your server instance:
@@ -2,30 +2,31 @@ fastmcp/__init__.py,sha256=KX2d8UjlyJdYwock62tYV7vJSRwyxzrjq-jnU6Gre_c,1544
2
2
  fastmcp/exceptions.py,sha256=-krEavxwddQau6T7MESCR4VjKNLfP9KHJrU1p3y72FU,744
3
3
  fastmcp/mcp_config.py,sha256=zbli5c8hcUfxOlqYFBJXbogpVlXwtnCuJjTg3oTfmtQ,11375
4
4
  fastmcp/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
- fastmcp/settings.py,sha256=6m3rs7JQz8RN5rtFiRGCnb1K53Vt6588bF7zITRESK0,11982
5
+ fastmcp/settings.py,sha256=R3X0opNREwb0bpZs__qDpIIoiqXpWd6hm2U42hh_DAM,13341
6
6
  fastmcp/cli/__init__.py,sha256=Ii284TNoG5lxTP40ETMGhHEq3lQZWxu9m9JuU57kUpQ,87
7
- fastmcp/cli/claude.py,sha256=tGbJwLOW9BRfQ_VJ91Iz8HOiqKg0JKywzIJOijCHO78,4996
8
- fastmcp/cli/cli.py,sha256=sBwMOM_DHc90YOEWV94ikCjASBBKTbA1KmIElPVHBUg,28244
9
- fastmcp/cli/run.py,sha256=6-Cvo48mKh_VDdlavq7bDNUJ9wCkQOcRoOjqSb_Wgws,10100
10
- fastmcp/cli/install/__init__.py,sha256=cDEc0hhuf_xwGpI6ghpqlvlMdBMJUGHq_rs-tgmOJZ8,695
11
- fastmcp/cli/install/claude_code.py,sha256=XMm35e70BmFznYAPBYfuibG9G0bubq59nQiYNhTj57Y,8174
12
- fastmcp/cli/install/claude_desktop.py,sha256=zityBHHLZxTRf6t7JWgVIRznPNsyeqXBHqjM0pBFM1E,7289
13
- fastmcp/cli/install/cursor.py,sha256=jyauvEhpB-qouj08tcL-PCEWAkYgTAV_foQCqLn-k4g,11449
14
- fastmcp/cli/install/mcp_json.py,sha256=RlGtDuqflPXWeENL8SyuCEytLRm17lHyBNQeud9l4so,6317
7
+ fastmcp/cli/claude.py,sha256=Z2mNoOdfGNvPSZVhbS2n52Thu9fNCxtJwju1pnTaN7c,4546
8
+ fastmcp/cli/cli.py,sha256=s5uIEKGOhImfDZc74v2ZYYrN2WHNxRyy7ouo265sCcM,29041
9
+ fastmcp/cli/run.py,sha256=lN1N3TdAWV2pFEiPe08Pk6ZkePoyAXaJ3MRpApkXcyI,6882
10
+ fastmcp/cli/install/__init__.py,sha256=FUrwjMVaxONgz1qO7suzJNz1xosRfR3TOHlr3Z77JXA,797
11
+ fastmcp/cli/install/claude_code.py,sha256=pIZXHJFv4lqj5V7Wr55fTjj9YDjBu0PBMBxPm_ww7Ow,7756
12
+ fastmcp/cli/install/claude_desktop.py,sha256=1skMjy07Z_4iQ1rMKO1L3Jl5hGsTIz8xdZTNG1tV2H0,6939
13
+ fastmcp/cli/install/cursor.py,sha256=eXJcI3u36eDDmLVeq49pK0R3cWA_iAtpYdO45tPDEgg,10749
14
+ fastmcp/cli/install/gemini_cli.py,sha256=rfKPn-lCMCvY9UpD6Q0ZnoCVMxfd-A5UD3DKuSLj-gY,7737
15
+ fastmcp/cli/install/mcp_json.py,sha256=7tYslUjbPMwWt1UoARJjnDRRFZjH_l1UWd5hNWwKA5c,5939
15
16
  fastmcp/cli/install/shared.py,sha256=_1MNGCqf7BsAL6ntwA75wn86-0g-248ppQSAPQ8uTXk,5103
16
17
  fastmcp/client/__init__.py,sha256=J-RcLU2WcnYnstXWoW01itGtAg7DEjvCsWyqQKQljoo,663
17
- fastmcp/client/client.py,sha256=N1UZopFOy5NwbWY55goqRKlkwqEgbk2UaF13EncJ1Ps,35190
18
- fastmcp/client/elicitation.py,sha256=FKSJCQ9cZPFMC2V3e7VtrxNB9q22SoB5ou1lgjS8eCY,2445
18
+ fastmcp/client/client.py,sha256=HIYvw9E4ZTPDyW5VAnPTeFDAj7pHV9_VEYlqb8Vpy50,35791
19
+ fastmcp/client/elicitation.py,sha256=VNWgeBe2KipLp9mCc-6AApmfYAU1OlH9_3JdskfW_Wc,2521
19
20
  fastmcp/client/logging.py,sha256=uIC9aWGKqgTbxhRqkMBlnYfYjtanC1fqyWbRu5FY6AY,1670
20
21
  fastmcp/client/messages.py,sha256=NIPjt-5js_DkI5BD4OVdTf6pz-nGjc2dtbgt-vAY234,4329
21
22
  fastmcp/client/oauth_callback.py,sha256=qxSMg1duv_uCYbbNaiFjl9esSlWeiiHtYBWBdQcX27w,10248
22
23
  fastmcp/client/progress.py,sha256=WjLLDbUKMsx8DK-fqO7AGsXb83ak-6BMrLvzzznGmcI,1043
23
24
  fastmcp/client/roots.py,sha256=IxI_bHwHTmg6c2H-s1av1ZgrRnNDieHtYwdGFbzXT5c,2471
24
25
  fastmcp/client/sampling.py,sha256=TXRj1Fs9lOk1wukhaHhPS__HGqpTieXSq2Rasj1F-e0,1819
25
- fastmcp/client/transports.py,sha256=7n0AnkCznQvQmck1luo3-cx1-IxVSSVihYOrgUmV8e8,38174
26
+ fastmcp/client/transports.py,sha256=RLOqBKO8cphsbPC8FRk6hgrM_2yH2WyT6o5xmXf3DVI,38183
26
27
  fastmcp/client/auth/__init__.py,sha256=4DNsfp4iaQeBcpds0JDdMn6Mmfud44stWLsret0sVKY,91
27
28
  fastmcp/client/auth/bearer.py,sha256=MFEFqcH6u_V86msYiOsEFKN5ks1V9BnBNiPsPLHUTqo,399
28
- fastmcp/client/auth/oauth.py,sha256=tZ3Q5p2jb1a6pkWXZif_6-b5sFvfPU23BPLd6_jI8rA,15810
29
+ fastmcp/client/auth/oauth.py,sha256=EEl5Td6wVvGFt_05Leh43-vvLSVnEspnuEYvE5CJGrA,16380
29
30
  fastmcp/contrib/README.md,sha256=rKknYSI1T192UvSszqwwDlQ2eYQpxywrNTLoj177SYU,878
30
31
  fastmcp/contrib/bulk_tool_caller/README.md,sha256=5aUUY1TSFKtz1pvTLSDqkUCkGkuqMfMZNsLeaNqEgAc,1960
31
32
  fastmcp/contrib/bulk_tool_caller/__init__.py,sha256=xvGSSaUXTQrc31erBoi1Gh7BikgOliETDiYVTP3rLxY,75
@@ -34,12 +35,12 @@ fastmcp/contrib/bulk_tool_caller/example.py,sha256=6og_8pCJN_CabworC5R82zPAwwwM-
34
35
  fastmcp/contrib/component_manager/README.md,sha256=sTan1D51jzkPNnCQTxwd5JXGzWVy4DtkUjrUfNH3-F0,4457
35
36
  fastmcp/contrib/component_manager/__init__.py,sha256=4bppVrCOSEepKmBRwVWN-ndu5BYAz1Kv2Z8yhjEUmlo,164
36
37
  fastmcp/contrib/component_manager/component_manager.py,sha256=4R1FPVYjCr-j7Mn6OcbHH-psl9-JTdd1hgNZHasC52Y,6412
37
- fastmcp/contrib/component_manager/component_service.py,sha256=dLIOtXvMpCAu8CGlrqAWb9pX0AhVGqkC4j0uxv6XnXs,8759
38
+ fastmcp/contrib/component_manager/component_service.py,sha256=QqJ4DgD8ppAEHopc_hn3Ir2HKs81wSyuCT7qFqW527E,8760
38
39
  fastmcp/contrib/component_manager/example.py,sha256=N16OIHmQuR-LNEv7bkrv2rGdMs862Nc3AKKEPfw-6rU,1587
39
- fastmcp/contrib/mcp_mixin/README.md,sha256=X6rzt_4vC_rmq9jbHmrVPqYLGVVlw9b4TVL4H_0SMmQ,4277
40
+ fastmcp/contrib/mcp_mixin/README.md,sha256=3sXD33lY1Bf3xpjSHOL-JngAjl0n8mC2FwKbdrGIDwE,4280
40
41
  fastmcp/contrib/mcp_mixin/__init__.py,sha256=aw9IQ1ssNjCgws4ZNt8bkdpossAAGVAwwjBpMp9O5ZQ,153
41
42
  fastmcp/contrib/mcp_mixin/example.py,sha256=GnunkXmtG5hLLTUsM8aW5ZURU52Z8vI4tNLl-fK7Dg0,1228
42
- fastmcp/contrib/mcp_mixin/mcp_mixin.py,sha256=sUSJ2o0sTsb061MyPN2xuYP0oI4W6YVQXupY3nnjD50,8687
43
+ fastmcp/contrib/mcp_mixin/mcp_mixin.py,sha256=q039j0OOwlflMLqpqEpniBf828LwIaeXkY7LPub3rRU,10171
43
44
  fastmcp/experimental/sampling/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
44
45
  fastmcp/experimental/sampling/handlers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
45
46
  fastmcp/experimental/sampling/handlers/base.py,sha256=mCPFj9ETc-Ro38R_pzx9rHVM2_EADCecScMkNWd6Tbs,714
@@ -51,52 +52,56 @@ fastmcp/experimental/server/openapi/routing.py,sha256=H_1RMaARucl8bfFT9-JJRDwrAf
51
52
  fastmcp/experimental/server/openapi/server.py,sha256=WQeUA3v69ZhrzN1-cbrDTC8EsaOXHwDSQT_NPgYrECk,16099
52
53
  fastmcp/experimental/utilities/openapi/README.md,sha256=pOXftamuVXxEMlOt-JAfpuvHeRGauC3l46ntD1WzM-A,8604
53
54
  fastmcp/experimental/utilities/openapi/__init__.py,sha256=4uba3nOrt8hAv1I91BWkg2hMo3O0VmYlSNG058xwmiA,1677
54
- fastmcp/experimental/utilities/openapi/director.py,sha256=0YnazKmfaSPkBRAz5aI6blFN9nzXJWru3fvU6llYltA,7859
55
+ fastmcp/experimental/utilities/openapi/director.py,sha256=zoYlIp4KESC8UlfKvooEtyzSO15P8T6YMZp5qCV6PfU,8078
55
56
  fastmcp/experimental/utilities/openapi/formatters.py,sha256=1RCd8DwPU8_4uF51pj8Qp3oSZkZmoxL5VUwxBzokAMg,15540
56
57
  fastmcp/experimental/utilities/openapi/json_schema_converter.py,sha256=W_40IPyuYnstcYtGf--eyTquecmwpvFYBK0W-XQ7OAw,12921
57
58
  fastmcp/experimental/utilities/openapi/models.py,sha256=tgqrHdTbiDfMjiaNVHW5ndbXJ5lg_sajK0S5u9JQL6A,2805
58
59
  fastmcp/experimental/utilities/openapi/parser.py,sha256=nVlvQ7RV7q4az_hrcE8WfGI5GqREKb6mZ5ANMgDED08,33232
59
- fastmcp/experimental/utilities/openapi/schemas.py,sha256=WZ1nQECX4McLIZ2Kmgr7VnlI1zGM8_hNofhzBboeEo0,21923
60
+ fastmcp/experimental/utilities/openapi/schemas.py,sha256=FE7aSgk3285X1okCh1ILLTxboQ-FCeFLyYZZ_jfejVI,23349
60
61
  fastmcp/prompts/__init__.py,sha256=An8uMBUh9Hrb7qqcn_5_Hent7IOeSh7EA2IUVsIrtHc,179
61
- fastmcp/prompts/prompt.py,sha256=lxlxQi9gylLW36-eVKUyH7PwndoxhA6ii8m4Cok6MEU,14158
62
+ fastmcp/prompts/prompt.py,sha256=Uo6NorQlGP1lvJh5-qK8jAvi4Mp4yDWkB5V4pzXMQYw,14235
62
63
  fastmcp/prompts/prompt_manager.py,sha256=mv3ge3vqNQNIPwVT8Tkr7IaBSflYBajpfxfTZLuHZiw,7807
63
64
  fastmcp/resources/__init__.py,sha256=y1iAuqx-GIrS1NqIYzKezIDiYyjNEzzHD35epHpMnXE,463
64
- fastmcp/resources/resource.py,sha256=IW2PToUgBOWDuZ1q8tiT7s0iSeh7a1mIFr56UyYbJ1E,6727
65
+ fastmcp/resources/resource.py,sha256=sWXqetS0X_u0bQOeMI-q9zVQvc29Qjz1hdxi7CjYmfE,6898
65
66
  fastmcp/resources/resource_manager.py,sha256=sDfMrAx1cl2sTaKrTYW3k6gxr_O0QmH18n9v10zR47s,20355
66
- fastmcp/resources/template.py,sha256=HXL_T1hUXMwv1h0962NTtszGY68R1TbumjJMvC0PjjU,11030
67
+ fastmcp/resources/template.py,sha256=KljJyfeO6Q702woIKKr5C9ODK4ImebY2PyFgYbQP5rY,11188
67
68
  fastmcp/resources/types.py,sha256=SiYNLnpXT-mHgNUrzqKUvXYUsY-V3gwJIrYdJfFwDDo,4868
68
69
  fastmcp/server/__init__.py,sha256=bMD4aQD4yJqLz7-mudoNsyeV8UgQfRAg3PRwPvwTEds,119
69
- fastmcp/server/context.py,sha256=caj-K-bbuFZINiugGw6Uz2P6fcn7jJ17dvTCAY37wRQ,24454
70
- fastmcp/server/dependencies.py,sha256=NDAQMAIgiWtLMkDS-oF8htoHpETilAZo1YawSDP5Lqg,3317
70
+ fastmcp/server/context.py,sha256=UAXqW2kx3_RTVXz-hQUt-oNpnL8RRhgJk6c3JSnaE0A,24568
71
+ fastmcp/server/dependencies.py,sha256=so60cBZc4QuiKP2Y4ajR_NPkIF5d_b5wp8U3-ZfZMEQ,3888
71
72
  fastmcp/server/elicitation.py,sha256=gmP17CzLQVpGzU00Ks31TWxdS-OLL5wTX_W5xRzs1Cc,8777
72
- fastmcp/server/http.py,sha256=dpSfE9VhilTjuz4BLh1MbdfHhMyDzWEi68GNjUZamTE,10665
73
+ fastmcp/server/http.py,sha256=rh18KPgGMFdKExrVZ-tFFBvyaAoTf925tm_a9ZVV9eM,10668
73
74
  fastmcp/server/low_level.py,sha256=LNmc_nU_wx-fRG8OEHdLPKopZpovcrWlyAxJzKss3TA,1239
74
- fastmcp/server/openapi.py,sha256=-7-pKwQ1hT-UV9OnLlWrjbbXXRfZld8YJqa4Duybhtw,42102
75
+ fastmcp/server/openapi.py,sha256=vm8A8Qy-jzXuxILJs-nPOJLwU2yB0YHDqVpz2HX-AqM,42198
75
76
  fastmcp/server/proxy.py,sha256=y9h-49PIBNRh03HI3HcrY_lL8AMbKv45fyr2mAz3Vyo,25734
76
- fastmcp/server/server.py,sha256=JVGKi1uBsF3f3kHMQT2o0lxY-E76bbCFSuzz98Ume_M,90333
77
+ fastmcp/server/server.py,sha256=UTPqvfLWcYfn0d26uTsav_qwfNAXx-I9c9d_FXk0jus,90822
77
78
  fastmcp/server/auth/__init__.py,sha256=GwoyosVxuWCPzFHaCnj6iFp9fulnp124G2gQfsnzcgc,695
78
- fastmcp/server/auth/auth.py,sha256=373WvHAh-Vt6ktWa_xeW9Ci2WUB9KUwvhN848qNs6IE,12788
79
- fastmcp/server/auth/oauth_proxy.py,sha256=SxnO-K3P6UPR_uS5e63NYwWJ0V0ZY5UF9MGJX6UL4q0,40433
79
+ fastmcp/server/auth/auth.py,sha256=bZpgCXdjsdDLS2hreivKFUhPpCDJLC0_k-fJYH1Bg9A,13096
80
+ fastmcp/server/auth/oauth_proxy.py,sha256=FuRnA07EV7Jd9mvxO4m9qntiQLjv6RycYPj9k20Mbuc,43638
81
+ fastmcp/server/auth/oidc_proxy.py,sha256=HvgBPuEkcA3iLDEb_fH0kMIjgleWfIz5BftJ-LYdj1A,13047
80
82
  fastmcp/server/auth/redirect_validation.py,sha256=Jlhela9xpTbw4aWnQ04A5Z-TW0HYOC3f9BMsq3NXx1Q,2000
81
83
  fastmcp/server/auth/providers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
82
- fastmcp/server/auth/providers/azure.py,sha256=obQKR_M9XTjfZrqhzmfhRhCc4x4MPbF7uErDmWamSXQ,9940
84
+ fastmcp/server/auth/providers/auth0.py,sha256=A8jMqfz3o-RpOQ3-k70ad3JTN3YuWEwLYrlcBqdmlxw,6249
85
+ fastmcp/server/auth/providers/aws.py,sha256=PWqRgOgonL3HZXXNlMHruUBFSF3lficrMmJocjIC7K8,8921
86
+ fastmcp/server/auth/providers/azure.py,sha256=tprxHR6v9Ir8M-Fum3jxIFyguMVLgFawL6GGZirnos4,10158
83
87
  fastmcp/server/auth/providers/bearer.py,sha256=iu4pUj7TF5pT1wPuAGzDuM6lt5WtzenBN3c0otUleQY,923
84
- fastmcp/server/auth/providers/github.py,sha256=mGszC3iqp_OZTIShFgSEA3vBaXjpQ1v3ECqMn-3Gxq4,10575
85
- fastmcp/server/auth/providers/google.py,sha256=YvdS-QSdJMvVYVpYS5khZjE6ztv3EuTlXuoqpjsTPXI,11749
88
+ fastmcp/server/auth/providers/descope.py,sha256=-liMBDXP5W2TlaOhmiRF7_MHJF4TIh0Ga1ObGQRTi1U,6387
89
+ fastmcp/server/auth/providers/github.py,sha256=W-JtWTDpkJQeSZXrVgXA3yF-EL71OQ74vSDaC77n3nU,10793
90
+ fastmcp/server/auth/providers/google.py,sha256=HrVlvduWcGRAwFJfXoz-UvcHX0onBdx2TK661X4nP_Y,11967
86
91
  fastmcp/server/auth/providers/in_memory.py,sha256=CFCfYWMIPUxHNF5Liqud6ksedbykKV-RILWZqTxh3MY,14245
87
92
  fastmcp/server/auth/providers/jwt.py,sha256=hAV_QXIoD4wotW6iWm0k378_mjMtkwWVqWEp6Zc--HE,19525
88
- fastmcp/server/auth/providers/workos.py,sha256=1yUc8YrMIHCGeHySYkm0Xa7xtP3x4ukqLrlWl67SNnE,15422
93
+ fastmcp/server/auth/providers/workos.py,sha256=81iEjr7bebYWTcMs6uRoVy4iSQGpR77zCWLRPgcB2gQ,15640
89
94
  fastmcp/server/middleware/__init__.py,sha256=vh5C9ubN6q-y5QND32P4mQ4zDT89C7XYK39yqhELNAk,155
90
95
  fastmcp/server/middleware/error_handling.py,sha256=SoDatr9i3T2qSIUbSEGWrOnu4WPPyMDymnsF5GR_BiE,7572
91
- fastmcp/server/middleware/logging.py,sha256=ZXAT4Zc_I9Y_vWqHGiDmJFtXzijPJTrmCqz5JcJZvrg,7739
92
- fastmcp/server/middleware/middleware.py,sha256=i650qPrbESjLlOqbQYkV_Pz7NuS-vahe4O3FtOKMMno,6071
96
+ fastmcp/server/middleware/logging.py,sha256=z0S34sGb5WOWCdXYOD0InxsjykqxqRi-ubTTDGSFxrY,9177
97
+ fastmcp/server/middleware/middleware.py,sha256=JV0LuTYnSAxbRY0zwm2z3OSBGjwI9wWnFM8MdEmj0Qw,6147
93
98
  fastmcp/server/middleware/rate_limiting.py,sha256=VTrCoQFmWCm0BxwOrNfG21CBFDDOKJT7IiSEjpJgmPA,7921
94
99
  fastmcp/server/middleware/timing.py,sha256=lL_xc-ErLD5lplfvd5-HIyWEbZhgNBYkcQ74KFXAMkA,5591
95
100
  fastmcp/server/sampling/handler.py,sha256=yjLzvxlGllE-EY4bc6djsijEmwMT24PCpV6vJl-sPcI,580
96
101
  fastmcp/tools/__init__.py,sha256=vzqb-Y7Kf0d5T0aOsld-O-FA8kD7-4uFExChewFHEzY,201
97
- fastmcp/tools/tool.py,sha256=Q49E6L7Mx6v-VB9kru7CJVBM5_aF6V1Nti89scRv8Jc,19275
102
+ fastmcp/tools/tool.py,sha256=iG1OoOrml1U_m9NUOh_x6f5RYcprJdjjNnx1T5n-YsE,19885
98
103
  fastmcp/tools/tool_manager.py,sha256=xOm5XFbygUg2cW8jIiwhsgAdUA14wDMoUIvkWKL3LOU,9186
99
- fastmcp/tools/tool_transform.py,sha256=Mga202SjKhdMglhEXSPBi4dhq1bevfdsU5Rt21KVyZo,38447
104
+ fastmcp/tools/tool_transform.py,sha256=v5pgBddBacrryED_bSBOBe3jplInBE30W949_RxUzbA,38447
100
105
  fastmcp/utilities/__init__.py,sha256=-imJ8S-rXmbXMWeDamldP-dHDqAPg_wwmPVz-LNX14E,31
101
106
  fastmcp/utilities/auth.py,sha256=ZVHkNb4YBpLE1EmmFyhvFB2qfWDZdEYNH9TRI9jylOE,1140
102
107
  fastmcp/utilities/cli.py,sha256=NZbERkcatjKxgyE0sFT6g6tghhWkzz0QTI2u_LaQGXo,8662
@@ -104,25 +109,26 @@ fastmcp/utilities/components.py,sha256=ZZQuseI_880WjQZAXYPhCi70u8-bBANYgZHj1u67N
104
109
  fastmcp/utilities/exceptions.py,sha256=7Z9j5IzM5rT27BC1Mcn8tkS-bjqCYqMKwb2MMTaxJYU,1350
105
110
  fastmcp/utilities/http.py,sha256=1ns1ymBS-WSxbZjGP6JYjSO52Wa_ls4j4WbnXiupoa4,245
106
111
  fastmcp/utilities/inspect.py,sha256=UYQtU1gT_4iKev9iDjFHor61dHdPGugDplUq2ZsQS40,15575
107
- fastmcp/utilities/json_schema.py,sha256=Nk6qQKtp0-MlMbRQmx8ps8SJ7SW9CpuWhSes1VASFPQ,8141
112
+ fastmcp/utilities/json_schema.py,sha256=jR-J_6IKVYe3VCwgrDLwiKJOGTdekvgbQJWXnEKJLHs,8824
108
113
  fastmcp/utilities/json_schema_type.py,sha256=SX-qEZXC-sgUflOuIi3oi6jeCvIky3QS6m3Riihq6Xc,22273
109
- fastmcp/utilities/logging.py,sha256=O_TsD5x8BPRRQ-xAa2CZlpKfRjipkpvdg6w6invBZVY,1508
114
+ fastmcp/utilities/logging.py,sha256=3peqa3ShgcxvuPrSE337dTLCtCyC16sn1iY2FBTFYko,3477
110
115
  fastmcp/utilities/mcp_config.py,sha256=qATTXMGiYET-7PflOixQOgiw3aOizX-RlloRjAo7nwI,1796
111
116
  fastmcp/utilities/openapi.py,sha256=mfkY2XfWAmAOlKexArlrmDdD0Tkdqcn4TshsATaxB_o,63304
112
- fastmcp/utilities/tests.py,sha256=TRMIfcdSJWlHRA4mQSYu3OXlxnvqRYKhcJXEYG5BkYA,6403
113
- fastmcp/utilities/types.py,sha256=G60OPTub4ID2GQwxfIgR38PEyF7CaxLPZ-PfWkXberA,14462
117
+ fastmcp/utilities/storage.py,sha256=tNjiBjwrsibwuN-iD0ZScq0v--tq1ESMhIRW2NK7U_8,6230
118
+ fastmcp/utilities/tests.py,sha256=Hnq4fBsYjoTR0X3Omg2x4_34g8HjIRg3LlPlyrnq1Oc,6473
119
+ fastmcp/utilities/types.py,sha256=dZ9dw5U1gAOJsERODSlVF1Ua6q7XBAQaD7SF2K_H38w,14751
114
120
  fastmcp/utilities/mcp_server_config/__init__.py,sha256=qbfd0c6aBpi0_SVgwt4IQCQ9siqqxmr9PWSYGiPDJqE,791
115
121
  fastmcp/utilities/mcp_server_config/v1/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
116
- fastmcp/utilities/mcp_server_config/v1/mcp_server_config.py,sha256=GUYScKKvnDg76w2IFQ-IKfDWktW-RwMtWf1wLzCBJV4,15330
117
- fastmcp/utilities/mcp_server_config/v1/schema.json,sha256=Vrm7vOWtVcDyT1aUPXlcy916JXXSpCOcVygD5SYLUQU,8469
122
+ fastmcp/utilities/mcp_server_config/v1/mcp_server_config.py,sha256=bAkbUv1e7iFvX18qxp91l6NIDMnmRcLaYnroDKoyGOI,15372
123
+ fastmcp/utilities/mcp_server_config/v1/schema.json,sha256=uI7hQuF-sFDi4Zj5Quu5PeAPL6ZjDPifrt-pI0gKWTU,8504
118
124
  fastmcp/utilities/mcp_server_config/v1/environments/__init__.py,sha256=Tkv0dmJ6tKKotOBo-tho09QVdvEjy37iBsvBbEwH0EA,256
119
125
  fastmcp/utilities/mcp_server_config/v1/environments/base.py,sha256=FkrUsESEdW5akyn_FeR4tQB6Vlj7dO9VFcCj0YLCghQ,845
120
- fastmcp/utilities/mcp_server_config/v1/environments/uv.py,sha256=LZR9R5XjpIQZzbjdVeeNwMsO35T5cIKIweXTqy3bGIo,10977
126
+ fastmcp/utilities/mcp_server_config/v1/environments/uv.py,sha256=UzexA4kxuABtb2BZX8u6RYyrCd5xvW_7FiBjmgR47dc,9722
121
127
  fastmcp/utilities/mcp_server_config/v1/sources/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
122
128
  fastmcp/utilities/mcp_server_config/v1/sources/base.py,sha256=KWunc5peDLFdSdLX8l3UI9SNxtN-KNq2FOXAZ7XD62c,980
123
129
  fastmcp/utilities/mcp_server_config/v1/sources/filesystem.py,sha256=eFX47XNXz2oKHW8MZvx60dqyHkBxdg2FMOrHcyAS28g,8106
124
- fastmcp-2.12.2.dist-info/METADATA,sha256=LhSvE4fF6XVWjPUjsIkhk_LthV3uQy40-iPnSMczNYs,17919
125
- fastmcp-2.12.2.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
126
- fastmcp-2.12.2.dist-info/entry_points.txt,sha256=ff8bMtKX1JvXyurMibAacMSKbJEPmac9ffAKU9mLnM8,44
127
- fastmcp-2.12.2.dist-info/licenses/LICENSE,sha256=QwcOLU5TJoTeUhuIXzhdCEEDDvorGiC6-3YTOl4TecE,11356
128
- fastmcp-2.12.2.dist-info/RECORD,,
130
+ fastmcp-2.12.4.dist-info/METADATA,sha256=ecD3cOe5aUKz5OdRsx_mEYQ_bVBwuX5gfcDhMYmrWus,19727
131
+ fastmcp-2.12.4.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
132
+ fastmcp-2.12.4.dist-info/entry_points.txt,sha256=ff8bMtKX1JvXyurMibAacMSKbJEPmac9ffAKU9mLnM8,44
133
+ fastmcp-2.12.4.dist-info/licenses/LICENSE,sha256=QwcOLU5TJoTeUhuIXzhdCEEDDvorGiC6-3YTOl4TecE,11356
134
+ fastmcp-2.12.4.dist-info/RECORD,,