| name | linear |
| description | Linear project management integration. Provides tools for managing issues, comments, teams, projects, and issue relations via the Linear GraphQL API. |
Linear
You have Linear tools for managing issues and project tracking. These tools call the Linear GraphQL API directly — they handle auth, formatting, and error handling for you.
Tools
linear_issue — manage issues
Manage Linear issues: view details, search/filter, create, update, and delete.
| Action | Required Params | Optional Params |
|---|
view | issueId | — |
list | — | state, assignee, team, project, limit |
create | title | description, assignee, state, priority, team, project, parent, labels, dueDate |
update | issueId | title, description, appendDescription, assignee, state, priority, labels, project, dueDate |
delete | issueId | — |
issueId accepts human-readable identifiers like ENG-123
assignee accepts display name or email
state accepts workflow state name (e.g. In Progress, Done)
team accepts team key (e.g. ENG)
priority is numeric: 0=None, 1=Urgent, 2=High, 3=Medium, 4=Low
labels is an array of label names; pass an empty array [] to clear all labels (update only)
parent accepts a parent issue identifier for creating sub-issues
appendDescription (boolean) — when true, appends description to the existing description instead of replacing it (update only)
dueDate accepts a date string in YYYY-MM-DD format (e.g. 2025-12-31); pass an empty string to clear the due date
description supports markdown. Use actual newlines for line breaks, not \n escape sequences — literal \n will appear as-is in the ticket instead of creating line breaks
linear_comment — manage comments
Read, create, and update comments on Linear issues.
| Action | Required Params | Optional Params |
|---|
list | issueId | — |
add | issueId, body | parentCommentId |
update | commentId, body | — |
body supports markdown. Use actual newlines for line breaks, not \n escape sequences — literal \n will appear as-is in the comment instead of creating line breaks
parentCommentId threads the comment as a reply
- To mention someone, use
@displayName in the body — Linear resolves it to a mention and notifies them
linear_team — teams and members
View teams and their members.
| Action | Required Params | Optional Params |
|---|
list | — | — |
members | team | — |
team is the team key (e.g. ENG)
linear_project — manage projects
List, view, and create Linear projects.
| Action | Required Params | Optional Params |
|---|
list | — | team, status |
view | projectId | — |
create | name | team, description |
linear_search — full-text search
Search across all Linear issues by keyword. Searches titles, descriptions, and optionally comments.
| Param | Required | Description |
|---|
query | yes | Search term (full-text) |
team | no | Team key to scope search (e.g. ENG) |
includeComments | no | Also search within comments (default false) |
state | no | Filter by workflow state name (e.g. In Progress) |
limit | no | Max results (default 20) |
Use this to find related work, prior investigations, duplicate issues, or any tickets referencing the same area.
linear_relation — issue relations
Manage relations between Linear issues (blocks, blocked-by, related, duplicate).
| Action | Required Params | Optional Params |
|---|
list | issueId | — |
add | issueId, type, relatedIssueId | — |
delete | relationId | — |
type is one of: blocks, blocked-by, related, duplicate
Appending to Descriptions
When using appendDescription: true, the tool automatically inserts a --- separator, normalizes whitespace, and fixes accidental # (h1) headings. You don't need to add separators yourself.
One thing the tool can't do for you: check for duplicate sections. Before appending, verify the description doesn't already contain the section you're about to add (e.g., a ## Research Report). If it does, either skip or replace the full description to update the existing section in place.