Skip to content
Scalekit Docs

Linear MCP

Vendor MCP63 toolsOAuth 2.1/DCRProject ManagementDeveloper Tools

Connect to Linear's hosted MCP server to manage issues, projects, cycles, and comments directly from your AI workflows.

Linear MCP connector

  1. Terminal window
    npm install @scalekit-sdk/node

    Full SDK reference: Node.js | Python

  2. Add your Scalekit credentials to your .env file. Find values in app.scalekit.com > Developers > API Credentials.

    .env
    SCALEKIT_ENVIRONMENT_URL=<your-environment-url>
    SCALEKIT_CLIENT_ID=<your-client-id>
    SCALEKIT_CLIENT_SECRET=<your-client-secret>
  3. quickstart.ts
    import { ScalekitClient } from '@scalekit-sdk/node'
    import 'dotenv/config'
    const scalekit = new ScalekitClient(
    process.env.SCALEKIT_ENV_URL,
    process.env.SCALEKIT_CLIENT_ID,
    process.env.SCALEKIT_CLIENT_SECRET,
    )
    const actions = scalekit.actions
    const connector = 'linearmcp'
    const identifier = 'user_123'
    // Generate an authorization link for the user
    const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
    console.log('Authorize Linear MCP:', link)
    process.stdout.write('Press Enter after authorizing...')
    await new Promise(r => process.stdin.once('data', r))
    // Make your first call
    const result = await actions.executeTool({
    connector,
    identifier,
    toolName: 'linearmcp_get_workspace',
    toolInput: {},
    })
    console.log(result)

Connect this agent connector to let your agent:

  • Review submit diff — Approve a Linear diff, request changes, or submit a review comment
  • Note save release — Create or update release notes
  • Release save — Create or update a release
  • Initiative save — Create or update a Linear initiative
  • Comment save diff, save — Create, reply to, or edit a comment or persisted draft on a Linear diff
  • Need save customer — Create or update a customer need (request) in Linear

Use the exact tool names from the Tool list below when you call execute_tool. If you’re not sure which name to use, list the tools available for the current user first.

linearmcp_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.8 params

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.

NameTypeRequiredDescription
base64ContentstringrequiredDeprecated base64-encoded file content to upload
contentTypestringrequiredMIME type for the upload (e.g., 'image/png', 'application/pdf')
filenamestringrequiredFilename for the upload (e.g., 'screenshot.png')
issuestringrequiredIssue ID or identifier (e.g., LIN-123)
sha256stringrequiredExpected SHA-256 hex digest of the decoded file bytes.
sizeintegeroptionalOptional expected decoded file size in bytes. Rejects the upload if it does not match.
subtitlestringoptionalOptional subtitle for the attachment
titlestringoptionalOptional title for the attachment
linearmcp_create_attachment_from_upload#Link an already-uploaded Linear assetUrl to an existing issue as an attachment.4 params

Link an already-uploaded Linear assetUrl to an existing issue as an attachment.

NameTypeRequiredDescription
assetUrlstringrequiredLinear upload assetUrl returned by prepare_attachment_upload
issuestringrequiredIssue ID or identifier (e.g., LIN-123)
subtitlestringoptionalOptional attachment subtitle
titlestringoptionalAttachment title. Defaults to filename or asset URL
linearmcp_create_initiative_label#Create a new Linear initiative label5 params

Create a new Linear initiative label

NameTypeRequiredDescription
namestringrequiredLabel name
colorstringoptionalHex color code
descriptionstringoptionalLabel description
isGroupbooleanoptionalIs label group (not directly applicable)
parentstringoptionalParent label group name
linearmcp_create_issue_label#Create a new Linear issue label6 params

Create a new Linear issue label

NameTypeRequiredDescription
namestringrequiredLabel name
colorstringoptionalHex color code
descriptionstringoptionalLabel description
isGroupbooleanoptionalIs label group (not directly applicable)
parentstringoptionalParent label group name
teamIdstringoptionalTeam UUID (omit for workspace label)
linearmcp_delete_attachment#Delete an attachment by ID1 param

Delete an attachment by ID

NameTypeRequiredDescription
idstringrequiredAttachment ID
linearmcp_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.1 param

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.

NameTypeRequiredDescription
idstringrequiredComment ID
linearmcp_delete_customer#Delete a customer in Linear1 param

Delete a customer in Linear

NameTypeRequiredDescription
idstringrequiredCustomer ID
linearmcp_delete_customer_need#Archive a customer need in Linear1 param

Archive a customer need in Linear

NameTypeRequiredDescription
idstringrequiredCustomer need ID
linearmcp_delete_diff_comment#Delete a comment from a Linear diff1 param

Delete a comment from a Linear diff

NameTypeRequiredDescription
commentIdstringrequiredDiff comment ID to delete
linearmcp_delete_status_update#Delete (archive) a project or initiative status update.2 params

Delete (archive) a project or initiative status update.

NameTypeRequiredDescription
idstringrequiredStatus update ID
typestringrequiredType of status update
linearmcp_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.1 param

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.

