Skip to main content
Glama

Linear MCP Server

An MCP server for interacting with Linear's API. This server provides a set of tools for managing Linear issues, projects, and teams through Cline.

Setup Guide

1. Environment Setup

  1. Clone the repository

  2. Install dependencies:

    npm install
  3. Copy .env.example to .env:

    cp .env.example .env

2. Authentication

The server supports two authentication methods:

  1. Go to Linear Settings

  2. Navigate to the "Security & access" section

  3. Find the "Personal API keys" section

  4. Click "New API key"

  5. Give the key a descriptive label (e.g. "Cline MCP")

  6. Copy the generated token immediately

  7. Add the token to your .env file:

    LINEAR_API_KEY=your_api_key

OAuth Flow (Alternative) NOT IMPLEMENTED

  1. Create an OAuth application at https://linear.app/settings/api/applications

  2. Configure OAuth environment variables in .env:

    LINEAR_CLIENT_ID=your_oauth_client_id
    LINEAR_CLIENT_SECRET=your_oauth_client_secret
    LINEAR_REDIRECT_URI=http://localhost:3000/callback

3. Running the Server

  1. Build the server:

    npm run build
  2. Start the server:

    npm start

4. Cline Integration

  1. Open your Cline MCP settings file:

    • macOS: ~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json

    • Windows: %APPDATA%/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json

    • Linux: ~/.config/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json

  2. Add the Linear MCP server configuration:

    {
      "mcpServers": {
        "linear": {
          "command": "node",
          "args": ["/path/to/linear-mcp/build/index.js"],
          "env": {
            "LINEAR_API_KEY": "your_personal_access_token"
          },
          "disabled": false,
          "autoApprove": []
        }
      }
    }

Related MCP server: Linear MCP Server

Available Actions

The server currently supports the following operations:

Issue Management

  • ✅ Create issues with full field support (title, description, team, project, etc.)

  • ✅ Update existing issues (priority, description, etc.)

  • ✅ Delete issues (single or bulk deletion)

  • ✅ Search issues with filtering

  • ✅ Associate issues with projects

  • ✅ Create parent/child issue relationships

Project Management

  • ✅ Create projects with associated issues

  • ✅ Get project information

  • ✅ Associate issues with projects

Team Management

  • ✅ Get team information (with states and workflow details)

  • ✅ Access team states and labels

Authentication

  • ✅ API Key authentication

  • ✅ Secure token storage

Batch Operations

  • ✅ Bulk issue creation

  • ✅ Bulk issue deletion

Bulk Updates (In Testing)

  • 🚧 Bulk issue updates (parallel processing implemented, needs testing)

Features in Development

The following features are currently being worked on:

Issue Management

  • 🚧 Comment functionality (add/edit comments, threading)

  • 🚧 Complex search filters

  • 🚧 Pagination support for large result sets

Metadata Operations

  • 🚧 Label management (create/update/assign)

  • 🚧 Cycle/milestone management

Project Management

  • 🚧 Project template support

  • 🚧 Advanced project operations

Authentication

  • 🚧 OAuth flow with automatic token refresh

Performance & Security

  • 🚧 Rate limiting

  • 🚧 Detailed logging

  • 🚧 Load testing and optimization

Development

# Install dependencies
npm install

# Run tests
npm test

# Run integration tests (requires LINEAR_API_KEY)
npm run test:integration

# Build the server
npm run build

# Start the server
npm start

Integration Testing

Integration tests verify that authentication and API calls work correctly:

  1. Set up authentication (API Key recommended for testing)

  2. Run integration tests:

    npm run test:integration

For OAuth testing:

  1. Configure OAuth credentials in .env

  2. Remove .skip from OAuth tests in src/__tests__/auth.integration.test.ts

  3. Run integration tests

Available Tools

13 tools
linear_authC

Initialize OAuth flow with Linear

ParametersJSON Schema
NameRequiredDescriptionDefault
clientIdYesLinear OAuth client ID
clientSecretYesLinear OAuth client secret
redirectUriYesOAuth redirect URI

TDQS

C2.9/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must fully disclose behavior, but it only says 'Initialize OAuth flow' without mentioning side effects (e.g., network calls, credential storage), return values (e.g., authorization URL), security implications, or how it relates to the callback step. This is dangerously opaque for an OAuth tool handling secrets.

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 a single, front-loaded sentence with zero waste. It efficiently conveys the core action, though the lack of detail is appropriately penalized in other dimensions.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an OAuth initialization tool with three required parameters, no output schema, and no annotations, this description is grossly incomplete. It does not explain the OAuth flow, what the function returns, or important security affordances like how the clientSecret is handled. An agent cannot safely invoke this tool based on this description alone.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already provides 100% descriptive coverage for all three parameters (clientId, clientSecret, redirectUri) with clear names. The description adds no extra parameter-level meaning, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific action ('Initialize OAuth flow') and the resource ('Linear'), making it easy to understand what the tool does. It also distinguishes itself from the sibling tool 'linear_auth_callback', which handles the subsequent OAuth step.

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?

No guidance is provided on when to use this tool versus alternatives. The description does not mention that this is the initial step in an OAuth handshake, nor does it reference the callback tool or any preconditions such as obtaining client credentials.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

linear_auth_callbackC

Handle OAuth callback

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYesOAuth authorization code

TDQS

C2.4/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description carries the full burden of disclosing behavior. It merely states 'Handle OAuth callback' with no explanation of side effects, required state, return value, or potential errors. This adds no value beyond the tool name itself.

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 one short sentence with no wasted words. It is front-loaded with the core action. However, its brevity comes at the cost of adequate detail, so it doesn't earn a 5.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a callback handler for OAuth, which typically involves token exchange and state verification. With no annotations and no output schema, the description is too sparse to fully understand the tool's behavior. It omits critical context such as what happens after exchanging the code and whether there are side effects.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already describes the single parameter 'code' as 'OAuth authorization code', giving 100% coverage. The description adds no additional meaning about the parameter, but since the schema is complete, the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description says 'Handle OAuth callback' which identifies the resource as an OAuth callback but uses the vague verb 'handle'. It distinguishes from the sibling linear_auth (presumably the initiator), but doesn't specify what handling entails, such as exchanging the code for tokens or completing the authentication flow.

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?

No guidance is provided on when to use this tool or how it relates to alternatives. The agent is not told that this should be called after linear_auth or when receiving an OAuth redirect. The usage context is entirely implied by the tool name and OAuth conventions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

linear_bulk_update_issuesC

Update multiple issues at once

ParametersJSON Schema
NameRequiredDescriptionDefault
issueIdsYesList of issue IDs to update
updateYes

TDQS

C2.7/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 merely says 'update', implying mutation, but gives no information about auth requirements, atomicity, partial failure behavior, or reversibility. This is insufficient 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?

A single, front-loaded sentence with no filler. It is appropriately concise, though the extreme brevity leaves room for more structure. However, conciseness as a standalone dimension is well-served.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has moderate complexity (nested update object, array of IDs) and no annotations or output schema. The description is too sparse to be contextually complete; it does not explain return values, error behavior, batch limits, or relationship to sibling tools. An agent would need to rely heavily on the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 50% (issueIds has description, update does not, though nested fields have descriptions). The description adds no parameter semantics; it does not mention which fields can be updated or how issueIds/update relate. Given medium coverage, the description should compensate but does not.

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?

Description clearly states the verb 'update' and resource 'multiple issues', distinguishing it from create/delete/search siblings. The 'at once' phrasing signals bulk behavior, but it does not enumerate what can be updated, which could be more specific.

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?

No guidance on when to use this tool versus alternatives. It does not mention prerequisites, exclusions, or situations where another tool (e.g., single update, create) would be more appropriate. The description only states what it does, not when to choose it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

linear_create_issueC

Create a new issue in Linear

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesIssue title
descriptionYesIssue description
teamIdYesTeam ID
assigneeIdNoAssignee user ID
priorityNoIssue priority (0-4)
estimateNoIssue estimate points (typically 1, 2, 3, 5, 8, etc.)
projectIdNoProject ID
createAsUserNoName to display for the created issue
displayIconUrlNoURL of the avatar to display

TDQS

C2.7/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description must disclose behavioral traits, but it only states the action. It fails to mention authentication requirements, potential side effects, return values, or any constraints. This is a significant gap for a write operation.

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 a single sentence with no redundancy or filler. It is front-loaded and adequately concise for a simple CRUD tool, though this brevity comes at the cost of completeness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 9 parameters, no annotations, and no output schema, the description is too sparse. It does not explain what the tool returns, how it behaves beyond the obvious, or any important context like required teamId. The schema covers parameters, but the overall context is incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema covers 100% of parameters with descriptions, so the description does not need to add meaning. The baseline of 3 applies because the schema handles the heavy lifting, and the description contributes nothing extra.

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 action ('Create a new issue') and resource ('Linear'), making it distinct from other tools like comments. However, it does not differentiate from the plural 'linear_create_issues' nor mention any scope, so it stops short of a perfect score.

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 such as linear_create_issues (bulk creation) or linear_create_project_with_issues. There is no mention of prerequisites or context, leaving the agent without direction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

linear_create_issuesA

Create multiple issues at once

ParametersJSON Schema
NameRequiredDescriptionDefault
issuesYesList of issues to create

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

There are no annotations to provide safety hints, so the description carries the full burden of behavioral disclosure. It only states that the tool creates issues, but does not mention whether the operation is atomic, how partial failures are handled, permission requirements, rate limits, or what is returned. This is a significant gap 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 a single, front-loaded sentence with no wasted words. It is efficient, though arguably too terse to provide context beyond the core action. It earns a high score for conciseness but loses a point for being slightly under-informative.

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 simple tool complexity and complete schema, the description is minimally viable. It does not explain return values or error/partial-failure behavior, which is a gap since there is no output schema. However, for a straightforward bulk-create operation, this is an acceptable baseline.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema provides 100% coverage of the 'issues' parameter and its nested properties, each with clear descriptions. The tool description adds no additional parameter information, so the baseline of 3 is appropriate; the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Create multiple issues at once' clearly states the verb (create), resource (issues), and specifies the batch functionality ('multiple'), effectively distinguishing it from the sibling tool linear_create_issue. This is a specific and unambiguous purpose statement.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'multiple issues at once' conveys that this tool is for bulk creation, implying a contrast with single-issue creation. However, it does not explicitly name the alternative or provide exclusion criteria, though the sibling tool name makes the distinction evident.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

linear_create_project_with_issuesB

Create a new project with associated issues. Note: Project requires teamIds (array) not teamId (single value).

ParametersJSON Schema
NameRequiredDescriptionDefault
projectYes
issuesYesList of issues to create with this project

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description must carry full behavioral transparency. It discloses the teamIds array requirement, but this is a parameter format note rather than a behavioral trait. The description does not mention side effects, failure modes, atomicity, or permission requirements, which are critical for a mutating tool.

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 one sentence plus a brief note. It is front-loaded with the core purpose and contains no filler. Every word adds value, making it highly concise and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of nested objects and the absence of an output schema or annotations, the description is incomplete. It does not explain return values, error behavior, or the relationship between the project and its issues. The teamIds note is helpful but insufficient for a tool that creates two types of resources in one operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 50% (only the 'issues' parameter has a direct description). The description adds value by emphasizing that 'project requires teamIds (array) not teamId (single value),' which helps avoid a common mistake. However, it does not explain the relationship between project.teamIds and issues[].teamId, and the schema already documents teamIds as an array.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: 'Create a new project with associated issues.' This uses a specific verb and resource, and the combination of project + issues distinguishes it from sibling tools like linear_create_issue or linear_create_project_milestone. The added note about teamIds further clarifies the scope.

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?

No guidance is provided on when to use this tool versus alternatives. The description does not mention that this should be used when needing to create a project and issues together in one call, nor does it reference sibling tools. The teamIds note is a parameter detail, not a usage guideline.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

linear_delete_issueC

Delete an issue

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesIssue identifier (e.g., ENG-123)

TDQS

C2.7/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden, but 'Delete an issue' merely restates the tool's name without adding details about irreversibility, permissions, side effects, or error behavior. It provides no value beyond the name itself.

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 a single, concise sentence with no wasted words or repetition of the schema. However, it is extremely terse and borders on under-specification, so it doesn't earn a 5.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple, but the description lacks essential context for a destructive operation: no mention of permanence, required permissions, or impact on related data. The absence of annotations and output schema is not compensated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already describes the only parameter 'id' with an example (ENG-123), achieving 100% coverage. The description adds no additional parameter context, matching the baseline.

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 'Delete an issue' clearly states the action and resource. It conveys singular scope, distinguishing it from the sibling 'linear_delete_issues' by implication, though it doesn't explicitly reference the alternative.

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?

No guidance is provided on when to use this tool versus the plural 'linear_delete_issues' or other delete tools. There is no mention of use cases, constraints, or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

linear_delete_issuesC

Delete multiple issues

ParametersJSON Schema
NameRequiredDescriptionDefault
idsYesList of issue identifiers to delete

TDQS

C2.9/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. 'Delete multiple issues' indicates a destructive action but provides no information about irreversibility, required permissions, effects on related data, or partial failure behavior. This is a minimal transparency for a deletion tool.

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 a single, concise sentence that is completely focused on the tool's action. There is no wasted text or redundant information, making it highly efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that this is a deletion operation with no annotations, the description is too sparse. It does not mention potential side effects, outcome, or conditions for use. The simple schema and single parameter are well-covered, but the lack of behavioral and usage context leaves the description incomplete for an agent to safely invoke the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage, describing 'ids' as 'List of issue identifiers to delete'. The tool description adds no additional meaning beyond the schema, so the baseline score of 3 is appropriate since the schema already documents the parameter effectively.

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 'Delete multiple issues' clearly states the action (delete) and the resource (issues), with the modifier 'multiple' distinguishing it from the sibling tool linear_delete_issue. It is specific enough to understand the tool's basic purpose, but does not elaborate on details like whether it's a permanent deletion or archiving.

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?

There is no explicit guidance on when to use this tool versus alternatives. The plural 'multiple' implies batch deletion, but the description does not explicitly mention its suitability for bulk operations or exclude other tools. No context, prerequisites, or trade-offs are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

linear_get_projectC

Get project information

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesProject identifier

TDQS

C2.4/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It only says 'Get project information' without disclosing return format, permissions, error cases, or side effects. This is essentially missing behavioral information.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single short sentence, but it essentially restates the tool name 'linear_get_project' and provides minimal information. It is under-specified rather than appropriately concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description should explain what 'project information' includes, but it doesn't. It also lacks any comparison to sibling tools, making it incomplete for agent decision-making.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema covers 100% of the single 'id' parameter with 'Project identifier'. The description adds no additional meaning beyond the schema, so the baseline score of 3 is appropriate.

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 gets project information using the verb 'Get' and resource 'project information'. However, it doesn't distinguish from sibling tools like linear_search_projects, so it's clear but lacks differentiation.

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?

No guidance is provided on when to use this tool versus alternatives such as linear_search_projects or linear_get_project_milestone. There is no context about prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

linear_get_teamsA

Get all teams with their states and labels

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior3/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 disclosing behavior. The verb 'Get' implies a read-only, non-destructive operation, which is helpful, but it does not mention pagination, authentication requirements, or the exact return structure beyond implying 'states and labels'. The description is minimally transparent but lacks deeper behavioral context.

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 a single sentence that is direct and free of unnecessary words. It clearly states the action, resource, and relevant included data in an efficient manner. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple no-parameter retrieval tool, the description is largely complete: it identifies the tool's output (teams with states and labels). However, there is no output schema and no annotation, so it does not disclose whether the response is paginated or if there are volume limits. Given the simplicity, this is a minor gap, so a 4 is appropriate.

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?

This tool has zero parameters, and the schema is empty (100% coverage by definition). Since there are no parameters to document, the baseline for parameter semantics is 4. The description does not need to add parameter details, and the absence is not a deficiency.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb 'Get' with the resource 'all teams', clearly indicating a retrieval operation. It distinguishes from sibling tools by specifying the resource (teams) and including additional detail ('with their states and labels'), which is not mentioned in other tool names.

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, nor any exclusions or prerequisites. It simply states what it does, leaving the agent to infer usage solely from the name. No context about scenarios where this tool is preferred is given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

linear_get_userB

Get current user information

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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 for behavioral disclosure. 'Get' implies a read operation and the resource is 'current user,' but no details are given about return format, authentication requirements, or possible failure modes.

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 a single, focused sentence with no wasted words. It immediately conveys the tool's purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple, but without an output schema or annotations, the description is too vague. Saying 'current user information' does not specify what fields or structure the response contains, leaving a significant gap for an agent trying to use the result correctly.

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 tool has zero parameters, and the schema coverage is 100% (irrelevant since no params exist). Per guidelines, a description baseline of 4 applies when no parameter meaning is needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Get current user information' clearly states the action (get) and the resource (current user information). It distinguishes itself from sibling tools that operate on issues, projects, teams, and milestones.

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?

