Files
openclaw-backups/skills/vibesurf/references/config-composio.md

136 lines
3.9 KiB
Markdown

---
name: config-composio
description: Use when user asks to configure Composio API key, enable or disable Composio toolkits (Gmail, GitHub, Slack, etc.), manage app integrations, or authenticate with external services.
---
# Config Composio - Composio Integration Management
## Overview
Manage Composio API key and toolkit configurations. Enable/disable app integrations like Gmail, GitHub, Slack, and more.
## When to Use
- User needs to set up Composio API key
- User wants to enable a toolkit (Gmail, GitHub, Slack, etc.)
- User needs to disable a toolkit
- User wants to check which toolkits are available
- User needs to manage toolkit authentication (OAuth)
- User wants to configure toolkit tools selection
## API Endpoints
Base path: `$VIBESURF_ENDPOINT/api/composio`
### API Key Management
| Action | Method | Endpoint | Description |
|--------|--------|----------|-------------|
| Check Status | GET | `/api/composio/status` | Get Composio connection status |
| Verify Key | POST | `/api/composio/verify-key` | Verify and store API key |
### Toolkit Management
| Action | Method | Endpoint | Description |
|--------|--------|----------|-------------|
| List Toolkits | GET | `/api/composio/toolkits` | Get all available toolkits |
| Toggle Toolkit | POST | `/api/composio/toolkit/{slug}/toggle` | Enable/disable toolkit |
| Get Tools | GET | `/api/composio/toolkit/{slug}/tools` | Get tools for a toolkit |
| Update Tools | POST | `/api/composio/toolkit/{slug}/tools` | Update selected tools |
| Connection Status | GET | `/api/composio/toolkit/{slug}/connection-status` | Check OAuth connection |
## Request Examples
### Verify API Key
```json
POST /api/composio/verify-key
{
"api_key": "your-composio-api-key"
}
```
### Enable Toolkit
```json
POST /api/composio/toolkit/gmail/toggle
{
"enabled": true,
"force_reauth": false
}
```
### Disable Toolkit
```json
POST /api/composio/toolkit/gmail/toggle
{
"enabled": false
}
```
### Update Tool Selection
```json
POST /api/composio/toolkit/gmail/tools
{
"selected_tools": {
"GMAIL_SEND_EMAIL": true,
"GMAIL_FETCH_EMAILS": false
}
}
```
## Common Toolkits
| Toolkit | Description |
|---------|-------------|
| `gmail` | Send and receive emails |
| `github` | Repository management, PRs, issues |
| `slack` | Send messages, manage channels |
| `google_calendar` | Event management |
| `google_sheets` | Spreadsheet operations |
| `notion` | Page and database management |
| `trello` | Card and board management |
| `asana` | Task management |
| `jira` | Issue tracking |
## OAuth Flow
When enabling a toolkit that requires OAuth:
1. **Enable toolkit**`POST /api/composio/toolkit/{slug}/toggle` with `enabled: true`
2. **Check response** → If `requires_oauth: true`, an `oauth_url` is provided
3. **User authenticates** → Open `oauth_url` in browser to complete OAuth
4. **Verify connection**`GET /api/composio/toolkit/{slug}/connection-status`
## Using Composio Tools
Once toolkits are enabled, their tools become available through the `integrations` skill:
```
1. List available tools → GET /api/tool/search?keyword=composio
2. Execute tool → POST /api/tool/execute
{
"action_name": "execute_extra_tool",
"parameters": {
"tool_name": "cpo.{toolkit}.{action}",
"tool_arguments": {...}
}
}
```
## Tool Naming Convention
Composio tools follow the pattern: `cpo.{toolkit_slug}.{action_name}`
Examples:
- `cpo.gmail.GMAIL_SEND_EMAIL`
- `cpo.github.GITHUB_CREATE_PULL_REQUEST`
- `cpo.slack.SLACK_SEND_MESSAGE`
## Workflow
1. **Check API key status**`GET /api/composio/status`
2. **Set up API key** (if needed) → `POST /api/composio/verify-key`
3. **List available toolkits**`GET /api/composio/toolkits`
4. **Enable desired toolkit**`POST /api/composio/toolkit/{slug}/toggle`
5. **Complete OAuth** (if required) → Use provided `oauth_url`
6. **Use tools** → Execute via `integrations` skill