← プロジェクト一覧に戻る

composio

1000を超えるアプリの操作を認証込みで提供する、Composio側で動くツール基盤

公式MIT
スター
29.9k
フォーク
4.8k
オープンIssue
71
最終コミット
2026年8月28日

composioとは

外部サービスをエージェントに触らせるとき、いちばん手間がかかるのは認可の取得と失効したトークンの更新ですが、Composioはそこを丸ごと引き受けます。利用者ごとにセッションを作ると、既定ではツール定義を大量に読み込ませる代わりに、探す・つなぐ・実行するためのメタツールだけがモデルに渡り、必要なものを実行時に見つけさせる形になります。SlackやGitHubの出来事を署名付きWebhookで受け取る仕組みや、エージェントがPythonを書いて動かせるサンドボックスも、同じセッションに紐づきます。代償は、その仕組み一式が自分のものではないことです。1000を超える連携を自作せずに済む代わりに、どれ一つ自分で手を入れられません。

composioで何ができますか?

  • 認証は利用者に渡すリンク1本で片付く — アカウントが必要になるとセッションが接続用リンクを発行し、利用者はその先でGoogleやGitHubなど各サービス自身のログイン画面に進みます。取得した接続情報はComposio側で利用者IDに紐づけて保存・更新され、自社アプリやモデルを認証情報が通ることはないと説明されています。
  • アプリごとの操作が名前付きで並ぶ — ツールはGITHUB_CREATE_ISSUEやGMAIL_FETCH_EMAILSのようにアプリ名と操作名で命名され、それぞれ引数の形と戻り値の形が定義されています。ドキュメントに載るツールキットは1181件、Gmailだけでも50を超えるツールがあり、APIリファレンスを読む代わりに一覧から選ぶ作業になります。
  • ツール定義を全部渡さず、実行時に探させる — 既定のセッションがモデルに渡すのは、探す・つなぐ・実行するためのメタツールだけで、カタログ全体がコンテキストを埋めることはありません。セッションIDを保存しておけば次のやり取りでも同じセッションを開き直せます。使うツールが決まっているなら、DIRECT_TOOLSの設定で先に読み込ませることもできます。
  • セッションが触れる範囲を先に絞る — ツールキット単位での有効化・無効化に加えて、その中の個別ツールを列挙したり、読み取り専用や破壊的といった振る舞いの目印で絞り込んだりできます。ツールキットを指定しないセッションはカタログ全体を実行時に探せてしまうため、早めに絞っておくのが安全です。
  • アプリ側の出来事を署名付きWebhookで受け取る — トリガーの届け先はプロジェクトごとに1つ登録するWebhook URLで、Composioが署名を付けて送るため受信側で検証できます。Slackのようにサービス側が即時に押し出す種類と、Gmailのように定期取得する種類があり、後者はComposioの管理する認証では最大15分ほど遅れると説明されています。
  • MCPでもターミナルからでも呼べる — セッションはMCPのエンドポイントも公開でき、ClaudeやCursorなどのクライアントからアダプタなしで接続できます。ただしこの経路では実行前後のフックや自分のプロセス内で定義したツールは動かないと明示されています。ターミナル用のcomposioコマンドもあり、検索・実行・アカウント接続をそのまま行えます。

composioを選ぶ前に

  • 公開されているのはSDKとアダプタとCLIだけで、ツール本体・保存された認証情報・サンドボックスはComposioのサーバー上で動き、自社クラウドでの運用はEnterpriseの個別相談になります。
  • 利用量は従量課金で、2026年8月時点の無料枠は月10万ツール呼び出しと5万トリガーイベント、超過分は月29ドルのProプランで1呼び出し0.0003ドルとされています。
  • 各アプリとの連携はComposio側が直すもので自分では手を入れられず、Googleドライブのフォルダ作成、Basecamp全体、YouTubeの動画投稿の不具合は2026年8月時点で未解決のままでした。報告#3860#3809

スター推移

8月17日〜8月28日 · +182

29.7k29.9k

よくある質問

composioは商用利用できますか?

composioはMITライセンスで公開されています。OSI承認のオープンソースライセンスで、商用利用が認められています。

composioはどの形で使えますか?

composioはマネージドクラウドの形で利用できます。

ドキュメント

ComposioHQ/composio のREADMEより転載(MIT)。 原文を読む ↗

Composio

Composio gives your AI agents 1000+ pre-authenticated toolkits, per-user sessions, authentication, triggers, and a sandbox, so you can ship agents that turn intent into action.

This is the Composio SDK monorepo. It contains:

  • @composio/core: TypeScript SDK
  • composio: Python SDK
  • composio CLI: search, execute, and script tools from your shell
  • Provider adapters for OpenAI Agents, Claude Agent SDK, Vercel AI SDK, LangChain, and more

Quickstart

