Linear MCP

Linear MCP lets agents find, create, and update issues, projects, comments, and related planning objects in a Linear workspace.

67 actions Integration catalog
Request access
Connect Linear MCP once you're in Boring.
01 · WHAT THE AGENT CAN DO

Actions

Every capability is a discrete, logged action the agent calls by name — scoped to what you authorize and recorded in the run trace.

Create attachmentLINEAR_MCP_CREATE_ATTACHMENT
Deprecated fallback for tiny files only. Accepts base64 file content, verifies SHA-256 checksum, and uploads it through the MCP worker. Prefer `prepare_attachment_upload` plus direct PUT plus `create_attachment_from_upload`. CRITICAL: Do not print base64Content and then copy it into this tool call. Opaque base64 copied through model-visible text is easy to corrupt. Generate base64Content mechanically from the source bytes and pass it through a programmatic argument construction path whenever available. Before calling this tool, verify the values are consistent: Unix-like shells: file="/path/to/file" base64Content=$(base64 < "$file" | tr -d '\n\r') sha256=$(shasum -a 256 "$file" | awk '{print $1}') decodedSha256=$(printf '%s' "$base64Content" | base64 -d | shasum -a 256 | awk '{print $1}') size=$(wc -c < "$file" | tr -d ' ') # optional; stat can also get file byte size decodedSize=$(printf '%s' "$base64Content" | base64 -d | wc -c | tr -d ' ') PowerShell: $file = 'C:\path\to\file' $bytes = [IO.File]::ReadAllBytes($file) $base64Content = [Convert]::ToBase64String($bytes) $sha256 = (Get-FileHash -Algorithm SHA256 -Path $file).Hash.ToLower() $size = $bytes.Length # optional $decoded = [Convert]::FromBase64String($base64Content) $decodedStream = [IO.MemoryStream]::new($decoded) $decodedSha256 = (Get-FileHash -Algorithm SHA256 -InputStream $decodedStream).Hash.ToLower() $decodedSize = $decoded.Length decodedSha256 must equal sha256. If you pass size, decodedSize must equal size. Pass `sha256`. Passing `size` is optional, but recommended for clearer mismatch errors.
Create attachment from uploadLINEAR_MCP_CREATE_ATTACHMENT_FROM_UPLOAD
Link an already-uploaded Linear assetUrl to an existing issue as an attachment. Use this only after: 1. prepare_attachment_upload returned an assetUrl and uploadRequest. 2. The client successfully PUT raw file bytes to uploadRequest.url. This tool does not upload file content. It only creates the Linear attachment row. If the direct upload failed or the signed URL expired, rerun prepare_attachment_upload and upload again.
Create initiative labelLINEAR_MCP_CREATE_INITIATIVE_LABEL
Create a new Linear initiative label
Create issue labelLINEAR_MCP_CREATE_ISSUE_LABEL
Create a new Linear issue label
Delete attachmentLINEAR_MCP_DELETE_ATTACHMENT
Delete an attachment by ID
Delete commentLINEAR_MCP_DELETE_COMMENT
Delete a Linear comment. Inline description comments (those with non-null `quotedText`) anchor a mark in the editor, so their root cannot be deleted — delete the replies individually or resolve the thread instead.
Delete customerLINEAR_MCP_DELETE_CUSTOMER
Delete a customer in Linear
Delete customer needLINEAR_MCP_DELETE_CUSTOMER_NEED
Archive a customer need in Linear
Delete diff commentLINEAR_MCP_DELETE_DIFF_COMMENT
Delete a comment or persisted draft from a Linear diff
Delete status updateLINEAR_MCP_DELETE_STATUS_UPDATE
Delete (archive) a project or initiative status update.
Extract imagesLINEAR_MCP_EXTRACT_IMAGES
Extract and fetch images from markdown content. Use this to view screenshots, diagrams, or other images embedded in Linear issues, comments, or documents. Pass the markdown content (e.g., issue description) and receive the images as viewable data.
Get agent skillLINEAR_MCP_GET_AGENT_SKILL
Retrieve a Linear Agent skill by ID, including its full markdown instructions.
Get attachmentLINEAR_MCP_GET_ATTACHMENT
Retrieve an attachment's content by ID.
Get diffLINEAR_MCP_GET_DIFF
Exact lookup for a Linear diff. Use with review URLs, GitHub PR URLs, Linear full identifiers, UUIDs, or slugs.
Get diff threadsLINEAR_MCP_GET_DIFF_THREADS
Exact lookup for diff threads and the authenticated user's drafts. Use with review URLs, GitHub PR URLs, Linear full identifiers, UUIDs, or slugs.
Get documentLINEAR_MCP_GET_DOCUMENT
Retrieve a Linear document by ID or slug
Get initiativeLINEAR_MCP_GET_INITIATIVE
Retrieve detailed information about a specific initiative in Linear
Get issueLINEAR_MCP_GET_ISSUE
Retrieve detailed information about an issue by ID, including attachments, git branch name, and active Triage Intelligence suggestions when the issue is in triage
Get issue statusLINEAR_MCP_GET_ISSUE_STATUS
Retrieve detailed information about an issue status in Linear by name or ID
Get milestoneLINEAR_MCP_GET_MILESTONE
Retrieve details of a specific milestone by ID or name
Get projectLINEAR_MCP_GET_PROJECT
Retrieve details of a specific project in Linear
Get releaseLINEAR_MCP_GET_RELEASE
Retrieve details of a release by ID or slug.
Get release noteLINEAR_MCP_GET_RELEASE_NOTE
Retrieve release notes by ID or slug, including markdown content.
Get status updatesLINEAR_MCP_GET_STATUS_UPDATES
List or get project/initiative status updates. Pass `id` to get a specific update, or filter to list.
Get teamLINEAR_MCP_GET_TEAM
Retrieve details of a specific Linear team
Get templateLINEAR_MCP_GET_TEMPLATE
Retrieve a Linear template by ID or name: the content it pre-fills, the ids it applies, its sub-issues, and its form fields. Pass the template to save_issue or save_project to apply it. References come back as ids, so read a name with the matching tool when you need one. A form template collects its answers through a form, so applying one here creates an issue with the form unanswered.
Get userLINEAR_MCP_GET_USER
Retrieve details of a specific Linear user
Get workspaceLINEAR_MCP_GET_WORKSPACE
Retrieve the connected Linear workspace
List agent skillsLINEAR_MCP_LIST_AGENT_SKILLS
List Linear Agent skills available to the authenticated user.
List commentsLINEAR_MCP_LIST_COMMENTS
List comments on a Linear issue, project, initiative, document, project milestone, or project/initiative status update. Provide exactly one of `issueId`, `projectId`, `initiativeId`, `documentId`, `milestoneId`, or `statusUpdateId`. For issues, projects, and initiatives this returns both top-level discussion threads and inline description comments. Inline (anchored) comments carry a non-null `quotedText` set to the snippet of description text they reference. Returned comments include `author` and nullable `onBehalfOf`; when set, `onBehalfOf` identifies the user the agent author acted for.
List customersLINEAR_MCP_LIST_CUSTOMERS
List customers in the user's Linear workspace
List cyclesLINEAR_MCP_LIST_CYCLES
Retrieve cycles for a specific Linear team
List diffsLINEAR_MCP_LIST_DIFFS
List Linear diff pull requests visible to the authenticated user
List documentsLINEAR_MCP_LIST_DOCUMENTS
List documents in the user's Linear workspace
List initiative labelsLINEAR_MCP_LIST_INITIATIVE_LABELS
List available initiative labels in the Linear workspace
List initiativesLINEAR_MCP_LIST_INITIATIVES
List initiatives in the user's Linear workspace
List issue labelsLINEAR_MCP_LIST_ISSUE_LABELS
List available issue labels in a Linear workspace or team
List issuesLINEAR_MCP_LIST_ISSUES
List issues in the user's Linear workspace, including active Triage Intelligence suggestions for issues in triage. For my issues, use "me" as the assignee. Use "null" for no assignee.
List issue statusesLINEAR_MCP_LIST_ISSUE_STATUSES
List available issue statuses in a Linear team
List milestonesLINEAR_MCP_LIST_MILESTONES
List all milestones in a Linear project
List project labelsLINEAR_MCP_LIST_PROJECT_LABELS
List available project labels in the Linear workspace
List projectsLINEAR_MCP_LIST_PROJECTS
List projects in the user's Linear workspace
List release notesLINEAR_MCP_LIST_RELEASE_NOTES
List release notes in the workspace, optionally filtered by pipeline or covered release.
List release pipelinesLINEAR_MCP_LIST_RELEASE_PIPELINES
List release pipelines in the workspace.
List releasesLINEAR_MCP_LIST_RELEASES
List releases in the workspace, with optional filtering by pipeline, stage, version, and text.
List teamsLINEAR_MCP_LIST_TEAMS
List teams in the user's Linear workspace
List templatesLINEAR_MCP_LIST_TEMPLATES
List the Linear issue, project, and document templates available to the authenticated user. Use this to find the template a team expects, then call get_template for its content.
List usersLINEAR_MCP_LIST_USERS
Retrieve users in the Linear workspace
Merge diffLINEAR_MCP_MERGE_DIFF
Merge a Linear diff or add it to the repository's merge queue
Prepare attachment uploadLINEAR_MCP_PREPARE_ATTACHMENT_UPLOAD
Prepare a direct Linear file upload for an existing issue. Workflow: 1. Call this tool with issue, filename, contentType, and size. 2. Upload raw bytes with PUT to uploadRequest.url outside MCP. 3. All headers in uploadRequest.headers are part of the signed request, so send them verbatim. 4. After PUT succeeds, call create_attachment_from_upload with assetUrl to link it to the issue. Do not base64-encode or transform the file. Use curl --data-binary @path or fetch(url, { method: 'PUT', body: blob }). Omitting or modifying any signed header, including casing, will return HTTP 403. The signed URL must be used within 60 seconds or it will expire. Upload sequencing: Prepare, PUT, and finalize one file before calling this tool for another file. Do not batch multiple prepare_attachment_upload calls before starting the PUTs because earlier signed URLs can expire while later files are prepared. Example: curl -X PUT --data-binary @file.png \ -H "content-type: image/png" \ -H "x-goog-content-length-range: N,N" \ -H "cache-control: public, max-age=31536000" \ -H 'Content-Disposition: attachment; filename="file.png"' \ "<uploadRequest.url>"
Resolve diff threadLINEAR_MCP_RESOLVE_DIFF_THREAD
Resolve or reopen a top-level comment thread on a Linear diff
Save commentLINEAR_MCP_SAVE_COMMENT
Create or update a comment on a Linear issue, project, initiative, document, project milestone, or project/initiative status update. If `id` is provided, updates the existing comment; otherwise creates a new one. To start a new thread, pass `body` and exactly one of `issueId`, `projectId`, `initiativeId`, `documentId`, `milestoneId`, or `statusUpdateId` — comments on issues/projects/initiatives become top-level discussion threads; comments on documents/milestones become description comments. A status update holds a single thread, so a comment on an update that already has one is added to it as a reply. To reply to an existing thread, pass `parentId` and `body`; the reply inherits the parent's thread type, so no entity reference is needed. Parent reference fields are ignored when `id` or `parentId` is provided (`statusUpdateType` is rejected instead).
Save customerLINEAR_MCP_SAVE_CUSTOMER
Create or update a Linear customer. If `id` is provided, updates the existing customer; otherwise creates a new one. When creating, `name` is required.
Save customer needLINEAR_MCP_SAVE_CUSTOMER_NEED
Create or update a customer need (request) in Linear. If `id` is provided, updates the existing need; otherwise creates a new one. When creating, `body` is required.
Save diff commentLINEAR_MCP_SAVE_DIFF_COMMENT
Create, reply to, or edit a comment or persisted draft on a Linear diff. Set draft to true to save without submitting. Provide draftId to edit or submit a persisted draft, and commentId only to edit a submitted comment. Submitting an inline draft reuses its saved anchor; submitting a reply draft requires parentId again.
Save documentLINEAR_MCP_SAVE_DOCUMENT
Create or update a Linear document. If `id` is provided, edits the existing document; otherwise creates a new one. When creating, `title` is required and exactly one parent (`project`, `issue`, `initiative`, `cycle`, or `team`) must be specified. On update, passing a parent reparents the document. To change parts of the content without resending all of it, pass `patch` instead of `content`.
Save initiativeLINEAR_MCP_SAVE_INITIATIVE
Create or update a Linear initiative. If `id` is provided, updates the existing initiative; otherwise creates a new one. When creating, `name` is required. To change parts of the description without resending all of it, pass `patch` instead of `description`.
Save issueLINEAR_MCP_SAVE_ISSUE
Create or update a Linear issue. If `id` is provided, updates the existing issue; otherwise creates a new one. When creating, `team` is required, and `title` is required unless `template` is set. Note: use `assignee` (not `assigneeId`) to set the assignee — it accepts a user ID, name, email, or "me".
Save milestoneLINEAR_MCP_SAVE_MILESTONE
Create or update a milestone in a Linear project. If `id` is provided, updates the existing milestone; otherwise creates a new one. When creating, `name` is required.
Save projectLINEAR_MCP_SAVE_PROJECT
Create or update a Linear project. If `id` is provided, updates the existing project; otherwise creates a new one. When creating, `name` and at least one team (via `addTeams` or `setTeams`) are required. Pass `template` to create the project from a project template. To change parts of the description without resending all of it, pass `patch` instead of `description`.
Showing the first 60 of 67 actions.