A Model Context Protocol (MCP) server for Linear, providing AI assistants with access to Linear's project management capabilities.
- Resources: Access issues, projects, teams, users, roadmaps, documents, initiatives, and more
- Tools: Create and update issues, manage projects, search, link projects to initiatives
- Prompts: Templates for issue creation, bug reports, feature requests, and more
- Node.js 18 or later
- A Linear API key
-
Clone the repository:
git clone https://github.com/yourusername/linear-mcp.git cd linear-mcp -
Install dependencies:
npm install
-
Create a
.envfile with your Linear API key:LINEAR_API_KEY=your_linear_api_key_here -
Build the project:
npm run build
To run the server with stdio transport (for use with CLI tools that support MCP):
npm startOr:
node dist/index.js stdioTo run the server as an HTTP service with Server-Sent Events (SSE):
node dist/index.js httpThis will start an HTTP server on port 3000 (configurable via PORT environment variable).
To run in development mode with automatic reloading:
npm run devTo use this server with Claude Desktop:
-
Build the project:
npm run build
-
In Claude Desktop, go to Settings → Advanced → MCP Configuration.
-
Add the following configuration (adjust paths to match your installation):
{ "mcpServers": { "linear": { "command": "node", "args": [ "/path/to/linear-mcp/dist/index.js" ], "env": { "LINEAR_API_KEY": "your_linear_api_key_here" } } } } -
Save the configuration and restart Claude Desktop.
Alternatively, you can copy the provided claude-desktop-config.json file and modify the paths to match your installation.
The server provides access to all major Linear entities as resources:
- Issues:
linear://issuesandlinear://issues/{id} - Teams:
linear://teamsandlinear://teams/{id} - Projects:
linear://projectsandlinear://projects/{id} - Users:
linear://usersandlinear://users/{id} - Initiatives:
linear://initiativesandlinear://initiatives/{id}
- Roadmaps:
linear://roadmapsandlinear://roadmaps/{id} - Milestones:
linear://milestonesandlinear://milestones/{id} - Documents:
linear://documentsandlinear://documents/{id} - Integrations:
linear://integrationsandlinear://integrations/{id} - Organization:
linear://organization
linear://teams/{teamId}/issues- Issues for a specific teamlinear://users/{userId}/issues- Issues assigned to a specific userlinear://projects/{projectId}/issues- Issues in a specific projectlinear://teams/{teamId}/states- Workflow states for a teamlinear://teams/{teamId}/labels- Labels for a teamlinear://teams/{teamId}/cycles- Cycles for a teamlinear://teams/{teamId}/members- Members of a teamlinear://teams/{teamId}/documents- Documents for a teamlinear://projects/{projectId}/documents- Documents for a projectlinear://projects/{projectId}/initiative- Initiative associated with a projectlinear://initiatives/{initiativeId}/projects- Projects associated with an initiativelinear://milestones/{milestoneId}/projects- Projects for a milestonelinear://organization/subscription- Organization subscription detailslinear://organization/auth-services- Organization authentication serviceslinear://integration-services- Available integration services
The server provides tools for:
-
Issue Management
- Creating new issues
- Updating existing issues
- Adding comments to issues
-
Project Management
- Creating new projects
- Updating existing projects
- Adding issues to projects
-
Initiative Management
- Creating initiatives
- Linking projects to initiatives
- Unlinking projects from initiatives
-
Search Capabilities
- Comprehensive search across Linear entities
- Finding issues with specific criteria
The server provides prompt templates for:
-
Issue Related
- Creating new issues
- Creating bug reports
- Creating feature requests
-
Project Related
- Creating new projects
- Planning projects with issues
- Creating project status updates
Test with the MCP Inspector:
npx @modelcontextprotocol/inspector stdio -- npm startOr, if running in HTTP mode, open the MCP Inspector in your browser and connect to your server's URL.
LINEAR_API_KEY(required): Your Linear API keySERVER_PORT(optional): Port for HTTP server (default: 3000)LOG_LEVEL(optional): Logging level (default: info)
MIT