Content
# 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
1. Clone the repository
2. Install dependencies:
```bash
npm install
```
3. Copy `.env.example` to `.env`:
```bash
cp .env.example .env
```
### 2. Authentication
The server supports two authentication methods:
#### API Key (Recommended)
1. Go to Linear Settings
2. Navigate to the "Security & access" section
3. Find the "Personal API keys" section
4. Click "New API key"
5. Give the key a descriptive label (e.g. "Cline MCP")
6. Copy the generated token immediately
7. Add the token to your `.env` file:
```
LINEAR_API_KEY=your_api_key
```
#### OAuth Flow (Alternative) ***NOT IMPLEMENTED***
1. Create an OAuth application at https://linear.app/settings/api/applications
2. 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
1. Build the server:
```bash
npm run build
```
2. Start the server:
```bash
npm start
```
### 4. Cline Integration
1. 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`
2. Add the Linear MCP server configuration:
```json
{
"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 `documentContent` field
### 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 `description` field
- **Rich Content**: Uses Linear's `documentContent` field 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:
1. `description` - Legacy field (often empty for backward compatibility)
2. `documentContent.content` - Contains the actual rich text description content
The MCP server automatically:
- Queries both fields from Linear's API
- Prioritizes `documentContent.content` over the legacy `description` field
- Provides a utility function `getProjectDescription()` for consistent access
- Returns an `actualDescription` field 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
```bash
# 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:
1. Set up authentication (API Key recommended for testing)
2. Run integration tests:
```bash
npm run test:integration
```
For OAuth testing:
1. Configure OAuth credentials in `.env`
2. Remove `.skip` from OAuth tests in `src/__tests__/auth.integration.test.ts`
3. Run integration tests
## Recent Improvements
### Project Description Support (Latest)
- ✅ Fixed empty project descriptions by implementing Linear's `documentContent` field 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
Connection Info
You Might Also Like
semantic-kernel
Build and deploy intelligent AI agents with the Semantic Kernel framework.

apisix
Apache APISIX is an open-source API gateway designed for high performance...
opik
Opik is a versatile tool for managing and optimizing machine learning experiments.
code-reasoning
A MCP server that enhances Claude's programming task-solving abilities.
forevervm
foreverVM provides a secure API for running stateful Python code.
rhinomcp
RhinoMCP integrates Rhino with AI agents via MCP for enhanced 3D modeling.