使用说明
NatsMCP
非官方的Nats MCP服务器与Nats交互。
特性
-
按需创建流
只需一个提示即可启动完全配置的JetStream流(存储、限制、副本)。 -
添加或更新主题过滤器
在不停机的情况下将新主题添加到任何现有流中。 -
一次性消息发布
将JSON或纯文本有效载荷发送给任何受试者,供烟雾测试生产者或消费者使用。 -
集群库存概览
列出当前JetStream域中的每个流,包括消息/字节计数和副本信息。 -
流健康诊断
获取一份涵盖保留限制、利用率和常见错误配置的丰富报告。 -
消费者滞后和状态分析
检查任何消费者的已交付、待处理、重新交付的计数和实时延迟。 -
详细的消费者诊断
深入了解消费者的配置(ack策略、交付策略、过滤器),并发现危险信号。 -
人性化的错误和指导
直接的解释和补救技巧,而不是神秘的堆栈痕迹。 -
按需添加采购 在现有流的源代码中添加新流。
-
流备份和还原 将流配置和状态备份到Google Cloud Storage,具有基于智能日期的还原功能。
-
灵活的NATS身份验证 使用令牌、creds文件、creds字符串或根本不进行身份验证连接到NATS。有关详细信息,请参阅用法/配置。
-
高级消息工具 按主题、标题或大小列出、过滤和检查邮件,并查看邮件详细信息。
安装
先决条件
- Node.js(v16或更高版本)
- npm或纱线
- 谷歌云存储桶(可选,仅备份/还原功能需要)
- Express(可选,仅SSE/远程模式需要)
- Docker(可选,用于通过容器运行)
使用Docker运行(快速入门)
您可以使用最新的Docker镜像立即运行NatsMCP:
docker pull theworksofvon915/nats-mcp:latest
然后,在您的AI助手配置中,您可以使用:
{
"mcpServers": {
"NatsMCP": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"-e",
"NATS_SERVER_URL=YOUR_NATS_URL",
"theworksofvon915/nats-mcp:latest"
]
}
}
}
替换 YOUR_NATS_URL 使用您的NATS服务器URL(例如。, nats://localhost:4222).
您还可以传递其他环境变量(请参阅下面的选项)
从源代码构建
# Clone the repository
git clone https://github.com/theworksofvon/nats-mcp/nats-mcp.git
cd nats-mcp
# Install dependencies
npm install
# If you want to use SSE (remote) mode, install express:
npm install express
npm install --save-dev @types/express
# If you want to use backup/restore features, install Google Cloud Storage:
npm install @google-cloud/storage
# Build the project
npm run build
用法
设置
- 构建项目以生成
build文件夹
npm run build
- 通过创建配置文件(例如。,
claude_desktop_config.json):
{
"mcpServers": {
"NatsMCP": {
"command": "node",
"args": [
"/path/to/your/nats-mcp/build/index.js"
],
"env": {
"NATS_SERVER_URL": "YOUR_NATS_SERVER_URL",
"NATS_DOMAIN": "YOUR_JS_DOMAIN",
// gcloud
// "GOOGLE_CLOUD_PROJECT": "YOUR_GCP_PROJECT_ID",
// "GOOGLE_CLOUD_CLIENT_EMAIL": "YOUR_SERVICE_ACCOUNT_EMAIL",
// "GOOGLE_CLOUD_PRIVATE_KEY": "YOUR_SERVICE_ACCOUNT_PRIVATE_KEY"
// Http
// "MCP_TRANSPORT": <sse or exclude for local>
// "PORT": < define port # or exclude for local>
// Optional Nats
// "NATS_CONNECTION_NAME": "YOUR_CONNECTION_NAME"
// "NATS_TOKEN": "YOUR_NATS_TOKEN"
// "NATS_CREDS_FILE": "PATH_TO_NATS_CREDS_FILE"
// "NATS_CREDS": "NATS_CREDS_FILE_CONTENTS"
}
}
}
}
替换占位符:
/path/to/your/nats-mcp/build/index.js-构建的index.js文件的完整路径NATS_SERVER_URL-指向nats服务器的URL(例如。,nats@localhost:4222)NATS_DOMAIN-你的JS域名GOOGLE_CLOUD_PROJECT-您的Google Cloud项目ID(可选)GOOGLE_CLOUD_CLIENT_EMAIL-服务帐户电子邮件(可选)GOOGLE_CLOUD_PRIVATE_KEY-服务帐户私钥(可选)NATS_TOKEN-用于身份验证的NATS令牌(可选)NATS_CREDS_FILE-NATS creds文件的路径(可选)NATS_CREDS-NATS将文件内容创建为字符串(可选)
灵活的NATS身份验证
NatsMCP支持连接到NATS服务器的多种身份验证方法:
- 代币:设置
NATS_TOKEN在您的环境或配置中。 - 凭据文件:设置
NATS_CREDS_FILE走向你的道路.creds文件。 - 凭据字符串:设置
NATS_CREDS到您的creds文件的内容(作为字符串)。 - 无身份验证:如果未设置上述任何一项,则NatsMCP将在不进行身份验证的情况下连接。
运行服务器
-
本地(stdio)模式(默认,不需要express):
npm start服务器将在本地运行,并通过stdio(用于桌面/本地AI助手)进行通信。
-
远程(SSE)模式(需要快速):
MCP_TRANSPORT=sse PORT=8080 npm start服务器将侦听指定端口(默认8080)并公开两个端点:
/sse(用于SSE连接)/messages(用于消息POS)
注: 如果在没有安装express的情况下以SSE模式运行,服务器将退出并显示错误和说明。
-
备份/还原(需要@google云/存储): 如果你想使用备份和还原工具,你必须安装谷歌云存储库:
npm install @google-cloud/storage如果在没有此库的情况下运行备份/还原命令,服务器将显示错误和说明。
使用您的AI助手
配置后,您可以要求您的AI助手:
- 发布消息:
"Can you publish this message {"message" : "test" } to subject test.subject"
- 诊断流/消费者问题:
"What's going wrong with stream-2 and consumer-1?"
- 创建流:
"Can you create me a new stream, stream-7 with all default values ?"
- 添加来源:
"Can you add stream-1 to source-stream-2 sourcing list ?"
- 备份流:
"Can you backup stream-1 to my-backups-bucket?"
- 恢复流:
"Can you restore stream-1 from the backup closest to May 30th?"
- 列出最近的消息:
"Show me the 5 most recent messages in stream-1."
- 按主题筛选邮件:
"List the last 10 messages in stream-1 with subject 'foo.bar'."
- 按邮件标题搜索邮件:
"Find messages in stream-1 with header 'x-request-id'."
- 显示邮件大小分布:
"Show the size distribution of the last 100 messages in stream-1."
- 查看特定消息:
"Show me message 42 in stream-1."
可用的MCP工具
NatsMCP向您的AI助手公开了以下以JetStream为中心的工具:
createStream:使用给定的名称、主题集、存储类型、限制等创建新流。addSubjects:将一个或多个附加主题附加到现有流中。publish:将任意文本有效负载发布到集群中的任何主题(便于烟雾测试)。listStreams:列出配置的JetStream域中的每个流以及基本统计数据。diagnoseStream:为流生成详细的运行状况报告——消息/字节、限制、潜在问题。checkConsumerLag:显示特定消费者的挂起、重新交付和延迟指标。diagnoseConsumer:深入了解一个消费者的配置和运行时状态,突出显示危险信号。addStreamSource:将流添加到SourceStream源列表中。checkStreamSources:检查流中列出的源。removeStreamSource:从另一个流源列表中删除一个流。deleteStream:完全删除流。backupStream:使用Google Cloud Storage备份或还原流的配置和状态。listBackups:列出流的可用备份,并查找距离特定日期最近的备份。listRecentMessages:列出流中最近的N条消息。listMessagesBySubject:列出流中与主题筛选器匹配的N条最新消息。searchMessagesByHeader:在流中查找包含特定标头键(以及可选值)的消息。messageSizeDistribution:显示流中消息大小的最小值、最大值、平均值和直方图。viewMessage:按序列号查看流中的特定消息。
可用MCP资源
NatsMCP还提供以下用于监视和诊断的资源:
-
/streams/health:提供所有流的实时健康指标和状态,包括:- 消息计数和字节大小
- 序列号(第一个和最后一个)
- 消费者数量
- 删除统计
- 流配置详细信息(最大年龄、字节数、消息、存储类型、副本)
-
/consumers/status:提供所有流中所有消费者的当前状态,包括:- 传递状态(已传递和已确认的消息)
- 待处理邮件计数
- 重新交付统计
- 消费者配置(ack策略、交付策略等)
-
/cluster/stats:提供集群范围内的统计数据和指标,包括:- 流总数
- 所有流中的消息和字节总数
- 按存储类型划分的流分布
- 按副本数量分布流
- 消费者总数
这些资源返回可用于监视、警报和诊断的JSON数据。它们可以通过MCP协议访问,并可以与您的监控系统集成。