这是一个提供对NATS(一种云原生消息系统)访问的MCP(模型上下文协议)服务器,通过NATS CLI进行访问。
使用Homebrew:
brew tap nats-io/nats-tools
brew install nats-io/nats-tools/nats
使用snap:
snap install nats
使用apt (Debian/Ubuntu):
# 首先,添加NATS仓库
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
# 然后安装
sudo apt-get update
sudo apt-get install nats-server
使用yum (RHEL/CentOS):
# 添加NATS仓库
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
# 安装
sudo yum install nats-server
使用Chocolatey:
choco install nats-io-client
使用Scoop:
scoop bucket add nats https://github.com/nats-io/scoop-bucket.git
scoop install nats
手动安装:
如果您的系统没有可用的包:
# 需要Go 1.16+
go install github.com/nats-io/natscli/nats@latest
安装完成后,验证CLI是否正常工作:
# 检查版本
nats --version
# 测试连接到默认服务器
nats ping
# 列出可用命令
nats help
# 从npm安装
npm install @modelcontextprotocol/nats-mcp-server
# 或者克隆并从源代码构建
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工具:
向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" }
]
});
订阅NATS主题并接收消息。
参数:
subject (必需): 订阅的NATS主题timeout (可选): 订阅超时时间(毫秒,默认:5000)count (可选): 接收消息的数量raw (可选): 只显示消息负载示例:
const result = await mcp.useTool("nats", "subscribe", {
subject: "greetings",
timeout: 10000,
count: 5,
raw: true
});
发送请求消息并等待回复。
参数:
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
});
添加到~/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"
}
}
}
}
添加到~/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"
}
}
}
}
服务器包括对以下情况的健壮错误处理:
要构建项目:
npm run build
构建输出将在build目录中。
git checkout -b feature/amazing-feature)git commit -m 'Add some amazing feature')git push origin feature/amazing-feature)MIT