fastmcp 2.13.0rc2__py3-none-any.whl → 2.13.0.1__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 (81) hide show
  1. fastmcp/__init__.py +2 -2
  2. fastmcp/cli/cli.py +3 -2
  3. fastmcp/cli/install/claude_code.py +3 -3
  4. fastmcp/client/__init__.py +9 -9
  5. fastmcp/client/auth/oauth.py +7 -6
  6. fastmcp/client/client.py +10 -10
  7. fastmcp/client/oauth_callback.py +6 -2
  8. fastmcp/client/sampling.py +1 -1
  9. fastmcp/client/transports.py +35 -34
  10. fastmcp/contrib/component_manager/__init__.py +1 -1
  11. fastmcp/contrib/component_manager/component_manager.py +2 -2
  12. fastmcp/contrib/mcp_mixin/__init__.py +2 -2
  13. fastmcp/experimental/sampling/handlers/openai.py +2 -2
  14. fastmcp/experimental/server/openapi/__init__.py +5 -8
  15. fastmcp/experimental/server/openapi/components.py +11 -7
  16. fastmcp/experimental/server/openapi/routing.py +2 -2
  17. fastmcp/experimental/utilities/openapi/__init__.py +10 -15
  18. fastmcp/experimental/utilities/openapi/director.py +1 -1
  19. fastmcp/experimental/utilities/openapi/json_schema_converter.py +2 -2
  20. fastmcp/experimental/utilities/openapi/models.py +3 -3
  21. fastmcp/experimental/utilities/openapi/parser.py +3 -5
  22. fastmcp/experimental/utilities/openapi/schemas.py +2 -2
  23. fastmcp/mcp_config.py +2 -3
  24. fastmcp/prompts/__init__.py +1 -1
  25. fastmcp/prompts/prompt.py +9 -13
  26. fastmcp/resources/__init__.py +5 -5
  27. fastmcp/resources/resource.py +1 -3
  28. fastmcp/resources/resource_manager.py +1 -1
  29. fastmcp/resources/types.py +30 -24
  30. fastmcp/server/__init__.py +1 -1
  31. fastmcp/server/auth/__init__.py +5 -5
  32. fastmcp/server/auth/auth.py +2 -2
  33. fastmcp/server/auth/handlers/authorize.py +324 -0
  34. fastmcp/server/auth/jwt_issuer.py +39 -92
  35. fastmcp/server/auth/middleware.py +96 -0
  36. fastmcp/server/auth/oauth_proxy.py +236 -217
  37. fastmcp/server/auth/oidc_proxy.py +18 -3
  38. fastmcp/server/auth/providers/auth0.py +28 -15
  39. fastmcp/server/auth/providers/aws.py +16 -1
  40. fastmcp/server/auth/providers/azure.py +101 -40
  41. fastmcp/server/auth/providers/bearer.py +1 -1
  42. fastmcp/server/auth/providers/github.py +16 -1
  43. fastmcp/server/auth/providers/google.py +16 -1
  44. fastmcp/server/auth/providers/in_memory.py +2 -2
  45. fastmcp/server/auth/providers/introspection.py +2 -2
  46. fastmcp/server/auth/providers/jwt.py +17 -18
  47. fastmcp/server/auth/providers/supabase.py +1 -1
  48. fastmcp/server/auth/providers/workos.py +18 -3
  49. fastmcp/server/context.py +41 -12
  50. fastmcp/server/dependencies.py +5 -6
  51. fastmcp/server/elicitation.py +1 -1
  52. fastmcp/server/http.py +3 -4
  53. fastmcp/server/middleware/__init__.py +1 -1
  54. fastmcp/server/middleware/caching.py +1 -1
  55. fastmcp/server/middleware/error_handling.py +8 -8
  56. fastmcp/server/middleware/middleware.py +1 -1
  57. fastmcp/server/middleware/tool_injection.py +116 -0
  58. fastmcp/server/openapi.py +10 -6
  59. fastmcp/server/proxy.py +5 -4
  60. fastmcp/server/server.py +74 -55
  61. fastmcp/settings.py +2 -1
  62. fastmcp/tools/__init__.py +1 -1
  63. fastmcp/tools/tool.py +12 -12
  64. fastmcp/tools/tool_manager.py +8 -4
  65. fastmcp/tools/tool_transform.py +6 -6
  66. fastmcp/utilities/cli.py +50 -21
  67. fastmcp/utilities/inspect.py +2 -2
  68. fastmcp/utilities/json_schema_type.py +4 -4
  69. fastmcp/utilities/logging.py +14 -18
  70. fastmcp/utilities/mcp_server_config/__init__.py +3 -3
  71. fastmcp/utilities/mcp_server_config/v1/environments/base.py +1 -2
  72. fastmcp/utilities/mcp_server_config/v1/sources/base.py +0 -1
  73. fastmcp/utilities/openapi.py +9 -9
  74. fastmcp/utilities/tests.py +2 -4
  75. fastmcp/utilities/ui.py +126 -6
  76. {fastmcp-2.13.0rc2.dist-info → fastmcp-2.13.0.1.dist-info}/METADATA +5 -5
  77. fastmcp-2.13.0.1.dist-info/RECORD +141 -0
  78. fastmcp-2.13.0rc2.dist-info/RECORD +0 -138
  79. {fastmcp-2.13.0rc2.dist-info → fastmcp-2.13.0.1.dist-info}/WHEEL +0 -0
  80. {fastmcp-2.13.0rc2.dist-info → fastmcp-2.13.0.1.dist-info}/entry_points.txt +0 -0
  81. {fastmcp-2.13.0rc2.dist-info → fastmcp-2.13.0.1.dist-info}/licenses/LICENSE +0 -0
@@ -19,7 +19,6 @@ class Environment(BaseModel, ABC):
19
19
  Returns:
20
20
  Full command ready for subprocess execution
21
21
  """
22
- pass
23
22
 
24
23
  async def prepare(self, output_dir: Path | None = None) -> None:
25
24
  """Prepare the environment (optional, can be no-op).
@@ -27,4 +26,4 @@ class Environment(BaseModel, ABC):
27
26
  Args:
28
27
  output_dir: Directory for persistent environment setup
29
28
  """
30
- pass # Default no-op implementation
29
+ # Default no-op implementation
@@ -17,7 +17,6 @@ class Source(BaseModel, ABC):
17
17
  need preparation (e.g., local files), this is a no-op.
18
18
  """
19
19
  # Default implementation for sources that don't need preparation
20
- pass
21
20
 
22
21
  @abstractmethod
23
22
  async def load_server(self) -> Any:
@@ -175,16 +175,16 @@ class HTTPRoute(FastMCPBaseModel):
175
175
  # Export public symbols
176
176
  __all__ = [
177
177
  "HTTPRoute",
178
+ "HttpMethod",
179
+ "JsonSchema",
178
180
  "ParameterInfo",
181
+ "ParameterLocation",
179
182
  "RequestBodyInfo",
180
183
  "ResponseInfo",
181
- "HttpMethod",
182
- "ParameterLocation",
183
- "JsonSchema",
184
- "parse_openapi_to_http_routes",
184
+ "_handle_nullable_fields",
185
185
  "extract_output_schema_from_responses",
186
186
  "format_deep_object_parameter",
187
- "_handle_nullable_fields",
187
+ "parse_openapi_to_http_routes",
188
188
  ]
189
189
 
190
190
  # Type variables for generic parser
