Skip to main content
Glama
dvcrn

Linear MCP Server

by dvcrn

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. Get Linear API Token

You can use either a Developer Token or a Personal API Key.

Option 1: Developer Token

  1. Go to Linear: Workspace Settings > API > OAuth application > Create or select an application (e.g., "Cline MCP").

  2. Under "Developer Token", click "Create & copy token".

  3. Select "Application" as the actor and copy the generated token.

Option 2: Personal API Key

  1. Go to Linear: Your Personal Settings > API > Personal API Keys.

  2. Click "Create key", give it a label (e.g., "Cline MCP"), and copy the generated key.

2. Configure Cline MCP

  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": "npx",
          "args": ["-y", "mcp-server-linear"],
          "env": {
            "LINEAR_ACCESS_TOKEN": "your_linear_api_token_here"
          },
          "disabled": false,
          "autoApprove": []
        }
      }
    }

That's it! The server will be automatically downloaded and run through npx when needed.

If you use Cline/Roo, you can also simply tell it install the MCP from https://github.com/dvcrn/mcp-server-linear and it'll do the rest.

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, parent/child relationships, etc.)

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

  • ✅ Delete issues (single or bulk deletion)

  • ✅ Search issues with filtering and by identifier

  • ✅ Associate issues with projects

  • ✅ Create parent/child issue relationships

  • ✅ Comment management (create, update, delete comments)

  • ✅ Comment resolution handling (resolve/unresolve comments)

  • ✅ Create customer needs from attachments

Project Management

  • ✅ Create projects with associated issues

  • ✅ Get project information

  • ✅ List all projects with optional filtering

  • ✅ Associate issues with projects

  • ✅ Project milestone management (create, update, delete)

  • ✅ List and filter project milestones

Team Management

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

  • ✅ Access team states and labels

Authentication

  • ✅ Personal Access Token (PAT) 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

  • 🚧 Complex search filters

  • 🚧 Pagination support for large result sets

Metadata Operations

  • 🚧 Label management (create/update/assign)

Project Management

  • ✅ Project milestone management

  • 🚧 Project template support

  • 🚧 Advanced project operations

Authentication

  • 🚧 OAuth flow with automatic token refresh

Performance & Security

  • 🚧 Rate limiting

  • 🚧 Detailed logging

  • 🚧 Load testing and optimization

Parent/Child Issue Relationships

The server supports creating and managing hierarchical relationships between issues:

Creating Sub-issues

You can create sub-issues by specifying a parent issue's UUID when creating a new issue:

{
  "title": "Sub-task Implementation",
  "description": "Implement this specific part of the parent task",
  "teamId": "team_uuid",
  "parentId": "parent_issue_uuid"
}

Note: The parentId must be the UUID of the parent issue, not the issue identifier (e.g., use the UUID, not "ENG-123").

Using Multiple Linear Workspaces

You can connect to multiple Linear workspaces by adding the Linear MCP server multiple times with different TOOL_PREFIX values. This allows you to work with separate Linear workspaces within the same Cline environment.

Configuration Example

{
  "mcpServers": {
    "company1-linear": {
      "command": "npx",
      "args": ["mcp-server-linear"],
      "env": {
        "LINEAR_ACCESS_TOKEN": "your_company1_linear_token_here",
        "TOOL_PREFIX": "company1"
      },
      "disabled": false,
      "autoApprove": []
    },
    "company2-linear": {
      "command": "npx",
      "args": ["mcp-server-linear"],
      "env": {
        "LINEAR_ACCESS_TOKEN": "your_company2_linear_token_here",
        "TOOL_PREFIX": "company2"
      },
      "disabled": false,
      "autoApprove": []
    },
    "company3-linear": {
      "command": "npx",
      "args": ["mcp-server-linear"],
      "env": {
        "LINEAR_ACCESS_TOKEN": "your_company3_linear_token_here",
        "TOOL_PREFIX": "company3"
      },
      "disabled": false,
      "autoApprove": []
    }
  }
}

How It Works

When you set a TOOL_PREFIX value:

  1. All tool names are prefixed with it (e.g., company1_linear_create_issue)

  2. Tool descriptions include the prefix (e.g., "For 'company1' Linear workspace: Create a new issue")

