By integration-appCreated 16 days ago
starstarstarstarstar

Interact with any SaaS applications on behalf of your customers.

Visit Project
Share this MCP:
X (Formerly Twitter)RedditblueskyThreads by Instagram

Category

Official MCP Server

Tags

Integration AppSaas IntegrationMcp ServerModel Context Protocol

Integration App MCP Server

The Integration App MCP Server is a Model Context Protocol (MCP) server, it provides actions for connected integrations as tools.

For implementing your application, see our example AI Chat Agent:

Prerequisites

Installation

git clone https://github.com/integration-app/mcp-server.git
cd mcp-server
npm install
npm run build

Local Development

To run the server locally, start it with:

npm start

Access it at http://localhost:3000

Deployment

Ideally, you'd want to deploy your own instance of this MCP server to any cloud hosting service of your choice.

Docker

The project includes a Dockerfile for easy containerized deployment.

docker build -t integration-app-mcp-server .
docker run -p 3000:3000 integration-app-mcp-server

Connecting to the MCP server

This MCP server support two transports:

Transport Endpoint Status
SSE (Server‑Sent Events) /sse 🔴 Deprecated — deprecated as of November 5, 2024 in MCP spec
HTTP (Streamable HTTP) /mcp 🟢 Recommended — replaces SSE and supports bidirectional streaming

Authentication

Provide an Integration.app access token via query or header:

?token=ACCESS_TOKEN
Authorization: Bearer ACCESS_TOKEN

SSE (Deprecated)

await client.connect(
  new SSEClientTransport(new URL(`https:///sse?token=${ACCESS_TOKEN}`)) ); // ----- or ----- await client.connect( new SSEClientTransport( new URL( `https:///sse` ) { requestInit: { headers: { Authorization: `Bearer ${ACCESS_TOKEN}`, }, }, } ) ); ``` **Streamable HTTP** (Recommended) ```js await client.connect( new StreamableHTTPClientTransport( new URL(`https:///mcp?token=${ACCESS_TOKEN}`) ) ); // ----- or ----- await client.connect( new StreamableHTTPClientTransport( new URL(`https:///mcp`) { requestInit: { headers: { Authorization: `Bearer ${ACCESS_TOKEN}`, }, }, } ) ); ``` #### Cursor Configuration To use this server with Cursor, update the `~/.cursor/mcp.json` file: ```json { "mcpServers": { "integration-app": { "url": "https:///sse?token={ACCESS_TOKEN}" } } } ``` Restart Cursor for the changes to take effect. #### Claude Desktop Configuration To use this server with Claude, update the config file (Settings > Developer > Edit Config): ```json { "mcpServers": { "integration-app": { "url": "https:///sse?token={ACCESS_TOKEN}" } } } ``` ### Integration Scoping By default, the MCP server fetches tools from all active connections associated with the provided token. You can also get tools for a specific integration by passing the `integrationKey` query parameter: `/mcp?token={ACCESS_TOKEN}&integrationKey=google-calendar` ## Troubleshooting - Ensure your access token is valid and you're generating it according to [these instructions](https://docs.integration.app/docs/authentication#access-token) - Check the MCP server logs for any errors or issues during startup or connection attempts. - Verify that your server is running with `/` endpoint. ## License This project is licensed under the terms of the ISC open source license. Please refer to [ISC](https://opensource.org/license/isc-license-txt) for the full terms.