关于 NATS MCP Server
NATS MCP Server 通过 NATS CLI 让 AI Agent 与 NATS 消息系统交互,适用于需要从 MCP 客户端发布、订阅或请求消息的场景。
主要功能
- 01发布消息并配置高级选项
- 02订阅主题并设置接收条件
- 03支持请求-回复模式
- 04通过 NATS CLI 执行操作
- 05发布消息时支持模板处理
适用场景
- 01向 NATS 主题发送带标头的消息
- 02接收主题消息并限制时长或数量
- 03向服务发送请求并等待回复
MCP 相关
该 MCP 服务向 MCP 客户端提供发布、订阅和请求工具,并通过 NATS CLI 与 NATS 交互。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
NATS MCP 服务
一个 MCP(Model Context Protocol)服务,可通过 NATS CLI 访问 NATS —— 一种云原生消息系统。
功能
- 使用高级选项(标头、模板、回复主题)发布消息
- 订阅主题,并可配置超时和消息数量
- 支持带标头的请求-回复模式
- 完整集成 NATS CLI
- 错误处理和清理
要求
- Node.js >= 14.0.0
- NATS CLI (nats)
安装 NATS CLI
macOS
使用 Homebrew:
brew tap nats-io/nats-tools
brew install nats-io/nats-tools/nats
Linux
使用 snap:
snap install nats
使用 apt(Debian/Ubuntu):
# First, add the NATS repository
echo "deb https://dl.nats.io/nats-io/repo/deb nats release" | sudo tee /etc/apt/sources.list.d/nats.list
curl -fsSL https://dl.nats.io/nats-io/repo/deb/gpg.key | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/nats.gpg
# Then install
sudo apt-get update
sudo apt-get install nats-server
使用 yum(RHEL/CentOS):
# Add the NATS repository
echo "[nats]
name=NATS Repository
baseurl=https://dl.nats.io/nats-io/repo/rpm/centos/\$releasever/\$basearch
gpgcheck=1
gpgkey=https://dl.nats.io/nats-io/repo/rpm/gpg.key
enabled=1" | sudo tee /etc/yum.repos.d/nats.repo
# Install
sudo yum install nats-server
Windows
使用 Chocolatey:
choco install nats-io-client
使用 Scoop:
scoop bucket add nats https://github.com/nats-io/scoop-bucket.git
scoop install nats
手动安装:
- 从 NATS CLI Releases 下载最新版本
- 解压归档文件
- 将二进制文件添加到系统 PATH
从源代码构建
如果系统没有可用的软件包:
# Requires Go 1.16+
go install github.com/nats-io/natscli/nats@latest
验证安装
安装后,验证 CLI 是否正常运行:
# Check version
nats --version
# Test connection to default server
nats ping
# List available commands
nats help
安装
# Install from npm
npm install @modelcontextprotocol/nats-mcp-server
# Or clone and build from source
git clone https://github.com/bmorphism/nats-mcp-server.git
cd nats-mcp-server
npm install
npm run build
配置
可以使用环境变量配置服务:
NATS_URL:NATS 服务 URL(默认值:'nats://localhost:4222')
用法
该服务提供以下 MCP 工具:
publish
使用高级选项向 NATS 主题发布消息。
参数:
subject(必填):要发布到的 NATS 主题message(必填):要发布的消息reply(可选):请求-回复模式的回复主题headers(可选):消息标头数组(键值对)count(可选):要发布的消息数量sleep(可选):消息之间的间隔时长(例如:"100ms")template(可选):启用消息中的 Go 模板处理
使用模板的示例:
const result = await mcp.useTool("nats", "publish", {
subject: "greetings",
message: "Message {{Count}} @ {{Time}}",
count: 5,
sleep: "1s",
template: true
});
使用标头的示例:
const result = await mcp.useTool("nats", "publish", {
subject: "orders",
message: "New order received",
headers: [
{ key: "OrderId", value: "12345" },
{ key: "Priority", value: "high" }
]
});
subscribe
订阅 NATS 主题并接收消息。
参数:
subject(必填):要订阅的 NATS 主题timeout(可选):订阅超时时间,单位为毫秒(默认值:5000)count(可选):退出前要接收的消息数量raw(可选):仅显示消息载荷
示例:
const result = await mcp.useTool("nats", "subscribe", {
subject: "greetings",
timeout: 10000,
count: 5,
raw: true
});
request
发送请求消息并等待回复。
参数:
subject(必填):要发送请求的 NATS 主题message(必填):请求消息timeout(可选):请求超时时间,单位为毫秒(默认值:5000)headers(可选):请求标头数组(键值对)
示例:
const result = await mcp.useTool("nats", "request", {
subject: "service.time",
message: "What time is it?",
timeout: 3000,
headers: [
{ key: "Locale", value: "en-US" }
]
});
模板函数
使用模板(template: true)时,可使用以下函数:
Count:消息编号TimeStamp:当前时间,采用 RFC3339 格式Unix:自 1970 年以来的秒数(UTC)UnixNano:自 1970 年以来的纳秒数(UTC)Time:当前时间ID:唯一 IDRandom(min, max):生成长度介于 min 和 max 之间的随机字符串
随机字符串示例:
const result = await mcp.useTool("nats", "publish", {
subject: "test",
message: "Random data: {{ Random 10 100 }}",
template: true
});
添加到 MCP 配置
用于 Cline(VSCode 扩展)
添加到 ~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json:
{
"mcpServers": {
"nats": {
"command": "node",
"args": ["/path/to/nats-mcp-server/build/index.js"],
"env": {
"NATS_URL": "nats://localhost:4222"
}
}
}
}
用于 Claude Desktop
添加到 ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"nats": {
"command": "node",
"args": ["/path/to/nats-mcp-server/build/index.js"],
"env": {
"NATS_URL": "nats://localhost:4222"
}
}
}
}
错误处理
该服务包含完善的错误处理机制,可处理:
- 连接失败
- 无效参数
- 超时
- 网络错误
- NATS 特定错误
- CLI 执行错误
开发
构建项目:
npm run build
构建输出将位于 build 目录中。
贡献
- Fork 此仓库
- 创建功能分支(
git checkout -b feature/amazing-feature) - 提交更改(
git commit -m 'Add some amazing feature') - 将更改推送到分支(
git push origin feature/amazing-feature) - 发起 Pull Request
许可证
MIT
致谢
- NATS.io - 感谢提供出色的消息系统
- NATS CLI - 感谢提供 CLI 工具
- Model Context Protocol - 感谢提供 MCP 框架
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。