MCP Linear

Community MCP server for the Linear GraphQL API, covering issues, projects, releases, customers and webhooks

By TacticLaunch TypeScript Local · stdio Productivity

68 popularity score ★ 149 ↓ 84k/wk

Connect your client

Local (npm)

Add in one click

Opens the app, which asks before it adds the server. Then replace each <NAME> in its settings with your value.

Or add it by command or config

It needs LINEAR_API_TOKEN. Replace each <NAME> with your value.

Claude CodeTerminal
claude mcp add linear -e LINEAR_API_TOKEN=<LINEAR_API_TOKEN> -- npx -y @tacticlaunch/mcp-linear
Claude Desktopclaude_desktop_config.json
{
  "mcpServers": {
    "linear": {
      "command": "npx",
      "args": [
        "-y",
        "@tacticlaunch/mcp-linear"
      ],
      "env": {
        "LINEAR_API_TOKEN": "<LINEAR_API_TOKEN>"
      }
    }
  }
}
Cursor~/.cursor/mcp.json
{
  "mcpServers": {
    "linear": {
      "command": "npx",
      "args": [
        "-y",
        "@tacticlaunch/mcp-linear"
      ],
      "env": {
        "LINEAR_API_TOKEN": "<LINEAR_API_TOKEN>"
      }
    }
  }
}
VS Code.vscode/mcp.json
{
  "servers": {
    "linear": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@tacticlaunch/mcp-linear"
      ],
      "env": {
        "LINEAR_API_TOKEN": "<LINEAR_API_TOKEN>"
      }
    }
  }
}
Codex~/.codex/config.toml
[mcp_servers.linear]
command = "npx"
args = ["-y", "@tacticlaunch/mcp-linear"]

[mcp_servers.linear.env]
LINEAR_API_TOKEN = "<LINEAR_API_TOKEN>"
Gemini CLITerminal
gemini mcp add --scope user -e LINEAR_API_TOKEN=<LINEAR_API_TOKEN> linear npx -- -y @tacticlaunch/mcp-linear

Settings 4

LINEAR_API_TOKEN Required: Linear personal API key. LINEAR_API_KEY works too. Instead, you can use LINEAR_OAUTH_ACCESS_TOKEN, or tokens saved by mcp-linear auth login.
LINEAR_OAUTH_ACCESS_TOKEN Optional: OAuth access token; wins over an API key when both are set; needed for child OAuth app tools.
MCP_LINEAR_CONFIG_DIR Optional: Where auth login stores tokens (default ~/.config/mcp-linear).
MCP_LINEAR_DEBUG Optional: Set to 1 or true for debug logging.

What it does

MCP Linear is a local stdio server from TacticLaunch that drives a Linear workspace through Linear's GraphQL API. It goes well past issue tracking: an assistant can file, assign and re-prioritise issues, comment, and move work between projects, cycles and releases. It can also write project and initiative updates, maintain roadmaps, milestones, documents and saved views, record customers and customer needs, and set up workspace webhooks.

The installed release (1.4.5) registers 198 tools in src/tools/definitions/index.ts, along with read-only MCP resources such as linear://issue/{id} and linear://rate-limit and four prompt templates (summarize-project-status, draft-project-update, triage-issue, summarize-document). Two tools report Linear's rate limit and the server's own health, so you can check before a long planning run.

The server signs in with one Linear credential per process: a personal API key in LINEAR_API_TOKEN (LINEAR_API_KEY is also accepted, per src/utils/config.ts), or an OAuth access token in LINEAR_OAUTH_ACCESS_TOKEN. The README leaves out a third way: `mcp-linear auth login` runs a browser OAuth sign-in with your own Linear OAuth app's client ID and secret. It requests read and write scopes by default and stores the tokens, refreshing them when they expire, so later runs need no token in the config (src/auth/cli.ts, src/index.ts). A set of OAuth tools prepares app manifests and authorization URLs and issues client-credentials tokens. Creating and managing child OAuth applications only works when the server runs on a managing OAuth app's token.

What it needs

RuntimeNode.js 20+

Node.js 20 or later (the npx command needs npm). A Linear account and one credential: a personal API key from Settings > Security & access, an OAuth access token, or tokens saved by `mcp-linear auth login`, which needs your own Linear OAuth app's client ID and secret. Workspace webhook tools need admin scope. Child OAuth app tools need a managing OAuth app's token.

