Linear Automation via Rube MCP
Automate Linear operations through Composio's Linear toolkit via Rube MCP.
Toolkit docs: composio.dev/toolkits/linear
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
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 RUBE_SEARCH_TOOLS responds
-
Call RUBE_MANAGE_CONNECTIONS with toolkit linear
-
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
- Manage Issues
When to use: User wants to create, search, update, or list Linear issues
Tool sequence:
-
LINEAR_GET_ALL_LINEAR_TEAMS
-
Get team IDs [Prerequisite]
-
LINEAR_LIST_LINEAR_STATES
-
Get workflow states for a team [Prerequisite]
-
LINEAR_CREATE_LINEAR_ISSUE
-
Create a new issue [Optional]
-
LINEAR_SEARCH_ISSUES / LINEAR_LIST_LINEAR_ISSUES
-
Find issues [Optional]
-
LINEAR_GET_LINEAR_ISSUE
-
Get issue details [Optional]
-
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
- Manage Projects
When to use: User wants to create or update Linear projects
Tool sequence:
-
LINEAR_LIST_LINEAR_PROJECTS
-
List existing projects [Optional]
-
LINEAR_CREATE_LINEAR_PROJECT
-
Create a new project [Optional]
-
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
- Manage Cycles
When to use: User wants to work with Linear cycles (sprints)
Tool sequence:
-
LINEAR_GET_ALL_LINEAR_TEAMS
-
Get team ID [Prerequisite]
-
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
- Manage Labels and Comments
When to use: User wants to create labels or comment on issues
Tool sequence:
-
LINEAR_CREATE_LINEAR_LABEL
-
Create a new label [Optional]
-
LINEAR_CREATE_LINEAR_COMMENT
-
Comment on an issue [Optional]
-
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
- Custom GraphQL Queries
When to use: User needs advanced queries not covered by standard tools
Tool sequence:
- 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:
- Call LINEAR_GET_ALL_LINEAR_TEAMS
- Find team by name in response
- Extract id field
State name -> State ID:
- Call LINEAR_LIST_LINEAR_STATES with team_id
- Find state by name
- 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
Powered by Composio