Query and search for issues in Linear, a project management tool.
A Model Context Protocol (MCP) server implementation that provides access to Linear's issue tracking system through a standardized interface.
LINEAR_API_KEY=your_api_key # Your Linear API token
git clone [repository-url]
cd linear-mcp
bun install
bun run build
Edit the appropriate configuration file:
macOS:
~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
~/Library/Application Support/Claude/claude_desktop_config.json
Windows:
%APPDATA%\Code\User\globalStorage\saoudrizwan.claude-dev\settings\cline_mcp_settings.json
%APPDATA%\Claude Desktop\claude_desktop_config.json
Linux:
~/.config/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
Add the following configuration under the mcpServers
object:
{
"mcpServers": {
"linear": {
"command": "node",
"args": ["/absolute/path/to/linear-mcp/build/index.js"],
"env": {
"LINEAR_API_KEY": "your_api_key"
}
}
}
}
Within Cline's MCP settings, restart the MCP server. Restart Claude Desktop to load the new MCP server.
Run development server:
bun run dev
Build project:
bun run build
For detailed usage examples of all tools, see USAGE.md.
Create a new Linear issue or subissue.
Input Schema:
{
"teamId": "string",
"title": "string",
"description": "string",
"parentId": "string",
"status": "string",
"priority": "number",
"assigneeId": "string | 'me'",
"labelIds": ["string"]
}
Update an existing Linear issue.
Input Schema:
{
"issueId": "string",
"title": "string",
"description": "string",
"status": "string",
"priority": "number",
"assigneeId": "string | 'me'",
"labelIds": ["string"],
"cycleId": "string"
}
Get detailed information about a specific Linear issue with optional relationships.
Input Schema:
{
"issueId": "string",
"includeRelationships": "boolean"
}
Search for Linear issues using a query string and advanced filters. Supports Linear's powerful filtering capabilities.
Input Schema:
{
"query": "string",
"includeRelationships": "boolean",
"filter": {
"title": { "contains": "string", "eq": "string", ... },
"description": { "contains": "string", "eq": "string", ... },
"priority": { "gte": "number", "lt": "number", ... },
"estimate": { "eq": "number", "in": ["number"], ... },
"dueDate": { "lt": "string", "gt": "string", ... },
"createdAt": { "gt": "P2W", "lt": "2024-01-01", ... },
"updatedAt": { "gt": "P1M", ... },
"completedAt": { "null": true, ... },
"assignee": { "id": { "eq": "string" }, "name": { "contains": "string" } },
"creator": { "id": { "eq": "string" }, "name": { "contains": "string" } },
"team": { "id": { "eq": "string" }, "key": { "eq": "string" } },
"state": { "type": { "eq": "started" }, "name": { "eq": "string" } },
"labels": { "name": { "in": ["string"] }, "every": { "name": { "eq": "string" } } },
"project": { "id": { "eq": "string" }, "name": { "contains": "string" } },
"and": [{ /* filters */ }],
"or": [{ /* filters */ }],
"assignedTo": "string | 'me'",
"createdBy": "string | 'me'"
},
"projectId": "string",
"projectName": "string"
}
Supported Comparators:
eq
, neq
, in
, nin
, contains
, startsWith
, endsWith
(plus case-insensitive variants)eq
, neq
, lt
, lte
, gt
, gte
, in
, nin
eq
, neq
, lt
, lte
, gt
, gte
(supports ISO 8601 durations)Get a list of Linear teams with optional name/key filtering.
Input Schema:
{
"nameFilter": "string"
}
Delete an existing Linear issue.
Input Schema:
{
"issueId": "string"
}
Create a new comment on a Linear issue.
Input Schema:
{
"issueId": "string",
"body": "string"
}
Get a list of Linear projects with optional name filtering and pagination.
Input Schema:
{
"nameFilter": "string",
"includeArchived": "boolean",
"first": "number",
"after": "string"
}
Get project updates for a given project ID with optional filtering parameters.
Input Schema:
{
"projectId": "string",
"includeArchived": "boolean",
"first": "number",
"after": "string",
"createdAfter": "string",
"createdBefore": "string",
"userId": "string | 'me'",
"health": "string"
}
Create a new update for a Linear project.
Input Schema:
{
"projectId": "string",
"body": "string",
"health": "onTrack | atRisk | offTrack",
"isDiffHidden": "boolean"
}
The server implements a comprehensive error handling strategy:
This project is licensed under the MIT License - see the LICENCE file for details.
Perform queries and entity operations in your Fibery workspace.
Dynamically search and call tools using UnifAI Network
Manages AI agent handoffs with structured documentation and seamless task transitions.
Tools for PostHog analytics, annotations, and project management.
Programmatic control over Windows system operations including mouse, keyboard, window management, and screen capture using nut.js.
Interact with Fider, an open-source customer feedback tool, to manage user suggestions and feedback.
Python tools for MCP that integrate with native Apple applications like Messages, Notes, Mail, and more on macOS.
An MCP server for managing Tempo worklogs in Jira. It connects to Jira and Tempo services using API tokens and environment variables.
This server enables LLMs to use calculator for precise numerical calculations.
An MCP server for integrating Todoist with Cursor AI. Requires a Todoist API token.