[Go to site: main page, start]

Skip to main content
Composio is an integration platform that gives agents secure access to 1,000+ toolkits and 20,000+ tools across popular applications like GitHub, Slack, Notion, and more. Agents can use Composio through MCP or direct APIs to interact with external services while Composio handles authentication, permissions, and event-driven workflows. The composio-langchain package wraps Composio tools as LangChain tools and works with LangChain’s current create_agent API.

Overview

Integration details

See the Composio JS integration docs for JavaScript and TypeScript usage.

Tool features

  • 1,000+ toolkits and 20,000+ tools: Prebuilt integrations for GitHub, Slack, Gmail, Jira, Notion, and more, available through MCP or direct APIs.
  • Authentication management: Handles OAuth flows, API keys, and authentication state.
  • Event-driven workflows: Trigger agents based on external events, such as new Slack messages or GitHub commits.
  • Fine-grained permissions: Control tool access and data exposure per user.
  • Enterprise controls: Supports governance, auditability, SSO, org-wide controls, and SOC 2 / ISO 27001:2022 certifications for enterprise security reviews.
  • Custom tool support: Add proprietary APIs and internal tools.

Setup

The integration lives in the composio-langchain package.

Credentials

You will need a Composio API key. Sign up at composio.dev to get your API key.
It’s also helpful to set up LangSmith for tracing:

Instantiation

Initialize Composio with the LangChain provider. Create a session for the user and toolkit set you want the agent to access:
session.tools() returns Composio router tools such as COMPOSIO_SEARCH_TOOLS, COMPOSIO_GET_TOOL_SCHEMAS, and COMPOSIO_MANAGE_CONNECTIONS. The agent uses these tools to discover concrete toolkit tools, inspect schemas, manage authentication, and execute actions.

Available toolkits

Composio provides toolkits for many services: See the Composio toolkits catalog for the complete list.

Invocation

Discover tools

Use session.search(...) to inspect matching concrete toolkit tools and connection status before asking an agent to execute anything:
If the toolkit is not connected, Composio will guide the agent to use COMPOSIO_MANAGE_CONNECTIONS, or you can create an authorization link yourself as shown in Authentication setup.

Low-level tool loading

For most agent workflows, prefer composio.create(...) and session.tools(). The lower-level composio.tools.get(...) API is also available when you want to load direct tool lists yourself:

Use within an agent

Here’s a complete, read-only example using Composio tools with a LangChain agent. It asks the model to inspect available GitHub profile-reading tools without mutating external state.

Authentication setup

Tools that access a user’s external account require that user to connect the corresponding toolkit. For manual authentication, create a connection request from the session:
After the user completes the authorization flow, the same user_id can use that connected account. For in-chat authentication, allow the agent to call COMPOSIO_MANAGE_CONNECTIONS when a toolkit has no active connection. The agent can then guide the user through connecting the required account before executing toolkit actions.

Multi-user scenarios

Use a stable user_id for each application user. Each user connects their own accounts, and Composio executes toolkit actions using the credentials associated with that user_id.

Event-driven workflows

Composio supports triggering agents based on external events. When events occur in connected apps, such as new GitHub commits or Slack messages, triggers can send structured payloads to your application.

Inspect trigger configuration

Before creating a trigger, inspect the required configuration:

Create a trigger

Create triggers after the relevant account is connected and you have the required configuration:

Webhooks

For production, configure webhooks in the Composio dashboard:
For more details, see the Composio triggers documentation.

Custom tools

Composio allows you to create custom tools that can be used alongside built-in tools.

API reference

For detailed documentation of Composio features and configuration options, see: