# mcp-sql-go
**Repository Path**: we_10/mcp-sql-go
## Basic Information
- **Project Name**: mcp-sql-go
- **Description**: 使用简单的中文或英文查询您的数据库,提供AI模型和数据库工具之间的接口,连接到您的数据库(支持MySQL/MariaDB、PostgreSQL、Oracle和SQL Server)
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 0
- **Created**: 2025-08-20
- **Last Updated**: 2025-08-20
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# MCP-SQL-GO v1.0.0
mcp-sql-go v1.0.0
基于MCP协议的自然语言数据库查询工具 - 通过对话访问数据库信息,无需编写SQL!
[中文简体](README.md) | [English](README_EN.md)
## 概述
mcp-sql-go 是一个开源工具,允许用户使用自然语言查询数据库。它利用AI能力通过模型上下文协议(MCP)解释用户查询,生成适当的SQL语句,并针对数据库执行它们。
## 项目特点
- **自然语言查询**:使用简单的中文或英文查询您的数据库
- **SQL生成**:自动将自然语言转换为优化的SQL查询
- **数据库架构缓存**:缓存数据库结构以加快查询生成
- **支持复杂查询**:处理JOIN、子查询、聚合等
- **交互式查询优化**:通过对话来优化您的数据库查询
## 架构
系统由几个组件组成:
1. **MCP服务器**:提供AI模型和数据库工具之间的接口
2. **数据库连接**:连接到您的数据库(支持MySQL/MariaDB、PostgreSQL、Oracle和SQL Server)
3. **缓存管理**:工具用于缓存和更新数据库架构信息
4. **查询执行**:工具用于执行SQL查询和处理结果
## 安装
### 前提条件
- Go 1.21或更高版本
- 访问支持的数据库(MySQL/MariaDB、PostgreSQL、Oracle或SQL Server)
### 设置
1. 克隆仓库:
```bash
git clone https://github.com/yourusername/mcp-sql-go.git
cd mcp-sql-go
```
2. 安装依赖:
```bash
go mod tidy
```
3. 配置数据库连接:
通过环境变量配置数据库连接信息:
```bash
export DB_HOST=localhost
export DB_DATABASE=your_database
export DB_USERNAME=your_username
export DB_PASSWORD=your_password
export DB_PORT=3306
export DB_TYPE=mysql
```
## 使用
1. 启动MCP服务器:
```bash
go run main.go
```
或者使用构建后的二进制文件:
```bash
go build -o mcp-sql-server main.go
./mcp-sql-server
```
2. 在AI客户端中配置MCP服务器连接:
```json
{
"mcpServers": {
"sql bot": {
"timeout": 60,
"type": "sse",
"url": "http://127.0.0.1:8000/sse"
}
}
}
```
3. 通过AI界面使用自然语言查询数据库:
- 编写代码使用AI界面处理查询
- 可以参考提示词来指导模型生成SQL和执行查询
4. 查询结果处理:
当前方法将查询结果以JSON格式返回:
```json
{
"status": "success",
"message": "查询成功,获取了10条记录",
"fields_count": 5,
"records_count": 10,
"sql": "SELECT * FROM employee WHERE department='IT' LIMIT 10",
"data": {
"sql": "SELECT * FROM employee WHERE department='IT' LIMIT 10",
"fields": ["id", "name", "department", "salary", "hire_date"],
"field_comments": {},
"records": [
{"id": "1", "name": "张三", "department": "IT", "salary": "8000", "hire_date": "2023-01-15"},
...
]
}
}
```
### 示例查询
- "最近3个月新增会员的数量是多少?"
- "最近3个月下单的会员的订单金额是多少?"
- "列出所有销售量超过100的产品"
- "列出所有销售量超过100的产品,并按销售量降序排列"
## 工具
系统通过MCP接口提供几个工具:
- **get_table_data**:对数据库执行SQL查询
- **get_cache_info**:检索缓存的表和字段信息
- **update_cache_info**:使用新的数据库架构信息更新缓存
## 自定义
您可以通过以下方式自定义系统:
1. 修改提示词以调整AI解释查询的方式
2. 扩展工具以添加新功能
3. 更新数据库连接逻辑以支持其他数据库类型
## 环境变量配置
以下是可用的环境变量:
| 变量名 | 描述 | 默认值 |
|--------|------|--------|
| DB_HOST | 数据库主机地址 | localhost |
| DB_DATABASE | 数据库名称 | testdb |
| DB_USERNAME | 数据库用户名 | root |
| DB_PASSWORD | 数据库密码 | password |
| DB_PORT | 数据库端口 | 3306 |
| DB_TYPE | 数据库类型 (mysql, postgresql, oracle, sqlserver) | mysql |
## 许可证
本项目采用MIT许可证 - 有关详细信息,请参阅LICENSE文件。
## 贡献
欢迎贡献!请随时提交拉取请求。
## 致谢
- 感谢所有帮助改进本项目的贡献者
- 特别感谢开源社区提供使本项目成为可能的工具和库
## 联系与支持
### 联系我
### 支持本项目