NATS-MCP协议服务器

一个为AI代理提供完整NATS访问的模型上下文协议服务器,支持消息传递、JetStream流、KV存储、对象存储、服务发现和多代理协调。

  • by jesseobrien
  • Go
  • 本地部署
  • 更新于
在 GitHub 查看 jesseobrien/nats-mcp

使用说明

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。按下版本标签会触发整个管道。

先决条件

  1. 创建Homebrew tap仓库: 在以下位置创建空仓库 jesseobrien/homebrew-tap 在GitHub上(只需要一个README)。

  2. 添加回购机密 到 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行动 发布工作流程 将:

  1. 使用以下命令运行完整的测试套件 -race
  2. Linux、macOS和Windows的交叉编译(amd64+arm64)
  3. 生成 .deb 和 .rpm 包裹
  4. 将所有工件发布到 GitHub 发布
  5. 更新 自制水龙头 公式

验证发布

# 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

许可证

麻省理工学院