NameTypeRequiredDescription
markdownstringrequiredMarkdown content containing image references (e.g., issue description, comment body)
linearmcp_get_agent_skill#Retrieve a Linear Agent skill by ID, including its full markdown instructions.1 param

Retrieve a Linear Agent skill by ID, including its full markdown instructions.

NameTypeRequiredDescription
idstringrequiredAgent skill ID
linearmcp_get_attachment#Retrieve an attachment's content by ID.1 param

Retrieve an attachment's content by ID.

NameTypeRequiredDescription
idstringrequiredAttachment ID
linearmcp_get_diff#Exact lookup for a Linear diff. Use with review URLs, GitHub PR URLs, Linear full identifiers, UUIDs, or slugs.1 param

Exact lookup for a Linear diff. Use with review URLs, GitHub PR URLs, Linear full identifiers, UUIDs, or slugs.

NameTypeRequiredDescription
urlOrIdstringrequiredLinear review URL, diff slug, pull request ID, Linear full identifier, or GitHub PR URL
linearmcp_get_diff_threads#Exact lookup for diff threads. Use with review URLs, GitHub PR URLs, Linear full identifiers, UUIDs, or slugs.4 params

Exact lookup for diff threads. Use with review URLs, GitHub PR URLs, Linear full identifiers, UUIDs, or slugs.

NameTypeRequiredDescription
urlOrIdstringrequiredLinear review URL, diff slug, pull request ID, Linear full identifier, or GitHub PR URL
orderBystringoptionalSort: createdAt | updatedAt
resolvedbooleanoptionalFilter returned threads by resolved state
threadIdstringoptionalOptional Linear comment UUID of any comment in the thread (not its `externalThreadId`); a reply's UUID resolves to its thread root
linearmcp_get_document#Retrieve a Linear document by ID or slug1 param

Retrieve a Linear document by ID or slug

NameTypeRequiredDescription
idstringrequiredDocument ID or slug
linearmcp_get_initiative#Retrieve detailed information about a specific initiative in Linear3 params

Retrieve detailed information about a specific initiative in Linear

NameTypeRequiredDescription
querystringrequiredInitiative name, ID, identifier (e.g., INIT-123), or slug
includeProjectsbooleanoptionalInclude projects
includeSubInitiativesbooleanoptionalInclude sub-initiatives
linearmcp_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 triage4 params

Retrieve detailed information about an issue by ID, including attachments, git branch name, and active Triage Intelligence suggestions when the issue is in triage

NameTypeRequiredDescription
idstringrequiredIssue ID or identifier (e.g., LIN-123)
includeCustomerNeedsbooleanoptionalInclude associated customer needs
includeRelationsbooleanoptionalInclude blocking/related/duplicate relations
includeReleasesbooleanoptionalInclude associated releases
linearmcp_get_issue_status#Retrieve detailed information about an issue status in Linear by name or ID3 params

Retrieve detailed information about an issue status in Linear by name or ID

NameTypeRequiredDescription
idstringrequiredStatus ID
namestringrequiredStatus name
teamstringrequiredTeam name or ID
linearmcp_get_milestone#Retrieve details of a specific milestone by ID or name2 params

Retrieve details of a specific milestone by ID or name

NameTypeRequiredDescription
projectstringrequiredProject name, ID, identifier (e.g., PROJ-123), or slug
querystringrequiredMilestone name or ID
linearmcp_get_project#Retrieve details of a specific project in Linear4 params

Retrieve details of a specific project in Linear

NameTypeRequiredDescription
querystringrequiredProject name, ID, identifier (e.g., PROJ-123), or slug
includeMembersbooleanoptionalInclude project members
includeMilestonesbooleanoptionalInclude milestones
includeResourcesbooleanoptionalInclude resources (documents, links, attachments)
linearmcp_get_release#Retrieve details of a release by ID or slug.2 params

Retrieve details of a release by ID or slug.

NameTypeRequiredDescription
idstringrequiredRelease ID or slug
includeReleaseNotesbooleanoptionalInclude associated release notes
linearmcp_get_release_note#Retrieve release notes by ID or slug, including markdown content.2 params

Retrieve release notes by ID or slug, including markdown content.

NameTypeRequiredDescription
idstringrequiredRelease notes ID or slug
includeReleasesbooleanoptionalInclude associated releases
linearmcp_get_status_updates#List or get project/initiative status updates. Pass `id` to get a specific update, or filter to list.11 params

List or get project/initiative status updates. Pass `id` to get a specific update, or filter to list.

NameTypeRequiredDescription
typestringrequiredType of status update — project or initiative
createdAtstringoptionalCreated after: ISO-8601 date/duration (e.g., -P1D)
cursorstringoptionalNext page cursor
idstringoptionalStatus update ID - if provided, returns this specific update
includeArchivedbooleanoptionalInclude archived items
initiativestringoptionalInitiative name, ID, identifier (e.g., INIT-123), or slug
limitnumberoptionalMax results (default 50, max 250)
orderBystringoptionalSort: createdAt | updatedAt
projectstringoptionalProject name, ID, identifier (e.g., PROJ-123), or slug
updatedAtstringoptionalUpdated after: ISO-8601 date/duration (e.g., -P1D)
userstringoptionalUser ID, name, email, or "me"
linearmcp_get_team#Retrieve details of a specific Linear team1 param

