mcp-mongodb
mcp-mongodb
Servidor MCP (Model Context Protocol) para conectar Claude a MongoDB. Con este servidor, Claude puede explorar, consultar y modificar su base de datos MongoDB directamente a través de la conversación.
Características / Herramientas
Categoría | Herramienta | Descripción |
Info |
| Comprueba la conexión y la versión de MongoDB |
| Lista todas las bases de datos + tamaño | |
Database |
| Estadísticas de la base de datos |
| ⚠️ Elimina la base de datos (requiere | |
Colección |
| Lista las colecciones de la base de datos |
| Estadísticas de la colección (número de documentos, tamaño) | |
| Crea una colección nueva | |
| Renombra una colección | |
| ⚠️ Elimina la colección junto con su contenido | |
Lectura de datos |
| Consulta documentos (filter, proyección, sort, limit, skip) |
| Obtiene un solo documento | |
| Obtiene un documento por | |
| Cuenta el número de documentos que coinciden | |
| Valores únicos de un campo | |
| Ejecuta un pipeline de agregación ( | |
Escritura de datos |
| Inserta documentos |
| Actualiza con operadores ( | |
| Reemplaza todo el contenido de un documento | |
| ⚠️ Elimina documentos (un filtro vacío requiere | |
Índice |
| Gestiona índices |
Related MCP server: Mongo-MCP
Requisitos
Node.js ≥ 18 (desarrollado y probado en v22)
Servidor MongoDB (local o MongoDB Atlas)
Instalación
cd d:\mcp_server\mcp_mongodb
npm installConfiguración de variables de entorno
Variable | ¿Obligatoria? | Por defecto | Descripción |
| No |
| URI de conexión a MongoDB |
| No | — | Nombre de la base de datos por defecto; si está vacío, cada herramienta requiere el parámetro |
Ejemplo de URI de Atlas:
mongodb+srv://user:password@cluster0.xxxxx.mongodb.net/?retryWrites=true&w=majorityConexión con Claude Desktop
Abra el archivo de configuración:
Windows:
%APPDATA%\Claude\claude_desktop_config.json(normalmenteC:\Users\<NamaAnda>\AppData\Roaming\Claude\claude_desktop_config.json)macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
Añada la siguiente entrada (ajuste la ruta y las credenciales):
{
"mcpServers": {
"mongodb": {
"command": "node",
"args": ["d:\\mcp_server\\mcp_mongodb\\index.js"],
"env": {
"MONGODB_URI": "mongodb://localhost:27017",
"MONGODB_DB": "nama_database_anda"
}
}
}
}Guarde el archivo y reinicie Claude Desktop (ciérrelo por completo y ábralo de nuevo).
El icono de martillo/barra de herramientas del cuadro de chat mostrará las herramientas de
mcp-mongodb.
Ejemplos de uso en Claude
"Muestra todas las bases de datos de MongoDB" →
list_databases"¿Qué colecciones hay en la base de datos de la tienda?" →
list_collections"Busca los 10 productos más vendidos, ordenados de mayor a menor ventas" →
findconsort+limit"Añade un producto nuevo llamado 'Kopi Arabika' con precio 85000" →
insert_one"Aumenta el stock de todos los productos de la categoría 'bebidas' en 10" →
update_many"¿Cuál es el total de ventas por mes?" →
aggregatecon$group"Crea un índice único en el campo email de la colección users" →
create_index
Pruebas
Prueba de humo del protocolo (no necesita MongoDB en ejecución):
npm testSalida esperada:
PASS: initialize — server=mcp-mongodb v1.0.0
PASS: tools/list — 25 tool terdaftar
PASS: tool inti tersedia — semua ada
PASS: tools/call meresponsLa llamada a
server_infoen la prueba de humo mostrará un mensaje de error si MongoDB no está en ejecución; eso es normal y precisamente demuestra que la ruta RPC funciona.
Seguridad y notas importantes
Use una cuenta de MongoDB con los permisos mínimos necesarios. Si solo quiere que Claude lea datos, cree un usuario de solo lectura en MongoDB/Atlas.
No guarde contraseñas en archivos que se suban a git. Para producción, considere almacenar
MONGODB_URIen el entorno del sistema, no en el JSON de configuración.Las operaciones destructivas están protegidas:
drop_databaseydelete_manycon un filtro vacío exigen confirmación explícita (confirm: true), peroupdate_many/delete_manycon un filtro concreto se ejecutan directamente; revise siempre el plan de acción de Claude antes de aprobarlo.La salida de las consultas está limitada (50 documentos por defecto, máximo 1000) para no exceder el contexto de Claude.
Solución de problemas
Problema | Solución |
Las herramientas no aparecen en Claude | Asegúrese de que la ruta de |
| MongoDB no está en ejecución / URI incorrecta / IP aún no está en la lista blanca (Atlas) |
| Compruebe el usuario/contraseña y |
Carácter | Use doble barra invertida ( |
Estructura del proyecto
mcp_mongodb/
├── index.js # Entry point: McpServer + StdioServerTransport
├── lib/
│ ├── connection.js # Singleton MongoClient (lazy connect), env config
│ ├── helpers.js # Result builder, parser JSON, util ObjectId
│ └── schemas.js # Skema Zod bersama
├── tools/
│ ├── admin.js # Info server, database, koleksi
│ ├── query.js # Pembacaan data & agregasi
│ ├── documents.js # Insert/update/replace/delete
│ └── indexes.js # Manajemen index
└── test-smoke.js # Smoke test JSON-RPC via stdioAvailable Tools
25 toolsaggregateARead-only
Jalankan aggregation pipeline MongoDB untuk analisis data (grouping, join via $lookup, dsb).
Inputs: collection (required), limit, database, pipeline.
collection_statsBRead-only
Statistik koleksi: jumlah dokumen, ukuran rata-rata, ukuran storage, dan index.
Inputs: collection (required), database.
countARead-only
Menghitung jumlah dokumen yang cocok dengan filter.
Inputs: collection (required), filter, database.
create_collectionA
Membuat koleksi baru di dalam sebuah database.
Inputs: collection (required), database.
create_indexB
Membuat index pada koleksi untuk mempercepat query atau menegakkan unique constraint.
Inputs: collection (required), keys, options, database.
db_statsBRead-only
Statistik database: jumlah koleksi, objek, ukuran data, dan index.
Inputs: database.
delete_manyADestructive
PERINGATAN: Hapus SEMUA dokumen yang cocok dengan filter! Filter kosong ({}) hanya diizinkan bila confirm: true.
Inputs: collection (required), filter, confirm, database.
delete_oneADestructive
Hapus SATU dokumen pertama yang cocok dengan filter.
Inputs: collection (required), filter, database.
distinctBRead-only
Ambil daftar nilai unik dari sebuah field (opsional dengan filter).
Inputs: field (required), collection (required), filter, database.
drop_collectionADestructive
PERINGATAN: Menghapus koleksi BESERTA SELURUH ISINYA secara permanen!
Inputs: collection (required), database.
drop_databaseADestructive
PERINGATAN: Menghapus seluruh database beserta semua koleksinya secara permanen! Wajib set confirm: true.
Inputs: confirm (required), database (required).
drop_indexADestructive
Hapus index berdasarkan nama (index default 'id' tidak dapat dihapus).
Inputs: indexName (required), collection (required), database.
findARead-only
Cari dokumen dalam koleksi dengan filter opsional, proyeksi field, urutan, dan paginasi.
Inputs: collection (required), skip, sort, limit, +3 more.
find_oneBRead-only
Ambil SATU dokumen pertama yang cocok dengan filter.
Inputs: collection (required), filter, database, projection.
get_by_idARead-only
Ambil satu dokumen berdasarkan _id. String hex 24 karakter otomatis dikonversi menjadi ObjectId.
Inputs: id (required), collection (required), database.
insert_manyA
Sisipkan BANYAK dokumen sekaligus ke dalam koleksi.
Inputs: collection (required), database, documents.
insert_oneA
Sisipkan SATU dokumen baru ke dalam koleksi. Mengembalikan _id dokumen yang dibuat.
Inputs: collection (required), database, document.
list_collectionsBRead-only
Daftar semua koleksi di dalam sebuah database.
Inputs: database.
list_databasesARead-only
Daftar semua database yang tersedia beserta ukurannya.
Inputs: no named parameters.
list_indexesCRead-only
Daftar semua index pada sebuah koleksi.
Inputs: collection (required), database.
rename_collectionC
Mengganti nama sebuah koleksi.
Inputs: newName (required), collection (required), database, dropTarget.
replace_oneB
Ganti seluruh isi satu dokumen yang cocok dengan filter dengan dokumen baru.
Inputs: collection (required), filter, upsert, database, +1 more.
server_infoARead-only
Cek koneksi dan ambil informasi server MongoDB (versi, host, status replikasi). Gunakan ini untuk memastikan koneksi berjalan.
Inputs: no named parameters.
update_manyC
Perbarui SEMUA dokumen yang cocok dengan filter menggunakan operator update.
Inputs: collection (required), filter, update, upsert, +1 more.
update_oneA
Perbarui DOKUMEN PERTAMA yang cocok dengan filter menggunakan operator update.
Inputs: collection (required), filter, update, upsert, +1 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 25 tools
Most tools target distinct MongoDB resources and actions: collections, databases, documents, indexes, and stats are cleanly separated. The only slight overlap is among find, find_one, and get_by_id, plus update_one and replace_one, but descriptions clarify the differences well.
Most tools follow a clear snake_case pattern like insert_one, delete_many, and create_index. Minor deviations exist with bare commands such as find, count, distinct, aggregate and noun-style names like db_stats or server_info, but the overall style remains readable and predictable.
With 25 tools, the server is on the heavy end of what an agent can comfortably scan. The tools do cover a broad MongoDB feature surface without obvious duplicates, but the count feels more like a complete driver SDK than a tightly curated MCP tool set.
The tool set covers the full document lifecycle: create, read, update, delete, replace, plus collection, database, and index management. Minor gaps exist such as no find_and_modify, no explicit create_database, and no bulk-write operation, but core workflows are workable and produce no dead ends.
Maintenance
Related MCP Connectors
Query, explore, and manage your databases through natural conversation.
Astra DB tools for agents: schema, find, vector search, guarded writes, and interactive views.
Hosted PostgreSQL MCP server for Claude, ChatGPT and Cursor, with each action switched per account.
Query your org's data in natural language — read-only MCP access to SQL, NoSQL, files & warehouses.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables Claude to interact with MongoDB databases through natural language, supporting queries, aggregations, CRUD operations, and index management with optional Mongoose schema validation.17 npm3MIT
- AlicenseNot gradedqualityDmaintenanceEnables LLMs to interact with MongoDB databases through a complete suite of CRUD operations, administrative tasks, and index management tools. It supports database and collection handling, aggregation pipelines, and comprehensive server monitoring via the Model Context Protocol.126 PyPI3MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to interact with MongoDB databases through natural language, supporting document CRUD, aggregation, collection listing, and statistics.157,916 npmApache 2.0
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to interact with MongoDB databases and MongoDB Atlas, supporting read-only and write operations, Atlas cluster management, and data exploration.157,916 npmApache 2.0