NATS MCP服务器
MCP(模型上下文协议)服务器,提供对以下内容的访问 NATS,一个云原生消息系统,通过NATS CLI。
特性
- 使用高级选项(标题、模板、回复主题)发布邮件
- 订阅具有可配置超时和消息计数的主题
- 带有标头的请求-回复模式支持
- 完整的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/natsLinux
使用快照:
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视窗
使用巧克力:
choco install nats-io-client使用Scoop:
scoop bucket add nats https://github.com/nats-io/scoop-bucket.git
scoop install nats手动安装:
- 从下载最新版本 NATS CLI发布
- 提取存档
- 将二进制文件添加到系统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工具:
发布
使用高级选项向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:UTC自1970年以来的秒数UnixNano:自1970年以来的纳秒(UTC)Time:当前时间ID:唯一IDRandom(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"
}
}
}
}适用于克劳德桌面
增添 ~/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 目录。
贡献
- 分叉存储库
- 创建功能分支(
git checkout -b feature/amazing-feature) - 提交您的更改(
git commit -m 'Add some amazing feature') - 推到分支(
git push origin feature/amazing-feature) - 打开拉取请求
许可证
麻省理工学院
致谢
- NATS.io 网站 -对于惊人的消息系统
- NATS-CLI -对于CLI工具
- 模型上下文协议 -对于MCP框架
