使用说明
nats-mcp
一个模型上下文协议(MCP)服务器,允许AI代理完全访问 国家航空运输系统 --消息传递、JetStream流、KV存储、对象存储、服务发现和多代理协调。
适用于任何兼容MCP的客户端,包括Claude Code、Claude Desktop和Cursor。
安装
Homebrew(macOS和Linux)
brew install jesseobrien/tap/nats-mcp
Nix(无需安装即可运行)
nix run github:jesseobrien/nats-mcp
Debian/Ubuntu
curl -LO "https://github.com/jesseobrien/nats-mcp/releases/latest/download/nats-mcp_$(dpkg --print-architecture).deb"
sudo dpkg -i nats-mcp_*.deb
RPM(Fedora/RHEL)
curl -LO "https://github.com/jesseobrien/nats-mcp/releases/latest/download/nats-mcp_$(uname -m).rpm"
sudo rpm -i nats-mcp_*.rpm
去
go install github.com/jesseobrien/nats-mcp/cmd/nats-mcp@latest
二进制下载
Linux、macOS和Windows的预构建二进制文件(amd64/arm64)可在 发布 页面。
快速开始
克劳德代码
添加到MCP配置(.claude/mcp.json 在您的项目中,或 ~/.claude.json 全球):
{
"mcpServers": {
"nats": {
"command": "nats-mcp"
}
}
}
这开始了一个 嵌入式NATS服务器 --不需要外部基础设施。数据持续存在 ~/.local/share/nats-mcp/embedded/.
克劳德代码(通过Nix——无需安装)
如果您启用了带薄片的Nix,则可以完全跳过安装:
{
"mcpServers": {
"nats": {
"command": "nix",
"args": ["run", "github:jesseobrien/nats-mcp"]
}
}
}
首次启动会自动获取和构建。后续的启动使用Nix存储缓存。
克劳德桌面版
添加 claude_desktop_config.json:
{
"mcpServers": {
"nats": {
"command": "nats-mcp"
}
}
}
连接到外部NATS服务器
{
"mcpServers": {
"nats": {
"command": "nats-mcp",
"args": ["-server", "nats://your-server:4222"]
}
}
}
或者使用环境变量:
{
"mcpServers": {
"nats": {
"command": "nats-mcp",
"env": {
"NATS_URL": "nats://your-server:4222",
"NATS_CREDS": "/path/to/user.creds"
}
}
}
}
特性
42工具 7组:
| 组 | 工具 | 描述 |
|---|---|---|
| 核心信息 | 5 | 发布、订阅、请求/回复 |
| JetStream流 | 5 | 流CRUD和检查 |
| JetStream消费者 | 5 | 消费者CRUD和消息获取 |
| 键值存储 | 7 | 铲斗和按键操作 |
| 对象存储 | 7 | 桶和对象操作 |
| 服务器和服务 | 4 | 服务器信息、统计数据、服务发现 |
| 代理商协调 | 9 | 多智能体群基元 |
配置
所有旗帜都反映了 nats CLI和支持环境变量:
| 标志 | 环境变量 | 描述 |
|---|---|---|
-server |
NATS_URL |
服务器URL.Ompty=启动嵌入式服务器 |
-creds |
NATS_CREDS |
凭据文件 |
-token |
NATS_TOKEN |
身份验证令牌 |
-user |
NATS_USER |
用户名 |
-password |
NATS_PASSWORD |
密码 |
-tlscert |
NATS_CERT |
TLS证书 |
-tlskey |
NATS_KEY |
TLS私钥 |
-tlsca |
NATS_CA |
TLS CA链 |
-nkey |
NATS_NKEY |
NKey种子文件 |
-context |
NATS_CONTEXT |
NATS CLI上下文名称 |
-timeout |
NATS_TIMEOUT |
默认超时(默认:5s) |
工具参考
核心信息
| 工具 | 别名 | 描述 |
|---|---|---|
publish |
pub, send |
向主题发布消息 |
subscribe |
sub, listen |
启动缓冲订阅 |
unsubscribe |
unsub |
停止订阅 |
read-messages |
recv, receive |
从订阅中删除缓冲邮件 |
request |
req |
发送请求并等待回复 |
JetStream流
| 工具 | 别名 | 描述 |
|---|---|---|
stream-create |
create-stream |
创建流 |
stream-update |
update-stream |
更新流的配置 |
stream-delete |
delete-stream |
删除流 |
stream-list |
list-streams, streams |
列出所有流 |
stream-info |
获取流状态和配置 |
JetStream消费者
| 工具 | 别名 | 描述 |
|---|---|---|
consumer-create |
create-consumer |
创建或更新消费者 |
consumer-delete |
delete-consumer |
删除消费者 |
consumer-list |
list-consumers |
在流中列出消费者 |
consumer-info |
获取消费者状态 | |
consumer-fetch |
fetch |
从拉取消费者获取消息 |
键值存储
| 工具 | 别名 | 描述 |
|---|---|---|
kv-create-bucket |
create-kv |
创建KV桶 |
kv-delete-bucket |
delete-kv |
删除KV存储桶 |
kv-list-buckets |
list-kv, kv-buckets |
列出所有KV桶 |
kv-put |
kv-set |
放置一个键值对 |
kv-get |
按键获取值 | |
kv-delete |
kv-del |
删除密钥 |
kv-list-keys |
kv-keys |
列出存储桶中的密钥 |
对象存储
| 工具 | 别名 | 描述 |
|---|---|---|
object-create-bucket |
create-object-store |
创建对象存储桶 |
object-delete-bucket |
delete-object-store |
删除对象存储桶 |
object-list-buckets |
list-object-stores |
列出所有对象存储桶 |
object-put |
obj-put |
存储对象 |
object-get |
obj-get |
检索对象 |
object-delete |
obj-del |
删除对象 |
object-list |
obj-list |
列出bucket中的对象 |
服务器和服务
| 工具 | 别名 | 描述 |
|---|---|---|
server-info |
info |
服务器版本、集群信息、JetStream状态 |
server-stats |
stats |
连接和消息速率统计数据(仅嵌入式) |
service-list |
services |
列出NATS微服务 |
service-info |
获取服务详细信息 |
代理商协调
用于多智能体群体协调的内置原语。代理在共享注册表中注册,从队列中声明任务,并直接相互发送消息——所有这些都由NATS KV和JetStream支持。
| 工具 | 别名 | 描述 |
|---|---|---|
agent-join |
join |
用名字和能力加入群体 |
agent-leave |
leave |
离开蜂群,清理干净 |
agent-list |
list-agents |
列出所有活动代理 |
agent-status |
更新您的状态(空闲/忙碌/自定义) | |
task-publish |
publish-task |
为群发布任务 |
task-claim |
claim-task |
申请一个待处理的任务(只需交付一次) |
task-complete |
complete-task |
将任务标记为已完成并带有结果 |
agent-send |
send-to-agent |
向特定代理发送消息 |
agent-read-inbox |
read-inbox, inbox |
阅读收件箱中的邮件 |
嵌入式与外部NATS
嵌入式模式 (默认值--否 -server 标志):在MCP进程内使用JetStream启动一个完整的NATS服务器。数据持续存在 ~/.local/share/nats-mcp/embedded/ (尊重 $XDG_DATA_HOME).非常适合本地开发、单代理使用和快速入门。
外部模式 (-server nats://...):连接到现有的NATS基础架构。将其用于生产部署、多节点集群以及多个MCP服务器实例需要共享状态时。
发展
git clone https://github.com/jesseobrien/nats-mcp.git
cd nats-mcp
go test ./... # all tests use embedded NATS — no external deps
go test -race ./... # recommended — tests the subscription concurrency
go build -o nats-mcp ./cmd/nats-mcp/
释放
通过以下方式自动发布 GoRelease GitHub Actions。按下版本标签会触发整个管道。
先决条件
-
创建Homebrew tap仓库: 在以下位置创建空仓库
jesseobrien/homebrew-tap在GitHub上(只需要一个README)。 -
添加回购机密 到
jesseobrien/nats-mcp在GitHub上:HOMEBREW_TAP_GITHUB_TOKEN--GitHub个人访问令牌repo范围在homebrew-tap回购。这使得戈尔莱瑟能够推广自制配方。
释放
# Tag the release
git tag v0.1.0
# Push the tag (triggers the release workflow)
git push origin v0.1.0
GitHub行动 发布工作流程 将:
- 使用以下命令运行完整的测试套件
-race - Linux、macOS和Windows的交叉编译(amd64+arm64)
- 生成
.deb和.rpm包裹 - 将所有工件发布到 GitHub 发布
- 更新 自制水龙头 公式
验证发布
# Homebrew
brew install jesseobrien/tap/nats-mcp
nats-mcp -help
# Go
go install github.com/jesseobrien/nats-mcp/cmd/nats-mcp@v0.1.0
# Nix
nix run github:jesseobrien/nats-mcp
# Binary (example: Linux amd64)
curl -LO https://github.com/jesseobrien/nats-mcp/releases/download/v0.1.0/nats-mcp_0.1.0_linux_amd64.tar.gz
tar xzf nats-mcp_0.1.0_linux_amd64.tar.gz
./nats-mcp -help
本地干跑
要在不发布的情况下在本地测试发布过程,请执行以下操作:
goreleaser release --snapshot --clean
ls dist/ # inspect the built artifacts