Skip to main content
Glama

Linear MCP Server

A Model Context Protocol (MCP) server implementation that provides access to Linear's issue tracking system through a standardized interface.

Features

  • Create new issues and subissues with label support

  • Retrieve the list of linear projects

  • Retrieve the project updates

  • Create a new project update with health status

  • Update existing issues with full field modification

  • Delete issue with validation

  • Self-assign issues using 'me' keyword

  • Advanced search with Linear's powerful filtering capabilities

  • Filter issues by cycle (current, next, previous, or specific cycle by UUID or number)

  • Add comments to issues with markdown support

  • Query Linear issues by ID or key with optional relationships

  • Search issues using custom queries with enhanced metadata

  • Type-safe operations using Linear's official SDK

  • Comprehensive error handling

  • Rate limit handling

  • Clean data transformation

  • Parent/child relationship tracking with team inheritance

  • Label management and synchronization

Prerequisites

  • Bun runtime (v1.0.0 or higher)

  • Linear account with API access

Environment Variables

LINEAR_API_KEY=your_api_key # Your Linear API token

Installation & Setup

1. Clone the repository:

git clone [repository-url] cd linear-mcp

2. Install dependencies and build:

bun install bun run build

3. Configure the MCP server:

Edit the appropriate configuration file:

macOS:

  • Cline: ~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json

  • Claude Desktop: ~/Library/Application Support/Claude/claude_desktop_config.json

Windows:

  • Cline: %APPDATA%\Code\User\globalStorage\saoudrizwan.claude-dev\settings\cline_mcp_settings.json

  • Claude Desktop: %APPDATA%\Claude Desktop\claude_desktop_config.json

Linux:

  • Cline: ~/.config/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json

  • Claude Desktop: sadly doesn't exist yet

Add the following configuration under the mcpServers object:

{ "mcpServers": { "linear": { "command": "node", "args": ["/absolute/path/to/linear-mcp/build/index.js"], "env": { "LINEAR_API_KEY": "your_api_key" } } } }

4. Restart the MCP server.

Within Cline's MCP settings, restart the MCP server. Restart Claude Desktop to load the new MCP server.

Development

Run development server:

bun run dev

Build project:

bun run build

Available MCP Tools

For detailed usage examples of all tools, see USAGE.md.

create_issue

Create a new Linear issue or subissue.

Input Schema:

{ "teamId": "string", "title": "string", "description": "string", "parentId": "string", "status": "string", "priority": "number", "assigneeId": "string | 'me'", "labelIds": ["string"] }

update_issue

Update an existing Linear issue.

Input Schema:

