Integration App
官方代表您的客戶與任何其他SaaS應用程式進行互動。
你可以用 Integration App MCP 做什麼?
- 啟用特定整合工具 — 在動態模式下使用
enable-tools,僅啟用工作階段所需的動作,例如gmail-send-email。 - 依整合篩選工具 — 傳遞
apps查詢參數(例如?apps=google-calendar),以從特定已連線服務擷取工具。 - 管理持久聊天工作階段 — 加入
x-chat-id標頭,以便在對話中重複使用同一個 MCP 工作階段,並透過GET /mcp/sessions取得工作階段對應。 - 使用 Membrane 權杖進行驗證 — 透過查詢參數或
Authorization標頭提供存取權杖,以透過 SSE 或可串流 HTTP 連線至伺服器。
文件
Membrane MCP 伺服器
Membrane MCP 伺服器是一個 Model Context Protocol (MCP) 伺服器,它將 Membrane 上已連接的整合功能作為工具提供。
以下是我們的官方 AI 代理範例,展示如何在您的應用程式中使用此 MCP 伺服器。
📋 先決條件
- Node.js(v18 或更高版本)
- 一個 Membrane 帳戶
⚙️ 安裝
git clone https://github.com/membranehq/mcp-server.git
cd mcp-server
npm install
npm run build
🛠️ 本地開發
若要在本地執行開發伺服器,請使用以下指令啟動:
npm run dev
伺服器將在 http://localhost:3000 上線 ⚡️
🧪 執行測試
# Run the server in test mode
npm run start:test
# then run tests
npm test
🚀 部署
將此 MCP 伺服器的自有實例部署到您選擇的任何雲端託管服務。
🐳 Docker
此專案包含一個 Dockerfile,以便於容器化部署。
docker build -t membrane-mcp-server .
docker run -p 3000:3000 membrane-mcp-server
🔗 連接到 MCP 伺服器
此 MCP 伺服器支援兩種傳輸方式:
| 傳輸方式 | 端點 | 狀態 |
|---|---|---|
| SSE(伺服器傳送事件) | /sse | 🔴 已棄用 — 自 2024 年 11 月 5 日起在 MCP 規範中棄用 |
| HTTP(可串流的 HTTP) | /mcp | 🟢 建議使用 — 取代 SSE 並支援雙向串流 |
🔐 驗證
透過查詢參數或 Authorization 標頭提供 Membrane 存取權杖:
?token=ACCESS_TOKEN
Authorization: Bearer ACCESS_TOKEN
SSE(已棄用)
await client.connect(
new SSEClientTransport(
new URL(
`https://<HOSTED_MCP_SERVER_URL>/sse`
)
{
requestInit: {
headers: {
Authorization: `Bearer ${ACCESS_TOKEN}`,
},
},
}
)
);
可串流的 HTTP(建議使用)
await client.connect(
new StreamableHTTPClientTransport(
new URL(`https://<HOSTED_MCP_SERVER_URL>/mcp`)
{
requestInit: {
headers: {
Authorization: `Bearer ${ACCESS_TOKEN}`,
},
},
}
)
);
⚡ 靜態模式與動態模式
預設情況下,MCP 伺服器以靜態模式執行,這表示它會傳回所有已連接整合的所有可用工具(動作)。
使用動態模式(?mode=dynamic)時,伺服器只會傳回一個工具:enable-tools。您可以使用此工具選擇性地啟用該工作階段實際需要的工具。
在動態模式下,您的實作應判斷哪些工具與使用者的查詢最相關。一旦識別出來,就提示 LLM 使用適當的清單呼叫 enable-tools 工具。
想了解這在實務上如何運作嗎?請查看我們的 AI 代理範例。
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'],
},
});
🔧 取得特定整合的工具
在靜態模式下,MCP 伺服器會從與提供的權杖相關聯的所有作用中連線擷取工具。
您可以透過傳遞 apps 查詢參數,選擇僅擷取特定整合的工具:/mcp?apps=google-calendar,google-docs
💬 聊天工作階段管理(實驗性)
MCP 伺服器(僅限可串流 HTTP 傳輸)支援持續的聊天工作階段。在您的請求中包含一個 x-chat-id 標頭,即可自動追蹤該特定聊天的工作階段。這是我們除了標準 MCP 工作階段之外提供的實驗性功能。
開始新的聊天工作階段:
POST /mcp
Authorization: Bearer YOUR_ACCESS_TOKEN
x-chat-id: my-awesome-chat-123
擷取您的聊天工作階段:
GET /mcp/sessions
Authorization: Bearer YOUR_ACCESS_TOKEN
回應:
{
"my-awesome-chat-123": "session-uuid-1",
"another-chat-456": "session-uuid-2"
}
此功能讓您可以對一段對話使用相同的工作階段。請查看我們的 AI 代理範例,了解這在實務上如何運作。
設定其他 MCP 用戶端
📝 Cursor
若要將此伺服器與 Cursor 搭配使用,請更新 ~/.cursor/mcp.json 檔案:
{
"mcpServers": {
"membrane": {
"url": "https://<HOSTED_MCP_SERVER_URL>/sse?token={ACCESS_TOKEN}"
}
}
}
重新啟動 Cursor 以使變更生效。
🤖 Claude Desktop
若要將此伺服器與 Claude 搭配使用,請更新設定檔(設定 > 開發人員 > 編輯設定):
{
"mcpServers": {
"membrane": {
"url": "https://<HOSTED_MCP_SERVER_URL>/sse?token={ACCESS_TOKEN}"
}
}
}
🔧 疑難排解
- 確保您的存取權杖有效,且您是依照這些指示產生的
- 檢查 MCP 伺服器記錄,查看啟動或連線嘗試期間是否有任何錯誤或問題。
- 使用 MCP Inspector 進行測試和除錯