Retrieve details of a specific Linear team

NameTypeRequiredDescription
querystringrequiredTeam UUID, key, or name
linearmcp_get_user#Retrieve details of a specific Linear user1 param

Retrieve details of a specific Linear user

NameTypeRequiredDescription
querystringrequiredUser ID, name, email, or "me"
linearmcp_get_workspace#Retrieve the connected Linear workspace0 params

Retrieve the connected Linear workspace

linearmcp_list_agent_skills#List Linear Agent skills available to the authenticated user.3 params

List Linear Agent skills available to the authenticated user.

NameTypeRequiredDescription
cursorstringoptionalNext page cursor
limitnumberoptionalMax results (default 50, max 250)
orderBystringoptionalSort: createdAt | updatedAt
linearmcp_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.10 params

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.

NameTypeRequiredDescription
cursorstringoptionalNext page cursor
documentIdstringoptionalDocument ID or slug (provide exactly one parent)
initiativeIdstringoptionalInitiative name, ID, identifier (e.g., INIT-123), or slug (provide exactly one parent)
issueIdstringoptionalIssue ID or identifier (e.g., LIN-123) (provide exactly one parent)
limitnumberoptionalMax results (default 50, max 250)
milestoneIdstringoptionalMilestone UUID (provide exactly one parent). Resolve milestone names via list_milestones first.
orderBystringoptionalSort: createdAt | updatedAt
projectIdstringoptionalProject name, ID, identifier (e.g., PROJ-123), or slug (provide exactly one parent)
statusUpdateIdstringoptionalStatus update UUID (provide exactly one parent). Resolve status updates via get_status_updates first.
statusUpdateTypestringoptionalType of status update named by statusUpdateId, as returned by get_status_updates. Only valid together with statusUpdateId; omit to check both project and initiative status updates.
linearmcp_list_customers#List customers in the user's Linear workspace11 params

List customers in the user's Linear workspace

NameTypeRequiredDescription
createdAtstringoptionalCreated after: ISO-8601 date/duration (e.g., -P1D)
cursorstringoptionalNext page cursor
includeArchivedbooleanoptionalInclude archived items
includeNeedsbooleanoptionalInclude associated customer needs
limitnumberoptionalMax results (default 50, max 250)
orderBystringoptionalSort: createdAt | updatedAt
ownerstringoptionalUser ID, name, email, or "me"
querystringoptionalSearch customer name
statusstringoptionalCustomer status name or ID
tierstringoptionalCustomer tier name or ID
updatedAtstringoptionalUpdated after: ISO-8601 date/duration (e.g., -P1D)
linearmcp_list_cycles#Retrieve cycles for a specific Linear team2 params

Retrieve cycles for a specific Linear team

NameTypeRequiredDescription
teamIdstringrequiredTeam ID
typestringoptionalFilter: current, previous, next, or all
linearmcp_list_diffs#List Linear diff pull requests visible to the authenticated user7 params

List Linear diff pull requests visible to the authenticated user

NameTypeRequiredDescription
cursorstringoptionalNext page cursor
limitnumberoptionalMax results (default 50, max 250)
orderBystringoptionalSort: createdAt | updatedAt
ownerstringoptionalFilter returned diffs by repository owner
querystringoptionalBroad search by title, branch, PR number, or bare slug
repostringoptionalFilter returned diffs by repository name
statusstringoptionalFilter returned diffs by pull request status
linearmcp_list_documents#List documents in the user's Linear workspace12 params

List documents in the user's Linear workspace

NameTypeRequiredDescription
createdAtstringoptionalCreated after: ISO-8601 date/duration (e.g., -P1D)
creatorIdstringoptionalFilter by creator ID
cursorstringoptionalNext page cursor
fieldsarrayoptionalFields to include in each result. id is always included. Omit or pass an empty array for the default response.
includeArchivedbooleanoptionalInclude archived documents
initiativeIdstringoptionalFilter by initiative ID
limitnumberoptionalMax results (default 50, max 250)
orderBystringoptionalSort: createdAt | updatedAt
projectIdstringoptionalFilter by project ID
querystringoptionalSearch query
teamIdstringoptionalFilter by team ID
updatedAtstringoptionalUpdated after: ISO-8601 date/duration (e.g., -P1D)
linearmcp_list_initiative_labels#List available initiative labels in the Linear workspace4 params

List available initiative labels in the Linear workspace

NameTypeRequiredDescription
cursorstringoptionalNext page cursor
limitnumberoptionalMax results (default 50, max 250)
namestringoptionalFilter by name
orderBystringoptionalSort: createdAt | updatedAt
linearmcp_list_initiatives#List initiatives in the user's Linear workspace15 params

List initiatives in the user's Linear workspace

NameTypeRequiredDescription
createdAtstringoptionalCreated after: ISO-8601 date/duration (e.g., -P1D)
cursorstringoptionalNext page cursor
fieldsarrayoptionalFields to include in each result. id is always included. Omit or pass an empty array for the default response.
includeArchivedbooleanoptionalInclude archived items
includeProjectsbooleanoptionalInclude projects
includeSubInitiativesbooleanoptionalInclude sub-initiatives
labelstringoptionalLabel name or ID
leadTeamstringoptionalLead team name, key, or ID
limitnumberoptionalMax results (default 50, max 250)
orderBystringoptionalSort: createdAt | updatedAt
ownerstringoptionalUser ID, name, email, or "me"
parentInitiativestringoptionalParent initiative. Initiative name, ID, identifier (e.g., INIT-123), or slug
querystringoptionalSearch initiative name
statusstringoptionalStatus of the initiative
updatedAtstringoptionalUpdated after: ISO-8601 date/duration (e.g., -P1D)
linearmcp_list_issue_labels#List available issue labels in a Linear workspace or team5 params

List available issue labels in a Linear workspace or team

NameTypeRequiredDescription
cursorstringoptionalNext page cursor
limitnumberoptionalMax results (default 50, max 250)
namestringoptionalFilter by name
orderBystringoptionalSort: createdAt | updatedAt
teamstringoptionalTeam name or ID
linearmcp_list_issue_statuses#List available issue statuses in a Linear team1 param

List available issue statuses in a Linear team

NameTypeRequiredDescription
teamstringrequiredTeam name or ID
linearmcp_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.18 params

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.

NameTypeRequiredDescription
assigneestringoptionalUser ID, name, email, or "me"
createdAtstringoptionalCreated after: ISO-8601 date/duration (e.g., -P1D)
cursorstringoptionalNext page cursor
cyclestringoptionalCycle name, number, or ID
delegatestringoptionalAgent name or ID. When the user asks to delegate to "Linear" or "the Linear agent", this refers to the "Linear" app user specifically
fieldsarrayoptionalFields to include in each result. id is always included. Omit or pass an empty array for the default response.
includeArchivedbooleanoptionalInclude archived items
labelstringoptionalLabel name or ID
limitnumberoptionalMax results (default 50, max 250)
orderBystringoptionalSort: createdAt | updatedAt
parentIdstringoptionalParent issue ID or identifier (e.g., LIN-123)
prioritynumberoptional0=None, 1=Urgent, 2=High, 3=Medium, 4=Low
projectstringoptionalProject name, ID, identifier (e.g., PROJ-123), or slug
querystringoptionalSearch issue title or description
releasestringoptionalRelease ID or slug
statestringoptionalState type, name, or ID
teamstringoptionalTeam name or ID
updatedAtstringoptionalUpdated after: ISO-8601 date/duration (e.g., -P1D)
linearmcp_list_milestones#List all milestones in a Linear project1 param

List all milestones in a Linear project

NameTypeRequiredDescription
projectstringrequiredProject name, ID, identifier (e.g., PROJ-123), or slug
linearmcp_list_project_labels#List available project labels in the Linear workspace4 params

List available project labels in the Linear workspace

NameTypeRequiredDescription
cursorstringoptionalNext page cursor
limitnumberoptionalMax results (default 50, max 250)
namestringoptionalFilter by name
orderBystringoptionalSort: createdAt | updatedAt
linearmcp_list_projects#List projects in the user's Linear workspace15 params

List projects in the user's Linear workspace

NameTypeRequiredDescription
createdAtstringoptionalCreated after: ISO-8601 date/duration (e.g., -P1D)
cursorstringoptionalNext page cursor
fieldsarrayoptionalFields to include in each result. id is always included. Omit or pass an empty array for the default response.
includeArchivedbooleanoptionalInclude archived items
includeMembersbooleanoptionalInclude project members
includeMilestonesbooleanoptionalInclude milestones
initiativestringoptionalInitiative name, ID, identifier (e.g., INIT-123), or slug
labelstringoptionalLabel name or ID
limitnumberoptionalMax results (default 50, max 50)
memberstringoptionalUser ID, name, email, or "me"
orderBystringoptionalSort: createdAt | updatedAt
querystringoptionalSearch project name
statestringoptionalState type, name, or ID
teamstringoptionalTeam name or ID
updatedAtstringoptionalUpdated after: ISO-8601 date/duration (e.g., -P1D)
linearmcp_list_release_notes#List release notes in the workspace, optionally filtered by pipeline or covered release.11 params

List release notes in the workspace, optionally filtered by pipeline or covered release.

NameTypeRequiredDescription
createdAtstringoptionalCreated after: ISO-8601 date/duration (e.g., -P1D)
cursorstringoptionalNext page cursor
includeArchivedbooleanoptionalInclude archived items
includeContentbooleanoptionalInclude markdown release notes content
includeReleasesbooleanoptionalInclude associated releases
limitnumberoptionalMax results (default 50, max 250)
orderBystringoptionalSort: createdAt | updatedAt
pipelinestringoptionalRelease pipeline ID, slug, or exact name
querystringoptionalSearch release notes title
releasestringoptionalRelease ID or slug
updatedAtstringoptionalUpdated after: ISO-8601 date/duration (e.g., -P1D)
linearmcp_list_release_pipelines#List release pipelines in the workspace.12 params

List release pipelines in the workspace.

NameTypeRequiredDescription
createdAtstringoptionalCreated after: ISO-8601 date/duration (e.g., -P1D)
cursorstringoptionalNext page cursor
includeArchivedbooleanoptionalInclude archived items
includeStagesbooleanoptionalInclude each pipeline's stages
includeTeamsbooleanoptionalInclude each pipeline's teams
isProductionbooleanoptionalFilter by production pipeline flag
limitnumberoptionalMax results (default 50, max 250)
orderBystringoptionalSort: createdAt | updatedAt
querystringoptionalSearch pipeline name
teamstringoptionalTeam name or ID
typestringoptionalPipeline type: continuous | scheduled
updatedAtstringoptionalUpdated after: ISO-8601 date/duration (e.g., -P1D)
linearmcp_list_releases#List releases in the workspace, with optional filtering by pipeline, stage, version, and text.13 params

List releases in the workspace, with optional filtering by pipeline, stage, version, and text.

NameTypeRequiredDescription
createdAtstringoptionalCreated after: ISO-8601 date/duration (e.g., -P1D)
cursorstringoptionalNext page cursor
hasReleaseNotesbooleanoptionalFilter to releases that do (true) or do not (false) have release notes
includeArchivedbooleanoptionalInclude archived items
includeReleaseNotesbooleanoptionalInclude associated release notes
limitnumberoptionalMax results (default 50, max 250)
orderBystringoptionalSort: createdAt | updatedAt
pipelinestringoptionalRelease pipeline ID, slug, or exact name
querystringoptionalSearch release name or version
stagestringoptionalRelease stage ID or exact name
stageTypestringoptionalFilter by stage lifecycle type
updatedAtstringoptionalUpdated after: ISO-8601 date/duration (e.g., -P1D)
versionstringoptionalExact version match
linearmcp_list_teams#List teams in the user's Linear workspace7 params

List teams in the user's Linear workspace

NameTypeRequiredDescription
createdAtstringoptionalCreated after: ISO-8601 date/duration (e.g., -P1D)
cursorstringoptionalNext page cursor
includeArchivedbooleanoptionalInclude archived teams
limitnumberoptionalMax results (default 50, max 250)
orderBystringoptionalSort: createdAt | updatedAt
querystringoptionalSearch query
updatedAtstringoptionalUpdated after: ISO-8601 date/duration (e.g., -P1D)
linearmcp_list_users#Retrieve users in the Linear workspace5 params

Retrieve users in the Linear workspace

NameTypeRequiredDescription
cursorstringoptionalNext page cursor
limitnumberoptionalMaximum number of users to return
orderBystringoptionalSort: createdAt | updatedAt
querystringoptionalFilter by name or email
teamstringoptionalTeam name or ID
linearmcp_merge_diff#Merge a Linear diff or add it to the repository's merge queue2 params

Merge a Linear diff or add it to the repository's merge queue

NameTypeRequiredDescription
urlOrIdstringrequiredLinear review URL, diff slug, pull request ID, Linear full identifier, or GitHub PR URL
mergeMethodstringoptionalMerge method; omit to use the repository default
linearmcp_prepare_attachment_upload#Prepare a direct Linear file upload for an existing issue. Workflow: 1. Call this with issue, filename, contentType, and size. 2. Upload raw bytes with PUT to uploadRequest.url. 3. After PUT succeeds, call create_attachment_from_upload with assetUrl.6 params

Prepare a direct Linear file upload for an existing issue. Workflow: 1. Call this with issue, filename, contentType, and size. 2. Upload raw bytes with PUT to uploadRequest.url. 3. After PUT succeeds, call create_attachment_from_upload with assetUrl.

NameTypeRequiredDescription
contentTypestringrequiredMIME type, e.g. image/png or application/pdf
filenamestringrequiredFilename for the upload, e.g. screenshot.png
issuestringrequiredIssue ID or identifier (e.g., LIN-123)
sizeintegerrequiredExact file size in bytes. Must be smaller than 2 GB.
subtitlestringoptionalSuggested attachment subtitle for the finalize step
titlestringoptionalSuggested attachment title for the finalize step
linearmcp_resolve_diff_thread#Resolve or reopen a top-level comment thread on a Linear diff2 params

Resolve or reopen a top-level comment thread on a Linear diff

NameTypeRequiredDescription
threadIdstringrequiredTop-level diff thread/comment ID
resolvedbooleanoptionalTrue to resolve the thread; false to reopen it
linearmcp_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. To reply to an existing thread, pass parentId and body.10 params

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. To reply to an existing thread, pass parentId and body.