Create a session for a user, hand its tools to your agent, and let the agent take action across 1000+ apps. Grab a COMPOSIO_API_KEY from the dashboard first.

TypeScript

npm install @composio/core @composio/openai-agents @openai/agents

@composio/core intentionally packages its TypeScript source and SDK docs so the installed package is inspectable to coding agents. If you want a smaller install with the same API, use @composio/slim.

import { Composio } from "@composio/core";
import { OpenAIAgentsProvider } from "@composio/openai-agents";
import { Agent, run } from "@openai/agents";

const composio = new Composio({ provider: new OpenAIAgentsProvider() });

// Each session is scoped to one of your users
const session = await composio.create("user_123");
const tools = await session.tools();

const agent = new Agent({
  name: "Personal Assistant",
  instructions: "You are a helpful assistant. Use Composio tools to take action.",
  tools,
});

const result = await run(agent, "Summarize my emails from today");
console.log(result.finalOutput);

Python

pip install composio composio-openai-agents openai-agents
from composio import Composio
from composio_openai_agents import OpenAIAgentsProvider
from agents import Agent, Runner

composio = Composio(provider=OpenAIAgentsProvider())

# Each session is scoped to one of your users
session = composio.create(user_id="user_123")
tools = session.tools()

agent = Agent(
    name="Personal Assistant",
    instructions="You are a helpful assistant. Use Composio tools to take action.",
    tools=tools,
)

result = Runner.run_sync(starting_agent=agent, input="Summarize my emails from today")
print(result.final_output)

By default a session gets meta tools that discover, authenticate, and execute app tools at runtime, so you don’t load hundreds of tool definitions into context. Store session.session_id and reuse it with composio.use() across turns. See what a session is and configuring sessions for restricting toolkits, auth configs, and connected accounts.

Prefer MCP? Every session also exposes a hosted MCP endpoint. Pass mcp: true to composio.create() and point Claude, Cursor, or any MCP client at session.mcp.url. See sessions via MCP.

CLI

The composio CLI runs Composio from your shell and gives coding agents like Claude Code a local tool surface.

curl -fsSL https://composio.dev/install | sh

The installer puts composio on your PATH for future terminals. Open a new terminal, then run composio login. See INSTALL.md for shell setup overrides, including COMPOSIO_INSTALL_SHELL=none for install-only runs.

Use composio search to find tools, composio execute to run them, composio link to connect accounts, and composio run to script workflows in TypeScript. See the CLI docs.

Providers

A provider adapts Composio tools to your agent framework’s native tool format:

ProviderTypeScriptPython
OpenAI@composio/openaicomposio-openai
OpenAI Agents@composio/openai-agentscomposio-openai-agents
Anthropic@composio/anthropiccomposio-anthropic
Claude Agent SDK@composio/claude-agent-sdkcomposio-claude-agent-sdk
Vercel AI SDK@composio/vercel—
Google GenAI@composio/googlecomposio-gemini, composio-google
Google ADK—composio-google-adk
LangChain@composio/langchaincomposio-langchain
LangGraphvia @composio/langchaincomposio-langgraph
LlamaIndex@composio/llamaindexcomposio-llamaindex
Mastra@composio/mastra—
Pi@composio/experimental*—
Cloudflare Workers AI@composio/cloudflare—
CrewAI—composio-crewai
AutoGen—composio-autogen

* The Pi provider is experimental and ships from @composio/experimental.

Don’t see your framework? Build a custom provider, or skip providers entirely and connect over MCP.

All packages

Everything published from this repo:

PackageDescription
@composio/coreTypeScript SDK
@composio/slim@composio/core without packaged source or docs; same API, smaller install
composio CLIStandalone CLI binary: curl -fsSL https://composio.dev/install | sh
@composio/experimentalExperimental integrations, including the Pi provider
@composio/json-schema-to-zodJSON Schema to Zod conversion
@composio/* provider adaptersOpenAI, OpenAI Agents, Anthropic, Claude Agent SDK, Vercel, Google, LangChain, LlamaIndex, Mastra, Cloudflare
composioPython SDK
composio-* provider adaptersOpenAI, OpenAI Agents, Anthropic, Claude Agent SDK, Gemini, Google, Google ADK, LangChain, LangGraph, LlamaIndex, CrewAI, AutoGen

Repository layout

ts/                TypeScript SDK workspace
  packages/core/       @composio/core
  packages/providers/  Provider adapters
  packages/cli/        Composio CLI
python/            Python SDK and provider packages
docs/              Documentation site (docs.composio.dev)

The TypeScript SDK is tested against Node 22+; the Python SDK supports Python 3.10+.

Development

mise install    # pinned toolchain (Node, Python, pnpm)
pnpm install
pnpm build
pnpm test

Python commands run from python/; see python/README.md. We welcome contributions to both SDKs; read the contribution guidelines before submitting pull requests.

Support