Skip to content

feat: add NATS/JetStream mode for MCP tool requests and receipts #18

@rodaddy

Description

@rodaddy

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions