Linear

by jerhadf

Recommended SSE
256 stars
704 downloads
Not rated
GitHub Website

About

Track and manage issues via Linear's project management API.

Details

Author
jerhadf
Repository
jerhadf/linear-mcp-server
GitHub stars
256
Downloads
704
License
MIT License
Transport
SSE
Categories
Productivity, Other, Project Management, Developer Tools, Design, Workplace, AI, Search, API, Automation
Tags
#visualization

- Create, update, and search Linear issues programmatically.
- View issue, team, user, organization, and viewer resources.
- Filter issues by query, team, status, assignee, labels, and priority.
- Add comments to issues with optional custom username and avatar.
- Supports markdown in issue descriptions and comments.

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name Linear
    Command (node, npx, python, etc.) npx
    Arguments
    • Argument 1 -y
    • Argument 2 linear-mcp-server
    Environment
    • LINEAR_API_KEY your_linear_api_key_here

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

To install the Linear MCP server for Claude Desktop automatically via Smithery:

npx @smithery/cli install linear-mcp-server --client claude

1. Create or get a Linear API key for your team: https://linear.app/YOUR-TEAM/settings/api

2. Add server config to Claude Desktop:
- MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "linear": {
      "command": "npx",
      "args": [
        "-y",
        "linear-mcp-server"
      ],
      "env": {
        "LINEAR_API_KEY": "your_linear_api_key_here"
      }
    }
  }
}

Some example prompts you can use with Claude Desktop to interact with Linear:

1. "Show me all my high-priority issues" → execute the search_issues tool and/or linear-user:///{userId}/assigned to find issues assigned to you with priority 1

2. "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

3. "Find all in progress frontend tasks" → use search_issues to locate frontend-related issues with in progress task

4. "Give me a summary of recent updates on the issues for mobile app development" → use search_issues to identify the relevant issue(s), then linear-issue:///{issueId} fetch the issue details and show recent activity and comments

5. "What's the current workload for the mobile team?" → combine linear-team:///{teamId}/issues and search_issues to analyze issue distribution and priorities across the mobile team

linear_create_issue

Create a new Linear issue. Required inputs: title (string), teamId (string). Optional inputs: description (string), priority (number, 0-4), status (string).

linear_update_issue

Update an existing issue. Required input: id (string). Optional inputs: title (string), description (string), priority (number, 0-4), status (string).

linear_search_issues

Search for issues with flexible filtering. Optional inputs: query (string), teamId (string), status (string), assigneeId (string), labels (string[]), priority (number), limit (number, default: 10).

linear_get_user_issues

Get issues assigned to a user. Optional inputs: userId (string), includeArchived (boolean), limit (number, default: 50).

linear_add_comment

Add a comment to an issue. Required inputs: issueId (string), body (string). Optional inputs: createAsUser (string), displayIconUrl (string).

1. linear_create_issue: Create a new Linear issues
- Required inputs:
- title (string): Issue title
- teamId (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

2. linear_update_issue: Update existing issues
- Required inputs:
- id (string): Issue ID to update
- Optional inputs:
- title (string): New title
- description (string): New description
- priority (number, 0-4): New priority
- status (string): New status name

3. linear_search_issues: Search issues with flexible filtering
- Optional inputs:
- query (string): Text to search in title/description
- teamId (string): Filter by team
- status (string): Filter by status
- assigneeId (string): Filter by assignee
- labels (string[]): Filter by labels
- priority (number): Filter by priority
- limit (number, default: 10): Max results

4. linear_get_user_issues: Get issues assigned to a user
- Optional inputs:
- userId (string): User ID (omit for authenticated user)
- includeArchived (boolean): Include archived issues
- limit (number, default: 50): Max results

5. linear_add_comment: Add comments to issues
- Required inputs:
- issueId (string): Issue ID to comment on
- body (string): Comment text (markdown supported)
- Optional inputs:
- createAsUser (string): Custom username
- displayIconUrl (string): Custom avatar URL

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "linear": {
            "env": {
                "LINEAR_API_KEY": "your_linear_api_key_here"
            },
            "args": [
                "-y",
                "linear-mcp-server"
            ],
            "command": "npx"
        }
    }
}

Linux

{
    "env": {
        "LINEAR_API_KEY": "your_linear_api_key_here"
    },
    "args": [
        "-y",
        "linear-mcp-server"
    ],
    "command": "npx"
}

Macos

{
    "env": {
        "LINEAR_API_KEY": "your_linear_api_key_here"
    },
    "args": [
        "-y",
        "linear-mcp-server"
    ],
    "command": "npx"
}

Windows

{
    "env": {
        "LINEAR_API_KEY": "your_linear_api_key_here"
    },
    "args": [
        "/c",
        "npx",
        "-y",
        "linear-mcp-server"
    ],
    "command": "cmd"
}
# Linear MCP Server [![npm version](https://img.shields.io/npm/v/linear-mcp-server.svg)](https://www.npmjs.com/package/linear-mcp-server) [![smithery badge](https://smithery.ai/badge/linear-mcp-server)](https://smithery.ai/server/linear-mcp-server) **IMPORTANT NOTE:** This MCP Server is now deprecated and is no longer being maintained. I recommend you use the official Linear remote MCP server here: https://linear.app/changelog/2025-05-01-mcp (https://mcp.linear.app/sse) A [Model Context Protocol](https://github.com/modelcontextprotocol) server for the [Linear API](https://developers.linear.app/docs/graphql/working-with-the-graphql-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](https://smithery.ai/protocol/linear-mcp-server): ```bash npx @smithery/cli install linear-mcp-server --client claude ``` ### Manual Installation 1. Create or get a Linear API key for your team: [https://linear.app/YOUR-TEAM/settings/api](https://linear.app/YOUR-TEAM/settings/api) 2. Add server config to Claude Desktop: - MacOS: `~/Library/Application Support/Claude/claude_desktop_config.json` ```json { "mcpServers": { "linear": { "command": "npx", "args": [ "-y", "linear-mcp-server" ], "env": { "LINEAR_API_KEY": "your_linear_api_key_here" } } } } ``` ## Components ### Tools 1. **`linear_create_issue`**: Create a new Linear issues - Required inputs: - `title` (string): Issue title - `teamId` (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 2. **`linear_update_issue`**: Update existing issues - Required inputs: - `id` (string): Issue ID to update - Optional inputs: - `title` (string): New title - `description` (string): New description - `priority` (number, 0-4): New priority - `status` (string): New status name 3. **`linear_search_issues`**: Search issues with flexible filtering - Optional inputs: - `query` (string): Text to search in title/description - `teamId` (string): Filter by team - `status` (string): Filter by status - `assigneeId` (string): Filter by assignee - `labels` (string[]): Filter by labels - `priority` (number): Filter by priority - `limit` (number, default: 10): Max results 4. **`linear_get_user_issues`**: Get issues assigned to a user - Optional inputs: - `userId` (string): User ID (omit for authenticated user) - `includeArchived` (boolean): Include archived issues - `limit` (number, default: 50): Max results 5. **`linear_add_comment`**: Add comments to issues - Required inputs: - `issueId` (string): Issue ID to comment on - `body` (string): Comment text (markdown supported) - Optional inputs: - `createAsUser` (string): Custom username - `displayIconUrl` (string): Custom avatar URL ### Resources - `linear-issue:///{issueId}` - View individual issue details - `linear-team:///{teamId}/issues` - View team issues - `linear-user:///{userId}/assigned` - View user's assigned issues - `linear-organization:` - View organization info - `linear-viewer:` - View current user context ## Usage examples Some example prompts you can use with Claude Desktop to interact with Linear: 1. "Show me all my high-**priority** issues" → execute the `search_issues` tool and/or `linear-user:///{userId}/assigned` to find issues assigned to you with priority 1 2. "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 3. "Find all in progress frontend tasks" → use `search_issues` to locate frontend-related issues with in progress task 4. "Give me a summary of recent updates on the issues for mobile app development" → use `search_issues` to identify the relevant issue(s), then `linear-issue:///{issueId}` fetch the issue details and show recent activity and comments 5. "What's the current workload for the mobile team?" → combine `linear-team:///{teamId}/issues` and `search_issues` to analyze issue distribution and priorities across the mobile team ## Development 1. Install dependencies: ```bash npm install ``` 1. Configure Linear API key in `.env`: ```bash LINEAR_API_KEY=your_api_key_here ``` 1. Build the server: ```bash npm run build ``` For development with auto-rebuild: ```bash npm run watch ``` ## License 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.
No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.