内容
# SQLBot MCP 代理
SQLBot 的 MCP 服务器代理。它提供了 SQLBot 数据源发现、表元数据、自然语言文本转 SQL 查询以及本地备用报告生成作为 MCP 工具。
<!-- mcp-name: io.github.wenRou21/sqlbot-mcp-proxy -->
## 要求
- Docker
- 运行中的 SQLBot 服务
- SQLBot API 密钥
## 推荐的 Codex 配置
用户不需要手动下载此存储库。将此单个 MCP 服务器添加到 Codex 配置中,并替换 SQLBot URL 和密钥:
```toml
[mcp_servers.sqlbot]
command = "docker"
args = [
"run",
"--rm",
"-i",
"-e",
"SQLBOT_MCP_PROXY_BASE_URL",
"-e",
"SQLBOT_MCP_PROXY_ACCESS_KEY",
"-e",
"SQLBOT_MCP_PROXY_SECRET_KEY",
"ghcr.io/wenrou21/sqlbot-mcp-proxy:0.1.0"
]
enabled = true
startup_timeout_sec = 120
[mcp_servers.sqlbot.env]
SQLBOT_MCP_PROXY_BASE_URL = "http://183.196.108.32:18088"
SQLBOT_MCP_PROXY_ACCESS_KEY = "<YOUR_SQLBOT_ACCESS_KEY>"
SQLBOT_MCP_PROXY_SECRET_KEY = "<YOUR_SQLBOT_SECRET_KEY>"
```
然后完全重启 Codex。
如果 SQLBot 可以通过另一个公网或局域网地址访问,请用该地址替换 `SQLBOT_MCP_PROXY_BASE_URL`,例如 `https://sqlbot.example.com` 或 `http://192.168.1.10:18088`。
## 提示模板
```text
请为 Codex 配置 SQLBot MCP。
MCP 镜像:
ghcr.io/wenrou21/sqlbot-mcp-proxy:0.1.0
我的 SQLBot URL:
http://183.196.108.32:18088
我的 SQLBot 访问密钥:
<YOUR_SQLBOT_ACCESS_KEY>
我的 SQLBot 机密密钥:
<YOUR_SQLBOT_SECRET_KEY>
将此 MCP 添加到 Codex 配置:
- MCP 名称:sqlbot
- 命令:docker
- 参数:["run", "--rm", "-i", "-e", "SQLBOT_MCP_PROXY_BASE_URL", "-e", "SQLBOT_MCP_PROXY_ACCESS_KEY", "-e", "SQLBOT_MCP_PROXY_SECRET_KEY", "ghcr.io/wenrou21/sqlbot-mcp-proxy:0.1.0"]
- 启动超时(秒):120
- SQLBOT_MCP_PROXY_BASE_URL:使用上面的 SQLBot URL
- SQLBOT_MCP_PROXY_ACCESS_KEY:使用上面的访问密钥
- SQLBOT_MCP_PROXY_SECRET_KEY:使用上面的机密密钥
重启后:
- 使用 sqlbot_list_datasources 检查可用的数据源。
- 使用 sqlbot_list_tables 和 sqlbot_describe_table 在提问数据问题之前。
- 使用 sqlbot_ask_data 进行文本转 SQL 查询。
- 在询问分析报告或图表时使用 sqlbot_generate_report。
```
## 快速 Docker 测试
您可以在 Codex 之外测试镜像:
```bash
docker run --rm -i \
-e SQLBOT_MCP_PROXY_BASE_URL=http://183.196.108.32:18088 \
-e SQLBOT_MCP_PROXY_ACCESS_KEY=your-access-key \
-e SQLBOT_MCP_PROXY_SECRET_KEY=your-secret-key \
ghcr.io/wenrou21/sqlbot-mcp-proxy:0.1.0
```
## 工具
- `sqlbot_list_datasources`:列出 SQLBot 数据源中可见的数据源
- `sqlbot_list_tables`:列出检查过的 SQLBot 元数据表
- `sqlbot_describe_table`:描述检查过的字段
- `sqlbot_ask_data`:向 SQLBot 提问自然语言数据问题
- `sqlbot_generate_report`:生成分析报告和图表,带有本地 SVG 备用
## 环境变量
| 名称 | 默认值 | 描述 |
| --- | --- | --- |
| `SQLBOT_MCP_PROXY_BASE_URL` | `http://183.196.108.32:18088` | SQLBot 服务基本 URL |
| `SQLBOT_MCP_PROXY_ACCESS_KEY` | 空 | SQLBot API 访问密钥 |
| `SQLBOT_MCP_PROXY_SECRET_KEY` | 空 | SQLBot API 机密密钥 |
| `FEISHU_ASK_ACCESS_KEY` | 空 | 备用访问密钥名称 |
| `FEISHU_ASK_SECRET_KEY` | 空 | 备用机密密钥名称 |
| `SQLBOT_MCP_PROXY_DOCKER_CONTAINER` | `sqlbot` | 用于备用密钥查找的容器 |
| `SQLBOT_MCP_PROXY_HTTP_HOST` | `127.0.0.1` | HTTP 模式主机 |
| `SQLBOT_MCP_PROXY_HTTP_PORT` | `8787` | HTTP 模式端口 |
| `SQLBOT_MCP_PROXY_HTTP_PATH` | `/mcp` | HTTP 模式 JSON-RPC 路径 |
| `SQLBOT_MCP_PROXY_HTTP_TIMEOUT_MS` | `120000` | SQLBot HTTP 请求超时 |
| `SQLBOT_MCP_PROXY_REPORT_OUTPUT_DIR` | `outputs` | 生成的备用 SVG 报告目录 |
## 高级 HTTP 模式
大多数 MCP 客户端应使用 stdio。对于可以发送 JSON-RPC 请求的客户端,请启动:
```bash
docker run --rm -p 8787:8787 \
-e SQLBOT_MCP_PROXY_BASE_URL=http://183.196.108.32:18088 \
-e SQLBOT_MCP_PROXY_ACCESS_KEY=your-access-key \
-e SQLBOT_MCP_PROXY_SECRET_KEY=your-secret-key \
-e SQLBOT_MCP_PROXY_HTTP_HOST=0.0.0.0 \
ghcr.io/wenrou21/sqlbot-mcp-proxy:0.1.0 --http
```
健康检查:
```bash
curl http://127.0.0.1:8787/health
```
## 发布
1. 确认 `package.json` 中的软件包元数据。
2. 发布 OCI 镜像:
```bash
docker build -t ghcr.io/wenrou21/sqlbot-mcp-proxy:0.1.0 .
docker push ghcr.io/wenrou21/sqlbot-mcp-proxy:0.1.0
```
3. 发布 MCP 注册表元数据:
```bash
mcp-publisher login github
mcp-publisher publish
```
`package.json` 中的 `mcpName` 必须与 `server.json` 中的 `name` 完全匹配。