fastmcp 2.13.2__py3-none-any.whl → 2.14.0__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 (74) hide show
  1. fastmcp/__init__.py +0 -21
  2. fastmcp/cli/__init__.py +0 -3
  3. fastmcp/cli/__main__.py +5 -0
  4. fastmcp/cli/cli.py +8 -22
  5. fastmcp/cli/install/shared.py +0 -15
  6. fastmcp/cli/tasks.py +110 -0
  7. fastmcp/client/auth/oauth.py +9 -9
  8. fastmcp/client/client.py +665 -129
  9. fastmcp/client/elicitation.py +11 -5
  10. fastmcp/client/messages.py +7 -5
  11. fastmcp/client/roots.py +2 -1
  12. fastmcp/client/tasks.py +614 -0
  13. fastmcp/client/transports.py +37 -5
  14. fastmcp/contrib/component_manager/component_service.py +4 -20
  15. fastmcp/dependencies.py +25 -0
  16. fastmcp/experimental/sampling/handlers/openai.py +1 -1
  17. fastmcp/experimental/server/openapi/__init__.py +15 -13
  18. fastmcp/experimental/utilities/openapi/__init__.py +12 -38
  19. fastmcp/prompts/prompt.py +33 -33
  20. fastmcp/resources/resource.py +29 -12
  21. fastmcp/resources/template.py +64 -54
  22. fastmcp/server/auth/__init__.py +0 -9
  23. fastmcp/server/auth/auth.py +127 -3
  24. fastmcp/server/auth/oauth_proxy.py +47 -97
  25. fastmcp/server/auth/oidc_proxy.py +7 -0
  26. fastmcp/server/auth/providers/in_memory.py +2 -2
  27. fastmcp/server/auth/providers/oci.py +2 -2
  28. fastmcp/server/context.py +66 -72
  29. fastmcp/server/dependencies.py +464 -6
  30. fastmcp/server/elicitation.py +285 -47
  31. fastmcp/server/event_store.py +177 -0
  32. fastmcp/server/http.py +15 -3
  33. fastmcp/server/low_level.py +56 -12
  34. fastmcp/server/middleware/middleware.py +2 -2
  35. fastmcp/server/openapi/__init__.py +35 -0
  36. fastmcp/{experimental/server → server}/openapi/components.py +4 -3
  37. fastmcp/{experimental/server → server}/openapi/routing.py +1 -1
  38. fastmcp/{experimental/server → server}/openapi/server.py +6 -5
  39. fastmcp/server/proxy.py +50 -37
  40. fastmcp/server/server.py +731 -532
  41. fastmcp/server/tasks/__init__.py +21 -0
  42. fastmcp/server/tasks/capabilities.py +22 -0
  43. fastmcp/server/tasks/config.py +89 -0
  44. fastmcp/server/tasks/converters.py +205 -0
  45. fastmcp/server/tasks/handlers.py +356 -0
  46. fastmcp/server/tasks/keys.py +93 -0
  47. fastmcp/server/tasks/protocol.py +355 -0
  48. fastmcp/server/tasks/subscriptions.py +205 -0
  49. fastmcp/settings.py +101 -103
  50. fastmcp/tools/tool.py +80 -44
  51. fastmcp/tools/tool_transform.py +1 -12
  52. fastmcp/utilities/components.py +3 -3
  53. fastmcp/utilities/json_schema_type.py +4 -4
  54. fastmcp/utilities/mcp_config.py +1 -2
  55. fastmcp/utilities/mcp_server_config/v1/mcp_server_config.py +1 -1
  56. fastmcp/{experimental/utilities → utilities}/openapi/README.md +7 -35
  57. fastmcp/utilities/openapi/__init__.py +63 -0
  58. fastmcp/{experimental/utilities → utilities}/openapi/formatters.py +5 -5
  59. fastmcp/{experimental/utilities → utilities}/openapi/json_schema_converter.py +1 -1
  60. fastmcp/utilities/tests.py +11 -5
  61. fastmcp/utilities/types.py +8 -0
  62. {fastmcp-2.13.2.dist-info → fastmcp-2.14.0.dist-info}/METADATA +5 -4
  63. {fastmcp-2.13.2.dist-info → fastmcp-2.14.0.dist-info}/RECORD +71 -59
  64. fastmcp/server/auth/providers/bearer.py +0 -25
  65. fastmcp/server/openapi.py +0 -1087
  66. fastmcp/utilities/openapi.py +0 -1568
  67. /fastmcp/{experimental/server → server}/openapi/README.md +0 -0
  68. /fastmcp/{experimental/utilities → utilities}/openapi/director.py +0 -0
  69. /fastmcp/{experimental/utilities → utilities}/openapi/models.py +0 -0
  70. /fastmcp/{experimental/utilities → utilities}/openapi/parser.py +0 -0
  71. /fastmcp/{experimental/utilities → utilities}/openapi/schemas.py +0 -0
  72. {fastmcp-2.13.2.dist-info → fastmcp-2.14.0.dist-info}/WHEEL +0 -0
  73. {fastmcp-2.13.2.dist-info → fastmcp-2.14.0.dist-info}/entry_points.txt +0 -0
  74. {fastmcp-2.13.2.dist-info → fastmcp-2.14.0.dist-info}/licenses/LICENSE +0 -0
@@ -1,10 +1,10 @@
1
- # OpenAPI Utilities (New Implementation)
1
+ # OpenAPI Utilities
2
2
 
3
- This directory contains the next-generation OpenAPI integration utilities for FastMCP, designed to replace the legacy `openapi.py` implementation.
3
+ This directory contains the OpenAPI integration utilities for FastMCP.
4
4
 
5
5
  ## Architecture Overview
6
6
 
7
- The new implementation follows a **stateless request building strategy** using `openapi-core` for high-performance, per-request HTTP request construction, eliminating startup latency while maintaining robust OpenAPI compliance.
7
+ The implementation follows a **stateless request building strategy** using `openapi-core` for high-performance, per-request HTTP request construction, eliminating startup latency while maintaining robust OpenAPI compliance.
8
8
 
9
9
  ### Core Components
10
10
 
@@ -83,7 +83,7 @@ MCP Tool Call → RequestDirector.build() → httpx.Request → HTTP Response
83
83
 
84
84
  ## Component Integration
85
85
 
86
- ### Server Components (`/server/openapi_new/`)
86
+ ### Server Components (`/server/openapi/`)
87
87
 
88
88
  1. **`OpenAPITool`** - Simplified tool implementation using RequestDirector
89
89
  2. **`OpenAPIResource`** - Resource implementation with RequestDirector
@@ -104,7 +104,7 @@ All components use the same RequestDirector approach:
104
104
 
