Kiro 中配置 RabbitMQ MCP Server 指南
Kiro 中配置 RabbitMQ MCP Server 指南一、背景介绍通过配置 RabbitMQ MCP Server可以让 Kiro 具备直接与 RabbitMQ 消息队列交互的能力包括发送消息、查看队列状态、消费消息等方便在开发过程中进行消息驱动的功能测试验证。二、方案选型方案优缺点开源 PyPI 包uvx 运行安装简单但依赖兼容性差版本更新可能破坏功能自建本地 Python MCP Server稳定可控仅依赖pikamcp两个库无第三方包兼容问题推荐方案自建本地 Python MCP Server注博客https://blog.csdn.net/badao_liumang_qizhi三、环境准备1. 确认 Python 环境python--version# 需要 Python 3.102. 安装依赖pipinstallpika mcppikaPython 的 RabbitMQ/AMQP 客户端库mcpModel Context Protocol SDK用于构建 MCP Server四、创建 MCP Server 脚本在项目的.kiro/tools/目录下创建rabbitmq_mcp_server.py RabbitMQ MCP Server - 本地版. 支持标准 RabbitMQ 及阿里云 ApsaraMQ for RabbitMQ。 importjsonimportosimportpikafrommcp.server.fastmcpimportFastMCP# 从环境变量获取连接配置RABBITMQ_HOSTos.environ.get(RABBITMQ_HOST,localhost)RABBITMQ_PORTint(os.environ.get(RABBITMQ_PORT,5672))RABBITMQ_USERNAMEos.environ.get(RABBITMQ_USERNAME,guest)RABBITMQ_PASSWORDos.environ.get(RABBITMQ_PASSWORD,guest)RABBITMQ_VHOSTos.environ.get(RABBITMQ_VHOST,/)mcpFastMCP(rabbitmq-server)defget_connection():创建RabbitMQ连接.credentialspika.PlainCredentials(RABBITMQ_USERNAME,RABBITMQ_PASSWORD)parameterspika.ConnectionParameters(hostRABBITMQ_HOST,portRABBITMQ_PORT,virtual_hostRABBITMQ_VHOST,credentialscredentials,connection_attempts3,retry_delay5,socket_timeout30,heartbeat0,)returnpika.BlockingConnection(parameters)mcp.tool()defpublish_message(exchange:str,routing_key:str,message:str,content_type:strapplication/json)-str:发送消息到指定的exchange和routing_key.try:connectionget_connection()channelconnection.channel()propertiespika.BasicProperties(content_typecontent_type,delivery_mode2,)channel.basic_publish(exchangeexchange,routing_keyrouting_key,bodymessage.encode(utf-8),propertiesproperties,)connection.close()returnf消息发送成功。exchange{exchange}, routing_key{routing_key}exceptExceptionase:returnf消息发送失败:{str(e)}mcp.tool()defcheck_queue(queue_name:str)-str:检查指定队列的状态.try:connectionget_connection()channelconnection.channel()resultchannel.queue_declare(queuequeue_name,passiveTrue)info{queue:result.method.queue,message_count:result.method.message_count,consumer_count:result.method.consumer_count,}connection.close()returnjson.dumps(info,ensure_asciiFalse)exceptExceptionase:returnf队列检查失败:{str(e)}mcp.tool()defget_message(queue_name:str,auto_ack:boolFalse)-str:从指定队列中获取一条消息.try:connectionget_connection()channelconnection.channel()method,properties,bodychannel.basic_get(queuequeue_name,auto_ackauto_ack)ifmethodisNone:connection.close()return队列中没有消息msg_info{delivery_tag:method.delivery_tag,exchange:method.exchange,routing_key:method.routing_key,content_type:properties.content_type,body:body.decode(utf-8)ifbodyelse,}ifnotauto_ack:channel.basic_nack(delivery_tagmethod.delivery_tag,requeueTrue)connection.close()returnjson.dumps(msg_info,ensure_asciiFalse,indent2)exceptExceptionase:returnf获取消息失败:{str(e)}mcp.tool()deftest_connection()-str:测试RabbitMQ连接是否正常.try:connectionget_connection()connection.channel()connection.close()returnf连接成功host{RABBITMQ_HOST}, port{RABBITMQ_PORT}, vhost{RABBITMQ_VHOST}exceptExceptionase:returnf连接失败:{str(e)}if__name____main__:mcp.run(transportstdio)五、配置 MCP Server在.kiro/settings/mcp.json中添加配置{mcpServers:{rabbitmq:{command:python,args:[脚本的绝对路径/rabbitmq_mcp_server.py],env:{RABBITMQ_HOST:your-rabbitmq-host.com,RABBITMQ_PORT:5672,RABBITMQ_USERNAME:your-username,RABBITMQ_PASSWORD:your-password,RABBITMQ_VHOST:/},disabled:false,autoApprove:[]}}}注意事项args中的脚本路径必须使用绝对路径因为 Kiro 的工作目录不是项目目录Windows 路径示例D:\\Project\\my-app\\.kiro\\tools\\rabbitmq_mcp_server.py六、阿里云 ApsaraMQ 适配说明如果使用阿里云 ApsaraMQ for RabbitMQ认证方式有所不同阿里云不支持直接使用 AccessKey 作为用户名密码需要先在阿里云控制台通过 AK/SK生成静态用户名和密码生成后的静态凭据可以直接配置在RABBITMQ_USERNAME和RABBITMQ_PASSWORD中协议层面完全兼容无需额外适配七、问题排查问题1脚本路径找不到python: cant open file .kiro/tools/rabbitmq_mcp_server.py: No such file or directory原因使用了相对路径Kiro 的工作目录不在项目根目录下解决改为绝对路径问题2PyPI 包依赖冲突ImportError: cannot import name BearerAuthProvider from fastmcp.server.auth原因开源 PyPI 包与 fastmcp 版本不兼容解决放弃第三方包使用自建本地脚本方案问题3国内网络无法访问 PyPIFailed to fetch: https://pypi.org/simple/xxx - operation timed out解决使用国内镜像或直接采用本地脚本方案无需网络下载问题4消费者反序列化失败Failed to invoke target method with argument type [class [B]原因Java Spring 项目使用SimpleMessageConverterJava 序列化Python 发送的 JSON 无法被正确反序列化解决对于 Java 序列化的消息通过 Java 单元测试发送消息Python MCP 仅用于查看队列状态和消费已有消息八、使用示例测试连接 测试下 RabbitMQ 连接 → 调用 test_connection() ← 连接成功hostyour-host.com, port5672, vhost/查看队列状态 查看 my-queue 队列的消息数 → 调用 check_queue(my-queue) ← {queue: my-queue, message_count: 3, consumer_count: 1}发送消息 发送一条测试消息到 my-exchange → 调用 publish_message(my-exchange, my-routing-key, {key: value}) ← 消息发送成功。exchangemy-exchange, routing_keymy-routing-key读取消息不删除 查看队列中的第一条消息 → 调用 get_message(my-queue, auto_ackFalse) ← {delivery_tag: 1, exchange: my-exchange, routing_key: ..., body: ...}九、适用场景与局限适用场景查看队列状态消息堆积数、消费者数发送简单的 JSON 文本消息读取/窥视队列中的消息内容验证消息路由是否正确局限无法发送 Java 序列化格式的消息需要通过 Java 单测配合不支持管理操作创建/删除 exchange、queue 等需 Management API不支持 TLS/SSL 连接如需要可在脚本中添加 SSL 配置十、总结本地自建 Python MCP Server 是最稳定可靠的方案配合 MySQL MCP 可以实现完整的消息驱动功能验证闭环MySQL MCP→ 查询/准备测试数据RabbitMQ MCP→ 查看队列状态、发送/读取消息MySQL MCP→ 验证消费后的数据库状态变化

