Skip to content

integration-app/mcp-server

Repository files navigation

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://<HOSTED_MCP_SERVER_URL>/sse?token=${ACCESS_TOKEN}`))
);

// ----- or -----

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

Streamable HTTP (Recommended)

await client.connect(
  new StreamableHTTPClientTransport(
    new URL(`https://<HOSTED_MCP_SERVER_URL>/mcp?token=${ACCESS_TOKEN}`)
  )
);

// ----- or -----

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

Cursor Configuration

To use this server with Cursor, update the ~/.cursor/mcp.json file:

{
  "mcpServers": {
    "integration-app": {
      "url": "https://<HOSTED_MCP_SERVER_URL>/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):

{
  "mcpServers": {
    "integration-app": {
      "url": "https://<HOSTED_MCP_SERVER_URL>/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
  • 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 for the full terms.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •