使用说明
Mongo MCP
英语| 简体中文
用于MongoDB操作的机器聊天协议(MCP)服务。该服务提供了一套全面的工具,允许大型语言模型(LLM)通过完整的CRUD操作、管理任务和高级功能与MongoDB数据库进行交互。
需求
- Python 3.10或更高版本
- 正在运行的MongoDB数据库服务
- 建议使用 紫外线 运行程序
🚀 特性
📊 数据库管理工具
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驱动程序
- 紫外线:现代Python包管理工具
用法
直接用uvx运行
uvx run mongo-mcp
服务器使用stdio传输方法,使其适合与支持此传输方法的MCP客户端集成。
光标示例配置
如果你使用 光标 作为您的开发环境,您可以将以下配置添加到您的 .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:读取首选项(默认:主要)MONGODB_WRITE_CONCERN_W:写入问题(默认值:1)MONGODB_READ_CONCERN_LEVEL:读取关注级别(默认值:本地)
日志记录配置
LOG_LEVEL:日志记录级别(默认值:“INFO”)- 可用值:调试、信息、警告、错误、临界
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编码支持
- 带有函数名和行号的结构化日志记录
许可证
麻省理工学院
贡献
欢迎通过Issues和Pull Request进行贡献。在提交PR之前,请确保:
- 所有测试均通过(
uv run pytest) - 添加了适当的测试用例
- 文档已更新
- 代码遵循现有的样式模式