MCP 数据库服务器
模型上下文协议 (MCP) 服务器实现,允许大型语言模型 (LLM) 通过自然语言与各种数据库交互。目前支持 MongoDB,并计划支持:
- PostgreSQL
- 蟑螂数据库
- Redis
- 还有更多...
特征
- 通过自然语言进行数据库操作
- 目前支持 MongoDB 的功能有:
- 列出所有收藏
- 使用过滤和投影查询文档
- 插入文档
- 删除文档
- 聚合管道操作
- 未来对其他数据库的支持:
- PostgreSQL:SQL 查询、表操作
- CockroachDB:分布式SQL操作
- Redis:键值操作、缓存
先决条件
- Node.js v20.12.2 或更高版本
- 数据库(目前为 MongoDB,其他数据库即将推出)
- Claude 桌面应用程序
安装
- 克隆存储库:
git clone https://github.com/manpreet2000/mcp-database-server.git
cd mcp-database-server
- 安装依赖项:
- 构建 TypeScript 代码:
配置
首先,您需要在 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 示例
- 列出数据库中的所有集合:
Can you show me all the collections in my database?
- 从集合中获取特定记录:
Give me 2 records from the chargers collection
- 使用过滤器查询:
Show me all documents in the users collection where status is active
- 插入文档:
Add a new user to the users collection with name John and email john@example.com
- 删除文档:
Remove the user with email john@example.com from the users collection
- 汇总数据:
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
蟑螂数据库
Redis
安全
- 永远不要将数据库连接字符串提交到版本控制
- 使用环境变量来获取敏感信息
- 遵循数据库特定的安全最佳实践
贡献
欢迎贡献代码!欢迎提交 Pull 请求。对于重大变更,请先提交一个 issue 来讨论您想要修改的内容。
执照
MIT 许可证 - 详情请参阅许可证