Linear MCP
a private MCP server for accessing Linear
Installation
npx linear-mcpAsk AI about Linear MCP
Powered by Claude Β· Grounded in docs
I know everything about Linear MCP. Ask me about installation, configuration, usage, or troubleshooting.
0/500
Reviews
Documentation
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 install - Copy
.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 build - Start 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.json - Windows:
%APPDATA%/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json - Linux:
~/.config/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
- macOS:
-
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": [] } } }
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
descriptionfield - Rich Content: Uses Linear's
documentContentfield for actual description content - Automatic 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 legacydescriptionfield - Provides a utility function
getProjectDescription()for consistent access - Returns 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 start
Integration 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
.env - Remove
.skipfrom OAuth tests insrc/__tests__/auth.integration.test.ts - Run 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
