Handles Linear's GraphQL API complexity limits by automatically splitting complex queries into multiple simpler ones and assembling results transparently.
Bridges with Linear's GraphQL API, providing full CRUD operations for issues, comments, projects, cycles, teams, and users. Features include smart content chunking, human-readable identifiers, markdown export, and real-time updates via webhooks and SSE.
Enables exporting Linear issues with all comments in clean markdown format and handles markdown content when creating or updating issues and comments.
Requires Node.js 18+ as runtime environment for the server.
Utilizes Pino for structured JSON logging to enhance observability of server operations and troubleshooting.
Provides metrics for monitoring server performance, including RPC requests, latency, rate limiting, and active connections, accessible at the /metrics endpoint.
Leverages TypeScript with Linear's official SDK for full type safety across all API operations.
Legible Linear MCP
An MCP server that connects Claude Code to Linear with OAuth authentication and multi-workspace support.
🚀 Quick Start
1. Install
2. Authenticate
3. Configure Claude Code
Add to your Claude Code MCP settings (~/.claude.json or via Claude Code settings):
Restart Claude Code and you're ready to go!
Related MCP server: Linear MCP Server
🔐 Authentication
OAuth (Recommended)
OAuth provides a seamless authentication experience with automatic token refresh:
Credentials are stored securely in ~/.linear-mcp/credentials.json.
Multi-Workspace Support
Connect to multiple Linear workspaces and switch between them:
Environment Variable (Legacy)
You can also use an API key directly:
Note: OAuth credentials take priority over the environment variable.
🔧 CLI Reference
✨ Features
Core Capabilities
Full CRUD: Issues, comments, projects, cycles, teams, users
Human-Readable IDs: Use team keys (TEAM), issue identifiers (TEAM-123), project names, user emails
Smart Chunking: Automatically splits large content across multiple comments
Markdown Export: Get full issue content with all comments in clean markdown
Reliability
Auto Token Refresh: OAuth tokens refresh automatically before expiry
Rate Limiting: Respects Linear's 1,500 req/hr limit with exponential backoff
Query Splitting: Handles Linear's 10,000 complexity limit automatically
🔗 Related Links
🐛 Troubleshooting
"Field membership argument userId required"
The server handles this automatically by using raw GraphQL queries for affected endpoints.
"Query too complex"
The server automatically splits complex queries. If you still see this error, please file an issue.
SSE Connection Drops
The server sends heartbeats every 15 seconds. Check your proxy/firewall timeout settings.
Rate Limiting
The server implements exponential backoff. If you're hitting limits frequently, consider reducing request frequency or batch operations.