mcp-mesh 0.7.17__tar.gz → 0.7.19__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/PKG-INFO +2 -1
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/__init__.py +1 -1
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/shared/logging_config.py +17 -11
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/mesh/helpers.py +11 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/pyproject.toml +6 -5
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/.gitignore +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/LICENSE +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/README.md +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/engine/__init__.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/engine/async_mcp_client.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/engine/base_injector.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/engine/decorator_registry.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/engine/dependency_injector.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/engine/http_wrapper.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/engine/llm_config.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/engine/llm_errors.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/engine/mesh_llm_agent.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/engine/mesh_llm_agent_injector.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/engine/provider_handlers/__init__.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/engine/provider_handlers/base_provider_handler.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/engine/provider_handlers/claude_handler.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/engine/provider_handlers/generic_handler.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/engine/provider_handlers/openai_handler.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/engine/provider_handlers/provider_handler_registry.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/engine/response_parser.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/engine/self_dependency_proxy.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/engine/session_aware_client.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/engine/session_manager.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/engine/signature_analyzer.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/engine/tool_executor.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/engine/tool_schema_builder.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/engine/unified_mcp_proxy.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/.openapi-generator/FILES +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/.openapi-generator/VERSION +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/.openapi-generator-ignore +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/__init__.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/api/__init__.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/api/agents_api.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/api/health_api.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/api/tracing_api.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/api_client.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/api_response.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/configuration.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/exceptions.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/__init__.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/agent_info.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/agent_metadata.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/agent_metadata_dependencies_inner.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/agent_metadata_dependencies_inner_one_of.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/agent_registration.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/agent_registration_metadata.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/agents_list_response.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/capability_info.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/decorator_agent_metadata.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/decorator_agent_request.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/decorator_info.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/dependency_info.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/dependency_resolution_info.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/error_response.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/health_response.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/heartbeat_request.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/heartbeat_request_metadata.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/heartbeat_response.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/llm_provider.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/llm_provider_resolution_info.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/llm_tool_filter.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/llm_tool_filter_filter_inner.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/llm_tool_filter_filter_inner_one_of.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/llm_tool_info.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/llm_tool_resolution_info.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/mesh_agent_register_metadata.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/mesh_agent_registration.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/mesh_registration_response.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/mesh_registration_response_dependencies_resolved_value_inner.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/mesh_tool_dependency_registration.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/mesh_tool_register_metadata.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/mesh_tool_registration.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/registration_response.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/resolved_llm_provider.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/rich_dependency.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/root_response.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/standardized_dependency.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/trace_event.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/py.typed +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/rest.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/__init__.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/api_heartbeat/__init__.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/api_heartbeat/api_dependency_resolution.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/api_heartbeat/api_fast_heartbeat_check.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/api_heartbeat/api_health_check.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/api_heartbeat/api_heartbeat_orchestrator.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/api_heartbeat/api_heartbeat_pipeline.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/api_heartbeat/api_heartbeat_send.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/api_heartbeat/api_lifespan_integration.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/api_heartbeat/api_registry_connection.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/api_startup/__init__.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/api_startup/api_pipeline.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/api_startup/api_server_setup.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/api_startup/fastapi_discovery.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/api_startup/middleware_integration.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/api_startup/route_collection.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/api_startup/route_integration.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/mcp_heartbeat/__init__.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/mcp_heartbeat/dependency_resolution.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/mcp_heartbeat/fast_heartbeat_check.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/mcp_heartbeat/heartbeat_orchestrator.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/mcp_heartbeat/heartbeat_pipeline.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/mcp_heartbeat/heartbeat_send.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/mcp_heartbeat/lifespan_integration.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/mcp_heartbeat/llm_tools_resolution.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/mcp_heartbeat/registry_connection.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/mcp_startup/__init__.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/mcp_startup/configuration.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/mcp_startup/decorator_collection.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/mcp_startup/fastapiserver_setup.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/mcp_startup/fastmcpserver_discovery.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/mcp_startup/heartbeat_loop.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/mcp_startup/heartbeat_preparation.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/mcp_startup/lifespan_factory.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/mcp_startup/server_discovery.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/mcp_startup/startup_orchestrator.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/mcp_startup/startup_pipeline.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/shared/__init__.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/shared/base_step.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/shared/mesh_pipeline.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/shared/pipeline_types.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/shared/registry_connection.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/reload.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/reload_runner.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/shared/__init__.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/shared/config_resolver.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/shared/content_extractor.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/shared/defaults.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/shared/fast_heartbeat_status.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/shared/fastapi_middleware_manager.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/shared/health_check_manager.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/shared/host_resolver.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/shared/registry_client_wrapper.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/shared/server_discovery.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/shared/simple_shutdown.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/shared/sse_parser.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/shared/support_types.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/tracing/agent_context_helper.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/tracing/context.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/tracing/execution_tracer.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/tracing/fastapi_tracing_middleware.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/tracing/redis_metadata_publisher.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/tracing/trace_context_helper.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/tracing/utils.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/utils/fastmcp_schema_extractor.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/mesh/__init__.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/mesh/decorators.py +0 -0
- {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/mesh/types.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: mcp-mesh
|
|
3
|
-
Version: 0.7.
|
|
3
|
+
Version: 0.7.19
|
|
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
|
|
@@ -40,6 +40,7 @@ Requires-Dist: rich<14.0.0,>=13.0.0
|
|
|
40
40
|
Requires-Dist: typer<1.0.0,>=0.9.0
|
|
41
41
|
Requires-Dist: urllib3<3.0.0,>=2.1.0
|
|
42
42
|
Requires-Dist: uvicorn<1.0.0,>=0.24.0
|
|
43
|
+
Requires-Dist: watchfiles>=1.0.0
|
|
43
44
|
Provides-Extra: dev
|
|
44
45
|
Requires-Dist: bandit[toml]>=1.7.0; extra == 'dev'
|
|
45
46
|
Requires-Dist: black>=25.0.0; extra == 'dev'
|
|
@@ -92,7 +92,12 @@ def configure_logging():
|
|
|
92
92
|
# Configure with safe stream handler for background threads
|
|
93
93
|
handler = SafeStreamHandler(sys.stdout)
|
|
94
94
|
handler.setLevel(TRACE) # Handler allows all levels including TRACE
|
|
95
|
-
handler.setFormatter(
|
|
95
|
+
handler.setFormatter(
|
|
96
|
+
logging.Formatter(
|
|
97
|
+
"%(asctime)s %(levelname)-8s %(message)s",
|
|
98
|
+
datefmt="%Y-%m-%d %H:%M:%S",
|
|
99
|
+
)
|
|
100
|
+
)
|
|
96
101
|
|
|
97
102
|
root_logger.addHandler(handler)
|
|
98
103
|
|
|
@@ -164,15 +169,16 @@ def get_trace_prefix() -> str:
|
|
|
164
169
|
return ""
|
|
165
170
|
|
|
166
171
|
|
|
167
|
-
def format_log_value(value, max_len: int =
|
|
168
|
-
"""Format a value for logging
|
|
172
|
+
def format_log_value(value, max_len: int = 0) -> str:
|
|
173
|
+
"""Format a value for logging.
|
|
169
174
|
|
|
170
|
-
Provides a readable representation of values with size info
|
|
171
|
-
|
|
175
|
+
Provides a readable representation of values with size info.
|
|
176
|
+
By default, no truncation is applied (max_len=0) to enable full
|
|
177
|
+
request/response logging at DEBUG/TRACE levels.
|
|
172
178
|
|
|
173
179
|
Args:
|
|
174
180
|
value: Any value to format
|
|
175
|
-
max_len: Maximum length before truncation (
|
|
181
|
+
max_len: Maximum length before truncation (0 = no truncation)
|
|
176
182
|
|
|
177
183
|
Returns:
|
|
178
184
|
Formatted string representation
|
|
@@ -185,18 +191,18 @@ def format_log_value(value, max_len: int = 1000) -> str:
|
|
|
185
191
|
try:
|
|
186
192
|
if isinstance(value, dict):
|
|
187
193
|
content = str(value)
|
|
188
|
-
if len(content) > max_len:
|
|
194
|
+
if max_len > 0 and len(content) > max_len:
|
|
189
195
|
return f"{type_name}({len(value)} keys): {content[:max_len]}..."
|
|
190
196
|
return content
|
|
191
197
|
|
|
192
198
|
elif isinstance(value, (list, tuple)):
|
|
193
199
|
content = str(value)
|
|
194
|
-
if len(content) > max_len:
|
|
200
|
+
if max_len > 0 and len(content) > max_len:
|
|
195
201
|
return f"{type_name}({len(value)} items): {content[:max_len]}..."
|
|
196
202
|
return content
|
|
197
203
|
|
|
198
204
|
elif isinstance(value, str):
|
|
199
|
-
if len(value) > max_len:
|
|
205
|
+
if max_len > 0 and len(value) > max_len:
|
|
200
206
|
return f'"{value[:max_len]}..." ({len(value)} chars)'
|
|
201
207
|
return f'"{value}"'
|
|
202
208
|
|
|
@@ -206,13 +212,13 @@ def format_log_value(value, max_len: int = 1000) -> str:
|
|
|
206
212
|
elif hasattr(value, "__dict__"):
|
|
207
213
|
# Object with attributes - show class name and key attributes
|
|
208
214
|
content = str(value)
|
|
209
|
-
if len(content) > max_len:
|
|
215
|
+
if max_len > 0 and len(content) > max_len:
|
|
210
216
|
return f"{type_name}: {content[:max_len]}..."
|
|
211
217
|
return f"{type_name}: {content}"
|
|
212
218
|
|
|
213
219
|
else:
|
|
214
220
|
content = str(value)
|
|
215
|
-
if len(content) > max_len:
|
|
221
|
+
if max_len > 0 and len(content) > max_len:
|
|
216
222
|
return f"{type_name}: {content[:max_len]}..."
|
|
217
223
|
return content
|
|
218
224
|
|
|
@@ -8,6 +8,8 @@ mesh decorators to simplify common patterns like zero-code LLM providers.
|
|
|
8
8
|
import logging
|
|
9
9
|
from typing import Any, Dict, List, Optional
|
|
10
10
|
|
|
11
|
+
from _mcp_mesh.shared.logging_config import format_log_value
|
|
12
|
+
|
|
11
13
|
logger = logging.getLogger(__name__)
|
|
12
14
|
|
|
13
15
|
|
|
@@ -228,7 +230,16 @@ def llm_provider(
|
|
|
228
230
|
|
|
229
231
|
# Call LiteLLM
|
|
230
232
|
try:
|
|
233
|
+
# Log full request
|
|
234
|
+
logger.debug(
|
|
235
|
+
f"📤 LLM provider request: {format_log_value(completion_args)}"
|
|
236
|
+
)
|
|
237
|
+
|
|
231
238
|
response = litellm.completion(**completion_args)
|
|
239
|
+
|
|
240
|
+
# Log full response
|
|
241
|
+
logger.debug(f"📥 LLM provider response: {format_log_value(response)}")
|
|
242
|
+
|
|
232
243
|
message = response.choices[0].message
|
|
233
244
|
|
|
234
245
|
# Build message dict with all necessary fields for agentic loop
|
|
@@ -6,7 +6,7 @@ build-backend = "hatchling.build"
|
|
|
6
6
|
|
|
7
7
|
[project]
|
|
8
8
|
name = "mcp-mesh"
|
|
9
|
-
version = "0.7.
|
|
9
|
+
version = "0.7.19"
|
|
10
10
|
description = "Kubernetes-native platform for distributed MCP applications"
|
|
11
11
|
readme = "README.md"
|
|
12
12
|
license = { text = "MIT" }
|
|
@@ -53,7 +53,8 @@ dependencies = [
|
|
|
53
53
|
"pyyaml>=6.0,<7.0",
|
|
54
54
|
"jinja2>=3.1.0",
|
|
55
55
|
"redis>=4.0.0,<7.0.0",
|
|
56
|
-
"cachetools>=5.3.0"
|
|
56
|
+
"cachetools>=5.3.0",
|
|
57
|
+
"watchfiles>=1.0.0"
|
|
57
58
|
]
|
|
58
59
|
|
|
59
60
|
[project.optional-dependencies]
|
|
@@ -120,7 +121,7 @@ extend-exclude = '''
|
|
|
120
121
|
'''
|
|
121
122
|
|
|
122
123
|
[tool.ruff]
|
|
123
|
-
target-version = "0.7.
|
|
124
|
+
target-version = "0.7.19"
|
|
124
125
|
line-length = 88
|
|
125
126
|
|
|
126
127
|
[tool.ruff.lint]
|
|
@@ -157,7 +158,7 @@ ignore = [
|
|
|
157
158
|
"tests/**" = ["E712", "F841", "B007", "C401", "F401"] # Relax style requirements for test files
|
|
158
159
|
|
|
159
160
|
[tool.mypy]
|
|
160
|
-
python_version = "0.7.
|
|
161
|
+
python_version = "0.7.19"
|
|
161
162
|
check_untyped_defs = false # Temporarily relaxed
|
|
162
163
|
disallow_any_generics = false # Temporarily relaxed
|
|
163
164
|
disallow_incomplete_defs = false # Temporarily relaxed
|
|
@@ -169,7 +170,7 @@ warn_return_any = false # Temporarily relaxed
|
|
|
169
170
|
exclude = ["tests/", ".*agent_server_generated.*", ".*registry_client_generated.*"] # Skip type checking for test and generated files
|
|
170
171
|
|
|
171
172
|
[tool.pytest.ini_options]
|
|
172
|
-
minversion = "0.7.
|
|
173
|
+
minversion = "0.7.19"
|
|
173
174
|
addopts = "-ra -q --strict-markers --strict-config"
|
|
174
175
|
testpaths = [
|
|
175
176
|
"tests",
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/engine/provider_handlers/base_provider_handler.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/engine/provider_handlers/provider_handler_registry.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/__init__.py
RENAMED
|
File without changes
|
{mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/api/__init__.py
RENAMED
|
File without changes
|
{mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/api/agents_api.py
RENAMED
|
File without changes
|
{mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/api/health_api.py
RENAMED
|
File without changes
|
{mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/api/tracing_api.py
RENAMED
|
File without changes
|
{mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/api_client.py
RENAMED
|
File without changes
|
{mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/api_response.py
RENAMED
|
File without changes
|
{mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/configuration.py
RENAMED
|
File without changes
|
{mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/exceptions.py
RENAMED
|
File without changes
|
{mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/api_heartbeat/api_dependency_resolution.py
RENAMED
|
File without changes
|
{mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/api_heartbeat/api_fast_heartbeat_check.py
RENAMED
|
File without changes
|
|
File without changes
|
{mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/api_heartbeat/api_heartbeat_orchestrator.py
RENAMED
|
File without changes
|
{mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/api_heartbeat/api_heartbeat_pipeline.py
RENAMED
|
File without changes
|
|
File without changes
|
{mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/api_heartbeat/api_lifespan_integration.py
RENAMED
|
File without changes
|
{mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/api_heartbeat/api_registry_connection.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/api_startup/middleware_integration.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/mcp_heartbeat/dependency_resolution.py
RENAMED
|
File without changes
|
{mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/mcp_heartbeat/fast_heartbeat_check.py
RENAMED
|
File without changes
|
{mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/mcp_heartbeat/heartbeat_orchestrator.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/mcp_heartbeat/lifespan_integration.py
RENAMED
|
File without changes
|
{mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/mcp_heartbeat/llm_tools_resolution.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/mcp_startup/fastmcpserver_discovery.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|