Skip to main content
Glama
mcp-mongodb

mcp-mongodb

by chzkyy

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

server_info

Comprueba la conexión y la versión de MongoDB

list_databases

Lista todas las bases de datos + tamaño

Database

db_stats

Estadísticas de la base de datos

drop_database

⚠️ Elimina la base de datos (requiere confirm: true)

Colección

list_collections

Lista las colecciones de la base de datos

collection_stats

Estadísticas de la colección (número de documentos, tamaño)

create_collection

Crea una colección nueva

rename_collection

Renombra una colección

drop_collection

⚠️ Elimina la colección junto con su contenido

Lectura de datos

find

Consulta documentos (filter, proyección, sort, limit, skip)

find_one

Obtiene un solo documento

get_by_id

Obtiene un documento por _id (conversión automática a ObjectId)

count

Cuenta el número de documentos que coinciden

distinct

Valores únicos de un campo

aggregate

Ejecuta un pipeline de agregación ($match, $group, $lookup, etc.)

Escritura de datos

insert_one / insert_many

Inserta documentos

update_one / update_many

Actualiza con operadores ($set, $inc, ...)

replace_one

Reemplaza todo el contenido de un documento

delete_one / delete_many

⚠️ Elimina documentos (un filtro vacío requiere confirm: true)

Índice

create_index / drop_index / list_indexes

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 install

Configuración de variables de entorno

Variable

¿Obligatoria?

Por defecto

Descripción

MONGODB_URI

No

mongodb://localhost:27017

URI de conexión a MongoDB

MONGODB_DB

No

—

Nombre de la base de datos por defecto; si está vacío, cada herramienta requiere el parámetro database

Ejemplo de URI de Atlas:

mongodb+srv://user:password@cluster0.xxxxx.mongodb.net/?retryWrites=true&w=majority

Conexión con Claude Desktop

  1. Abra el archivo de configuración:

    • Windows: %APPDATA%\Claude\claude_desktop_config.json (normalmente C:\Users\<NamaAnda>\AppData\Roaming\Claude\claude_desktop_config.json)

    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  2. 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"
      }
    }
  }
}
  1. Guarde el archivo y reinicie Claude Desktop (ciérrelo por completo y ábralo de nuevo).

  2. 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" → find con sort + 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?" → aggregate con $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 test

Salida esperada:

PASS: initialize — server=mcp-mongodb v1.0.0
PASS: tools/list — 25 tool terdaftar
PASS: tool inti tersedia — semua ada
PASS: tools/call merespons

La llamada a server_info en 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_URI en el entorno del sistema, no en el JSON de configuración.

  • Las operaciones destructivas están protegidas: drop_database y delete_many con un filtro vacío exigen confirmación explícita (confirm: true), pero update_many / delete_many con 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 node y index.js sea correcta; consulte los registros de MCP en Claude Desktop (Settings ▸ Developer)

ServerSelectionTimeoutError

MongoDB no está en ejecución / URI incorrecta / IP aún no está en la lista blanca (Atlas)

Authentication failed

Compruebe el usuario/contraseña y authSource en la URI

Carácter \ en Windows

Use doble barra invertida (\\) o barra diagonal (/) en el JSON de configuración

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 stdio

Available Tools

25 tools
aggregateA
Read-only

Jalankan aggregation pipeline MongoDB untuk analisis data (grouping, join via $lookup, dsb).

Inputs: collection (required), limit, database, pipeline.

collection_statsB
Read-only

Statistik koleksi: jumlah dokumen, ukuran rata-rata, ukuran storage, dan index.

Inputs: collection (required), database.

countA
Read-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_statsB
Read-only

Statistik database: jumlah koleksi, objek, ukuran data, dan index.

Inputs: database.

delete_manyA
Destructive

PERINGATAN: Hapus SEMUA dokumen yang cocok dengan filter! Filter kosong ({}) hanya diizinkan bila confirm: true.

Inputs: collection (required), filter, confirm, database.

delete_oneA
Destructive

Hapus SATU dokumen pertama yang cocok dengan filter.

Inputs: collection (required), filter, database.

distinctB
Read-only

Ambil daftar nilai unik dari sebuah field (opsional dengan filter).

Inputs: field (required), collection (required), filter, database.

drop_collectionA
Destructive

PERINGATAN: Menghapus koleksi BESERTA SELURUH ISINYA secara permanen!

Inputs: collection (required), database.

drop_databaseA
Destructive

PERINGATAN: Menghapus seluruh database beserta semua koleksinya secara permanen! Wajib set confirm: true.

Inputs: confirm (required), database (required).

drop_indexA
Destructive

Hapus index berdasarkan nama (index default 'id' tidak dapat dihapus).

Inputs: indexName (required), collection (required), database.

findA
Read-only

Cari dokumen dalam koleksi dengan filter opsional, proyeksi field, urutan, dan paginasi.

Inputs: collection (required), skip, sort, limit, +3 more.

find_oneB
Read-only

Ambil SATU dokumen pertama yang cocok dengan filter.

Inputs: collection (required), filter, database, projection.

get_by_idA
Read-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_collectionsB
Read-only

Daftar semua koleksi di dalam sebuah database.

Inputs: database.

list_databasesA
Read-only

Daftar semua database yang tersedia beserta ukurannya.

Inputs: no named parameters.

list_indexesC
Read-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_infoA
Read-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

    B3.4/5.0

    Scored across 25 tools

    Disambiguation4/5

    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.

    Naming Consistency4/5

    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.

    Tool Count3/5

    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.

    Completeness4/5

    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

    ActivityStale
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables Claude to interact with MongoDB databases through natural language, supporting queries, aggregations, CRUD operations, and index management with optional Mongoose schema validation.
      17 npm
      3
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables 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 PyPI
      3
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables AI assistants to interact with MongoDB databases through natural language, supporting document CRUD, aggregation, collection listing, and statistics.
      157,916 npm
      Apache 2.0
    • A
      license
      Not graded
      quality
      B
      maintenance
      Enables AI agents to interact with MongoDB databases and MongoDB Atlas, supporting read-only and write operations, Atlas cluster management, and data exploration.
      157,916 npm
      Apache 2.0