This makes it clear which workspace each tool is operating on and prevents conflicts between different Linear instances.

Contributing

If you want to contribute to the development of this MCP server, follow these steps:

  1. Clone the repository

  2. Install dependencies:

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

    cp .env.example .env
  4. Add your Linear API token to .env:

    LINEAR_ACCESS_TOKEN=your_personal_access_token

Development

# Install dependencies
npm install

# Run tests
npm test

# Build and run the server locally
npm run build
npm start

# Or use development mode with auto-reload
npm run dev

Integration Testing

Integration tests verify that authentication and API calls work correctly:

  1. Set up authentication in .env (PAT recommended for testing)

  2. Run integration tests:

    npm run test:integration

For OAuth testing:

  1. Configure OAuth credentials in .env:

    LINEAR_CLIENT_ID=your_oauth_client_id
    LINEAR_CLIENT_SECRET=your_oauth_client_secret
    LINEAR_REDIRECT_URI=http://localhost:3000/callback
  2. Remove .skip from OAuth tests in src/__tests__/auth.integration.test.ts

  3. Run integration tests

Available Tools

24 tools
linear_auth_callbackC

Handle OAuth callback

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYesOAuth authorization code

TDQS

C2.4/5.0
Behavior2/5

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

No annotations provided, and the description does not disclose behavioral traits like side effects (e.g., token storage), required permissions, or rate limits. It only states the high-level action without any details on what happens during 'handling'.

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 very concise at two words, but it is under-specified for an OAuth callback tool. It should include more context (e.g., outcome, requirements) without being verbose.

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 no output schema and no annotations, the description lacks completeness. It does not explain the callback flow, expected results, error conditions, or integration with authentication systems. It is insufficient for an agent to fully understand tool behavior.

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 the single parameter 'code' with a description matching the tool's purpose. Since schema coverage is 100%, the description adds no additional meaning, which meets the baseline for high coverage.

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 is minimal, stating 'Handle OAuth callback'. It identifies the resource (OAuth callback) and action (handle) but lacks specificity on what handling entails. It distinguishes from sibling tools which are issue/comment/project related.

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. The description does not mention prerequisites, authentication flow context, or when not to use it. It relies on the tool name to imply usage during OAuth callbacks.

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 UUIDs to update (not issue identifiers like 'ENG-123')
updateYes

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries full burden. It only states 'update' but does not disclose idempotency, partial failure behavior, or authentication requirements. For a bulk mutation tool, more transparency is needed.

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 concise and front-loaded with the essential purpose. It efficiently conveys the tool action but lacks detail.

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 a bulk update with nested parameters and no output schema, the description is inadequate. It omits return value, error cases, and behavior on partial success.

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 descriptions for each parameter, including the important clarification in issueIds. The description adds no additional parameter meaning beyond the schema.

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 that the tool updates multiple issues, which distinguishes it from the sibling tool 'linear_edit_issue' that handles single issues. However, it could be more specific about the batch nature.

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 like 'linear_edit_issue' for single updates. The description does not mention prerequisites or when not to use it.

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

linear_create_commentA

Creates a new comment on an issue

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYesComment text content
issueIdYesID of the issue to comment on

TDQS

A3.7/5.0
Behavior3/5

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

No annotations are present, but the description is minimal. It does not disclose behaviors beyond creation, such as idempotency, error handling, or required permissions. It is neither contradictory nor deeply informative.

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, short sentence that directly conveys the tool's purpose. No wasted words.

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?

For a simple creation tool with no output schema, the description is minimally adequate but lacks details about return values or side effects, which an agent might need to confirm successful creation.

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?

Schema description coverage is 100%, so the baseline is 3. The description adds no additional meaning to the parameters already described in the schema (body and issueId).

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 'Creates a new comment on an issue' clearly states the action (create) and resource (comment on issue), distinguishing it from siblings like linear_delete_comment or linear_update_comment.

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 no guidance on when to use this tool versus alternatives like linear_update_comment or linear_resolve_comment. Usage context is only implied by the action of creating.

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

linear_create_customer_need_from_attachmentC

Creates a new customer need from an attachment

ParametersJSON Schema
NameRequiredDescriptionDefault
attachmentIdYesID of the attachment
titleNoTitle for the customer need
descriptionNoDescription for the customer need
teamIdNoTeam ID for the customer need

TDQS

C2/5.0
Behavior1/5

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

With no annotations, the description carries full burden but only states 'creates', providing no information about side effects, required permissions, or what happens to the attachment. It does not contradict any annotations (none provided), but it is virtually absent.

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 extremely short, but it is under-specified rather than concise. A single tautological sentence does not efficiently convey purpose or context.

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 4 parameters, no output schema, and no annotations, the description should explain the return value, how teamId and title relate to the customer need, and any constraints. It provides none of this, 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 input schema has 100% description coverage, so each parameter already has a basic explanation (e.g., 'ID of the attachment'). The description does not add any further meaning or usage hints beyond the schema.

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

Purpose2/5

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

The description essentially repeats the tool name ('Creates a new customer need from an attachment') without adding specificity. It does not clarify what a customer need is or how it differs from issues or other resources, and no differentiation from sibling tools like linear_create_issue is provided.

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 such as linear_create_issue. It does not mention prerequisites (e.g., attachment must exist in Linear) or when not to use 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 (UUID)
parentIdNoParent issue ID (UUID, not issue identifier)
labelIdsNoLabel UUIDs to apply, eg ['a1eb5aed-7425-4ea5-98ec-dfab52381e0e']
assigneeIdNoAssignee user ID (UUID)
priorityNoIssue priority (0-4)
createAsUserNoName to display for the created issue
displayIconUrlNoURL of the avatar to display

TDQS

C2.9/5.0
Behavior2/5

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

No annotations provided, so the description must fully convey behavioral traits. It omits critical details like idempotency, error behavior, authentication requirements, or side effects (e.g., creating notifications). The minimal statement 'Create a new issue' 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?

Single sentence with no unnecessary words. Front-loaded with the core action. Every word earns its place.

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?

No output schema, so description should explain return format. It does not. Also lacks mention of required permissions, team context, or potential errors. For a tool with 9 parameters and no annotations, the description is too sparse.

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?

Schema has 100% description coverage, so all parameters are already documented. The description adds no extra semantic value beyond what the schema provides. 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?

Description clearly states verb 'create' and resource 'issue' in Linear. However, it fails to distinguish from sibling like 'linear_create_issues' which creates multiple issues. A slight improvement would be to specify 'single issue'.

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 like 'linear_create_issues' or 'linear_bulk_update_issues'. The description does not include context for prerequisites, exclusions, or typical use cases.

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

linear_create_issuesC

Create multiple issues at once

ParametersJSON Schema
NameRequiredDescriptionDefault
issuesYesList of issues to create

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 must disclose all behavioral traits. It only states 'create multiple issues at once' but does not address aspects like batch limits, partial failures, idempotency, authentication requirements, or error handling.

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 phrase that is front-loaded with key information. It contains no fluff, though it could be slightly more structured with a sentence format. Overall, it earns its place.

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's batch nature and lack of output schema, the description should explain expected return values, ordering guarantees, and error behavior. It omits these details, making it incomplete for an agent to understand side effects and results.

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?

Schema description coverage is 100%, with each parameter already documented. The description adds no additional parameter-level context beyond the schema, such as relationships between parameters or special constraints. Baseline 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 creates multiple issues at once, which distinguishes it from the sibling tool linear_create_issue that creates a single issue. The verb 'create' and resource 'issues' are specific, and the qualifier 'at once' indicates batch behavior.

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_create_issue. It does not mention any context, prerequisites, or exclusions, leaving the agent to infer usage from the parameter schema alone.

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

linear_create_project_milestoneC

Create a new project milestone

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdYesProject ID to create milestone for
nameYesMilestone name
descriptionNoMilestone description
targetDateNoTarget completion date (ISO format)
sortOrderNoSort order for the milestone

TDQS

C2.8/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, but it merely states the action. It does not explain authentication requirements, potential side effects, error behavior, or whether the milestone is immediately created. This is insufficient for an agent to understand the tool's behavior.

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

Conciseness3/5

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

The description is minimal (one sentence), which is concise, but it lacks enough detail to be truly useful. It earns its place by stating the purpose, but additional information about usage or outcomes would improve it without making it overly long.

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 lack of output schema, annotations, and the presence of 5 parameters (2 required), the description is too sparse. It should at minimum indicate success behavior or return values. For a creation tool, agents need to know if the milestone object is returned or if a confirmation is given.

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 with descriptions for all 5 parameters, so the schema already handles param semantics. The description adds no additional meaning. Per guidelines, baseline is 3, and no extra value is provided.

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 is a clear verb+resource: 'Create a new project milestone'. It directly states the action and the object. However, it does not differentiate from sibling tools like linear_update_project_milestone or linear_create_issue, which could cause confusion for an agent selecting among many tools.

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 usage guidelines are provided. The description does not indicate when to use this tool versus alternatives like updating or deleting milestones, nor does it mention prerequisites such as having the correct project ID or permissions.

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.4/5.0
Behavior2/5

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

No annotations provided, and the description lacks disclosure of behavioral traits like transactional behavior, error handling, or authentication requirements. Only the basic action is stated.

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 extremely concise: one sentence plus a brief note. Every word is meaningful with no fluff.

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 (nested objects, no output schema, no annotations), the description is incomplete. It does not mention return values, failure behavior, or whether the operation is atomic.

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 schema descriptions cover most parameters, and the global description adds a crucial note about teamIds being an array. This extra clarification helps avoid common mistakes.

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 'Create a new project with associated issues,' specifying the verb and resource. It distinguishes from siblings like linear_create_issue (single issue) and linear_create_project_milestone (milestone only).

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 such as linear_create_issue or linear_create_issues. The note about teamIds is a parameter hint, not usage context.

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

linear_delete_commentC

Deletes a comment

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesComment ID 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, and the description does not disclose behavioral traits beyond 'deletes'. It does not state if deletion is permanent, if it triggers notifications, or if there are any side effects (e.g., cascading deletes). The description is insufficient for a destructive operation.

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 very short (three words) and to the point. For a simple delete operation with one parameter, this level of conciseness is acceptable, though a bit more structure (e.g., clarifying context) would improve it.

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 simplicity (1 param, no output schema), the description is minimally adequate. However, it lacks context about consequences (e.g., irreversible deletion) and does not explain what kind of comment or system behavior. For a tool with no annotations, more completeness would be beneficial.

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 for the single parameter 'id' with description 'Comment ID to delete'. The description adds no further meaning beyond what the schema already provides. Baseline 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 states 'Deletes a comment', which is a clear verb+resource combination. However, given sibling tools like create_comment, update_comment, resolve_comment, it lacks differentiation from these similar operations. It is clear but not distinctive.

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 resolve_comment or update_comment. It does not mention any preconditions, such as ownership or permissions, for deletion.

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

linear_delete_issueB

Delete an issue

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesIssue UUID (not issue identifier like 'ENG-123')

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, and the description only states the action without disclosing behavioral traits such as irreversibility, required permissions, or side effects. The description carries the full burden but fails to add value.

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 sentence with no waste. However, for a delete operation, slightly more detail could improve utility 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?

Given no output schema and minimal description, the tool definition lacks completeness. It does not explain what happens after deletion (e.g., no return value) or any constraints. The context is insufficient for an AI agent to use the tool confidently.

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?

Schema description coverage is 100%—the single parameter 'id' is described as 'Issue UUID (not issue identifier like "ENG-123")'. The description adds no further meaning beyond what the schema already provides, so baseline score of 3 is appropriate.

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 'Delete an issue,' which is a specific verb and resource. The tool name and sibling tools (e.g., linear_delete_comment) ensure no ambiguity about which resource is targeted.

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 like linear_edit_issue or linear_search_issues. No context about prerequisites or when deletion is appropriate.

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

linear_delete_project_milestoneB

Delete a project milestone

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesMilestone ID to delete

TDQS

B3/5.0
Behavior2/5

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

No annotations; description fails to disclose destructive nature, irreversibility, or required permissions. Deleting a milestone may have side effects, but none mentioned.

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

Conciseness3/5

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

Single sentence with no extra words, but lacks additional context that could be included without increasing length significantly.

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 simple tool (1 param, no output schema), description is too minimal. Does not state return value, confirmation, or side effects, leaving gaps for an agent.

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?

Schema coverage is 100% (only 'id' parameter with description). The description does not add meaning beyond the schema, resulting in a baseline score.

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?

Description clearly states the action ('Delete') and resource ('project milestone'), distinguishing it from sibling tools like linear_delete_comment and linear_delete_issue.

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 delete versus update or other alternatives. No prerequisites or context provided.

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

linear_edit_issueB

Edit an existing issue, updating any of its fields. Note: When setting projectMilestoneId, you must also set projectId.

ParametersJSON Schema
NameRequiredDescriptionDefault
issueIdYesRequired: The UUID of the issue to update
titleNoThe issue title
descriptionNoThe issue description in markdown format
stateIdNoUUID of the target state
priorityNoIssue priority (0=No priority, 1=Urgent, 2=High, 3=Normal, 4=Low)
assigneeIdNoUUID of the user to assign the issue to
labelIdsNoArray of label UUIDs (replaces existing labels)
projectIdNoUUID of the project to associate with the issue
projectMilestoneIdNoUUID of the project milestone to associate with the issue. Note: Requires projectId to be set when using this field
estimateNoThe estimated complexity points for the issue
dueDateNoThe due date in YYYY-MM-DD format
parentIdNoUUID of the parent issue
sortOrderNoPosition of the issue relative to other issues

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description carries full burden for behavioral disclosure. It only states 'edit' and a constraint, omitting side effects (e.g., notifications), idempotency, authorization needs, or response behavior.

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?

Two sentences: first clearly states purpose, second adds essential constraint. No wasted words, 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?

Despite 13 parameters and no output schema, the description does not explain return values, error handling, or common pitfalls. More context would benefit a complex mutation 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?

Schema coverage is 100%, so baseline is 3. The description adds no meaning beyond the schema; the constraint on projectMilestoneId is already in the schema description.

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 'Edit an existing issue, updating any of its fields,' using a specific verb and resource. It distinguishes from sibling tools like linear_create_issue (create) and linear_bulk_update_issues (bulk updates).

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 such as linear_bulk_update_issues or linear_update_comment. The only note is a technical constraint on projectMilestoneId, but no when-to-use or when-not-to-use context.

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

linear_get_issueA

Get a single issue by identifier, including all comments

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

TDQS

A3.8/5.0
Behavior3/5

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

No annotations provided, so description must carry behavioral disclosure. It mentions that comments are included, which is helpful, but does not state that the operation is read-only, any permissions needed, rate limits, or how comments are returned (e.g., pagination). The return format is not described.

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?

One sentence of 9 words, front-loaded with the action. Every word is necessary; no wasted text.

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 tool with one parameter and no output schema, the description covers the core action well. It could improve by hinting at the return structure, but given low complexity, it is mostly complete.

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?

Schema coverage is 100% with a clear description of the identifier parameter (e.g., 'ENG-123'). The tool description adds 'by identifier' but does not provide additional meaning beyond what the schema already offers. Baseline 3 is appropriate.

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 'Get', the resource 'a single issue', and the scope 'by identifier, including all comments'. It distinguishes from sibling tools like linear_search_issues (search/filter) and linear_edit_issue (modify).

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 use for fetching a known issue by identifier, but does not explicitly state when to use it versus alternatives like linear_search_issues or linear_get_project. No exclusions or when-not-to-use guidance.

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.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 must disclose behavioral traits. It does not mention that the tool is read-only, error handling for missing projects, or authentication requirements. The description is too minimal for a tool with no annotations.

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 sentence, front-loaded and free of unnecessary words. While concise, it could be slightly expanded to include more context without becoming verbose.

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 simplicity of the tool (one parameter, no output schema, no annotations), the description is adequate but not thorough. It does not clarify the structure of 'project information' or typical response fields, leaving some ambiguity.

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% description coverage (the 'id' parameter is described as 'Project identifier'). The tool description adds no additional meaning beyond what the schema already provides, so baseline 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 states 'Get project information' which clearly indicates the action and resource. However, it does not differentiate from sibling tools like linear_get_project_milestones; a more specific description of what information is returned would improve clarity.

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_list_projects or linear_get_project_milestones. The description does not mention prerequisites or context.

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

linear_get_project_milestonesB

Get milestones for a project with filtering and pagination

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdYesProject ID to get milestones for
filterNoOptional filter criteria
firstNoNumber of items to return (used with after)
afterNoCursor for forward pagination
lastNoNumber of items to return (used with before)
beforeNoCursor for backward pagination
includeArchivedNoInclude archived milestones
orderByNoField to order by (createdAt or updatedAt)

TDQS

B3.2/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 full burden. It mentions filtering and pagination but does not disclose behavioral traits such as authentication requirements, rate limits, error handling, or the effect of invalid input (e.g., unknown projectId). The minimal description leaves critical gaps for the agent.

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 core purpose ('get milestones for a project') and key features ('filtering and pagination'). No wasted words; concise and clear.

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?

Despite many parameters (8), nested filters, and no output schema or annotations, the description remains minimal. It does not explain return format, pagination behavior, ordering options, or how to use the filter parameter effectively. The agent would need more context to use the tool correctly.

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?

Schema description coverage is 100%, with all parameters having descriptions. The tool description adds no extra meaning beyond the schema; it restates the purpose briefly. Baseline of 3 is appropriate as the schema does the heavy lifting, but the description does not enhance understanding.

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 'get' and the resource 'milestones for a project', and mentions filtering and pagination. It effectively distinguishes this tool from sibling tools like linear_create_project_milestone or linear_update_project_milestone.

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 lacks any guidance on when to use this tool versus alternatives. It does not specify when not to use it, nor does it differentiate from other listing/searching tools like linear_search_issues or linear_list_projects. The agent receives no context about selection criteria.

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

A4/5.0
Behavior3/5

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

No annotations provided, so description carries burden. It correctly indicates a read operation, but does not disclose potential scope limits, auth needs, or pagination. Absence of parameters simplifies expectations.

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?

Single sentence, concise, and front-loaded with the core function. No extraneous information.

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 parameterless tool with no output schema, the description adequately communicates the purpose and returned data. Lacks mention of pagination or limits, but given simplicity, it is sufficient.

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?

No parameters exist, so baseline 4 applies. The description adds no parameter info but schema coverage is trivially complete.

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 all teams with their states and labels' clearly states the action (get all teams) and the data returned (states and labels), distinguishing it from sibling tools that retrieve specific entities or perform other operations.

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?

No explicit guidance on when to use this tool versus alternatives, but the purpose is straightforward as a list retrieval tool. The description implies use when a complete list of teams is needed.

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

linear_get_userA

Get current user information

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior3/5

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

The description indicates a read operation with no side effects, but lacks details on authentication requirements or the format of returned information, leaving some behavioral ambiguity.

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 front-loaded and contains no unnecessary words.

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 no parameters and no output schema, the description is minimal. It adequately conveys the tool's purpose but could be enhanced by specifying what user information is returned.

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?

There are no parameters, so the baseline is 4. The description does not need to add parameter information, and none is given.

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 action 'Get' and the resource 'current user information', which is specific and distinguishes it from other get tools like linear_get_issue.

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, and there is no mention of prerequisites or context.

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

linear_list_projectsB

List all projects or filter them by criteria

ParametersJSON Schema
NameRequiredDescriptionDefault
filterNoOptional filter criteria for projects

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, and the description only states 'List all projects or filter them by criteria' without disclosing behavioral traits such as pagination, rate limits, or whether the operation is read-only (likely but not explicit).

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 front-loaded with the core action and resource, containing zero wasted words.

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 a complex filter schema with nested objects and no output schema, yet the description does not explain return value format, pagination, or sorting, leaving the agent with incomplete context for correct invocation.

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?

Schema coverage is 100% with a detailed filter parameter, so the description adds minimal value beyond what the schema already provides. Baseline 3 is appropriate.

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 lists projects with optional filtering, using specific verb 'List' and resource 'projects', and it is easily distinguishable from siblings like 'linear_get_project' (single project) or 'linear_search_issues'.

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 when one wants to list or filter projects but provides no explicit guidance on when to use this tool vs alternatives, nor any exclusions or prerequisites.

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

linear_resolve_commentC

Resolves a comment

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesComment ID to resolve
resolvingCommentIdNoOptional ID of a resolving comment

TDQS

C2.2/5.0
Behavior1/5

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

No annotations provided, and the description gives no behavioral information. It does not disclose side effects, permissions, idempotency, or what happens if the comment is already resolved. The description adds no value beyond the tool name.

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

Conciseness3/5

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

The description is very concise (3 words) but under-specified. It conveys the core action but lacks necessary detail. Conciseness is not adequate if it sacrifices completeness.

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?

The tool has 2 parameters, no output schema, and no annotations. The description provides no context about the outcome or behavior. It is woefully incomplete for a tool that performs a meaningful action (resolving a comment).

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?

Schema coverage is 100% (both parameters have descriptions). The description does not add any extra meaning beyond the schema, so 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 states the verb 'resolves' and resource 'comment', which is clear but lacks context. It does not differentiate from sibling linear_unresolve_comment or explain what 'resolve' means (e.g., marks as resolved). It is slightly above a tautology.

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 vs alternatives like linear_unresolve_comment or linear_update_comment. No prerequisites or conditions mentioned. The description provides no 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_issuesC

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

C2.8/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 full burden for behavioral disclosure. The description only states basic functionality without revealing any behavioral traits such as rate limits, authentication requirements, or side effects.

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

Conciseness3/5

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

The description is a single short sentence, which is concise but lacks substance. It front-loads the purpose but does not pack sufficient value for its length.

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 8 parameters, no output schema, and no annotations, the description is too minimal. It does not explain pagination behavior, default values, or return structure, leaving gaps for an AI agent.

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?

Schema description coverage is 100%, so the input schema already describes all parameters. The description adds no extra meaning beyond what is in the parameter descriptions.

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 'Search' and resource 'issues', and mentions 'filtering and pagination', giving a general sense of the tool. However, it does not distinguish this from the sibling tool 'linear_search_issues_by_identifier', which likely has a different use case.

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 guidance on when to use this tool versus alternatives like linear_search_issues_by_identifier or other search-related tools. No context on 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_search_issues_by_identifierA

Search for issues by their identifiers (e.g., ["ENG-78", "ENG-79"])

ParametersJSON Schema
NameRequiredDescriptionDefault
identifiersYesArray of issue identifiers to search for

TDQS

A3.8/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 full burden. It does not disclose any behavioral traits such as return format, pagination, error handling, or performance implications.

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?

Single sentence with an example, no wasted words. The description is appropriately sized for a simple search tool.

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 one-parameter search tool, the description is mostly complete. However, it lacks details about response format or output schema, though none is provided.

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 schema already describes the parameter well (100% coverage), but the description adds value by providing an example format that clarifies the expected identifiers format.

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 resource 'issues by their identifiers', with an explicit example. It distinguishes itself from sibling tools like linear_search_issues which likely searches by other criteria.

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 when you have specific identifiers, but does not explicitly contrast with alternative search tools like linear_search_issues or when to use get_issue for a single identifier.

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

linear_unresolve_commentC

Unresolves a comment

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesComment ID to unresolve

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 full burden. It fails to disclose side effects, whether the comment must be resolved first, or if the action is reversible. Minimal behavioral info.

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 extremely concise with one sentence. While it is efficient, it lacks structural elements like context or bullet points.

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 no output schema and simple parameters, the description should clarify what 'unresolve' does (e.g., changes comment status). This information is missing, making it incomplete for an agent.

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?

Schema coverage is 100% with a clear description for the 'id' parameter. The tool description adds no additional meaning beyond what the schema already provides.

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 'Unresolves a comment' clearly states the verb and resource, and it distinguishes from sibling tools like linear_resolve_comment. However, it is a tautology of the tool name and lacks context on what 'unresolve' means.

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 (e.g., linear_resolve_comment or linear_update_comment). No context on 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_update_commentB

Updates an existing comment

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesComment ID
inputYes

TDQS

B3/5.0
Behavior2/5

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

