This project provides an MCP server for interacting with the Linear API, enabling integration with MCP clients like Cline, IDE extensions, and other AI tools. It provides tools for managing Linear issues, projects, and teams via the Model Context Protocol.
This package is available on npm: @touchlab/linear-mcp-integration
Current Status:
- Personal Access Token (PAT) authentication is implemented and tested.
- Core functionality for managing issues, projects, teams, and users via PAT has been tested.
- OAuth 2.0 flow exists in the code but is untested and likely non-functional.
This project is based on cline/linear-mcp. The logic is largely the same, but key parts of the internals have been modified after testing.
This server requires a Linear Personal Access Token (PAT).
- Go to your Linear workspace settings: Account > Security & access.
- Under the Personal API keys section, click New API key.
- Give the key a descriptive label (e.g., "MCP Server Key"). For Permissions select Full Access. For team access select All teams you have access to
- Copy the generated key immediately (it won't be shown again).
- You will need to provide this key to the server using the
LINEAR_ACCESS_TOKEN
environment variable when running it (see Step 2).
You can run the server directly using npx
without cloning the repository, or install it globally.
Option A: Using npx
(Recommended)
This method runs the server directly from the npm registry without global installation. Configure your MCP client (like Cline, Cursor, Claude, etc) to run the server using npx
and pass the PAT via environment variables:
// Example MCP Client Configuration (e.g., Cline, Cursor, Claude)
{
"mcpServers": {
"linear": {
"command": "npx",
"args": ["@touchlab/linear-mcp-integration"],
"env": {
"LINEAR_ACCESS_TOKEN": "lin_api_your_personal_access_token"
}
}
}
}
Option B: Global Installation (Less Common)
If you prefer, you can install the package globally:
npm install -g @touchlab/linear-mcp-integration
Then, you can run it directly from your terminal (you still need to provide the environment variable):
LINEAR_ACCESS_TOKEN=YOUR_PAT
(Note: Global installation is generally less preferred for server processes unless you have a specific need.)
- Personal Access Token (PAT) - Required & Tested: This is the primary and tested authentication method. Follow the steps in Section 1.
- OAuth Flow (Untested / Non-Functional): The code includes handlers for OAuth (
linear_auth
,linear_auth_callback
), but this flow has not been tested and requires further development to be considered functional. Contributions welcome!
The server currently supports the following tools (tested with PAT authentication unless noted):
- Authentication (OAuth - Untested):
linear_auth
: Initiate OAuth flow (Untested)linear_auth_callback
: Handle OAuth callback (Untested)
- Issues:
linear_create_issue
: Create a single issue.linear_create_issues
: Create multiple issues in bulk.linear_search_issues
: Search issues (filter by title currently).linear_delete_issue
: Delete a single issue.
- Projects:
linear_create_project_with_issues
: Create a project and associated issues.linear_get_project
: Get project details by ID.linear_search_projects
: Search projects by exact name match.
- Teams:
linear_get_teams
: Get details for all teams.
- Users:
linear_get_user
: Get information about the authenticated user.
(Note: Bulk delete and bulk update functionality has been removed.)
If you want to run the MCP server locally first run these commands:
# Clone the repository
# git clone https://github.com/touchlab/linear-mcp-integration.git
# cd linear-mcp-integration
# Install dependencies
npm install
# Build the server
npm run build
# Start the server (requires LINEAR_ACCESS_TOKEN in .env or environment)
npm start
Then update your MCP configuration to point to the built index.js
.
// Example MCP Client Configuration (e.g., Cline, Cursor, Claude)
{
"mcpServers": {
"linear": {
"command": "node",
"args": ["/absolute/path/to/your/linear-mcp-integration/build/index.js"],
"env": {
"LINEAR_ACCESS_TOKEN": "lin_api_your_personal_access_token"
}
}
}
}
Your client should now be able to access your MCP server.
This fork of Cline's version is maintained by Touchlab.
Contributions are welcome, especially for improving or fully implementing the OAuth 2.0 flow. Please feel free to open issues or pull requests on the touchlab/linear-mcp-integration repository.