mcp-mesh 0.8.0__py3-none-any.whl → 0.8.0b1__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.
- _mcp_mesh/__init__.py +1 -1
- _mcp_mesh/engine/dependency_injector.py +9 -9
- _mcp_mesh/engine/mesh_llm_agent.py +14 -36
- _mcp_mesh/engine/mesh_llm_agent_injector.py +43 -78
- _mcp_mesh/engine/signature_analyzer.py +68 -58
- _mcp_mesh/engine/unified_mcp_proxy.py +1 -1
- _mcp_mesh/pipeline/api_heartbeat/rust_api_heartbeat.py +1 -5
- _mcp_mesh/pipeline/mcp_heartbeat/rust_heartbeat.py +6 -21
- _mcp_mesh/pipeline/mcp_startup/fastapiserver_setup.py +13 -37
- _mcp_mesh/pipeline/mcp_startup/startup_orchestrator.py +9 -9
- _mcp_mesh/utils/fastmcp_schema_extractor.py +3 -3
- {mcp_mesh-0.8.0.dist-info → mcp_mesh-0.8.0b1.dist-info}/METADATA +6 -7
- {mcp_mesh-0.8.0.dist-info → mcp_mesh-0.8.0b1.dist-info}/RECORD +19 -19
- mesh/__init__.py +2 -12
- mesh/decorators.py +51 -182
- mesh/helpers.py +0 -52
- mesh/types.py +13 -40
- {mcp_mesh-0.8.0.dist-info → mcp_mesh-0.8.0b1.dist-info}/WHEEL +0 -0
- {mcp_mesh-0.8.0.dist-info → mcp_mesh-0.8.0b1.dist-info}/licenses/LICENSE +0 -0
|
@@ -198,15 +198,10 @@ class FastAPIServerSetupStep(PipelineStep):
|
|
|
198
198
|
# Use centralized binding host resolution (always 0.0.0.0 for all interfaces)
|
|
199
199
|
bind_host = HostResolver.get_binding_host()
|
|
200
200
|
|
|
201
|
-
# Port from
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
bind_port = int(env_port)
|
|
206
|
-
elif "http_port" in agent_config:
|
|
207
|
-
bind_port = agent_config["http_port"]
|
|
208
|
-
else:
|
|
209
|
-
bind_port = 8080 # Default only if nothing specified
|
|
201
|
+
# Port from agent config or environment
|
|
202
|
+
bind_port = int(os.getenv("MCP_MESH_HTTP_PORT", 0)) or agent_config.get(
|
|
203
|
+
"http_port", 8080
|
|
204
|
+
)
|
|
210
205
|
|
|
211
206
|
return {
|
|
212
207
|
"bind_host": bind_host,
|
|
@@ -241,11 +236,9 @@ class FastAPIServerSetupStep(PipelineStep):
|
|
|
241
236
|
try:
|
|
242
237
|
from fastapi import FastAPI
|
|
243
238
|
|
|
244
|
-
from .lifespan_factory import (
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
create_single_fastmcp_lifespan,
|
|
248
|
-
)
|
|
239
|
+
from .lifespan_factory import (create_minimal_lifespan,
|
|
240
|
+
create_multiple_fastmcp_lifespan,
|
|
241
|
+
create_single_fastmcp_lifespan)
|
|
249
242
|
|
|
250
243
|
agent_name = agent_config.get("name", "mcp-mesh-agent")
|
|
251
244
|
agent_description = agent_config.get(
|
|
@@ -335,7 +328,8 @@ class FastAPIServerSetupStep(PipelineStep):
|
|
|
335
328
|
if health_check_fn:
|
|
336
329
|
# Use health check cache if configured
|
|
337
330
|
from ...engine.decorator_registry import DecoratorRegistry
|
|
338
|
-
from ...shared.health_check_manager import
|
|
331
|
+
from ...shared.health_check_manager import \
|
|
332
|
+
get_health_status_with_cache
|
|
339
333
|
|
|
340
334
|
health_status = await get_health_status_with_cache(
|
|
341
335
|
agent_id=agent_name,
|
|
@@ -573,29 +567,11 @@ mcp_mesh_up{{agent="{agent_name}"}} 1
|
|
|
573
567
|
|
|
574
568
|
server_task = asyncio.create_task(run_server())
|
|
575
569
|
|
|
576
|
-
#
|
|
577
|
-
|
|
578
|
-
for _ in range(50): # Max 5 seconds
|
|
579
|
-
await asyncio.sleep(0.1)
|
|
580
|
-
if server.started:
|
|
581
|
-
break
|
|
570
|
+
# Give server a moment to start up
|
|
571
|
+
await asyncio.sleep(0.2)
|
|
582
572
|
|
|
583
|
-
#
|
|
584
|
-
actual_port = bind_port
|
|
585
|
-
if server.started and server.servers:
|
|
586
|
-
try:
|
|
587
|
-
sock = server.servers[0].sockets[0]
|
|
588
|
-
actual_port = sock.getsockname()[1]
|
|
589
|
-
if actual_port != bind_port:
|
|
590
|
-
self.logger.info(
|
|
591
|
-
f"Auto-assigned port {actual_port} (requested: {bind_port})"
|
|
592
|
-
)
|
|
593
|
-
except (IndexError, AttributeError, OSError) as e:
|
|
594
|
-
self.logger.warning(f"Could not get actual port from uvicorn: {e}")
|
|
595
|
-
actual_port = bind_port if bind_port != 0 else 8080
|
|
596
|
-
elif bind_port == 0:
|
|
597
|
-
self.logger.warning("Server not started, falling back to port 8080")
|
|
598
|
-
actual_port = 8080
|
|
573
|
+
# Determine actual port (for now, assume it started on requested port)
|
|
574
|
+
actual_port = bind_port if bind_port != 0 else 8080
|
|
599
575
|
|
|
600
576
|
# Build external endpoint
|
|
601
577
|
final_external_endpoint = (
|
|
@@ -38,8 +38,8 @@ class DebounceCoordinator:
|
|
|
38
38
|
import threading
|
|
39
39
|
|
|
40
40
|
self.delay_seconds = delay_seconds
|
|
41
|
-
self._pending_timer: threading.Timer
|
|
42
|
-
self._orchestrator: MeshOrchestrator
|
|
41
|
+
self._pending_timer: Optional[threading.Timer] = None
|
|
42
|
+
self._orchestrator: Optional[MeshOrchestrator] = None
|
|
43
43
|
self._lock = threading.Lock()
|
|
44
44
|
self.logger = logging.getLogger(f"{__name__}.DebounceCoordinator")
|
|
45
45
|
|
|
@@ -181,9 +181,8 @@ class DebounceCoordinator:
|
|
|
181
181
|
# For API services, ONLY do dependency injection - user controls their FastAPI server
|
|
182
182
|
# Dependency injection is already complete from pipeline execution
|
|
183
183
|
# Optionally start heartbeat in background (non-blocking)
|
|
184
|
-
from ..api_heartbeat.api_lifespan_integration import
|
|
185
|
-
api_heartbeat_lifespan_task
|
|
186
|
-
)
|
|
184
|
+
from ..api_heartbeat.api_lifespan_integration import \
|
|
185
|
+
api_heartbeat_lifespan_task
|
|
187
186
|
|
|
188
187
|
self._setup_heartbeat_background(
|
|
189
188
|
heartbeat_config,
|
|
@@ -208,7 +207,8 @@ class DebounceCoordinator:
|
|
|
208
207
|
f"heartbeat_task_fn from config is not callable: {type(heartbeat_task_fn)}, using Rust heartbeat"
|
|
209
208
|
)
|
|
210
209
|
# Rust heartbeat is required - no Python fallback
|
|
211
|
-
from ..mcp_heartbeat.rust_heartbeat import
|
|
210
|
+
from ..mcp_heartbeat.rust_heartbeat import \
|
|
211
|
+
rust_heartbeat_task
|
|
212
212
|
|
|
213
213
|
heartbeat_task_fn = rust_heartbeat_task
|
|
214
214
|
|
|
@@ -422,7 +422,7 @@ class DebounceCoordinator:
|
|
|
422
422
|
|
|
423
423
|
|
|
424
424
|
# Global debounce coordinator instance
|
|
425
|
-
_debounce_coordinator: DebounceCoordinator
|
|
425
|
+
_debounce_coordinator: Optional[DebounceCoordinator] = None
|
|
426
426
|
|
|
427
427
|
|
|
428
428
|
def get_debounce_coordinator() -> DebounceCoordinator:
|
|
@@ -520,7 +520,7 @@ class MeshOrchestrator:
|
|
|
520
520
|
"timestamp": "unknown",
|
|
521
521
|
}
|
|
522
522
|
|
|
523
|
-
async def start_service(self, auto_run_config: dict
|
|
523
|
+
async def start_service(self, auto_run_config: Optional[dict] = None) -> None:
|
|
524
524
|
"""
|
|
525
525
|
Start the service with optional auto-run behavior.
|
|
526
526
|
|
|
@@ -582,7 +582,7 @@ class MeshOrchestrator:
|
|
|
582
582
|
|
|
583
583
|
|
|
584
584
|
# Global orchestrator instance
|
|
585
|
-
_global_orchestrator: MeshOrchestrator
|
|
585
|
+
_global_orchestrator: Optional[MeshOrchestrator] = None
|
|
586
586
|
|
|
587
587
|
|
|
588
588
|
def get_global_orchestrator() -> MeshOrchestrator:
|
|
@@ -24,7 +24,7 @@ class FastMCPSchemaExtractor:
|
|
|
24
24
|
This class extracts those schemas so they can be sent to the registry
|
|
25
25
|
for LLM tool discovery.
|
|
26
26
|
|
|
27
|
-
Phase 2.5: Filters out
|
|
27
|
+
Phase 2.5: Filters out McpMeshAgent parameters from schemas since
|
|
28
28
|
they are dependency injection parameters and should not be visible to LLMs.
|
|
29
29
|
|
|
30
30
|
Phase 0: Enhances schemas with MeshContextModel Field descriptions for
|
|
@@ -239,7 +239,7 @@ class FastMCPSchemaExtractor:
|
|
|
239
239
|
schema: dict[str, Any], function: Any
|
|
240
240
|
) -> dict[str, Any]:
|
|
241
241
|
"""
|
|
242
|
-
Filter out
|
|
242
|
+
Filter out McpMeshAgent dependency injection parameters from schema.
|
|
243
243
|
|
|
244
244
|
Phase 2.5: Remove dependency injection parameters from LLM-facing schemas.
|
|
245
245
|
These parameters are injected at runtime by MCP Mesh and should not be
|
|
@@ -273,7 +273,7 @@ class FastMCPSchemaExtractor:
|
|
|
273
273
|
if not schema or not isinstance(schema, dict):
|
|
274
274
|
return schema
|
|
275
275
|
|
|
276
|
-
# Get
|
|
276
|
+
# Get McpMeshAgent parameter names from signature analysis
|
|
277
277
|
from _mcp_mesh.engine.signature_analyzer import \
|
|
278
278
|
get_mesh_agent_parameter_names
|
|
279
279
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: mcp-mesh
|
|
3
|
-
Version: 0.8.
|
|
3
|
+
Version: 0.8.0b1
|
|
4
4
|
Summary: Kubernetes-native platform for distributed MCP applications
|
|
5
5
|
Project-URL: Homepage, https://github.com/dhyansraj/mcp-mesh
|
|
6
6
|
Project-URL: Documentation, https://github.com/dhyansraj/mcp-mesh/tree/main/docs
|
|
@@ -18,7 +18,6 @@ Classifier: Operating System :: OS Independent
|
|
|
18
18
|
Classifier: Programming Language :: Python :: 3
|
|
19
19
|
Classifier: Programming Language :: Python :: 3.11
|
|
20
20
|
Classifier: Programming Language :: Python :: 3.12
|
|
21
|
-
Classifier: Programming Language :: Python :: 3.13
|
|
22
21
|
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
23
22
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
24
23
|
Classifier: Topic :: System :: Distributed Computing
|
|
@@ -31,7 +30,7 @@ Requires-Dist: fastmcp<3.0.0,>=2.8.0
|
|
|
31
30
|
Requires-Dist: httpx<1.0.0,>=0.25.0
|
|
32
31
|
Requires-Dist: jinja2>=3.1.0
|
|
33
32
|
Requires-Dist: litellm>=1.30.0
|
|
34
|
-
Requires-Dist: mcp-mesh-core>=0.8.
|
|
33
|
+
Requires-Dist: mcp-mesh-core>=0.8.0b1
|
|
35
34
|
Requires-Dist: mcp<2.0.0,>=1.9.0
|
|
36
35
|
Requires-Dist: prometheus-client<1.0.0,>=0.19.0
|
|
37
36
|
Requires-Dist: pydantic<3.0.0,>=2.4.0
|
|
@@ -79,7 +78,7 @@ pip install mcp-mesh
|
|
|
79
78
|
import mesh
|
|
80
79
|
|
|
81
80
|
# Import types from public API
|
|
82
|
-
from mesh.types import
|
|
81
|
+
from mesh.types import McpMeshAgent
|
|
83
82
|
|
|
84
83
|
# Define your agent
|
|
85
84
|
@mesh.agent(name="hello-world", http_port=9090)
|
|
@@ -93,11 +92,11 @@ class HelloWorldAgent:
|
|
|
93
92
|
dependencies=["date_service"],
|
|
94
93
|
description="Greeting function with date dependency injection"
|
|
95
94
|
)
|
|
96
|
-
def greet(name: str = "World",
|
|
95
|
+
def greet(name: str = "World", systemDate: McpMeshAgent = None) -> str:
|
|
97
96
|
"""Greeting function with automatic dependency injection."""
|
|
98
|
-
if
|
|
97
|
+
if systemDate is not None:
|
|
99
98
|
try:
|
|
100
|
-
current_date =
|
|
99
|
+
current_date = systemDate()
|
|
101
100
|
return f"Hello, {name}! Today is {current_date}"
|
|
102
101
|
except Exception:
|
|
103
102
|
pass
|
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
_mcp_mesh/__init__.py,sha256=
|
|
1
|
+
_mcp_mesh/__init__.py,sha256=Hmsj3lCnO9-6rV8hN5SVUNdzKWxdXIsO-WcGCvbt1dw,2721
|
|
2
2
|
_mcp_mesh/reload.py,sha256=5Yll9n0bqxM7pmTjfAaKWg-WT_Vi0YTh0_UNWbCNCIQ,6217
|
|
3
3
|
_mcp_mesh/reload_runner.py,sha256=SgQKzzO2yHfSUBq8s3SpAnovWA0rveimVNaxeLCEo_0,1310
|
|
4
4
|
_mcp_mesh/engine/__init__.py,sha256=U_6Kw3vA_3RiNK0Oln5c5C7WvA9lSONV22wWzfxYHNw,2975
|
|
5
5
|
_mcp_mesh/engine/async_mcp_client.py,sha256=Sz-rXTkb1Mng_f0SpLqLuOdPJ8vZjv3DFy0i8yYOqYk,8792
|
|
6
6
|
_mcp_mesh/engine/base_injector.py,sha256=qzRLZqFP2VvEFagVovkpdldvDmm3VwPHm6tHwV58a2k,5648
|
|
7
7
|
_mcp_mesh/engine/decorator_registry.py,sha256=cch2QdQ6bKjHKEGi1XWp1YcLLO3uI2YlxwWBO7Np65E,28229
|
|
8
|
-
_mcp_mesh/engine/dependency_injector.py,sha256
|
|
8
|
+
_mcp_mesh/engine/dependency_injector.py,sha256=-CeIGvB-zqrGxkRpFE53C6_zEmmBoyBXftvE-H9OyAY,31593
|
|
9
9
|
_mcp_mesh/engine/http_wrapper.py,sha256=Simd6IEsLO2FXQOuf1WEx57SBN6DSr5RzphXnk0asHM,24152
|
|
10
10
|
_mcp_mesh/engine/llm_config.py,sha256=95bOsGWro5E1JGq7oZtEYhVdrzcIJqjht_r5vEdJVz4,2049
|
|
11
11
|
_mcp_mesh/engine/llm_errors.py,sha256=h7BiI14u-jL8vtvBfFbFDDrN7gIw8PQjXIl5AP1SBuA,3276
|
|
12
|
-
_mcp_mesh/engine/mesh_llm_agent.py,sha256=
|
|
13
|
-
_mcp_mesh/engine/mesh_llm_agent_injector.py,sha256=
|
|
12
|
+
_mcp_mesh/engine/mesh_llm_agent.py,sha256=sVh7lPnvixDVJ-p1ONzbeakiEzhsl0HmdmrLPZA2FzQ,34237
|
|
13
|
+
_mcp_mesh/engine/mesh_llm_agent_injector.py,sha256=Y6KkqqUAyP7QsCU2DDX_UIg9RhF4xu9p731jbfMMN-A,28373
|
|
14
14
|
_mcp_mesh/engine/response_parser.py,sha256=g3VNoFJotaLrOAS0pL_OTCrv9t9XQe9Iiz1plsm28bQ,10280
|
|
15
15
|
_mcp_mesh/engine/self_dependency_proxy.py,sha256=OkKt0-B_ADnJlWtHiHItoZCBZ7Su0iz2unEPFfXvrs4,3302
|
|
16
16
|
_mcp_mesh/engine/session_aware_client.py,sha256=QejKag5zYNos5BVffQvNXFMECHFMLNOv78By4e_JzQE,10589
|
|
17
17
|
_mcp_mesh/engine/session_manager.py,sha256=MCr0_fXBaUjXM51WU5EhDkiGvBdfzYQFVNb9DCXXL0A,10418
|
|
18
|
-
_mcp_mesh/engine/signature_analyzer.py,sha256=
|
|
18
|
+
_mcp_mesh/engine/signature_analyzer.py,sha256=ftn9XsX0ZHWIaACdjgBVtCuIdqVU_4ST8cvcpzu4HTk,12339
|
|
19
19
|
_mcp_mesh/engine/tool_executor.py,sha256=Bf_9d02EEY9_yHm1p1-5YZ4rY6MPxn4SVpI6-3sm1uo,5456
|
|
20
20
|
_mcp_mesh/engine/tool_schema_builder.py,sha256=SQCxQIrSfdLu9-dLqiFurQLK7dhl0dc0xa0ibaxU-iE,3644
|
|
21
|
-
_mcp_mesh/engine/unified_mcp_proxy.py,sha256=
|
|
21
|
+
_mcp_mesh/engine/unified_mcp_proxy.py,sha256=Ee11K5HXuPXvdjqB7fmv0sMEo9ML-SMtQx2EUtYpfrY,37847
|
|
22
22
|
_mcp_mesh/engine/provider_handlers/__init__.py,sha256=8hEc4CheKfXWU3ny4YDktxNxLCWxgfMtyDW9CblPOvs,888
|
|
23
23
|
_mcp_mesh/engine/provider_handlers/base_provider_handler.py,sha256=Lb0U6gAEseU7Ix1eeV4T0WP1ClmeXUz87Nx_iplUYSI,8077
|
|
24
24
|
_mcp_mesh/engine/provider_handlers/claude_handler.py,sha256=iYAmllL5rTWFFTAjbR62Ra9eMWNZjA72a02tppxjgOQ,14343
|
|
@@ -29,7 +29,7 @@ _mcp_mesh/engine/provider_handlers/provider_handler_registry.py,sha256=klBZW8iX6
|
|
|
29
29
|
_mcp_mesh/pipeline/__init__.py,sha256=MgPwpwbiD62ND4HXKKNGcnreDk-TvPmQOs5WmjtHQ3M,1263
|
|
30
30
|
_mcp_mesh/pipeline/api_heartbeat/__init__.py,sha256=qGjEgxbGJFSl9Qm3bwu3X5yizAMbN4WpFtIUekDSFuU,690
|
|
31
31
|
_mcp_mesh/pipeline/api_heartbeat/api_lifespan_integration.py,sha256=h0mTmLyPlGDqomSHpbW7S-AZNz1Tyvg1kpy9aeWkQsU,3879
|
|
32
|
-
_mcp_mesh/pipeline/api_heartbeat/rust_api_heartbeat.py,sha256=
|
|
32
|
+
_mcp_mesh/pipeline/api_heartbeat/rust_api_heartbeat.py,sha256=vrld873jS2zCfJCndldx2XLDjxp_bRY7qq9CNBqZ8wI,15579
|
|
33
33
|
_mcp_mesh/pipeline/api_startup/__init__.py,sha256=eivolkSKot2bJTWP2BV8-RKRT1Zm7SGQYuEUiTxusOQ,577
|
|
34
34
|
_mcp_mesh/pipeline/api_startup/api_pipeline.py,sha256=I9-Q0o2py5oAHZO2DJOeTD1uZo1-Dpn258k5Tr0dv9o,2474
|
|
35
35
|
_mcp_mesh/pipeline/api_startup/api_server_setup.py,sha256=72oCMkCzRfxYrE5sfFJbr57BYJwRSyKxBMISTOHmKyc,14919
|
|
@@ -38,17 +38,17 @@ _mcp_mesh/pipeline/api_startup/middleware_integration.py,sha256=J7Ux_nJ1VsMqVzl5
|
|
|
38
38
|
_mcp_mesh/pipeline/api_startup/route_collection.py,sha256=WPr4hRPLIWnNIJCoRHZ141ph9tAa_-Pm_j2TiCuWS4k,2002
|
|
39
39
|
_mcp_mesh/pipeline/api_startup/route_integration.py,sha256=qq1AVaWna-CWEXyehyDL3EyeYKgo5aMtei8uBNdvkZ8,12448
|
|
40
40
|
_mcp_mesh/pipeline/mcp_heartbeat/__init__.py,sha256=mhDcSquoHkhRItqgbM8iFfAKC2m7qMW_0smqtUgSl-w,389
|
|
41
|
-
_mcp_mesh/pipeline/mcp_heartbeat/rust_heartbeat.py,sha256=
|
|
41
|
+
_mcp_mesh/pipeline/mcp_heartbeat/rust_heartbeat.py,sha256=cB7IO0au3097MGpC6JwvYtPt4cVnl_spCkHfJIgD6Ks,25953
|
|
42
42
|
_mcp_mesh/pipeline/mcp_startup/__init__.py,sha256=qy960dnAoHLXMcL_y_rcro9Km2AoCVzC7_CxMwao564,1166
|
|
43
43
|
_mcp_mesh/pipeline/mcp_startup/configuration.py,sha256=OnumIPRVBTne2OEU2VWLZovLKvWcNF9iJVQtlVwuim0,2805
|
|
44
44
|
_mcp_mesh/pipeline/mcp_startup/decorator_collection.py,sha256=RHC6MHtfP9aP0hZ-IJjISZu72e0Pml3LU0qr7dc284w,2294
|
|
45
|
-
_mcp_mesh/pipeline/mcp_startup/fastapiserver_setup.py,sha256=
|
|
45
|
+
_mcp_mesh/pipeline/mcp_startup/fastapiserver_setup.py,sha256=y0xsM6no-yH9OhiYjg0LJN4hTW0vw15iuVK_4DNMxFQ,34032
|
|
46
46
|
_mcp_mesh/pipeline/mcp_startup/fastmcpserver_discovery.py,sha256=Pm24wrSuRGsgeUrHvMPDnNh6RhIZoznnMAUwAkllohk,10661
|
|
47
47
|
_mcp_mesh/pipeline/mcp_startup/heartbeat_loop.py,sha256=4Fgp0_68tlSicyLHkJGB-41Av0jl5sqUeriuu-StNJU,3812
|
|
48
48
|
_mcp_mesh/pipeline/mcp_startup/heartbeat_preparation.py,sha256=sOpzxRc0kYiXwSW9lvv8DSjliT85oZCWPODeJRuiqgg,15635
|
|
49
49
|
_mcp_mesh/pipeline/mcp_startup/lifespan_factory.py,sha256=Hu7IvrhVH9sM7-XQDyWAGA3rgOnNIRyWFBtobkUQ5Es,4404
|
|
50
50
|
_mcp_mesh/pipeline/mcp_startup/server_discovery.py,sha256=VuqqaBE00h6AerPjk-Ab-g51x6jODCbMX4nemLRQIIQ,8375
|
|
51
|
-
_mcp_mesh/pipeline/mcp_startup/startup_orchestrator.py,sha256=
|
|
51
|
+
_mcp_mesh/pipeline/mcp_startup/startup_orchestrator.py,sha256=bo2LeQlIsktbMFfYhX3xlnjAGT9Yj7wG96JYVT5nsyw,25893
|
|
52
52
|
_mcp_mesh/pipeline/mcp_startup/startup_pipeline.py,sha256=56lZzuCo23y3bZkDir05Ip9QlZ7uzt_gbOR32V4tAvo,2350
|
|
53
53
|
_mcp_mesh/pipeline/shared/__init__.py,sha256=s9xmdf6LkoetrVRGd7Zp3NUxcJCW6YZ_yNKzUBcnYys,352
|
|
54
54
|
_mcp_mesh/pipeline/shared/base_step.py,sha256=kyPbNUX79NyGrE_0Q-e-Aek7m1J0TW036njWfv0iZ0I,1080
|
|
@@ -74,12 +74,12 @@ _mcp_mesh/tracing/fastapi_tracing_middleware.py,sha256=FXjhA1A1Krk-ngyuOZPc1Ic4L
|
|
|
74
74
|
_mcp_mesh/tracing/redis_metadata_publisher.py,sha256=DeFrMt0ZX7k6393dH-xoRS2V5apPR-k80X8ZjrKBHMU,2890
|
|
75
75
|
_mcp_mesh/tracing/trace_context_helper.py,sha256=A0UipvDExePaX-E-4SAp4M8n8uwed9PMo8gibXt1v_Q,6513
|
|
76
76
|
_mcp_mesh/tracing/utils.py,sha256=GWwfvab0tYGr9QAe_zgZjZxgDKTTs0p5Mf8w6WJeWC0,4486
|
|
77
|
-
_mcp_mesh/utils/fastmcp_schema_extractor.py,sha256=
|
|
78
|
-
mesh/__init__.py,sha256=
|
|
79
|
-
mesh/decorators.py,sha256=
|
|
80
|
-
mesh/helpers.py,sha256=
|
|
81
|
-
mesh/types.py,sha256=
|
|
82
|
-
mcp_mesh-0.8.
|
|
83
|
-
mcp_mesh-0.8.
|
|
84
|
-
mcp_mesh-0.8.
|
|
85
|
-
mcp_mesh-0.8.
|
|
77
|
+
_mcp_mesh/utils/fastmcp_schema_extractor.py,sha256=NOz3dht21JRKVb_kCTrUhT2MZMmZJz04G6ARcNatVzk,17267
|
|
78
|
+
mesh/__init__.py,sha256=NDQXXD7uuL8Ph48w-Xf7ntEUx5HkB1oZMu3hjGdntTY,3890
|
|
79
|
+
mesh/decorators.py,sha256=sflOWhuJooqIs1tH7DqjOEaGMaVRj4GEDz7R3IQ4fPM,65163
|
|
80
|
+
mesh/helpers.py,sha256=1Y7V6aQvpV8BKfEeeKfjwPJ5g9FjMCzSNifs3se1jkA,12935
|
|
81
|
+
mesh/types.py,sha256=n0MxrBYZJ84xyQWGf_X2ZbVWSAaIcEBkRV7qaCmX6Ac,17008
|
|
82
|
+
mcp_mesh-0.8.0b1.dist-info/METADATA,sha256=uBP_kKN1LJer1-DiU3hwyYvMwO6JJI6BgPjvNZifVwA,5045
|
|
83
|
+
mcp_mesh-0.8.0b1.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
84
|
+
mcp_mesh-0.8.0b1.dist-info/licenses/LICENSE,sha256=_EBQHRQThv9FPOLc5eFOUdeeRO0mYwChC7cx60dM1tM,1078
|
|
85
|
+
mcp_mesh-0.8.0b1.dist-info/RECORD,,
|
mesh/__init__.py
CHANGED
|
@@ -19,8 +19,8 @@ Use 'import mesh' and then '@mesh.tool()' for consistency with MCP patterns.
|
|
|
19
19
|
"""
|
|
20
20
|
|
|
21
21
|
from . import decorators
|
|
22
|
-
from .types import (LlmMeta, McpMeshAgent,
|
|
23
|
-
|
|
22
|
+
from .types import (LlmMeta, McpMeshAgent, MeshContextModel, MeshLlmAgent,
|
|
23
|
+
MeshLlmRequest)
|
|
24
24
|
|
|
25
25
|
# Note: helpers.llm_provider is imported lazily in __getattr__ to avoid
|
|
26
26
|
# initialization timing issues with @mesh.agent auto_run in tests
|
|
@@ -93,8 +93,6 @@ def create_server(name: str | None = None) -> "FastMCP":
|
|
|
93
93
|
|
|
94
94
|
# Make decorators available as mesh.tool, mesh.agent, mesh.route, mesh.llm, and mesh.llm_provider
|
|
95
95
|
def __getattr__(name):
|
|
96
|
-
import warnings
|
|
97
|
-
|
|
98
96
|
if name == "tool":
|
|
99
97
|
return decorators.tool
|
|
100
98
|
elif name == "agent":
|
|
@@ -108,15 +106,7 @@ def __getattr__(name):
|
|
|
108
106
|
from .helpers import llm_provider
|
|
109
107
|
|
|
110
108
|
return llm_provider
|
|
111
|
-
elif name == "McpMeshTool":
|
|
112
|
-
return McpMeshTool
|
|
113
109
|
elif name == "McpMeshAgent":
|
|
114
|
-
warnings.warn(
|
|
115
|
-
"McpMeshAgent is deprecated, use McpMeshTool instead. "
|
|
116
|
-
"McpMeshAgent will be removed in a future version.",
|
|
117
|
-
DeprecationWarning,
|
|
118
|
-
stacklevel=2,
|
|
119
|
-
)
|
|
120
110
|
return McpMeshAgent
|
|
121
111
|
elif name == "MeshContextModel":
|
|
122
112
|
return MeshContextModel
|