Installation
Choose your preferred installation method and IDE below.
Get Your Linear API Key
Before configuring any IDE, you need a Linear personal API key:
- Go to Linear Settings > API
- Click Create key under "Personal API keys"
- Give it a label and copy the key (starts with
lin_api_)
Never commit your Linear API key to version control. Always use environment variables or IDE-specific secret management.
Environment Variables
| Variable | Required | Description |
|---|---|---|
LINEAR_API_KEY | Yes | Personal API key from Linear |
The server sends the API key directly in the Authorization header without a Bearer prefix. This matches Linear's expected authentication format. Do not add Bearer yourself.
Option A: Via npx (Recommended)
No installation needed. Your IDE will run the server on demand:
npx -y @vineethnkrishnan/linear-mcp
This is the simplest method — just reference it in your IDE config below.
Option B: Global Install
npm install -g @vineethnkrishnan/linear-mcp
Then use linear-mcp as the command in your IDE config (instead of npx).
Option C: From Source
git clone https://github.com/vineethkrishnan/mcp-pool.git
cd mcp-pool
npm install
npm run build
Then use node /absolute/path/to/mcp-pool/packages/linear/build/index.js as the command.
IDE Configuration
Claude Desktop
Config file location:
| OS | Path |
|---|---|
| macOS | ~/Library/Application Support/Claude/claude_desktop_config.json |
| Windows | %APPDATA%\Claude\claude_desktop_config.json |
| Linux | ~/.config/Claude/claude_desktop_config.json |
Quick access: Settings > Developer > Edit Config
Using npx:
{
"mcpServers": {
"linear": {
"command": "npx",
"args": ["-y", "@vineethnkrishnan/linear-mcp"],
"env": {
"LINEAR_API_KEY": "lin_api_..."
}
}
}
}
Using global install:
{
"mcpServers": {
"linear": {
"command": "linear-mcp",
"env": {
"LINEAR_API_KEY": "lin_api_..."
}
}
}
}
From source:
{
"mcpServers": {
"linear": {
"command": "node",
"args": ["/absolute/path/to/mcp-pool/packages/linear/build/index.js"],
"env": {
"LINEAR_API_KEY": "lin_api_..."
}
}
}
}
Restart Claude Desktop completely after editing the config. Changes are not picked up automatically.
VS Code (GitHub Copilot)
Config file location:
| Scope | Path |
|---|---|
| Workspace | .vscode/mcp.json (in your project root) |
| User (macOS) | ~/Library/Application Support/Code/User/mcp.json |
| User (Windows) | %APPDATA%\Code\User\mcp.json |
| User (Linux) | ~/.config/Code/User/mcp.json |
Quick access: Command Palette (Cmd+Shift+P) > MCP: Open User Configuration
VS Code uses "servers" as the root key, not "mcpServers".
Workspace config (.vscode/mcp.json):
{
"servers": {
"linear": {
"command": "npx",
"args": ["-y", "@vineethnkrishnan/linear-mcp"],
"env": {
"LINEAR_API_KEY": "${input:linear-key}"
}
}
},
"inputs": [
{
"id": "linear-key",
"description": "Linear Personal API Key",
"type": "password"
}
]
}
The inputs feature prompts you for the key securely — it never gets stored in the file.
User config (without inputs):
{
"servers": {
"linear": {
"command": "npx",
"args": ["-y", "@vineethnkrishnan/linear-mcp"],
"env": {
"LINEAR_API_KEY": "lin_api_..."
}
}
}
}
Cursor
Config file location:
| Scope | Path |
|---|---|
| Global | ~/.cursor/mcp.json |
| Project | .cursor/mcp.json (in your project root) |
Quick access: Settings > Cursor Settings > MCP
{
"mcpServers": {
"linear": {
"command": "npx",
"args": ["-y", "@vineethnkrishnan/linear-mcp"],
"env": {
"LINEAR_API_KEY": "lin_api_..."
}
}
}
}
Project-level config (.cursor/mcp.json) takes precedence over global config.
Windsurf (Codeium)
Config file location:
| OS | Path |
|---|---|
| macOS / Linux | ~/.codeium/windsurf/mcp_config.json |
| Windows | %USERPROFILE%\.codeium\windsurf\mcp_config.json |
Quick access: Settings > Advanced Settings > Cascade section
{
"mcpServers": {
"linear": {
"command": "npx",
"args": ["-y", "@vineethnkrishnan/linear-mcp"],
"env": {
"LINEAR_API_KEY": "lin_api_..."
}
}
}
}
Make sure MCP is enabled in Windsurf: Settings > Advanced > Cascade > Enable MCP.
JetBrains IDEs (IntelliJ, WebStorm, PyCharm, etc.)
JetBrains IDEs (2025.2+) support MCP servers through the settings UI.
Setup:
- Open Settings/Preferences > Tools > AI Assistant > MCP Servers
- Click + Add to add a new server
- Configure:
- Name:
linear - Command:
npx - Arguments:
-y @vineethnkrishnan/linear-mcp - Environment Variables:
LINEAR_API_KEY=lin_api_...
- Name:
- Click OK and restart the AI Assistant
Alternative — manual config file:
Create or edit ~/.config/JetBrains/mcp.json:
{
"mcpServers": {
"linear": {
"command": "npx",
"args": ["-y", "@vineethnkrishnan/linear-mcp"],
"env": {
"LINEAR_API_KEY": "lin_api_..."
}
}
}
}
Claude Code (CLI)
Option 1 — CLI command (recommended):
claude mcp add linear \
--scope user \
-e LINEAR_API_KEY=lin_api_... \
-- npx -y @vineethnkrishnan/linear-mcp
Scope options:
--scope user— available in all your projects--scope local— current project only (default)--scope project— shared with team via.mcp.json
Option 2 — manual config:
Edit ~/.claude.json (user scope) or .mcp.json (project scope):
{
"mcpServers": {
"linear": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@vineethnkrishnan/linear-mcp"],
"env": {
"LINEAR_API_KEY": "lin_api_..."
}
}
}
}
Verify it's working:
claude mcp list
Verify Installation
After configuring your IDE, test the connection by asking your AI assistant:
"List the teams in my Linear workspace."
If the server is working, you'll get a response with your teams. If not, check:
- API key is valid — test with
curl -H "Authorization: lin_api_..." -H "Content-Type: application/json" -d '{"query":"{ viewer { id name } }"}' https://api.linear.app/graphql - Node.js >= 20 — run
node --version - Config file syntax — validate your JSON (no trailing commas)
- Restart your IDE — most IDEs require a full restart after config changes
Security Recommendations
- Use a dedicated API key for AI tooling — revoke it independently if needed
- Linear personal API keys inherit your full permissions — be mindful of what data the AI can access
- Never share config files containing API keys
- Add config files with secrets to
.gitignore - Rotate keys periodically via Linear Settings > API