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

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

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

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

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

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

2026/7/24 9:31:31 阅读更多 →

最新新闻

Linux进程控制:从基础概念到高级实践

Linux进程控制:从基础概念到高级实践

1. 进程控制基础概念 在Linux系统中,进程控制是系统管理的核心技能之一。作为一个长期使用Linux的老用户,我发现很多新手对进程的理解还停留在"运行中的程序"这个层面,其实进程控制远不止这么简单。 进程本质上是操作系统进行资源…

2026/7/24 11:19:48 阅读更多 →
Transformer模型中Padding策略对表达能力的影响研究

Transformer模型中Padding策略对表达能力的影响研究

1. 项目背景与研究动机在自然语言处理领域,Transformer架构已经成为事实上的标准模型。然而,关于其理论表达能力的系统性研究仍然存在空白,特别是在考虑实际应用中常见的padding操作时。这项研究旨在精确刻画带有padding机制的Transformer模型…

2026/7/24 11:19:48 阅读更多 →
【资源编号330】FongMi 免费影视Box 影视APP

【资源编号330】FongMi 免费影视Box 影视APP

【资源编号330】FongMi 免费影视Box 影视APP 📝 配置使用教程 安装完软件后直接复制下方配置链接:https://tv.菜妮丝.top 打开APP依次进入「设置」-「点播」页面,将链接填入「使用配置接口」栏确认即可完成配置。📱 手机版 当前版…

2026/7/24 11:19:48 阅读更多 →
TLV320AIC3109-Q1音频编解码器寄存器配置实战指南

TLV320AIC3109-Q1音频编解码器寄存器配置实战指南

1. 项目概述与核心价值音频编解码器,这个在嵌入式音频系统中看似不起眼的小芯片,却往往是决定整个系统音质、功耗和稳定性的“心脏”。无论是车载信息娱乐系统里传来的导航提示音,还是便携式蓝牙音箱播放的音乐,背后都离不开这颗芯…

2026/7/24 11:19:48 阅读更多 →
Vibe Coding 正在退潮:63k 人已偷偷转向 Agentic Engineering

Vibe Coding 正在退潮:63k 人已偷偷转向 Agentic Engineering

一年多前「vibe coding」火的时候,所有人都在晒:对着 AI 说一句「帮我做个 App」,几分钟出一个能跑的版本,爽到飞起。但没过多久,同一批人开始吐槽——代码能跑,但没人敢改;Bug 修一个冒三个&am…

2026/7/24 11:19:48 阅读更多 →
C语言预处理介绍

C语言预处理介绍

预处理的底层含义就是“编译前的源代码重写引擎”。它不分析语法、不分配内存、不生成任何机器码,纯粹是一个文本流转换器——把源文件(.c)和头文件(.h)搅拌成一份巨大的、纯文本的“翻译单元”(Translatio…

2026/7/24 11:18:48 阅读更多 →

日新闻

用Highcharts 创建可拖拽三维散点立方体3D图表

用Highcharts 创建可拖拽三维散点立方体3D图表

该案例基于Highcharts scatter3d 三维散点图实现空间立方体散点可视化,核心特色:三维 X/Y/Z 三轴空间,所有散点分布在 0~10 立方体空间内;散点使用径向渐变实现立体 3D 圆球质感;支持鼠标 / 触屏拖拽画布,…

2026/7/24 0:00:29 阅读更多 →
AppCertDlls:进程创建路径上的 DLL 入口

AppCertDlls:进程创建路径上的 DLL 入口

AppCertDlls:进程创建路径上的 DLL 入口 AppCertDlls 位于 HKLM\System\CurrentControlSet\Control\Session Manager\AppCertDlls。本文的程序功能是只读列出这个键在 64 位和 32 位注册表视图中的全部值,并显示每条值的来源、名称、类型和可安全显示的数…

2026/7/24 0:00:29 阅读更多 →
我的编程之路:第一篇博客

我的编程之路:第一篇博客

大家好,我是一名编程初学者,同时这也是我编程学习之路上的第一篇博客。在这里,我想要向大家介绍我的一些想法和规划。a.自我介绍我是一个刚刚接触编程的新手,目前在学习c语言,我对编程世界充满了强烈的好奇。当然&…

2026/7/24 0:00:29 阅读更多 →

周新闻

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

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

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

2026/7/24 3:59:20 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

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

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

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

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

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

2026/7/23 17:49:47 阅读更多 →

月新闻