Linear
Provides tools for managing Linear issues, projects, and teams programmatically.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Linear show my open issues in the frontend team"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Linear MCP Server
An MCP server for interacting with Linear's API. This server provides a set of tools for managing Linear issues, projects, and teams through Cline.
Setup Guide
1. Environment Setup
Clone the repository
Install dependencies:
npm installCopy
.env.exampleto.env:cp .env.example .env
2. Authentication
The server supports two authentication methods:
API Key (Recommended)
Go to Linear Settings
Navigate to the "Security & access" section
Find the "Personal API keys" section
Click "New API key"
Give the key a descriptive label (e.g. "Cline MCP")
Copy the generated token immediately
Add the token to your
.envfile:LINEAR_API_KEY=your_api_key
OAuth Flow (Alternative) NOT IMPLEMENTED
Create an OAuth application at https://linear.app/settings/api/applications
Configure OAuth environment variables in
.env:LINEAR_CLIENT_ID=your_oauth_client_id LINEAR_CLIENT_SECRET=your_oauth_client_secret LINEAR_REDIRECT_URI=http://localhost:3000/callback
3. Running the Server
Build the server:
npm run buildStart the server:
npm start
4. Cline Integration
Open your Cline MCP settings file:
macOS:
~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.jsonWindows:
%APPDATA%/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.jsonLinux:
~/.config/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
Add the Linear MCP server configuration:
{ "mcpServers": { "linear": { "command": "node", "args": ["/path/to/linear-mcp/build/index.js"], "env": { "LINEAR_API_KEY": "your_personal_access_token" }, "disabled": false, "autoApprove": [] } } }
Related MCP server: Linear MCP Server
Available Actions
The server currently supports the following operations:
Issue Management
✅ Create issues with full field support (title, description, team, project, etc.)
✅ Update existing issues (priority, description, etc.)
✅ Delete issues (single or bulk deletion)
✅ Search issues with filtering
✅ Associate issues with projects
✅ Create parent/child issue relationships
✅ Read and create comments and threaded comments
Project Management
✅ Create projects with associated issues
✅ Get project information with rich text descriptions
✅ Search projects with rich text descriptions
✅ Associate issues with projects
✅ Proper description handling using Linear's
documentContentfield
Team Management
✅ Get team information (with states and workflow details)
✅ Access team states and labels
Authentication
✅ API Key authentication
✅ Secure token storage
Batch Operations
✅ Bulk issue creation
✅ Bulk issue deletion
Bulk Updates (In Testing)
🚧 Bulk issue updates (parallel processing implemented, needs testing)
Rich Text Description Support
The server now properly handles Linear's rich text descriptions for projects:
Legacy Support: Maintains compatibility with the old
descriptionfieldRich Content: Uses Linear's
documentContentfield for actual description contentAutomatic Fallback: Falls back to legacy field if rich content is unavailable
Type Safety: Includes proper TypeScript types for both description formats
How It Works
Linear uses a dual-field system for descriptions:
description- Legacy field (often empty for backward compatibility)documentContent.content- Contains the actual rich text description content
The MCP server automatically:
Queries both fields from Linear's API
Prioritizes
documentContent.contentover the legacydescriptionfieldProvides a utility function
getProjectDescription()for consistent accessReturns an
actualDescriptionfield in responses for easy access
Features in Development
The following features are currently being worked on:
Issue Management
🚧 Complex search filters
🚧 Pagination support for large result sets
Metadata Operations
🚧 Label management (create/update/assign)
🚧 Cycle/milestone management
Project Management
🚧 Project template support
🚧 Advanced project operations
Authentication
🚧 OAuth flow with automatic token refresh
Performance & Security
🚧 Rate limiting
🚧 Detailed logging
🚧 Load testing and optimization
Development
# Install dependencies
npm install
# Run tests
npm test
# Run integration tests (requires LINEAR_API_KEY)
npm run test:integration
# Build the server
npm run build
# Start the server
npm startIntegration Testing
Integration tests verify that authentication and API calls work correctly:
Set up authentication (API Key recommended for testing)
Run integration tests:
npm run test:integration
For OAuth testing:
Configure OAuth credentials in
.envRemove
.skipfrom OAuth tests insrc/__tests__/auth.integration.test.tsRun integration tests
Recent Improvements
Project Description Support (Latest)
✅ Fixed empty project descriptions by implementing Linear's
documentContentfield support✅ Added proper TypeScript types for rich text content
✅ Implemented automatic fallback from rich content to legacy description
✅ Updated all project-related queries and handlers
✅ Added comprehensive tests for new description handling
✅ Maintained backward compatibility with existing API consumers
Previous Improvements
✅ Enhanced type safety across all operations
✅ Implemented true batch operations for better performance
✅ Improved error handling and validation
✅ Added comprehensive test coverage
✅ Refactored architecture for better maintainability
Available Tools
22 toolslinear_authC
Initialize OAuth flow with Linear
Inputs: clientId (required), redirectUri (required), clientSecret (required).
linear_auth_callbackC
Handle OAuth callback
Inputs: code (required).
linear_bulk_update_issuesC
Update multiple issues at once
Inputs: update (required), issueIds (required).
linear_create_commentA
Create a new comment on an issue or reply to an existing comment
Inputs: body (required), issueId (required), createAsUser, displayIconUrl, +1 more.
linear_create_issueC
Create a new issue in Linear
Inputs: title (required), teamId (required), description (required), estimate, +5 more.
linear_create_issuesA
Create multiple issues at once
Inputs: issues (required).
linear_create_project_milestoneC
Create a new project milestone in Linear
Inputs: name (required), projectId (required), sortOrder, targetDate, +1 more.
linear_create_project_milestonesA
Create multiple project milestones at once
Inputs: projectId (required), milestones (required).
linear_create_project_with_issuesB
Create a new project with associated issues. Note: Project requires teamIds (array) not teamId (single value).
Inputs: issues (required), project (required).
linear_delete_issueC
Delete an issue
Inputs: id (required).
linear_delete_issuesC
Delete multiple issues
Inputs: ids (required).
linear_delete_project_milestoneB
Delete a project milestone
Inputs: id (required).
linear_get_issue_commentsA
Get comments for a specific issue, including threaded replies
Inputs: issueId (required), after, first, includeArchived.
linear_get_projectC
Get project information
Inputs: id (required).
linear_get_project_milestoneC
Get information about a specific project milestone
Inputs: id (required).
linear_get_project_milestonesC
Get all milestones for a specific project
Inputs: projectId (required), after, first, orderBy.
linear_get_teamsA
Get all teams with their states and labels
Inputs: no named parameters.
linear_get_userB
Get current user information
Inputs: no named parameters.
linear_search_issuesB
Search for issues with filtering and pagination
Inputs: after, first, query, states, +4 more.
linear_search_project_milestonesB
Search for project milestones with filtering and pagination
Inputs: name, after, first, orderBy, +2 more.
linear_search_projectsC
Search for projects by name
Inputs: name (required).
linear_update_project_milestoneB
Update an existing project milestone
Inputs: id (required), name, projectId, sortOrder, +2 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
TDQS
Scored across 22 tools
Most tools are clearly distinct by resource and action (e.g., issues vs. projects vs. milestones). The few potentially confusable pairs are singular/plural variants like create_issue/create_issues and delete_issue/delete_issues, but the plural forms clearly indicate bulk operations.
All tools use a consistent linear_ prefix followed by snake_case verb_noun patterns (e.g., create_issue, search_projects, get_project_milestones). The singular/plural distinction is applied uniformly, and there are no mixed conventions or vague verbs.
At 22 tools, the count falls into the borderline-heavy range (16-25). However, the coverage spans multiple subdomains (issues, projects, milestones, comments, auth, teams, user), so the count is defensible but feels slightly high for an MCP server.
Issues have create, update (bulk), delete, and search, but no single-issue get; projects support create/get/search but not update or delete; comments only support get and create. These are notable gaps in lifecycle coverage for the core resources.
Maintenance
Related MCP Connectors
Search, read and create Linear issues, projects, teams and cycles.
Issues, projects, cycles, and roadmaps via the official Linear hosted MCP server.
Find and manage issues, projects, and documents in your Linear workspace.
Linear MCP — wraps the Linear GraphQL API (OAuth)
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceAllows LLMs to integrate with Linear's issue tracking system, enabling them to create, update, search, and comment on issues through the Linear API.728 npmMIT
- AlicenseBqualityDmaintenanceEnables interaction with Linear's API to manage issues, projects, and teams. Supports creating, updating, searching, and deleting issues, along with project management and team operations through API key authentication.13702 npmMIT
- AlicenseBqualityDmaintenanceEnables AI tools like Cline to manage Linear issues, projects, and teams via the Linear API.242,437 npm2MIT
- AlicenseNot gradedqualityDmaintenanceEnables LLMs to interact with Linear's issue tracking system, including creating, updating, searching issues, adding comments, and accessing resources via the Linear API.728 npmMIT