Skip to main content
MCP SERVER

Linear MCP Server

Connect Linear to your AI coding tool for issue triage, creation, and status updates.

Productivity · The Codegen Team · Updated Jun 2026

The Linear MCP server bridges your AI coding tool and Linear's issue tracking API. Ask Claude Code or Cursor to search your backlog, create issues with code context, update statuses, and filter by team or priority. Everything happens through natural language in your editor or terminal.

Multiple community implementations exist because Linear has not released an official MCP server. The most commonly used package is linear-mcp-server (by jerhadf on npm), which covers core issue operations through Linear's GraphQL API. For teams that need project management, cycles, roadmaps, and document access, the @tacticlaunch/mcp-linear package exposes a broader set of capabilities.

All implementations authenticate via Linear Personal Access Tokens. You generate a token in Linear's settings, pass it as an environment variable, and the server handles GraphQL queries on your behalf. No OAuth flow to manage for individual use.

Install

$ npx -y linear-mcp-server

Configuration

Pick your tool, copy the snippet into its MCP config file, and restart the tool.

Run in terminal (not inside Claude Code CLI) json
claude mcp add --transport stdio linear 
  --env LINEAR_API_KEY=$LINEAR_API_KEY 
  -- npx -y linear-mcp-server

# Or via add-json for the full config:
claude mcp add-json linear '{
  "command": "npx",
  "args": ["-y", "linear-mcp-server"],
  "env": {
    "LINEAR_API_KEY": "'"$LINEAR_API_KEY"'"
  }
}'
~/.cursor/mcp.json json
{
  "mcpServers": {
    "linear": {
      "command": "npx",
      "args": ["-y", "linear-mcp-server"],
      "env": {
        "LINEAR_API_KEY": "your_linear_api_key"
      }
    }
  }
}
~/Library/Application Support/Claude/claude_desktop_config.json json
{
  "mcpServers": {
    "linear": {
      "command": "npx",
      "args": ["-y", "linear-mcp-server"],
      "env": {
        "LINEAR_API_KEY": "your_linear_api_key"
      }
    }
  }
}
~/.windsurf/mcp.json json
{
  "mcpServers": {
    "linear": {
      "command": "npx",
      "args": ["-y", "linear-mcp-server"],
      "env": {
        "LINEAR_API_KEY": "your_linear_api_key"
      }
    }
  }
}

Capabilities

What the server exposes to your AI through MCP.

Capability Type Description
Search Issues Tool Query issues with filters for team, status, assignee, priority, and labels. Returns issue titles, descriptions, and metadata.
Create Issue Tool Create new issues with title, description (markdown supported), team assignment, priority level (0-4), assignee, and label IDs.
Update Issue Tool Modify existing issues including title, description, workflow state, assignee, and priority. Supports status transitions.
List Teams Tool Retrieve all teams in the workspace with team IDs needed for issue creation and filtering.
Get My Issues Tool Retrieve issues assigned to the authenticated user with filtering by status and priority.
Issue Details Resource Read-only access to individual issue data via linear-issue:// URIs, including comments, activity, and linked project info.
Organization Info Resource Read-only access to workspace and team structure via linear://organization and linear://teams URIs.

Authentication

This server uses API Key. Set it up once and the AI tool injects it on every call.

Generate a Linear API Key

Go to Linear Settings > API and click Create API Key. Give it a descriptive label like “MCP Server” and select Full Access for permissions. Copy the key immediately. Linear only shows it once.

Set the Environment Variable

Export the key in your shell profile so it persists across sessions.

export LINEAR_API_KEY=lin_api_your_key_here

Add this line to ~/.zshrc or ~/.bashrc and restart your shell. The MCP server reads from the LINEAR_API_KEY environment variable at startup.

Verify the Connection

After configuring your tool, run a test query. In Claude Code, try asking “What issues are assigned to me in Linear?” If the server is connected, it will return your issue list. If it fails, run claude mcp get linear to check the server status.

When to Connect Linear Through MCP

The primary use case is triage without context switching. You ask Claude Code to check what is assigned to you, it pulls your issues from Linear, and you make decisions about priority without opening a browser tab. The round trip from “what is on my plate?” to an updated issue status happens inside the terminal.

The second use case is issue creation from code context. You are reviewing a file, spot a bug, and tell Claude to create a Linear issue with the relevant code snippet as the description. Claude has the file path and line numbers. The issue lands in Linear with useful context instead of a vague title.

What Works and What Does Not

Issue search, creation, and updates work reliably across all implementations. Filtering by team, assignee, status, and priority is supported. You can add comments and change workflow states without leaving your session.

Where it falls short is real-time awareness. The MCP server responds to queries but does not push updates. If a teammate changes an issue’s status while you are working, Claude will not know until you explicitly ask it to check again. There is no webhook listener in the MCP server itself.

Project-level operations (creating projects, managing milestones, updating roadmaps) depend on which implementation you choose. The core linear-mcp-server package focuses on issues. The @tacticlaunch/mcp-linear package covers the full Linear API surface including cycles, roadmaps, customers, and documents.

Limitations

  • The server does not push real-time updates. If a teammate changes an issue while you are working, Claude will not know until you ask it to check again. There is no webhook listener in the MCP server.
  • The core linear-mcp-server package does not cover project management operations (creating projects, managing cycles, updating roadmaps). For those capabilities, use the @tacticlaunch/mcp-linear package instead.
  • OAuth support is inconsistent across implementations. Most developers use Personal Access Tokens, which work reliably but cannot be scoped to specific teams or permission levels. The token has full access to everything the generating user can see.

Frequently Asked Questions

Build faster with AI-powered agents

See how Codegen automates the full development workflow — from ticket to pull request.

Get Started →