Goal
Make mcp2cli a first-class NATS/JetStream citizen for tasking, progress, receipts, and remote tool invocation.
Motivation
Rico's agent workflows already use NATS/JetStream concepts for assignment, progress, completion, receipts, and k-board updates. mcp2cli should be able to sit on the event bus as a durable MCP hub instead of requiring every agent to run random local MCP processes.
Proposed capabilities
- Subscribe to request subjects such as
mcp2cli.request.<service>.<tool>.
- Publish replies to NATS request/reply or explicit reply subjects.
- Emit lifecycle events:
mcp2cli.tool.started
mcp2cli.tool.completed
mcp2cli.tool.failed
mcp2cli.service.connected
mcp2cli.service.unhealthy
mcp2cli.schema.changed
- JetStream persistence for receipts and replayable audit trails.
- Correlation IDs for k-board/OB/Discord receipts.
- Subject-level allow/block policy per service/tool.
- Optional queue groups for horizontal workers.
Example
mcp2cli nats serve --config /etc/mcp2cli/services.json --subject-prefix mcp2cli
mcp2cli nats call open-brain session_context --params '{"session_key":"overlay-vnext"}'
Acceptance criteria
- A NATS request can invoke an MCP tool and receive structured JSON.
- Tool execution emits progress/completion/failure events with correlation IDs.
- Failures are agent-friendly and secret-safe.
- NATS mode works with the same service registry and policies as CLI/HTTP daemon mode.
- Receipts can be consumed by PG k-board/Open Brain workflows.
Goal
Make mcp2cli a first-class NATS/JetStream citizen for tasking, progress, receipts, and remote tool invocation.
Motivation
Rico's agent workflows already use NATS/JetStream concepts for assignment, progress, completion, receipts, and k-board updates. mcp2cli should be able to sit on the event bus as a durable MCP hub instead of requiring every agent to run random local MCP processes.
Proposed capabilities
mcp2cli.request.<service>.<tool>.mcp2cli.tool.startedmcp2cli.tool.completedmcp2cli.tool.failedmcp2cli.service.connectedmcp2cli.service.unhealthymcp2cli.schema.changedExample
mcp2cli nats serve --config /etc/mcp2cli/services.json --subject-prefix mcp2cli mcp2cli nats call open-brain session_context --params '{"session_key":"overlay-vnext"}'Acceptance criteria