MongoDB MCP Server
Un servidor para realizar operaciones CRUD en una base de datos MongoDB.
Documentación
MongoDB MCP Server
Servidor MongoDB MCP (Model Context Protocol) basado en FastMCP y la herramienta uv, que proporciona funcionalidad completa de operaciones CRUD.
Características
- ✅ Gestión de conexiones: Conectar y desconectar bases de datos MongoDB
- ✅ Crear documentos: Insertar nuevos documentos en colecciones
- ✅ Leer documentos: Consultar documentos de colecciones, con soporte de filtros y paginación
- ✅ Actualizar documentos: Actualizar documentos en colecciones, con soporte de upsert
- ✅ Eliminar documentos: Eliminar documentos de colecciones
- ✅ Manejo de errores: Manejo completo de errores y registro de actividades
- ✅ Serialización de datos: Manejo automático de tipos especiales de MongoDB como ObjectId
Instalación de dependencias
Instale las dependencias del proyecto con uv:
# 安装 uv(如果还没安装)
curl -LsSf https://astral.sh/uv/install.sh | sh
# 安装项目依赖
uv pip install -e .
O con pip:
pip install -e .
Descripción de herramientas
1. connect - Conectar a la base de datos
Conecta a una base de datos MongoDB.
Parámetros:
connection_string(str): Cadena de conexión de MongoDBdatabase_name(str): Nombre de la base de datos
Ejemplo:
{
"connection_string": "mongodb://localhost:27017",
"database_name": "myapp"
}
2. disconnect - Desconectar
Desconecta la conexión actual de MongoDB.
Parámetros: Ninguno
3. create - Crear documento
Crea un nuevo documento en la colección especificada.
Parámetros:
collection_name(str): Nombre de la coleccióndocument(dict): Contenido del documento a insertar
Ejemplo:
{
"collection_name": "users",
"document": {
"name": "张三",
"age": 25,
"email": "zhangsan@example.com"
}
}
4. read - Leer documentos
Lee documentos de la colección especificada.
Parámetros:
collection_name(str): Nombre de la colecciónfilter(dict, opcional): Condiciones de filtro de consultalimit(int, opcional): Límite de cantidad de resultadosskip(int, opcional): Número de documentos a omitir
Ejemplo:
{
"collection_name": "users",
"filter": {"age": {"$gte": 18}},
"limit": 10,
"skip": 0
}
5. update - Actualizar documento
Actualiza documentos en la colección especificada.
Parámetros:
collection_name(str): Nombre de la colecciónfilter(dict): Condiciones de actualizaciónupdate(dict): Operación de actualizaciónupsert(bool, opcional): Si se debe crear si el documento no existe, el valor predeterminado es false
Ejemplo:
{
"collection_name": "users",
"filter": {"name": "张三"},
"update": {"$set": {"age": 26}},
"upsert": false
}
6. delete - Eliminar documento
Elimina documentos de la colección especificada.
Parámetros:
collection_name(str): Nombre de la colecciónfilter(dict): Condiciones de eliminación
Ejemplo:
{
"collection_name": "users",
"filter": {"age": {"$lt": 18}}
}
Métodos de uso
Ejecutar como servidor MCP
# 直接运行
python -m my_mongo_mcp.server
# 或者使用安装的脚本
my-mongo-mcp
Uso en Claude Desktop
Agregue lo siguiente al archivo de configuración de Claude Desktop:
{
"mcpServers": {
"mongodb": {
"command": "python",
"args": ["-m", "my_mongo_mcp.server"],
"env": {}
}
}
}
Uso mediante programación
Consulte el archivo example_usage.py:
python example_usage.py
Ejemplos de uso
Operaciones CRUD básicas
-
Conectar a la base de datos
工具: connect 参数: {"connection_string": "mongodb://localhost:27017", "database_name": "testdb"} -
Crear documento de usuario
工具: create 参数: { "collection_name": "users", "document": {"name": "李四", "age": 30, "city": "上海"} } -
Consultar usuarios
工具: read 参数: { "collection_name": "users", "filter": {"city": "上海"}, "limit": 5 } -
Actualizar información de usuario
工具: update 参数: { "collection_name": "users", "filter": {"name": "李四"}, "update": {"$set": {"age": 31}} } -
Eliminar usuario
工具: delete 参数: { "collection_name": "users", "filter": {"name": "李四"} } -
Desconectar
工具: disconnect
Notas importantes
- Asegúrese de que el servidor MongoDB esté en ejecución antes de usar
- Todas las operaciones requieren una conexión previa a la base de datos
- Los tipos especiales como ObjectId se convierten automáticamente a cadenas
- Se admite toda la sintaxis estándar de consulta de MongoDB
- Los mensajes de error se devuelven en chino
Requisitos del sistema
- Python 3.8+
- MongoDB 3.6+
- fastmcp 0.2.0+
- pymongo 4.6.0+
Solución de problemas
-
Error de conexión
- Verifique que el servicio de MongoDB esté iniciado
- Valide que la cadena de conexión sea correcta
- Compruebe la conexión de red y la configuración del firewall
-
Errores de permisos
- Asegúrese de que el usuario de MongoDB tenga permisos suficientes
- Verifique los permisos de acceso a la base de datos y las colecciones
-
Errores de tipo de datos
- Asegúrese de que el formato de datos JSON sea correcto
- Preste atención a los requisitos de formato de ObjectId "# mongodb-mcp-server"