Linear
Purpose
Operate Linear through Composio’s Linear toolkit on Rube MCP: discover current tool schemas, ensure an ACTIVE OAuth connection, resolve team/state IDs, then create, search, update issues, projects, cycles, labels, and comments.
When to Use
- Create, search, update, or list Linear issues, projects, or cycles.
- Resolve team names to IDs or workflow states before mutations.
- Custom GraphQL when standard tools are insufficient.
When NOT to Use
- Jira/Atlassian work → jira.
- Archon task board → archon.
- Without Rube MCP or before
RUBE_MANAGE_CONNECTIONS shows ACTIVE Linear.
Expected Outcome
RUBE_SEARCH_TOOLS used before each workflow for live slugs and parameters.
- Issues created with valid
team_id and integer priority 0–4.
- Results from Composio tool responses only.
Inputs to Gather
- Team name or
team_id; state name or state_id for the team.
- Issue title, description (Markdown), assignee, labels, priority.
- Pagination cursors when listing large sets.
Workflow
- Confirm
RUBE_SEARCH_TOOLS responds (Rube MCP at https://rube.app/mcp).
RUBE_MANAGE_CONNECTIONS with toolkit linear; complete OAuth if not ACTIVE.
RUBE_SEARCH_TOOLS for the Linear action; call tools with schema-exact parameters.
- Resolve IDs (teams, states) before create/update per patterns below.
- Summarize issue keys, URLs, and state from tool output.
Rube MCP and Linear toolkit
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
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
1. 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
2. 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
3. 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
4. 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
5. 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:
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 |
Tool Availability Rules
| Access |
Behavior |
| Full tool access |
Execute workflows, verify outputs, report errors. |
| Read-only |
Inspect and plan; provide exact commands or dispatch request for writes. |
| No integration |
State limitation; do not fabricate API results. |
Related tool sets
linear
- Rube MCP endpoint:
https://rube.app/mcp
Review / Decision / Execution Criteria
- Prefer smallest safe change; confirm destructive actions with the user.
- Use evidence from tool responses; cite IDs and links when present.
- Match integration-specific conventions (JQL, RFC3339, A1 notation, etc.).
Output Format
Report:
- What was requested and what was done.
- Key results (tables or bullets).
- Errors, blockers, or missing permissions.
- Suggested next steps.
Quality Bar
- Specific, actionable, and grounded in tool output.
- Concise unless the user asked for detail.
- Respect rate limits, pagination, and API semantics.
Safety and Boundaries
- Do not commit secrets, tokens, or PII into skills or user-visible logs.
- Do not fabricate validation, send, or write confirmations.
- Confirm destructive operations (delete, destroy, mass update) when appropriate.
Escalation / Dispatch Rules
- If the task spans multiple domains, use or suggest related skills via
relationships.skills.
- If write access is required but unavailable, dispatch or ask the user to enable tools.
References
- Legacy content migrated from
skills/old_skills.json (linear).
skills/skill.instruction.md, skills/meta.instructions.md
1---2name: linear3description: Automates Linear issues, projects, cycles, teams, and labels via Rube MCP (Composio). Use after RUBE_SEARCH_TOOLS and an ACTIVE Linear connection; resolve team and state IDs before creates.4---56# Linear78## Purpose910Operate Linear through Composio’s Linear toolkit on Rube MCP: discover current tool schemas, ensure an ACTIVE OAuth connection, resolve team/state IDs, then create, search, update issues, projects, cycles, labels, and comments.1112## When to Use1314- Create, search, update, or list Linear issues, projects, or cycles.15- Resolve team names to IDs or workflow states before mutations.16- Custom GraphQL when standard tools are insufficient.1718## When NOT to Use1920- Jira/Atlassian work → **jira**.21- Archon task board → **archon**.22- Without Rube MCP or before `RUBE_MANAGE_CONNECTIONS` shows ACTIVE Linear.2324## Expected Outcome2526- `RUBE_SEARCH_TOOLS` used before each workflow for live slugs and parameters.27- Issues created with valid `team_id` and integer priority 0–4.28- Results from Composio tool responses only.2930## Inputs to Gather3132- Team name or `team_id`; state name or `state_id` for the team.33- Issue title, description (Markdown), assignee, labels, priority.34- Pagination cursors when listing large sets.3536## Workflow37381. Confirm `RUBE_SEARCH_TOOLS` responds (Rube MCP at `https://rube.app/mcp`).392. `RUBE_MANAGE_CONNECTIONS` with toolkit `linear`; complete OAuth if not ACTIVE.403. `RUBE_SEARCH_TOOLS` for the Linear action; call tools with schema-exact parameters.414. Resolve IDs (teams, states) before create/update per patterns below.425. Summarize issue keys, URLs, and state from tool output.4344## Rube MCP and Linear toolkit4546Automate Linear operations through Composio's Linear toolkit via Rube MCP.4748## Prerequisites4950- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)51- Active Linear connection via `RUBE_MANAGE_CONNECTIONS` with toolkit `linear`52- Always call `RUBE_SEARCH_TOOLS` first to get current tool schemas5354## Setup5556**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.5758591. Verify Rube MCP is available by confirming `RUBE_SEARCH_TOOLS` responds602. Call `RUBE_MANAGE_CONNECTIONS` with toolkit `linear`613. If connection is not ACTIVE, follow the returned auth link to complete Linear OAuth624. Confirm connection status shows ACTIVE before running any workflows6364## Core Workflows6566### 1. Manage Issues6768**When to use**: User wants to create, search, update, or list Linear issues6970**Tool sequence**:711. `LINEAR_GET_ALL_LINEAR_TEAMS` - Get team IDs [Prerequisite]722. `LINEAR_LIST_LINEAR_STATES` - Get workflow states for a team [Prerequisite]733. `LINEAR_CREATE_LINEAR_ISSUE` - Create a new issue [Optional]744. `LINEAR_SEARCH_ISSUES` / `LINEAR_LIST_LINEAR_ISSUES` - Find issues [Optional]755. `LINEAR_GET_LINEAR_ISSUE` - Get issue details [Optional]766. `LINEAR_UPDATE_ISSUE` - Update issue properties [Optional]7778**Key parameters**:79- `team_id`: Team ID (required for creation)80- `title`: Issue title81- `description`: Issue description (Markdown supported)82- `state_id`: Workflow state ID83- `assignee_id`: Assignee user ID84- `priority`: 0 (none), 1 (urgent), 2 (high), 3 (medium), 4 (low)85- `label_ids`: Array of label IDs8687**Pitfalls**:88- Team ID is required when creating issues; use GET_ALL_LINEAR_TEAMS first89- State IDs are team-specific; use LIST_LINEAR_STATES with the correct team90- Priority uses integer values 0-4, not string names9192### 2. Manage Projects9394**When to use**: User wants to create or update Linear projects9596**Tool sequence**:971. `LINEAR_LIST_LINEAR_PROJECTS` - List existing projects [Optional]982. `LINEAR_CREATE_LINEAR_PROJECT` - Create a new project [Optional]993. `LINEAR_UPDATE_LINEAR_PROJECT` - Update project details [Optional]100101**Key parameters**:102- `name`: Project name103- `description`: Project description104- `team_ids`: Array of team IDs associated with the project105- `state`: Project state (e.g., 'planned', 'started', 'completed')106107**Pitfalls**:108- Projects span teams; they can be associated with multiple teams109110### 3. Manage Cycles111112**When to use**: User wants to work with Linear cycles (sprints)113114**Tool sequence**:1151. `LINEAR_GET_ALL_LINEAR_TEAMS` - Get team ID [Prerequisite]1162. `LINEAR_GET_CYCLES_BY_TEAM_ID` / `LINEAR_LIST_LINEAR_CYCLES` - List cycles [Required]117118**Key parameters**:119- `team_id`: Team ID for cycle operations120- `number`: Cycle number121122**Pitfalls**:123- Cycles are team-specific; always scope by team_id124125### 4. Manage Labels and Comments126127**When to use**: User wants to create labels or comment on issues128129**Tool sequence**:1301. `LINEAR_CREATE_LINEAR_LABEL` - Create a new label [Optional]1312. `LINEAR_CREATE_LINEAR_COMMENT` - Comment on an issue [Optional]1323. `LINEAR_UPDATE_LINEAR_COMMENT` - Edit a comment [Optional]133134**Key parameters**:135- `name`: Label name136- `color`: Label color (hex)137- `issue_id`: Issue ID for comments138- `body`: Comment body (Markdown)139140**Pitfalls**:141- Labels can be team-scoped or workspace-scoped142- Comment body supports Markdown formatting143144### 5. Custom GraphQL Queries145146**When to use**: User needs advanced queries not covered by standard tools147148**Tool sequence**:1491. `LINEAR_RUN_QUERY_OR_MUTATION` - Execute custom GraphQL [Required]150151**Key parameters**:152- `query`: GraphQL query or mutation string153- `variables`: Variables for the query154155**Pitfalls**:156- Requires knowledge of Linear's GraphQL schema157- Rate limits apply to GraphQL queries158159## Common Patterns160161### ID Resolution162163**Team name -> Team ID**:164```1651. Call LINEAR_GET_ALL_LINEAR_TEAMS1662. Find team by name in response1673. Extract id field168```169170**State name -> State ID**:171```1721. Call LINEAR_LIST_LINEAR_STATES with team_id1732. Find state by name1743. Extract id field175```176177### Pagination178179- Linear tools return paginated results180- Check for pagination cursors in responses181- Pass cursor to next request for additional pages182183## Known Pitfalls184185**Team Scoping**:186- Issues, states, and cycles are team-specific187- Always resolve team_id before creating issues188189**Priority Values**:190- 0 = No priority, 1 = Urgent, 2 = High, 3 = Medium, 4 = Low191- Use integer values, not string names192193## Quick Reference194195| Task | Tool Slug | Key Params |196|------|-----------|------------|197| List teams | LINEAR_GET_ALL_LINEAR_TEAMS | (none) |198| Create issue | LINEAR_CREATE_LINEAR_ISSUE | team_id, title, description |199| Search issues | LINEAR_SEARCH_ISSUES | query |200| List issues | LINEAR_LIST_LINEAR_ISSUES | team_id, filters |201| Get issue | LINEAR_GET_LINEAR_ISSUE | issue_id |202| Update issue | LINEAR_UPDATE_ISSUE | issue_id, fields |203| List states | LINEAR_LIST_LINEAR_STATES | team_id |204| List projects | LINEAR_LIST_LINEAR_PROJECTS | (none) |205| Create project | LINEAR_CREATE_LINEAR_PROJECT | name, team_ids |206| Update project | LINEAR_UPDATE_LINEAR_PROJECT | project_id, fields |207| List cycles | LINEAR_LIST_LINEAR_CYCLES | team_id |208| Get cycles | LINEAR_GET_CYCLES_BY_TEAM_ID | team_id |209| Create label | LINEAR_CREATE_LINEAR_LABEL | name, color |210| Create comment | LINEAR_CREATE_LINEAR_COMMENT | issue_id, body |211| Update comment | LINEAR_UPDATE_LINEAR_COMMENT | comment_id, body |212| List users | LINEAR_LIST_LINEAR_USERS | (none) |213| Current user | LINEAR_GET_CURRENT_USER | (none) |214| Run GraphQL | LINEAR_RUN_QUERY_OR_MUTATION | query, variables |215216## Tool Availability Rules217218| Access | Behavior |219|--------|----------|220| Full tool access | Execute workflows, verify outputs, report errors. |221| Read-only | Inspect and plan; provide exact commands or dispatch request for writes. |222| No integration | State limitation; do not fabricate API results. |223224### Related tool sets225226- `linear`227- Rube MCP endpoint: `https://rube.app/mcp`228229## Review / Decision / Execution Criteria230231- Prefer smallest safe change; confirm destructive actions with the user.232- Use evidence from tool responses; cite IDs and links when present.233- Match integration-specific conventions (JQL, RFC3339, A1 notation, etc.).234235## Output Format236237Report:2382391. What was requested and what was done.2402. Key results (tables or bullets).2413. Errors, blockers, or missing permissions.2424. Suggested next steps.243244## Quality Bar245246- Specific, actionable, and grounded in tool output.247- Concise unless the user asked for detail.248- Respect rate limits, pagination, and API semantics.249250## Safety and Boundaries251252- Do not commit secrets, tokens, or PII into skills or user-visible logs.253- Do not fabricate validation, send, or write confirmations.254- Confirm destructive operations (delete, destroy, mass update) when appropriate.255256## Escalation / Dispatch Rules257258- If the task spans multiple domains, use or suggest related skills via `relationships.skills`.259- If write access is required but unavailable, dispatch or ask the user to enable tools.260261## References262263- Legacy content migrated from `skills/old_skills.json` (`linear`).264- `skills/skill.instruction.md`, `skills/meta.instructions.md`