MongoDB MCP 服务器
# 翻译 为LLM提供对MongoDB数据库的只读访问,以便检查集合模式和执行聚合管道。
服务介绍
MongoDB MCP 服务器
一个提供对 MongoDB 数据库只读访问的模型上下文协议服务器。该服务器使 LLMs 能够检查集合模式并执行聚合管道。
组件
工具
-
aggregate
- 对连接的数据库执行 MongoDB 聚合管道
- 输入:
collection(字符串): 要查询的集合pipeline(数组): MongoDB 聚合管道阶段options(对象): 可选的聚合设置allowDiskUse(布尔值): 允许需要磁盘使用的操作maxTimeMS(数字): 最大执行时间(毫秒)comment(字符串): 用于标识操作的注释
- 如果未指定限制阶段,则默认限制为 1000 个文档
- 默认超时时间为 30 秒
-
explain
- 获取聚合管道的执行计划
- 输入:
collection(字符串): 要分析的集合pipeline(数组): MongoDB 聚合管道阶段verbosity(字符串): 解释的详细程度- 选项: "queryPlanner", "executionStats", "allPlansExecution"
- 默认: "queryPlanner"
资源
服务器为数据库中的每个集合提供模式信息:
- 集合模式 (
mongodb://<host>/<collection>/schema)- 推断出的每个集合的 JSON 模式信息
- 包括字段名称和数据类型
- 模式是从采样集合文档中推导出来的
与 Claude Desktop 一起使用
要将此服务器与 Claude Desktop 应用程序一起使用,请在您的 claude_desktop_config.json 的 "mcpServers" 部分添加以下配置:
"mongodb": {
"command": "npx",
"args": [
"-y" ,
"@pash1986/mcp-server-mongodb"
],
"env" : {
"MONGODB_URI" : "mongodb+srv://<yourcluster>" // 'mongodb://localhost:27017'
}
}
将 mydb 替换为您的数据库名称,并根据需要调整连接字符串。
示例用法
基本聚合
{
"collection": "users",
"pipeline": [
{ "$match": { "age": { "$gt": 21 } } },
{ "$group": {
"_id": "$city",
"avgAge": { "$avg": "$age" },
"count": { "$sum": 1 }
}},
{ "$sort": { "count": -1 } },
{ "$limit": 10 }
],
"options": {
"allowDiskUse": true,
"maxTimeMS": 60000,
"comment": "City-wise user statistics"
}
}
查询解释
{
"collection": "users",
"pipeline": [
{ "$match": { "age": { "$gt": 21 } } },
{ "$sort": { "age": 1 } }
],
"verbosity": "executionStats"
}
安全特性
- 如果管道中未指定限制,则自动限制为 1000 个文档
- 所有操作的默认超时时间为 30 秒
- 仅允许只读操作
- 从集合样本中安全地推断模式
许可证
此 MCP 服务器采用 MIT 许可证授权。这意味着您可以自由地使用、修改和分发该软件,但需遵守 MIT 许可证的条款和条件。有关更多详细信息,请参阅项目存储库中的 LICENSE 文件。