From Dev to Production¶
MCP Mesh covers every phase of the agent lifecycle — from first scaffold to production observability.
graph LR
L["Learn"] --> D["Develop"] --> T["Test"] --> Dp["Deploy"] --> S["Secure"] --> O["Observe"]
O -.-> D
style L fill:#7ba7cc,color:#fff,stroke:#6b97bc
style D fill:#6baa8e,color:#fff,stroke:#5b9a7e
style T fill:#8eb8d4,color:#fff,stroke:#7ea8c4
style Dp fill:#6baa8e,color:#fff,stroke:#5b9a7e
style S fill:#cca76b,color:#fff,stroke:#bc975b
style O fill:#7ba7cc,color:#fff,stroke:#6b97bc Learn¶
meshctl --help # All available commands
meshctl man # Built-in documentation for every feature
meshctl man llm # Deep dive into any topic
meshctl man llm --java # Language-specific variants
Documentation: mcp-mesh.ai | CLI: meshctl man <topic> | YouTube: youtube.com/@MCPMesh
Develop¶
meshctl scaffold --name my-agent --agent-type tool # Generate agent
meshctl scaffold --name my-llm --agent-type llm-agent # Generate LLM agent
meshctl scaffold --name my-api --agent-type llm-provider # Generate provider
meshctl start --registry-only -d # Start registry
meshctl start my-agent -d # Start agent (detached)
meshctl start my-agent --watch # Auto-restart on changes
meshctl list # See registered agents
meshctl list --tools # See available tools
meshctl status # Agent health and dependencies
meshctl call greet --params '{"name": "World"}' # Call a tool
meshctl logs my-agent # View agent logs
Guide: Local Development | Reference: meshctl CLI
Test¶
meshctl call my-tool --params '{"input": "test"}' # Call tools directly
meshctl call my-tool --trace # Call with tracing
meshctl trace <trace-id> # View call tree
Zero-config mocking. Need to test against a payment service that isn't ready yet? Start a mock agent locally with the same capability name — the mesh wires it in automatically. No mock frameworks inside your code, no test configurations to manage, no risk of mock code reaching production. Your mock is just another agent on the mesh, and since it's not in your CI/CD pipeline, it can't accidentally ship. Compare this to traditional mocking (Spring @MockBean, Python unittest.mock) where mock code lives alongside production code and a misconfiguration silently executes the wrong path.
The TSuite integration testing framework runs 300+ tests across Python, TypeScript, and Java using this approach.
Deploy¶
Same agent code runs locally, in Docker, and in Kubernetes — no changes needed.
Guide: Deployment Patterns | Kubernetes
Secure¶
# Development (zero-config TLS)
meshctl start --registry-only --tls-auto -d
meshctl start my-agent --tls-auto
# Production (Vault/SPIRE)
meshctl start my-agent \
--env MCP_MESH_TLS_MODE=strict \
--env MCP_MESH_TLS_PROVIDER=vault \
--env MCP_MESH_VAULT_ADDR=https://vault:8200
Three layers: registration trust verifies identity, agent-to-agent mTLS authenticates every call, header propagation enables fine-grained authorization.
Observe¶
Grafana dashboards and Tempo distributed tracing come pre-configured with --observability. Every tool call, every LLM hop, every inter-agent request — traced end-to-end.
Guide: Observability