# 使用TaurusDB MCP
#### 操作场景
在日常的数据管理和分析工作中，用户经常需要与数据库进行交互，执行各种查询和诊断任务。然而，传统的数据库操作方式要求用户具备较高的SQL技能，并且需要频繁地在不同的控制台之间切换，这不仅增加了操作的复杂性，也降低了工作效率。
MCP（Model Context Protocol，模型上下文协议）是一种让 AI 客户端安全调用外部工具和数据源的协议。通过 MCP，Claude Code、Codex、Cursor、VS Code 等 AI 客户端可以连接到本地运行的 MCP Server，再由 MCP Server 代表用户访问数据库、云服务或其他系统。
taurusdb-mcp是一个面向华为云 TaurusDB的MCP Server。用户不需要手工编写复杂SQL或反复切换控制台，可以在AI 客户端中用自然语言发起请求，由AI选择合适的 MCP Tool 完成数据库探查、SQL 执行和问题诊断。
通过使用 MCP 和 taurusdb-mcp，不仅简化了操作流程，还提高了数据管理和分析的效率。
典型使用场景包括：
- 数据库结构探查：查询数据库列表、表列表、字段、索引和表结构。
- 只读SQL查询：执行SELECT、SHOW、EXPLAIN等只读语句，获取结构化结果。
- SQL 执行计划分析：通过explain_sql 或增强诊断能力分析慢 SQL 原因。
- 数据库运行状态排查：查看processlist、锁等待、热点 SQL、连接增长、存储压力等诊断结果。
- TaurusDB能力发现：识别当前实例是否支持TaurusDB特有能力，例如热点行、回收站、闪回查询等。
- 云数据库实例选择：查询账号下的TaurusDB 实例，并将MCP会话绑定到指定实例。
 
#### 前提条件
使用 taurusdb-mcp 前，请确认已满足以下条件。
- 本地或运行环境已安装Node.js和npm，Node.js版本高于20。
- 已安装并可使用一个支持MCP的客户端，例如 Claude Code、Codex、Cursor 或 VS Code。
- 运行MCP Server 的机器能够访问 TaurusDB数据库地址。
  - 生产或长期使用场景建议将MCP Server部署在与TaurusDB同VPC的ECS。
  
  - 本地临时调试可使用数据库公网地址，但需要在安全组中只放通当前公网出口IP和必要端口。
   
- 已准备 TaurusDB 数据库连接信息：
  - 数据库公网地址和端口。
  
  - 默认数据库名。
  
  - 数据库账号和密码。
  
  - 可选的写入账号和密码，仅用于验证受控写操作或恢复类操作。
   
- 只读账号建议至少具备以下权限：
  - 目标库 SELECT 权限。
  
  - SHOW PROCESSLIST 权限。
  
  - 如需诊断复制、锁和 InnoDB 状态，建议具备 SHOW REPLICA STATUS 或 SHOW SLAVE STATUS、SHOW ENGINE INNODB STATUS 以及 performance_schema 相关只读权限。
   