105
105
  ```python
106
106
  import httpx
107
- from fastmcp.server.openapi_new import FastMCPOpenAPI
107
+ from fastmcp.server.openapi import FastMCPOpenAPI
108
108
 
109
109
  # OpenAPI spec (can be loaded from file/URL)
110
110
  openapi_spec = {...}
@@ -124,7 +124,7 @@ async with httpx.AsyncClient() as client:
124
124
  ### Direct RequestDirector Usage
125
125
 
126
126
  ```python
127
- from fastmcp.experimental.utilities.openapi.director import RequestDirector
127
+ from fastmcp.utilities.openapi.director import RequestDirector
128
128
  from jsonschema_path import SchemaPath
129
129
 
130
130
  # Create RequestDirector manually
@@ -141,7 +141,7 @@ async with httpx.AsyncClient() as client:
141
141
 
142
142
  ## Testing Strategy
143
143
 
144
- Tests are located in `/tests/server/openapi_new/`:
144
+ Tests are located in `/tests/server/openapi/`:
145
145
 
146
146
  ### Test Categories
147
147
 
@@ -160,34 +160,6 @@ Tests are located in `/tests/server/openapi_new/`:
160
160
  - **Performance Focus**: Test that initialization is fast and stateless
161
161
  - **Behavioral Testing**: Verify OpenAPI compliance without implementation details
162
162
 
163
- ## Migration Guide
164
-
165
- ### From Legacy Implementation
166
-
167
- 1. **Import Changes**:
168
- ```python
169
- # Old
170
- from fastmcp.server.openapi import FastMCPOpenAPI
171
-
172
- # New
173
- from fastmcp.server.openapi_new import FastMCPOpenAPI
174
- ```
175
-
176
- 2. **Constructor**: Same interface, no changes needed
177
-
178
- 3. **Automatic Benefits**:
179
- - Eliminates startup latency (100-200ms improvement)
180
- - Better OpenAPI compliance via openapi-core
181
- - Serverless-friendly performance characteristics
182
- - Simplified architecture without fallback complexity
183
-
184
- ### Performance Improvements
185
-
186
- - **Cold Start**: Zero latency penalty for serverless deployments
187
- - **Memory Usage**: Lower memory footprint without generated client code
188
- - **Reliability**: No dynamic code generation failures
189
- - **Maintainability**: Simpler architecture with fewer moving parts
190
-
191
163
  ## Future Enhancements
192
164
 
193
165
  ### Planned Features
@@ -0,0 +1,63 @@
1
+ """OpenAPI utilities for FastMCP - refactored for better maintainability."""
2
+
3
+ # Import from models
4
+ from .models import (
5
+ HTTPRoute,
6
+ HttpMethod,
7
+ JsonSchema,
8
+ ParameterInfo,
9
+ ParameterLocation,
10
+ RequestBodyInfo,
11
+ ResponseInfo,
12
+ )
13
+
14
+ # Import from parser
15
+ from .parser import parse_openapi_to_http_routes
16
+
17
+ # Import from formatters
18
+ from .formatters import (
19
+ format_array_parameter,
20
+ format_deep_object_parameter,
21
+ format_description_with_responses,
22
+ format_json_for_description,
23
+ format_simple_description,
24
+ generate_example_from_schema,
25
+ )
26
+
27
+ # Import from schemas
28
+ from .schemas import (
29
+ _combine_schemas,
30
+ extract_output_schema_from_responses,
31
+ clean_schema_for_display,
32
+ _make_optional_parameter_nullable,
33
+ )
34
+
35
+ # Import from json_schema_converter
36
+ from .json_schema_converter import (
37
+ convert_openapi_schema_to_json_schema,
38
+ convert_schema_definitions,
39
+ )
40
+
41
+ # Export public symbols - maintaining backward compatibility
42
+ __all__ = [
43
+ "HTTPRoute",
44
+ "HttpMethod",
45
+ "JsonSchema",
46
+ "ParameterInfo",
47
+ "ParameterLocation",
48
+ "RequestBodyInfo",
49
+ "ResponseInfo",
50
+ "_combine_schemas",
51
+ "_make_optional_parameter_nullable",
52
+ "clean_schema_for_display",
53
+ "convert_openapi_schema_to_json_schema",
54
+ "convert_schema_definitions",
55
+ "extract_output_schema_from_responses",
56
+ "format_array_parameter",
57
+ "format_deep_object_parameter",
58
+ "format_description_with_responses",
59
+ "format_json_for_description",
60
+ "format_simple_description",
61
+ "generate_example_from_schema",
62
+ "parse_openapi_to_http_routes",
63
+ ]
@@ -67,13 +67,13 @@ def format_deep_object_parameter(
67
67
  param_value: dict, parameter_name: str
68
68
  ) -> dict[str, str]:
69
69
  """
70
- Format a dictionary parameter for deepObject style serialization.
70
+ Format a dictionary parameter for deep-object style serialization.
71
71
 
72
72
  According to OpenAPI 3.0 spec, deepObject style with explode=true serializes
73
73
  object properties as separate query parameters with bracket notation.
74
74
 
75
- For example: {"id": "123", "type": "user"} becomes:
76
- param[id]=123&param[type]=user
75
+ For example, `{"id": "123", "type": "user"}` becomes
76
+ `param[id]=123&param[type]=user`.
77
77
 
78
78
  Args:
79
79
  param_value: Dictionary value to format
@@ -84,7 +84,7 @@ def format_deep_object_parameter(
84
84
  """
85
85
  if not isinstance(param_value, dict):
86
86
  logger.warning(
87
- f"deepObject style parameter '{parameter_name}' expected dict, got {type(param_value)}"
87
+ f"Deep-object style parameter '{parameter_name}' expected dict, got {type(param_value)}"
88
88
  )
89
89
  return {}
90
90
 
@@ -181,7 +181,7 @@ def generate_example_from_schema(schema: JsonSchema | None) -> Any:
181
181
 
182
182
 
183
183
  def format_json_for_description(data: Any, indent: int = 2) -> str:
184
- """Formats Python data as a JSON string block for markdown."""
184
+ """Formats Python data as a JSON string block for Markdown."""
185
185
  try:
186
186
  json_str = json.dumps(data, indent=indent)
187
187
  return f"```json\n{json_str}\n```"
