Linear MCP Server
A Model Context Protocol server that allows Claude to interact with Linear's API for managing teams, issues, projects, and cycles.
cpropster
README
Linear MCP Server
This is a Model Context Protocol (MCP) server for Linear, allowing Claude to interact with Linear's API to manage teams, issues, projects, and cycles.
Features
- linear_get_teams: Get all teams with their states and labels
- linear_search_issues: Search for issues with filtering and pagination
- linear_get_cycles: Get all cycles for a team
- linear_get_projects: Get all projects
- linear_create_issue: Create a new issue
- linear_update_issue: Update an existing issue
Quick Start
For Cline MCP Marketplace users:
- Install the server through the Cline MCP Marketplace
- Configure your Linear credentials in the MCP configuration file
- Verify the installation by testing the connection with
linear_search_issues
See the detailed Installation and Verification sections below.
Installation
- Clone this repository
- Install dependencies:
npm install
- Build the server:
npm run build
The installation process has three main steps:
- Setup: Clone and build the server (steps above)
- Configuration: Set up your Linear OAuth token and configure the MCP server
- Verification: Test the connection to ensure it's working properly
⚠️ Your installation is not complete until you've verified the connection works!
Configuration
The server requires a Linear OAuth token to authenticate with the Linear API. You can set this token in the MCP configuration file.
Getting a Linear OAuth Token
- Create a Linear OAuth application at https://linear.app/settings/api/applications
- Create an OAuth Application
- Name the Application Cline MCP
- Set the redirect URI to
http://localhost:3000/callback
- Note the client ID and client secret
- Create and Copy a USER based developer token
MCP Configuration
Add the following to your MCP configuration file:
{
"mcpServers": {
"github.com/cpropster/linear-mcp-server": {
"command": "node",
"args": [
"/path/to/linear-mcp-server/build/index.js"
],
"env": {
"LINEAR_CLIENT_ID": "your-client-id",
"LINEAR_CLIENT_SECRET": "your-client-secret",
"LINEAR_REDIRECT_URI": "http://localhost:3000/callback",
"LINEAR_REFRESH_TOKEN": "your-refresh-token"
},
"disabled": false,
"autoApprove": []
}
}
}
Replace the placeholder credentials with your actual credentials.
Verifying Installation
⚠️ IMPORTANT: Your installation is not complete until you verify that the MCP connection is working correctly.
After configuring the MCP server, you must test the connection to ensure it's working properly:
- Reload the MCP configuration
- Test the connection by using the
linear_search_issues
tool:
use_mcp_tool(
server_name="github.com/cpropster/linear-mcp-server",
tool_name="linear_search_issues",
arguments={
"first": 5
}
)
If successful, you'll see a response like this:
{
"issues": {
"nodes": [
{
"id": "123abc",
"title": "Example issue 1",
"identifier": "TEAM-123",
"description": "This is an example issue"
// ... other issue data
},
// ... more issues
]
}
}
If the connection is working, you'll see a list of issues from your Linear account. If you see an error, check your configuration and credentials.
Common issues:
- Incorrect server path in the
args
field - Invalid or expired Linear tokens
- Missing required environment variables
- Server is disabled in the configuration
Usage
Getting Teams
Use the linear_get_teams
tool to retrieve all teams:
use_mcp_tool(
server_name="github.com/cpropster/linear-mcp-server",
tool_name="linear_get_teams",
arguments={}
)
Searching Issues
Use the linear_search_issues
tool to search for issues:
use_mcp_tool(
server_name="github.com/cpropster/linear-mcp-server",
tool_name="linear_search_issues",
arguments={
"query": "Optional search query",
"teamIds": ["Optional team IDs"],
"first": 10 // Number of issues to return (default: 50)
}
)
Getting Cycles
Use the linear_get_cycles
tool to retrieve cycles for a team:
use_mcp_tool(
server_name="github.com/cpropster/linear-mcp-server",
tool_name="linear_get_cycles",
arguments={
"teamId": "required-team-id"
}
)
Getting Projects
Use the linear_get_projects
tool to retrieve projects:
use_mcp_tool(
server_name="github.com/cpropster/linear-mcp-server",
tool_name="linear_get_projects",
arguments={
"teamId": "optional-team-id",
"first": 10 // Number of projects to return (default: 50)
}
)
Creating Issues
Use the linear_create_issue
tool to create a new issue:
use_mcp_tool(
server_name="github.com/cpropster/linear-mcp-server",
tool_name="linear_create_issue",
arguments={
"teamId": "required-team-id",
"title": "Required issue title",
"description": "Optional issue description",
"assigneeId": "optional-assignee-id",
"stateId": "optional-state-id",
"priority": 0, // Optional priority (0-4)
"estimate": 1, // Optional estimate
"cycleId": "optional-cycle-id",
"projectId": "optional-project-id",
"labelIds": ["optional-label-ids"]
}
)
Updating Issues
Use the linear_update_issue
tool to update an existing issue:
use_mcp_tool(
server_name="github.com/cpropster/linear-mcp-server",
tool_name="linear_update_issue",
arguments={
"issueId": "required-issue-id",
"title": "Optional new title",
"description": "Optional new description",
"assigneeId": "optional-assignee-id",
"stateId": "optional-state-id",
"priority": 0, // Optional priority (0-4)
"estimate": 1, // Optional estimate
"cycleId": "optional-cycle-id",
"projectId": "optional-project-id",
"labelIds": ["optional-label-ids"]
}
)
Debugging
If you encounter issues during the verification step, or if the MCP connection stops working, you can use these debugging techniques:
-
Check MCP Configuration: Ensure your MCP configuration file has the correct server path and credentials.
-
Run the Test Client: Use the included test client to verify the server can connect to Linear:
node test-client.js
This will run a series of tests to verify that the server can connect to Linear and retrieve data.
-
Check Linear API Status: Verify that the Linear API is operational at status.linear.app.
-
Inspect Server Logs: If you're running the server manually, check the console output for error messages.
Development
The server is built using TypeScript and the Linear SDK. The main implementation is in src/index.ts
.
To make changes to the server:
- Edit the source code in
src/
- Build the server with
npm run build
- Test your changes with the test client
- Update the MCP configuration to use the new build
Security Considerations
This MCP server requires access to your Linear account. To keep your data secure:
- Never commit sensitive tokens: The
.env
file and any files containing tokens are excluded in.gitignore
- Use environment variables: Always use environment variables in the MCP configuration rather than hardcoding tokens
- Limit permissions: When creating a Linear OAuth application, only grant the permissions needed
- Regularly rotate tokens: Periodically generate new tokens and update your configuration
The server uses the official Linear SDK and communicates with Linear's API over HTTPS, ensuring your data is transmitted securely.
License
MIT
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Playwright MCP Server
Provides a server utilizing Model Context Protocol to enable human-like browser automation with Playwright, allowing control over browser actions such as navigation, element interaction, and scrolling.
MCP Package Docs Server
Facilitates LLMs to efficiently access and fetch structured documentation for packages in Go, Python, and NPM, enhancing software development with multi-language support and performance optimization.
Claude Code MCP
An implementation of Claude Code as a Model Context Protocol server that enables using Claude's software engineering capabilities (code generation, editing, reviewing, and file operations) through the standardized MCP interface.
@kazuph/mcp-taskmanager
Model Context Protocol server for Task Management. This allows Claude Desktop (or any MCP client) to manage and execute tasks in a queue-based system.
Apple MCP Server
Enables interaction with Apple apps like Messages, Notes, and Contacts through the MCP protocol to send messages, search, and open app content using natural language.
contentful-mcp
Update, create, delete content, content-models and assets in your Contentful Space