Limits

Each process uses a single credential. If you need both child OAuth app management under an app-actor token and admin-scoped webhook tools, the README says to run two server entries. With a personal API key, the managed OAuth app tools can't create child apps; they only prepare a manifest and setup URL for an admin. Client-credentials tokens normally expire after 30 days and come with no refresh token. Asking for a different scope set revokes the app's existing app-actor tokens. Webhook URLs must be public HTTPS; loopback, private-network and local hostnames are rejected. TOOLS.md lists further tools, such as metrics, import/export and favourites pinning, only as recommended future work.

Who it suits

Teams that run planning in Linear and want an assistant to do more than read and file issues: release pipelines, initiative updates, customer needs, roadmaps and webhooks are all covered. It runs on your machine with your own key, which suits people who want a local, scriptable setup. It is a community project, not Linear's own. If you'd rather not handle an API key, Linear runs its own hosted server at https://mcp.linear.app/mcp, which we also list. With 198 tools, some clients will want only a subset loaded.

Tools 60 of 198

linear_getViewer
Shows the signed-in user
linear_getOrganization
Shows the current workspace
linear_getUsers
Lists workspace members
linear_getTeams
Lists teams
linear_createTeam
Creates a team
linear_addUserToTeam
Adds a member to a team
linear_getWorkflowStates
Lists a team's workflow states
linear_getIssues
Lists issues
linear_getIssueById
Fetches one issue by ID or identifier
linear_searchIssues
Finds issues by text, state, date and other filters
linear_createIssue
Files a new issue
linear_updateIssue
Changes an issue's fields or status
linear_assignIssue
Sets an issue's assignee
linear_setIssuePriority
Sets an issue's priority
linear_transferIssue
Moves an issue to another team
linear_archiveIssue
Archives an issue
linear_createIssueRelation
Links two issues, e.g. blocks or duplicates
linear_getIssueHistory
Shows an issue's change history
linear_addIssueLabel
Puts a label on an issue
linear_createComment
Comments on an issue
linear_deleteComment
Removes a comment
linear_getComments
Lists an issue's comments
linear_updateIssueCustomField
Sets a custom field value on an issue
linear_getProjects
Lists projects
linear_createProject
Creates a project
linear_updateProject
Edits a project
linear_getProjectIssues
Lists the issues in a project
linear_createProjectUpdate
Posts a project status update
linear_getProjectUpdates
Lists a project's status updates
linear_getMilestones
Lists project milestones
linear_createMilestone
Adds a milestone to a project
linear_getCycles
Lists cycles
linear_getActiveCycle
Shows a team's current cycle
linear_getCycleStats
Reports progress figures for a cycle
linear_addIssueToCycle
Puts an issue into a cycle
linear_getInitiatives
Lists initiatives
linear_createInitiativeUpdate
Posts an initiative status update
linear_getRoadmaps
Lists roadmaps
linear_getReleases
Lists releases
linear_createRelease
Creates a release
linear_addIssueToRelease
Attaches an issue to a release
linear_createReleaseNote
Writes release notes
linear_getDocuments
Lists documents
linear_searchDocuments
Finds documents by text
linear_createDocument
Creates a document
linear_getCustomers
Lists customer records
linear_createCustomerNeed
Records a customer need against an issue or project
linear_getSavedViews
Lists saved views
linear_createIssueFromTemplate
Files an issue from a template
linear_getWebhooks
Lists workspace webhooks
linear_createWebhook
Adds a workspace webhook
linear_rotateWebhookSecret
Issues a new webhook signing secret
linear_addAttachment
Attaches a link or file reference to an issue
linear_generateOAuthApplicationSetup
Prepares an OAuth app manifest and setup URL
linear_createOAuthClientCredentialsToken
Issues a scoped client-credentials token
linear_createManagedOAuthApplication
Creates a child OAuth app (managing app token only)
linear_getNotifications
Lists your notifications
linear_logoutAllSessions
Signs out all of your Linear sessions
linear_getOrganizationAuditEvents
Reads the workspace audit log
linear_getRateLimitStatus
Reports Linear API rate-limit headroom

Similar servers