Linear MCP Server
The Linear MCP Server provides tools for managing Linear issues and project tracking:
Create Issues: Create new issues with title, team ID, description, priority, and status
Update Issues: Modify existing issues by changing properties like title, description, priority, or status
Search Issues: Find issues using filters such as text query, team, assignee, labels, priority, estimate points, and archive status
Get User Issues: Retrieve issues assigned to a specific user or the authenticated user
Add Comments: Add comments to existing issues, with options to customize the user's name and avatar
Access Resources: Retrieve details about issues, teams, users, organizations, and the authenticated viewer
Provides tools for issue tracking and project management in Linear, allowing users to create and update issues, search and filter issues, retrieve user-assigned tasks, add comments, and access organizational information.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Linear MCP Servercreate a bug ticket for the login screen disappearing on mobile"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Linear MCP
A Model Context Protocol (MCP) server for Linear, providing tools for issue tracking and project management.
Configuration
Go to Linear security settings and create an API key:

Then, configure it with the LINEAR_API_KEY env variable:
# Add to your .env file
LINEAR_API_KEY=lin_api_xxxxxxxxxxxx
# Or export as environment variable
export LINEAR_API_KEY=lin_api_xxxxxxxxxxxxRelated MCP server: MCP Linear App
Running the Server
uvx --from git+https://github.com/vinayak-mehta/linear-mcp linear-mcpDocker
docker build -t linear-mcp:latest .
docker run -it --rm -e LINEAR_API=lin_api_xxxxxx linear-mcp:latestAnd to use this in Claude Desktop, it would look like this:
"linear-mcp-server": {
"command": "docker",
"args": [
"run",
"-it",
"--rm",
"-e",
"LINEAR_API_KEY=lin_api_xxxxxx",
"linear-mcp-server:latest"
]
}Resources
Linear MCP provides access to the following resource types:
Resource | Description | Example URI |
Issue | Details of a specific Linear issue |
|
Team Issues | All issues for a specific team |
|
User Issues | Issues assigned to a user |
|
Organization | Details about your Linear organization |
|
Viewer | Information about the authenticated user |
|
Tools
Tool | Description |
| Create a new Linear issue with title, description, and other attributes |
| Update an existing issue's properties |
| Search issues using flexible filtering criteria |
| Retrieve issues assigned to a specific user |
| Add a comment to an existing issue |
Example Prompts
Creating a New Issue
Create a bug ticket: "Login screen disappears like magic tricks at a birthday party!" Priority: HIGH, Team: EngineeringUpdating an Issue
Upgrade ENG-123 to "shooting star" priority! Users are excited! Change status to "Racing to the finish line!"Searching for Issues
Find all Frontend tasks with "authentication" that are patiently waiting for their moment to shineRetrieving User Tasks
What exciting challenges await me today in Linear?Adding a Comment
Add to DEV-456: "Temporarily paused while the API does its beauty routine. Back on it next sprint with fresh energy!"Organization Overview
Show me our amazing team structure so I can appreciate all the talented people making this happenLicense
Apache 2.0
Available Tools
5 toolslinear_add_commentB
Add a comment to an issue.
Args:
issue_id: Issue ID to comment on
body: Comment text (markdown supported)
create_as_user: Custom username
display_icon_url: Custom avatar URL
| Name | Required | Description | Default |
|---|---|---|---|
| issue_id | Yes | ||
| body | Yes | ||
| create_as_user | No | ||
| display_icon_url | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states the action ('Add a comment') but doesn't mention permission requirements, whether comments are editable/deletable, rate limits, or what happens on success/failure. The mention of 'markdown supported' for the body parameter is useful context, but overall behavioral traits are minimally covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is perfectly structured: a clear purpose statement followed by a bullet-point style parameter explanation. Every sentence earns its place, with no redundant information. The front-loaded purpose makes it immediately scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that there's an output schema (which handles return values), no annotations, and good parameter coverage in the description, the description is moderately complete. However, as a mutation tool with no annotations, it should ideally mention authentication needs or side effects. The purpose and parameters are clear, but behavioral context is light.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It provides clear semantics for all 4 parameters: 'issue_id' (Issue ID to comment on), 'body' (Comment text with markdown support), 'create_as_user' (Custom username), and 'display_icon_url' (Custom avatar URL). This adds substantial value beyond the bare schema, though it doesn't explain format constraints (e.g., URL validation).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Add' and resource 'comment to an issue', making the purpose immediately understandable. It distinguishes from siblings like 'linear_create_issue' or 'linear_update_issue' by focusing specifically on commenting rather than issue creation or modification. However, it doesn't explicitly differentiate from hypothetical comment-editing tools that might exist elsewhere.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing an existing issue), when not to use it, or how it relates to sibling tools like 'linear_update_issue' which might also allow commenting. The agent must infer usage from the purpose alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
linear_create_issueB
Create a new Linear issue.
Args:
title: Issue title
team_id: Team ID to create issue in
description: Issue description (markdown supported)
priority: Priority level (1=urgent, 4=low)
status: Initial status name
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | ||
| team_id | Yes | ||
| description | No | ||
| priority | No | ||
| status | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states this creates an issue (implying a write/mutation operation) but doesn't mention authentication requirements, rate limits, error conditions, or what happens on success/failure. The description mentions markdown support for description, which is useful context, but overall behavioral transparency is minimal for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured with a clear purpose statement followed by parameter explanations. Each parameter description is brief but informative. There's no unnecessary verbiage. The only minor improvement would be front-loading more critical behavioral information before the parameter list.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given this is a mutation tool with no annotations but with an output schema (which handles return values), the description is moderately complete. It covers the basic purpose and parameters well, but lacks important context about authentication, error handling, and usage guidelines. For a 5-parameter creation tool, it should provide more behavioral context despite the output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description provides essential semantic context for all 5 parameters. It explains what each parameter represents (e.g., 'Issue title', 'Team ID to create issue in', 'Priority level (1=urgent, 4=low)'), which goes well beyond the bare schema. The priority scale explanation is particularly valuable. However, it doesn't specify format constraints or provide examples.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create a new Linear issue') and resource ('Linear issue'), making the purpose immediately understandable. It distinguishes from siblings like linear_update_issue by specifying creation rather than modification. However, it doesn't explicitly contrast with other creation-related tools (none listed), so it's not a perfect 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like linear_update_issue or linear_search_issues. There's no mention of prerequisites, constraints, or typical use cases. The only implied context is that you need a team_id, but this is stated as a parameter requirement rather than usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
linear_get_user_issuesB
Get issues assigned to a user.
Args:
user_id: User ID (omit for authenticated user)
include_archived: Include archived issues
limit: Max results (default: 50)
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | No | ||
| include_archived | No | ||
| limit | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions that it 'gets issues' and includes parameters for archived issues and limits, but it doesn't describe key behaviors like whether this is a read-only operation, what permissions are needed, how results are returned (e.g., pagination, format), or any rate limits. For a tool with no annotations, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded: it starts with a clear purpose statement, followed by a bullet-point-like list of parameters with brief explanations. Every sentence earns its place by adding value, and there's no wasted text, making it highly efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (3 parameters, no annotations, but with an output schema), the description is partially complete. It covers the purpose and parameters well, but since there's no output schema mentioned in the context signals (though 'Has output schema: true' is noted, the description doesn't reference it), it lacks details on return values or error handling. This leaves some gaps for an AI agent to fully understand the tool's behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaningful semantics beyond the input schema: it explains that 'user_id' can be omitted for the authenticated user, clarifies that 'include_archived' includes archived issues, and notes the default for 'limit' is 50. Since schema description coverage is 0%, the description effectively compensates by providing clear parameter meanings, though it doesn't cover all potential nuances (e.g., format of user_id).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get issues assigned to a user.' It specifies the verb ('Get') and resource ('issues assigned to a user'), making it easy to understand what the tool does. However, it doesn't explicitly differentiate from sibling tools like 'linear_search_issues' (which might search issues more broadly), so it doesn't reach the highest score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides some implied usage context: it mentions that 'user_id' can be omitted for the authenticated user, suggesting when to use this parameter. However, it doesn't give explicit guidance on when to choose this tool over alternatives like 'linear_search_issues' or mention any prerequisites or exclusions, leaving gaps in usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
linear_search_issuesB
Search issues with flexible filtering.
Args:
query: Text to search in title/description
team_id: Filter by team
status: Filter by status
assignee_id: Filter by assignee
labels: Filter by labels
priority: Filter by priority
estimate: Filter by estimate points
include_archived: Include archived issues
limit: Max results (default: 10)
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | ||
| team_id | No | ||
| status | No | ||
| assignee_id | No | ||
| labels | No | ||
| priority | No | ||
| estimate | No | ||
| include_archived | No | ||
| limit | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only states the action ('search') and lists parameters, but lacks critical behavioral details such as whether this is a read-only operation, how results are returned (e.g., pagination, sorting), error handling, or rate limits. For a search tool with 9 parameters, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and front-loaded with the core purpose, followed by a bullet-point list of parameters. Every sentence and bullet point earns its place by providing essential information without redundancy, making it efficient and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (9 parameters, no annotations, but an output schema exists), the description is partially complete. It excels in parameter semantics but lacks behavioral context and usage guidelines. The presence of an output schema means the description doesn't need to explain return values, but other gaps remain, making it adequate but with clear room for improvement.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds significant value beyond the input schema, which has 0% schema description coverage. It provides clear, concise explanations for all 9 parameters (e.g., 'query: Text to search in title/description', 'include_archived: Include archived issues'), effectively compensating for the schema's lack of descriptions and enhancing the agent's understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Search issues with flexible filtering.' This specifies the verb ('search') and resource ('issues'), and the mention of 'flexible filtering' hints at its scope. However, it doesn't explicitly differentiate from sibling tools like 'linear_get_user_issues', which might also retrieve issues, so it doesn't reach the highest clarity level.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'linear_get_user_issues' or 'linear_create_issue', nor does it specify prerequisites, contexts, or exclusions for usage. This leaves the agent without direction on tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
linear_update_issueB
Update an existing Linear issue.
Args:
id: Issue ID to update
title: New title
description: New description
priority: New priority (1=urgent, 4=low)
status: New status name
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| title | No | ||
| description | No | ||
| priority | No | ||
| status | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states this is an update operation (implying mutation) but doesn't mention authentication requirements, rate limits, error conditions, or what happens when only some fields are provided (partial updates). The priority scale explanation (1=urgent, 4=low) is helpful but insufficient for a mutation tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured with a clear purpose statement followed by parameter explanations. Every sentence adds value: the first establishes the tool's function, and the parameter list provides essential context. No redundant or unnecessary information is included.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given this is a mutation tool with 5 parameters, 0% schema description coverage, no annotations, but with an output schema, the description is moderately complete. It covers parameter meanings well but lacks behavioral context (auth, errors, partial updates). The output schema existence means return values don't need explanation, but other gaps remain for a tool that modifies data.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description provides meaningful context for all 5 parameters beyond the schema's 0% coverage. It explains 'id' is for identification, clarifies that title/description/status accept new values, and crucially defines the priority scale (1=urgent, 4=low). This compensates well for the schema's lack of descriptions, though it doesn't explain null handling for optional parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Update' and resource 'existing Linear issue', making the purpose unambiguous. It distinguishes from siblings like linear_create_issue (create vs update) and linear_get_user_issues (read vs update). However, it doesn't explicitly differentiate from linear_add_comment (which adds comments rather than modifying issue fields).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing issue ID), when to choose update over create, or how it differs from linear_add_comment for issue modifications. The agent must infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
5 tool updates
v0.1.1- First observed
linear_add_comment - First observed
linear_create_issue - First observed
linear_get_user_issues - First observed
linear_search_issues - First observed
linear_update_issue
TDQS
Each tool has a clearly distinct purpose: add_comment, create_issue, get_user_issues, search_issues, and update_issue target specific operations with no overlap. The descriptions reinforce these distinctions, making misselection unlikely.
All tools follow a consistent 'linear_verb_noun' pattern (e.g., linear_add_comment, linear_create_issue). This predictable naming scheme enhances readability and agent usability without any deviations.
With 5 tools, the count is reasonable for a Linear issue management server, covering core operations. It feels slightly thin but not inadequate, as key functions like create, read, update, and search are present.
The toolset covers essential CRUD operations for Linear issues (create, get, update, comment) and includes search functionality. Minor gaps exist, such as no delete_issue or list_teams tools, but agents can manage core workflows effectively.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
MCP server for Linear project management and issue tracking
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
A Model Context Protocol server for Wix AI tools
Search, read and create Linear issues, projects, teams and cycles.
Related MCP Servers
- AlicenseNot gradedqualityFmaintenanceA Model Context Protocol server that integrates with Linear's issue tracking system, allowing LLMs to create, update, search, and comment on Linear issues through natural language interactions.713348MIT
- FlicenseBqualityDmaintenanceA server that enables AI assistants to interact with Linear's project management tools through the Model Context Protocol, supporting features like searching, creating, and updating issues, adding comments, and retrieving user profiles and team information.91-
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol server implementation that enables AI assistants to interact with Linear project management systems, allowing them to create, retrieve, and modify data related to issues, projects, teams, and users.293MIT
- AlicenseAqualityCmaintenanceA Model Context Protocol server that enables large language models to interact with Linear's issue tracking system, allowing management of issues, projects, teams, and other Linear resources.19241MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/vinayak-mehta/linear-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server