@@ -60,7 +60,7 @@ def convert_openapi_schema_to_json_schema(
60
60
  convert_one_of_to_any_of: Whether to convert oneOf to anyOf
61
61
 
62
62
  Returns:
63
- JSON Schema compatible dictionary
63
+ JSON Schema-compatible dictionary
64
64
  """
65
65
  if not isinstance(schema, dict):
66
66
  return schema
@@ -12,6 +12,7 @@ from urllib.parse import parse_qs, urlparse
12
12
 
13
13
  import httpx
14
14
  import uvicorn
15
+ from pytest import LogCaptureFixture
15
16
 
16
17
  from fastmcp import settings
17
18
  from fastmcp.client.auth.oauth import OAuth
@@ -208,20 +209,25 @@ async def run_server_async(
208
209
  )
209
210
  )
210
211
 
211
- # Give the server a moment to start
212
+ # Wait for server lifespan to be ready
213
+ await server._started.wait()
214
+
215
+ # Give uvicorn a moment to bind the port after lifespan is ready
212
216
  await asyncio.sleep(0.1)
213
217
 
214
218
  try:
215
219
  yield f"http://{host}:{port}{path}"
216
220
  finally:
217
- # Cleanup: cancel the task
221
+ # Cleanup: cancel the task with timeout to avoid hanging on Windows
218
222
  server_task.cancel()
219
- with suppress(asyncio.CancelledError):
220
- await server_task
223
+ with suppress(asyncio.CancelledError, asyncio.TimeoutError):
224
+ await asyncio.wait_for(server_task, timeout=2.0)
221
225
 
222
226
 
223
227
  @contextmanager
224
- def caplog_for_fastmcp(caplog):
228
+ def caplog_for_fastmcp(
229
+ caplog: LogCaptureFixture,
230
+ ) -> Generator[LogCaptureFixture, None, None]:
225
231
  """Context manager to capture logs from FastMCP loggers even when propagation is disabled."""
226
232
  caplog.clear()
227
233
  logger = logging.getLogger("fastmcp")
@@ -206,6 +206,13 @@ def create_function_without_params(
206
206
  k: v for k, v in original_annotations.items() if k not in exclude_params
207
207
  }
208
208
 
209
+ # Create new signature without the excluded parameters
210
+ sig = inspect.signature(fn)
211
+ new_params = [
212
+ param for name, param in sig.parameters.items() if name not in exclude_params
213
+ ]
214
+ new_sig = inspect.Signature(new_params, return_annotation=sig.return_annotation)
215
+
209
216
  new_func = types.FunctionType(
210
217
  code,
211
218
  globals_dict,
@@ -217,6 +224,7 @@ def create_function_without_params(
217
224
  new_func.__module__ = fn.__module__
218
225
  new_func.__qualname__ = getattr(fn, "__qualname__", fn.__name__) # ty: ignore[unresolved-attribute]
219
226
  new_func.__annotations__ = new_annotations
227
+ new_func.__signature__ = new_sig # type: ignore[attr-defined]
220
228
 
221
229
  if inspect.ismethod(fn):
222
230
  return types.MethodType(new_func, fn.__self__)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fastmcp
3
- Version: 2.13.2
3
+ Version: 2.14.0
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
@@ -23,11 +23,12 @@ Requires-Dist: cyclopts>=4.0.0
23
23
  Requires-Dist: exceptiongroup>=1.2.2
24
24
  Requires-Dist: httpx>=0.28.1
25
25
  Requires-Dist: jsonschema-path>=0.3.4
26
- Requires-Dist: mcp!=1.21.1,<2.0.0,>=1.19.0
26
+ Requires-Dist: mcp>=1.23.1
27
27
  Requires-Dist: openapi-pydantic>=0.5.1
28
28
  Requires-Dist: platformdirs>=4.0.0
29
- Requires-Dist: py-key-value-aio[disk,memory]<0.4.0,>=0.2.8
29
+ Requires-Dist: py-key-value-aio[disk,keyring,memory]<0.4.0,>=0.3.0
30
30
  Requires-Dist: pydantic[email]>=2.11.7
31
+ Requires-Dist: pydocket>=0.15.2
31
32
  Requires-Dist: pyperclip>=1.9.0
32
33
  Requires-Dist: python-dotenv>=1.1.0
33
34
  Requires-Dist: rich>=13.9.4
@@ -199,7 +200,7 @@ from fastmcp import FastMCP
199
200
  mcp = FastMCP(name="MyAssistantServer")
200
201
  ```
201
202
 
202
- Learn more in the [**FastMCP Server Documentation**](https://gofastmcp.com/servers/fastmcp).
203
+ Learn more in the [**FastMCP Server Documentation**](https://gofastmcp.com/servers/server).
203
204
 
204
205
  ### Tools
205
206
 
@@ -1,31 +1,35 @@
1
- fastmcp/__init__.py,sha256=oKNRn6cUVk3nabmXR9SFEvKz-yotC8tVDNYRorxX-Wk,1544
1
+ fastmcp/__init__.py,sha256=aArtRHXrBhV3SDPbgjJ7Tm6dI2V9waLH3M4xpGTSmPw,827
2
+ fastmcp/dependencies.py,sha256=Un5S30WHJbAiIdjVjEeaQC7UcEVEkkyjf4EF7l4FYq0,513
2
3
  fastmcp/exceptions.py,sha256=-krEavxwddQau6T7MESCR4VjKNLfP9KHJrU1p3y72FU,744
3
4
  fastmcp/mcp_config.py,sha256=YXZ0piljrxFgPYEwYSwPw6IiPwU3Cwp2VzlT9CWxutc,11397
4
5
  fastmcp/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
- fastmcp/settings.py,sha256=RqtXzbIGFWLFbgK82pGOx-OGWtrVKZe3KcBWinCgACY,13936
6
- fastmcp/cli/__init__.py,sha256=Ii284TNoG5lxTP40ETMGhHEq3lQZWxu9m9JuU57kUpQ,87
7
- fastmcp/cli/cli.py,sha256=FMrda7kHwNDCflUiJTSWD_w3vuuQsgSj2IuWk8ZZsEM,29108
6
+ fastmcp/settings.py,sha256=565ICavv2ms1lCvGV4XS6VXIYJZyB0os3Ifsr03A6YA,13307
7
+ fastmcp/cli/__init__.py,sha256=Bo7WQWPBRQ6fqbYYPfbadefpXgl2h9gkdMaqTazGWyw,49
8
+ fastmcp/cli/__main__.py,sha256=cGU_smvfctQI9xEY13u7tTEwwUI4AUieikXXA7ykYhA,69
9
+ fastmcp/cli/cli.py,sha256=HQ7MpR_7sB-bgQKG1XOd8epS2RIv_CqdYdHT8mZLszI,28242
8
10
  fastmcp/cli/run.py,sha256=HeaiHYcVY17JpHg4UjnIHkP5ttU0PNd1bZIL3brif8A,7047
11
+ fastmcp/cli/tasks.py,sha256=B57vy76d3ybdi4wmlODRCCFrte1GmhLKqYixzRkGUuw,3791
9
12
  fastmcp/cli/install/__init__.py,sha256=FUrwjMVaxONgz1qO7suzJNz1xosRfR3TOHlr3Z77JXA,797
10
13
  fastmcp/cli/install/claude_code.py,sha256=vGv8hbMUM6p5uQ1scy6E7Qxn0BZ2_INATF0xmSl5QWQ,7617
11
14
  fastmcp/cli/install/claude_desktop.py,sha256=aX_BrH5ODEN6UPHdw-Gnh0r5g8TojvTA7trqQRCEdAw,6832
12
15
  fastmcp/cli/install/cursor.py,sha256=0qSkKp4JuZj2dGOAsPph9XS_LswV8rQ8CqAuEx7TNhA,10685
13
16
  fastmcp/cli/install/gemini_cli.py,sha256=G7NhKnH21893baQjmVbFpwRyMbYIq7bocPQz1CBUH_8,7630
14
17
  fastmcp/cli/install/mcp_json.py,sha256=l7b0sWB10YlbcXtcwJv1X2iHEP9V9EwuuD63PyTMvXI,5832
15
- fastmcp/cli/install/shared.py,sha256=_1MNGCqf7BsAL6ntwA75wn86-0g-248ppQSAPQ8uTXk,5103
18
+ fastmcp/cli/install/shared.py,sha256=Qf5VH0b6l66yyBzDYtZwbbESUDYn6k5oyb6u-xepPTI,4447
16
19
  fastmcp/client/__init__.py,sha256=QHvSGJCLejQkQ4o070vsUdKNB8vUhxckBByvHjnteTQ,663
17
- fastmcp/client/client.py,sha256=_CiqszJLahHsNDgaOpkf5v8csJ6D1dDdpv3TiDsNwzs,38899
18
- fastmcp/client/elicitation.py,sha256=VNWgeBe2KipLp9mCc-6AApmfYAU1OlH9_3JdskfW_Wc,2521
20
+ fastmcp/client/client.py,sha256=5TlUA6O3W1r0sLS19MHyVkK-GsWdNL2rzdbsyCCKFVw,59717
21
+ fastmcp/client/elicitation.py,sha256=KlLvZn4FpwC5S5iXNq79mtqtbrtUjXyked-l-pZk6js,2878
19
22
  fastmcp/client/logging.py,sha256=WBByRoBIB-Bl3ZUJVFvHqRt4teYPAvqC8MnJ358Elg8,1939
20
- fastmcp/client/messages.py,sha256=NIPjt-5js_DkI5BD4OVdTf6pz-nGjc2dtbgt-vAY234,4329
23
+ fastmcp/client/messages.py,sha256=g85Qca7aiMQLt4E4PwzUoLK6EIS8UM9j2qNwOEHjy0M,4636
21
24
  fastmcp/client/oauth_callback.py,sha256=3xqL5_HD1QS9eGfw31HzoVF94QQelq_0TTqS7qWDlQQ,7709
22
25
  fastmcp/client/progress.py,sha256=WjLLDbUKMsx8DK-fqO7AGsXb83ak-6BMrLvzzznGmcI,1043
23
- fastmcp/client/roots.py,sha256=IxI_bHwHTmg6c2H-s1av1ZgrRnNDieHtYwdGFbzXT5c,2471
26
+ fastmcp/client/roots.py,sha256=Uap1RSr3uEeQRZTHkEttkhTI2fOA8IeDcRSggtZp9aY,2568
24
27
  fastmcp/client/sampling.py,sha256=MEXgywI46X-E78gCLCKEiQ14iu4uQqohLav-MNCtD_U,1819
25
- fastmcp/client/transports.py,sha256=sYbh50h0qcgB5C6OLdzHSF1hn2IOfty3XJEu2Dlg42o,40993
28
+ fastmcp/client/tasks.py,sha256=EnWOa69Jw1MYkuf_rzFrhZlfCUpSFjiD7DkAoOlALSs,21653
29
+ fastmcp/client/transports.py,sha256=9WfOVMzLdYQqFcZ1cE2oR0KAp1XeOZ5hQNOhARkPl5s,42342
26
30
  fastmcp/client/auth/__init__.py,sha256=4DNsfp4iaQeBcpds0JDdMn6Mmfud44stWLsret0sVKY,91
27
31
  fastmcp/client/auth/bearer.py,sha256=MFEFqcH6u_V86msYiOsEFKN5ks1V9BnBNiPsPLHUTqo,399
28
- fastmcp/client/auth/oauth.py,sha256=RJSazIALhLoNtqbJk1lsktYjVypJ89OtJE7_tjjQHgE,12445
32
+ fastmcp/client/auth/oauth.py,sha256=8B1HTPoPhEFQUZBfuhR6jqq4CHu6BDATVowC3ayZmg8,12513
29
33
  fastmcp/contrib/README.md,sha256=rKknYSI1T192UvSszqwwDlQ2eYQpxywrNTLoj177SYU,878
30
34
  fastmcp/contrib/bulk_tool_caller/README.md,sha256=5aUUY1TSFKtz1pvTLSDqkUCkGkuqMfMZNsLeaNqEgAc,1960
31
35
  fastmcp/contrib/bulk_tool_caller/__init__.py,sha256=xvGSSaUXTQrc31erBoi1Gh7BikgOliETDiYVTP3rLxY,75
@@ -34,7 +38,7 @@ fastmcp/contrib/bulk_tool_caller/example.py,sha256=6og_8pCJN_CabworC5R82zPAwwwM-
34
38
  fastmcp/contrib/component_manager/README.md,sha256=sTan1D51jzkPNnCQTxwd5JXGzWVy4DtkUjrUfNH3-F0,4457
35
39
  fastmcp/contrib/component_manager/__init__.py,sha256=9xu58ftB0Aqd5RymZgnkJMH9rTHBcrO6iMQX9qdEy3s,164
36
40
  fastmcp/contrib/component_manager/component_manager.py,sha256=lS2KDsx_W6GDncWx6NhVNhg1X0TeGwQHWqP5PzlDPRM,6424
37
- fastmcp/contrib/component_manager/component_service.py,sha256=WGu3XcZSbHriSjvMfuroNZuT5xWWoYbEiIow8FPQNYg,8712
41
+ fastmcp/contrib/component_manager/component_service.py,sha256=hFW32Ti6RmYlEqL4FEIYCC1FyqMUkL7tOiJ8gay8cLg,8236
38
42
  fastmcp/contrib/component_manager/example.py,sha256=N16OIHmQuR-LNEv7bkrv2rGdMs862Nc3AKKEPfw-6rU,1587
39
43
  fastmcp/contrib/mcp_mixin/README.md,sha256=f6ine6z9kuEx1qKhY9jzrH6sAwj1oWpXcLXGvK0GMVk,5404
40
44
  fastmcp/contrib/mcp_mixin/__init__.py,sha256=zZFHlAGexUJCDLAg4p7CGZDmb-mgPdN1xVv0tR4mg7I,153
@@ -43,59 +47,47 @@ fastmcp/contrib/mcp_mixin/mcp_mixin.py,sha256=Ij009tiJBj1Lciz4abTICA1Il-kz_myr4a
43
47
  fastmcp/experimental/sampling/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
44
48
  fastmcp/experimental/sampling/handlers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
45
49
  fastmcp/experimental/sampling/handlers/base.py,sha256=mCPFj9ETc-Ro38R_pzx9rHVM2_EADCecScMkNWd6Tbs,714
46
- fastmcp/experimental/sampling/handlers/openai.py,sha256=ofNTv1p5Lf-A_SKWD-mEpx28k0E5SbYwRNLbjx-npyY,5765
47
- fastmcp/experimental/server/openapi/README.md,sha256=1Mc1Ur15OxMn-wAPEa1rZIiNNSMdv9sboQ3YpvNpUXM,9886
48
- fastmcp/experimental/server/openapi/__init__.py,sha256=cZPebMY9xwjW8nUgTN5MvawnZEFx9E0Oe_TFqSrevp0,728
49
- fastmcp/experimental/server/openapi/components.py,sha256=rKbrIZRaxV-mtpmeW2ZlYtCLE2eaScZF-3rKaMi9-rA,13371
50
- fastmcp/experimental/server/openapi/routing.py,sha256=hAhQCtode5NuEDVfzeMj5vK03T6ylOub_f7irgwoa5w,4031
51
- fastmcp/experimental/server/openapi/server.py,sha256=WQeUA3v69ZhrzN1-cbrDTC8EsaOXHwDSQT_NPgYrECk,16099
52
- fastmcp/experimental/utilities/openapi/README.md,sha256=pOXftamuVXxEMlOt-JAfpuvHeRGauC3l46ntD1WzM-A,8604
53
- fastmcp/experimental/utilities/openapi/__init__.py,sha256=6FTQyP-kWvFg5Ykq53j7byBhPuysOyMYSrFTdUAKeO0,1592
54
- fastmcp/experimental/utilities/openapi/director.py,sha256=bsK5W8-vdydbB85xMLy5WsQJewnObXaDrtAIS5HdKjY,7956
55
- fastmcp/experimental/utilities/openapi/formatters.py,sha256=1RCd8DwPU8_4uF51pj8Qp3oSZkZmoxL5VUwxBzokAMg,15540
56
- fastmcp/experimental/utilities/openapi/json_schema_converter.py,sha256=z8FjEDedsvAU1tT_ztl7oL_ERbjGufS3meVO-WKJhuE,13089
57
- fastmcp/experimental/utilities/openapi/models.py,sha256=-kfndwZSe92tVtKAgOuFn5rk1tN7oydCZKtLOEMEalA,2805
58
- fastmcp/experimental/utilities/openapi/parser.py,sha256=qsa68Ro1c8ov77kdEP20IwZqD74E4IGKjtfeIkn3HdE,34338
59
- fastmcp/experimental/utilities/openapi/schemas.py,sha256=84nPtnOlfjNoFGDoVoWLs0dh_7Ps92p3AuHgpVA5a-s,23349
50
+ fastmcp/experimental/sampling/handlers/openai.py,sha256=r7FUUL6fGHkYxsgFS44MyMxnaCrEYOYt9V98O_bjbyQ,5752
51
+ fastmcp/experimental/server/openapi/__init__.py,sha256=QNrM6ZNwJLk78jh7hq1tdZ-WnZLQ0KHd-7hjQgYeMqw,817
52
+ fastmcp/experimental/utilities/openapi/__init__.py,sha256=-SIYFQ4CE9MTxKQbksQ4J3lwm409EV3qKkHuTwAEyNk,907
60
53
  fastmcp/prompts/__init__.py,sha256=BQ5ooDJcNhb5maYBcg2mF1VaHAY_A64cEU3UiCQ3Lw8,179
61
- fastmcp/prompts/prompt.py,sha256=G-P_Ln1xTQRy-bTyMFy2v--9guTNpn92e30cmysX1Q0,14335
54
+ fastmcp/prompts/prompt.py,sha256=Rc8IOKXNI-5_3en_cw_Ej7LVV49oFTn_0EUxlRScjPw,14483
62
55
  fastmcp/prompts/prompt_manager.py,sha256=5ZyT0blp5owuaN5pz_TQsyH6zUGFoUiVTGfiEnqBuj8,4262
63
56
  fastmcp/resources/__init__.py,sha256=si8aT_9taxUNN0vkfbifst_SCId56DZmYi4YOb4mtlE,463
64
- fastmcp/resources/resource.py,sha256=Rt260JyWuC_7Ufo3TtKxjPyKCTV-3zfsFF9wqHL8yWw,7168
57
+ fastmcp/resources/resource.py,sha256=uDzQFPzELpmyEC2FirwuhfTxLkog0nKmMmWtGOb-67U,7890
65
58
  fastmcp/resources/resource_manager.py,sha256=R-dtlhCYHcH1bnGuD0QW5aRUo_12_NeLkn9VLp4xmmU,13308
66
- fastmcp/resources/template.py,sha256=vu9InVUKc5CvEOUvlTXsZ8-tpet_-kf8yX-rNrxE4Pw,14802
59
+ fastmcp/resources/template.py,sha256=SJiiWBiZVspUxfzovaDlQZpVwoUcENgUWT7UGXLUwxU,15495
67
60
  fastmcp/resources/types.py,sha256=efFLGD1Xc5Xq3sxlPaZ_8gtJ2UOixueTBV4KQTi4cOU,4936
68
61
  fastmcp/server/__init__.py,sha256=qxNmIJcqsrpxpUvCv0mhdEAaUn1UZd1xLd8XRoWUlfY,119
69
- fastmcp/server/context.py,sha256=TYPUb7zr2rnNNmZSvaKbWy0J94dhdsL210eWl1HMPzQ,28650
70
- fastmcp/server/dependencies.py,sha256=gbtI6vqAH-u-TV9tbXZUcYisMCyUHs_-Y_PXcFxx5w4,5292
71
- fastmcp/server/elicitation.py,sha256=WYsj-H9U-t3b6awcLUWl1b1EA5X48Ef6_kvLhxYgYGs,8777
72
- fastmcp/server/http.py,sha256=IMggGikJxIMg1CkHH1du3BiKtbD2SU4wDyS0xvLG1O8,12032
73
- fastmcp/server/low_level.py,sha256=b1Sx0_Py0QxeLXSLdDA5PjR9Dd9ANB7KSNkkGSr1AeE,5490
74
- fastmcp/server/openapi.py,sha256=xWiQC3mjk81G7ZWhXF3PpECuCM1arD2tiHF9EM9kUyU,42332
75
- fastmcp/server/proxy.py,sha256=iGyBPPnhtzOxuTknv-OZEdzelgEF_MOBgI3RxEMxopI,26157
76
- fastmcp/server/server.py,sha256=G9Qesj1_p0AYvnqTA89dun2p1nwYMl1O-PMksZb93k8,109753
77
- fastmcp/server/auth/__init__.py,sha256=1VZ3MhZhlByvo7QCWT1tMIdRdMppUw4_TeqclSPJeiI,820
78
- fastmcp/server/auth/auth.py,sha256=YjRM4zHvTlAfQYB97HEnXfCgOXA60Kcrb5O2nHsyka8,14524
62
+ fastmcp/server/context.py,sha256=jQtDvn9IjxtYnzmDBnlpDAYMLYSn0efNy4QU6ww-HaY,28153
63
+ fastmcp/server/dependencies.py,sha256=7As8f1yRIQI0dSDpLVfSCPMXxaPuhUrDvNpxwjSG6W0,20643
64
+ fastmcp/server/elicitation.py,sha256=jmrLb_yzdmM9hVRxOYlC4aWnlCBCayuzVOs7--sByxU,17862
65
+ fastmcp/server/event_store.py,sha256=ZiBbrUQHw9--G8lzK1qLZmUAF2le2XchFen4pGbFKsE,6170
66
+ fastmcp/server/http.py,sha256=_HjMSYWH8mfKugDODU4iV0AhKDU2VRc40tS56L6i-_s,12737
67
+ fastmcp/server/low_level.py,sha256=o3jDf5SuZBQeurhLWRzaSVCnvrmaKMH_w-TbHk6BuZ4,7963
68
+ fastmcp/server/proxy.py,sha256=nG1ntmD9PpTbWpyY3Gn26vPpIcmjbEcoG3TlbYxeBB4,26855
69
+ fastmcp/server/server.py,sha256=BSh0AoOtFElhYxWZ1_ei2CdOHvn7hcHFQwpYShmdUWw,120764
70
+ fastmcp/server/auth/__init__.py,sha256=MTZvDKEUMqjs9-raRN0h8Zjx8pWFXs_iSRbB1UqBUqU,527
71
+ fastmcp/server/auth/auth.py,sha256=6FIjQLhQ-ps58o05nrOi5pyD1OmM0fANrV-M79Jb7do,19775
79
72
  fastmcp/server/auth/jwt_issuer.py,sha256=lJYvrpC1ygI4jkoJlL_nTH6m7FKdTw2lbEycKo4eHLY,7197
80
73
  fastmcp/server/auth/middleware.py,sha256=xwj3fUCLSlJK6n1Ehp-FN1qnjKqEz8b7LGAGMTqQ8Hk,3284
81
- fastmcp/server/auth/oauth_proxy.py,sha256=onInFJmGOxlAk2iZhug2AfncDFo3owkd1QbA6UQo_n0,92482
82
- fastmcp/server/auth/oidc_proxy.py,sha256=1VsNrTeBNnVm_yO5JPoIig-XvAynnsnFBwhaIx4fywE,17414
74
+ fastmcp/server/auth/oauth_proxy.py,sha256=Kk09KEK5YwZ2TnVbevqo0WuflBNz5kwWbOXq2St6itE,90694
75
+ fastmcp/server/auth/oidc_proxy.py,sha256=gU_RgBbVMj-9vn0TSRTmT1YaT19VFmJLpARcIXn208k,17969
83
76
  fastmcp/server/auth/redirect_validation.py,sha256=Jlhela9xpTbw4aWnQ04A5Z-TW0HYOC3f9BMsq3NXx1Q,2000
84
77
  fastmcp/server/auth/handlers/authorize.py,sha256=1zrmXqRUhjiWSHgUhfj0CcCkj3uSlGkTnxHzaic0xYs,11617
85
78
  fastmcp/server/auth/providers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
86
79
  fastmcp/server/auth/providers/auth0.py,sha256=dZkc7hppii20YWota_6_Y3vdNw-DZSq0OyModbly-RA,7814
87
80
  fastmcp/server/auth/providers/aws.py,sha256=MXoEEnXmeIlRjaHqTeNCmJ90iTx9jwUdEdpyLUmzfIc,10852
88
81
  fastmcp/server/auth/providers/azure.py,sha256=Lq949keq4-AC7AR6Dbn5caEim5XOAK3WpnB-GmRPLtY,20891
89
- fastmcp/server/auth/providers/bearer.py,sha256=LwkCfDJS48BxBxZwrIrauqNfCtDrJtGqYyEWnJjUq7s,923
90
82
  fastmcp/server/auth/providers/debug.py,sha256=92erHZGQB1ATsl6PwrXui6h3WJ4wLxE9ACbI3JutmWY,3881
91
83
  fastmcp/server/auth/providers/descope.py,sha256=y3PX3RmEL-JzHktKUbRW25QPZ7AVMGh579Pwgmr9P3k,9551
92
84
  fastmcp/server/auth/providers/discord.py,sha256=AK7WRydWNnXAUWnFeYUqgcdqsGkwFfcKZcyZMuOQcUw,12616
93
85
  fastmcp/server/auth/providers/github.py,sha256=xsv-Qj1VJRc64YcRuUG4a61xFH1nqqVX_biC7B1su9U,12414
94
86
  fastmcp/server/auth/providers/google.py,sha256=BAw3XfB8fE2zr80OZUP-bZBnlHRmZQGuvmoVFgW5D1E,14723
95
- fastmcp/server/auth/providers/in_memory.py,sha256=y8a8sfLQXctSB78yGpR3ZyG9x5pWRvI_t0LHgSZ4nvI,15444
87
+ fastmcp/server/auth/providers/in_memory.py,sha256=VjEQq8sEyPT0BQbjrOvriM0PY_HNd_YK1HbkrprVqyI,15496
96
88
  fastmcp/server/auth/providers/introspection.py,sha256=v2hlcuxxwug5myCr4KcTZlawwazAWYVHuRb0d3er13w,10733
97
89
  fastmcp/server/auth/providers/jwt.py,sha256=c-2Wji-CvuYt3U3unxjJR-5-EABRDks_755EpxKBDH8,20798
98
- fastmcp/server/auth/providers/oci.py,sha256=-XXDCmxnyBYJ9kdv_Y3iLJ4MxLSOgUjZdJrGwH3vPrE,9849
90
+ fastmcp/server/auth/providers/oci.py,sha256=QxpsStKEyl_W4dcJOky4m6wdpGnCSnt7WQ8DWjGPmSU,9894
99
91
  fastmcp/server/auth/providers/scalekit.py,sha256=30J2HImUAkyknMgH7lUGytcDOy4d01ClxTrBCO4E3GQ,9064
100
92
  fastmcp/server/auth/providers/supabase.py,sha256=9aK9fZ2OtccOF-ittMJnwj6sEzUNUTIrRPWAPLMwCac,7321
101
93
  fastmcp/server/auth/providers/workos.py,sha256=_KWsgKPV4OJ6a37FaVgq2LIzM3Nx26G5QQhgS8x2MO4,17244
@@ -103,33 +95,45 @@ fastmcp/server/middleware/__init__.py,sha256=LXT2IcZI4gbAtR4TnA7v_1lOWBR6eaHiE3C
103
95
  fastmcp/server/middleware/caching.py,sha256=xYUXkFeuoLaIJ_TB2570qEBS1TtneJClJOpJGNsNbu8,18414
104
96
  fastmcp/server/middleware/error_handling.py,sha256=eSMKrmIxDcnhzLGyOL49hup5k5e0iwvH_n2XVxJ69W8,7726
105
97
  fastmcp/server/middleware/logging.py,sha256=Reta-f4z8suYkJn4rPyJWYrNBeU25w8Y40U0uaV9ygo,9427
106
- fastmcp/server/middleware/middleware.py,sha256=qCzUFJ8vZfd2HwQFl8vcZ_waaaIpQEZgcBnNRahgRwk,6599
98
+ fastmcp/server/middleware/middleware.py,sha256=-L4QuyyjIF1QIcydWzamrmpIE2w7d2f35-QyoXMZnZM,6643
107
99
  fastmcp/server/middleware/rate_limiting.py,sha256=MwhMOhgsIhZjYwEQB8H8961hohV5564JlTwwYy_9ctU,7915
108
100
  fastmcp/server/middleware/timing.py,sha256=lL_xc-ErLD5lplfvd5-HIyWEbZhgNBYkcQ74KFXAMkA,5591
109
101
  fastmcp/server/middleware/tool_injection.py,sha256=zElqBN-yjZvcTADp57e0dn86kpxT9xsFqvYztiXuA08,3595
102
+ fastmcp/server/openapi/README.md,sha256=1Mc1Ur15OxMn-wAPEa1rZIiNNSMdv9sboQ3YpvNpUXM,9886
103
+ fastmcp/server/openapi/__init__.py,sha256=cZPebMY9xwjW8nUgTN5MvawnZEFx9E0Oe_TFqSrevp0,728
104
+ fastmcp/server/openapi/components.py,sha256=lHT3AJUKDt68-x7RpErP2ePLJp12HKKUn1VWq5TU6Ss,13346
105
+ fastmcp/server/openapi/routing.py,sha256=_WWci6GNqtfF-5yO-uHwXXc9nNFNV-YlbIWHa7-lCk4,4018
106
+ fastmcp/server/openapi/server.py,sha256=aQ_VwvHxdsC-O-7k_uKmPDkOlcgtOW-gk-RtlLtEtuw,16069
110
107
  fastmcp/server/sampling/handler.py,sha256=yjLzvxlGllE-EY4bc6djsijEmwMT24PCpV6vJl-sPcI,580
108
+ fastmcp/server/tasks/__init__.py,sha256=VizXvmXgA3SvrApQ6PSz4z1TPA9B6uROvmWeGSYOJ0I,530
109
+ fastmcp/server/tasks/capabilities.py,sha256=-8QMBjs6HZuQdUNmOrNEBvJs-opGptIyxOODU0TGGFE,574
110
+ fastmcp/server/tasks/config.py,sha256=msPkUuxnZKuqSj21Eh8m5Cwq0htwUzTCeoWsnbvKGkk,3006
111
+ fastmcp/server/tasks/converters.py,sha256=gDEYtf0MD2ypyR1gdyweHM5LdS3-wTsQaiCrsSDIOyY,6640
112
+ fastmcp/server/tasks/handlers.py,sha256=8wiDiP6tHj8E3iMEIpjZmoiY_k1wgQg-F59KwGk56X8,12489
113
+ fastmcp/server/tasks/keys.py,sha256=w9diycj0N6ViVqe6stxUS9vg2H94bl_614Bu5kNRM-k,3011
114
+ fastmcp/server/tasks/protocol.py,sha256=g97D4k1U8ua_UBTyoqFXcPp5rf6KvuiY5d6mx5KMIPY,12222
115
+ fastmcp/server/tasks/subscriptions.py,sha256=iehPO2zx80aRIqKHCFj9kuR5NVMqYSkIepMXBifQFWw,6692
111
116
  fastmcp/tools/__init__.py,sha256=XGcaMkBgwr-AHzbNjyjdb3ATgp5TQ0wzSq0nsrBD__E,201
112
- fastmcp/tools/tool.py,sha256=stqAmfmtCLor_WCD9WpPE-a4dzvZX3wRP5imG97UvUU,22091
117
+ fastmcp/tools/tool.py,sha256=Ouu-Z7ieGMv3xJ1eU4Et_Flfypglhgsr8iXHmVAFn60,23272
113
118
  fastmcp/tools/tool_manager.py,sha256=pCQGvKimXYEigcUqRHBd6_mbfJwD2KN3i0SmFj9Fj_c,5913
114
- fastmcp/tools/tool_transform.py,sha256=5ayCeLSUUTfhrWozODQ4yhF35t-XRnWPfc6vL3xtfJE,38579
119
+ fastmcp/tools/tool_transform.py,sha256=m1XDYuu_BDPxpH3yRNdT3jCca9KmVSO-Jd00BK4F5rw,38099
115
120
  fastmcp/utilities/__init__.py,sha256=-imJ8S-rXmbXMWeDamldP-dHDqAPg_wwmPVz-LNX14E,31
116
121
  fastmcp/utilities/auth.py,sha256=ZVHkNb4YBpLE1EmmFyhvFB2qfWDZdEYNH9TRI9jylOE,1140
117
122
  fastmcp/utilities/cli.py,sha256=46gyOddE8kWhUV2lHFM7kA2v0YNyzcajvIX3Db8gJXk,12174
118
- fastmcp/utilities/components.py,sha256=WY2Bmc4KOLFnDP3YVYB17q4tCCu8ky_naJ9MXFGX-6o,6009
123
+ fastmcp/utilities/components.py,sha256=fF4M9cdqbZTlDAZ0hltcTTg_8IU2jNSzOyH4oqH49ig,6087
119
124
  fastmcp/utilities/exceptions.py,sha256=7Z9j5IzM5rT27BC1Mcn8tkS-bjqCYqMKwb2MMTaxJYU,1350
120
125
  fastmcp/utilities/http.py,sha256=1ns1ymBS-WSxbZjGP6JYjSO52Wa_ls4j4WbnXiupoa4,245
121
126
  fastmcp/utilities/inspect.py,sha256=3wYUuQH1xCCCdzZwALHNqaRABH6iqpA43dIXEhqVb5Q,18030
122
127
  fastmcp/utilities/json_schema.py,sha256=-XjtAVzCaaJ_S-HoWo7Aabvlu8ubBqyoOinm9E85F4o,8888
123
- fastmcp/utilities/json_schema_type.py,sha256=AjBhZtAj9-g6goCZbzrSyFthlwrRrfrE4DzgCuphYdw,22250
128
+ fastmcp/utilities/json_schema_type.py,sha256=5cf1ZeHzqirrGx62kznqmgAWk0uCc29REVKcDRBeJX0,22348
124
129
  fastmcp/utilities/logging.py,sha256=61wVk5yQ62km3K8kZtkKtT_3EN26VL85GYW0aMtnwKA,7175
125
- fastmcp/utilities/mcp_config.py,sha256=qATTXMGiYET-7PflOixQOgiw3aOizX-RlloRjAo7nwI,1796
126
- fastmcp/utilities/openapi.py,sha256=Q3DD3Yc3JwoUG0usSI75OxbLT1ASq9FQwOymx1F8YZk,63339
127
- fastmcp/utilities/tests.py,sha256=ChjKv-k5vf9y4ZHqItagBtooqPNrQiiJLAARUVOEP6M,8922
128
- fastmcp/utilities/types.py,sha256=GA6aweKOke8nJDnESka3EKv9vStfKK5NiCZwLUF8Ars,17231
130
+ fastmcp/utilities/mcp_config.py,sha256=lVllZtAXZ3Zy78D40aXN-S5fs-ms0lgryL1tY2WzwCY,1783
131
+ fastmcp/utilities/tests.py,sha256=VIsYPpk07tXvE02yK_neBUeZgu5YtbUlK6JJNzU-6lQ,9229
132
+ fastmcp/utilities/types.py,sha256=7c56m736JjbKY-YP7RLWPZcsW5Z7mikpByKaDQ5IJwg,17586
129
133
  fastmcp/utilities/ui.py,sha256=gcnha7Vj4xEBxdrS83EZlKpN_43AQzcgiZFEvkTqzqg,14252
130
134
  fastmcp/utilities/mcp_server_config/__init__.py,sha256=hHBxEwRsrgN0Q-1bvj28X6UVGDpfG6dt3yfSBGsOY80,791
131
135
  fastmcp/utilities/mcp_server_config/v1/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
132
- fastmcp/utilities/mcp_server_config/v1/mcp_server_config.py,sha256=9XHryV-JnAcPP5YR_EzAkUDmj5Fm3PE8lNUgTflYZfs,15467
136
+ fastmcp/utilities/mcp_server_config/v1/mcp_server_config.py,sha256=1B3J7sRR0GcOW6FcSNNTTTOtEePNhUKc7Y0xEDk-wao,15497
133
137
  fastmcp/utilities/mcp_server_config/v1/schema.json,sha256=ymDNFOWzcpnhIMeJmVPTw9b-NtHoHoru8Mc0WlSVxUY,8602
134
138
  fastmcp/utilities/mcp_server_config/v1/environments/__init__.py,sha256=Tkv0dmJ6tKKotOBo-tho09QVdvEjy37iBsvBbEwH0EA,256
135
139
  fastmcp/utilities/mcp_server_config/v1/environments/base.py,sha256=fbC1C25jI1whwXLlIQtmji5B4UEHLgKvw5K8NICb33Y,826
@@ -137,8 +141,16 @@ fastmcp/utilities/mcp_server_config/v1/environments/uv.py,sha256=DPVAXM5JDTN89wO
137
141
  fastmcp/utilities/mcp_server_config/v1/sources/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
138
142
  fastmcp/utilities/mcp_server_config/v1/sources/base.py,sha256=Y5MCxJyoDsaxcBN1zDL0CZtF5oAXxT_yqQOI-ze9b34,967
139
143
  fastmcp/utilities/mcp_server_config/v1/sources/filesystem.py,sha256=eFX47XNXz2oKHW8MZvx60dqyHkBxdg2FMOrHcyAS28g,8106
140
- fastmcp-2.13.2.dist-info/METADATA,sha256=h46scB8lCi_OgT7NX1NHa3YRNN8xL18PNFKGovrCavQ,20513
141
- fastmcp-2.13.2.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
142
- fastmcp-2.13.2.dist-info/entry_points.txt,sha256=ff8bMtKX1JvXyurMibAacMSKbJEPmac9ffAKU9mLnM8,44
143
- fastmcp-2.13.2.dist-info/licenses/LICENSE,sha256=QwcOLU5TJoTeUhuIXzhdCEEDDvorGiC6-3YTOl4TecE,11356
144
- fastmcp-2.13.2.dist-info/RECORD,,
144
+ fastmcp/utilities/openapi/README.md,sha256=pcxMeSIHUmuhXHRYV7GOuMUZtw9QBv-rowQIDqmkab8,7657
145
+ fastmcp/utilities/openapi/__init__.py,sha256=6FTQyP-kWvFg5Ykq53j7byBhPuysOyMYSrFTdUAKeO0,1592
146
+ fastmcp/utilities/openapi/director.py,sha256=bsK5W8-vdydbB85xMLy5WsQJewnObXaDrtAIS5HdKjY,7956
147
+ fastmcp/utilities/openapi/formatters.py,sha256=AWyETOfnBmTUcD1T2ajfkbsVyyMnN4tZ-U34hFScWqI,15546
148
+ fastmcp/utilities/openapi/json_schema_converter.py,sha256=PxaYpgHBsdDTT0XSP6s4RZBMeDpAO_-dRXlBF2iYD9s,13089
149
+ fastmcp/utilities/openapi/models.py,sha256=-kfndwZSe92tVtKAgOuFn5rk1tN7oydCZKtLOEMEalA,2805
150
+ fastmcp/utilities/openapi/parser.py,sha256=qsa68Ro1c8ov77kdEP20IwZqD74E4IGKjtfeIkn3HdE,34338
151
+ fastmcp/utilities/openapi/schemas.py,sha256=84nPtnOlfjNoFGDoVoWLs0dh_7Ps92p3AuHgpVA5a-s,23349
152
+ fastmcp-2.14.0.dist-info/METADATA,sha256=Jte7HhFdX33G_bDG7Ose0xDSzGr7TTS7OrjdRn5ddMY,20536
153
+ fastmcp-2.14.0.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
154
+ fastmcp-2.14.0.dist-info/entry_points.txt,sha256=ff8bMtKX1JvXyurMibAacMSKbJEPmac9ffAKU9mLnM8,44
155
+ fastmcp-2.14.0.dist-info/licenses/LICENSE,sha256=QwcOLU5TJoTeUhuIXzhdCEEDDvorGiC6-3YTOl4TecE,11356
156
+ fastmcp-2.14.0.dist-info/RECORD,,
@@ -1,25 +0,0 @@
1
- """Backwards compatibility shim for BearerAuthProvider.
2
-
3
- The BearerAuthProvider class has been moved to fastmcp.server.auth.providers.jwt.JWTVerifier
4
- for better organization. This module provides a backwards-compatible import.
5
- """
6
-
7
- import warnings
8
-
9
- import fastmcp
10
- from fastmcp.server.auth.providers.jwt import JWKData, JWKSData, RSAKeyPair
11
- from fastmcp.server.auth.providers.jwt import JWTVerifier as BearerAuthProvider
12
-
13
- # Re-export for backwards compatibility
14
- __all__ = ["BearerAuthProvider", "JWKData", "JWKSData", "RSAKeyPair"]
15
-
16
- # Deprecated in 2.11
17
- if fastmcp.settings.deprecation_warnings:
18
- warnings.warn(
19
- "The `fastmcp.server.auth.providers.bearer` module is deprecated "
20
- "and will be removed in a future version. "
21
- "Please use `fastmcp.server.auth.providers.jwt.JWTVerifier` "
22
- "instead of this module's BearerAuthProvider.",
23
- DeprecationWarning,
24
- stacklevel=2,
25
- )