Wraps Linear's API to manage issues, projects, and teams directly through Claude conversations. You can create and update issues with full field support, manage parent-child relationships, handle comments, create projects, and perform bulk operations. Uses API key authentication and properly handles Linear's rich text descriptions via their documentContent field. Integrates with Cline for development workflows where you want to manipulate Linear data without switching contexts. Supports batch operations for efficiency and includes comprehensive team and project querying with workflow state access.
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.
npm install
.env.example to .env:
cp .env.example .env
The server supports two authentication methods:
.env file:
LINEAR_API_KEY=your_api_key
.env:
LINEAR_CLIENT_ID=your_oauth_client_id
LINEAR_CLIENT_SECRET=your_oauth_client_secret
LINEAR_REDIRECT_URI=http://localhost:3000/callback
npm run build
npm start
Open your Cline MCP settings file:
~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json%APPDATA%/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json~/.config/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.jsonAdd 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": []
}
}
}
The server currently supports the following operations:
documentContent fieldThe server now properly handles Linear's rich text descriptions for projects:
description fielddocumentContent field for actual description contentLinear uses a dual-field system for descriptions:
description - Legacy field (often empty for backward compatibility)documentContent.content - Contains the actual rich text description contentThe MCP server automatically:
documentContent.content over the legacy description fieldgetProjectDescription() for consistent accessactualDescription field in responses for easy accessThe following features are currently being worked on:
# 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 tests verify that authentication and API calls work correctly:
npm run test:integration
For OAuth testing:
.env.skip from OAuth tests in src/__tests__/auth.integration.test.tsdocumentContent field supportio.github.mindstone/mcp-server-microsoft-teams
com.mintmcp/outlook-email
helbertparanhos/resend-email-mcp
marlinjai/email-mcp
io.github.mindstone/mcp-server-email-imap
io.github.osamahassouna/email-playbook-mcp