Integration App MCP Server
resmiBerinteraksi dengan aplikasi SaaS lainnya atas nama pelanggan Anda.
Dokumentasi
Server MCP Membrane
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:
| Transport | Endpoint | Status |
|---|---|---|
| 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