Linear MCP Server

Provides access to Linear's issue tracking system through a standardized Model Context Protocol interface.

Local serverstdioTypeScript 1

What is the Linear MCP server?

Provides access to Linear's issue tracking system through a standardized Model Context Protocol interface. That is what the linear mcp server brings to an AI assistant: the same capability, reachable through the Model Context Protocol rather than a separate app or dashboard.

The short version

  • Create new issues and subissues with label support
  • Retrieve the list of linear projects
  • Retrieve the project updates
  • Create a new project update with health status
  • Update existing issues with full field modification
  • Delete issue with validation

Getting it running

Setup follows the usual MCP pattern — install or clone the server, register it in your client's configuration file, restart the client.

The tools it exposes

The server publishes 10 tools. What each one is for:

  • create_issue — Input Schema: json { "teamId": "string", "title": "string", "description": "string", "parentId": "string", "status": "string", "priority": "number"
  • update_issue — Input Schema: json { "issueId": "string", "title": "string", "description": "string", "status": "string", "priority": "number", "assigneeId": "string
  • get_issue — Get detailed information about a specific Linear issue with optional relationships
  • search_issues — Search for Linear issues using a query string and advanced filters. Supports Linear's powerful filtering capabilities
  • get_teams — Get a list of Linear teams with optional name/key filtering
  • delete_issue — The delete_issue tool exposed by this server
  • create_comment — Input Schema: json { "issueId": "string", "body": "string" }
  • get_projects — Get a list of Linear projects with optional name filtering and pagination
  • get_project_updates — Get project updates for a given project ID with optional filtering parameters
  • create_project_update — Input Schema: json { "projectId": "string", "body": "string", "health": "onTrack | atRisk | offTrack", "isDiffHidden": "boolean" }

What it needs from you

Configuration is passed through the environment: LINEAR_API_KEY. Treat anything key-shaped as a real credential — scope it to the minimum the server needs, and rotate it if it ever lands in a shared config.

  • Bun runtime (v1.0.0 or higher) - Linear account with API access

Things to watch

  • It runs with your machine's permissions. That is convenient and also the reason to think about what you point it at before you approve a tool call.
  • With 10 tools registered it takes up a noticeable share of the context window; turn it off in projects that never touch Linear.
  • Missing credentials fail quietly in some clients — if no tools show up, check the environment block first.
  • Keep per-call confirmation enabled while you learn its behaviour; it is the cheapest safeguard you have.

How it compares

Plenty of planning and project tracking servers cover similar ground. The differences that matter in practice are scope of access and how much setup stands between you and a working tool call. Linear's toolset — create_issue, update_issue, get_issue and 7 more — is a fair guide to whether it matches your workflow. It is maintained by packetnomad; worth a glance at recent repository activity before you build anything load-bearing on it.

SyncDev reviews every entry in this directory against the project's own documentation before publishing, and revisits them as servers change.

Available tools

ToolWhat it does
create_issueInput Schema: json { "teamId": "string", "title": "string", "description": "string", "parentId": "string", "status": "string", "priority": "number", "assigneeId": "string | 'me'", "labelIds": ["string"] }
update_issueInput Schema: json { "issueId": "string", "title": "string", "description": "string", "status": "string", "priority": "number", "assigneeId": "string | 'me'", "labelIds": ["string"], "cycleId": "string" }
get_issueGet detailed information about a specific Linear issue with optional relationships.
search_issuesSearch for Linear issues using a query string and advanced filters. Supports Linear's powerful filtering capabilities.
get_teamsGet a list of Linear teams with optional name/key filtering.
delete_issueThe delete_issue tool exposed by this server.
create_commentInput Schema: json { "issueId": "string", "body": "string" }
get_projectsGet a list of Linear projects with optional name filtering and pagination.
get_project_updatesGet project updates for a given project ID with optional filtering parameters.
create_project_updateInput Schema: json { "projectId": "string", "body": "string", "health": "onTrack | atRisk | offTrack", "isDiffHidden": "boolean" }

Configuration

  • Bun runtime (v1.0.0 or higher) - Linear account with API access
VariableDescriptionRequired
LINEAR_API_KEYCredential the server authenticates with.Yes

Example prompts to try

  • Use Linear to create issue.
  • Use Linear to update issue.
  • Use Linear to get issue.

Frequently asked questions

You can create, update, search, and delete Linear issues; manage projects and project updates; add comments with markdown support; and perform type-safe operations using Linear's official SDK.