相关新闻

j4rs错误处理指南:全面解析Rust调用Java时的异常捕获和处理策略

j4rs错误处理指南:全面解析Rust调用Java时的异常捕获和处理策略

j4rs错误处理指南:全面解析Rust调用Java时的异常捕获和处理策略 【免费下载链接】j4rs Java for Rust 项目地址: https://gitcode.com/gh_mirrors/j4/j4rs 在跨语言编程的世界中,错误处理是确保应用稳定性的关键环节。j4rs作为强大的Java和Rust互…

2026/10/4 8:24:45 阅读更多 →
SpringBoot中实现告警判定算法-位报警与模拟量阈值-技术详解

SpringBoot中实现告警判定算法-位报警与模拟量阈值-技术详解

SpringBoot中实现告警判定算法-位报警与模拟量阈值-技术详解适用场景:IoT / 工业监控 / 设备告警 / 任何"周期采样 → 判定是否告警 → 落库 → 恢复"的系统。目录 为什么告警判定要分两类第一类:位报警(布尔量)—— 边…

2026/10/4 8:23:43 阅读更多 →
Java面试高效突击:从原理到场景的实战解题框架

Java面试高效突击:从原理到场景的实战解题框架

7月,又到了Java面试的高峰期。无论你是准备跳槽寻求更好的发展,还是应届生即将踏入职场,面对动辄几十上百页的面试题,是不是总感觉时间不够用、重点抓不住、背了又忘?这篇文章要解决的就是这个最实际的问题&#xff1a…

