RDS OpenAPI MCP服务

通过OpenAPI提供阿里云RDS服务的MCP服务器,支持数据库实例管理、SQL工具调用及智能助手功能。

  • by aliyun
  • Python
  • 本地部署
  • 54 星标
  • 更新于
在 GitHub 查看 aliyun/alibabacloud-rds-openapi-mcp-server

使用说明

English | 中文

阿里云RDS OpenAPI MCP服务器

通过OPENAPI为RDS服务提供MCP服务器

先决条件

  1. 安装 uv 从 星体 或 GitHub自述
  2. 使用以下命令安装Python uv python install 3.12
  3. 访问阿里云RDS服务的阿里云凭据

快速开始

使用 樱桃工作室 (推荐)

  1. 下载并安装樱桃工作室
  2. 跟随 文档 安装MCP环境所需的uv
  3. 根据配置和使用RDS MCP 文档。您可以使用下面的JSON快速导入RDS MCP配置。请将ALIBA_CLOUD_ACCESS_KEY_ID和ALIBA_CLOUD_ACCESS_KEY_SECRET设置为您的阿里云AK/SK。

导入过程中可能会出现以下错误,可以忽略: xxx设置.cp.addServer.importFrom.connection失败

{
  "mcpServers": {
    "rds-openapi": {
      "name": "rds-openapi",
      "type": "stdio",
      "description": "",
      "isActive": true,
      "registryUrl": "",
      "command": "uvx",
      "args": [
        "alibabacloud-rds-openapi-mcp-server@latest"
      ],
      "env": {
        "ALIBABA_CLOUD_ACCESS_KEY_ID": "$you_access_id",
        "ALIBABA_CLOUD_ACCESS_KEY_SECRET": "$you_access_key"
      }
    }
  }
}
  1. 最后,单击打开MCP

  2. 您可以使用下面提供的提示模板来增强您的体验。

使用Cline

设置环境并运行mcp服务器。

# set env
export SERVER_TRANSPORT=sse;
export SERVER_HOST=127.0.0.1; # Default: 127.0.0.1. API_KEY is required when binding to a non-loopback host.
export ALIBABA_CLOUD_ACCESS_KEY_ID=$you_access_id;
export ALIBABA_CLOUD_ACCESS_KEY_SECRET=$you_access_key;
export ALIBABA_CLOUD_SECURITY_TOKEN=$you_sts_security_token; # optional, required when using STS Token 
export API_KEY=$you_mcp_server_api_key; # Required when SERVER_HOST is not a loopback address.
export ENABLE_WRITE_TOOLS=false; # Set true only when intentionally exposing write-capable tools on a non-loopback host.
export ALLOW_HEADER_CREDENTIALS=false; # Default false. Set true only in trusted deployments that require per-request credentials.

# run mcp server
uvx alibabacloud-rds-openapi-mcp-server@latest

运行mcp-server后,您将看到以下输出:

INFO:     Started server process [91594]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)

然后配置Cline。

remote_server = "http://127.0.0.1:8000/sse";

当 API_KEY 已配置,MCP客户端必须发送 Authorization: Bearer <API_KEY>.

如果你遇到 401 Incorrect API key provided 使用Qwen时出错,请参阅 文档 解决方案。

使用克劳德

从Github下载

git clone https://github.com/aliyun/alibabacloud-rds-openapi-mcp-server.git

将以下配置添加到MCP客户端配置文件中:

{
  "mcpServers": {
    "rds-openapi-mcp-server": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/alibabacloud-rds-openapi-mcp-server/src/alibabacloud_rds_openapi_mcp_server",
        "run",
        "server.py"
      ],
      "env": {
        "ALIBABA_CLOUD_ACCESS_KEY_ID": "access_id",
        "ALIBABA_CLOUD_ACCESS_KEY_SECRET": "access_key",
        "ALIBABA_CLOUD_SECURITY_TOKEN": "sts_security_token",
        // optional, required when using STS Token
      }
    }
  }
}

组件

OpenAPI工具

  • add_tags_to_db_instance:向RDS实例添加标签。
  • allocate_instance_public_connection:为RDS实例分配公共连接。
  • attach_whitelist_template_to_instance:将白名单模板附加到RDS实例。
  • create_db_instance:创建RDS实例。
  • create_db_instance_account:为RDS实例创建一个帐户。
  • describe_all_whitelist_template:查询白名单模板列表。
  • describe_available_classes:查询可用的实例类和存储范围。
  • describe_available_zones:查询RDS实例的可用区域。
  • describe_bills:查询特定计费周期内用户所有产品实例或计费项目的消费汇总。
  • describe_db_instance_accounts:批量检索多个RDS实例的帐户信息。
  • describe_db_instance_attribute:查询实例的详细信息。
  • describe_db_instance_databases:批量检索多个RDS实例的数据库信息。
  • describe_db_instance_ip_allowlist:批量检索多个RDS实例的IP分配列表配置。
  • describe_db_instance_net_info:批量检索多个RDS实例的网络配置详细信息。
  • describe_db_instance_parameters:批量检索多个RDS实例的参数信息。
  • describe_db_instance_performance:查询实例的性能数据。
  • describe_db_instances:查询实例。
  • describe_error_logs:查询实例的错误日志。
  • describe_instance_linked_whitelist_template:查询白名单模板列表。
  • describe_monitor_metrics:使用DAS(数据库自主服务)API查询实例的性能和诊断指标。
  • describe_slow_log_records:查询RDS实例的慢日志记录。
  • describe_sql_insight_statistic:查询SQL日志统计信息,包括SQL成本时间、执行时间和帐户。
  • describe_vpcs:查询VPC列表。
  • describe_vswitches:查询VSwitch列表。
  • modify_security_ips:修改RDS实例安全IP白名单。
  • get_current_time:获取当前时间。
  • modify_db_instance_description:修改RDS实例描述。
  • modify_db_instance_spec:修改RDS实例规范。
  • modify_parameter:修改RDS实例参数。
  • restart_db_instance:重新启动RDS实例。