No guidance is provided on when to use this tool versus alternatives, such as other user-related tools or authentication tools. The context of use is implied but never explicitly stated.

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 for issues with filtering and pagination

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNoSearch query string
teamIdsNoFilter by team IDs
assigneeIdsNoFilter by assignee IDs
statesNoFilter by state names
priorityNoFilter by priority (0-4)
firstNoNumber of issues to return (default: 50)
afterNoCursor for pagination
orderByNoField to order by (default: updatedAt)

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. It only states the basic function, omitting any details about return format, search semantics (e.g., which fields are searched), authentication requirements, or rate limits. This leaves the agent without critical behavioral context.

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 a single, front-loaded sentence that efficiently conveys the tool's purpose. Every word earns its place, with no wasted content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 8 optional parameters, no output schema, and no annotations, the description lacks important context such as search behavior (e.g., whether query searches title/body), default response structure, or pagination mechanics. The brief description is insufficient for an agent to set expectations correctly, given the tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All 8 parameters have descriptions in the schema (100% coverage), so the description does not need to explain them. The phrase 'filtering and pagination' adds no new information beyond the schema, meeting the baseline but not exceeding it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Search' and the resource 'issues', distinguishing it from sibling tools like linear_search_projects and linear_search_project_milestones. It also mentions key features, filtering and pagination, which accurately reflect the tool's function.

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 implies usage for searching issues but provides no explicit guidance on when to use this tool versus alternatives or any exclusions. It is clear enough for basic distinction but lacks direct comparison or context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

linear_search_projectsC

Search for projects by name

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesProject name to search for (exact match)

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description must carry the full burden of behavioral disclosure. It essentially restates the tool's function without revealing any additional behavior such as return format, pagination, or case sensitivity. The schema notes 'exact match' but the description itself adds no such context.

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 a single, front-loaded sentence that is concise and free of filler. It efficiently states the tool's purpose, though it could be more informative without sacrificing conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a search tool with no output schema, the description should clarify what results are returned and any relevant limitations. It only states 'Search for projects by name' without explaining return behavior or usage context, leaving the agent underinformed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema provides 100% coverage for the 'name' parameter, including a description that it is an exact match. The description adds no extra parameter semantics beyond that, so the baseline score of 3 is appropriate.

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 uses a specific verb ('Search') and resource ('projects') with a clear scope ('by name'). It effectively conveys the core action, though it does not explicitly distinguish itself from sibling tools like linear_get_project.

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 such as linear_get_project or linear_search_issues. There is no mention of preferred use cases or exclusions.

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.

  1. 13 tool updatesv1.0.0
    • First observedlinear_auth
    • First observedlinear_auth_callback
    • First observedlinear_bulk_update_issues
    • First observedlinear_create_issue
    • First observedlinear_create_issues
    • First observedlinear_create_project_with_issues
    • First observedlinear_delete_issue
    • First observedlinear_delete_issues
    • First observedlinear_get_project
    • First observedlinear_get_teams
    • First observedlinear_get_user
    • First observedlinear_search_issues
    • First observedlinear_search_projects

TDQS

B3.3/5.0

Scored across 13 tools

Disambiguation4/5

Most tools have distinct purposes targeting specific resources and actions, but there is some overlap between linear_create_issue and linear_create_issues, and between linear_delete_issue and linear_delete_issues, which could cause confusion about when to use the singular vs. plural versions. The descriptions clarify the bulk operations, but the naming similarity still creates minor ambiguity.

Naming Consistency5/5

All tools follow a consistent snake_case naming pattern with a 'linear_' prefix and clear verb_noun structure (e.g., linear_create_issue, linear_search_issues). The naming is highly predictable and uniform across all 13 tools, making it easy for agents to understand and use them.

Tool Count5/5

With 13 tools, the server is well-scoped for managing Linear issues, projects, teams, and users, covering core operations like CRUD, search, and bulk actions. Each tool appears to earn its place without feeling bloated or insufficient for the domain of project management and issue tracking.

Completeness4/5

The toolset provides strong coverage for issue and project management, including CRUD operations, search, and bulk actions, with no major dead ends. However, there are minor gaps, such as missing update operations for projects or teams, and no tools for managing issue comments or attachments, which could limit some workflows.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    Not graded
    maintenance
    Enables comprehensive issue tracking and project management through Linear's GraphQL API. Supports creating and managing issues, organizing projects and sprints, team collaboration, and roadmap planning for modern development workflows.
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables LLMs to interact with Linear's issue tracking system, including creating, updating, searching issues, adding comments, and accessing resources via the Linear API.
    734 npm
    MIT