README
🚀 NATS MCP 服务器
NATS MCP 服务器是一个借助 Nats CLI 来访问 NATS(云原生消息系统)的 MCP(模型上下文协议)服务器,能让用户更便捷地与 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)安装:
# 首先添加 NATS 仓库
echo "deb https://dl.nats.io/nats-io/repo/deb stable" | sudo tee /etc/apt/sources.list.d/nats.list
sudo apt update && sudo apt install nats
- 使用 yum(CentOS/RHEL)安装:
# 首先添加 NATS 仓库
cat << EOF | sudo tee /etc/yum.repos.d/nats.repo
[nats]
name=NATS - https://nats.io
baseurl=https://dl.bintray.com/nats-io/rpm/centos/\$releasever/\$basearch/
enabled=1
gpgcheck=1
EOF
sudo yum clean all && sudo yum install nats
Windows
使用 winget 安装:
winget install nats.io.NATS
验证安装
安装完成后,可通过以下命令验证是否正确安装:
nats --version
🚀 快速开始
安装 MCP 服务器
- 克隆仓库:
git clone https://github.com/yourusername/nats-mcp-server.git
cd nats-mcp-server
- 安装依赖:
npm install
- 构建项目:
npm run build
- 启动服务器:
node build/index.js
💻 使用示例
添加到 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"
}
}
}
}
命令参考
发布(publish)
发布一条消息到指定主题:
node build/index.js publish --subject <主题> --message "<消息>"
订阅(subscribe)
订阅指定主题的消息:
node build/index.js subscribe --subject <主题> [--timeout <超时时间>] [--count <消息数量>]
请求(request)
向指定主题发送请求并等待回复:
node build/index.js request --subject <主题> --message "<请求消息>" [--timeout <超时时间>]
模板函数
当使用模板(template: true)时,以下函数可用:
Count:消息编号TimeStamp:RFC3339 格式当前时间Unix:UTC 时间自 1970 的秒数UnixNano:UTC 时间自 1970 的纳秒数Time:当前时间ID:唯一 IDRandom(min, max):指定长度的随机字符串
示例:
const result = await mcp.useTool("nats", "publish", {
subject: "test",
message: "Random data: {{ Random 10 100 }}",
template: true
});
🔧 技术细节
服务器包含以下错误处理:
- 连接失败
- 无效参数
- 超时
- 网络错误
- NATS 特定错误
- CLI 执行错误
开发
- 克隆仓库:
git clone https://github.com/yourusername/nats-mcp-server.git
cd nats-mcp-server
- 安装依赖:
npm install
- 构建项目:
npm run build
- 启动开发服务器:
node build/index.js
贡献
- 叉仓库
- 创建功能分支(
git checkout -b feature/amazing-feature) - 提交更改(
git commit -m 'Add some amazing feature') - 推送到分支(
git push origin feature/amazing-feature) - 打开 Pull Request
📄 许可证
MIT
Scan to join WeChat group