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/7/21 21:24:47 阅读更多 →
SpringBoot中实现告警判定算法-位报警与模拟量阈值-技术详解

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

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

2026/7/21 21:24:47 阅读更多 →
Java面试高效突击:从原理到场景的实战解题框架

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

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

2026/7/21 21:24:47 阅读更多 →

最新新闻

2026最新8款个人AI编程免费工具深度实测

2026最新8款个人AI编程免费工具深度实测

作为一名全栈独立开发者,我最近半年一直在折腾副业项目,每个月在AI编程工具上的订阅费算下来其实也不算便宜。作为个人开发者,我们追求的就是用最少的成本获得最高效的开发体验。TRAE 基础版免费,字节跳动出品的国内首款 AI 原生 …

2026/7/22 0:02:28 阅读更多 →
微信QQ聊天记录误删恢复与备份方案全指南

微信QQ聊天记录误删恢复与备份方案全指南

1. 聊天记录误删的常见场景与恢复思路作为一名长期关注数据安全的技术博主,我处理过上百起聊天记录误删的求助案例。手机误操作、系统升级失败、设备损坏是三大常见诱因。上周就遇到用户更新微信时断电,导致近两年的工作群聊记录全部消失的极端案例。不同…

2026/7/22 0:02:28 阅读更多 →
抓包代理链路下的 TLS 指纹变化分析 TLSFOWARD抓包工具

抓包代理链路下的 TLS 指纹变化分析 TLSFOWARD抓包工具

抓包代理链路下的 TLS 指纹变化分析:为什么调试环境会影响访问结果 摘要 在网页调试、接口联调、自动化巡检和授权采集排查中,抓包是常见手段。但很多开发者会遇到一个现象:正常访问页面时没有问题,一进入抓包或代理调试环境&…

2026/7/22 0:02:27 阅读更多 →
数据库连接池的正确配置:从连接数计算到故障检测的工程实践

数据库连接池的正确配置:从连接数计算到故障检测的工程实践

数据库连接池的正确配置:从连接数计算到故障检测的工程实践 一、线上故障复盘:连接池最大连接数设为 200,但数据库只能扛 150——剩下 50 个连接等了 30 秒全部超时 数据库连接池的配置是"看起来简单、调起来要命"的典型问题。很多…

2026/7/22 0:01:27 阅读更多 →
颠覆传统通讯录只备注工作身份,编写程序,记录每个人独特的兴趣标签,需要创意时,根据标签定向寻找交流对象。

颠覆传统通讯录只备注工作身份,编写程序,记录每个人独特的兴趣标签,需要创意时,根据标签定向寻找交流对象。

一、实际应用场景描述(基于心理健康与创新能力视角)在心理健康与创新能力研究中,“社会支持(Social Support)” 和 “认知多样性(Cognitive Diversity)” 被认为是激发创造性思维的重要外部条件…

2026/7/22 0:01:27 阅读更多 →
Agent 终态判定:何时该停止思考、给出最终回复

Agent 终态判定:何时该停止思考、给出最终回复

Agent 终态判定:何时该停止思考、给出最终回复 一、你的 Agent 在"再想想"的循环里绕了 12 轮,用户已经关窗口了 Agent 与人最大的区别是:人知道什么时候该停下来给答案,Agent 会一直"想"下去。你给 Agent 接…

2026/7/22 0:01:27 阅读更多 →

日新闻

TI DSP系统配置模块SYSCFG详解:中断机制与主设备优先级配置实战

TI DSP系统配置模块SYSCFG详解:中断机制与主设备优先级配置实战

1. 项目概述与SYSCFG模块的核心价值在嵌入式系统,尤其是像TI C6000系列这样的高性能DSP开发中,我们常常会与芯片手册里那些密密麻麻的寄存器打交道。很多开发者可能更关注算法实现、内存优化或者外设驱动,但对于一个稳定、高效的系统而言&…

2026/7/22 0:00:26 阅读更多 →
微信Server酱:高到达率的应急通知方案实践

微信Server酱:高到达率的应急通知方案实践

1. 为什么我们需要"最次"的通知方案? 在数字化协作环境中,消息通知系统的重要性不言而喻明。但现实情况是,企业级通知方案往往需要复杂的API对接(如企业微信、钉钉、飞书),个人开发者的小项目又经…

2026/7/22 0:00:26 阅读更多 →
甲方要的“简洁“PPT,到底是简洁还是省事?

甲方要的“简洁“PPT,到底是简洁还是省事?

甲方说"简洁一点",乙方听到的是"少做几页"。甲方说"不要太复杂",乙方理解成"别放图表了"。结果交过去,甲方说"我说的简洁不是这个意思"。"简洁"这个词在PPT语境里,是…

2026/7/22 0:00:26 阅读更多 →

周新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/21 8:48:31 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/21 5:34:47 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/21 8:25:39 阅读更多 →

月新闻