RabbitMQ MCP服务

一个用于RabbitMQ集成的Go语言实现的模型控制协议(MCP)服务器,提供通过标准化接口与RabbitMQ交互的能力,使LLM模型能够执行常见的RabbitMQ操作。

  • by maiconjobim
  • Go
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 maiconjobim/rabbitmq-mcp-go

使用说明

RabbitMQ MCP Go

用于RabbitMQ集成的模型控制协议(MCP)服务器的Go实现。

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

概述

RabbitMQ MCP服务器弥合了LLM模型和RabbitMQ之间的差距,使它们能够:

  • 将消息发布到RabbitMQ队列或交换

项目结构

.
├── cmd/                    # Application entry points
├── internal/              # Private application code
│   ├── config/           # Configuration management
│   ├── tools/            # MCP tools implementations
│   ├── prompts/          # Prompt templates and configurations
│   └── resources/        # Shared resources and utilities
├── pkg/                   # Public library code
├── api/                   # API definitions and documentation
└── scripts/              # Build and utility scripts

目录概述

内部目录结构

  • 工具/:包含所有MCP工具实现。每个工具都是一个单独的包,用于实现MCP工具接口。
  • 提示/:存储MCP工具使用的提示模板和配置。
  • 资源/:房屋共享实用程序、辅助功能和可重用组件。
  • 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/mcp.json:

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

Claude桌面集成

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

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • 窗户: %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 (字符串,可选):要发布到的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"
}

答复:

"Message published successfully to my_queue"

2.将JSON发布到Exchange:

用户:“将订单状态更新发布到‘订单’交易所”

AI助手将使用发布工具:

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

答复:

"Message published successfully to orders"

1.带标题的发布:

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

AI助手将使用发布工具:

{
  "queue": "notifications",
  "message": "Important system update",
  "headers": "{\"priority\": \"high\", \"timestamp\": \"2024-03-20T12:00:00Z\"}"
}

错误处理

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

  • 未指定队列或交换
  • 缺少必需的消息参数
  • 当content_type为“application/JSON”时,JSON格式无效
  • RabbitMQ连接或发布错误

发展

要添加新的MCP工具:

  1. 在下创建新目录 internal/tools/
  2. 实施MCP工具界面
  3. 在主应用程序中注册该工具
  4. 在中添加相应的提示 internal/prompts/ 如有需要
  5. 在工具README中记录该工具

贡献

欢迎投稿!请随时提交拉取请求。

许可证

此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。