RabbitMQ MassTransit MCP服务器
RabbitMQ的MCP(模型上下文协议)服务器 MassTransit智能 --错误队列解析、故障分析和消息重新发布。
为跨团队调试异步消息传递问题而构建。NET微服务。通过了解MassTransit惯例,超越了基本的队列管理: _error/_skipped 队列、消息信封格式和故障消息解析。
特性
- 18工具 通过Claude Code实现完整的RabbitMQ管理
- MassTransit感知:自动检测和解析
_error/_skipped队列、故障信封和消息类型URNs - 解析错误输出:异常类型、消息、堆栈跟踪、消费者类型、重试计数和原始有效载荷——从中提取
MT-Fault-*消息头 - 从错误重新发布:杀手级功能——获取故障消息并重新发布以进行重新处理
- 安全默认值:默认情况下禁用可变工具,对破坏性操作进行两步确认
快速入门
1.添加到您的Claude代码配置中 (~/.claude.json 或项目 .claude.json):
{
"mcpServers": {
"rabbitmq": {
"command": "npx",
"args": ["-y", "@stevepic95/rabbitmq-masstransit-mcp@latest"],
"env": {
"RABBITMQ_HOST": "your-rabbitmq-host",
"RABBITMQ_USERNAME": "your-username",
"RABBITMQ_PASSWORD": "your-password"
}
}
}
}2.重新启动克劳德代码 加载新的MCP服务器。
3.开始使用它。 问克劳德这样的问题:
- *“是否有包含消息的错误队列?”*
- *“显示提交订单错误队列中的故障”*
- *“哪些队列没有消费者?”*
- *“报告队列中有多少条消息?”*
就是这样。13个只读工具立即可用,不需要任何标志。
要启用写入操作(清除、删除、发布、重新发布),请设置 "ALLOW_MUTATIVE_TOOLS": "true" 在env配置中。安装
npx @stevepic95/rabbitmq-masstransit-mcp@latestClaude代码配置
添加到您的 .claude.json 在...之下 mcpServers:
{
"mcpServers": {
"rabbitmq": {
"command": "npx",
"args": ["-y", "@stevepic95/rabbitmq-masstransit-mcp@latest"],
"env": {
"RABBITMQ_HOST": "your-rabbitmq-host",
"RABBITMQ_PORT": "15672",
"RABBITMQ_USERNAME": "your-username",
"RABBITMQ_PASSWORD": "your-password",
"RABBITMQ_VHOST": "/",
"RABBITMQ_SSL": "false",
"ALLOW_MUTATIVE_TOOLS": "false"
}
}
}
}对于当地发展:
{
"mcpServers": {
"rabbitmq": {
"command": "node",
"args": ["/path/to/rabbitmq-masstransit-mcp/dist/index.js"],
"env": {
"RABBITMQ_HOST": "localhost",
"RABBITMQ_USERNAME": "guest",
"RABBITMQ_PASSWORD": "guest"
}
}
}
}配置
| 变量 | 必填 | 默认 | 描述 |
|---|---|---|---|
RABBITMQ_HOST | 是 | - | RabbitMQ管理API主机名 |
RABBITMQ_PORT | 没有 | 15672 | 管理API端口 |
RABBITMQ_USERNAME | 是 | -- | 身份验证用户名 |
RABBITMQ_PASSWORD | 是 | -- | 身份验证密码 |
RABBITMQ_VHOST | 没有 | / | 默认虚拟主机 |
RABBITMQ_SSL | 没有 | false | 使用HTTPS进行管理API |
ALLOW_MUTATIVE_TOOLS | 没有 | false | 启用可变工具(清除、删除、发布、重新发布、移动) |
您还可以通过CLI标志启用变异工具: --allow-mutative-tools
工具
只读(13个工具)-始终可用
| 工具 | 说明 |
|---|---|
get_overview | 集群统计数据:队列总数、连接计数、消息速率 |
list_queues | 列出队列的深度、消费者数量和费率。按vhost、名称模式筛选 |
get_queue | 详细的队列统计信息:深度、速率、消费者、内存、策略 |
list_exchanges | 列出交易所。按vhost、类型筛选 |
get_exchange | 交换详细信息和绑定 |
list_bindings | 列出队列或交换的绑定 |
list_connections | 与客户端信息的活动连接 |
list_consumers | 具有队列分配的活跃消费者 |
peek_messages | 浏览邮件而不消耗(非破坏性) |
list_error_queues | 查找全部 _error 带有消息计数的队列 |
list_skipped_queues | 查找全部 _skipped 带有消息计数的队列 |
peek_errors | 使用浏览错误队列消息 解析的故障详细信息 |
get_queue_health | 快速健康检查:无消费者,深度不断增长,错误率高 |
可变(5个工具)-需要 ALLOW_MUTATIVE_TOOLS=true
| 工具 | 说明 |
|---|---|
purge_queue | 清除队列中的所有邮件 |
delete_queue | 删除队列 |
publish_message | 向交易所发布消息 |
republish_from_error | 重新发布来自的错误消息 _error 排队到原始交易所 |
move_messages | 将邮件从一个队列移动到另一个队列 |
MassTransit智能
队列解析错误
peek_errors 不只是转储原始JSON,它读取 MT-Fault-* MassTransit在将消息移动到错误队列时附加的标头,为您提供调试故障所需的一切:
Queue: submit-order_error (3 messages)
Message 1:
Faulted: 2026-02-15T14:30:05Z
Reason: fault
Message Type: MyApp.Messages.OrderSubmitted
Consumer: MyApp.Consumers.SubmitOrderConsumer
Exception: Microsoft.Data.SqlClient.SqlException - "Arithmetic overflow error converting numeric to data type numeric."
Retry Count: 5
Stack Trace:
at Microsoft.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(...)
at MyApp.Data.OrderRepository.GetFees(Int32 orderId) in /src/OrderRepository.cs:line 35
at MyApp.Services.OrderService.Process(Int32 id) in /src/OrderService.cs:line 51
at MyApp.Consumers.SubmitOrderConsumer.Consume(ConsumeContext`1 context) in /src/SubmitOrderConsumer.cs:line 11
Original Payload: { "orderId": "abc-123", "amount": 99.99 }
Source Host: order-service-swrm-app1b-p02 / order-service (PID 1)
Assembly: order-service v1.0.3.0 (.NET 8.0.8)从错误重新发布(两步)
调试的最高价值工具。第一次呼叫预览消息:
> republish_from_error(errorQueue: "submit-order_error", count: 3)
Preview: 3 message(s) from "submit-order_error" ready to republish:
[... parsed fault details ...]
To republish these messages, call again with confirm=true and count=3.第二次通话 confirm: true 实际消费和重新发布:
> republish_from_error(errorQueue: "submit-order_error", count: 3, confirm: true)
Republished 3/3 message(s) from "submit-order_error".队列健康检查
快速概述所有队列中的潜在问题:
> get_queue_health()
⚠ Queues with NO consumers and messages (2):
order-processing — 150 message(s)
notification-sender — 42 message(s)
✗ Error queues with messages (3 queues, 89 total):
submit-order_error — 45 message(s)
payment-process_error — 32 message(s)
email-send_error — 12 message(s)
△ High depth queues (>1000 messages, 1):
analytics-events — 15234 message(s), 2 consumer(s)需求
- Node.js>=18.0.0
- 启用管理插件的RabbitMQ(端口15672)
许可证
麻省理工学院
