Integration App MCP Server

resmi

Berinteraksi dengan aplikasi SaaS lainnya atas nama pelanggan Anda.

Dokumentasi

Server MCP Membrane

Screenshot 2025-07-07 at 23 03 05

Server MCP Membrane adalah server Model Context Protocol (MCP), yang menyediakan aksi untuk integrasi yang terhubung di Membrane sebagai alat.

Berikut adalah Contoh Agen AI resmi kami yang menunjukkan cara menggunakan server MCP ini di aplikasi Anda.

πŸ“‹ Prasyarat

  • Node.js (v18 atau lebih tinggi)
  • Akun Membrane

βš™οΈ Instalasi

git clone https://github.com/membranehq/mcp-server.git
cd mcp-server
npm install
npm run build

πŸ› οΈ Pengembangan Lokal

Untuk menjalankan server pengembangan secara lokal, mulai dengan:

npm run dev

Server akan aktif di http://localhost:3000 ⚑️

πŸ§ͺ Menjalankan pengujian

# Run the server in test mode
npm run start:test

# then run tests
npm test

πŸš€ Deployment

Deploy instansi Anda sendiri dari server MCP ini ke layanan hosting cloud pilihan Anda.

🐳 Docker

Proyek ini menyertakan Dockerfile untuk deployment terkontainerisasi yang mudah.

docker build -t membrane-mcp-server .
docker run -p 3000:3000 membrane-mcp-server

πŸ”— Menghubungkan ke server MCP

Server MCP ini mendukung dua transport:

TransportEndpointStatus
SSE (Server‑Sent Events)/sseπŸ”΄ Ditinggalkan β€” ditinggalkan per 5 November 2024 dalam spesifikasi MCP
HTTP (Streamable HTTP)/mcp🟒 Direkomendasikan β€” menggantikan SSE dan mendukung streaming dua arah

πŸ” Autentikasi

Berikan token akses Membrane melalui query atau header Authorization:

?token=ACCESS_TOKEN
Authorization: Bearer ACCESS_TOKEN

SSE (Ditinggalkan)

await client.connect(
  new SSEClientTransport(
    new URL(
      `https://<HOSTED_MCP_SERVER_URL>/sse`
    )
    {
      requestInit: {
        headers: {
          Authorization: `Bearer ${ACCESS_TOKEN}`,
        },
      },
    }
  )
);

Streamable HTTP (Direkomendasikan)


await client.connect(
  new StreamableHTTPClientTransport(
    new URL(`https://<HOSTED_MCP_SERVER_URL>/mcp`)
    {
      requestInit: {
        headers: {
          Authorization: `Bearer ${ACCESS_TOKEN}`,
        },
      },
    }
  )
);

⚑ Mode Statis vs Dinamis

Secara default, server MCP berjalan dalam mode statis, yang berarti ia mengembalikan semua alat yang tersedia (aksi) untuk semua integrasi yang terhubung.

Dengan mode dinamis (?mode=dynamic), server hanya akan mengembalikan satu alat: enable-tools. Anda dapat menggunakan alat ini untuk secara selektif mengaktifkan alat yang benar-benar Anda butuhkan untuk sesi tersebut.

Dalam mode dinamis, implementasi Anda harus mencari tahu alat mana yang paling relevan dengan kueri pengguna. Setelah Anda mengidentifikasinya, minta LLM untuk memanggil alat enable-tools dengan daftar yang sesuai.

Ingin melihat cara kerjanya dalam praktik? Lihat Contoh Agen AI kami.

import { Client } from '@modelcontextprotocol/sdk/client/index.js';
import { StreamableHTTPClientTransport } from '@modelcontextprotocol/sdk/client/streamableHttp.js';

const client = new Client({
  name: 'example-membrane-mcp-client',
  version: '1.0.0',
});

const transport = new StreamableHTTPClientTransport(
  new URL(`https://<HOSTED_MCP_SERVER_URL>/mcp?mode=dynamic`),
  {
    requestInit: {
      headers: {
        Authorization: `Bearer ${ACCESS_TOKEN}`,
      },
    },
  }
);

await client.connect(transport);

await client.callTool({
  name: 'enable-tools',
  arguments: {
    tools: ['gmail-send-email', 'gmail-read-email'],
  },
});

πŸ”§ Mendapatkan alat untuk integrasi tertentu

Dalam mode statis, server MCP mengambil alat dari semua koneksi aktif yang terkait dengan token yang diberikan.

Anda dapat memilih untuk hanya mengambil alat untuk integrasi tertentu dengan meneruskan parameter kueri apps: /mcp?apps=google-calendar,google-docs

πŸ’¬ Manajemen Sesi Obrolan (Eksperimental)

Server MCP (hanya transport streamable-http) mendukung sesi obrolan persisten. Sertakan header x-chat-id dalam permintaan Anda untuk secara otomatis melacak sesi untuk obrolan tertentu. Ini adalah fitur eksperimental yang kami sediakan sebagai tambahan untuk sesi MCP standar.

Memulai sesi obrolan baru:

POST /mcp
Authorization: Bearer YOUR_ACCESS_TOKEN
x-chat-id: my-awesome-chat-123

Mengambil sesi obrolan Anda:

GET /mcp/sessions
Authorization: Bearer YOUR_ACCESS_TOKEN

Respons:

{
  "my-awesome-chat-123": "session-uuid-1",
  "another-chat-456": "session-uuid-2"
}

Fitur ini memungkinkan Anda menggunakan sesi yang sama untuk sebuah percakapan. Lihat Contoh Agen AI kami untuk melihat cara kerjanya dalam praktik.

Mengonfigurasi klien MCP lainnya

πŸ“ Cursor

Untuk menggunakan server ini dengan Cursor, perbarui file ~/.cursor/mcp.json:

{
  "mcpServers": {
    "membrane": {
      "url": "https://<HOSTED_MCP_SERVER_URL>/sse?token={ACCESS_TOKEN}"
    }
  }
}

Mulai ulang Cursor agar perubahan diterapkan.

πŸ€– Claude Desktop

Untuk menggunakan server ini dengan Claude, perbarui file konfigurasi (Settings > Developer > Edit Config):

{
  "mcpServers": {
    "membrane": {
      "url": "https://<HOSTED_MCP_SERVER_URL>/sse?token={ACCESS_TOKEN}"
    }
  }
}

πŸ”§ Pemecahan Masalah

  • Pastikan token akses Anda valid dan Anda membuatnya sesuai dengan instruksi ini
  • Periksa log server MCP untuk kesalahan atau masalah selama startup atau percobaan koneksi.
  • Gunakan MCP Inspector untuk pengujian dan debugging