NATS

Servidor MCP para NATS — publish, request-reply, streams JetStream, armazenamento KV e diagnósticos de servidor via stdio

Documentação

nats-mcp

Servidor MCP para NATS — publicar mensagens, requisição-resposta, gerenciar streams JetStream, usar o armazenamento KV e inspecionar diagnósticos do servidor via stdio.

Instalação

bunx @daanrongen/nats-mcp

Ferramentas (17 no total)

DomínioFerramentasCobertura
Núcleopublish, requestPublicar mensagens, padrão de requisição-resposta
Streamsstream_list, stream_info, stream_create, stream_delete, stream_publish, stream_fetch, stream_consumer_createCiclo de vida de streams JetStream e entrega de mensagens
KVkv_create_bucket, kv_list_buckets, kv_get, kv_put, kv_delete, kv_list_keys, kv_historyArmazenamento chave-valor com histórico
Servidorserver_infoDiagnósticos do servidor NATS

Configuração

VariávelObrigatórioDescrição
NATS_URLSimURL do servidor NATS (ex.: nats://localhost:4222)

Preparação

Claude Desktop

Edite ~/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

Desenvolvimento

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

Inspeção local

bun run inspect inicia o MCP Inspector contra a compilação local:

bun run build && bun run inspect

Isso abre a interface do Inspector no seu navegador, onde você pode chamar qualquer ferramenta interativamente e inspecionar os formatos de requisição/resposta.

Arquitetura

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

Licença

MIT