136 lines
3.9 KiB
Markdown
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
|