adelaidasofia avatar

Linear MCP (multi-workspace, PAT auth)

adelaidasofia/linear-mcp

Connects Claude to Linear's project tracking API using Personal Access Tokens instead of OAuth, solving the official server's session persistence issues and enabling true multi-workspace routing from a single MCP instance. Exposes 57 tools covering teams, issues, projects, cycles, webhooks, notifications, attachments, and full-text search across all entity types. Enforces source attribution at the substrate layer by requiring canonical keys in issue descriptions and blocking duplicate creates through automatic deduplication checks. Destructive operations like webhook deletion use a draft-then-confirm flow with one-hour expiry. Ships with three prompts for triage, project status drafting, and inbox sweeps. Reach for this when you manage issues across multiple Linear workspaces and want PAT-based auth that survives client restarts without re-dancing through OAuth callbacks.

tools
25
auth
Secret needed
transport
STDIO
env var
1
last updated
May 24, 2026

Tools

25 tools

Public tool metadata for what this MCP can expose to an agent.

list_commentsList comments for a specific Linear issue1 params

List comments for a specific Linear issue

Parameters* required
issueIdstring
The issue ID
create_commentCreate a comment on a specific Linear issue3 params

Create a comment on a specific Linear issue

Parameters* required
bodystring
The content of the comment as Markdown
issueIdstring
The issue ID
parentIdstring
A parent comment ID to reply to
list_cyclesRetrieve cycles for a specific Linear team2 params

Retrieve cycles for a specific Linear team

Parameters* required
teamIdstring
The team ID
typestring
Retrieve the current, previous, next, or all cycles. If no type is provided all cycles in the team will be returnedone of current · previous · next
get_documentRetrieve a Linear document by ID or slug1 params

Retrieve a Linear document by ID or slug

Parameters* required
idstring
The document ID or slug
list_documentsList documents in the user's Linear workspace11 params

List documents in the user's Linear workspace

Parameters* required
afterstring
An ID to start from
beforestring
An ID to end at
createdAtstring
Return only documents created on or after this ISO-8601 date-time or duration. e.g. -P1D to get documents created in the last day
creatorIdstring
Filter by creator ID
includeArchivedboolean
Whether to include archived documentsdefault: false
initiativeIdstring
Filter by initiative ID
limitnumber
The number of results to return (Max is 250)default: 50
orderBystring
The order in which to return resultsone of createdAt · updatedAtdefault: updatedAt
projectIdstring
Filter by project ID
querystring
An optional search query
updatedAtstring
Return only documents updated on or after this ISO-8601 date-time or duration. e.g. -P1D to get documents updated in the last day
create_documentCreate a new document in Linear5 params

Create a new document in Linear

Parameters* required
colorstring
The color of the icon (hex color code)
contentstring
The document content as Markdown
iconstring
The icon of the document (for example, ":page_facing_up:")
projectstring
The project name or ID to associate the document with
titlestring
The title of the document
update_documentUpdate an existing Linear document6 params

Update an existing Linear document

Parameters* required
colorstring
The color of the icon (hex color code)
contentstring
The new document content as Markdown
iconstring
The icon of the document (for example, ":page_facing_up:")
idstring
The document ID to update
projectstring
The project name or ID to associate the document with
titlestring
The new title of the document
get_issueRetrieve detailed information about an issue by ID, including attachments and git branch name2 params

Retrieve detailed information about an issue by ID, including attachments and git branch name

Parameters* required
idstring
The issue ID
includeRelationsboolean
Whether to include blocking, related, and duplicate relations in the responsedefault: false
list_issuesList issues in the user's Linear workspace. For my issues, use "me" as the assignee.16 params

List issues in the user's Linear workspace. For my issues, use "me" as the assignee.