@@ -321,7 +321,7 @@ class OpenAPIParser(
321
321
  else:
322
322
  # Special handling for components
323
323
  if part == "components" and hasattr(target, "components"):
324
- target = getattr(target, "components")
324
+ target = target.components
325
325
  elif hasattr(target, part): # Fallback check
326
326
  target = getattr(target, part, None)
327
327
  else:
@@ -1178,10 +1178,10 @@ def _add_null_to_type(schema: dict[str, Any]) -> None:
1178
1178
  elif isinstance(current_type, list):
1179
1179
  # Add null to array if not already present
1180
1180
  if "null" not in current_type:
1181
- schema["type"] = current_type + ["null"]
1181
+ schema["type"] = [*current_type, "null"]
1182
1182
  elif "oneOf" in schema:
1183
1183
  # Convert oneOf to anyOf with null type
1184
- schema["anyOf"] = schema.pop("oneOf") + [{"type": "null"}]
1184
+ schema["anyOf"] = [*schema.pop("oneOf"), {"type": "null"}]
1185
1185
  elif "anyOf" in schema:
1186
1186
  # Add null type to anyOf if not already present
1187
1187
  if not any(item.get("type") == "null" for item in schema["anyOf"]):
@@ -1233,7 +1233,7 @@ def _handle_nullable_fields(schema: dict[str, Any] | Any) -> dict[str, Any] | An
1233
1233
 
1234
1234
  # Handle properties nullable fields
1235
1235
  if has_property_nullable_field and "properties" in result:
1236
- for prop_name, prop_schema in result["properties"].items():
1236
+ for _prop_name, prop_schema in result["properties"].items():
1237
1237
  if isinstance(prop_schema, dict) and "nullable" in prop_schema:
1238
1238
  nullable_value = prop_schema.pop("nullable")
1239
1239
  if nullable_value and (
@@ -6,7 +6,7 @@ import multiprocessing
6
6
  import socket
7
7
  import time
8
8
  from collections.abc import AsyncGenerator, Callable, Generator
9
- from contextlib import asynccontextmanager, contextmanager
9
+ from contextlib import asynccontextmanager, contextmanager, suppress
10
10
  from typing import TYPE_CHECKING, Any, Literal
11
11
  from urllib.parse import parse_qs, urlparse
12
12
 
@@ -216,10 +216,8 @@ async def run_server_async(
216
216
  finally:
217
217
  # Cleanup: cancel the task
218
218
  server_task.cancel()
219
- try:
219
+ with suppress(asyncio.CancelledError):
220
220
  await server_task
221
- except asyncio.CancelledError:
222
- pass
223
221
 
224
222
 
225
223
  @contextmanager
fastmcp/utilities/ui.py CHANGED
@@ -111,6 +111,54 @@ BUTTON_STYLES = """
111
111
  # Info box / message box styles
112
112
  INFO_BOX_STYLES = """
113
113
  .info-box {
114
+ background: #f0f9ff;
115
+ border: 1px solid #bae6fd;
116
+ border-radius: 0.5rem;
117
+ padding: 1rem;
118
+ margin-bottom: 1.5rem;
119
+ text-align: left;
120
+ font-size: 0.9375rem;
121
+ line-height: 1.5;
122
+ color: #374151;
123
+ }
124
+
125
+ .info-box p {
126
+ margin-bottom: 0.5rem;
127
+ }
128
+
129
+ .info-box p:last-child {
130
+ margin-bottom: 0;
131
+ }
132
+
133
+ .info-box.centered {
134
+ text-align: center;
135
+ }
136
+
137
+ .info-box.error {
138
+ background: #fef2f2;
139
+ border-color: #fecaca;
140
+ color: #991b1b;
141
+ }
142
+
143
+ .info-box strong {
144
+ color: #0ea5e9;
145
+ font-weight: 600;
146
+ }
147
+
148
+ .info-box .server-name-link {
149
+ color: #0ea5e9;
150
+ text-decoration: underline;
151
+ font-weight: 600;
152
+ cursor: pointer;
153
+ transition: opacity 0.15s;
154
+ }
155
+
156
+ .info-box .server-name-link:hover {
157
+ opacity: 0.8;
158
+ }
159
+
160
+ /* Monospace info box - gray styling with code font */
161
+ .info-box-mono {
114
162
  background: #f9fafb;
115
163
  border: 1px solid #e5e7eb;
116
164
  border-radius: 0.5rem;
@@ -122,17 +170,17 @@ INFO_BOX_STYLES = """
122
170
  text-align: left;
123
171
  }
124
172
 
125
- .info-box.centered {
173
+ .info-box-mono.centered {
126
174
  text-align: center;
127
175
  }
128
176
 
129
- .info-box.error {
177
+ .info-box-mono.error {
130
178
  background: #fef2f2;
131
179
  border-color: #fecaca;
132
180
  color: #991b1b;
133
181
  }
134
182
 
135
- .info-box strong {
183
+ .info-box-mono strong {
136
184
  color: #111827;
137
185
  font-weight: 600;
138
186
  }
@@ -236,10 +284,11 @@ DETAIL_BOX_STYLES = """
236
284
 
237
285
  .detail-label {
238
286
  font-weight: 600;
239
- min-width: 140px;
287
+ min-width: 160px;
240
288
  color: #6b7280;
241
289
  font-size: 0.875rem;
242
290
  flex-shrink: 0;
291
+ padding-right: 1rem;
243
292
  }
244
293
 
245
294
  .detail-value {
@@ -252,6 +301,72 @@ DETAIL_BOX_STYLES = """
252
301
  }
253
302
  """
254
303
 
304
+ # Redirect section styles (for OAuth redirect URI box)
305
+ REDIRECT_SECTION_STYLES = """
306
+ .redirect-section {
307
+ background: #fffbeb;
308
+ border: 1px solid #fcd34d;
309
+ border-radius: 0.5rem;
310
+ padding: 1rem;
311
+ margin-bottom: 1.5rem;
312
+ text-align: left;
313
+ }
314
+
315
+ .redirect-section .label {
316
+ font-size: 0.875rem;
317
+ color: #6b7280;
318
+ font-weight: 600;
319
+ margin-bottom: 0.5rem;
320
+ display: block;
321
+ }
322
+
323
+ .redirect-section .value {
324
+ font-family: 'SF Mono', 'Monaco', 'Consolas', 'Courier New', monospace;
325
+ font-size: 0.875rem;
326
+ color: #111827;
327
+ word-break: break-all;
328
+ margin-top: 0.25rem;
329
+ }
330
+ """
331
+
332
+ # Collapsible details styles
333
+ DETAILS_STYLES = """
334
+ details {
335
+ margin-bottom: 1.5rem;
336
+ text-align: left;
337
+ }
338
+
339
+ summary {
340
+ cursor: pointer;
341
+ font-size: 0.875rem;
342
+ color: #6b7280;
343
+ font-weight: 600;
344
+ list-style: none;
345
+ padding: 0.5rem;
346
+ border-radius: 0.25rem;
347
+ }
348
+
349
+ summary:hover {
350
+ background: #f9fafb;
351
+ }
352
+
353
+ summary::marker {
354
+ display: none;
355
+ }
356
+
357
+ summary::before {
358
+ content: "▶";
359
+ display: inline-block;
360
+ margin-right: 0.5rem;
361
+ transition: transform 0.2s;
362
+ font-size: 0.75rem;
363
+ }
364
+
365
+ details[open] summary::before {
366
+ transform: rotate(90deg);
367
+ }
368
+ """
369
+
255
370
  # Helper text styles
256
371
  HELPER_TEXT_STYLES = """
257
372
  .close-instruction, .help-text {
@@ -413,7 +528,10 @@ def create_status_message(message: str, is_success: bool = True) -> str:
413
528
 
414
529
 
415
530
  def create_info_box(
416
- content: str, is_error: bool = False, centered: bool = False
531
+ content: str,
532
+ is_error: bool = False,
533
+ centered: bool = False,
534
+ monospace: bool = False,
417
535
  ) -> str:
418
536
  """
419
537
  Create an info box.
@@ -422,12 +540,14 @@ def create_info_box(
422
540
  content: HTML content for the info box
423
541
  is_error: True for error styling, False for normal
424
542
  centered: True to center the text, False for left-aligned
543
+ monospace: True to use gray monospace font styling instead of blue
425
544
 
426
545
  Returns:
427
546
  HTML for info box
428
547
  """
429
548
  content = html.escape(content)
430
- classes = ["info-box"]
549
+ base_class = "info-box-mono" if monospace else "info-box"
550
+ classes = [base_class]
431
551
  if is_error:
432
552
  classes.append("error")
433
553
  if centered:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fastmcp
3
- Version: 2.13.0rc2
3
+ Version: 2.13.0.1
4
4
  Summary: The fast, Pythonic way to build MCP servers and clients.
5
5
  Project-URL: Homepage, https://gofastmcp.com
6
6
  Project-URL: Repository, https://github.com/jlowin/fastmcp
@@ -14,6 +14,7 @@ Classifier: License :: OSI Approved :: Apache Software License
14
14
  Classifier: Programming Language :: Python :: 3.10
15
15
  Classifier: Programming Language :: Python :: 3.11
16
16
  Classifier: Programming Language :: Python :: 3.12
17
+ Classifier: Programming Language :: Python :: 3.13
17
18
  Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
18
19
  Classifier: Typing :: Typed
19
20
  Requires-Python: >=3.10
@@ -24,10 +25,10 @@ Requires-Dist: httpx>=0.28.1
24
25
  Requires-Dist: mcp<2.0.0,>=1.17.0
25
26
  Requires-Dist: openapi-core>=0.19.5
26
27
  Requires-Dist: openapi-pydantic>=0.5.1
27
- Requires-Dist: py-key-value-aio[disk,memory]<0.3.0,>=0.2.2
28
+ Requires-Dist: platformdirs>=4.0.0
29
+ Requires-Dist: py-key-value-aio[disk,keyring,memory]<0.3.0,>=0.2.6
28
30
  Requires-Dist: pydantic[email]>=2.11.7
29
31
  Requires-Dist: pyperclip>=1.9.0
30
- Requires-Dist: pytest-asyncio>=1.2.0
31
32
  Requires-Dist: python-dotenv>=1.1.0
32
33
  Requires-Dist: rich>=13.9.4
33
34
  Requires-Dist: websockets>=15.0.1
@@ -248,7 +249,6 @@ Access MCP session capabilities within your tools, resources, or prompts by addi
248
249
 
249
250
  - **Logging:** Log messages to MCP clients with `ctx.info()`, `ctx.error()`, etc.
250
251
  - **LLM Sampling:** Use `ctx.sample()` to request completions from the client's LLM.
251
- - **HTTP Request:** Use `ctx.http_request()` to make HTTP requests to other servers.
252
252
  - **Resource Access:** Use `ctx.read_resource()` to access resources on the server
253
253
  - **Progress Reporting:** Use `ctx.report_progress()` to report progress to the client.
254
254
  - and more...
@@ -358,7 +358,7 @@ FastMCP provides comprehensive authentication support that sets it apart from ba
358
358
  Protecting a server takes just two lines:
359
359
 
360
360
  ```python
361
- from fastmcp.server.auth import GoogleProvider
361
+ from fastmcp.server.auth.providers.google import GoogleProvider
362
362
 
363
363
  auth = GoogleProvider(client_id="...", client_secret="...", base_url="https://myserver.com")
364
364
  mcp = FastMCP("Protected Server", auth=auth)
@@ -0,0 +1,141 @@
1
+ fastmcp/__init__.py,sha256=oKNRn6cUVk3nabmXR9SFEvKz-yotC8tVDNYRorxX-Wk,1544
2
+ fastmcp/exceptions.py,sha256=-krEavxwddQau6T7MESCR4VjKNLfP9KHJrU1p3y72FU,744
3
+ fastmcp/mcp_config.py,sha256=7NWIUhe_D_2VpJ6bhgSX7MG4QFaLz9S7qhY-BV7BGAU,11361
4
+ 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=NBQkeLdkaIGTtNsVqadUKf6_KhgWOzRBTCo4Si5q-Hk,29123
8
+ fastmcp/cli/run.py,sha256=HeaiHYcVY17JpHg4UjnIHkP5ttU0PNd1bZIL3brif8A,7047
9
+ fastmcp/cli/install/__init__.py,sha256=FUrwjMVaxONgz1qO7suzJNz1xosRfR3TOHlr3Z77JXA,797
10
+ fastmcp/cli/install/claude_code.py,sha256=vGv8hbMUM6p5uQ1scy6E7Qxn0BZ2_INATF0xmSl5QWQ,7617
11
+ fastmcp/cli/install/claude_desktop.py,sha256=aX_BrH5ODEN6UPHdw-Gnh0r5g8TojvTA7trqQRCEdAw,6832
12
+ fastmcp/cli/install/cursor.py,sha256=o84evDEY7ZPVnljXY7KHiRwBrOm-zS39pu01LownSIw,10476
13
+ fastmcp/cli/install/gemini_cli.py,sha256=G7NhKnH21893baQjmVbFpwRyMbYIq7bocPQz1CBUH_8,7630
14
+ fastmcp/cli/install/mcp_json.py,sha256=l7b0sWB10YlbcXtcwJv1X2iHEP9V9EwuuD63PyTMvXI,5832
15
+ fastmcp/cli/install/shared.py,sha256=_1MNGCqf7BsAL6ntwA75wn86-0g-248ppQSAPQ8uTXk,5103
16
+ fastmcp/client/__init__.py,sha256=QHvSGJCLejQkQ4o070vsUdKNB8vUhxckBByvHjnteTQ,663
17
+ fastmcp/client/client.py,sha256=HA46tP0-aRgvNw542jfcKRM0nbVpzq9lyZLQ9YmYCJc,35875
18
+ fastmcp/client/elicitation.py,sha256=VNWgeBe2KipLp9mCc-6AApmfYAU1OlH9_3JdskfW_Wc,2521
19
+ fastmcp/client/logging.py,sha256=WBByRoBIB-Bl3ZUJVFvHqRt4teYPAvqC8MnJ358Elg8,1939
20
+ fastmcp/client/messages.py,sha256=NIPjt-5js_DkI5BD4OVdTf6pz-nGjc2dtbgt-vAY234,4329
21
+ fastmcp/client/oauth_callback.py,sha256=3xqL5_HD1QS9eGfw31HzoVF94QQelq_0TTqS7qWDlQQ,7709
22
+ fastmcp/client/progress.py,sha256=WjLLDbUKMsx8DK-fqO7AGsXb83ak-6BMrLvzzznGmcI,1043
23
+ fastmcp/client/roots.py,sha256=IxI_bHwHTmg6c2H-s1av1ZgrRnNDieHtYwdGFbzXT5c,2471
24
+ fastmcp/client/sampling.py,sha256=MEXgywI46X-E78gCLCKEiQ14iu4uQqohLav-MNCtD_U,1819
25
+ fastmcp/client/transports.py,sha256=eJqs7fUvfbyuBX46KXDHqhezK50jyROP9xArz60Q0xg,40897
26
+ fastmcp/client/auth/__init__.py,sha256=4DNsfp4iaQeBcpds0JDdMn6Mmfud44stWLsret0sVKY,91
27
+ fastmcp/client/auth/bearer.py,sha256=MFEFqcH6u_V86msYiOsEFKN5ks1V9BnBNiPsPLHUTqo,399
28
+ fastmcp/client/auth/oauth.py,sha256=6Ici1c6mqJCr0LBG65RaRzUVeI4RjblOoZKPcPwDdfY,11875
29
+ fastmcp/contrib/README.md,sha256=rKknYSI1T192UvSszqwwDlQ2eYQpxywrNTLoj177SYU,878
30
+ fastmcp/contrib/bulk_tool_caller/README.md,sha256=5aUUY1TSFKtz1pvTLSDqkUCkGkuqMfMZNsLeaNqEgAc,1960
31
+ fastmcp/contrib/bulk_tool_caller/__init__.py,sha256=xvGSSaUXTQrc31erBoi1Gh7BikgOliETDiYVTP3rLxY,75
32
+ fastmcp/contrib/bulk_tool_caller/bulk_tool_caller.py,sha256=2NcrGS59qvHo1lfbRaT8NSWfCxN66knciLxFvnGwCLY,4165
33
+ fastmcp/contrib/bulk_tool_caller/example.py,sha256=6og_8pCJN_CabworC5R82zPAwwwM-W7HNJLQQSnS3lU,319
34
+ fastmcp/contrib/component_manager/README.md,sha256=sTan1D51jzkPNnCQTxwd5JXGzWVy4DtkUjrUfNH3-F0,4457
35
+ fastmcp/contrib/component_manager/__init__.py,sha256=9xu58ftB0Aqd5RymZgnkJMH9rTHBcrO6iMQX9qdEy3s,164
36
+ fastmcp/contrib/component_manager/component_manager.py,sha256=lS2KDsx_W6GDncWx6NhVNhg1X0TeGwQHWqP5PzlDPRM,6424
37
+ fastmcp/contrib/component_manager/component_service.py,sha256=WGu3XcZSbHriSjvMfuroNZuT5xWWoYbEiIow8FPQNYg,8712
38
+ fastmcp/contrib/component_manager/example.py,sha256=N16OIHmQuR-LNEv7bkrv2rGdMs862Nc3AKKEPfw-6rU,1587
39
+ fastmcp/contrib/mcp_mixin/README.md,sha256=f6ine6z9kuEx1qKhY9jzrH6sAwj1oWpXcLXGvK0GMVk,5404
40
+ fastmcp/contrib/mcp_mixin/__init__.py,sha256=zZFHlAGexUJCDLAg4p7CGZDmb-mgPdN1xVv0tR4mg7I,153
41
+ fastmcp/contrib/mcp_mixin/example.py,sha256=GnunkXmtG5hLLTUsM8aW5ZURU52Z8vI4tNLl-fK7Dg0,1228
42
+ fastmcp/contrib/mcp_mixin/mcp_mixin.py,sha256=Ij009tiJBj1Lciz4abTICA1Il-kz_myr4aevQ4yGTNo,10582
43
+ fastmcp/experimental/sampling/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
44
+ fastmcp/experimental/sampling/handlers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
45
+ 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=m5QJDklBjMUJQEaoDPAZsu7tcJ1AI8hop05d_ElgJ0Y,8059
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=SdVRNCpgSyZOOSXNUgW_ntCSlgtxIA8SAKFnXfH9Q20,34386
59
+ fastmcp/experimental/utilities/openapi/schemas.py,sha256=84nPtnOlfjNoFGDoVoWLs0dh_7Ps92p3AuHgpVA5a-s,23349
60
+ fastmcp/prompts/__init__.py,sha256=BQ5ooDJcNhb5maYBcg2mF1VaHAY_A64cEU3UiCQ3Lw8,179
61
+ fastmcp/prompts/prompt.py,sha256=G-P_Ln1xTQRy-bTyMFy2v--9guTNpn92e30cmysX1Q0,14335
62
+ fastmcp/prompts/prompt_manager.py,sha256=5ZyT0blp5owuaN5pz_TQsyH6zUGFoUiVTGfiEnqBuj8,4262
63
+ fastmcp/resources/__init__.py,sha256=si8aT_9taxUNN0vkfbifst_SCId56DZmYi4YOb4mtlE,463
64
+ fastmcp/resources/resource.py,sha256=Rt260JyWuC_7Ufo3TtKxjPyKCTV-3zfsFF9wqHL8yWw,7168
65
+ fastmcp/resources/resource_manager.py,sha256=uCEYpPqSfaakxAtyaqWT1urft8uKu_08rZCxMPOgH3Y,13268
66
+ fastmcp/resources/template.py,sha256=vu9InVUKc5CvEOUvlTXsZ8-tpet_-kf8yX-rNrxE4Pw,14802
67
+ fastmcp/resources/types.py,sha256=efFLGD1Xc5Xq3sxlPaZ_8gtJ2UOixueTBV4KQTi4cOU,4936
68
+ fastmcp/server/__init__.py,sha256=qxNmIJcqsrpxpUvCv0mhdEAaUn1UZd1xLd8XRoWUlfY,119
69
+ fastmcp/server/context.py,sha256=W6qbSzNclJJqHWAX3vPHuTy4_3CYjJwT07fkrXZr4Co,26780
70
+ fastmcp/server/dependencies.py,sha256=GAD2mHwDdRguAO3QbA8ungLfCtMGA5IOyEDtjlABWUw,3903
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=cFQ2Cnnd6SfMfDhP3SvQACBB0j58m1oPWI1rA-A-K2M,25800
76
+ fastmcp/server/server.py,sha256=tm7rEV1cX-jdHs08waX4-TiAG6dH8V1a8zEmPdyMkq4,109416
77
+ fastmcp/server/auth/__init__.py,sha256=piRs8yWFWn2bjddJPOnclornIo4F-XFj6c8tdHl802A,695
78
+ fastmcp/server/auth/auth.py,sha256=LluGLYxM6dWlpJoDKpNBLe4_QQOdK46ETeO808MvsSM,13660
79
+ fastmcp/server/auth/jwt_issuer.py,sha256=lJYvrpC1ygI4jkoJlL_nTH6m7FKdTw2lbEycKo4eHLY,7197
80
+ fastmcp/server/auth/middleware.py,sha256=xwj3fUCLSlJK6n1Ehp-FN1qnjKqEz8b7LGAGMTqQ8Hk,3284
81
+ fastmcp/server/auth/oauth_proxy.py,sha256=PgA8m5OjOcVHKdSt7U4_iIq1JwxchnoiSkmnKWDkb3Q,84053
82
+ fastmcp/server/auth/oidc_proxy.py,sha256=NxFlEWOuceTPNhkckR0wpPtSutSCQsaWYPZPjTiSqKw,14487
83
+ fastmcp/server/auth/redirect_validation.py,sha256=Jlhela9xpTbw4aWnQ04A5Z-TW0HYOC3f9BMsq3NXx1Q,2000
84
+ fastmcp/server/auth/handlers/authorize.py,sha256=szfmMSRPL5D6sfi3awsg04UXBokVk4x_tJhAnYjHRfs,11453
85
+ fastmcp/server/auth/providers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
86
+ fastmcp/server/auth/providers/auth0.py,sha256=dZkc7hppii20YWota_6_Y3vdNw-DZSq0OyModbly-RA,7814
87
+ fastmcp/server/auth/providers/aws.py,sha256=MXoEEnXmeIlRjaHqTeNCmJ90iTx9jwUdEdpyLUmzfIc,10852
88
+ fastmcp/server/auth/providers/azure.py,sha256=i9ozDabWxBl84G2GK_kxqfqWss4Mgb8O7Rr6A-15Kj0,15946
89
+ fastmcp/server/auth/providers/bearer.py,sha256=LwkCfDJS48BxBxZwrIrauqNfCtDrJtGqYyEWnJjUq7s,923
90
+ fastmcp/server/auth/providers/descope.py,sha256=mbqToTMLVR5-ZTUECv9jhVeT3TNjrXStL-D_zCE2Y1U,6348
91
+ fastmcp/server/auth/providers/github.py,sha256=xsv-Qj1VJRc64YcRuUG4a61xFH1nqqVX_biC7B1su9U,12414
92
+ fastmcp/server/auth/providers/google.py,sha256=5e-XnbAB1xWV0wVPiTg4Lmn_oyniP07wfZ2OKZPDQDM,13629
93
+ fastmcp/server/auth/providers/in_memory.py,sha256=bYg_vNNOiQjRl71KpLTmsSZJwqJl4wUbU2zYFZnWhK4,14257
94
+ fastmcp/server/auth/providers/introspection.py,sha256=v2hlcuxxwug5myCr4KcTZlawwazAWYVHuRb0d3er13w,10733
95
+ fastmcp/server/auth/providers/jwt.py,sha256=yn_p60afjJ8SvPyQ60_NrfbopE7QQbVurIvAY0G_xG4,19647
96
+ fastmcp/server/auth/providers/scalekit.py,sha256=_CEdJ5S9eT24gnNlVYzRMhNAjrkoysVOAPDoyAz8Pxw,6628
97
+ fastmcp/server/auth/providers/supabase.py,sha256=An9eRZA5yLUC6Nt_eJlIsGaXFtAx0Gwsc1g0b1QGHlY,6478
98
+ fastmcp/server/auth/providers/workos.py,sha256=RILp4Y04FE7VmvAmYA60IZ3SOlFXf2SKEgV7Jri5rbM,17232
99
+ fastmcp/server/middleware/__init__.py,sha256=LXT2IcZI4gbAtR4TnA7v_1lOWBR6eaHiE3Cp32Pv0bc,155
100
+ fastmcp/server/middleware/caching.py,sha256=FFbYcnWMzmWZWnIPnFKh7tFXOhCi0R8D8Hs7DPGz68s,18277
101
+ fastmcp/server/middleware/error_handling.py,sha256=eSMKrmIxDcnhzLGyOL49hup5k5e0iwvH_n2XVxJ69W8,7726
102
+ fastmcp/server/middleware/logging.py,sha256=oxFeMH5E5xs2i_Dbb9atmwbfG8Sohnlh8qgFB_L92uI,9411
103
+ fastmcp/server/middleware/middleware.py,sha256=Kz04QS_R7hkPgpihtSOYTT6qyWUKENYLgo3ca4Na0zI,6611
104
+ fastmcp/server/middleware/rate_limiting.py,sha256=MwhMOhgsIhZjYwEQB8H8961hohV5564JlTwwYy_9ctU,7915
105
+ fastmcp/server/middleware/timing.py,sha256=lL_xc-ErLD5lplfvd5-HIyWEbZhgNBYkcQ74KFXAMkA,5591
106
+ fastmcp/server/middleware/tool_injection.py,sha256=zElqBN-yjZvcTADp57e0dn86kpxT9xsFqvYztiXuA08,3595
107
+ fastmcp/server/sampling/handler.py,sha256=yjLzvxlGllE-EY4bc6djsijEmwMT24PCpV6vJl-sPcI,580
108
+ fastmcp/tools/__init__.py,sha256=XGcaMkBgwr-AHzbNjyjdb3ATgp5TQ0wzSq0nsrBD__E,201
109
+ fastmcp/tools/tool.py,sha256=flY_cJsxqUjNpeObTVFo_QeC54t3ynJOuS87ULJi4pQ,20128
110
+ fastmcp/tools/tool_manager.py,sha256=pCQGvKimXYEigcUqRHBd6_mbfJwD2KN3i0SmFj9Fj_c,5913
111
+ fastmcp/tools/tool_transform.py,sha256=P6f2WVnqqFq9PEsN16go9FzpoRuV8sumxTShzKc6G8U,38462
112
+ fastmcp/utilities/__init__.py,sha256=-imJ8S-rXmbXMWeDamldP-dHDqAPg_wwmPVz-LNX14E,31
113
+ fastmcp/utilities/auth.py,sha256=ZVHkNb4YBpLE1EmmFyhvFB2qfWDZdEYNH9TRI9jylOE,1140
114
+ fastmcp/utilities/cli.py,sha256=46gyOddE8kWhUV2lHFM7kA2v0YNyzcajvIX3Db8gJXk,12174
115
+ fastmcp/utilities/components.py,sha256=lYB58QVm97szKjZ5kBs0aUKTQeIIEREte7WX5IHK5TU,5991
116
+ fastmcp/utilities/exceptions.py,sha256=7Z9j5IzM5rT27BC1Mcn8tkS-bjqCYqMKwb2MMTaxJYU,1350
117
+ fastmcp/utilities/http.py,sha256=1ns1ymBS-WSxbZjGP6JYjSO52Wa_ls4j4WbnXiupoa4,245
118
+ fastmcp/utilities/inspect.py,sha256=3wYUuQH1xCCCdzZwALHNqaRABH6iqpA43dIXEhqVb5Q,18030
119
+ fastmcp/utilities/json_schema.py,sha256=jR-J_6IKVYe3VCwgrDLwiKJOGTdekvgbQJWXnEKJLHs,8824
120
+ fastmcp/utilities/json_schema_type.py,sha256=AjBhZtAj9-g6goCZbzrSyFthlwrRrfrE4DzgCuphYdw,22250
121
+ fastmcp/utilities/logging.py,sha256=unGonXJEr3hMLqqg-vLVZrLwnt_miw0KyM81ea4T82c,6952
122
+ fastmcp/utilities/mcp_config.py,sha256=qATTXMGiYET-7PflOixQOgiw3aOizX-RlloRjAo7nwI,1796
123
+ fastmcp/utilities/openapi.py,sha256=eyIXuFZeOoucDh0bYZEo5iUfY0ED3G1ic2rvVNS8OdQ,63293
124
+ fastmcp/utilities/tests.py,sha256=ChjKv-k5vf9y4ZHqItagBtooqPNrQiiJLAARUVOEP6M,8922
125
+ fastmcp/utilities/types.py,sha256=ZOgLVKkBwnB7npl6kk6zoS2sK17JWDbfRTzLUzXsrWU,14755
126
+ fastmcp/utilities/ui.py,sha256=Um089bgOO1BD45FWHKxLl31S9YniGVSIAVC3jLPnIqA,14010
127
+ fastmcp/utilities/mcp_server_config/__init__.py,sha256=hHBxEwRsrgN0Q-1bvj28X6UVGDpfG6dt3yfSBGsOY80,791
128
+ fastmcp/utilities/mcp_server_config/v1/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
129
+ fastmcp/utilities/mcp_server_config/v1/mcp_server_config.py,sha256=65ZOxYEEVDg1lT_T99vTT9JZOhgQblNXYXbwgCYNPhc,15437
130
+ fastmcp/utilities/mcp_server_config/v1/schema.json,sha256=ymDNFOWzcpnhIMeJmVPTw9b-NtHoHoru8Mc0WlSVxUY,8602
131
+ fastmcp/utilities/mcp_server_config/v1/environments/__init__.py,sha256=Tkv0dmJ6tKKotOBo-tho09QVdvEjy37iBsvBbEwH0EA,256
132
+ fastmcp/utilities/mcp_server_config/v1/environments/base.py,sha256=fbC1C25jI1whwXLlIQtmji5B4UEHLgKvw5K8NICb33Y,826
133
+ fastmcp/utilities/mcp_server_config/v1/environments/uv.py,sha256=DPVAXM5JDTN89wOSQsFnww4khRfNphXY2yzVeiKicNg,9755
134
+ fastmcp/utilities/mcp_server_config/v1/sources/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
135
+ fastmcp/utilities/mcp_server_config/v1/sources/base.py,sha256=Y5MCxJyoDsaxcBN1zDL0CZtF5oAXxT_yqQOI-ze9b34,967
136
+ fastmcp/utilities/mcp_server_config/v1/sources/filesystem.py,sha256=eFX47XNXz2oKHW8MZvx60dqyHkBxdg2FMOrHcyAS28g,8106
137
+ fastmcp-2.13.0.1.dist-info/METADATA,sha256=EqUM1rRUJ4qVnyIO-NULW253sqJ-ry8poe9XDKYJ3Ss,20038
138
+ fastmcp-2.13.0.1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
139
+ fastmcp-2.13.0.1.dist-info/entry_points.txt,sha256=ff8bMtKX1JvXyurMibAacMSKbJEPmac9ffAKU9mLnM8,44
140
+ fastmcp-2.13.0.1.dist-info/licenses/LICENSE,sha256=QwcOLU5TJoTeUhuIXzhdCEEDDvorGiC6-3YTOl4TecE,11356
141
+ fastmcp-2.13.0.1.dist-info/RECORD,,
@@ -1,138 +0,0 @@
1
- fastmcp/__init__.py,sha256=KX2d8UjlyJdYwock62tYV7vJSRwyxzrjq-jnU6Gre_c,1544
2
- fastmcp/exceptions.py,sha256=-krEavxwddQau6T7MESCR4VjKNLfP9KHJrU1p3y72FU,744
3
- fastmcp/mcp_config.py,sha256=zbli5c8hcUfxOlqYFBJXbogpVlXwtnCuJjTg3oTfmtQ,11375
4
- fastmcp/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
- fastmcp/settings.py,sha256=2QZY4PdEal3TrYufwyYm_rTTdayaaXt_jOEXjFSukpI,13874
6
- fastmcp/cli/__init__.py,sha256=Ii284TNoG5lxTP40ETMGhHEq3lQZWxu9m9JuU57kUpQ,87
7
- fastmcp/cli/cli.py,sha256=Ed3fxQ7XicrmkaykxtxqUuo5iZLUam-tBq4uvU_awjU,29096
8
- fastmcp/cli/run.py,sha256=HeaiHYcVY17JpHg4UjnIHkP5ttU0PNd1bZIL3brif8A,7047
9
- fastmcp/cli/install/__init__.py,sha256=FUrwjMVaxONgz1qO7suzJNz1xosRfR3TOHlr3Z77JXA,797
10
- fastmcp/cli/install/claude_code.py,sha256=3JDEzWFtS_Ul8384vgUAJZkzG--rWhRgXIL3R0wuIpA,7649
11
- fastmcp/cli/install/claude_desktop.py,sha256=aX_BrH5ODEN6UPHdw-Gnh0r5g8TojvTA7trqQRCEdAw,6832
12
- fastmcp/cli/install/cursor.py,sha256=o84evDEY7ZPVnljXY7KHiRwBrOm-zS39pu01LownSIw,10476
13
- fastmcp/cli/install/gemini_cli.py,sha256=G7NhKnH21893baQjmVbFpwRyMbYIq7bocPQz1CBUH_8,7630
14
- fastmcp/cli/install/mcp_json.py,sha256=l7b0sWB10YlbcXtcwJv1X2iHEP9V9EwuuD63PyTMvXI,5832
15
- fastmcp/cli/install/shared.py,sha256=_1MNGCqf7BsAL6ntwA75wn86-0g-248ppQSAPQ8uTXk,5103
16
- fastmcp/client/__init__.py,sha256=J-RcLU2WcnYnstXWoW01itGtAg7DEjvCsWyqQKQljoo,663
17
- fastmcp/client/client.py,sha256=ToiMSICH9wIl1HWvNoHSvb2JqJEBizrhvdh8UQ7rFQI,35851
18
- fastmcp/client/elicitation.py,sha256=VNWgeBe2KipLp9mCc-6AApmfYAU1OlH9_3JdskfW_Wc,2521
19
- fastmcp/client/logging.py,sha256=WBByRoBIB-Bl3ZUJVFvHqRt4teYPAvqC8MnJ358Elg8,1939
20
- fastmcp/client/messages.py,sha256=NIPjt-5js_DkI5BD4OVdTf6pz-nGjc2dtbgt-vAY234,4329
21
- fastmcp/client/oauth_callback.py,sha256=G6pTVQfamkzFowUPOWj6xbhtnIQLHJJfldaDKIJfHJ4,7633
22
- fastmcp/client/progress.py,sha256=WjLLDbUKMsx8DK-fqO7AGsXb83ak-6BMrLvzzznGmcI,1043
23
- fastmcp/client/roots.py,sha256=IxI_bHwHTmg6c2H-s1av1ZgrRnNDieHtYwdGFbzXT5c,2471
24
- fastmcp/client/sampling.py,sha256=TXRj1Fs9lOk1wukhaHhPS__HGqpTieXSq2Rasj1F-e0,1819
25
- fastmcp/client/transports.py,sha256=qrzEtOuBbBdrqWxlpkxMlnUyypu_yVVz9KI0dBsOQi4,40944
26
- fastmcp/client/auth/__init__.py,sha256=4DNsfp4iaQeBcpds0JDdMn6Mmfud44stWLsret0sVKY,91
27
- fastmcp/client/auth/bearer.py,sha256=MFEFqcH6u_V86msYiOsEFKN5ks1V9BnBNiPsPLHUTqo,399
28
- fastmcp/client/auth/oauth.py,sha256=pXgHDseI10AfzH7lsVfptSfflUjamtEU1rYhD9gLeMQ,11788
29
- fastmcp/contrib/README.md,sha256=rKknYSI1T192UvSszqwwDlQ2eYQpxywrNTLoj177SYU,878
30
- fastmcp/contrib/bulk_tool_caller/README.md,sha256=5aUUY1TSFKtz1pvTLSDqkUCkGkuqMfMZNsLeaNqEgAc,1960
31
- fastmcp/contrib/bulk_tool_caller/__init__.py,sha256=xvGSSaUXTQrc31erBoi1Gh7BikgOliETDiYVTP3rLxY,75
32
- fastmcp/contrib/bulk_tool_caller/bulk_tool_caller.py,sha256=2NcrGS59qvHo1lfbRaT8NSWfCxN66knciLxFvnGwCLY,4165
33
- fastmcp/contrib/bulk_tool_caller/example.py,sha256=6og_8pCJN_CabworC5R82zPAwwwM-W7HNJLQQSnS3lU,319
34
- fastmcp/contrib/component_manager/README.md,sha256=sTan1D51jzkPNnCQTxwd5JXGzWVy4DtkUjrUfNH3-F0,4457
35
- fastmcp/contrib/component_manager/__init__.py,sha256=4bppVrCOSEepKmBRwVWN-ndu5BYAz1Kv2Z8yhjEUmlo,164
36
- fastmcp/contrib/component_manager/component_manager.py,sha256=4R1FPVYjCr-j7Mn6OcbHH-psl9-JTdd1hgNZHasC52Y,6412
37
- fastmcp/contrib/component_manager/component_service.py,sha256=WGu3XcZSbHriSjvMfuroNZuT5xWWoYbEiIow8FPQNYg,8712
38
- fastmcp/contrib/component_manager/example.py,sha256=N16OIHmQuR-LNEv7bkrv2rGdMs862Nc3AKKEPfw-6rU,1587
39
- fastmcp/contrib/mcp_mixin/README.md,sha256=f6ine6z9kuEx1qKhY9jzrH6sAwj1oWpXcLXGvK0GMVk,5404
40
- fastmcp/contrib/mcp_mixin/__init__.py,sha256=aw9IQ1ssNjCgws4ZNt8bkdpossAAGVAwwjBpMp9O5ZQ,153
41
- fastmcp/contrib/mcp_mixin/example.py,sha256=GnunkXmtG5hLLTUsM8aW5ZURU52Z8vI4tNLl-fK7Dg0,1228
42
- fastmcp/contrib/mcp_mixin/mcp_mixin.py,sha256=Ij009tiJBj1Lciz4abTICA1Il-kz_myr4aevQ4yGTNo,10582
43
- fastmcp/experimental/sampling/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
44
- fastmcp/experimental/sampling/handlers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
45
- fastmcp/experimental/sampling/handlers/base.py,sha256=mCPFj9ETc-Ro38R_pzx9rHVM2_EADCecScMkNWd6Tbs,714
46
- fastmcp/experimental/sampling/handlers/openai.py,sha256=TUmIpao8LFz6BzXFG5v7JOS_CosgX6tCeGRUo1wdKvY,5753
47
- fastmcp/experimental/server/openapi/README.md,sha256=1Mc1Ur15OxMn-wAPEa1rZIiNNSMdv9sboQ3YpvNpUXM,9886
48
- fastmcp/experimental/server/openapi/__init__.py,sha256=f1Mc7dkuRRJb_6-3umSHuyuXtvXTzH72t8gw1GBHgZU,772
49
- fastmcp/experimental/server/openapi/components.py,sha256=jp5xy0xkn14cFRk9FYlp3LpW-j44C0KcXvMQmdWVpB8,13237
50
- fastmcp/experimental/server/openapi/routing.py,sha256=H_1RMaARucl8bfFT9-JJRDwrAfLJMm86y0giiWldVEc,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=4uba3nOrt8hAv1I91BWkg2hMo3O0VmYlSNG058xwmiA,1677
54
- fastmcp/experimental/utilities/openapi/director.py,sha256=zoYlIp4KESC8UlfKvooEtyzSO15P8T6YMZp5qCV6PfU,8078
55
- fastmcp/experimental/utilities/openapi/formatters.py,sha256=1RCd8DwPU8_4uF51pj8Qp3oSZkZmoxL5VUwxBzokAMg,15540
56
- fastmcp/experimental/utilities/openapi/json_schema_converter.py,sha256=pHGGK13vU3L9Pg8ZqjYZxv8snVc06b6j1BB7R8pZCnY,13089
57
- fastmcp/experimental/utilities/openapi/models.py,sha256=tgqrHdTbiDfMjiaNVHW5ndbXJ5lg_sajK0S5u9JQL6A,2805
58
- fastmcp/experimental/utilities/openapi/parser.py,sha256=fAzcwCBvtBpNMN-tpSvoSuqbgojAs_NBZlG--NGpHwQ,34494
59
- fastmcp/experimental/utilities/openapi/schemas.py,sha256=FE7aSgk3285X1okCh1ILLTxboQ-FCeFLyYZZ_jfejVI,23349
60
- fastmcp/prompts/__init__.py,sha256=An8uMBUh9Hrb7qqcn_5_Hent7IOeSh7EA2IUVsIrtHc,179
61
- fastmcp/prompts/prompt.py,sha256=oKd-O7ry2114fMnglqgWHFWAqfGtQr4BPpKiHEt4jKY,14472
62
- fastmcp/prompts/prompt_manager.py,sha256=5ZyT0blp5owuaN5pz_TQsyH6zUGFoUiVTGfiEnqBuj8,4262
63
- fastmcp/resources/__init__.py,sha256=y1iAuqx-GIrS1NqIYzKezIDiYyjNEzzHD35epHpMnXE,463
64
- fastmcp/resources/resource.py,sha256=V3j08yft6pDIjpPTiU-DSGqeuHEVitVpfGoLFCmLoC0,7226
65
- fastmcp/resources/resource_manager.py,sha256=V-oJje9-3fS__OOCihWGzE7-v3OfwyEfv-YGG1xY69E,13275
66
- fastmcp/resources/template.py,sha256=vu9InVUKc5CvEOUvlTXsZ8-tpet_-kf8yX-rNrxE4Pw,14802
67
- fastmcp/resources/types.py,sha256=SiYNLnpXT-mHgNUrzqKUvXYUsY-V3gwJIrYdJfFwDDo,4868
68
- fastmcp/server/__init__.py,sha256=bMD4aQD4yJqLz7-mudoNsyeV8UgQfRAg3PRwPvwTEds,119
69
- fastmcp/server/context.py,sha256=Yzo4H2n-RtObDTB9NkLeK73pMYUig553sFDwV3D6BIg,26128
70
- fastmcp/server/dependencies.py,sha256=so60cBZc4QuiKP2Y4ajR_NPkIF5d_b5wp8U3-ZfZMEQ,3888
71
- fastmcp/server/elicitation.py,sha256=gmP17CzLQVpGzU00Ks31TWxdS-OLL5wTX_W5xRzs1Cc,8777
72
- fastmcp/server/http.py,sha256=23jme2iAbvwRQoERCkECdshwp1fnJqdBlhKRy4BKFT0,12067
73
- fastmcp/server/low_level.py,sha256=b1Sx0_Py0QxeLXSLdDA5PjR9Dd9ANB7KSNkkGSr1AeE,5490
74
- fastmcp/server/openapi.py,sha256=vm8A8Qy-jzXuxILJs-nPOJLwU2yB0YHDqVpz2HX-AqM,42198
75
- fastmcp/server/proxy.py,sha256=LoYoBEclvW_UJ6lLuckm2muzW_bOWHCc8oTxyzgTGsA,25769
76
- fastmcp/server/server.py,sha256=H9XHioDShn4lDdC-pKydcISahlbGvdoZMSqZVaTzSDM,108673
77
- fastmcp/server/auth/__init__.py,sha256=GwoyosVxuWCPzFHaCnj6iFp9fulnp124G2gQfsnzcgc,695
78
- fastmcp/server/auth/auth.py,sha256=b6QM-CEErFoQJgQFzgHDZTOAN33zTLmxEjeE83Crrw8,13628
79
- fastmcp/server/auth/jwt_issuer.py,sha256=Ft1KdLrQn3UQT8bXmPd82OkxDEpqw7zr3TQr5vEIm5Y,8680
80
- fastmcp/server/auth/oauth_proxy.py,sha256=CAM5GKOGlVzRMqqdi9oXtOJO2_UF4XNCxMXXGCm5gDo,83732
81
- fastmcp/server/auth/oidc_proxy.py,sha256=Cyqh4nqJ4KQBguDphYJfP9Q_NGqHsDq0dT5Mz-UTN4U,13283
82
- fastmcp/server/auth/redirect_validation.py,sha256=Jlhela9xpTbw4aWnQ04A5Z-TW0HYOC3f9BMsq3NXx1Q,2000
83
- fastmcp/server/auth/providers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
84
- fastmcp/server/auth/providers/auth0.py,sha256=-KTTXIWuQE1juSUErhFKckEWO5qxZknRMCNmTV939w4,6672
85
- fastmcp/server/auth/providers/aws.py,sha256=B75Y_7ZpgGVgXHV571bNHNz5B69bmEYNZ27ONOK5vsw,9635
86
- fastmcp/server/auth/providers/azure.py,sha256=38XZgBONhJzZaMW9RTrX6JPH6I_B2INhNeWAhVnmEkM,11660
87
- fastmcp/server/auth/providers/bearer.py,sha256=iu4pUj7TF5pT1wPuAGzDuM6lt5WtzenBN3c0otUleQY,923
88
- fastmcp/server/auth/providers/descope.py,sha256=mbqToTMLVR5-ZTUECv9jhVeT3TNjrXStL-D_zCE2Y1U,6348
89
- fastmcp/server/auth/providers/github.py,sha256=HjRJRlse3haN6r5JGDXAe8vJv9yJiVN5FuyszFv5gD8,11202
90
- fastmcp/server/auth/providers/google.py,sha256=Xh485rlpIWNvhoiKhvj3YoEDkhJEZ8cuNd_XRn7_ofc,12417
91
- fastmcp/server/auth/providers/in_memory.py,sha256=CFCfYWMIPUxHNF5Liqud6ksedbykKV-RILWZqTxh3MY,14245
92
- fastmcp/server/auth/providers/introspection.py,sha256=Izp8vEJG8Kyvu5Z-GWIvpKSeEZ2MYpw635MeqkPfb8w,10733
93
- fastmcp/server/auth/providers/jwt.py,sha256=KzbvPjOKIE6hDvfQ_BdjYMT2CrNcErNOGHF8DvmfQF4,19666
94
- fastmcp/server/auth/providers/scalekit.py,sha256=_CEdJ5S9eT24gnNlVYzRMhNAjrkoysVOAPDoyAz8Pxw,6628
95
- fastmcp/server/auth/providers/supabase.py,sha256=6fPSFGxOUdA4E9zCB9AqyZpZTDNF3yHF5M0lQRipYLc,6478
96
- fastmcp/server/auth/providers/workos.py,sha256=SLoftlPeKfquw9QnMsuhMdcw36iAYwSt9_4NKeSsvWw,16020
97
- fastmcp/server/middleware/__init__.py,sha256=vh5C9ubN6q-y5QND32P4mQ4zDT89C7XYK39yqhELNAk,155
98
- fastmcp/server/middleware/caching.py,sha256=L5cKT4_BrCvjQXIN4pMnrGNR3QAUXDpmk5h-Gl9qk6U,18279
99
- fastmcp/server/middleware/error_handling.py,sha256=4PGbF39Cpa-h-WXwxOhPLvEM9_iAJ8IKbMTPnXbEyd8,7736
100
- fastmcp/server/middleware/logging.py,sha256=oxFeMH5E5xs2i_Dbb9atmwbfG8Sohnlh8qgFB_L92uI,9411
101
- fastmcp/server/middleware/middleware.py,sha256=USnE3fsQJnDh7HdKAj-QHTOoQ-QuF_zTnbhVQVqu0tU,6611
102
- fastmcp/server/middleware/rate_limiting.py,sha256=MwhMOhgsIhZjYwEQB8H8961hohV5564JlTwwYy_9ctU,7915
103
- fastmcp/server/middleware/timing.py,sha256=lL_xc-ErLD5lplfvd5-HIyWEbZhgNBYkcQ74KFXAMkA,5591
104
- fastmcp/server/sampling/handler.py,sha256=yjLzvxlGllE-EY4bc6djsijEmwMT24PCpV6vJl-sPcI,580
105
- fastmcp/tools/__init__.py,sha256=vzqb-Y7Kf0d5T0aOsld-O-FA8kD7-4uFExChewFHEzY,201
106
- fastmcp/tools/tool.py,sha256=9zUikGGuxYON-IcxNmJRerId8Iy_EQf2gXLnmq1f2qc,20099
107
- fastmcp/tools/tool_manager.py,sha256=soE35w8QJPs1MX1PJ8DGTzOOLLCIhTLxS9mtHRD9HAs,5811
108
- fastmcp/tools/tool_transform.py,sha256=De_E_adWwBdBcmULpRDroiPrdGEbC4fFwXqcKxRVTpU,38462
109
- fastmcp/utilities/__init__.py,sha256=-imJ8S-rXmbXMWeDamldP-dHDqAPg_wwmPVz-LNX14E,31
110
- fastmcp/utilities/auth.py,sha256=ZVHkNb4YBpLE1EmmFyhvFB2qfWDZdEYNH9TRI9jylOE,1140
111
- fastmcp/utilities/cli.py,sha256=7MaWUZVXS-_e1efGDcM3u7vjmOlQ61ZoMfTdvcnz6Vc,10152
112
- fastmcp/utilities/components.py,sha256=lYB58QVm97szKjZ5kBs0aUKTQeIIEREte7WX5IHK5TU,5991
113
- fastmcp/utilities/exceptions.py,sha256=7Z9j5IzM5rT27BC1Mcn8tkS-bjqCYqMKwb2MMTaxJYU,1350
114
- fastmcp/utilities/http.py,sha256=1ns1ymBS-WSxbZjGP6JYjSO52Wa_ls4j4WbnXiupoa4,245
115
- fastmcp/utilities/inspect.py,sha256=K_WGvNbhO9bEGqi_V_N9uRLOH-_eM5UnKBnEhLTvPrc,18042
116
- fastmcp/utilities/json_schema.py,sha256=jR-J_6IKVYe3VCwgrDLwiKJOGTdekvgbQJWXnEKJLHs,8824
117
- fastmcp/utilities/json_schema_type.py,sha256=SX-qEZXC-sgUflOuIi3oi6jeCvIky3QS6m3Riihq6Xc,22273
118
- fastmcp/utilities/logging.py,sha256=EIWMbCgFM5nWeiOpvkncrJVpe3CBI4Nn9rnw7cUpiBU,7185
119
- fastmcp/utilities/mcp_config.py,sha256=qATTXMGiYET-7PflOixQOgiw3aOizX-RlloRjAo7nwI,1796
120
- fastmcp/utilities/openapi.py,sha256=mfkY2XfWAmAOlKexArlrmDdD0Tkdqcn4TshsATaxB_o,63304
121
- fastmcp/utilities/tests.py,sha256=JJQ1MqmnOG2EyRwMjHhVFgRg39Rcz4tCU4pWm7L0wxM,8934
122
- fastmcp/utilities/types.py,sha256=ZOgLVKkBwnB7npl6kk6zoS2sK17JWDbfRTzLUzXsrWU,14755
123
- fastmcp/utilities/ui.py,sha256=uk149Zki6ft1SZOolzRFwsiIC20ERGzjWKbWCYvPm5s,11421
124
- fastmcp/utilities/mcp_server_config/__init__.py,sha256=qbfd0c6aBpi0_SVgwt4IQCQ9siqqxmr9PWSYGiPDJqE,791
125
- fastmcp/utilities/mcp_server_config/v1/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
126
- fastmcp/utilities/mcp_server_config/v1/mcp_server_config.py,sha256=65ZOxYEEVDg1lT_T99vTT9JZOhgQblNXYXbwgCYNPhc,15437
127
- fastmcp/utilities/mcp_server_config/v1/schema.json,sha256=ymDNFOWzcpnhIMeJmVPTw9b-NtHoHoru8Mc0WlSVxUY,8602
128
- fastmcp/utilities/mcp_server_config/v1/environments/__init__.py,sha256=Tkv0dmJ6tKKotOBo-tho09QVdvEjy37iBsvBbEwH0EA,256
129
- fastmcp/utilities/mcp_server_config/v1/environments/base.py,sha256=FkrUsESEdW5akyn_FeR4tQB6Vlj7dO9VFcCj0YLCghQ,845
130
- fastmcp/utilities/mcp_server_config/v1/environments/uv.py,sha256=DPVAXM5JDTN89wOSQsFnww4khRfNphXY2yzVeiKicNg,9755
131
- fastmcp/utilities/mcp_server_config/v1/sources/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
132
- fastmcp/utilities/mcp_server_config/v1/sources/base.py,sha256=KWunc5peDLFdSdLX8l3UI9SNxtN-KNq2FOXAZ7XD62c,980
133
- fastmcp/utilities/mcp_server_config/v1/sources/filesystem.py,sha256=eFX47XNXz2oKHW8MZvx60dqyHkBxdg2FMOrHcyAS28g,8106
134
- fastmcp-2.13.0rc2.dist-info/METADATA,sha256=VtwiJ_jggV4vS-rzVX59TKswvO1Lid7JSa0a_JNIe0Y,20050
135
- fastmcp-2.13.0rc2.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
136
- fastmcp-2.13.0rc2.dist-info/entry_points.txt,sha256=ff8bMtKX1JvXyurMibAacMSKbJEPmac9ffAKU9mLnM8,44
137
- fastmcp-2.13.0rc2.dist-info/licenses/LICENSE,sha256=QwcOLU5TJoTeUhuIXzhdCEEDDvorGiC6-3YTOl4TecE,11356
138
- fastmcp-2.13.0rc2.dist-info/RECORD,,