No annotations are provided, and the description only says 'Updates an existing comment' without disclosing side effects, authorization needs, or error conditions. The mutation implication is clear, but no depth is added.

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

Conciseness3/5

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

The description is a single, short sentence, which is front-loaded but overly minimal. It sacrifices substance for brevity, leading to a merely adequate score.

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 lack of annotations and output schema, the description is too brief. It does not inform about return values, prerequisites, or error handling, leaving the agent underinformed for a mutation 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 descriptions for both parameters, so the schema provides meaning. The description adds no additional insight beyond what the schema already conveys, so baseline score.

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 'Updates an existing comment' clearly states the verb and resource, distinguishing it from sibling tools like linear_create_comment or linear_delete_comment.

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, no exclusions, and no context provided. For example, it does not clarify when to use this over linear_edit_issue.

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

linear_update_project_milestoneC

Update a project milestone

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesMilestone ID to update
nameNoNew milestone name
descriptionNoNew milestone description
targetDateNoNew target completion date (ISO format)
sortOrderNoNew sort order

TDQS

C2.8/5.0
Behavior2/5

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

No annotations provided, and the description does not disclose behavioral traits such as idempotency, side effects, permissions, or error handling. The description only states the action, leaving the agent uninformed about important behaviors.

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

Conciseness3/5

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

The description is a single sentence, very concise. However, it is too minimal and provides little useful context beyond the name. It could be slightly expanded without losing 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?

Given the lack of output schema, no annotations, and 5 parameters, the description is inadequate. It does not explain return values, error scenarios, or behavior when the milestone ID does not exist. The context is insufficient for an agent to use the tool reliably.

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?

Schema coverage is 100%, with each parameter described. The description adds no additional meaning beyond the schema. Baseline score of 3 is appropriate as the schema does the heavy lifting.

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 'Update a project milestone', specifying the action ('Update') and resource ('project milestone'). It distinguishes from sibling tools like create and delete, but lacks specificity on what exactly is updated (though schema provides details).

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 vs alternatives (e.g., create, delete, or other update tools). No prerequisites mentioned (e.g., milestone must exist). The description assumes implicit knowledge.

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. 24 tool updatesv1.6.0
    • First observedlinear_auth_callback
    • First observedlinear_bulk_update_issues
    • First observedlinear_create_comment
    • First observedlinear_create_customer_need_from_attachment
    • First observedlinear_create_issue
    • First observedlinear_create_issues
    • First observedlinear_create_project_milestone
    • First observedlinear_create_project_with_issues
    • First observedlinear_delete_comment
    • First observedlinear_delete_issue
    • First observedlinear_delete_project_milestone
    • First observedlinear_edit_issue
    • First observedlinear_get_issue
    • First observedlinear_get_project
    • First observedlinear_get_project_milestones
    • First observedlinear_get_teams
    • First observedlinear_get_user
    • First observedlinear_list_projects
    • First observedlinear_resolve_comment
    • First observedlinear_search_issues
    • First observedlinear_search_issues_by_identifier
    • First observedlinear_unresolve_comment
    • First observedlinear_update_comment
    • First observedlinear_update_project_milestone

TDQS

B3.2/5.0
Disambiguation5/5

Each tool targets a distinct resource and action (e.g., issue, comment, project, milestone, team, user). There is no overlap; even comment actions (create, delete, resolve, unresolve, update) are clearly separated.

Naming Consistency5/5

All tools follow the pattern 'linear_<verb>_<resource>' with underscores and lowercase. Verbs like create, get, list, search, update, delete are used consistently. The naming is predictable and unambiguous.

Tool Count4/5

24 tools is a bit above the typical 3-15 range but still reasonable for a project management server covering multiple entities (issues, comments, projects, milestones). It feels slightly heavy but not excessive.

Completeness4/5

Core CRUD for issues, comments, and milestones is covered. However, missing update/delete for projects and a dedicated get comment tool (comments are only accessible via get_issue) are minor gaps that agents can work around.

Maintenance

ActivityInactive
ResponsivenessNo issues

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

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/dvcrn/mcp-server-linear'

If you have feedback or need assistance with the MCP directory API, please join our Discord server