@vineethnkrishnan/linear-mcp
v0.1.5
Published
An MCP server for Linear API, enabling AI assistants to query issues, projects, and teams via GraphQL.
Maintainers
Readme
Linear MCP Server
A Model Context Protocol (MCP) server that provides AI assistants (Claude, Cursor, etc.) with a comprehensive interface to the Linear API via GraphQL. Supports both static API keys and OAuth2 authentication.
Overview
linear-mcp allows your AI assistant to directly interact with your Linear workspace. It enables powerful natural language queries like:
- "What are the open issues assigned to me in the 'Backend' team?"
- "Show me the details of issue
LIN-1234." - "List all active projects and their progress."
- "Which teams exist in our workspace?"
Features
- GraphQL API: Leverages Linear's GraphQL API for efficient, precise queries.
- OAuth2 Support: Browser-based OAuth flow with automatic token refresh, powered by
@vineethnkrishnan/oauth-core. - Static Token Support: Use a Linear API key for simple setups.
- Modular Architecture: Built with clean layered design for high maintainability.
- Type-Safe: Fully implemented in TypeScript with Zod schema validation.
- Comprehensive Coverage: Full access to Issues, Projects, and Teams.
Installation
Using npx (Recommended)
No installation required. Run directly:
npx -y @vineethnkrishnan/linear-mcpGlobal Install
npm install -g @vineethnkrishnan/linear-mcp
linear-mcpFrom Source
git clone https://github.com/vineethkrishnan/mcp-pool.git
cd mcp-pool
npm install
npm run buildConfiguration
To use this server with an MCP client like Claude Desktop, add to your MCP client configuration file:
| Platform | Config file path |
|----------|-----------------|
| macOS | ~/Library/Application Support/Claude/claude_desktop_config.json |
| Windows | %APPDATA%\Claude\claude_desktop_config.json |
| Linux | ~/.config/Claude/claude_desktop_config.json |
Using a Static API Key
{
"mcpServers": {
"linear": {
"command": "npx",
"args": ["-y", "@vineethnkrishnan/linear-mcp"],
"env": {
"LINEAR_API_KEY": "lin_api_..."
}
}
}
}Using OAuth2
{
"mcpServers": {
"linear": {
"command": "npx",
"args": ["-y", "@vineethnkrishnan/linear-mcp"],
"env": {
"LINEAR_CLIENT_ID": "abc12345...",
"LINEAR_CLIENT_SECRET": "lin_oauth_secret_..."
}
}
}
}Then run the OAuth setup:
linear-mcp auth loginThis will:
- Open a browser window where you'll log in to Linear and authorize the app
- After you approve, the browser will show a success message
- Your tokens are saved locally at
~/.mcp-pool/linear/and refresh automatically
Environment Variables
| Variable | Required | Default | Description |
|----------|----------|---------|-------------|
| LINEAR_API_KEY | No* | - | Static Linear API key. |
| LINEAR_CLIENT_ID | No* | - | OAuth2 client ID. |
| LINEAR_CLIENT_SECRET | No* | - | OAuth2 client secret. |
*Either LINEAR_API_KEY or both LINEAR_CLIENT_ID and LINEAR_CLIENT_SECRET must be provided.
Getting Your Credentials
Option A: Personal API Key (Simpler)
- Go to linear.app/settings/api
- Under Personal API keys, click Create key
- Copy the key (starts with
lin_api_)
Option B: OAuth App
- Go to linear.app/settings/api > OAuth applications
- Click Create application
- Copy the Client ID and Client secret
Documentation
For a full list of available tools, detailed examples, and architectural details, visit the documentation site.
Uninstallation
# If installed globally
npm uninstall -g @vineethnkrishnan/linear-mcp
# Remove OAuth tokens (if using OAuth2)
rm -rf ~/.mcp-pool/linear/Testing
npm testLicense
This project is licensed under the MIT License.
