linear-mcp-server
by: jerhadf
A server that integrates Linear's project management system with the Model Context Protocol (MCP) to allow LLMs to interact with Linear.
📌Overview
Purpose: To facilitate integration with the Linear API for issue tracking, enabling Large Language Models (LLMs) to interact seamlessly with Linear issues.
Overview: The Linear MCP Server serves as a bridge between the Model Context Protocol (MCP) and the Linear API, allowing users to manage and interact with issues within Linear effectively. It enhances the user experience by enabling commands and tools that simplify task management.
Key Features:
-
Issue Creation (
linear_create_issue
): Allows users to create new issues in Linear, specifying essential information like title and team while optionally adding description, priority, and status. This feature supports proper task initiation within teams. -
Issue Management (
linear_update_issue
): Users can update existing issues by providing the issue ID and any new details. This ensures that issue records remain current and accurate as work progresses. -
Flexible Issue Searching (
linear_search_issues
): This feature enables users to search for issues with various filters (e.g., status, assignee, priority), making it easy to locate specific tasks based on customized criteria. -
User-Specific Issue Retrieval (
linear_get_user_issues
): Users can access issues assigned to a particular user, enhancing personal task visibility and management. -
Commenting on Issues (
linear_add_comment
): Users can add comments to issues, fostering communication and collaboration throughout the issue resolution process.
Linear MCP Server
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.
Installation
Automatic Installation
To install the Linear MCP server for Claude Desktop automatically via Smithery:
npx @smithery/cli install linear-mcp-server --client claude
Manual Installation
-
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"
}
}
}
}
Components
Tools
-
linear_create_issue
: Create a new Linear issue- 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:
Resources
linear-issue:///{issueId}
- View individual issue detailslinear-team:///{teamId}/issues
- View team issueslinear-user:///{userId}/assigned
- View user's assigned issueslinear-organization:
- View organization infolinear-viewer:
- View current user context
Usage Examples
Here are some example prompts to use with Claude Desktop to interact with Linear:
-
"Show me all my high-priority issues" → execute the
search_issues
tool and/or use user resource 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 status. -
"Give me a summary of recent updates on the issues for mobile app development" → use
search_issues
to identify relevant issues, then fetch issue details and show recent activity and comments. -
"What's the current workload for the mobile team?" → combine team resource and
search_issues
to analyze issue distribution and priorities across the mobile team.
Development
- 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
License
This MCP server is licensed under the MIT License, allowing free use, modification, and distribution subject to its terms. See the LICENSE file in the project repository for details.