SKILL.md
Linear Automation via Rube MCP
Automate Linear operations through Composio's Linear toolkit via Rube MCP.
Prerequisites
- Rube MCP must be connected (RUBESEARCHTOOLS available)
- Active Linear connection via
RUBEMANAGECONNECTIONSwith toolkitlinear - Always call
RUBESEARCHTOOLSfirst to get current tool schemas
Setup
Get Rube MCP: Add https://rube.app/mcp as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.
- Verify Rube MCP is available by confirming
RUBESEARCHTOOLSresponds - Call
RUBEMANAGECONNECTIONSwith toolkitlinear - If connection is not ACTIVE, follow the returned auth link to complete Linear OAuth
- 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:
LINEARGETALLLINEARTEAMS- Get team IDs [Prerequisite]LINEARLISTLINEAR_STATES- Get workflow states for a team [Prerequisite]LINEARCREATELINEAR_ISSUE- Create a new issue [Optional]LINEARSEARCHISSUES/LINEARLISTLINEAR_ISSUES- Find issues [Optional]LINEARGETLINEAR_ISSUE- Get issue details [Optional]LINEARUPDATEISSUE- Update issue properties [Optional]
Key parameters:
team_id: Team ID (required for creation)title: Issue titledescription: Issue description (Markdown supported)state_id: Workflow state IDassignee_id: Assignee user IDpriority: 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 GETALLLINEAR_TEAMS first
- State IDs are team-specific; use LISTLINEARSTATES 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:
LINEARLISTLINEAR_PROJECTS- List existing projects [Optional]LINEARCREATELINEAR_PROJECT- Create a new project [Optional]LINEARUPDATELINEAR_PROJECT- Update project details [Optional]
Key parameters:
name: Project namedescription: Project descriptionteam_ids: Array of team IDs associated with the projectstate: 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:
LINEARGETALLLINEARTEAMS- Get team ID [Prerequisite]LINEARGETCYCLESBYTEAMID/LINEARLISTLINEARCYCLES- List cycles [Required]
Key parameters:
team_id: Team ID for cycle operationsnumber: 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:
LINEARCREATELINEAR_LABEL- Create a new label [Optional]LINEARCREATELINEAR_COMMENT- Comment on an issue [Optional]LINEARUPDATELINEAR_COMMENT- Edit a comment [Optional]
Key parameters:
name: Label namecolor: Label color (hex)issue_id: Issue ID for commentsbody: 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:
LINEARRUNQUERYORMUTATION- Execute custom GraphQL [Required]
Key parameters:
query: GraphQL query or mutation stringvariables: 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 | LINEARGETALLLINEARTEAMS | (none) |
| Create issue | LINEARCREATELINEAR_ISSUE | team_id, title, description |
| Search issues | LINEARSEARCHISSUES | query |
| List issues | LINEARLISTLINEAR_ISSUES | team_id, filters |
| Get issue | LINEARGETLINEAR_ISSUE | issue_id |
| Update issue | LINEARUPDATEISSUE | issue_id, fields |
| List states | LINEARLISTLINEAR_STATES | team_id |
| List projects | LINEARLISTLINEAR_PROJECTS | (none) |
| Create project | LINEARCREATELINEAR_PROJECT | name, team_ids |
| Update project | LINEARUPDATELINEAR_PROJECT | project_id, fields |
| List cycles | LINEARLISTLINEAR_CYCLES | team_id |
| Get cycles | LINEARGETCYCLESBYTEAM_ID | team_id |
| Create label | LINEARCREATELINEAR_LABEL | name, color |
| Create comment | LINEARCREATELINEAR_COMMENT | issue_id, body |
| Update comment | LINEARUPDATELINEAR_COMMENT | comment_id, body |
| List users | LINEARLISTLINEAR_USERS | (none) |
| Current user | LINEARGETCURRENT_USER | (none) |
| Run GraphQL | LINEARRUNQUERYORMUTATION | query, variables |
When to Use
This skill is applicable to execute the workflow or actions described in the overview.
Limitations
- Use this skill only when the task clearly matches the scope described above.
- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.
- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.