NameTypeRequiredDescription
bodystringrequiredContent as Markdown. Do not escape the string, use literal newlines and special characters, not escape sequences. To mention a user, use @displayName (e.g., @johndoe)
documentIdstringoptionalDocument ID or slug (provide exactly one parent)
idstringoptionalComment ID. If provided, updates the existing comment
initiativeIdstringoptionalInitiative name, ID, identifier (e.g., INIT-123), or slug (provide exactly one parent)
issueIdstringoptionalIssue ID or identifier (e.g., LIN-123) (provide exactly one parent)
milestoneIdstringoptionalMilestone UUID (provide exactly one parent). Resolve milestone names via list_milestones first.
parentIdstringoptionalParent comment ID (for replies, only when creating)
projectIdstringoptionalProject name, ID, identifier (e.g., PROJ-123), or slug (provide exactly one parent)
statusUpdateIdstringoptionalStatus update UUID (provide exactly one parent). Resolve status updates via get_status_updates first.
statusUpdateTypestringoptionalType of status update named by statusUpdateId, as returned by get_status_updates. Only valid together with statusUpdateId; rejected when id or parentId is provided.
linearmcp_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.9 params

Create or update a Linear customer. If id is provided, updates the existing customer; otherwise creates a new one. When creating, name is required.

NameTypeRequiredDescription
domainsarrayoptionalDomains to add to this customer. Append-only; existing domains are never removed
externalIdsarrayoptionalExternal system IDs to add. Append-only; existing IDs are never removed
idstringoptionalCustomer ID. If provided, updates the existing customer
namestringoptionalCustomer name (required when creating)
ownerstringoptionalUser ID, name, email, or "me"
revenuenumberoptionalAnnual revenue generated by the customer
sizenumberoptionalSize of the customer organization
statusstringoptionalCustomer status name or ID
tierstringoptionalCustomer tier name or ID
linearmcp_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.7 params

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.

NameTypeRequiredDescription
bodystringoptionalDescription of the customer need (required when creating)
customerstringoptionalCustomer ID or name
idstringoptionalCustomer need ID. If provided, updates the existing need
issuestringoptionalIssue ID or identifier (e.g., LIN-123) to associate with this need
prioritynumberoptionalWhether the need is important. 0 = Not important, 1 = Important
projectstringoptionalProject name, ID, identifier (e.g., PROJ-123), or slug to associate with this need
sourcestringoptionalURL to attach as the source for this customer need, such as a transcript or support thread
linearmcp_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.8 params

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.

NameTypeRequiredDescription
bodystringrequiredComment body as plain text
anchorobjectoptionalOptional comment anchor copied from a diff thread or built for a file or diff hunk
anchorContentstringoptionalExact source text of the anchor's end line; stored with an inline draft so it can be re-anchored after the diff receives new revisions
commentIdstringoptionalExisting comment ID to edit
draftbooleanoptionalSave as a private persisted draft without submitting
draftIdstringoptionalExisting persisted draft ID to edit or submit
parentIdstringoptionalTop-level comment ID to reply to; also required when submitting a persisted reply draft
urlOrIdstringoptionalLinear review URL, diff slug, pull request ID, Linear full identifier, or GitHub PR URL
linearmcp_save_document#Create or update a Linear document. If id is provided, updates 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.11 params

Create or update a Linear document. If id is provided, updates 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.

NameTypeRequiredDescription
colorstringoptionalHex color
contentstringoptionalContent as Markdown. Do not escape the string, use literal newlines and special characters, not escape sequences. To mention a user, use @displayName (e.g., @johndoe)
cyclestringoptionalCycle name, number, or ID. When passing a name or number, also pass team to disambiguate.
iconstringoptionalIcon name or emoji code (e.g. "Rocket" or ":eagle:"), not a raw Unicode emoji
idstringoptionalDocument ID or slug to update. Omit to create a new document.
initiativestringoptionalInitiative name, ID, identifier (e.g., INIT-123), or slug
issuestringoptionalIssue ID or identifier (e.g., LIN-123)
patcharrayoptionalPartial edits applied to the current content, in order and atomically (one failing operation aborts the whole save). Every anchor string must match the current content exactly once. Only valid on update, in place of the full content field.
projectstringoptionalProject name, ID, identifier (e.g., PROJ-123), or slug
teamstringoptionalTeam name or ID. Attaches the document to the team, unless cycle is also passed, in which case it disambiguates the cycle.
titlestringoptionalDocument title (required when creating)
linearmcp_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.14 params

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.

NameTypeRequiredDescription
colorstringoptionalHex color
descriptionstringoptionalContent as Markdown. Do not escape the string, use literal newlines and special characters, not escape sequences. To mention a user, use @displayName (e.g., @johndoe)
iconstringoptionalIcon name or emoji code (e.g. "Rocket" or ":eagle:"), not a raw Unicode emoji
idstringoptionalInitiative name, ID, identifier (e.g., INIT-123), or slug. If provided, updates the existing initiative
labelsarrayoptionalLabel names or IDs as a JSON array of strings (e.g. ["Bug", "Urgent"]). Replaces the full label set; existing labels not included are removed. Omit to leave labels unchanged
leadTeamstringoptionalLead team name, key, or ID. Null to remove the lead team
namestringoptionalInitiative name (required when creating)
ownerstringoptionalUser ID, name, email, or "me". Null to remove
parentInitiativesarrayoptionalParent initiatives to add. Initiative name, ID, identifier (e.g., INIT-123), or slug. Appended to existing parents
patcharrayoptionalPartial edits applied to the current content, in order and atomically (one failing operation aborts the whole save). Every anchor string must match the current content exactly once. Only valid on update, in place of the full description field.
priorityintegeroptional0=None, 1=Urgent, 2=High, 3=Medium, 4=Low
statusstringoptionalInitiative status (Proposed, Planned, Active, Completed, Canceled)
summarystringoptionalShort summary (max 255 chars)
targetDatestringoptionalTarget date (ISO format)
linearmcp_save_issue#Create or update a Linear issue. If id is provided, updates the existing issue; otherwise creates a new one. When creating, title and team are required. Note: use assignee (not assigneeId) to set the assignee, it accepts a user ID, name, email, or "me".29 params

