This MCP server provides Linear integration capabilities through the Model Context Protocol, allowing AI models to interact with Linear for issue tracking and project management tasks.
To get started with the Linear MCP Integration Server, follow these steps:
.env
file in the project root with your Linear API key:LINEAR_API_KEY=your_api_key_here
npm install
# Development mode with auto-reload
npm run dev
# Production mode
npm start
You can also deploy this server on Smithery.ai:
The server provides the following tools through the MCP interface:
Use linear_create_issue
with these parameters:
title
(required): Issue titleteamId
(required): Team ID to create issue indescription
(optional): Issue description (markdown supported)priority
(optional): Priority level (0-4)status
(optional): Initial status nameUse linear_search_issues
to find issues with these parameters:
query
(optional): Text to search in title/descriptionteamId
(optional): Filter by teamstatus
(optional): Filter by statusassigneeId
(optional): Filter by assigneepriority
(optional): Priority level (0-4)limit
(optional, default: 10): Max results per pagecursor
(optional): Pagination cursor for fetching next pagesortBy
(optional, default: 'updated'): Field to sort by ('created', 'updated', 'priority', 'title')sortDirection
(optional, default: 'desc'): Sort direction ('asc', 'desc')Retrieve detailed information about a specific issue with linear_get_issue_details
:
issueId
(required): Issue ID (e.g., "DATA-1284") to fetch details forUpdate multiple issues at once with linear_bulk_update_status
:
issueIds
(required): List of issue IDs to update (e.g. ["ENG-123", "DATA-456"])targetStatus
(required): Target status to set for all issues (e.g. "In Progress")Get all issues in the current sprint with linear_sprint_issues
:
teamId
(required): Team ID to get sprint issues forFilter current sprint issues with linear_filter_sprint_issues
:
teamId
(required): Team ID to get sprint issues forstatus
(required): Status to filter by (e.g. "Pending Prod Release")Create, update, or get information about cycles with linear_manage_cycle
:
action
(required): Action to perform: "create", "update", "get", or "list"teamId
(required): Team ID to manage cycles forcycleId
(optional, required for update and get actions): Cycle IDname
(optional, required for create): Cycle namestartDate
(optional, required for create): Start date in ISO format (YYYY-MM-DD)endDate
(optional, required for create): End date in ISO format (YYYY-MM-DD)description
(optional): Cycle descriptionSearch and retrieve Linear teams with linear_search_teams
:
query
(optional): Text to search in team namesThe server includes several features that ensure reliable performance:
There are two ways to add an MCP server to Cursor. The most common way is to add the server globally in the ~/.cursor/mcp.json
file so that it is available in all of your projects.
If you only need the server in a single project, you can add it to the project instead by creating or adding it to the .cursor/mcp.json
file.
To add a global MCP server go to Cursor Settings > MCP and click "Add new global MCP server".
When you click that button the ~/.cursor/mcp.json
file will be opened and you can add your server like this:
{
"mcpServers": {
"cursor-rules-mcp": {
"command": "npx",
"args": [
"-y",
"cursor-rules-mcp"
]
}
}
}
To add an MCP server to a project you can create a new .cursor/mcp.json
file or add it to the existing one. This will look exactly the same as the global MCP server example above.
Once the server is installed, you might need to head back to Settings > MCP and click the refresh button.
The Cursor agent will then be able to see the available tools the added MCP server has available and will call them when it needs to.
You can also explictly ask the agent to use the tool by mentioning the tool name and describing what the function does.