{ "issueId": "string", "title": "string", "description": "string", "status": "string", // Expects status NAME (e.g., "In Progress"). Must be valid for the issue's team. "priority": "number", // Expects 0 (None) to 4 (Low). "assigneeId": "string | 'me'", "labelIds": ["string"], "cycleId": "string" }

get_issue

Get detailed information about a specific Linear issue with optional relationships.

Input Schema:

{ "issueId": "string", "includeRelationships": "boolean" }

search_issues

Search for Linear issues using a query string and advanced filters. Supports Linear's powerful filtering capabilities.

Input Schema:

{ "query": "string", "includeRelationships": "boolean", "filter": { "title": { "contains": "string", "eq": "string", ... }, "description": { "contains": "string", "eq": "string", ... }, "priority": { "gte": "number", "lt": "number", ... }, "estimate": { "eq": "number", "in": ["number"], ... }, "dueDate": { "lt": "string", "gt": "string", ... }, "createdAt": { "gt": "P2W", "lt": "2024-01-01", ... }, "updatedAt": { "gt": "P1M", ... }, "completedAt": { "null": true, ... }, "assignee": { "id": { "eq": "string" }, "name": { "contains": "string" } }, "creator": { "id": { "eq": "string" }, "name": { "contains": "string" } }, "team": { "id": { "eq": "string" }, "key": { "eq": "string" } }, "state": { "type": { "eq": "started" }, "name": { "eq": "string" } }, "labels": { "name": { "in": ["string"] }, "every": { "name": { "eq": "string" } } }, "project": { "id": { "eq": "string" }, "name": { "contains": "string" } }, "and": [{ /* filters */ }], "or": [{ /* filters */ }], "assignedTo": "string | 'me'", "createdBy": "string | 'me'" }, "projectId": "string", "projectName": "string" }

Supported Comparators:

  • String fields: eq, neq, in, nin, contains, startsWith, endsWith (plus case-insensitive variants)

  • Number fields: eq, neq, lt, lte, gt, gte, in, nin

  • Date fields: eq, neq, lt, lte, gt, gte (supports ISO 8601 durations)

get_teams

Get a list of Linear teams with optional name/key filtering.

Input Schema:

{ "nameFilter": "string" }

delete_issue

Delete an existing Linear issue.

Input Schema:

{ "issueId": "string" }

create_comment

Create a new comment on a Linear issue.

Input Schema:

{ "issueId": "string", "body": "string" }

get_projects

Get a list of Linear projects with optional name filtering and pagination.

Input Schema:

{ "nameFilter": "string", "includeArchived": "boolean", "first": "number", "after": "string" }

get_project_updates

Get project updates for a given project ID with optional filtering parameters.

Input Schema:

{ "projectId": "string", "includeArchived": "boolean", "first": "number", "after": "string", "createdAfter": "string", "createdBefore": "string", "userId": "string | 'me'", "health": "string" }

create_project_update

Create a new update for a Linear project.

Input Schema:

{ "projectId": "string", "body": "string", "health": "onTrack | atRisk | offTrack", "isDiffHidden": "boolean" }

Technical Details

  • Built with TypeScript in strict mode

  • Uses Linear's official SDK (@linear/sdk)

  • Uses MCP SDK (@modelcontextprotocol/sdk 1.4.0)

  • Authentication via API tokens

  • Comprehensive error handling

  • Rate limiting considerations

  • Bun runtime for improved performance

  • ESM modules throughout

  • Vite build system

  • Type-safe operations

  • Data cleaning features:

    • Issue mention extraction (ABC-123 format)

    • User mention extraction (@username format)

    • Markdown content cleaning

    • Content optimization for AI context

  • Self-assignment support:

    • Automatic current user resolution

    • 'me' keyword support in create/update operations

    • Efficient user ID caching

  • Advanced search capabilities:

    • Comprehensive filtering with Linear's API

    • Support for all field comparators

    • Relationship filtering

    • Logical operators (and, or)

    • Relative date filtering

    • Filter by assignee/creator (including self)

    • Support for specific user IDs

    • Project filtering by ID or name

    • Efficient query optimization

  • Project management features:

    • Project listing with filtering and pagination

    • Project update creation with health status tracking

    • Project update retrieval with filtering options

Error Handling

The server implements a comprehensive error handling strategy:

  • Network error detection and appropriate messaging

  • HTTP status code handling

  • Detailed error messages with status codes

  • Error details logging to console

  • Input validation for all parameters

  • Label validation and synchronization

  • Safe error propagation through MCP protocol

  • Rate limit detection and handling

  • Authentication error handling

  • Invalid query handling

  • Team inheritance validation for subissues

  • User resolution validation

  • Search filter validation

LICENCE

This project is licensed under the MIT License - see the LICENCE file for details.

Deploy Server
A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

Related MCP Servers

  • A
    security
    F
    license
    A
    quality
    Enables interaction with Linear's API for managing issues, teams, and projects programmatically through the Model Context Protocol.
    Last updated -
    83
    3
    • Apple
  • -
    security
    A
    license
    -
    quality
    A Model Context Protocol server that integrates with Linear's issue tracking system, allowing LLMs to create, update, search, and comment on Linear issues through natural language interactions.
    Last updated -
    322
    333
    MIT License
    • Apple
  • A
    security
    A
    license
    A
    quality
    A Model Context Protocol server that integrates with Linear, enabling AI assistants to create, update, search, and comment on issues for project management and issue tracking.
    Last updated -
    6
    Apache 2.0
  • -
    security
    A
    license
    -
    quality
    Provides access to Linear's issue tracking system through a standardized Model Context Protocol interface, allowing users to create, update, search, and manage issues, projects, and comments via natural language.
    Last updated -
    2,557
    1
    MIT License
    • Apple
    • Linux

View all related MCP servers

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/cosmix/linear-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server