Create or update a Linear issue. If id is provided, updates the existing issue; otherwise creates a new one. When creating, title and team are required. Note: use assignee (not assigneeId) to set the assignee, it accepts a user ID, name, email, or "me".

NameTypeRequiredDescription
addReleasesarrayoptionalRelease IDs or slugs to add. Append-only; existing releases are never removed
assigneestringoptionalUser ID, name, email, or 'me'. Null to remove assignee.
blockedByarrayoptionalIssue IDs/identifiers blocking this. Append-only; existing relations are never removed
blocksarrayoptionalIssue IDs/identifiers this blocks. Append-only; existing relations are never removed
cyclestringoptionalCycle name, number, or ID. Pass null to remove from cycle.
delegatestringoptionalAgent name or ID. When the user asks to delegate to "Linear" or "the Linear agent", this refers to the "Linear" app user specifically. Null to remove delegate.
descriptionstringoptionalContent as Markdown. Do not escape the string, use literal newlines and special characters, not escape sequences. To mention a user, use @displayName (e.g., @johndoe)
dueDatestringoptionalDue date (ISO format). On update, pass null to remove the due date
duplicateOfstringoptionalIssue ID this is a duplicate of. Pass null to remove.
estimatestringoptionalIssue estimate value. On create, pass null or omit for no estimate. On update, pass null to clear the estimate; omitting leaves it unchanged. 0 is a real estimate only on teams that allow zero estimates.
idstringoptionalOnly for updating. Issue ID or identifier (e.g., LIN-123). Do NOT pass when creating.
labelsarrayoptionalLabel names or IDs to apply to the issue. Replaces the full label set; existing labels not included are removed.
linksarrayoptionalLink attachments to add [{url, title}]. Append-only; existing links are never removed
milestonestringoptionalMilestone name or ID
parentIdstringoptionalParent issue ID or identifier (e.g., LIN-123). Null to remove.
patcharrayoptionalPartial edits applied to the current content, in order and atomically (one failing operation aborts the whole save). Every anchor string must match the current content exactly once. Only valid on update, in place of the full description field.
prioritynumberoptional0=None, 1=Urgent, 2=High, 3=Medium, 4=Low
projectstringoptionalProject name, ID, identifier (e.g., PROJ-123), or slug. Null to remove
relatedToarrayoptionalRelated issue IDs/identifiers. Append-only; existing relations are never removed
removeBlockedByarrayoptionalIssue IDs/identifiers to remove as blockers of this issue
removeBlocksarrayoptionalIssue IDs/identifiers to stop blocking
removeRelatedToarrayoptionalRelated issue IDs/identifiers to remove
removeReleasesarrayoptionalRelease IDs or slugs to remove. Only valid when updating an existing issue
setReleasesarrayoptionalReplace all releases on the issue with these. Cannot be combined with addReleases/removeReleases
slaBreachesAtstringoptionalISO-8601 timestamp when the SLA will breach. On update, pass null to remove the SLA
slaTypestringoptionalSLA day counting type: "all" or "onlyBusinessDays". Only use with slaBreachesAt; null means unset
statestringoptionalState type, name, or ID
teamstringoptionalTeam name or ID (required when creating)
titlestringoptionalIssue title (required when creating)
linearmcp_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.5 params

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.

NameTypeRequiredDescription
projectstringrequiredProject name, ID, identifier (e.g., PROJ-123), or slug
descriptionstringoptionalMilestone description
idstringoptionalMilestone name or ID. If provided, updates existing
namestringoptionalMilestone name (required when creating)
targetDatestringoptionalTarget completion date (ISO format, null to remove)
linearmcp_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. To change parts of the description without resending all of it, pass patch instead of description.22 params

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. To change parts of the description without resending all of it, pass patch instead of description.

