使用说明
带自定义客户端的MCP数据库服务器
一个全面的MCP(模型上下文协议)数据库服务器,带有一个自定义客户端,具有OpenAI支持的自然语言查询功能。
🚀 项目概述
此存储库包含两个主要组件:
- MCP数据库服务器 (ExecuteAutomation)-支持多种数据库类型的核心数据库服务器
- 自定义MCP客户端 -一个集成了OpenAI的智能客户端,用于自然语言数据库查询
📦 组件
1.MCP数据库服务器
核心MCP服务器,提供数据库连接和工具,用于:
- SQLite -基于文件的数据库支持
- MySQL/MariaDB -包括Laravel应用程序
- PostgreSQL -支持SSL
- SQL Server -Windows/Linux兼容
特征:
- 支持多种数据库类型
- MCP通信的STDIO传输
- 用于查询、模式检查和数据操作的工具
- 带验证的安全查询执行
- 导出功能(CSV、JSON)
2.自定义MCP客户端(custom-mcp-client/)
具有高级功能的智能MCP客户端:
- 自然语言处理 -用简单的英语提问
- 语义查询理解 -生成分析SQL(GROUP BY,聚合)
- OpenAI集成 -GPT-4驱动的查询生成
- 交互式CLI -用户友好的命令行界面
- 自动架构发现 -自动学习数据库结构
- Laravel支持 -Laravel应用程序的特殊设置
🎯 主要特点
语义查询理解
自定义客户端理解 意图 问题背后:
❌ 文字(基本):“安静的时光”→ SELECT quiet_time FROM table
✅ 语义(智能):“安静的时光”→ SELECT HOUR(time), COUNT(*) FROM table GROUP BY hour ORDER BY count ASC
查询示例
- “预订区的安静时间是什么时候?”
- “谁是最大的客户?”
- “什么产品最受欢迎?”
- “显示上个月的趋势”
- “查找订单超过5个的用户”
🔧 安装
先决条件
- Node.js(v18或更高版本)
- OpenAI API密钥(用于自定义客户端)
- 数据库(MySQL、PostgreSQL、SQLite或SQL Server)
设置
# Clone the repository
git clone https://github.com/Captain-Price-1/MCP-database-server.git
cd MCP-database-server
# Install server dependencies
npm install
npm run build
# Setup custom client
cd custom-mcp-client
npm install
cp env.example .env
# Edit .env with your OpenAI API key and database settings
🚀 快速开始
运行MCP服务器
# SQLite
node dist/src/index.js /path/to/database.db
# MySQL
node dist/src/index.js --mysql --host localhost --database mydb --user root --password pass
# PostgreSQL
node dist/src/index.js --postgresql --host localhost --database mydb --user postgres --password pass
# SQL Server
node dist/src/index.js --sqlserver --server localhost --database mydb --user sa --password pass
运行自定义客户端
cd custom-mcp-client
npm start
然后问自然语言问题:
> What are the quiet times in reservations?
> Who are the top users?
> Show me all tables
📁 项目结构
mcp-database-server/
├── src/ # Server source code
│ ├── db/ # Database adapters
│ ├── handlers/ # Request handlers
│ ├── tools/ # Database tools
│ └── utils/ # Utilities
├── custom-mcp-client/ # Custom client with OpenAI
│ ├── src/ # Client source code
│ │ ├── mcpClient.js # MCP STDIO transport
│ │ ├── openaiService.js # Semantic understanding
│ │ ├── databaseService.js # Database operations
│ │ └── index.js # Interactive CLI
│ ├── examples/ # Usage examples
│ └── README.md # Client documentation
├── docs/ # Documentation
├── examples/ # Server examples
└── README.md # This file
🎨 用例
- Laravel应用程序 -用自然语言查询Laravel数据库
- 数据分析 -询问有关数据的分析问题
- 商业智能 -生成报告和见解
- 数据库探索 -发现表、关系和模式
- 快速原型制作 -无需编写SQL即可测试查询
🛠️ 技术
- Node.js -运行时环境
- TypeScript -服务器实现
- OpenAI API -自然语言处理(客户端)
- MCP-SDK -模型上下文协议
- STDIO传输 -基于流程的沟通
- 多个数据库驱动程序(sqlite3、mysql2、pg、mssql)
📖 文档
- 服务器README -原始服务器文档
- 自定义客户端README -客户文件
- Laravel安装指南 -Laravel特定设置
- 快速入门指南 -快速设置指南
🔒 安全
- 通过查询验证进行SQL注入保护
- 敏感数据的环境变量配置
- 只读模式可用于安全查询
- API密钥的GitHub推送保护
- 正确的.gitignore配置
🤝 贡献
欢迎投稿!拜托:
- 分叉存储库
- 创建要素分支
- 添加新功能的测试
- 提交拉取请求
📝 许可证
MIT许可证
🙏 致谢
- 服务器:基于 ExecuteAutomation的mcp数据库服务器
- MCP协议:通过Anthropic
- 开放人工智能:用于支持语义理解的GPT模型
📧 支持
如有疑问或问题:
- 在GitHub上打开一个问题
- 查看中的文档
/docs和/custom-mcp-client
🌟 功能亮点
服务器功能
- ✅ 支持多种数据库类型
- ✅ MCP的STDIO传输
- ✅ 全面的数据库工具
- ✅ 模式检查
- ✅ 带验证的查询执行
- ✅ 导出功能
自定义客户端功能
- ✅ 自然语言查询理解
- ✅ 语义SQL生成
- ✅ OpenAI集成
- ✅ 交互式CLI
- ✅ 自动架构发现
- ✅ Laravel支持
- ✅ 全面的测试套件
🚦 状态
- 服务器:✅ 生产就绪
- 自定义客户端:✅ 功能完备的
- 文档:✅ 完成
- 测验:✅ 全面的
由以下材料制成❤️ 对于MCP社区