SQL工具

MCP服务器将自动创建一个只读帐户,执行SQL语句,然后自动删除该帐户。此过程要求MCP服务器可以连接到实例。

  • explain_sql:执行 EXPLAIN 只为一次 SELECT 语句并返回执行计划。
  • show_engine_innodb_status:执行sql show engine innodb status 并返回sql结果。
  • show_create_table:执行 SHOW CREATE TABLE 用于验证数据库和表标识符。
  • show_largest_table:查询空间占用率最高的前几张表。
  • show_largest_table_fragment:查询表片段最大的表。
  • query_sql:执行单个只读SQL语句(SELECT, SHOW, DESCRIBE,或 EXPLAIN)并返回sql结果。

工具集

工具集将可用的MCP工具分组,这样您就可以只启用所需的工具。使用以下任一方式启动服务器时配置工具集:

  • 命令行: --toolsets 参数
  • 环境变量: MCP_TOOLSETS

可用工具集

以下是工具集及其功能列表:

  • RDS:启用标准托管RDS服务的所有工具

  • rds_custom_read:启用RDS自定义的只读工具。

  • rds_custom_all:启用RDS自定义的完整读写工具。

格式

使用逗号分隔的工具集名称(逗号周围没有空格):

rds,rds_custom_all

例子

# Single toolset
--toolsets rds

# Multiple tools
--toolsets rds,rds_mssql_custom

# Environment variable
export MCP_TOOLSETS=rds,rds_custom_all

默认行为

如果未指定工具集,则默认 rds 组是自动加载的。

资源

目前没有

技能

该项目支持通过技能扩展RDS副驾驶的功能。有两种技能可供选择:

  • 阿里巴巴副总裁:调用RDS AI Assistant API进行智能问答、SQL优化和故障排除。
  • 阿里巴巴云数据库实例管理:显示此项目的 OpenAPI工具 和 SQL工具 作为 脚本/CLI 用于 龙虾, 克劳德代码以及类似的平台。模型运行 alibabacloud-rds-instances-manage list 和 alibabacloud-rds-instances-manage run <tool_name> '<JSON args>' 管理RDS实例(查询实例、监控、慢日志、参数、运行只读SQL等)。安装软件包后 alibabacloud-rds-instances-manage 命令可用;技能目录是 skill/alibabacloud-rds-instances-manage/.

有关使用技能的详细信息,请参阅: 技能文档

提示

# Role  
You are a professional Alibaba Cloud RDS Copilot, specializing in providing customers with efficient technical support and solutions for RDS (Relational Database Service). Your goal is to help customers resolve issues quickly through clear problem decomposition, precise tool invocation, and accurate time calculations.

## Skills  

### Skill 1: Problem Decomposition and Analysis  
- Deeply deconstruct user questions to identify core requirements and potential steps/commands involved.  
- Provide clear task breakdowns to ensure each step contributes to the final solution.
- Please organize your answers in a table format as much as possible.

### Skill 2: RDS MCP Tool Invocation  
- Proficiently invoke the RDS MCP tool to retrieve database information or execute operations.  
- Tool invocation must follow task decomposition and align with logical reasoning and customer needs.  
- Select appropriate MCP modules (e.g., monitoring data queries, performance diagnostics, backup/recovery) based on user requirements.  

### Skill 3: Time Interpretation and Calculation  
- Accurately parse relative time concepts like "today," "yesterday," or "the last hour."  
- Convert relative time expressions into precise time ranges or timestamps using the current time to support data queries or operations.  

## Constraints  
- **Task Decomposition First**: Always provide detailed task breakdowns.  
- **Tool Dependency Clarity**: All MCP tool invocations must be justified by clear task requirements and logical reasoning.  
- **Time Precision**: Calculate exact time ranges for time-sensitive queries.  
- **Professional Focus**: Discuss only Alibaba Cloud RDS-related technical topics.  
- **Safety Awareness**: Ensure no operations negatively impact customer databases.

安全部署指南

请勿将MCP端点暴露于公共互联网。服务器可以调用阿里云RDS OpenAPI工具,并可能使用敏感的云凭据,因此面向互联网的MCP端点可能会造成严重的安全风险。

强烈建议的部署模式是仅在本地环回地址上运行MCP服务器:

export SERVER_HOST=127.0.0.1

如果必须使用非环回地址,请将其限制在受信任的专用网络中,实施网络访问控制,配置 API_KEY,并避免启用可写工具,除非明确要求。

贡献

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

  1. 分叉存储库
  2. 创建功能分支(git checkout -b feature/amazing-feature)
  3. 提交您的更改(git commit -m 'Add some amazing feature')
  4. 推到分支(git push origin feature/amazing-feature)
  5. 打开拉取请求

许可证

此项目根据Apache 2.0许可证获得许可。

联系方式

如有任何疑问或疑虑,请通过钉群联系我们:106730017609