Tencent Cloud DMC MCP Server - Execute SQL on TDSQL-C / TDSQL via browser cookies
Project description
dmc-mcp-server
通过腾讯云 DMC (Data Management Console) 在 TDSQL-C / TDSQL 数据库实例上执行 SQL 查询的 MCP Server。
原理
浏览器 (腾讯云控制台登录态)
│ Cookie (skey/uin) + mc_gtk (csrfCode)
▼
DMC MCP Server
│ ① 按实例类型搜索 API:
│ TDSQL-C → cynosdb.cloud.tencent.com DescribeClusters (本地过滤 Vip)
│ TDSQL → tdsql.cloud.tencent.com DescribeDCDBInstances (服务端 SearchKey)
│ ② RSA 加密 DB 密码 (PKCS#1 v1.5)
│ ③ POST dms.cloud.tencent.com/api/mysql/dbLogin → token
│ ④ POST dms.cloud.tencent.com/api/mysql/schemaAdmin/commonSql → 查询结果
▼
TDSQL-C / TDSQL MySQL (内网 IP)
利用腾讯云 DMC 控制台的 Web API,通过浏览器 Cookie 复用登录态,实现从本地对生产内网数据库的 SQL 查询。
安装
方式一:uvx 一键运行(推荐)
uvx dmc-mcp-server
方式二:从源码安装
cd dmc-mcp-server
uv sync
uv run dmc-mcp-server
配置
在 MCP 客户端中添加
在你的 MCP 客户端配置中添加 (如 opencode.jsonc, claude_desktop_config.json):
{
"mcpServers": {
"dmc-mcp-server": {
"command": "uvx",
"args": ["dmc-mcp-server"]
}
}
}
Cookie 不写在配置中, 启动后通过
set_cookie工具动态设置.
Cookie 获取方式
启动 MCP 后, 通过 Chrome DevTools MCP 在腾讯云控制台页面自动获取:
// Cookie
document.cookie
// mc_gtk (csrfCode) - 从 performance API 提取
performance.getEntriesByType('resource')
.find(e => e.name.includes('csrfCode='))
?.name.match(/csrfCode=(\d+)/)?.[1]
然后调用 set_cookie(cookie, mc_gtk) 工具设置.
也可手动从浏览器 DevTools 复制
document.cookie的值, 但 mc_gtk 必须从 performance API 提取.
工具列表
| 工具 | 说明 |
|---|---|
set_cookie |
设置/更新腾讯云控制台 Cookie + mc_gtk |
find_instance_by_ip |
通过内网 IP 搜索数据库实例(同时搜 TDSQL-C 和 TDSQL) |
login_instance |
登录数据库实例(会话缓存,不重复登录) |
execute_select |
执行 SELECT 查询(仅允许 SELECT) |
list_databases |
列出实例上的所有数据库 |
list_tables |
列出指定库的表(支持模糊搜索) |
get_table_detail |
查看表结构(列信息 + DDL) |
list_active_sessions |
查看已登录的实例列表 |
支持的数据库类型
| 类型 | dbType | 实例ID前缀 | 搜索 API |
|---|---|---|---|
| TDSQL-C (CynosDB) | cynosdbmysql |
cynosdbmysql- |
cynosdb.cloud.tencent.com DescribeClusters |
| TDSQL (DCDB) | tdsql |
tdsqlshard- |
tdsql.cloud.tencent.com DescribeDCDBInstances |
find_instance_by_ip 会同时搜索两种类型,返回结果中包含 DbType 字段供 login_instance 使用。
地域 (Region)
login_instance 的 region_id 参数和 find_instance_by_ip 的 region 参数用于指定集群所在地域。
默认值: region_id=4 / region="ap-shanghai" (上海)
如果你的集群在其他地域,需要传入对应的值:
| 地域 | region_id | region (API 参数) |
|---|---|---|
| 北京 | 1 | ap-beijing |
| 上海 | 4 | ap-shanghai |
| 广州 | 7 | ap-guangzhou |
| 深圳 | 11 | ap-shenzhen |
| 成都 | 16 | ap-chengdu |
| 重庆 | 23 | ap-chongqing |
| 南京 | 45 | ap-nanjing |
| 香港 | 21 | ap-hongkong |
| 新加坡 | 15 | ap-singapore |
| 硅谷 | 13 | na-siliconvalley |
| 法兰克福 | 17 | eu-frankfurt |
完整列表见 腾讯云地域文档
特性
- 双类型支持:同时支持 TDSQL-C (CynosDB) 和 TDSQL (DCDB) 实例
- 仅 SELECT:SQL 执行层强制限制只允许 SELECT 语句
- 会话复用:登录过的实例自动缓存 token,不重复登录
- 自动重连:token 过期时自动重新登录(使用缓存的凭据)
- Cookie 动态更新:运行时通过工具更新,无需重启 Server
- 代理兼容:自动清除系统代理环境变量,避免 socks5 代理导致连接卡死
约束
- Cookie 有效期约 2 小时(腾讯云控制台标准),过期需重新获取
- SQL 仅支持 SELECT(WITH...SELECT 也允许)
- DB 权限取决于 DB 账号本身的 GRANT 权限
- TDSQL 需要数据库账号已对 DMC 服务器 IP 段授权(否则登录报 ACCESS_DENIED)
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file dmc_mcp_server-0.2.1.tar.gz.
File metadata
- Download URL: dmc_mcp_server-0.2.1.tar.gz
- Upload date:
- Size: 72.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a473d29ca87a6f7d4e5aac1530475242738743e73639ced575c75f4c90dff38f
|
|
| MD5 |
52c07b47244fd0ac674dd898925650a3
|
|
| BLAKE2b-256 |
a07f3b7ff69136368527c6b697b05213a4e97f033c0a8e7441d5e4a18f3c1475
|
File details
Details for the file dmc_mcp_server-0.2.1-py3-none-any.whl.
File metadata
- Download URL: dmc_mcp_server-0.2.1-py3-none-any.whl
- Upload date:
- Size: 14.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0b102390e1717e556d47c836a37818d7bc3baa7610133fc5c8786c32f82a96eb
|
|
| MD5 |
b8505b8ce33c3544f3ee96cd51a851f1
|
|
| BLAKE2b-256 |
8bfb8627a5c1b8f5c584b778927e8550a6d5ea520a99c1b8dece151556a9c7b0
|