Parameters* required
afterstring
An ID to start from
assigneestring
The assignee to filter by (User ID, name, email, or "me")
beforestring
An ID to end at
createdAtstring
Return only issues created on or after this ISO-8601 date-time or duration. e.g. -P1D to get issues created in the last day
cyclestring
The cycle name or ID to filter by
delegatestring
An agent name or ID to filter by
includeArchivedboolean
Whether to include archived issues. Defaults to true.default: true
labelstring
A label name or ID to filter by
limitnumber
The number of results to return (Max is 250)default: 50
orderBystring
The order in which to return resultsone of createdAt · updatedAtdefault: updatedAt
parentIdstring
The parent issue ID to filter by
projectstring
The project name or ID to filter by
querystring
Search for content in the issue title or description
statestring
The state name or ID to filter by
teamstring
The team name or ID to filter by
updatedAtstring
Return only issues updated on or after this ISO-8601 date-time or duration. e.g. -P1D to get issues updated in the last day
create_issueCreate a new Linear issue18 params

Create a new Linear issue

Parameters* required
assigneestring
The user to assign (User ID, name, email, or "me")
blockedByarray
Array of issue IDs or identifiers (e.g., 'LIN-123') that block this issue. Creates blocking relations on issue creation.
blocksarray
Array of issue IDs or identifiers (e.g., 'LIN-123') that this issue blocks. Creates blocking relations on issue creation.
cyclestring
The cycle name, number, or ID to add the issue to
delegatestring
The agent name, displayName, or ID to delegate
descriptionstring
The issue description as Markdown
dueDatestring
The due date for the issue in ISO format
duplicateOfstring
Issue ID or identifier (e.g., 'LIN-123') that this issue is a duplicate of. Creates a duplicate relation on issue creation.
labelsarray
Array of label names or IDs to set on the issue (you can use label names directly, no need to look up IDs)
linksarray
Array of link objects to attach to the issue. Each object must contain a valid `url` and a non-empty `title`.
milestonestring
The milestone name or ID to add the issue to
parentIdstring
The parent issue ID, if this is a sub-issue
prioritynumber
The issue priority. 0 = No priority, 1 = Urgent, 2 = High, 3 = Normal, 4 = Low. Do not set this field unless explicitly requested.
projectstring
The project name or ID to add the issue to
relatedToarray
Array of issue IDs or identifiers (e.g., 'LIN-123') that are related to this issue. Creates related relations on issue creation.
statestring
The issue state type, name, or ID
teamstring
The team name or ID
titlestring
The issue title
update_issueUpdate an existing Linear issue19 params

Update an existing Linear issue

Parameters* required
assigneestring
The user to assign (User ID, name, email, or "me")
blockedByarray
Array of issue IDs or identifiers (e.g., 'LIN-123') that block this issue. WARNING: This REPLACES all existing blocked-by relations. You must include ALL blocking issues, not just new ones. Omit th...
blocksarray
Array of issue IDs or identifiers (e.g., 'LIN-123') that this issue blocks. WARNING: This REPLACES all existing blocking relations. You must include ALL issues you want blocked, not just new ones....
cyclestring
The cycle name, number, or ID
delegatestring
The agent name, displayName, or ID to delegate
descriptionstring
The issue description as Markdown
dueDatestring
The due date for the issue in ISO format
duplicateOfstring
Issue ID or identifier (e.g., 'LIN-123') this is a duplicate of. Replaces existing duplicate relation. Omit to leave unchanged, pass null to remove.
estimatenumber
The numerical issue estimate value
idstring
The issue ID
labelsarray
Array of label names or IDs to set on the issue (you can use label names directly, no need to look up IDs)
linksarray
Array of link objects to attach to the issue. Each object must contain a valid `url` and a non-empty `title`.
milestonestring
The milestone name or ID
parentIdstring
The parent issue ID, if this is a sub-issue
prioritynumber
The issue priority. 0 = No priority, 1 = Urgent, 2 = High, 3 = Normal, 4 = Low. Do not set this field unless explicitly requested.
projectstring
The project name or ID to add the issue to
relatedToarray
Array of issue IDs or identifiers (e.g., 'LIN-123') related to this issue. WARNING: This REPLACES all existing related relations. You must include ALL related issues, not just new ones. Omit this f...
statestring
The issue state type, name, or ID
titlestring
The issue title
list_issue_statusesList available issue statuses in a Linear team1 params

