数据库自然语言交互服务

MCP数据库服务器是一个允许大型语言模型通过自然语言与多种数据库交互的服务,当前支持MongoDB,未来将扩展至PostgreSQL、CockroachDB和Redis等。

  • by manpreet2000
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 manpreet2000/mcp-database-server

使用说明

MCP数据库服务器

一种模型上下文协议(MCP)服务器实现,允许大型语言模型(LLM)通过自然语言与各种数据库交互。目前支持MongoDB,计划支持:

  • PostgreSQL
  • 蟑螂DB
  • 雷迪斯
  • 还有更多。..

特性

  • 通过自然语言进行数据库操作
  • 目前支持MongoDB的功能:
    • 列出所有收藏
    • 通过过滤和投影查询文档
    • 插入文档
    • 删除文档
    • 聚合管道操作
  • 未来对其他数据库的支持:
    • PostgreSQL:SQL查询、表操作
    • CockroachDB:分布式SQL操作
    • Redis:键值操作、缓存

先决条件

  • Node.js v201.2.2或更高版本
  • 数据库(目前为MongoDB,其他数据库即将推出)
  • Claude桌面应用程序

安装

  1. 克隆存储库:
git clone https://github.com/manpreet2000/mcp-database-server.git
cd mcp-database-server
  1. 安装依赖项:
npm install
  1. 构建TypeScript代码:
npm run build

配置

要开始,您需要在Claude Desktop配置文件中配置数据库连接:

MacOS

~/Library/Application\ Support/Claude/claude_desktop_config.json

视窗

%APPDATA%/Claude/claude_desktop_config.json

将以下配置添加到您的 claude_desktop_config.json:

{
  "mcpServers": {
    "database": {
      "command": "/path/to/node",
      "args": ["/path/to/mcp-database/dist/index.js"],
      "env": {
        "MONGODB_URI": "your-mongodb-connection-string"
      }
    }
  }
}

替换:

  • /path/to/node 使用Node.js可执行路径或直接使用 node
  • /path/to/mcp-database 具有此存储库的绝对路径
  • your-mongodb-connection-string 使用您的MongoDB连接URL

使用示例

MongoDB示例

  1. 列出数据库中的所有集合:
Can you show me all the collections in my database?
  1. 从集合中获取特定记录:
Give me 2 records from the chargers collection
  1. 使用筛选器进行查询:
Show me all documents in the users collection where status is active
  1. 插入文档:
Add a new user to the users collection with name John and email john@example.com
  1. 删除文档:
Remove the user with email john@example.com from the users collection
  1. 综合数据:
Show me the total count of users by status in the users collection

可用工具

1.集合

列出连接数据库中的所有集合。

2.获取收藏

使用可选查询参数从集合中检索文档:

  • collectionName:收藏名称
  • limit:要返回的最大文档数(默认值:10,最大值:1000)
  • query:MongoDB查询对象
  • projection:要包含/排除的字段

3. 插入一个

将单个文档插入到集合中:

  • collectionName:收藏名称
  • document:要插入的文档对象

4. 删除一个

从集合中删除单个文档:

  • collectionName:收藏名称
  • query:查询以匹配要删除的文档

5.骨料

执行聚合管道:

  • collectionName:收藏名称
  • pipeline:聚合阶段数组
  • options:可选聚合选项

未来数据库支持

PostgreSQL

  • SQL查询执行
  • 表操作
  • 模式管理
  • 交易支持

蟑螂DB

  • 分布式SQL操作
  • 多区域支持
  • 交易管理
  • 架构操作

雷迪斯

  • 关键价值操作
  • 缓存机制
  • 发布/子操作
  • 数据结构操作

安全

  • 切勿将数据库连接字符串提交到版本控制
  • 对敏感信息使用环境变量
  • 遵循特定于数据库的安全最佳实践

贡献

欢迎投稿!请随时提交拉取请求。对于重大更改,请先打开一个问题来讨论您想要更改的内容。

许可证

MIT许可证-请参阅 许可证 详见