Linear MCP Server
by samcfinan
# Linear MCP Server
A [Model Context Protocol](https://github.com/modelcontextprotocol) server for the [Linear API](https://developers.linear.app/docs/graphql/working-with-the-graphql-api).
Intended to be more feature rich than existing Linear MCP servers and intended for holistic project management via Claude.
This is based off of https://github.com/jerhadf/linear-mcp-server with more functionality.
Features:
* Initiatives
* Projects
* Issues
* Relationships
* Prioritization
## Installation
Add server config to Claude Desktop.
NOTE: Claude does not work well with nvm environments. Make sure to reference the version of Node with its absolute path.
```
{
"mcpServers": {
"linear": {
"command": "/Users/USERNAME/.nvm/versions/node/v22.13.0/bin/node",
"args": [
"--experimental-strip-types",
"/absolute/path/to/repo/index.ts"
],
"env": {
"LINEAR_API_KEY": "your_linear_api_key_here"
}
}
}
}
```
## Available Tools
### Project Management
* `create-project` - Create a new Linear project
* `view-project` - View a Linear project by ID
* `update-project` - Update a Linear project
### Initiative Management
* `create-initiative` - Create a new Linear initiative
* `view-initiative` - View a Linear initiative by ID
* `update-initiative` - Update a Linear initiative
### Issue Management
* `create-issue` - Create a new Linear issue
* `view-issue` - View a Linear issue by ID
* `update-issue` - Update a Linear issue
* `search-issues` - Search Linear issues
### Issue Relations
* `create-issue-relation` - Create a relation between two issues (blocks, duplicates, etc.)
* `view-issue-relations` - View all relations for a given issue
* `delete-issue-relation` - Delete a relation between two issues
## Example
```
User:
Break the Implement Contact API Endpoints issue into multiple issues, one for each endpoint
Claude:
I'll break down the API endpoints issue into separate issues for each endpoint and create the appropriate relationships.
View result from create-issue from linear (local)
View result from create-issue from linear (local)
View result from create-issue from linear (local)
View result from create-issue from linear (local)
View result from create-issue from linear (local)
Now let's create the relationships between these new issues and the existing ones. First, they all depend on the TypeScript Models issue:
View result from create-issue-relation from linear (local)
View result from create-issue-relation from linear (local)
View result from create-issue-relation from linear (local)
View result from create-issue-relation from linear (local)
View result from create-issue-relation from linear (local)
I've created five separate issues for each endpoint and set up their relationships:
GET /contacts (List) - d1aae514
GET /contacts/:id (Single) - 01850d5d
POST /contacts (Create) - 2e0f2b75
PUT /contacts/:id (Update) - d22b143d
DELETE /contacts/:id (Delete) - dde30779
All of these endpoints depend on the TypeScript Models issue (2c38c6ee) being completed first.
The UI Components issue (dd214884) and Search/Filter issue (81a33a29) now should depend on the completion of these endpoint issues, particularly the GET endpoints.
Would you like me to:
Create those additional relationships with the UI Components?
Add any specific cross-dependencies between the endpoints themselves?
Break down any of these endpoint issues into more granular tasks?
```