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 伺服器

Screenshot 2025-07-07 at 23 03 05

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 進行測試和除錯