NATS

Servidor MCP para NATS: publicación, solicitud-respuesta, streams JetStream, almacenamiento KV y diagnóstico del servidor a través de stdio

Documentación

nats-mcp

Servidor MCP para NATS — publica mensajes, solicitud-respuesta, gestiona streams de JetStream, usa el almacén KV e inspecciona diagnósticos del servidor a través de stdio.

Instalación

bunx @daanrongen/nats-mcp

Herramientas (17 en total)

DominioHerramientasCobertura
Núcleopublish, requestPublicar mensajes, patrón solicitud-respuesta
Streamsstream_list, stream_info, stream_create, stream_delete, stream_publish, stream_fetch, stream_consumer_createCiclo de vida de streams JetStream y entrega de mensajes
KVkv_create_bucket, kv_list_buckets, kv_get, kv_put, kv_delete, kv_list_keys, kv_historyAlmacén clave-valor con historial
Servidorserver_infoDiagnósticos del servidor NATS

Configuración

VariableRequeridaDescripción
NATS_URLURL del servidor NATS (p. ej. nats://localhost:4222)

Configuración

Claude Desktop

Edita ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "nats": {
      "type": "stdio",
      "command": "bunx",
      "args": ["@daanrongen/nats-mcp"],
      "env": {
        "NATS_URL": "nats://localhost:4222"
      }
    }
  }
}

Claude Code CLI

claude mcp add nats -e NATS_URL=nats://localhost:4222 -- bunx @daanrongen/nats-mcp

Desarrollo

bun install
bun run dev        # run with --watch
bun test           # run test suite
bun run lint       # lint and check formatting
bun run typecheck  # type check
bun run build      # bundle to dist/main.js
bun run inspect    # open MCP Inspector in browser

Inspección local

bun run inspect lanza el Inspector MCP contra la compilación local:

bun run build && bun run inspect

Esto abre la interfaz del Inspector en tu navegador, donde puedes llamar a cualquier herramienta de forma interactiva e inspeccionar las formas de solicitud/respuesta.

Arquitectura

src/
├── config.ts              # Effect Config — NATS_URL
├── main.ts                # Entry point — ManagedRuntime + StdioServerTransport
├── domain/
│   ├── NatsClient.ts      # Context.Tag service interface
│   ├── errors.ts          # NatsError, KvNotFoundError, StreamNotFoundError
│   └── models.ts          # Schema.Class models (NatsMessage, StreamInfo, KvEntry, …)
├── infra/
│   ├── NatsClientLive.ts  # Layer.scoped — connects via nats.js, drains on shutdown
│   └── NatsClientTest.ts  # In-memory Ref-based test adapter
└── mcp/
    ├── server.ts          # McpServer wired to ManagedRuntime
    ├── utils.ts           # formatSuccess, formatError
    └── tools/             # core.ts, streams.ts, kv.ts, server.ts

Licencia

MIT