Adds pre-built workflow skills for 78 SaaS apps across 16 categories: CRM, project management, communication, email, code/DevOps, storage, spreadsheets, calendar, social media, marketing, support, e-commerce, design, analytics, HR, and automation platforms. Each skill includes: - Real tool slugs discovered from Composio's RUBE_SEARCH_TOOLS API - Step-by-step workflow sequences with [Prerequisite/Required/Optional] tags - Key parameter documentation with format guidance - Known pitfalls from actual API behavior - Quick reference tables for all available tools - Setup instructions for Rube MCP connection Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
176 lines
5.6 KiB
Markdown
176 lines
5.6 KiB
Markdown
---
|
|
name: linear-automation
|
|
description: Automate Linear tasks via Rube MCP (Composio): issues, projects, cycles, teams, labels. Always search tools first for current schemas.
|
|
requires:
|
|
mcp: [rube]
|
|
---
|
|
|
|
# Linear Automation via Rube MCP
|
|
|
|
Automate Linear operations through Composio's Linear toolkit via Rube MCP.
|
|
|
|
## Prerequisites
|
|
|
|
- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)
|
|
- Active Linear connection via `RUBE_MANAGE_CONNECTIONS` with toolkit `linear`
|
|
- Always call `RUBE_SEARCH_TOOLS` first to get current tool schemas
|
|
|
|
## Setup
|
|
|
|
1. Verify Rube MCP is available by confirming `RUBE_SEARCH_TOOLS` responds
|
|
2. Call `RUBE_MANAGE_CONNECTIONS` with toolkit `linear`
|
|
3. If connection is not ACTIVE, follow the returned auth link to complete Linear OAuth
|
|
4. Confirm connection status shows ACTIVE before running any workflows
|
|
|
|
## Core Workflows
|
|
|
|
### 1. Manage Issues
|
|
|
|
**When to use**: User wants to create, search, update, or list Linear issues
|
|
|
|
**Tool sequence**:
|
|
1. `LINEAR_GET_ALL_LINEAR_TEAMS` - Get team IDs [Prerequisite]
|
|
2. `LINEAR_LIST_LINEAR_STATES` - Get workflow states for a team [Prerequisite]
|
|
3. `LINEAR_CREATE_LINEAR_ISSUE` - Create a new issue [Optional]
|
|
4. `LINEAR_SEARCH_ISSUES` / `LINEAR_LIST_LINEAR_ISSUES` - Find issues [Optional]
|
|
5. `LINEAR_GET_LINEAR_ISSUE` - Get issue details [Optional]
|
|
6. `LINEAR_UPDATE_ISSUE` - Update issue properties [Optional]
|
|
|
|
**Key parameters**:
|
|
- `team_id`: Team ID (required for creation)
|
|
- `title`: Issue title
|
|
- `description`: Issue description (Markdown supported)
|
|
- `state_id`: Workflow state ID
|
|
- `assignee_id`: Assignee user ID
|
|
- `priority`: 0 (none), 1 (urgent), 2 (high), 3 (medium), 4 (low)
|
|
- `label_ids`: Array of label IDs
|
|
|
|
**Pitfalls**:
|
|
- Team ID is required when creating issues; use GET_ALL_LINEAR_TEAMS first
|
|
- State IDs are team-specific; use LIST_LINEAR_STATES with the correct team
|
|
- Priority uses integer values 0-4, not string names
|
|
|
|
### 2. Manage Projects
|
|
|
|
**When to use**: User wants to create or update Linear projects
|
|
|
|
**Tool sequence**:
|
|
1. `LINEAR_LIST_LINEAR_PROJECTS` - List existing projects [Optional]
|
|
2. `LINEAR_CREATE_LINEAR_PROJECT` - Create a new project [Optional]
|
|
3. `LINEAR_UPDATE_LINEAR_PROJECT` - Update project details [Optional]
|
|
|
|
**Key parameters**:
|
|
- `name`: Project name
|
|
- `description`: Project description
|
|
- `team_ids`: Array of team IDs associated with the project
|
|
- `state`: Project state (e.g., 'planned', 'started', 'completed')
|
|
|
|
**Pitfalls**:
|
|
- Projects span teams; they can be associated with multiple teams
|
|
|
|
### 3. Manage Cycles
|
|
|
|
**When to use**: User wants to work with Linear cycles (sprints)
|
|
|
|
**Tool sequence**:
|
|
1. `LINEAR_GET_ALL_LINEAR_TEAMS` - Get team ID [Prerequisite]
|
|
2. `LINEAR_GET_CYCLES_BY_TEAM_ID` / `LINEAR_LIST_LINEAR_CYCLES` - List cycles [Required]
|
|
|
|
**Key parameters**:
|
|
- `team_id`: Team ID for cycle operations
|
|
- `number`: Cycle number
|
|
|
|
**Pitfalls**:
|
|
- Cycles are team-specific; always scope by team_id
|
|
|
|
### 4. Manage Labels and Comments
|
|
|
|
**When to use**: User wants to create labels or comment on issues
|
|
|
|
**Tool sequence**:
|
|
1. `LINEAR_CREATE_LINEAR_LABEL` - Create a new label [Optional]
|
|
2. `LINEAR_CREATE_LINEAR_COMMENT` - Comment on an issue [Optional]
|
|
3. `LINEAR_UPDATE_LINEAR_COMMENT` - Edit a comment [Optional]
|
|
|
|
**Key parameters**:
|
|
- `name`: Label name
|
|
- `color`: Label color (hex)
|
|
- `issue_id`: Issue ID for comments
|
|
- `body`: Comment body (Markdown)
|
|
|
|
**Pitfalls**:
|
|
- Labels can be team-scoped or workspace-scoped
|
|
- Comment body supports Markdown formatting
|
|
|
|
### 5. Custom GraphQL Queries
|
|
|
|
**When to use**: User needs advanced queries not covered by standard tools
|
|
|
|
**Tool sequence**:
|
|
1. `LINEAR_RUN_QUERY_OR_MUTATION` - Execute custom GraphQL [Required]
|
|
|
|
**Key parameters**:
|
|
- `query`: GraphQL query or mutation string
|
|
- `variables`: Variables for the query
|
|
|
|
**Pitfalls**:
|
|
- Requires knowledge of Linear's GraphQL schema
|
|
- Rate limits apply to GraphQL queries
|
|
|
|
## Common Patterns
|
|
|
|
### ID Resolution
|
|
|
|
**Team name -> Team ID**:
|
|
```
|
|
1. Call LINEAR_GET_ALL_LINEAR_TEAMS
|
|
2. Find team by name in response
|
|
3. Extract id field
|
|
```
|
|
|
|
**State name -> State ID**:
|
|
```
|
|
1. Call LINEAR_LIST_LINEAR_STATES with team_id
|
|
2. Find state by name
|
|
3. Extract id field
|
|
```
|
|
|
|
### Pagination
|
|
|
|
- Linear tools return paginated results
|
|
- Check for pagination cursors in responses
|
|
- Pass cursor to next request for additional pages
|
|
|
|
## Known Pitfalls
|
|
|
|
**Team Scoping**:
|
|
- Issues, states, and cycles are team-specific
|
|
- Always resolve team_id before creating issues
|
|
|
|
**Priority Values**:
|
|
- 0 = No priority, 1 = Urgent, 2 = High, 3 = Medium, 4 = Low
|
|
- Use integer values, not string names
|
|
|
|
## Quick Reference
|
|
|
|
| Task | Tool Slug | Key Params |
|
|
|------|-----------|------------|
|
|
| List teams | LINEAR_GET_ALL_LINEAR_TEAMS | (none) |
|
|
| Create issue | LINEAR_CREATE_LINEAR_ISSUE | team_id, title, description |
|
|
| Search issues | LINEAR_SEARCH_ISSUES | query |
|
|
| List issues | LINEAR_LIST_LINEAR_ISSUES | team_id, filters |
|
|
| Get issue | LINEAR_GET_LINEAR_ISSUE | issue_id |
|
|
| Update issue | LINEAR_UPDATE_ISSUE | issue_id, fields |
|
|
| List states | LINEAR_LIST_LINEAR_STATES | team_id |
|
|
| List projects | LINEAR_LIST_LINEAR_PROJECTS | (none) |
|
|
| Create project | LINEAR_CREATE_LINEAR_PROJECT | name, team_ids |
|
|
| Update project | LINEAR_UPDATE_LINEAR_PROJECT | project_id, fields |
|
|
| List cycles | LINEAR_LIST_LINEAR_CYCLES | team_id |
|
|
| Get cycles | LINEAR_GET_CYCLES_BY_TEAM_ID | team_id |
|
|
| Create label | LINEAR_CREATE_LINEAR_LABEL | name, color |
|
|
| Create comment | LINEAR_CREATE_LINEAR_COMMENT | issue_id, body |
|
|
| Update comment | LINEAR_UPDATE_LINEAR_COMMENT | comment_id, body |
|
|
| List users | LINEAR_LIST_LINEAR_USERS | (none) |
|
|
| Current user | LINEAR_GET_CURRENT_USER | (none) |
|
|
| Run GraphQL | LINEAR_RUN_QUERY_OR_MUTATION | query, variables |
|