Skip to content

Commit ee1bc98

Browse files
authored
Merge branch 'next' into abir/docs-v31-customs-use-attach
2 parents e0be19a + a036e58 commit ee1bc98

139 files changed

Lines changed: 30310 additions & 17319 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.changeset/beeper-imessage-local-tools.md

Lines changed: 0 additions & 5 deletions
This file was deleted.

.changeset/chrome-devtools-local-tools.md

Lines changed: 0 additions & 5 deletions
This file was deleted.

.changeset/cli-local-tools.md

Lines changed: 0 additions & 6 deletions
This file was deleted.

.changeset/fix-mastra-ref-dereference.md

Lines changed: 0 additions & 10 deletions
This file was deleted.

.changeset/peekaboo-local-tools.md

Lines changed: 0 additions & 5 deletions
This file was deleted.

.changeset/sdk-link-auth-migration.md

Lines changed: 0 additions & 11 deletions
This file was deleted.

docs/bun.lock

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 214 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,214 @@
1+
---
2+
title: "Sessions add preloaded tools and direct tools preset"
3+
description: "Sessions can now expose frequently used tools directly from session.tools(), and specialized agents can use a direct tools preset with selected meta tools enabled as needed."
4+
date: "2026-05-07"
5+
---
6+
7+
Sessions now support preloading frequently used tools into `session.tools()` and
8+
the session MCP tool list, so agents can call them without searching each time.
9+
This works for Composio-managed tools, while SDK custom tools can be exposed
10+
directly from `session.tools()` with `preload: true`.
11+
12+
Keep the preloaded set focused, generally fewer than 20 tools, to avoid context
13+
bloat.
14+
15+
### SDK versions
16+
17+
| SDK | Minimum version |
18+
| --- | --- |
19+
| TypeScript `@composio/core` | `0.9.0` |
20+
| Python `composio` | `0.13.0` |
21+
22+
<Tabs groupId="language" items={['Python', 'TypeScript']} persist>
23+
<Tab value="Python">
24+
```python
25+
from composio import Composio
26+
from composio_openai_agents import OpenAIAgentsProvider
27+
28+
composio = Composio(
29+
api_key="your_api_key",
30+
provider=OpenAIAgentsProvider(),
31+
)
32+
33+
session = composio.create(
34+
user_id="user_123",
35+
toolkits=["gmail"],
36+
preload={
37+
"tools": ["GMAIL_FETCH_EMAILS", "GMAIL_CREATE_EMAIL_DRAFT"],
38+
},
39+
)
40+
41+
tools = session.tools()
42+
print([tool.name for tool in tools])
43+
# GMAIL_FETCH_EMAILS
44+
# GMAIL_CREATE_EMAIL_DRAFT
45+
# COMPOSIO_SEARCH_TOOLS
46+
# ... other default meta tools
47+
```
48+
</Tab>
49+
<Tab value="TypeScript">
50+
```typescript
51+
import { Composio } from '@composio/core';
52+
import { OpenAIAgentsProvider } from '@composio/openai-agents';
53+
54+
const composio = new Composio({
55+
apiKey: 'your_api_key',
56+
provider: new OpenAIAgentsProvider(),
57+
});
58+
59+
const session = await composio.create('user_123', {
60+
toolkits: ['gmail'],
61+
preload: {
62+
tools: ['GMAIL_FETCH_EMAILS', 'GMAIL_CREATE_EMAIL_DRAFT'],
63+
},
64+
});
65+
66+
const tools = await session.tools();
67+
console.log(tools.map((tool) => tool.name));
68+
// GMAIL_FETCH_EMAILS
69+
// GMAIL_CREATE_EMAIL_DRAFT
70+
// COMPOSIO_SEARCH_TOOLS
71+
// ... other default meta tools
72+
```
73+
</Tab>
74+
</Tabs>
75+
76+
### Direct tools preset
77+
78+
Specialized agents with a narrow tool set can use the direct tools preset to
79+
load every tool allowed by session filters into the session's tool list and
80+
disable session meta tools by default.
81+
82+
<Tabs groupId="language" items={['Python', 'TypeScript']} persist>
83+
<Tab value="Python">
84+
```python
85+
from composio import Composio, SESSION_PRESET_DIRECT_TOOLS
86+
from composio_openai_agents import OpenAIAgentsProvider
87+
88+
composio = Composio(
89+
api_key="your_api_key",
90+
provider=OpenAIAgentsProvider(),
91+
)
92+
93+
session = composio.create(
94+
user_id="user_123",
95+
toolkits=["gmail"],
96+
tools={
97+
"gmail": {
98+
"enable": ["GMAIL_FETCH_EMAILS", "GMAIL_CREATE_EMAIL_DRAFT"],
99+
},
100+
},
101+
session_preset=SESSION_PRESET_DIRECT_TOOLS,
102+
)
103+
104+
tools = session.tools()
105+
print([tool.name for tool in tools])
106+
# GMAIL_FETCH_EMAILS
107+
# GMAIL_CREATE_EMAIL_DRAFT
108+
```
109+
</Tab>
110+
<Tab value="TypeScript">
111+
```typescript
112+
import { Composio, SessionPreset } from '@composio/core';
113+
import { OpenAIAgentsProvider } from '@composio/openai-agents';
114+
115+
const composio = new Composio({
116+
apiKey: 'your_api_key',
117+
provider: new OpenAIAgentsProvider(),
118+
});
119+
120+
const session = await composio.create('user_123', {
121+
toolkits: ['gmail'],
122+
tools: {
123+
gmail: {
124+
enable: ['GMAIL_FETCH_EMAILS', 'GMAIL_CREATE_EMAIL_DRAFT'],
125+
},
126+
},
127+
sessionPreset: SessionPreset.DIRECT_TOOLS,
128+
});
129+
130+
const tools = await session.tools();
131+
console.log(tools.map((tool) => tool.name));
132+
// GMAIL_FETCH_EMAILS
133+
// GMAIL_CREATE_EMAIL_DRAFT
134+
```
135+
</Tab>
136+
</Tabs>
137+
138+
For agents that still need selected helper behavior, supported meta tool groups
139+
can be enabled alongside the preset:
140+
141+
<Tabs groupId="language" items={['Python', 'TypeScript']} persist>
142+
<Tab value="Python">
143+
```python
144+
from composio import Composio, SESSION_PRESET_DIRECT_TOOLS
145+
from composio_openai_agents import OpenAIAgentsProvider
146+
147+
composio = Composio(
148+
api_key="your_api_key",
149+
provider=OpenAIAgentsProvider(),
150+
)
151+
152+
session = composio.create(
153+
user_id="user_123",
154+
toolkits=["gmail"],
155+
tools={
156+
"gmail": {
157+
"enable": ["GMAIL_FETCH_EMAILS", "GMAIL_CREATE_EMAIL_DRAFT"],
158+
},
159+
},
160+
session_preset=SESSION_PRESET_DIRECT_TOOLS,
161+
manage_connections={"enable": True},
162+
workbench={"enable": True},
163+
)
164+
165+
tools = session.tools()
166+
print([tool.name for tool in tools])
167+
# GMAIL_FETCH_EMAILS
168+
# GMAIL_CREATE_EMAIL_DRAFT
169+
# COMPOSIO_MANAGE_CONNECTIONS
170+
# COMPOSIO_REMOTE_WORKBENCH
171+
# COMPOSIO_REMOTE_BASH_TOOL
172+
```
173+
</Tab>
174+
<Tab value="TypeScript">
175+
```typescript
176+
import { Composio, SessionPreset } from '@composio/core';
177+
import { OpenAIAgentsProvider } from '@composio/openai-agents';
178+
179+
const composio = new Composio({
180+
apiKey: 'your_api_key',
181+
provider: new OpenAIAgentsProvider(),
182+
});
183+
184+
const session = await composio.create('user_123', {
185+
toolkits: ['gmail'],
186+
tools: {
187+
gmail: {
188+
enable: ['GMAIL_FETCH_EMAILS', 'GMAIL_CREATE_EMAIL_DRAFT'],
189+
},
190+
},
191+
sessionPreset: SessionPreset.DIRECT_TOOLS,
192+
manageConnections: {
193+
enable: true,
194+
},
195+
workbench: {
196+
enable: true,
197+
},
198+
});
199+
200+
const tools = await session.tools();
201+
console.log(tools.map((tool) => tool.name));
202+
// GMAIL_FETCH_EMAILS
203+
// GMAIL_CREATE_EMAIL_DRAFT
204+
// COMPOSIO_MANAGE_CONNECTIONS
205+
// COMPOSIO_REMOTE_WORKBENCH
206+
// COMPOSIO_REMOTE_BASH_TOOL
207+
```
208+
</Tab>
209+
</Tabs>
210+
211+
See [Preloading tools](/docs/configuring-sessions#preloading-tools),
212+
[Direct tools preset](/docs/configuring-sessions#direct-tools-preset), and
213+
[Preloading custom tools](/docs/toolkits/custom-tools-and-toolkits#preloading-custom-tools)
214+
for Python examples and full guidance.
Lines changed: 110 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,110 @@
1+
---
2+
title: Claude Code Plugin
3+
description: Install Composio in Claude Code as a plugin — connect 1000+ apps with managed OAuth and ready-made skills.
4+
keywords: [claude code, plugin, marketplace, mcp, composio connect, skills]
5+
---
6+
7+
The **Composio plugin for Claude Code** bundles the Composio Connect MCP server with a set of opinionated skills, so Claude Code can search, connect, and act across 1000+ apps right after install. Authentication is fully managed — no API key handling, no manual MCP config.
8+
9+
<Callout type="info">
10+
Looking for the API-key based MCP setup (or other clients like Cursor, Codex, Claude Desktop)? See [Composio Connect](/docs/composio-connect).
11+
</Callout>
12+
13+
## What you get
14+
15+
The plugin ships two things together:
16+
17+
- **Composio Connect MCP server** — the same gateway documented in [Composio Connect](/docs/composio-connect), pre-configured. Auth is handled via in-flow OAuth, so you don't paste API keys into your config.
18+
- **Bundled skills** — pre-written prompts that show Claude how to use the MCP server effectively:
19+
- **`composio-mcp`** — reference for the 7 meta-tools (`COMPOSIO_SEARCH_TOOLS`, `COMPOSIO_MANAGE_CONNECTIONS`, etc.) and the recommended search → connect → execute flow.
20+
- **`onboarding`** — interactive setup that asks what you want to automate, recommends 2–4 apps, and walks you through connecting them.
21+
- **`company-activity-summary`** — cross-app activity summary across Slack, GitHub, Notion, Linear, Gmail, and more.
22+
- **`prefer-composio`** — routing skill that tells Claude to reach for Composio first whenever you paste an app URL or mention an external service, so you don't end up using less reliable native connectors.
23+
24+
## Install
25+
26+
<Steps>
27+
<Step>
28+
<StepTitle>Add the Composio marketplace</StepTitle>
29+
30+
In Claude Code, run:
31+
32+
```bash
33+
/plugin marketplace add ComposioHQ/composio-plugin-cc
34+
```
35+
36+
This registers the catalog. No plugins are installed yet.
37+
38+
</Step>
39+
<Step>
40+
<StepTitle>Install the Composio plugin</StepTitle>
41+
42+
```bash
43+
/plugin install composio-mcp@composio
44+
```
45+
46+
Restart Claude Code (or run `/reload-plugins`) when prompted.
47+
48+
</Step>
49+
<Step>
50+
<StepTitle>Connect your first app</StepTitle>
51+
52+
Ask Claude something that needs an external service — for example: *"Star `composiohq/composio` on GitHub"* — and Claude will run the `onboarding` skill, walk you through connecting GitHub, and execute the action. Subsequent runs reuse the same connection.
53+
54+
</Step>
55+
</Steps>
56+
57+
## Team setup
58+
59+
To pre-install the plugin for everyone on your team, add this to your project's `.claude/settings.json`:
60+
61+
```json title=".claude/settings.json"
62+
{
63+
"extraKnownMarketplaces": {
64+
"composio": {
65+
"source": {
66+
"source": "github",
67+
"repo": "ComposioHQ/composio-plugin-cc"
68+
}
69+
}
70+
},
71+
"enabledPlugins": {
72+
"composio-mcp@composio": true
73+
}
74+
}
75+
```
76+
77+
Anyone who clones the repo and opens it in Claude Code will be prompted to enable the plugin. See the Claude Code [plugin scopes](https://docs.claude.com/en/docs/claude-code/plugins-reference#plugin-installation-scopes) reference for `user` vs `project` vs `local` scope behavior.
78+
79+
## Updating
80+
81+
The plugin is versioned via the `version` field in its `plugin.json`. To pull the latest release:
82+
83+
```bash
84+
/plugin marketplace update composio
85+
/reload-plugins
86+
```
87+
88+
## How it differs from the API-key MCP setup
89+
90+
Both paths give Claude Code access to the same Composio Connect MCP server and the same 1000+ apps. The differences:
91+
92+
| | Plugin install | `claude mcp add` |
93+
|---|---|---|
94+
| Setup steps | Two slash commands | One terminal command, requires copying an API key |
95+
| Auth | OAuth, no API key in your config | API key in `--header "x-consumer-api-key: ..."` |
96+
| Bundled skills | Yes (onboarding, routing, summaries) | No |
97+
| Discoverable in Claude Code marketplace | Yes | No |
98+
| Updates | `/plugin marketplace update composio` | Manual re-run of `claude mcp add` |
99+
100+
Pick the plugin path if you want the fastest install and the bundled skills. Pick the `claude mcp add` path if you already have an API key and want a single-command setup script you can replicate across machines.
101+
102+
## Source code
103+
104+
The plugin is open source: [ComposioHQ/composio-plugin-cc](https://github.com/ComposioHQ/composio-plugin-cc). Issues and PRs welcome.
105+
106+
## Troubleshooting
107+
108+
For tools-not-appearing, OAuth, and connection issues, see the [Composio Connect troubleshooting section](/docs/composio-connect#troubleshooting). The same checks apply to the plugin install (the underlying MCP server is identical).
109+
110+
For plugin-specific issues — install errors, marketplace not updating, skills not appearing — see the [Claude Code plugin troubleshooting docs](https://docs.claude.com/en/docs/claude-code/plugins-reference#common-issues).

0 commit comments

Comments
 (0)