2026/10/4 9:08:51 阅读更多 →

最新新闻

从“搜不到“到“问就有“:用 GraphRAG 把散落的教学资料建成知识图谱

从“搜不到“到“问就有“:用 GraphRAG 把散落的教学资料建成知识图谱

从"搜不到"到"问就有":用 GraphRAG 把散落的教学资料建成知识图谱 【免费下载链接】graphrag A modular graph-based Retrieval-Augmented Generation (RAG) system 项目地址: https://gitcode.com/GitHub_Trending/gr/graphrag 教案、大…

2026/10/4 13:21:47 阅读更多 →
API 性能指标设计指南:用响应时间、吞吐量与错误率度量 API 健康度

API 性能指标设计指南:用响应时间、吞吐量与错误率度量 API 健康度

文档教程知识库 【免费下载链接】developer-roadmap Interactive roadmaps, guides and other educational content to help developers grow in their careers. 项目地址: https://gitcode.com/GitHub_Trending/de/developer-roadmap 点击查看 免费下载 API 性能指…

2026/10/4 13:21:47 阅读更多 →
OpenFrontIO MapGenerator 实战指南:从 PNG 像素到游戏地图文件

OpenFrontIO MapGenerator 实战指南:从 PNG 像素到游戏地图文件

游戏开发后端 【免费下载链接】OpenFrontIO Online browser-based RTS game 项目地址: https://gitcode.com/gh_mirrors/op/OpenFrontIO 点击查看 免费下载 导读 本文档系统讲解 OpenFrontIO 仓库中的地图生成工具 MapGenerator——一个用 Go 编写、把 PNG 图像像…

2026/10/4 13:21:47 阅读更多 →
微信小游戏 Unity 适配方案 iOS 高性能模式与高性能+模式实战指南

微信小游戏 Unity 适配方案 iOS 高性能模式与高性能+模式实战指南

游戏开发移动开发WebAssembly 【免费下载链接】minigame-unity-webgl-transform 微信小游戏Unity引擎适配器文档。 项目地址: https://gitcode.com/GitHub_Trending/mi/minigame-unity-webgl-transform 点击查看 免费下载 本文基于 Design/iOSOptimization.md 撰写…

2026/10/4 13:21:47 阅读更多 →
基于FreeRTOS的多传感器环境监测系统设计与实践

基于FreeRTOS的多传感器环境监测系统设计与实践

做室内环境监测这类项目,我一直有个观点:传感器好买,数据好读,但真正让系统“靠谱”起来的,是数据背后的调度逻辑。裸机while循环轮询也能跑,可一旦传感器数量上来了,响应时间不一样了&#xff…

2026/10/4 13:21:47 阅读更多 →
学生宿舍信息管理系统|基于java+ vue学生宿舍信息管理系统(源码+数据库+文档)

学生宿舍信息管理系统|基于java+ vue学生宿舍信息管理系统(源码+数据库+文档)

学生宿舍信息管理系统 目录 基于springboot vue学生宿舍信息管理系统 一、前言 二、系统功能演示 三、技术选型 四、其他项目参考 五、代码参考 六、测试参考 七、最新计算机毕设选题推荐 八、源码获取: 基于springboot vue学生宿舍信息管理系统 一、前…

2026/10/4 13:20:47 阅读更多 →

日新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 11:40:45 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 9:43:54 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/3 9:42:36 阅读更多 →