Integration App MCP Server

ทางการ

โต้ตอบกับแอปพลิเคชัน SaaS อื่นๆ ในนามของลูกค้าของคุณ

เอกสาร

Membrane MCP Server

Screenshot 2025-07-07 at 23 03 05

Membrane MCP Server เป็นเซิร์ฟเวอร์ Model Context Protocol (MCP) ที่ให้การดำเนินการสำหรับการผสานรวมที่เชื่อมต่อบน Membrane ในรูปแบบเครื่องมือ

นี่คือ ตัวอย่าง AI Agent อย่างเป็นทางการของเราที่แสดงวิธีใช้เซิร์ฟเวอร์ 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 (Server‑Sent Events)/sse🔴 เลิกใช้แล้ว — เลิกใช้ตั้งแต่วันที่ 5 พฤศจิกายน 2024 ในข้อกำหนด MCP
HTTP (Streamable HTTP)/mcp🟢 แนะนำ — แทนที่ SSE และรองรับการสตรีมแบบสองทิศทาง

🔐 การตรวจสอบสิทธิ์

ระบุ โทเค็นการเข้าถึง Membrane ผ่าน query หรือส่วนหัว Authorization:

?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}`,
        },
      },
    }
  )
);

Streamable HTTP (แนะนำ)


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

⚡ โหมดคงที่ vs โหมดไดนามิก

ตามค่าเริ่มต้น เซิร์ฟเวอร์ MCP จะทำงานใน โหมดคงที่ ซึ่งหมายความว่าจะส่งคืน เครื่องมือที่มีอยู่ทั้งหมด (การดำเนินการ) สำหรับการผสานรวมที่เชื่อมต่อทั้งหมด

ด้วย โหมดไดนามิก (?mode=dynamic) เซิร์ฟเวอร์จะส่งคืนเพียง หนึ่งเครื่องมือ: enable-tools คุณสามารถใช้เครื่องมือนี้เพื่อเลือกเปิดใช้งานเครื่องมือที่คุณต้องการจริงๆ สำหรับเซสชันนั้น

ในโหมดไดนามิก การนำไปใช้งานของคุณควรพิจารณาว่าเครื่องมือใดเกี่ยวข้องมากที่สุดกับคำถามของผู้ใช้ เมื่อคุณระบุได้แล้ว ให้แจ้ง LLM ให้เรียกเครื่องมือ enable-tools พร้อมรายการที่เหมาะสม

ต้องการดูว่าสิ่งนี้ทำงานอย่างไรในทางปฏิบัติ? ลองดู ตัวอย่าง AI Agent ของเรา

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 จะดึงเครื่องมือจากการเชื่อมต่อที่ใช้งานอยู่ทั้งหมดที่เกี่ยวข้องกับโทเค็นที่ให้ไว้

คุณสามารถเลือกดึงเฉพาะเครื่องมือสำหรับการผสานรวมเฉพาะโดยส่งพารามิเตอร์ query apps: /mcp?apps=google-calendar,google-docs

💬 การจัดการเซสชันแชท (ทดลอง)

เซิร์ฟเวอร์ MCP (เฉพาะการขนส่งแบบ streamable-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 Agent ของเราเพื่อดูว่าสิ่งนี้ทำงานอย่างไรในทางปฏิบัติ

การกำหนดค่าไคลเอนต์ MCP อื่นๆ

📝 Cursor

เพื่อใช้เซิร์ฟเวอร์นี้กับ Cursor ให้อัปเดตไฟล์ ~/.cursor/mcp.json:

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

รีสตาร์ท Cursor เพื่อให้การเปลี่ยนแปลงมีผล

🤖 Claude Desktop

เพื่อใช้เซิร์ฟเวอร์นี้กับ Claude ให้อัปเดตไฟล์การกำหนดค่า (Settings > Developer > Edit Config):

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

🔧 การแก้ไขปัญหา

  • ตรวจสอบให้แน่ใจว่าโทเค็นการเข้าถึงของคุณถูกต้องและคุณสร้างตาม คำแนะนำเหล่านี้
  • ตรวจสอบบันทึกของเซิร์ฟเวอร์ MCP เพื่อหาข้อผิดพลาดหรือปัญหาระหว่างการเริ่มต้นหรือความพยายามเชื่อมต่อ
  • ใช้ MCP Inspector สำหรับการทดสอบและการดีบัก