List available issue statuses in a Linear team

Parameters* required
teamstring
The team name or ID
get_issue_statusRetrieve 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

Parameters* required
idstring
The ID of the issue status to retrieve
namestring
The name of the issue status to retrieve
teamstring
The team name or ID
list_issue_labelsList available issue labels in a Linear workspace or team6 params

List available issue labels in a Linear workspace or team

Parameters* required
afterstring
An ID to start from
beforestring
An ID to end at
limitnumber
The number of results to return (Max is 250)default: 50
namestring
Filter by label name
orderBystring
The order in which to return resultsone of createdAt · updatedAtdefault: updatedAt
teamstring
The team name or ID
create_issue_labelCreate a new Linear issue label6 params

Create a new Linear issue label

Parameters* required
colorstring
The color of the label (hex color code)
descriptionstring
An optional description of the label
isGroupboolean
Whether this is label group (cannot be applied to issues directly)default: false
namestring
The name of the label
parentIdstring
The parent label UUID, if this is a child of a label group
teamIdstring
The team UUID. If not provided, the label will be created as a workspace label
list_projectsList projects in the user's Linear workspace12 params

List projects in the user's Linear workspace

Parameters* required
afterstring
An ID to start from
beforestring
An ID to end at
createdAtstring
Return only projects created on or after this ISO-8601 date-time or duration. e.g. -P1D to get projects created in the last day
includeArchivedboolean
Whether to include archived projectsdefault: false
initiativestring
The initiative name or ID to filter by
limitnumber
The number of results to return (Max is 250)default: 50
memberstring
A team member to filter by (User ID, name, email, or "me")
orderBystring
The order in which to return resultsone of createdAt · updatedAtdefault: updatedAt
querystring
Search for content in the project name
statestring
The state name or ID to filter by
teamstring
The team name or ID to filter by
updatedAtstring
Return only projects updated on or after this ISO-8601 date-time or duration. e.g. -P1D to get projects updated in the last day
get_projectRetrieve details of a specific project in Linear1 params

Retrieve details of a specific project in Linear

Parameters* required
querystring
The ID or name of the project to retrieve
create_projectCreate a new project in Linear13 params

Create a new project in Linear

Parameters* required
colorstring
A hex color for the project
descriptionstring
The full project description in Markdown format
iconstring
The icon of the project (for example, ":eagle:")
initiativestring
An initiative ID or name to associate with the project
labelsarray
Array of labels or IDs to set on the project
leadstring
The user to assign (User ID, name, email, or "me")
namestring
A descriptive name of the project
priorityinteger
The priority of the project. 0 = No priority, 1 = Urgent, 2 = High, 3 = Medium, 4 = Low
startDatestring
The start date of the project in ISO format
statestring
The state of the project
summarystring
A concise plaintext summary of the project (max 255 chars)
targetDatestring
The target date of the project in ISO format
teamstring
The team name or ID
update_projectUpdate an existing Linear project13 params

Update an existing Linear project

Parameters* required
colorstring
The new hex color for the project
descriptionstring
The full project description in Markdown format
iconstring
The new icon of the project (for example, ":eagle:")
idstring
The ID of the project to update
initiativesarray
Array of initiative IDs or names to associate with the project
labelsarray
Array of labels or IDs to set on the project
leadstring
The user to assign (User ID, name, email, or "me")
namestring
The new name of the project
priorityinteger
The priority of the project. 0 = No priority, 1 = Urgent, 2 = High, 3 = Medium, 4 = Low
startDatestring
The start date of the project in ISO format
statestring
The state of the project
summarystring
A concise plaintext summary of the project (max 255 chars)
targetDatestring
The target date of the project in ISO format
list_project_labelsList available project labels in the Linear workspace5 params

List available project labels in the Linear workspace

