account_infoLABSCO SUMMARY
Read-first by design, with the destructive surface confined to stores you created.
The server and stream side is inspection only, which is the right default for pointing a model at production messaging — you can see stream state and read messages without being able to reconfigure the cluster. When you run it over HTTP, the liveness and readiness endpoints are worth wiring up: readiness actually checks TCP connectivity to the NATS URL, so a misconfigured address fails at deploy rather than at first query.
What it is
A Go MCP server for the NATS messaging system. Most of the surface is read-only inspection of servers and streams, with object store, key-value and publish operations available on top.
What you get
- Server management: list and inspect servers, health and ping checks, round-trip time measurement
- Streams: view and inspect streams, query stream state, read messages, inspect subjects
- Object stores: create and manage buckets, put and get files, list contents, delete, watch for changes, and seal a bucket against further updates
- Key-value: create buckets, store and retrieve pairs, watch for updates, delete keys and buckets
- Publishing to subjects, including asynchronously
- Account operations: view account information and metrics, generate connection and statistics reports, create and restore backups, inspect the TLS chain
- Multiple NATS accounts handled at once, each with its own credentials
Requirements
Go 1.25 or later to install, and a reachable NATS server. NATS_URL is always needed; authentication is one of three modes — base64-encoded credentials per account in NATS_<ACCOUNT>_CREDS, username and password via NATS_USER and NATS_PASSWORD, or anonymous with NATS_NO_AUTHENTICATION. Transport defaults to streamable-http on 0.0.0.0:8000 at /mcp, with stdio and sse also available. A published container image and a Helm chart cover Docker and Kubernetes.
Setup effort
One command — go install github.com/sinadarbouy/mcp-nats/cmd/mcp-nats@latest
USE CASES
Working out why a consumer is behind
Inspect the stream state and read the recent messages on the subject rather than tailing the CLI.
Checking a cluster is healthy
Ping the servers and measure round-trip time, then read the account statistics report.
Testing a subject end to end
Publish a message to the subject and confirm it shows up where you expect.
Using key-value state from a conversation
Create a bucket, write and read keys, and watch for updates without writing a client.
Running it in Kubernetes
Install the Helm chart from the OCI registry and let the readiness probe verify the NATS connection.
39 tools
Listed in project code.
account_report_connectionsaccount_report_statisticsaccount_backupaccount_restoreaccount_tlskv_addkv_putkv_getkv_createkv_updatekv_delkv_purgekv_historykv_lskv_watchkv_infokv_compactobject_addobject_putobject_getobject_delobject_infoobject_lsobject_sealobject_watchpublishrttserver_listserver_infoserver_pingstream_infostream_liststream_reportstream_findstream_statestream_subjectsstream_viewstream_getBEFORE YOU INSTALL
What to know first
Tools you get
39 tools registered in the project's code.
Requires
- mcp-nats on PATH
- Go 1.25 or later
Where it runs
Both documented clients run the server on your machine.
INSTALLATION
Connect your client
Server setup
go install github.com/sinadarbouy/mcp-nats/cmd/mcp-nats@latestMCP Clients
Cursor
{
"mcpServers": {
"nats": {
"command": "mcp-nats",
"args": [
"--transport",
"stdio"
],
"env": {
"NATS_URL": "nats://localhost:4222",
"NATS_SYS_CREDS": "<YOUR_NATS_SYS_CREDS>",
"NATS_A_CREDS": "<YOUR_NATS_A_CREDS>"
}
}
}
}Any MCP client — Docker
{
"mcpServers": {
"nats": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"--init",
"-e",
"NATS_URL",
"-e",
"NATS_SYS_CREDS",
"ghcr.io/sinadarbouy/mcp-nats:0.1.4",
"--transport",
"stdio"
],
"env": {
"NATS_SYS_CREDS": "<YOUR_NATS_SYS_CREDS>",
"NATS_URL": "<YOUR_NATS_URL>"
}
}
}
}