Skip to main content
Glama
README.md
# mongo-mcp

MCP server untuk MongoDB yang menyediakan operasi baca/tulis dengan guardrail
untuk mencegah penghapusan data secara tidak sengaja.

## Fitur

- Tidak menyediakan tool untuk `dropDatabase`, `dropCollection`, atau truncate.
- `delete` menolak filter kosong dan berjalan sebagai dry-run sampai mendapat `confirm: true`.
- `aggregate` menolak stage `$out` dan `$merge`.
- Koneksi dibatasi dengan pool maksimal 5, timeout koneksi 5 detik, dan `maxTimeMS` 10 detik untuk query baca.
- Hasil `find` dibatasi maksimal 100 dokumen.

## Persyaratan

- Node.js 18 atau lebih baru
- MongoDB yang dapat diakses oleh server

## Instalasi dan penggunaan

```bash
git clone https://github.com/wahyuakbarwibowo/mongo-mcp.git
cd mongo-mcp
npm install
npm test
```

`MONGODB_URI` bersifat opsional dan default ke `mongodb://localhost:27017`.

## Konfigurasi MCP

Ganti `/path/to/mongo-mcp` dengan lokasi hasil clone.

### Claude Code

```bash
claude mcp add mongo \
  --env MONGODB_URI=mongodb://localhost:27017 \
  -- node /path/to/mongo-mcp/index.js
```

### Claude Desktop, Codex CLI, dan client lain

Tambahkan server lokal berikut ke konfigurasi MCP client:

```json
{
  "mcpServers": {
    "mongo": {
      "command": "node",
      "args": ["/path/to/mongo-mcp/index.js"],
      "env": {
        "MONGODB_URI": "mongodb://localhost:27017"
      }
    }
  }
}
```

Untuk client yang menggunakan konfigurasi TOML, padanannya adalah:

```toml
[mcp_servers.mongo]
command = "node"
args = ["/path/to/mongo-mcp/index.js"]
env = { MONGODB_URI = "mongodb://localhost:27017" }
```

## Tools

| Tool | Fungsi |
| --- | --- |
| `list-databases`, `list-collections` | Membaca metadata MongoDB |
| `find`, `count`, `aggregate` | Membaca data dengan batas waktu |
| `insert`, `update` | Menulis data |
| `delete` | Menghapus data setelah konfirmasi eksplisit |

## Lisensi

Belum ditentukan. Jangan gunakan proyek ini sebagai dependensi publik sebelum
lisensi ditambahkan.