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:
The OAuth flow is brittle across MCP client session boundaries — auth state expires when a session resumes mid-flow.
Multi-workspace Linear MCP — PAT auth, 57 tools + 3 prompts, substrate enforcement, drop-in.
Clave de API
LINEAR_PAT
Última comprobación
2026-11-09
Estrellas
—
Herramientas
—
Disponibilidad
—
The localhost callback fails in some setups, forcing fragile paste-back flows.
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
Generate one Personal API Key per workspace at https://linear.app/settings/account/security. You must be logged into each workspace separately while generating the key for that workspace.
Aliases are arbitrary — name them whatever helps you route (acme,beta, team1,team2, home,client).
chmod 600 ~/.claude/linear-mcp/admin.env
Register in Claude Code (user scope, so it loads in every project):
claude mcp add -s user linear-mcp python3 -m linear_mcp.server
Or, with pipx install:
claude mcp add -s user linear-mcp linear-mcp
Restart Claude Code. healthcheck should return ok: true per workspace.
Substrate-layer enforcement (v0.3)
Three server-side checks that protect issue quality without depending on any markdown rule file or client-side memory. Apply only to WRITE paths; reads stay unconstrained.
Layer
What it does
Bypass env var
[source:] first-line check
save_issue / save_project reject CREATE calls whose description (or project content) does not start with [source: <canonical-key>]. UPDATE calls (id passed) skip the check so legacy backfills remain unblocked.
LINEAR_MCP_SKIP_SOURCE_CHECK=1
Idempotency check
Before any CREATE, the server runs searchIssues / searchProjects for [source: <key>] and refuses to create a duplicate. The error names the existing identifier + UUID so the caller can update in place.
LINEAR_MCP_SKIP_IDEMPOTENCY=1
auth_phrase on bulk_save_issues
bulk_save_issues now requires auth_phrase ∈ {"go", "yes do it", "confirmed", "execute", "go cancel", "go update"} (case-insensitive). Mass-modification surface stays explicit.
linear-exec is the short path for starting real work from a Linear issue.
It resolves the issue, checks blocking relations, scans same-project siblings
for obvious scope overlap, infers the repo when possible, and can create the
standard claude-dev-worktree branch.
The command refuses to proceed when an upstream blocks relation is still
incomplete unless --force is passed. --no-state-update and --no-worktree
let agents use only the parts of the preflight they need.
Tool surface (v0.3 — 57 tools + 3 prompts)
Every tool takes an optional workspace parameter (the alias from LINEAR_WORKSPACES). Omit it to use LINEAR_PRIMARY_WORKSPACE.
Meta
Tool
Purpose
list_workspaces
Show configured workspaces and primary
healthcheck
Verify each PAT + surface remaining rate-limit budget
Core entities
Tool
Purpose
list_teams / get_team
Teams (with inline workflow states)
list_users / get_user
Users (me resolves to PAT owner)
list_projects / get_project / save_project
Projects (v0.3: save_project enforces [source:] on content + idempotency on CREATE)
Linear PATs use header Authorization: <key> (no Bearer prefix). Each PAT is scoped to one workspace and grants access only to data the owning user can see. There is no shared org token.
Rate limit: 2500 requests/hour per token (verified against live API 2026-05-23). The server passes Linear's Retry-After header through on 429 and surfaces remaining budget via healthcheck.
Safety
Read tools and routine writes (create/update issues, comments, labels, status updates) pass through. Destructive ops (delete_webhook, delete_attachment) use the draft+confirm pattern: the first call stages the change and returns a draft_id + preview of what will happen; the second call (with confirm_draft_id) commits. Drafts expire after 1 hour (override with LINEAR_MCP_DRAFT_TTL_SECONDS).
Every tool call appends one JSONL line to ~/.claude/linear-mcp/audit.log (override with LINEAR_MCP_AUDIT_LOG_PATH, disable with LINEAR_MCP_AUDIT_LOG=false). Tokens are stripped from audit records.
healthcheck surfaces each PAT's remaining rate-limit budget (X-RateLimit-Requests-Remaining + X-Complexity-Remaining) per workspace, so agents can self-throttle without making a separate observability call.
Aún no hay lista de herramientas. Los servidores remotos la reciben tras la primera comprobación de estado.
Preguntas frecuentes
Preguntas
¿Cómo instalo Linear MCP (multi Workspace, PAT Auth)?
Copia en esta página la configuración stdio para Cursor, Claude Desktop, Claude Code o VS Code. Usa la instalación del publicador, no un proxy de PlugMCP.
¿Linear MCP (multi Workspace, PAT Auth) necesita una clave de API?
El publicador indica estas variables de entorno: LINEAR_PAT.
¿Qué transporte usa Linear MCP (multi Workspace, PAT Auth)?
Linear MCP (multi Workspace, PAT Auth) se ejecuta localmente por stdio.
¿Cuándo se comprobó Linear MCP (multi Workspace, PAT Auth) por última vez?
Última comprobación: 2026-11-09. Multi-workspace Linear MCP — PAT auth, 57 tools + 3 prompts, substrate enforcement, drop-in.