Parameters* required
afterstring
An ID to start from
beforestring
An ID to end at
limitnumber
The number of results to return (Max is 250)default: 50
namestring
Filter by label name
orderBystring
The order in which to return resultsone of createdAt · updatedAtdefault: updatedAt
list_teamsList teams in the user's Linear workspace8 params

List teams in the user's Linear workspace

Parameters* required
afterstring
An ID to start from
beforestring
An ID to end at
createdAtstring
Return only teams created on or after this ISO-8601 date-time or duration. e.g. -P1D to get teams created in the last day
includeArchivedboolean
Whether to include archived teamsdefault: false
limitnumber
The number of results to return (Max is 250)default: 50
orderBystring
The order in which to return resultsone of createdAt · updatedAtdefault: updatedAt
querystring
An optional search query
updatedAtstring
Return only teams updated on or after this ISO-8601 date-time or duration. e.g. -P1D to get teams updated in the last day
get_teamRetrieve details of a specific Linear team1 params

Retrieve details of a specific Linear team

Parameters* required
querystring
The UUID, key, or name of the team to retrieve
list_usersRetrieve users in the Linear workspace2 params

Retrieve users in the Linear workspace

Parameters* required
querystring
Optional query to filter users by name or email
teamstring
Optional team name or ID to filter members from
get_userRetrieve details of a specific Linear user1 params

Retrieve details of a specific Linear user

Parameters* required
querystring
The user to retrieve (User ID, name, email, or "me")
search_documentationSearch Linear's documentation to learn about features and usage2 params

Search Linear's documentation to learn about features and usage

Parameters* required
pagenumber
The page numberdefault: 0
querystring
The search query

Sponsors

Configuration

LINEAR_PAT*secret

Personal API Key from linear.app/settings/account/security

Readme

linear-mcp

Multi-workspace Linear MCP server with Personal API Key auth. Drop-in replacement for the official OAuth-only Linear MCP at mcp.linear.app/mcp.

Why this exists. The official Linear MCP is OAuth-only and single-workspace per instance. PAT auth plus persistent token storage plus multi-workspace routing kills three failure modes:

  1. The OAuth flow is brittle across MCP client session boundaries — auth state expires when a session resumes mid-flow.
  2. The localhost callback fails in some setups, forcing fragile paste-back flows.
  3. One MCP instance per workspace doubles config + OAuth dances.

This server replaces both with one entry. One install, N workspaces, never an OAuth dance again.

Install

From PyPI

pipx install adelaidasofia-linear-mcp

From source

git clone https://github.com/adelaidasofia/linear-mcp ~/.claude/linear-mcp
cd ~/.claude/linear-mcp
pip install -e .

Claude Desktop one-click

Download the latest .mcpb from Releases and double-click.

Configure


View the full README on GitHub

Details

Repository
github.com/adelaidasofia/linear-mcp
Category
Developer Tools
Package
adelaidasofia-linear-mcp
Transport
STDIO
Auth
Required
Registry
MCP registry, active

More from adelaidasofia

Related Developer Tools MCP servers

View all
1christopherdavenport avatargithub-twinchristopherdavenport/github-twinPersonal RAG over your GitHub history (commits, code, reviews), served to Claude Code over MCP.0stars
2thenextgennexus avatarGithub Mcp Servercom.thenextgennexus/github-mcp-serverGitHub repo search, stats, language breakdown and comparison as agent tools.0stars
3friendlygeorge avatarJira Mcp Serverfriendlygeorge/jira-mcp-serverMCP server for Jira — search, create, update, transition issues, manage projects, boards, and spr...0stars
4friendlygeorge avatarSentry Mcp Serverfriendlygeorge/sentry-mcp-serverMCP server for Sentry — error tracking, issues, releases, events, and projects for AI assistants.0stars
5hittheroad-git avatarHit The Road Rentalshittheroad-git/hittheroad-mcpSearch campervans and motorhomes worldwide. 300+ rental companies. AU, NZ, US, CA, UK and more.0stars
6crunchtools avatarMCP Gitlabcrunchtools/mcp-gitlabSecure MCP server for GitLab projects, merge requests, issues, and pipelines0stars