Skip to main content
Glama
vinayak-mehta

Linear MCP Server

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:

linear-security-settings

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_xxxxxxxxxxxx

Related MCP server: MCP Linear App

Running the Server

uvx --from git+https://github.com/vinayak-mehta/linear-mcp linear-mcp

Docker

docker build -t linear-mcp:latest .
docker run -it --rm -e LINEAR_API=lin_api_xxxxxx linear-mcp:latest

And 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

linear-issue:///a1b2c3d4

Team Issues

All issues for a specific team

linear-team:///ENG/issues

User Issues

Issues assigned to a user

linear-user:///me/assigned

Organization

Details about your Linear organization

linear-organization:

Viewer

Information about the authenticated user

linear-viewer:

Tools

Tool

Description

linear_create_issue

Create a new Linear issue with title, description, and other attributes

linear_update_issue

Update an existing issue's properties

linear_search_issues

Search issues using flexible filtering criteria

linear_get_user_issues

Retrieve issues assigned to a specific user

linear_add_comment

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: Engineering

Updating 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 shine

Retrieving 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 happen

License

Apache 2.0

Available Tools

5 tools
linear_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
ParametersJSON Schema
NameRequiredDescriptionDefault
issue_idYes
bodyYes
create_as_userNo
display_icon_urlNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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
ParametersJSON Schema
NameRequiredDescriptionDefault
titleYes
team_idYes
descriptionNo
priorityNo
statusNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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)
ParametersJSON Schema
NameRequiredDescriptionDefault
user_idNo
include_archivedNo
limitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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)
ParametersJSON Schema
NameRequiredDescriptionDefault
queryNo
team_idNo
statusNo
assignee_idNo
labelsNo
priorityNo
estimateNo
include_archivedNo
limitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters5/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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
ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
titleNo
descriptionNo
priorityNo
statusNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

  1. 5 tool updatesv0.1.1
    • First observedlinear_add_comment
    • First observedlinear_create_issue
    • First observedlinear_get_user_issues
    • First observedlinear_search_issues
    • First observedlinear_update_issue

TDQS

A3.6/5.0
Disambiguation5/5

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.

Naming Consistency5/5

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.

Tool Count4/5

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.

Completeness4/5

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

ActivityInactive
ResponsivenessSyncing

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

Related MCP Servers

  • A
    license
    Not graded
    quality
    F
    maintenance
    A 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.
    713
    348
    MIT
  • F
    license
    B
    quality
    D
    maintenance
    A 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.
    9
    1
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    A 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.
    29
    3
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    A 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.
    19
    24
    1
    MIT

Latest Blog Posts

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