Integration App MCP Server
官方代表您的客户与任何其他SaaS应用进行交互。
文档
Membrane MCP 服务器
Membrane MCP 服务器是一个模型上下文协议 (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 进行测试和调试