A Model Context Protocol server for the Linear API.
This server provides integration with Linear's issue tracking system through MCP, allowing LLMs to interact with Linear issues.
To install the Linear MCP server for Claude Desktop automatically via Smithery:
npx @smithery/cli install linear-mcp-server --client claude
-
Create or get a Linear API key for your team: https://linear.app/YOUR-TEAM/settings/api
-
Add server config to Claude Desktop:
- MacOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- MacOS:
{
"mcpServers": {
"linear": {
"command": "npx",
"args": [
"-y",
"linear-mcp-server"
],
"env": {
"LINEAR_API_KEY": "your_linear_api_key_here"
}
}
}
}
-
linear_create_issue
: Create a new Linear issues- Required inputs:
title
(string): Issue titleteamId
(string): Team ID to create issue in
- Optional inputs:
description
(string): Issue description (markdown supported)priority
(number, 0-4): Priority level (1=urgent, 4=low)status
(string): Initial status name
- Required inputs:
-
linear_update_issue
: Update existing issues- Required inputs:
id
(string): Issue ID to update
- Optional inputs:
title
(string): New titledescription
(string): New descriptionpriority
(number, 0-4): New prioritystatus
(string): New status name
- Required inputs:
-
linear_search_issues
: Search issues with flexible filtering- Optional inputs:
query
(string): Text to search in title/descriptionteamId
(string): Filter by teamstatus
(string): Filter by statusassigneeId
(string): Filter by assigneelabels
(string[]): Filter by labelspriority
(number): Filter by prioritylimit
(number, default: 10): Max results
- Optional inputs:
-
linear_get_user_issues
: Get issues assigned to a user- Optional inputs:
userId
(string): User ID (omit for authenticated user)includeArchived
(boolean): Include archived issueslimit
(number, default: 50): Max results
- Optional inputs:
-
linear_add_comment
: Add comments to issues- Required inputs:
issueId
(string): Issue ID to comment onbody
(string): Comment text (markdown supported)
- Optional inputs:
createAsUser
(string): Custom usernamedisplayIconUrl
(string): Custom avatar URL
- Required inputs:
-
linear_create_project
: Create a new Linear project- Required inputs:
name
(string): Project nameteamId
(string): Team ID to create project in
- Optional inputs:
description
(string): Project description (markdown supported)icon
(string): Project icon (emoji)color
(string): Project color (hex code)state
(string): Initial project state ID
- Required inputs:
-
linear_update_project
: Update existing projects- Required inputs:
id
(string): Project ID to update
- Optional inputs:
name
(string): New project namedescription
(string): New project descriptionicon
(string): New project icon (emoji)color
(string): New project color (hex code)state
(string): New project state ID
- Required inputs:
-
linear_list_projects
: List projects with filtering- Optional inputs:
teamId
(string): Filter by team IDincludeArchived
(boolean): Include archived projectslimit
(number, default: 50): Max results
- Optional inputs:
-
linear_set_project_content
: Set rich markdown content for a project- Required inputs:
id
(string): Project IDcontent
(string): Rich markdown content for the project description
- Required inputs:
linear-issue:///{issueId}
- View individual issue detailslinear-project:///{projectId}
- View individual project detailslinear-team:///{teamId}/issues
- View team issueslinear-user:///{userId}/assigned
- View user's assigned issueslinear-organization:
- View organization infolinear-viewer:
- View current user context
Some example prompts you can use with Claude Desktop to interact with Linear:
-
"Show me all my high-priority issues" → execute the
search_issues
tool and/orlinear-user:///{userId}/assigned
to find issues assigned to you with priority 1 -
"Based on what I've told you about this bug already, make a bug report for the authentication system" → use
create_issue
to create a new high-priority issue with appropriate details and status tracking -
"Find all in progress frontend tasks" → use
search_issues
to locate frontend-related issues with in progress task -
"Give me a summary of recent updates on the issues for mobile app development" → use
search_issues
to identify the relevant issue(s), thenlinear-issue:///{issueId}
fetch the issue details and show recent activity and comments -
"What's the current workload for the mobile team?" → combine
linear-team:///{teamId}/issues
andsearch_issues
to analyze issue distribution and priorities across the mobile team -
"Create a new project for our Q3 marketing campaign" → use
linear_create_project
to create a new project with appropriate details and team assignment -
"Update the documentation for our API project with the latest authentication flow" → use
linear_set_project_content
to update a project's rich markdown content with detailed documentation -
"Show me all active projects for the engineering team" → use
linear_list_projects
to list all projects filtered by team -
"Change the icon and color of our onboarding project to make it more visible" → use
linear_update_project
to update a project's visual attributes
- Install dependencies:
npm install
- Configure Linear API key in
.env
:
LINEAR_API_KEY=your_api_key_here
- Build the server:
npm run build
For development with auto-rebuild:
npm run watch
This MCP server is licensed under the MIT License. This means you are free to use, modify, and distribute the software, subject to the terms and conditions of the MIT License. For more details, please see the LICENSE file in the project repository.