Integration App MCP Server for Membrane Integrations
Enable seamless integrations with the Membrane MCP server, providing actions and tools to connect, manage, and automate connected integrations.
npx -y @integration-app/mcp-serverOverview
The Integration App MCP Server is a Model Context Protocol (MCP) server implementation designed to surface actions (tools) from Membrane-connected integrations as callable tools for LLM agents and other MCP clients. It lets you expose integration-specific operations (for example: send email, create calendar events, read docs) over a single MCP endpoint so AI agents can discover and invoke them programmatically.
This server supports modern streamable HTTP transport for bidirectional streaming and a deprecated SSE transport (kept for backward compatibility). It includes features for static and dynamic tool discovery, optional per-chat persistent sessions, and simple authentication via Membrane access tokens—making it straightforward to integrate with agent frameworks and to host in your infrastructure.
Features
- Exposes tools/actions from all active Membrane connections for an access token
- Streamable HTTP transport (recommended) with bidirectional streaming
- SSE transport (deprecated in MCP spec) still supported for legacy clients
- Static mode: return all available tools for a session
- Dynamic mode: return only an enable-tools tool to selectively enable tools on demand
- Optional apps query to limit tools to specific integrations
- Experimental persistent chat sessions via x-chat-id header (streamable HTTP only)
- Dockerfile for containerized deployment and standard Node.js development workflow
Installation / Configuration
Prerequisites:
- Node.js v18+
- Membrane account and access token
Clone, install, build:
Run locally (development):
# Server runs at http://localhost:3000 by default
Run tests:
Docker:
Transports
| Transport | Endpoint | Notes |
|---|---|---|
| Streamable HTTP | /mcp | Recommended — supports bidirectional streaming and modern MCP features |
| Server-Sent Events (SSE) | /sse | Deprecated in MCP spec (since 2024-11); kept for legacy compatibility |
Authentication: pass a Membrane access token either as a query parameter (?token=ACCESS_TOKEN) or via Authorization: Bearer ACCESS_TOKEN header.
Example: Streamable HTTP client connect (Node):
;
;
;
;
await transport;
Static vs Dynamic Mode
- Static mode (default): server returns all available tools for connections associated with the provided token.
- Dynamic mode (
?mode=dynamic): server returns a singleenable-toolstool. Use this to enable only the tools relevant to the current session.
Example: request dynamic mode and then enable specific tools:
// connect to /mcp?mode=dynamic, then call:
await ;
Available Tools / Resources
The actual set of tools depends on the connected integrations for the access token — each active connection on Membrane maps to one or more tools. Typical examples:
- gmail-send-email
- gmail-read-email
- google-calendar-create-event
- google-docs-create
- slack-post-message
Use the apps query param to limit tool discovery to specific integrations:
GET /mcp?apps=google-calendar,google-docs
Chat Session Management (Experimental)
For streamable HTTP, the server can maintain a persistent chat session keyed by an x-chat-id header. This ties multiple MCP requests to the same session:
Start/continue session:
POST /mcp
Authorization: Bearer YOUR_ACCESS_TOKEN
x-chat-id: my-chat-123
List sessions:
GET /mcp/sessions
Authorization: Bearer YOUR_ACCESS_TOKEN
Response maps chat IDs to internal session UUIDs:
Use Cases
- AI assistants that need to call third-party app actions (send emails, schedule meetings, post Slack messages) without custom plumbing for each API.
- Agent orchestration where tool availability is controlled dynamically per user/session (dynamic mode + enable-tools).
- Multi-tenant MCP hosting where a single MCP server surfaces tools for different user tokens and connected apps.
- Local development and testing of agent workflows using the provided Dockerfile and dev server.
Available Resources
- GitHub: https://github.com/integration-app/mcp-server
- Membrane MCP spec: https://modelcontextprotocol.io/introduction
- Example agent using this server: refer to the AI Agent Example in Membrane repositories
If you’re new to MCP, start by running the server locally, connect an MCP client using streamable HTTP, try both static and dynamic modes, and experiment with enabling tools for a focused agent workflow.
Common Issues & Solutions
The MCP server is listed on Glama but lacks a Dockerfile, so others can't run it. The listing needs a Dockerfile added in the admin page and to pass Glama's checks.
I ran into this too! I claimed the listing using the Claim button, then went to the admin Dockerfile page for my server and pasted a minimal Dockerfile (FROM python:3.10-slim, WORKDIR /app, COPY requirements.txt ., RUN pip install -r requirements.txt, COPY . ., EXPOSE 8080, CMD ["gunicorn","-b","0.0.0.0:8080","app:app"]). I also added a HEALTHCHECK and ensured required env vars and a start command were present so Glama's automated checks would pass. After saving and fixing lint errors reported by the score page, the server build succeeded and the listing became available to others.