关于 Mongo Mcp
Mongo Mcp 是 Python MCP 服务端,让大模型通过数据库、集合、文档、索引、聚合和管理工具操作 MongoDB。项目使用 PyMongo,并通过 stdio 传输连接 MCP 客户端。
主要功能
- 01数据库与集合管理
- 02文档增删改查及查询
- 03索引创建与管理
- 04聚合管道和去重值查询
- 05服务器与副本集监控
- 06可配置连接和操作参数
适用场景
- 01检查和管理 MongoDB 数据库及集合
- 02查询、更新或删除文档
- 03创建索引并运行聚合管道
- 04检查数据库连接和服务器状态
MCP 相关
该 MCP 服务端将 MongoDB 操作作为工具提供给 MCP 客户端,使用 stdio 传输。通过 MONGODB_URI 配置数据库连接。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
还没有获取到工具列表
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Mongo-MCP
English | 简体中文
用于 MongoDB 操作的机器聊天协议(MCP)服务。此服务提供一套全面的工具,支持大语言模型(LLM)通过完整的 CRUD 操作、管理任务和高级功能与 MongoDB 数据库交互。
要求
- Python 3.10 或更高版本
- 正在运行的 MongoDB 数据库服务
- 建议使用 uv 运行程序
🚀 功能
📊 数据库管理工具
list_databases- 列出所有数据库create_database- 创建新数据库drop_database- 删除数据库get_database_stats- 获取数据库统计信息
📦 集合管理工具
list_collections- 列出数据库中的所有集合create_collection- 创建新集合(可选设置)drop_collection- 删除集合rename_collection- 重命名集合get_collection_stats- 获取集合统计信息
📄 文档 CRUD 操作
insert_document- 插入单个文档insert_many_documents- 批量插入多个文档find_documents- 查询文档(支持排序、投影和限制数量)find_one_document- 查询单个文档count_documents- 统计符合查询条件的文档数量update_document- 更新文档(单个或批量)replace_document- 替换文档delete_document- 删除文档(单个或批量)
🔍 索引管理工具
list_indexes- 列出集合的所有索引create_index- 创建常规索引create_text_index- 创建文本搜索索引create_compound_index- 创建复合索引drop_index- 删除索引reindex_collection- 重建集合的所有索引
📈 聚合操作
aggregate_documents- 执行聚合管道操作distinct_values- 获取字段的不同值
🔧 监控和管理工具
get_server_status- 获取 MongoDB 服务状态get_replica_set_status- 获取副本集状态ping_database- 测试数据库连接test_mongodb_connection- 全面测试连接get_connection_details- 获取详细的连接信息
🛠️ 技术栈
- Python:主要编程语言
- FastMCP:用于自动生成工具定义的 MCP Python SDK
- PyMongo:MongoDB 官方 Python 驱动程序
- uv:现代 Python 包管理工具
使用方法
直接使用 uvx 运行
uvx run mongo-mcp
服务使用 stdio 传输方式,适合与支持该传输方式的 MCP 客户端集成。
Cursor 配置示例
如果你使用 Cursor 作为开发环境,可以将以下配置添加到 .cursor/mcp.json 文件中,以进行本地调试:
{
"mcpServers": {
"mongo-mcp": {
"command": "uvx",
"args": [
"mongo-mcp"
],
"env": {
"MONGODB_URI": "mongodb://localhost:27017",
"MONGODB_DEFAULT_DB": "your_database_name",
"LOG_LEVEL": "INFO"
}
}
}
}
环境变量
基本配置
MONGODB_URI:MongoDB 连接字符串(默认值:"mongodb://localhost:27017")MONGODB_DEFAULT_DB:默认数据库名称(可选)
连接池配置
MONGODB_MIN_POOL_SIZE:连接池最小大小(默认值:0)MONGODB_MAX_POOL_SIZE:连接池最大大小(默认值:100)MONGODB_MAX_IDLE_TIME_MS:最大空闲时间,单位为毫秒(默认值:30000)
超时配置
MONGODB_SERVER_SELECTION_TIMEOUT_MS:服务选择超时时间(默认值:30000)MONGODB_SOCKET_TIMEOUT_MS:套接字超时时间(默认值:0 - 无超时)MONGODB_CONNECT_TIMEOUT_MS:连接超时时间(默认值:20000)
安全配置
MONGODB_TLS_ENABLED:启用 TLS 连接(默认值:false)MONGODB_AUTH_SOURCE:身份验证源(默认值:admin)MONGODB_AUTH_MECHANISM:身份验证机制(SCRAM-SHA-1、SCRAM-SHA-256 等)
性能设置
MONGODB_READ_PREFERENCE:读取偏好(默认值:primary)MONGODB_WRITE_CONCERN_W:写入关注级别(默认值:1)MONGODB_READ_CONCERN_LEVEL:读取关注级别(默认值:local)
日志配置
LOG_LEVEL:日志级别(默认值:"INFO")- 可用值:DEBUG、INFO、WARNING、ERROR、CRITICAL
LOG_MAX_FILE_SIZE:日志文件最大大小(以字节为单位,默认值:10MB)LOG_BACKUP_COUNT:备份日志文件数量(默认值:5)
功能标志
ENABLE_DANGEROUS_OPERATIONS:启用可能存在危险的操作(默认值:false)ENABLE_ADMIN_OPERATIONS:启用管理操作(默认值:true)ENABLE_INDEX_OPERATIONS:启用索引操作(默认值:true)
开发指南
- 克隆仓库
git clone https://github.com/441126098/mongo-mcp.git
cd mongo-mcp
- 安装开发依赖
# Using uv (recommended)
uv sync
# Or using pip
pip install -e ".[dev]"
- 运行测试
uv run pytest tests/ -v
- 代码结构
src/mongo_mcp/server.py:MCP 服务实现src/mongo_mcp/db.py:MongoDB 核心操作实现src/mongo_mcp/config.py:配置管理src/mongo_mcp/tools/:MCP 工具实现database_tools.py:数据库和集合管理document_tools.py:文档 CRUD 操作index_tools.py:索引管理aggregation_tools.py:聚合操作admin_tools.py:管理和监控工具
src/mongo_mcp/utils/:实用工具模块tests/:测试用例
测试
该项目包含全面的测试覆盖:
- 所有工具模块的单元测试
- 与 MongoDB 的集成测试
- 用于独立组件测试的模拟测试
运行测试套件:
# Run all tests
uv run pytest
# Run with verbose output
uv run pytest -v
# Run specific test file
uv run pytest tests/test_tools.py
日志记录
默认情况下,日志文件存储在 logs 目录中。日志系统支持:
- 可配置的日志级别
- 根据大小轮转文件
- UTF-8 编码支持
- 包含函数名称和行号的结构化日志
许可证
MIT
贡献
欢迎通过 Issues 和 Pull Requests 贡献。在提交 PR 之前,请确保:
- 所有测试均通过(
uv run pytest) - 添加了适当的测试用例
- 更新了文档
- 代码遵循现有的风格规范
评论
支持 Markdown
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。