|
| 1 | +# RabbitMQ MCP Server |
| 2 | + |
| 3 | +RabbitMQ MCP Server 是一个模型上下文协议(Model Context Protocol,MCP)服务器,为 MCP 客户端(如 Claude Desktop)提供与火山引擎 RabbitMQ 服务交互的能力。 |
| 4 | + |
| 5 | +## Tools |
| 6 | +本 MCP Server 产品提供以下 Tools(工具/能力): |
| 7 | + |
| 8 | +### Tool 1: 查询可用区列表(DescribeAvailabilityZones) |
| 9 | + |
| 10 | +#### 类型 |
| 11 | +SaaS(云 API) |
| 12 | + |
| 13 | +#### 详细描述 |
| 14 | +查询指定地域下支持 RabbitMQ 的可用区列表,便于在创建实例或规划容灾架构时选择合适的部署位置。 |
| 15 | + |
| 16 | +#### 调试所需的输入参数 |
| 17 | +- RegionId(string):地域 ID,例如 cn-beijing。 |
| 18 | + |
| 19 | +#### 输出 |
| 20 | +- RegionId:请求的地域 ID。 |
| 21 | +- Zones:可用区列表,每个可用区包含可用区 ID、名称等信息。 |
| 22 | + |
| 23 | +#### 最容易被唤起的 Prompt 示例 |
| 24 | +- 列出北京地域的可用区。 |
| 25 | +- 查看 cn-beijing 下可以创建 RabbitMQ 实例的可用区列表。 |
| 26 | + |
| 27 | +### Tool 2: 查询地域列表(DescribeRegions) |
| 28 | + |
| 29 | +#### 类型 |
| 30 | +SaaS(云 API) |
| 31 | + |
| 32 | +#### 详细描述 |
| 33 | +查询当前账号支持的 RabbitMQ 地域列表,用于选择实例部署地域或规划多地域容灾架构。 |
| 34 | + |
| 35 | +#### 调试所需的输入参数 |
| 36 | +- 无:此工具无需额外输入参数。 |
| 37 | + |
| 38 | +#### 输出 |
| 39 | +- Regions:地域列表,每个地域包含地域 ID、名称等基础信息。 |
| 40 | + |
| 41 | +#### 最容易被唤起的 Prompt 示例 |
| 42 | +- 列出当前支持 RabbitMQ 的所有地域。 |
| 43 | +- 帮我查看有哪些地域可以创建 RabbitMQ 实例。 |
| 44 | + |
| 45 | +## 可适配平台 |
| 46 | +可以使用 cline、cursor、claude desktop 或支持 MCP Server 调用的其它终端。 |
| 47 | + |
| 48 | +## 服务开通链接 |
| 49 | +[开通 RabbitMQ 服务](https://console.volcengine.com/rabbitmq),未开通的用户会自动重定向到开通页;如果已经开通,则会跳转控制台首页。 |
| 50 | + |
| 51 | +## 鉴权方式 |
| 52 | + |
| 53 | +### 火山 OpenAPI 鉴权 |
| 54 | +通过 AK/SK(签名机制)访问火山 OpenAPI。默认从环境变量读取(推荐)。 |
| 55 | + |
| 56 | +### MCP Client 鉴权(可选) |
| 57 | +可通过配置 `auth=oauth` 为 MCP Client 增加 OAuth 身份认证(仅 SSE 模式适用)。 |
| 58 | + |
| 59 | +## 安装部署 |
| 60 | + |
| 61 | +### 系统依赖 |
| 62 | +- 安装 Python 3.10 或者更高版本 |
| 63 | +- 安装 uv |
| 64 | + |
| 65 | +### 安装 uv 方法 |
| 66 | +**Linux/macOS:** |
| 67 | +```bash |
| 68 | +curl -LsSf https://astral.sh/uv/install.sh | sh |
| 69 | +``` |
| 70 | + |
| 71 | +**Windows:** |
| 72 | +```bash |
| 73 | +powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex" |
| 74 | +``` |
| 75 | + |
| 76 | +## 安装 MCP-Server |
| 77 | +克隆仓库: |
| 78 | +```bash |
| 79 | +git clone git@github.com:volcengine/mcp-server.git |
| 80 | +``` |
| 81 | + |
| 82 | +## 运行 MCP-Server 指南 |
| 83 | + |
| 84 | +### 1. 配置文件 |
| 85 | +`server/mcp_server_rabbitmq/src/mcp_server_rabbitmq/config/cfg.yaml` |
| 86 | + |
| 87 | +默认配置:`transport = stdio`、`credential = env`。 |
| 88 | + |
| 89 | +### 2. 协议切换 |
| 90 | +对应配置中 `transport` 参数: |
| 91 | +- `sse`: 使用 Server-Sent Events 协议 |
| 92 | + - `server_port`: 用来设置 SSE 端口 |
| 93 | +- `StreamableHTTP`: 使用 StreamableHTTP 协议 |
| 94 | + - `server_port`: 用来设置 StreamableHTTP 端口 |
| 95 | +- `stdio`: 使用标准输入输出流协议 |
| 96 | + |
| 97 | +### 3. 身份认证 |
| 98 | +若期望对 MCP Client 的身份进行认证,可配置 `auth` 参数(仅适用于 SSE 协议): |
| 99 | +- `oauth`, 使用 OAuth 认证(需要自备 OAuth 服务) |
| 100 | +- `none`, 不进行身份认证 |
| 101 | + |
| 102 | +### 4. 火山访问凭证 |
| 103 | +因为 MCP Server 需要调用火山 OpenAPI,因此要提供火山访问凭证信息。 |
| 104 | +对应配置中 `credential` 参数: |
| 105 | +- `env`: 从环境变量获取 AK、SK 进行鉴权(推荐) |
| 106 | +- `token`: 从 Header 中获取凭证(适用于 HTTP 模式,不适用于 STDIO) |
| 107 | + |
| 108 | +### 5. 环境变量设置 |
| 109 | +- ak 环境变量名: `VOLCENGINE_ACCESS_KEY` |
| 110 | +- sk 环境变量名: `VOLCENGINE_SECRET_KEY` |
| 111 | +- session_token 环境变量名: `VOLCENGINE_ACCESS_SESSION_TOKEN` |
| 112 | +- credential 环境变量名: `VOLCENGINE_CREDENTIAL_TYPE`(若设置,则优先级高于配置) |
| 113 | +- transport 环境变量名: `MCP_SERVER_MODE`(若设置,则优先级高于配置) |
| 114 | +- auth 环境变量名: `MCP_SERVER_AUTH`(若设置,则优先级高于配置) |
| 115 | +- sse_port 环境变量名: `MCP_SERVER_PORT`(若设置,则优先级高于配置) |
| 116 | + |
| 117 | +### 6. 运行 |
| 118 | + |
| 119 | +#### 本地运行(STDIO / 默认) |
| 120 | +```bash |
| 121 | +uv --directory server/mcp_server_rabbitmq run mcp-server-rabbitmq |
| 122 | +``` |
| 123 | + |
| 124 | +#### 作为远程服务(SSE / StreamableHTTP) |
| 125 | +下载代码仓库,并设置 `transport = sse`(或 `StreamableHTTP`)。 |
| 126 | +```bash |
| 127 | +uv --directory server/mcp_server_rabbitmq run mcp-server-rabbitmq |
| 128 | +``` |
| 129 | + |
| 130 | +## License |
| 131 | +MIT |
0 commit comments