- 如需使用云数据库能力，需提前准备华为云Region和AK/SK信息。 AK/SK至少需要具备查看目标Region下TaurusDB实例的权限。AK/SK的获取方式请参见[访问密钥](https://support.huaweicloud.com/usermanual-ca/ca_05_0003.html)。
  区域ID的获取方式请参见[地区和终端节点](https://developer.huaweicloud.com/endpoint)。
  
- 使用MCP前需先登录数据库，登录数据库需先选择实例，每个实例有独立的账号和密码；选择实例后，使用对应账号密码登录即可操作数据库。 ![](https://support.huaweicloud.com/usermanual-taurusdb/figure/zh-cn_image_0000002684538737.png "点击放大")
  ![](https://support.huaweicloud.com/usermanual-taurusdb/figure/zh-cn_image_0000002684418923.png "点击放大")
  
- 如需使用性能诊断相关工具，请修改"performance_schema"参数值为"ON"，详细内容请参见[修改TaurusDB实例参数](https://support.huaweicloud.com/usermanual-taurusdb/taurusdb_configuration.html)。
 
#### 约束限制
使用 MCP 时需要注意以下限制和安全边界。
- taurusdb-mcp当前以stdio MCP Server 形态运行，不是HTTP 服务，启动后不会提供浏览器访问地址，需要由MCP客户端拉起和调用。
- MCP 客户端进程必须能拿到环境变量。建议将数据库和云侧配置直接写入 MCP 客户端配置。
- execute_readonly_sql 只允许执行只读 SQL，会阻断写入类语句。
- execute_sql 属于写入能力，只有开启 mutation 配置后才会暴露，并且高风险操作需要先返回confirmation_token，第二次带 token 才会执行。
- confirmation_token 与首次调用的 SQL、datasource、database 等上下文绑定，通常只能使用一次；参数不一致或 token 已使用会校验失败。
- 常见情况下，安全组重点是入方向规则；如果你的环境对出方向也做了限制，再补充对应的出方向规则。本机公网 IP 变化后，需要同步更新安全组规则。 下图展示了一个将本机公网 IP 加入安全组规则的示例：
  ![](https://support.huaweicloud.com/usermanual-taurusdb/figure/zh-cn_image_0000002654259304.png "点击放大")
  
 
#### 配置MCP
使用MCP前请先根据您使用客户端工具配置MCP，本章节针对如下常见的客户端提供配置方式。
如下内容中区域信息和AK/SK请替换为实际值。
#### 华为云码道
1. 先[下载安装](https://www.huaweicloud.com/product/codearts/download.html)华为云码道CodeArts代码智能体，详细内容请参见[华为云码道（CodeArts）代码智能体](https://support.huaweicloud.com/productdesc-codeartsagent/codeartsagent_pd_0001.html)。
2. 在华为云码道里打开 MCP 配置页，编辑 mcp_settings.json：
   ```
   {
   "mcpServers": {
   "huaweicloud-taurusdb": {
   "command": "npx",
   "args": ["-y", "taurusdb-mcp"],
   "env": {
   "TAURUSDB_CLOUD_REGION": "your-region",
   "TAURUSDB_CLOUD_ACCESS_KEY_ID": "your-ak",
   "TAURUSDB_CLOUD_SECRET_ACCESS_KEY": "your-sk"
   }
   }
   }
   }
   ```
   
 
#### Claude Code
运行命令行语句：
```
claude mcp add huaweicloud-taurusdb --transport stdio -s local -e TAURUSDB_CLOUD_REGION=your-region -e TAURUSDB_CLOUD_ACCESS_KEY_ID=your-ak -e TAURUSDB_CLOUD_SECRET_ACCESS_KEY=your-sk -- npx -y taurusdb-mcp
```
使用如下方式验证：
```
claude mcp list claude mcp get huaweicloud-taurusdb
```
#### Codex
```
codex mcp add huaweicloud-taurusdb --env TAURUSDB_CLOUD_REGION=your-region --env TAURUSDB_CLOUD_ACCESS_KEY_ID=your-ak --env TAURUSDB_CLOUD_SECRET_ACCESS_KEY=your-sk -- npx -y taurusdb-mcp
```
使用如下方式验证：
```
codex mcp list
```
如果您使用手工维护配置，编辑 \~/.codex/config.toml，新增如下内容：
```
[mcp_servers.huaweicloud-taurusdb]
command = "npx"
args = ["-y", "taurusdb-mcp"]
enabled = true 
[mcp_servers.huaweicloud-taurusdb.env]
TAURUSDB_CLOUD_REGION = "your-region"
TAURUSDB_CLOUD_ACCESS_KEY_ID = "your-ak"
TAURUSDB_CLOUD_SECRET_ACCESS_KEY = "your-sk"
```
#### Cursor
编辑 \~/.cursor/mcp.json，添加如下内容：
```
{
    "mcpServers": {
        "huaweicloud-taurusdb": {
            "command": "npx",
            "args": [
                "-y",
                "taurusdb-mcp"
            ],
            "env": {
                "TAURUSDB_CLOUD_REGION": "your-region",
                "TAURUSDB_CLOUD_ACCESS_KEY_ID": "your-ak",
                "TAURUSDB_CLOUD_SECRET_ACCESS_KEY": "your-sk"
            }
        }
    }
}
```
#### OpenCode
编辑opencode.json文件，添加如下内容：
```
{
    "$schema": "https://opencode.ai/config.json",
    "mcp": {
        "huaweicloud-taurusdb": {
            "type": "local",
            "command": [
                "npx",
                "-y",
                "taurusdb-mcp"
            ],
            "enabled": true,
            "environment": {
                "TAURUSDB_CLOUD_REGION": "your-region",
                "TAURUSDB_CLOUD_ACCESS_KEY_ID": "your-ak",
                "TAURUSDB_CLOUD_SECRET_ACCESS_KEY": "your-sk"
            }
        }
    }
}
```
#### Trae
在 Trae 的 MCP 设置里添加下面这段；如果你的版本支持项目级配置，通常可以放到 IDE 提供的 MCP 配置文件里：
```
{
    "mcpServers": {
        "huaweicloud-taurusdb": {
            "command": "npx",
            "args": [
                "-y",
                "taurusdb-mcp"
            ],
            "env": {
                "TAURUSDB_CLOUD_REGION": "your-region",
                "TAURUSDB_CLOUD_ACCESS_KEY_ID": "your-ak",
                "TAURUSDB_CLOUD_SECRET_ACCESS_KEY": "your-sk"
            }
        }
    }
}
```
#### Qwen Code / 通义千问
Qwen Code 常见的配置文件是 \~/.qwen/settings.json。你可以直接把下面这段加进去：
```
{
    "mcpServers": {
        "huaweicloud-taurusdb": {
            "command": "npx",
            "args": [
                "-y",
                "taurusdb-mcp"
            ],
            "env": {
                "TAURUSDB_CLOUD_REGION": "your-region",
                "TAURUSDB_CLOUD_ACCESS_KEY_ID": "your-ak",
                "TAURUSDB_CLOUD_SECRET_ACCESS_KEY": "your-sk"
            }
        }
    }
}
```
也可使用命令行配置：
```
qwen mcp add -t stdio -e TAURUSDB_CLOUD_REGION=your-region -e TAURUSDB_CLOUD_ACCESS_KEY_ID=your-ak -e TAURUSDB_CLOUD_SECRET_ACCESS_KEY=<your-sk> huaweicloud-taurusdb npx -y taurusdb-mcp
```
#### CodeBuddy
推荐直接用 codebuddy mcp add-json 写入配置。
```
codebuddymcpadd-json--scopeuserhuaweicloud-taurusdb'{
    "type": "stdio",
    "command": "npx",
    "args": [
        "-y",
        "taurusdb-mcp"
    ],
    "env": {
        "TAURUSDB_CLOUD_REGION": "your-region",
        "TAURUSDB_CLOUD_ACCESS_KEY_ID": "your-ak",
        "TAURUSDB_CLOUD_SECRET_ACCESS_KEY": "your-sk"
    }
}'
```
CodeBuddy 的配置文件通常放在以下位置之一：
- \~/.codebuddy/.mcp.json
- \~/.codebuddy/mcp.json
- \~/.codebuddy.json如果你不是用 CLI，就把同样的内容写进对应文件。
#### 验证MCP成功连接
确认MCP成功连接：
![](https://support.huaweicloud.com/usermanual-taurusdb/figure/zh-cn_image_0000002659645920.png)
#### 使用MCP
TaurusDB MCP提供如下工具，包括数据库连接、实例管理、数据库管理、诊断工具和恢复工具。
表1TaurusDB MCP提供的工具 
| 工具分类   | 工具                          | 说明                      |
|:---|:---|:---|
| 数据库连接 | ping                        | 网络连通性测试。             |
| 数据库连接 | set_cloud_region             | 设置华为云区域。                |
| 数据库连接 | set_cloud_access_keys        | 设置AK/SK。              |
| 数据库连接 | get_session_binding           | 查看当前会话绑定信息。            |
| 数据库连接 | set_default_database        | 设置默认数据库。                |
| 实例管理  | list_cloud_taurus_instances | 列出云数据库TaurusDB实例。      |
| 实例管理  | select_cloud_taurus_instance | 选择云数据库TaurusDB实例。       |
| 实例管理  | get_kernel_info              | 获取指定实例的内核版本信息。         |
| 实例管理  | list_taurus_features         | 获取特性矩阵。              |
| 数据库管理  | list_databases               | 列出数据库。                 |
| 数据库管理  | list_tables                | 列出表。                   |
| 数据库管理  | describe_table                | 描述表结构。                   |
| 数据库管理  | execute_readonly_sql            | 执行只读SQL。               |
| 数据库管理  | execute_sql                    | 执行变更SQL。               |
| 数据库管理  | explain_sql                   | 执行EXPLAIN。              |
| 数据库管理  | explain_sql_enhanced        | 增强EXPLAIN（含 NDP/PQ 提示）。 |
| 性能诊断  | show_processlist              | 查看进程列表。              |
| 性能诊断  | diagnose_service_latency     | 诊断造成服务延迟的根因。           |
| 性能诊断  | diagnose_db_hotspot          | 诊断热点行。                  |
| 性能诊断  | find_top_slow_sql           | 查找慢SQL。                 |
| 性能诊断  | diagnose_slow_query          | 诊断慢查询。               |
| 性能诊断  | diagnose_connection_spike   | 诊断连接突增。                |
| 性能诊断  | diagnose_lock_contention   | 诊断锁竞争。                  |
| 性能诊断  | diagnose_storage_pressure   | 诊断存储压力。                |
| 备份恢复  | flashback_query              | 闪回查询。                 |
| 备份恢复  | list_recycle_bin             | 列出回收站。                |
| 备份恢复  | restore_recycle_bin_table   | 恢复回收站表。                |
   
**示例：**
- list_cloud_taurus_instances：查询TaurusDB云数据库实例。 ![](https://support.huaweicloud.com/usermanual-taurusdb/figure/zh-cn_image_0000002684538741.png "点击放大")
  

- list_taurus_features：查询TaurusDB特性矩阵。 ![](https://support.huaweicloud.com/usermanual-taurusdb/figure/zh-cn_image_0000002684418925.png "点击放大")
  
- diagnose_slow_query：诊断慢查询根因。 ![](https://support.huaweicloud.com/usermanual-taurusdb/figure/zh-cn_image_0000002654259308.png "点击放大")
  

- diagnose_lock_contention：精准定位会话阻塞Blocker和Waiter。 ![](https://support.huaweicloud.com/usermanual-taurusdb/figure/zh-cn_image_0000002654419220.png "点击放大")
  

- execute_readonly_sql：使用自然语言查询数据。 ![](https://support.huaweicloud.com/usermanual-taurusdb/figure/zh-cn_image_0000002684538743.png "点击放大")
  

- flashback_query：按时间点查询历史态数据。 ![](https://support.huaweicloud.com/usermanual-taurusdb/figure/zh-cn_image_0000002684418927.png "点击放大")
  

- execute_readonly_sql ：对敏感字段进行动态脱敏。 ![](https://support.huaweicloud.com/usermanual-taurusdb/figure/zh-cn_image_0000002654259310.png "点击放大")
  

- list_recycle_bin：误删表秒级恢复。 ![](https://support.huaweicloud.com/usermanual-taurusdb/figure/zh-cn_image_0000002654419222.png "点击放大")
  
 
