What it does
The Linear MCP Server bridges Claude to your Linear workspace via the Linear API, letting you manage your engineering team's issue tracker conversationally. Instead of clicking through the Linear UI, you can describe what you want and Claude handles the queries and mutations on your behalf.
Popular use cases include daily standup summaries (pull all in-progress issues for a team), sprint planning (move issues into a cycle, set estimates), backlog grooming (list all unestimated bugs), and cross-project reporting (aggregate issue counts by label or project).
- Create issues with title, description, assignee, labels, and priority
- Update issue state, priority, and estimate
- List issues by team, project, cycle, assignee, or label
- Search issues using Linear's full-text search
- Add and retrieve comments on issues
- List all teams, projects, and cycles in the workspace
- Assign issues to cycles and manage cycle scope
- Create and retrieve project milestones
How to connect
Generate a personal API key in Linear under Settings → API → Personal API keys. The key will have read/write access to all teams and projects your user account can access.
export LINEAR_API_KEY="lin_api_your_key_here" claude mcp add linear -- npx -y @linear/mcp-server
Available tools
create_issue— create an issue with title, description, team, assignee, priorityupdate_issue— change state, priority, estimate, or assignee on an existing issuelist_issues— filter by team, project, cycle, state, label, or assigneesearch_issues— full-text search across all issues in the workspaceget_issue— retrieve full issue detail including comments and historycreate_comment— post a comment on any issuelist_teams— list all teams the authenticated user belongs tolist_projects— list projects with status and target datelist_cycles— list cycles (sprints) for a team including active cycle
Example usage
Ask Claude to run your sprint planning session by moving issues into the current cycle and assigning them:
# User prompt
List all unestimated bugs in the Backend team,
set priority to High for anything labeled "critical",
and move them into the current active cycle.
list_issues({ team: "backend", type: "bug", estimate: null }) → 12 unestimated bugs found list_cycles({ team: "backend", active: true }) → Cycle "Sprint 24" id: cyc_xyz update_issue({ id: "ENG-412", priority: "high", cycleId: "cyc_xyz" }) → [repeated for 4 critical-labeled issues]
Workspace access: Linear API keys grant access to every team you belong to. If you are in multiple workspaces, create separate keys for each and configure distinct MCP server instances with different env var names.