这是一个模型上下文协议(MCP)服务器,它能让大型语言模型(LLMs)直接与 MongoDB 数据库进行交互。借助该服务器,用户可以通过自然语言对集合进行查询、检查模式、分析数据以及进行管理。
要开始使用,请找到 MongoDB 连接 URL,并将此配置添加到您的 Claude Desktop 配置文件中:
~/Library/Application\ Support/Claude/claude_desktop_config.json%APPDATA%/Claude/claude_desktop_config.json{
"mcpServers": {
"mongodb": {
"command": "npx",
"args": [
"mongo-mcp",
"mongodb://:@:/?authSource=admin"
]
}
}
}
要通过 Smithery 安装:
smithery install --package mongo-mcp
然后在 smithery.toml 中添加以下内容:
[mongo-mcp]
command = "node"
args = ["index.js"]
使用以下命令安装项目依赖:
npm install
或
yarn install
要启动 MCP 服务器,请运行:
npm start
或
yarn start
您可以使用以下命令在 Docker 中启动 MongoDB:
docker run --name mcp-mongo -d mongo:latest
然后,您可以通过以下命令连接到 MongoDB 实例:
mongo --host localhost --port 27017
要填充测试数据,请运行以下命令:
npx mongo-mcp create-users-collection
要配置 Claude Desktop 使用此 MCP 服务器,请编辑 smithery.toml 文件并添加以下内容:
[mongo-mcp]
command = "node"
args = ["index.js"]
用户集合包含以下字段:
_id:文档 IDusername:用户名email:电子邮件地址password:密码哈希created_at:创建时间戳updated_at:更新时间戳示例文档:
{
"_id": "63b4d207f8dfg5c1a7b1",
"username": "exampleuser",
"email": "user@example.com",
"password": "$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKfW3p2.tU6VNU.0oGoeHabKN0u8F",
"created_at": "2023-07-20T12:00:00Z",
"updated_at": "2023-07-20T12:00:00Z"
}
产品集合包含以下字段:
_id:文档 IDname:产品名称price:价格(货币单位)description:描述category:分类stock:库存数量created_at:创建时间戳示例文档:
{
"_id": "63b4d207f8dfg5c1a7b2",
"name": "Example Product",
"price": 9.99,
"description": "This is an example product.",
"category": "electronics",
"stock": 10,
"created_at": "2023-07-20T12:00:00Z"
}
订单集合包含以下字段:
_id:文档 IDuser_id:用户 ID(引用用户集合的 _id)products:订单中的产品列表(数组,包含产品 ID 和数量)total_price:总价格(货币单位)order_date:下单日期时间戳status:订单状态(如 "pending", "processing", "shipped", "delivered")示例文档:
{
"_id": "63b4d207f8dfg5c1a7b3",
"user_id": "63b4d207f8dfg5c1a7b1",
"products": [
{
"product_id": "63b4d207f8dfg5c1a7b2",
"quantity": 2
}
],
"total_price": 19.98,
"order_date": "2023-07-20T12:00:00Z",
"status": "pending"
}
以下是一些可用的命令及其功能:
create-collection:创建一个新的 MongoDB 集合。drop-collection:删除指定的 MongoDB 集合。add-index:为指定集合添加索引。remove-index:从指定集合中删除索引。insert-doc:插入单个文档到指定集合。batch-insert:批量插入多个文档到指定集合。find-docs:查询指定集合中的所有文档(可选条件)。update-doc:更新指定集合中的一个或多个文档。delete-doc:删除指定集合中的一个或多个文档。本项目受 MIT License 保护。
如需进一步了解,请参考项目的完整文档。