NameTypeRequiredDescription
addInitiativesarrayoptionalInitiatives to add. Initiative name, ID, identifier (e.g., INIT-123), or slug
addTeamsarrayoptionalTeam name or ID to add
colorstringoptionalHex color
descriptionstringoptionalContent as Markdown. Do not escape the string, use literal newlines and special characters, not escape sequences. To mention a user, use @displayName (e.g., @johndoe)
iconstringoptionalIcon name or emoji code
idstringoptionalProject name, ID, identifier (e.g., PROJ-123), or slug. If provided, updates the existing project
labelsarrayoptionalLabel names or IDs
leadstringoptionalUser ID, name, email, or 'me'. Null to remove
linksarrayoptionalExternal resource links to add [{url, title}]. Append-only; existing links are never removed
namestringoptionalProject name (required when creating)
patcharrayoptionalPartial edits applied to the current content, in order and atomically (one failing operation aborts the whole save). Every anchor string must match the current content exactly once. Only valid on update, in place of the full description field.
priorityintegeroptional0=None, 1=Urgent, 2=High, 3=Medium, 4=Low
removeInitiativesarrayoptionalInitiatives to remove. Initiative name, ID, identifier (e.g., INIT-123), or slug
removeTeamsarrayoptionalTeam name or ID to remove
setInitiativesarrayoptionalReplace all initiatives with these. Initiative name, ID, identifier (e.g., INIT-123), or slug. Cannot combine with addInitiatives/removeInitiatives
setTeamsarrayoptionalReplace all teams with these. Cannot combine with addTeams/removeTeams
startDatestringoptionalStart date (ISO format). Pair with startDateResolution to indicate precision (e.g. month, quarter)
startDateResolutionstringoptionalStart date resolution
statestringoptionalProject state
summarystringoptionalShort summary (max 255 chars)
targetDatestringoptionalTarget date (ISO format). Pair with targetDateResolution to indicate precision (e.g. month, quarter)
targetDateResolutionstringoptionalTarget date resolution
linearmcp_save_release#Create or update a release. If id is provided, updates the existing release; otherwise creates a new one. When creating, name and pipeline are required. Release status is modeled as the release pipeline stage.12 params

Create or update a release. If id is provided, updates the existing release; otherwise creates a new one. When creating, name and pipeline are required. Release status is modeled as the release pipeline stage.

NameTypeRequiredDescription
commitShastringoptionalCommit SHA associated with the release
completedAtstringoptionalCompleted timestamp (ISO DateTime, null to remove)
createdAtstringoptionalImport/create timestamp (ISO DateTime)
descriptionstringoptionalRelease description
idstringoptionalRelease ID or slug to update. Omit to create a new release.
namestringoptionalRelease name (required when creating)
pipelinestringoptionalRelease pipeline ID, slug, or exact name (required when creating)
stagestringoptionalRelease stage ID, exact name, or lifecycle type within the release pipeline
startDatestringoptionalEstimated start date (ISO YYYY-MM-DD, null to remove)
startedAtstringoptionalStarted timestamp (ISO DateTime, null to remove)
targetDatestringoptionalEstimated completion date (ISO YYYY-MM-DD, null to remove)
versionstringoptionalVersion identifier
linearmcp_save_release_note#Create or update release notes. If id is provided, updates the existing release notes; otherwise creates a new one. When creating, pipeline and either releases or a release range are required. To change parts of the content without resending all of it, pass patch instead of content.8 params

Create or update release notes. If id is provided, updates the existing release notes; otherwise creates a new one. When creating, pipeline and either releases or a release range are required. To change parts of the content without resending all of it, pass patch instead of content.

NameTypeRequiredDescription
contentstringoptionalContent as Markdown. Do not escape the string, use literal newlines and special characters, not escape sequences. To mention a user, use @displayName (e.g., @johndoe)
idstringoptionalRelease notes ID or slug to update. Omit to create new release notes.
patcharrayoptionalPartial edits applied to the current content, in order and atomically (one failing operation aborts the whole save). Every anchor string must match the current content exactly once. Only valid on update, in place of the full content field.
pipelinestringoptionalRelease pipeline ID, slug, or exact name (required when creating)
rangeFromReleasestringoptionalOldest release ID or slug in the note range
rangeToReleasestringoptionalNewest release ID or slug in the note range
releasesarrayoptionalRelease IDs or slugs to include in the note
titlestringoptionalRelease notes title
linearmcp_save_status_update#Create or update a project/initiative status update. Omit `id` to create, provide `id` to update.7 params

Create or update a project/initiative status update. Omit `id` to create, provide `id` to update.

NameTypeRequiredDescription
typestringrequiredType of status update
bodystringoptionalContent as Markdown. Do not escape the string — use literal newlines and special characters, not escape sequences. To mention a user, use @displayName (e.g., @johndoe)
healthstringoptionalHealth status of the project or initiative
idstringoptionalStatus update ID - if provided, updates this existing update
initiativestringoptionalInitiative name, ID, identifier (e.g., INIT-123), or slug
isDiffHiddenbooleanoptionalDeprecated. Hide diff with previous update (create only)
projectstringoptionalProject name, ID, identifier (e.g., PROJ-123), or slug
linearmcp_search_documentation#Search Linear's documentation to learn about features and usage2 params

Search Linear's documentation to learn about features and usage

NameTypeRequiredDescription
querystringrequiredSearch query
pagenumberoptionalPage number
linearmcp_submit_diff_review#Approve a Linear diff, request changes, or submit a review comment3 params

Approve a Linear diff, request changes, or submit a review comment

NameTypeRequiredDescription
decisionstringrequiredReview decision: approved, changesRequested, or commented
urlOrIdstringrequiredLinear review URL, diff slug, pull request ID, Linear full identifier, or GitHub PR URL
bodystringoptionalOptional review body; required when requesting changes or commenting