返回市场
兔mq-mcp-go

兔mq-mcp-go

作者:maiconjobim2 星标更新:2025-07-07

项目介绍

RabbitMQ MCP Go

这是用于与RabbitMQ集成的Model Control Protocol(MCP)服务器的Go语言实现。

该服务器提供了一个通过MCP协议与RabbitMQ交互的实现,使LLM模型能够通过标准化接口执行常见的RabbitMQ操作。

Go报告卡 Go版本 SLSA 3 Go参考 GitHub发布 MIT许可

rabbitmq-mcp-demo

概述

RabbitMQ MCP服务器填补了LLM模型与RabbitMQ之间的空白,允许它们:

  • 向RabbitMQ队列或交换机发布消息

项目结构

.
├── cmd/                    # 应用程序入口点
├── internal/              # 私有应用程序代码
│   ├── config/           # 配置管理
│   ├── tools/            # MCP工具实现
│   ├── prompts/          # 提示模板和配置
│   └── resources/        # 共享资源和实用工具
├── pkg/                   # 公共库代码
├── api/                   # API定义和文档
└── scripts/              # 构建和实用脚本

目录概述

内部目录结构

  • tools/: 包含所有MCP工具实现。每个工具都是一个单独的包,实现了MCP工具接口。
  • prompts/: 存储MCP工具使用的提示模板和配置。
  • resources/: 存放共享实用工具、辅助函数和可重用组件。
  • config/: 管理应用程序配置。

开始使用

  1. 安装Go 1.24.3:
asdf install golang 1.24.3
  1. 克隆仓库:
git clone https://github.com/yourusername/rabbitmq-mcp-go.git
cd rabbitmq-mcp-go
  1. 安装依赖项:
go mod download
  1. 构建项目:
go build ./cmd/...

MCP客户端集成

基本配置

在您的MCP客户端设置中添加以下配置:

{
  "mcpServers": {
    "rabbitmq": {
      "command": "rabbitmq-mcp-server",
      "env": {
        "RABBITMQ_URL": "amqp://guest:guest@localhost:5672/"
      }
    }
  }
}

Cursor集成

要与Cursor一起使用,请创建或编辑~/.cursor/mcp.json:

{
  "mcpServers": {
    "rabbitmq": {
      "command": "rabbitmq-mcp-server",
      "env": {
        "RABBITMQ_URL": "amqp://guest:guest@localhost:5672/"
      }
    }
  }
}

Claude Desktop集成

要与Claude Desktop一起使用,请编辑您的配置文件:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "rabbitmq": {
      "command": "rabbitmq-mcp-server",
      "env": {
        "RABBITMQ_URL": "amqp://guest:guest@localhost:5672/"
      }
    }
  }
}

使用RabbitMQ发布工具

发布工具允许您通过MCP接口向RabbitMQ队列或交换机发送消息。

工具参数

  • queue (字符串,可选): 发布到的队列名称
  • exchange (字符串,可选): 发布到的交换机名称
  • message (字符串,必需): 要发布的消息内容
  • content_type (字符串,可选): 消息的内容类型
    • 支持的值: "text/plain" (默认),"application/json"
  • headers (字符串,可选): JSON格式的消息头

示例交互

1. 发布到队列:

用户: "向队列'my_queue'发送消息'Hello World'"

AI助手将使用发布工具:

{
  "queue": "my_queue",
  "message": "Hello, World!",
  "content_type": "text/plain"
}

响应:

"消息已成功发布到my_queue"

2. 发布JSON到交换机:

用户: "向'orders'交换机发布订单状态更新"

AI助手将使用发布工具:

{
  "exchange": "orders",
  "message": "{\"order_id\": \"12345\", \"status\": \"completed\"}",
  "content_type": "application/json"
}

响应:

"消息已成功发布到orders"

1. 带有头部的发布:

用户: "向通知队列发送高优先级消息"

AI助手将使用发布工具:

{
  "queue": "notifications",
  "message": "重要系统更新",
  "headers": "{\"priority\": \"high\", \"timestamp\": \"2024-03-20T12:00:00Z\"}"
}

错误处理

在以下情况下,工具将返回错误:

  • 未指定队列或交换机
  • 缺少必需的消息参数
  • 当内容类型为"application/json"时,JSON格式无效
  • RabbitMQ连接或发布错误

开发

要添加新的MCP工具:

  1. internal/tools/下创建一个新的目录
  2. 实现MCP工具接口
  3. 在主应用程序中注册工具
  4. 如需,添加相应的提示到internal/prompts/
  5. 在工具README中记录工具

贡献

欢迎贡献!请随时提交Pull Request。

许可证

本项目采用MIT许可证 - 详情见LICENSE文件。