自然语言数据库查询工具

一个支持多种数据库类型并提供自然语言查询功能的数据库服务器与客户端工具,适用于数据分析、业务智能和快速原型开发。

  • by Captain-Price-1
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 Captain-Price-1/MCP-database-server

使用说明

带自定义客户端的MCP数据库服务器

一个全面的MCP(模型上下文协议)数据库服务器,带有一个自定义客户端,具有OpenAI支持的自然语言查询功能。

🚀 项目概述

此存储库包含两个主要组件:

  1. MCP数据库服务器 (ExecuteAutomation)-支持多种数据库类型的核心数据库服务器
  2. 自定义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

🎨 用例

  1. Laravel应用程序 -用自然语言查询Laravel数据库
  2. 数据分析 -询问有关数据的分析问题
  3. 商业智能 -生成报告和见解
  4. 数据库探索 -发现表、关系和模式
  5. 快速原型制作 -无需编写SQL即可测试查询

🛠️ 技术

  • Node.js -运行时环境
  • TypeScript -服务器实现
  • OpenAI API -自然语言处理(客户端)
  • MCP-SDK -模型上下文协议
  • STDIO传输 -基于流程的沟通
  • 多个数据库驱动程序(sqlite3、mysql2、pg、mssql)

📖 文档

🔒 安全

  • 通过查询验证进行SQL注入保护
  • 敏感数据的环境变量配置
  • 只读模式可用于安全查询
  • API密钥的GitHub推送保护
  • 正确的.gitignore配置

🤝 贡献

欢迎投稿!拜托:

  1. 分叉存储库
  2. 创建要素分支
  3. 添加新功能的测试
  4. 提交拉取请求

📝 许可证

MIT许可证

🙏 致谢

📧 支持

如有疑问或问题:

  • 在GitHub上打开一个问题
  • 查看中的文档 /docs 和 /custom-mcp-client

🌟 功能亮点

服务器功能

  • ✅ 支持多种数据库类型
  • ✅ MCP的STDIO传输
  • ✅ 全面的数据库工具
  • ✅ 模式检查
  • ✅ 带验证的查询执行
  • ✅ 导出功能

自定义客户端功能

  • ✅ 自然语言查询理解
  • ✅ 语义SQL生成
  • ✅ OpenAI集成
  • ✅ 交互式CLI
  • ✅ 自动架构发现
  • ✅ Laravel支持
  • ✅ 全面的测试套件

🚦 状态

  • 服务器:✅ 生产就绪
  • 自定义客户端:✅ 功能完备的
  • 文档:✅ 完成
  • 测验:✅ 全面的

由以下材料制成❤️ 对于MCP社区

原始服务器由 执行自动化 自定义客户端和增强功能 船长价格-1