Composio MCP Servers

Transform any app into an MCP server with powerful tools and seamless authentication

Model Context Protocol (MCP) is an open protocol that standardizes how LLM-powered applications provide tools and relevant context to the underlying models.

The protocol follows a client-server model, where the MCP server provides the tools and context to the MCP client.

Composio MCP Servers make all Composio tools available through this standardized protocol, enabling seamless integration with any MCP-compatible client.

✨ Key Features

Our MCP SDK features an intuitive, powerful, and developer-friendly API:

  • ⚡ Streamlined Authentication - Simplified user auth flows with better error handling
  • 📊 Real-time Connection Monitoring - Check user authentication status before using servers
  • 🛠 Enhanced Tool Management - Fine-grained control over which tools are available
  • Tool Limiting - Restrict which tools are available per user or context
  • TypeScript Support - Full type safety and autocomplete, python support to come soon.

🚀 Getting Started

Choose your path based on your role:

For End Users

If you are an individual looking to use composio mcp servers directly for yourself, this is all you have todo.

  1. Visit mcp.composio.dev
  2. Click on any app that you want the MCP server for.
  3. Use with Claude Desktop, Cursor, or any MCP client

For Developers

If you are looking to build on top of composio MCP servers, have granual control over MCP servers and manage it seperately for each of your users - you can simply follow the below guide.

1

Install the SDK

$npm install @composio/core
2

Create your first server

1import { Composio } from '@composio/core';
2
3const composio = new Composio({
4 apiKey: process.env.COMPOSIO_API_KEY,
5});
6
7const mcpServer = await composio.mcp.create({
8 name: "personal-gmail-server",
9 serverConfig: [
10 {
11 authConfigId: "your_auth_config_id",
12 allowedTools: ["GMAIL_FETCH_EMAILS"]
13 }
14 ],
15 options: {
16 isChatAuth: true
17 }
18});
3

Generate user-specific URLs

1// Check if user is authenticated
2const status = await composio.mcp.getUserConnectionStatus({
3 id: mcpServer.id,
4 userId: "user@example.com"
5});
6
7if (status.connected) {
8 const urls = await mcpServer.getServer({
9 userId: "user@example.com"
10 });
11 console.log("Ready to use:", urls);
12}

🏗 Architecture Overview

  1. Your Application creates and manages MCP servers via the Composio SDK
  2. MCP Servers expose your chosen tools with proper authentication
  3. MCP Clients (Claude, Cursor, etc.) connect to servers and use tools
  4. Users interact with tools through their preferred MCP client

📚 Documentation Structure

Need help getting started? Reach out on Slack or email - our team is here to help!