内容
# CData MCP 代理程序适用于 ADK 网页
谷歌 ADK 代理程序,提供通过 MCP(模型上下文协议)访问 CData Connect Cloud 数据库的自然语言功能。
## 功能
- 🔍 **自然语言查询**:用简单的中文提问关于您的数据
- 📊 **数据库探索**:浏览目录、模式和表格
- 🔧 **SQL 执行**:在连接的数据源上运行查询
- 🌐 **网页界面**:通过 ADK 网页的视觉界面
## 先决条件
- Python 3.8+
- 谷歌 AI API 密钥
- CData Connect Cloud MCP 服务器凭证
## 安装配置
1. **安装 ADK 和依赖项**:
```bash
pip install google-adk python-dotenv
```
> **注意**:如果您使用 `pip install --user`(或 pip 默认用户安装)安装,`adk` 命令可能不在您的 PATH 中。您需要:
> - 使用完整路径:`~/Library/Python/3.x/bin/adk`(在 macOS 上)
> - 添加到 PATH:`export PATH="$HOME/Library/Python/3.x/bin:$PATH"` 在您的 shell 配置中
> - 使用自动配置 PATH 的虚拟环境
2. **配置环境变量**:
- 复制 `.env.example` 文件到 `.env`:
```bash
cp .env.example .env
```
- 编辑 `.env` 并添加您的凭证:
```env
# 谷歌 AI API 配置
GOOGLE_API_KEY=您的谷歌API密钥
# CData MCP 服务器配置
MCP_SERVER_URL=https://mcp.cloud.cdata.com/mcp
MCP_USERNAME=您的邮箱@example.com
MCP_PASSWORD=您的MCP密码
# 可选:Gemini 模型(默认为 gemini-2.0-flash-exp)
GEMINI_MODEL=gemini-2.0-flash-exp
```
## 使用 ADK 网页运行
1. **从此目录启动 ADK 网页**:
```bash
adk web --port 5000 .
```
2. **打开网页界面**(通常为 http://localhost:5000)
3. **选择代理程序**:从下拉菜单中选择 `cdata_query_assistant`
4. **开始查询** 您的数据,使用自然语言:
- "有哪些数据库可用?"
- "显示 MongoDB1 中的表格"
- "列出 SQL2 数据库中的模式"
- "customers 表有哪些列?"
## 示例查询
- **探索数据库**: "列出所有可用的目录"
- **查看模式**: "显示 MongoDB1 目录中的模式"
- **浏览表格**: "dbo 模式中有哪些表格?"
- **检查结构**: "描述 orders 表中的列"
- **查询数据**: "显示销售数据库中的最近订单"
## 工作原理
1. **ADK 代理程序**:`LlmAgent` 接收您的自然语言查询
2. **MCP 工具集**:通过 MCP 协议连接到 CData Connect Cloud
3. **工具发现**:自动发现可用的数据操作
4. **Gemini AI**:理解查询并确定要使用的工具
5. **数据访问**:执行操作并返回格式化结果
## 可用的 MCP 工具
- `getCatalogs` - 列出可用的数据库
- `getSchemas` - 查看数据库中的模式
- `getTables` - 浏览模式中的表格
- `getColumns` - 检查表格结构
- `getProcedures` - 列出存储过程
- `getProcedureParameters` - 查看过程参数
- `executeProcedure` - 运行存储过程
- `queryData` - 执行 SQL 查询
## 架构
```
用户查询 → ADK 网页界面 → CData MCP 代理程序 → Gemini AI
↓ ↓
视觉界面 MCP 协议
↓ ↓
响应显示 CData Connect Cloud
```
## 故障排除
- **连接错误**:验证 MCP_SERVER_URL 和凭证
- **无可用工具**:检查 MCP 服务器是否可访问
- **身份验证问题**:确保用户名/密码正确
- **Windows 用户**:如果遇到子进程错误,请尝试 `adk web --no-reload`
## 备注
- 代理程序使用 Gemini 2.0 Flash 以获得快速、智能的响应
- 所有数据操作都通过 CData 的安全 MCP 服务器进行
- 网页界面比 CLI 提供更好的用户体验