> ## Documentation Index
> Fetch the complete documentation index at: https://docs.didit.me/llms.txt
> Use this file to discover all available pages before exploring further.

# Instalasi MCP Didit: Claude, Cursor, VS Code, Windsurf

> Pasang MCP Didit di Claude, Cursor, VS Code, Windsurf, Zed, atau klien MCP lain, atau self-host server open-source. Tanpa kunci API.

Pilih klien Anda di bawah ini. Server **yang di-hosting** (`https://mcp.didit.me/mcp`) tidak memerlukan kunci API. Saat pertama kali terhubung, klien Anda akan membuka browser. Klik **[Masuk dengan Didit](https://docs.didit.me/id/integration/mcp/authentication.md)**, lalu setujui izinnya.

> [!TIP]
>
> **Menggunakan Claude?** Halaman [Hubungkan Claude](https://docs.didit.me/id/integration/mcp/claude.md) berisi tautan konektor satu klik yang membuka dialog **Add custom connector** dengan nama dan URL sudah terisi, sehingga Anda hanya perlu mengonfirmasi dan masuk.

> [!NOTE]
>
> Klien yang belum mendukung MCP remote/HTTP (Windsurf, Zed) terhubung melalui bridge `mcp-remote`, yang meneruskan stdio ke URL server yang di-hosting dan menangani handshake OAuth untuk Anda.

***

## Server yang di-hosting (direkomendasikan)

> [tab] Claude Code
>
> Tambahkan server dengan CLI, lalu mulai proses masuk:
>
> ```bash theme={null}
> claude mcp add --transport http didit https://mcp.didit.me/mcp
> ```
>
> Jalankan Claude Code dan jalankan perintah `/mcp`. Browser akan terbuka untuk **Masuk dengan Didit**. Setelah Anda menyetujui, alat `didit` tersedia.

> [tab] Claude web dan Desktop
>
> Web: klik [**Add Didit to Claude →**](https://claude.ai/customize/connectors?modal=add-custom-connector\&connectorName=Didit\&connectorUrl=https://mcp.didit.me/mcp) lalu konfirmasi dialog yang sudah terisi otomatis.
>
> Desktop: **Settings → Connectors → Add custom connector**, beri nama `Didit`, lalu atur URL menjadi:
>
> ```text theme={null}
> https://mcp.didit.me/mcp
> ```
>
> Klik **Hubungkan** dan selesaikan proses **Masuk dengan Didit** di browser. Alat Didit kemudian muncul di menu alat di chat.

> [tab] Cursor
>
> Tambahkan ke `~/.cursor/mcp.json` (global) atau `.cursor/mcp.json` (per proyek):
>
> ```json theme={null}
> {
>   "mcpServers": {
>     "didit": {
>       "url": "https://mcp.didit.me/mcp"
>     }
>   }
> }
> ```
>
> Atau gunakan **Settings → Tools & Integrations → New MCP Server**. Cursor mendaftarkan dirinya ke Didit melalui Dynamic Client Registration dan membuka browser untuk masuk saat pertama kali digunakan.

> [tab] VS Code
>
> Dengan mode agent GitHub Copilot, tambahkan `.vscode/mcp.json`:
>
> ```json theme={null}
> {
>   "servers": {
>     "didit": {
>       "type": "http",
>       "url": "https://mcp.didit.me/mcp"
>     }
>   }
> }
> ```
>
> Atau jalankan **MCP: Add Server** dari command palette lalu pilih **HTTP**. Masuk saat diminta. Arahkan VS Code ke URL `/mcp` lengkap, karena server mempublikasikan metadata resource OAuth untuk path tersebut.

> [tab] Windsurf
>
> Windsurf terhubung melalui bridge `mcp-remote`. Tambahkan ke `~/.codeium/windsurf/mcp_config.json`:
>
> ```json theme={null}
> {
>   "mcpServers": {
>     "didit": {
>       "command": "npx",
>       "args": ["-y", "mcp-remote@latest", "https://mcp.didit.me/mcp"]
>     }
>   }
> }
> ```
>
> Buka **Settings → Cascade → MCP Servers → Manage** untuk memastikan server sudah dimuat, lalu masuk melalui browser.

> [tab] Zed
>
> Tambahkan server konteks di `settings.json` Zed:
>
> ```json theme={null}
> {
>   "context_servers": {
>     "didit": {
>       "source": "custom",
>       "command": "npx",
>       "args": ["-y", "mcp-remote@latest", "https://mcp.didit.me/mcp"]
>     }
>   }
> }
> ```
>
> Zed menjalankan bridge dan membuka browser untuk **Masuk dengan Didit**.

> [tab] Klien lain
>
> Klien apa pun yang mengimplementasikan MCP melalui **Streamable HTTP** dengan **OAuth 2.1** dapat terhubung langsung ke `https://mcp.didit.me/mcp`. Klien menemukan server otorisasi dari `https://mcp.didit.me/.well-known/oauth-protected-resource/mcp`, mendaftarkan dirinya dengan Dynamic Client Registration, lalu menjalankan alur PKCE. Server hanya menerima `POST` pada `/mcp`. `GET` dan `DELETE` merespons dengan `405`, karena server bersifat stateless dan tidak menyimpan stream yang dimulai dari server.
>
> Klien yang hanya mendukung stdio dapat menggunakan bridge `mcp-remote` yang sama seperti Windsurf dan Zed:
>
> ```bash theme={null}
> npx -y mcp-remote@latest https://mcp.didit.me/mcp
> ```
>
> Untuk mencoba server tanpa klien, [MCP Inspector](https://modelcontextprotocol.io/docs/tools/inspector) terhubung ke URL yang sama dan memandu Anda melalui proses masuk.

> [!NOTE]
>
> **Tidak ada kunci API di konfigurasi.** Server yang di-hosting mengautentikasi Anda di browser dan bertindak atas nama **Anda**, mencakup setiap organisasi tempat Anda tergabung, dengan izin sesuai peran Anda. Lihat [Autentikasi](https://docs.didit.me/id/integration/mcp/authentication.md).

Server yang di-hosting merespons `GET https://mcp.didit.me/healthz` dengan versinya.

***

## Verifikasi koneksi Anda

Setelah Anda masuk, tanyakan kepada klien Anda:

```text theme={null}
Use the Didit MCP server to call didit_context_get and list my organizations and applications.
```

Agen seharusnya memanggil `didit_context_get` dan menampilkan organisasi Anda beserta aplikasinya.
Jika klien menyatakan tidak memiliki alat Didit, berarti server belum terhubung atau proses masuk belum selesai. Lihat [Pemecahan Masalah](https://docs.didit.me/id/integration/mcp/advanced.md#pemecahan-masalah).

## Hosting mandiri

Server yang di-hosting dibangun dari repositori open-source [github.com/didit-protocol/mcp](https://github.com/didit-protocol/mcp) (MIT). Setiap rilis juga dipublikasikan ke npm sebagai [`@didit-protocol/mcp-server`](https://www.npmjs.com/package/@didit-protocol/mcp-server), sehingga Anda dapat langsung menjalankan server stdio dari npm atau membangun salah satu titik masuk dari clone. Satu basis kode menyediakan dua titik masuk:

| Titik masuk | Mode | Transport | Autentikasi |
| - | - | - | - |
| `dist/http.js` | Hosted | Streamable HTTP pada `MCP_PORT` (default 3000), `POST /mcp`, `GET /healthz` | OAuth 2.1 Bearer, divalidasi melalui introspeksi token |
| `dist/index.js` | stdio (headless) | MCP stdio | Token akses pengguna di `DIDIT_ACCESS_TOKEN` |

Kedua mode bertindak sebagai **pengguna** Didit. Tidak ada mode kunci API aplikasi.

**1. Kloning dan build**

```bash theme={null}
git clone https://github.com/didit-protocol/mcp.git && cd mcp
npm install && npm run build
```

Atau bangun container: `docker build -t didit-mcp .`. Image menjalankan `dist/http.js` sebagai pengguna non-root, membuka port 3000, dan memiliki pemeriksaan status pada `/healthz`.

**2. Jalankan server HTTP (OAuth)**

Salin `.env.example` ke `.env`, isi nilai untuk mode hosted, lalu jalankan:

```bash theme={null}
node dist/http.js
# or
docker run -p 3000:3000 --env-file .env didit-mcp
```

Server ini hanya berfungsi sebagai server sumber daya OAuth. Server memerlukan `MCP_RESOURCE_URI` yang diisi dengan URL publik lengkap dari transport (misalnya `https://mcp.example.com/mcp`, bukan hanya origin-nya) serta kredensial yang digunakan untuk introspeksi token (`MCP_OAUTH_CLIENT_ID`, `MCP_OAUTH_CLIENT_SECRET`) terhadap server otorisasi Didit. Daftar lengkap variabel ada di [Lanjutan → hosting mandiri](https://docs.didit.me/id/integration/mcp/advanced.md#hosting-mandiri).

**3. Atau jalankan melalui stdio (headless)**

Untuk agen lokal yang tidak dapat menjalankan alur OAuth, jalankan paket yang sudah dipublikasikan (tanpa perlu clone) dan berikan token akses pengguna di environment:

```bash theme={null}
DIDIT_ACCESS_TOKEN=<user-access-token> npx -y @didit-protocol/mcp-server
```

Dari clone, `DIDIT_ACCESS_TOKEN=<user-access-token> node dist/index.js` melakukan hal yang sama. Tanpa token, agen dapat masuk dengan `didit_account_login`, lalu `didit_account_verify_2fa` jika akun memiliki autentikasi dua faktor.

Opsional, `MCP_DEFAULT_ORG` dan `MCP_DEFAULT_APP` mengunci cakupan untuk penyiapan single-tenant. Daftarkan di Claude Code dengan:

```bash theme={null}
claude mcp add didit-local -e DIDIT_ACCESS_TOKEN=<user-access-token> -- npx -y @didit-protocol/mcp-server
```

Atau di `mcp.json` Cursor:

```json theme={null}
{
  "mcpServers": {
    "didit-local": {
      "command": "npx",
      "args": ["-y", "@didit-protocol/mcp-server"],
      "env": { "DIDIT_ACCESS_TOKEN": "<user-access-token>" }
    }
  }
}
```

Server stdio open-source tidak menyertakan alat Travel Rule, marketplace, jaringan penipuan, dan alat token SDK untuk transaksi milik server hosted, juga alat kepatuhan selain alat untuk membangun alur kerja.
Server ini menambahkan `didit_org_top_up`, `didit_org_reveal_application_api_key`, dan lima alat penyiapan akun (`didit_account_register`, `didit_account_verify_email`, `didit_account_resend_otp`, `didit_account_login`, `didit_account_verify_2fa`) yang menerima kredensial sebagai argumen, sehingga alat tersebut tidak pernah tersedia di konektor jarak jauh. Alat yang menerima file juga menerima argumen `*_path` di stdio, karena server berbagi sistem file dengan Anda.

***

## Langkah selanjutnya

> [card] [Autentikasi](https://docs.didit.me/id/integration/mcp/authentication.md)
>
> Masuk, cakupan, dan peran.

> [card] [Referensi tool](https://docs.didit.me/id/integration/mcp/tools.md)
>
> Semua yang dapat dipanggil agen.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.