mcpField
N
NATS MCP Server

NATS MCP Server

本地服务
github.com/bmorphism云与基础设施794 周前更新

关于 NATS MCP Server

NATS MCP Server 通过 NATS CLI 让 AI Agent 与 NATS 消息系统交互,适用于需要从 MCP 客户端发布、订阅或请求消息的场景。

主要功能

  1. 01发布消息并配置高级选项
  2. 02订阅主题并设置接收条件
  3. 03支持请求-回复模式
  4. 04通过 NATS CLI 执行操作
  5. 05发布消息时支持模板处理

适用场景

  1. 01向 NATS 主题发送带标头的消息
  2. 02接收主题消息并限制时长或数量
  3. 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

手动安装:

  1. 从 NATS CLI Releases 下载最新版本
  2. 解压归档文件
  3. 将二进制文件添加到系统 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:唯一 ID
  • Random(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 目录中。

贡献

  1. Fork 此仓库
  2. 创建功能分支(git checkout -b feature/amazing-feature)
  3. 提交更改(git commit -m 'Add some amazing feature')
  4. 将更改推送到分支(git push origin feature/amazing-feature)
  5. 发起 Pull Request

许可证

MIT

致谢

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。