# 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文件。 ## 贡献 欢迎贡献!请随时提交拉取请求。 ## 致谢 - 感谢所有帮助改进本项目的贡献者 - 特别感谢开源社区提供使本项目成为可能的工具和库 ## 联系与支持 ### 联系我 ### 支持本项目