Skip to main content
Glama
wkoutre

Linear MCP Server

by wkoutre

Linear MCP Server

A Model Context Protocol (MCP) server implementation for the Linear GraphQL API that enables AI assistants to interact with Linear project management systems.

Linear MCP Server npm version Smithery

Features

  • Access to Linear's GraphQL API through MCP tools

  • Authentication via Linear API key

  • Retrieve and modify data related to users, teams, projects, and issues

  • Create, update and comment on issues

  • Add and remove labels

  • Create projects

  • Comprehensive documentation of available tools

Related MCP server: Linear MCP Server

Installation

To install Linear MCP Server for Claude Desktop automatically via Smithery:

npx -y @smithery/cli install @emmett.deen/linear-mcp-server --client claude

Manual Configuration

After installation, add the following to your MCP settings file:

{
  "mcpServers": {
    "linear": {
      "command": "npx",
      "args": ["-y", "@emmett.deen/linear-mcp-server"],
      "env": {
        "LINEAR_API_KEY": "your_linear_api_key_here"
      }
    }
  }
}

Client-Specific Configuration Locations

  • Claude Desktop: ~/Library/Application Support/Claude/claude_desktop_config.json

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

  • GoMCP: ~/.config/gomcp/config.yaml

Manual Installation

  1. Clone the repository

git clone https://github.com/yourusername/Linear-MCP-Server.git
cd Linear-MCP-Server
  1. Install dependencies

npm install
  1. Build the project

npm run build
  1. Create a .env file with your Linear API token

LINEAR_API_KEY=your_linear_api_key_here
  1. Start the server

npm start

Available Tools

See TOOLS.md for a complete list of available tools and planned features.

Overview

Linear-MCP-Server bridges the gap between Claude (AI assistant) and Linear (project management tool) by implementing the MCP protocol. This allows Claude to:

  • Retrieve issues, projects, teams, and other data from Linear

  • Create and update issues

  • Change issue status

  • Assign issues to team members

  • Add comments

  • Create projects and teams

The server uses Linear's GraphQL API and authenticates via user tokens (not OAuth) for simplicity.

Getting Started

Prerequisites

  • Node.js (v18+)

  • NPM or Yarn

  • Linear API token

Installation

# Install globally
npm install -g @emmett.deen/linear-mcp-server

# Or clone and install locally
git clone https://github.com/yourusername/Linear-MCP-Server.git
cd Linear-MCP-Server
npm install
npm link  # Makes the package available globally

Running the Server

Run the server with your Linear API token:

linear-mcp-server --token YOUR_LINEAR_API_TOKEN

Or set the token in your environment and run without arguments:

export LINEAR_API_TOKEN=YOUR_LINEAR_API_TOKEN
linear-mcp-server

Using with Claude Desktop

To use this MCP server with Claude Desktop:

  1. Enable Developer Mode in Claude Desktop (from the menu bar)

  2. Go to Settings > Developer options

  3. Click "Add Server"

  4. Configure with the following settings:

    • Name: Linear MCP Server

    • Type: Local Process

    • Command: linear-mcp-server

    • Arguments: --token YOUR_LINEAR_API_TOKEN

Alternatively, manually edit the config file:

{
  "mcp": {
    "servers": [
      {
        "name": "Linear MCP Server",
        "transport": {
          "type": "stdio",
          "command": "linear-mcp-server",
          "args": ["--token", "YOUR_LINEAR_API_TOKEN"]
        }
      }
    ]
  }
}
  1. Save the config

  2. Restart Claude Desktop (quit completely and reopen)

  3. You should now see Linear MCP Server available as a tool in Claude

Example Claude Prompts

Once connected to Claude Desktop, you can use prompts like:

  • "Show me all my Linear issues"

  • "Create a new issue titled 'Fix login bug' in the Frontend team"

  • "Change the status of issue FE-123 to 'In Progress'"

  • "Assign issue BE-456 to John Smith"

  • "Add a comment to issue UI-789: 'This needs to be fixed by Friday'"

Development

To develop locally:

# Clone the repository
git clone https://github.com/yourusername/Linear-MCP-Server.git
cd Linear-MCP-Server

# Install dependencies
npm install

# Run in development mode
npm run dev -- --token YOUR_LINEAR_API_TOKEN

Extending the Server

To add new tools to the server:

  1. Follow the implementation guide in the TOOLS.md document

  2. Make sure to follow the established code structure in the src/ directory

  3. Update the documentation to reflect your changes

Developing and Contributing

Setup Development Environment

  1. Clone the repository

git clone https://github.com/yourusername/Linear-MCP-Server.git
cd Linear-MCP-Server
  1. Install dependencies

npm install
  1. Start in development mode

npm run dev

Publishing to npm

To publish this package to npm:

  1. Update the version in package.json

npm version patch  # or minor, or major
  1. Build the project

npm run build
  1. Make sure you've already logged in to npm

npm login
  1. Publish to npm

npm publish --access public
  1. For Smithery registry, you'll need to work with the Smithery team to get your server listed in their catalog.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Available Tools

32 tools
linear_addIssueLabelC

Add a label to an issue in Linear

ParametersJSON Schema
NameRequiredDescriptionDefault
issueIdYesID or identifier of the issue to add the label to (e.g., ABC-123)
labelIdYesID of the label to add to the issue

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 carries the full burden of behavioral disclosure. It states the action ('Add a label') but doesn't cover critical aspects like required permissions, whether this is a mutation (implied but not explicit), error handling, or rate limits. This is inadequate for a tool that modifies data.

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, efficient sentence that directly states the tool's purpose without any fluff. It's front-loaded and wastes no words, making it easy for an agent to parse quickly.

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 complexity (a mutation with 2 parameters) and lack of annotations and output schema, the description is incomplete. It doesn't explain behavioral traits, error cases, or return values, leaving significant gaps for an agent to operate safely and effectively.

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 100%, with clear descriptions for both parameters (issueId and labelId). The description adds no additional parameter semantics beyond what the schema provides, such as format examples or constraints, so it meets the baseline score for high schema coverage.

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

Purpose4/5

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

The description clearly states the action ('Add a label') and target resource ('to an issue in Linear'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'linear_removeIssueLabel' or 'linear_updateIssue', which could handle similar operations, so it doesn't reach the highest score.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing an existing issue and label), exclusions, or comparisons to siblings like 'linear_updateIssue' for bulk operations, leaving the agent to infer usage context.

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

linear_addIssueToCycleC

Add an issue to a cycle

ParametersJSON Schema
NameRequiredDescriptionDefault
issueIdYesID or identifier of the issue to add to the cycle
cycleIdYesID of the cycle to add the issue to

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 carries the full burden of behavioral disclosure but offers minimal insight. 'Add an issue to a cycle' implies a mutation operation, but it doesn't specify permissions required, whether this action is reversible, potential side effects (e.g., if the issue is already in a cycle), or error conditions. This leaves significant gaps in understanding the tool's behavior beyond basic functionality.

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, direct sentence with zero wasted words, making it highly efficient and front-loaded. It immediately conveys the core action without unnecessary elaboration, which is ideal for quick comprehension in a list of tools.

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 mutation tool with no annotations and no output schema, the description is inadequate. It fails to explain what 'add' means operationally, what the return value might be (e.g., success confirmation or error), or how it interacts with other tools like linear_getCycles. For a tool that modifies data, more context is needed to ensure safe and correct usage.

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, with clear documentation for both parameters (issueId and cycleId). The description adds no additional semantic context beyond what the schema provides, such as format examples or relationship constraints. However, since the schema is comprehensive, a baseline score of 3 is appropriate, as the description doesn't need to compensate for gaps.

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

Purpose4/5

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

The description clearly states the action ('Add') and the resource ('an issue to a cycle'), making the purpose immediately understandable. It distinguishes this from other sibling tools like linear_addIssueToProject by specifying 'cycle' rather than 'project', though it doesn't explicitly contrast with all alternatives. The description is specific but could be more precise about what 'add' entails in this context.

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_addIssueToProject or linear_updateIssue. It lacks context about prerequisites (e.g., whether the issue or cycle must exist), exclusions, or typical use cases. Users must infer usage from the tool name alone, which is insufficient for effective decision-making.

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

linear_addIssueToProjectC

Add an existing issue to a project

ParametersJSON Schema
NameRequiredDescriptionDefault
issueIdYesID or identifier of the issue to add to the project
projectIdYesID of the project to add the issue to

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 carries full burden for behavioral disclosure. It states the action is 'Add' but doesn't clarify if this is a mutation (likely yes), what permissions are required, whether it's idempotent, what happens if the issue is already in the project, or what the response looks like. For a mutation tool with zero annotation coverage, this leaves significant behavioral gaps.

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, efficient sentence that gets straight to the point with no wasted words. It's appropriately sized for a simple tool with two parameters and no complex behavior to explain. 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?

Given this is a mutation tool with no annotations and no output schema, the description is incomplete. It doesn't address behavioral aspects like error conditions, side effects, or response format. While the purpose is clear, the lack of context for a write operation leaves the agent with insufficient information to use it 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?

The input schema has 100% description coverage, with both parameters clearly documented in the schema itself. The description adds no additional parameter information beyond what's in the schema (e.g., format examples, constraints, or relationships between parameters). With high schema coverage, 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 action ('Add') and resource ('an existing issue to a project'), making the purpose immediately understandable. It distinguishes this from sibling tools like linear_createIssue (creates new issues) and linear_updateIssue (modifies issue properties), but doesn't explicitly differentiate from similar tools like linear_addIssueToCycle, which adds issues to cycles rather than projects.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., the issue and project must exist), exclusions (e.g., cannot add to archived projects), or compare to similar tools like linear_addIssueToCycle or linear_transferIssue. The agent must infer usage from the tool name alone.

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

linear_archiveIssueC

Archive an issue

ParametersJSON Schema
NameRequiredDescriptionDefault
issueIdYesID or identifier of the issue to archive (e.g., ABC-123)

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. 'Archive an issue' implies a mutation (likely destructive or irreversible), but it doesn't specify whether this requires special permissions, if it's reversible, what happens to related data (e.g., comments, labels), or any rate limits. For a mutation tool with zero annotation coverage, this leaves critical behavioral traits undocumented, though it at least correctly indicates 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 extremely concise at three words ('Archive an issue'), with zero wasted text. It's front-loaded and gets straight to the point, making it easy to parse quickly. Every word earns its place by conveying the core action and resource without unnecessary elaboration.

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 (a mutation tool with potential side effects), lack of annotations, and no output schema, the description is incomplete. It doesn't explain what 'archive' entails behaviorally, what the return value might be (e.g., success confirmation or error), or how it fits into the broader workflow with sibling tools. For a tool that could permanently change issue state, more context is needed to ensure safe and correct usage.

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 input schema has 100% description coverage, with the single parameter 'issueId' well-documented in the schema as 'ID or identifier of the issue to archive (e.g., ABC-123)'. The description doesn't add any parameter-specific information beyond this, but with high schema coverage and only one parameter, the baseline is strong. No compensation is needed, and the description doesn't detract from the schema's clarity.

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 'Archive an issue' clearly states the action (archive) and resource (issue), making the basic purpose understandable. However, it doesn't differentiate from sibling tools like linear_updateIssue or linear_convertIssueToSubtask, which might also modify issue states. The description is functional but lacks specificity about what 'archive' means in this context compared to other issue modification 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?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., whether the issue must be closed first), exclusions (e.g., cannot archive if in active cycle), or comparisons to siblings like linear_updateIssue (which might have an archive option). Without such context, an agent might struggle to choose this tool appropriately among many issue-modification options.

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

linear_assignIssueC

Assign an issue to a user

ParametersJSON Schema
NameRequiredDescriptionDefault
issueIdYesID or identifier of the issue to assign (e.g., ABC-123)
assigneeIdYesID of the user to assign the issue to, or null to unassign

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 for behavioral disclosure. 'Assign an issue to a user' implies a mutation operation but doesn't specify permissions required, whether this action is reversible, what happens to previous assignees, or error conditions. For a mutation tool with zero annotation coverage, this is insufficient.

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

Conciseness5/5

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

The description is a single, clear sentence with zero wasted words. It's perfectly front-loaded and efficiently communicates the core purpose without unnecessary elaboration.

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 mutation tool with no annotations and no output schema, the description is inadequate. It doesn't explain what happens when assignment succeeds or fails, doesn't mention permissions or side effects, and provides no context about the Linear system's assignment behavior. The description should do more given the complexity of the 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?

Schema description coverage is 100%, so the input schema already fully documents both parameters (issueId and assigneeId). The description adds no additional parameter information beyond what's in the schema, which is acceptable given the comprehensive schema coverage.

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

Purpose4/5

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

The description clearly states the action ('Assign') and resource ('an issue to a user'), making the purpose immediately understandable. However, it doesn't differentiate this tool from similar sibling tools like linear_updateIssue (which likely also handles assignments) or linear_transferIssue, so it doesn't reach the highest score.

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

Usage 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. With siblings like linear_updateIssue and linear_transferIssue that might handle similar functionality, there's no indication of when this specific assignment tool is preferred or when other tools should be used instead.

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

linear_convertIssueToSubtaskC

Convert an issue to a subtask

ParametersJSON Schema
NameRequiredDescriptionDefault
issueIdYesID or identifier of the issue to convert (e.g., ABC-123)
parentIssueIdYesID or identifier of the parent issue (e.g., ABC-456)

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action ('convert') but doesn't disclose key traits: whether this is a destructive mutation (e.g., alters issue properties irreversibly), requires specific permissions, has side effects on related issues, or what the expected outcome looks like. This leaves significant gaps 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.

Conciseness4/5

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

The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's front-loaded with the core action, though it could be slightly more informative. There's no wasted text, making it appropriately concise for a simple tool.

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 mutation tool with no annotations and no output schema, the description is incomplete. It doesn't explain what 'convert' entails behaviorally, the result of the operation, or error conditions. For a tool that likely changes issue relationships in a system like Linear, more context is needed to guide an agent effectively.

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 100%, with both parameters ('issueId' and 'parentIssueId') well-documented in the schema. The description adds no additional meaning beyond the schema, such as explaining the relationship between the issue and parent or any constraints. Since the schema handles the parameter documentation adequately, a baseline score 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 'Convert an issue to a subtask' clearly states the verb ('convert') and resource ('issue'), but it's vague about what this transformation entails—does it change the issue's type, move it under a parent, or modify its properties? It distinguishes from siblings like 'linear_createIssue' or 'linear_updateIssue' by specifying a conversion action, but lacks specificity about the outcome.

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. For example, it doesn't clarify if this is for restructuring tasks versus using 'linear_createIssueRelation' for linking issues, or mention prerequisites like issue states. The description implies a specific use case but offers no explicit when/when-not instructions or comparisons to sibling tools.

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

linear_createCommentC

Add a comment to an issue in Linear

ParametersJSON Schema
NameRequiredDescriptionDefault
issueIdYesID or identifier of the issue to comment on (e.g., ABC-123)
bodyYesText of the comment (Markdown supported)

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. It states the tool adds a comment but does not cover critical aspects like required permissions, whether the action is reversible, rate limits, or error handling, leaving significant gaps 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.

Conciseness5/5

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

The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It is front-loaded and appropriately sized for its simple function, with zero waste.

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 is a mutation (adding a comment) with no annotations and no output schema, the description is incomplete. It lacks details on behavioral traits, return values, or error cases, making it inadequate for safe and effective use by 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 schema fully documents both parameters (issueId and body). The description adds no additional meaning beyond the schema, such as examples or constraints, but does not contradict it, meeting the baseline for high schema coverage.

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

Purpose4/5

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

The description clearly states the action ('Add a comment') and target resource ('to an issue in Linear'), which is specific and unambiguous. However, it does not differentiate from sibling tools like 'linear_getComments' or 'linear_updateIssue' that might also involve comments, missing explicit distinction.

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 when to comment versus update an issue or use other issue-related tools. It lacks context on prerequisites, exclusions, or comparisons with siblings like 'linear_updateIssue' for editing comments.

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

linear_createIssueC

Create a new issue in Linear

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesTitle of the issue
descriptionNoDescription of the issue (Markdown supported)
teamIdYesID of the team the issue belongs to
assigneeIdNoID of the user to assign the issue to
priorityNoPriority of the issue (0 = No priority, 1 = Urgent, 2 = High, 3 = Normal, 4 = Low)
projectIdNoID of the project the issue belongs to
cycleIdNoID of the cycle to add the issue to
estimateNoThe estimated complexity/points for the issue
dueDateNoThe date at which the issue is due (YYYY-MM-DD format)
labelIdsNoIDs of the labels to attach to the issue
parentIdNoID of the parent issue (to create as a sub-task)
subscriberIdsNoIDs of the users to subscribe to the issue
stateIdNoID of the workflow state for the issue
templateIdNoID of a template to use for creating the issue
sortOrderNoThe position of the issue in relation to other issues

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 for behavioral disclosure. 'Create a new issue' implies a write/mutation operation, but the description doesn't mention authentication requirements, rate limits, what happens on success/failure, or whether the operation is idempotent. For a mutation tool with 15 parameters and no annotations, this is a significant gap in 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, clear sentence with zero wasted words. It's perfectly front-loaded with the core action and resource. Every word earns its place, making it highly efficient for an agent scanning tool descriptions.

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 complex mutation tool with 15 parameters, no annotations, and no output schema, the description is inadequate. It doesn't explain what happens after creation (e.g., returns an issue ID), error conditions, authentication needs, or system constraints. The agent lacks crucial context for proper tool invocation despite the comprehensive parameter schema.

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 well-documented in the schema itself (e.g., priority values explained, date format specified). The description adds no additional parameter information beyond what's already in the schema. With complete schema coverage, the baseline score of 3 is appropriate since 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 the action ('Create a new issue') and resource ('in Linear'), making the purpose immediately understandable. It doesn't explicitly differentiate from siblings like 'linear_duplicateIssue' or 'linear_updateIssue', but the verb 'Create' is specific enough to distinguish it from most other tools in the sibling list.

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. With siblings like 'linear_duplicateIssue', 'linear_updateIssue', and 'linear_convertIssueToSubtask', there's no indication of when creation is appropriate versus modification, duplication, or conversion operations. The agent must infer usage from tool names alone.

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

linear_createIssueRelationC

Create relations between issues (blocks, is blocked by, etc.)

ParametersJSON Schema
NameRequiredDescriptionDefault
issueIdYesID or identifier of the first issue (e.g., ABC-123)
relatedIssueIdYesID or identifier of the second issue (e.g., ABC-456)
typeYesType of relation: 'blocks', 'blocked_by', 'related', 'duplicate', 'duplicate_of'

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 states this is a creation operation ('Create relations'), implying mutation, but doesn't disclose behavioral traits like required permissions, whether the operation is reversible, if it affects issue status, rate limits, or what happens on success/failure. For a mutation tool with zero annotation coverage, this is a significant gap.

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, efficient sentence with zero waste. It's front-loaded with the core purpose and includes helpful examples without unnecessary elaboration. 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?

For a mutation tool with no annotations and no output schema, the description is incomplete. It doesn't explain what the tool returns, error conditions, or important behavioral context (e.g., whether relations are bidirectional, if duplicates are allowed). Given the complexity of creating issue relationships, more guidance is needed.

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 clear descriptions for all three parameters including an enum for 'type'. The description adds minimal value beyond the schema—it mentions relation types ('blocks, is blocked by, etc.') which the schema already enumerates. Baseline 3 is appropriate when 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 the action ('Create relations') and resource ('between issues'), with examples of relation types ('blocks, is blocked by, etc.'). It distinguishes from siblings like linear_createIssue (creates new issues) and linear_updateIssue (modifies existing issues). However, it doesn't explicitly differentiate from tools like linear_convertIssueToSubtask which also creates relationships.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., both issues must exist), when not to use it (e.g., for parent-child relationships which might use linear_convertIssueToSubtask), or clarify the difference from similar tools like linear_updateIssue which might also modify relationships.

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

linear_createProjectC

Create a new project in Linear

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesName of the project
descriptionNoDescription of the project (Markdown supported)
teamIdsYesIDs of the teams this project belongs to
stateNoInitial state of the project (e.g., 'planned', 'started', 'paused', 'completed', 'canceled')

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 carries full burden for behavioral disclosure. While 'Create' implies a write/mutation operation, the description doesn't mention required permissions, whether this is an idempotent operation, what happens on duplicate names, or what the response contains. For a creation tool with zero annotation coverage, this leaves significant behavioral questions unanswered.

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, efficient sentence that states the core purpose without any wasted words. It's appropriately sized for a straightforward creation tool and gets directly to the point.

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 creation tool with no annotations and no output schema, the description is insufficient. It doesn't explain what happens after creation, what the return value contains, or address common behavioral questions like permissions, idempotency, or error conditions. The 100% schema coverage helps with parameters, but overall context is lacking.

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 schema already documents all 4 parameters thoroughly. The description adds no additional parameter information beyond what's in the schema. This meets the baseline expectation when schema coverage is complete.

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 ('Create') and resource ('new project in Linear'), making the purpose immediately understandable. It doesn't explicitly distinguish from sibling tools like linear_updateProject or linear_getProjects, but the creation action is unambiguous.

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. There's no mention of prerequisites, when creation is appropriate versus updating existing projects, or how this relates to sibling tools like linear_updateProject or linear_getProjects.

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

linear_duplicateIssueC

Duplicate an issue

ParametersJSON Schema
NameRequiredDescriptionDefault
issueIdYesID or identifier of the issue to duplicate (e.g., ABC-123)

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. 'Duplicate an issue' implies a mutation (creating a copy), but it does not specify permissions required, whether the original issue is affected, what fields are copied, or the response format. This is a significant gap for a mutation tool with zero annotation coverage.

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

Conciseness5/5

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

The description is a single, efficient sentence with zero waste. It is appropriately sized and front-loaded, making it easy to parse quickly without unnecessary details.

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 complexity as a mutation operation, lack of annotations, and no output schema, the description is incomplete. It fails to address key aspects like behavioral traits (e.g., what duplication entails), usage context, or return values, making it inadequate for effective agent use.

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, with the 'issueId' parameter clearly documented. The description does not add any meaning beyond the schema (e.g., it does not explain format examples or constraints), so it meets the baseline of 3 where the schema does the heavy lifting.

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 'Duplicate an issue' clearly states the verb ('duplicate') and resource ('issue'), making the basic purpose understandable. However, it lacks specificity about what duplication entails (e.g., copying fields, status, or attachments) and does not distinguish it from sibling tools like 'linear_createIssue' or 'linear_updateIssue', which could involve similar issue manipulation.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites (e.g., needing an existing issue), exclusions, or comparisons to sibling tools such as 'linear_createIssue' for new issues or 'linear_updateIssue' for modifications, leaving the agent to infer usage context.

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

linear_getActiveCycleC

Get the currently active cycle for a team

ParametersJSON Schema
NameRequiredDescriptionDefault
teamIdYesID of the team to get the active cycle for

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 carries the full burden of behavioral disclosure. It states the tool retrieves data ('Get'), implying a read-only operation, but doesn't mention potential errors (e.g., invalid teamId), rate limits, authentication needs, or return format, which are critical for safe invocation.

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, clear sentence with no wasted words, making it easy to parse and front-loaded with the core purpose. It efficiently conveys the essential information without unnecessary elaboration.

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 incomplete. It doesn't explain what an 'active cycle' entails, the return structure, error conditions, or how it differs from sibling tools, leaving gaps for a tool that likely returns structured data.

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 100%, with the parameter 'teamId' fully documented in the schema. The description adds no additional parameter semantics beyond implying the tool operates on a team, which is already covered, so it meets the baseline for high schema coverage.

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

Purpose4/5

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

The description clearly states the action ('Get') and resource ('currently active cycle for a team'), making the purpose understandable. However, it doesn't explicitly differentiate from sibling tools like 'linear_getCycles' (which might return all cycles), leaving room for ambiguity.

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 lacks context about prerequisites (e.g., team existence), exclusions, or comparisons to siblings like 'linear_getCycles', leaving the agent to infer usage.

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

linear_getCommentsC

Get all comments for an issue

ParametersJSON Schema
NameRequiredDescriptionDefault
issueIdYesID or identifier of the issue to get comments from (e.g., ABC-123)
limitNoMaximum number of comments to return (default: 25)

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 states a read operation ('Get') but lacks details on permissions, rate limits, pagination (beyond the 'limit' parameter), error handling, or return format. For a tool with no annotation coverage, this leaves significant behavioral gaps.

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, efficient sentence that front-loads the core action ('Get all comments for an issue') with zero wasted words. It's appropriately sized for a simple retrieval tool, making it easy to parse quickly.

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 annotations, no output schema, and a simple input schema, the description is incomplete. It doesn't address behavioral aspects like authentication needs, response structure, or error cases. For a tool in a context with many sibling alternatives, more guidance would help an agent use it 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 clear parameter documentation in the schema. The description adds no additional meaning beyond implying retrieval of comments, which is already covered by the tool name and purpose. Baseline 3 is appropriate as the schema handles parameter semantics adequately.

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 ('Get') and resource ('all comments for an issue'), making the tool's purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'linear_getIssueHistory' or 'linear_getIssueById' which might also retrieve issue-related data, missing explicit distinction.

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. With siblings like 'linear_getIssueHistory' (which might include comments) and 'linear_getIssueById' (which might return issue details with comments), there's no indication of context, prerequisites, or exclusions for this specific comment-fetching tool.

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

linear_getCyclesC

Get a list of all cycles

ParametersJSON Schema
NameRequiredDescriptionDefault
teamIdNoID of the team to get cycles for (optional)
limitNoMaximum number of cycles to return (default: 25)

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 states 'Get a list' but doesn't specify whether this is a read-only operation, if it requires authentication, how pagination or rate limits work, or what the return format looks like. For a list-fetching tool with zero annotation coverage, this is a significant gap in transparency.

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

Conciseness5/5

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

The description is a single, efficient sentence ('Get a list of all cycles') that is front-loaded with the core action. There is no wasted verbiage or redundancy, making it highly concise and well-structured for quick comprehension.

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 incomplete. It doesn't explain what a 'cycle' is in Linear's context, how results are ordered or filtered, or what data is returned. For a tool with 2 parameters and no structured output information, more context is needed to guide effective use by 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%, with both parameters ('teamId' and 'limit') documented in the schema. The description adds no parameter-specific information beyond implying a list operation. Since the schema handles parameter documentation adequately, the baseline score of 3 is appropriate, as the description doesn't compensate but also doesn't detract.

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 'Get a list of all cycles' clearly states the verb ('Get') and resource ('cycles'), making the basic purpose understandable. However, it doesn't differentiate from sibling tools like 'linear_getActiveCycle' or specify what 'all cycles' means in context (e.g., across teams vs. organization-wide). The purpose is clear but lacks specificity compared to alternatives.

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 like 'linear_getActiveCycle' or 'linear_getIssues' (which might include cycle-related data). The description doesn't mention prerequisites, context, or exclusions, leaving the agent to infer usage based on tool names alone.

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

linear_getIssueByIdB

Get a specific issue by ID or identifier (e.g., ABC-123)

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe ID or identifier of the issue (e.g., ABC-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, so the description carries the full burden of behavioral disclosure. It states the tool 'Get[s] a specific issue', implying a read-only operation, but doesn't disclose any behavioral traits such as error handling (e.g., what happens if the ID doesn't exist), authentication needs, rate limits, or response format. For a tool with zero annotation coverage, this is a significant gap in transparency.

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

Conciseness5/5

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

The description is a single, efficient sentence: 'Get a specific issue by ID or identifier (e.g., ABC-123)'. It's front-loaded with the core purpose and includes a helpful example. There's no wasted text, making it appropriately sized and well-structured for its simple function.

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

Completeness3/5

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

Given the tool's low complexity (single parameter, no output schema, no annotations), the description is minimally adequate. It covers the basic purpose but lacks completeness in areas like usage guidelines, behavioral context (e.g., error handling), and output details. For a simple read operation, it's functional but could be more informative to fully guide 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?

The input schema has 100% description coverage, with the 'id' parameter documented as 'The ID or identifier of the issue (e.g., ABC-123)'. The description adds minimal value beyond the schema, only repeating the example 'ABC-123' without providing additional semantics like format constraints or where to find IDs. With high schema coverage, 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's purpose: 'Get a specific issue by ID or identifier (e.g., ABC-123)'. It uses a specific verb ('Get') and resource ('issue'), but doesn't explicitly differentiate from sibling tools like linear_getIssues (which likely lists multiple issues) or linear_searchIssues (which likely searches with criteria). The description is clear but lacks sibling 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?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like linear_getIssues (for listing issues) or linear_searchIssues (for searching issues), nor does it specify use cases such as retrieving a single known issue versus browsing multiple issues. There's no explicit when/when-not or alternative recommendations.

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

linear_getIssueHistoryC

Get the history of changes made to an issue

ParametersJSON Schema
NameRequiredDescriptionDefault
issueIdYesID or identifier of the issue (e.g., ABC-123)
limitNoMaximum number of history events to return (default: 10)

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 carries the full burden of behavioral disclosure. It states this is a 'Get' operation, implying it's read-only, but doesn't confirm this explicitly or address other behavioral aspects. There's no information about authentication requirements, rate limits, pagination (beyond the limit parameter), error conditions, or what the return format looks like (since there's no output schema). For a tool with no annotation coverage, this leaves significant gaps in understanding how it behaves.

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, clear sentence that efficiently conveys the core purpose without any wasted words. It's front-loaded with the essential information ('Get the history of changes made to an issue'), making it easy to parse. There's no redundancy or unnecessary elaboration, earning a perfect score for 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 tool's complexity (retrieving historical data with parameters), lack of annotations, and absence of an output schema, the description is insufficiently complete. It doesn't explain what 'history' includes (e.g., field changes, comments, attachments), how results are structured, or any behavioral constraints. For a tool that likely returns structured historical data, more context is needed to help an agent use it effectively, especially without annotations or output schema to fill in the gaps.

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 100%, with both parameters (issueId and limit) fully documented in the schema. The description adds no additional parameter semantics beyond what's already in the schema—it doesn't explain the format of issueId beyond 'ID or identifier' or clarify what 'history events' consist of. Since the schema does the heavy lifting, the baseline score of 3 is appropriate, but the description doesn't enhance parameter understanding.

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

Purpose4/5

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

The description clearly states the verb ('Get') and resource ('history of changes made to an issue'), making the purpose immediately understandable. It distinguishes this tool from siblings like linear_getIssueById (which retrieves current state) and linear_getComments (which retrieves comments rather than change history). However, it doesn't specify the exact scope of 'history' (e.g., whether it includes comments, status changes, or all modifications), which prevents 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. It doesn't mention when this tool is appropriate (e.g., for auditing changes) versus when to use linear_getIssueById (for current state) or linear_getComments (for comment history). There's also no mention of prerequisites, such as needing the issue ID first from another tool. The usage context is implied but not explicitly stated.

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

linear_getIssuesC

Get a list of recent issues from Linear

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of issues to return (default: 10)

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 carries the full burden of behavioral disclosure. It states the tool retrieves a list but lacks details on permissions, rate limits, pagination, or what 'recent' entails (e.g., time-based or count-based). This is inadequate for a tool that likely interacts with an external API and has behavioral nuances.

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, efficient sentence that front-loads the core purpose without unnecessary words. It's appropriately sized for a simple tool, though it could benefit from additional context 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 the complexity of fetching issues from Linear (likely involving API constraints) and the lack of annotations and output schema, the description is incomplete. It doesn't cover return format, error handling, or how 'recent' is determined, leaving gaps that could hinder effective tool use by 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 description coverage is 100%, so the input schema fully documents the single parameter 'limit'. The description adds no additional parameter semantics beyond implying 'recent' issues, which isn't tied to any documented parameter. This meets the baseline for high schema coverage but doesn't enhance understanding.

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

Purpose4/5

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

The description clearly states the action ('Get a list') and resource ('recent issues from Linear'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'linear_searchIssues' or 'linear_getIssueById', which would require more specificity about scope or filtering capabilities.

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_searchIssues' or 'linear_getProjectIssues'. It mentions 'recent issues' but doesn't clarify what 'recent' means or whether this is for unfiltered listing versus targeted queries, leaving the agent with insufficient context for tool selection.

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

linear_getLabelsB

Get a list of issue labels from Linear

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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 the full burden of behavioral disclosure. It states this is a 'Get' operation, implying it's read-only, but doesn't specify if it requires authentication, has rate limits, returns paginated results, or what the output format looks like. For a tool with zero annotation coverage, this leaves significant gaps in understanding its 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?

The description is a single, efficient sentence that directly states the tool's function without any fluff or redundancy. It's appropriately sized for a simple retrieval tool and front-loads the key information ('Get a list of issue labels'), making it easy to scan and understand quickly.

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

Completeness3/5

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

Given the tool's simplicity (0 parameters, no output schema, no annotations), the description is adequate but minimal. It covers the basic purpose but lacks details on output format, authentication needs, or usage context, which could be helpful for an AI agent. It's complete enough for a basic list tool but doesn't provide rich contextual information.

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 input schema has 0 parameters with 100% coverage, so there's no need for parameter documentation in the description. The description correctly avoids discussing parameters, focusing instead on the tool's purpose. This meets the baseline for tools with no parameters, as it doesn't mislead or omit necessary details.

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 ('Get') and resource ('a list of issue labels from Linear'), making the purpose immediately understandable. It distinguishes this from other sibling tools that manipulate labels (like linear_addIssueLabel or linear_removeIssueLabel) by focusing on retrieval. However, it doesn't specify if this returns all labels or filtered ones, which prevents 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. It doesn't mention prerequisites, context (e.g., for filtering issues or setting up new ones), or compare it to other list tools like linear_getIssues or linear_getProjects. Without such context, users must infer usage from the tool name alone.

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

linear_getOrganizationB

Get information about the current Linear organization

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/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 states it 'Get[s] information' but doesn't disclose behavioral traits such as authentication requirements, rate limits, response format, or whether it's read-only. This is a significant gap for a tool with zero annotation coverage.

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

Conciseness5/5

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

The description is a single, efficient sentence that directly states the tool's purpose without any wasted words. It's appropriately sized and front-loaded, making it easy to parse quickly.

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 incomplete. It doesn't explain what 'information' includes (e.g., organization details, settings, or metadata), leaving gaps in understanding the tool's behavior and output. For a tool with no structured support, more context is needed.

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 input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description doesn't add param info, but that's acceptable here. Baseline is 4 for zero parameters, as the schema fully covers the absence of inputs.

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 'Get' and the resource 'information about the current Linear organization', making the purpose understandable. However, it doesn't explicitly differentiate from sibling tools like 'linear_getViewer' or 'linear_getTeams', which might also retrieve organizational data, so it misses full sibling distinction.

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. With siblings like 'linear_getViewer' (which might return user-specific data) and 'linear_getTeams' (which retrieves team-level info), there's no indication of context or exclusions, leaving usage ambiguous.

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

linear_getProjectIssuesC

Get all issues associated with a project

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdYesID of the project to get issues for
limitNoMaximum number of issues to return (default: 25)

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. It states the action ('Get all issues') but doesn't describe key behaviors like pagination (implied by 'limit' parameter), error handling, authentication needs, rate limits, or what 'all issues' entails (e.g., status filters). This is a significant gap for a read operation with no annotation coverage.

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

Conciseness5/5

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

The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's appropriately sized and front-loaded, with no wasted information.

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 retrieving issues (which may involve filtering, pagination, or permissions) and the lack of annotations and output schema, the description is incomplete. It doesn't address return values, error cases, or behavioral nuances, making it inadequate for a tool with two parameters and no structured output documentation.

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 clear descriptions for 'projectId' and 'limit' parameters. The description adds no additional meaning beyond what the schema provides (e.g., it doesn't explain format constraints for 'projectId' or how 'limit' interacts with pagination), so it meets the baseline for high schema coverage.

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 ('Get') and resource ('issues associated with a project'), making the purpose understandable. However, it doesn't distinguish this from sibling tools like 'linear_getIssues' or 'linear_searchIssues', which also retrieve issues, so it lacks sibling 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?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention when to prefer this over 'linear_getIssues' (which might retrieve issues without project filtering) or 'linear_searchIssues' (which might offer more flexible querying), leaving the agent without usage context.

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

linear_getProjectsB

Get a list of projects from Linear

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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 the full burden of behavioral disclosure. It states this is a read operation ('Get'), but doesn't mention any behavioral traits such as authentication requirements, rate limits, pagination, sorting, or what data is included in the list. For a tool with zero annotation coverage, this leaves significant gaps in understanding how it behaves.

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, clear sentence with no wasted words. It's front-loaded with the core purpose ('Get a list of projects from Linear'), making it highly efficient and easy to parse.

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

Completeness3/5

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

Given the tool's simplicity (0 parameters, no output schema) and lack of annotations, the description is minimally adequate but incomplete. It states what the tool does but doesn't cover behavioral aspects like response format, error handling, or usage context relative to siblings. For a basic read tool, it meets the minimum but leaves room for improvement in guiding effective use.

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 input schema has 0 parameters with 100% description coverage, so no parameters need documentation. The description doesn't add parameter information, but that's acceptable since there are no parameters to explain. It implies retrieval of projects but doesn't specify any filtering or options, which aligns with the empty 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 the action ('Get a list') and resource ('projects from Linear'), making the purpose immediately understandable. However, it doesn't differentiate this tool from sibling tools like 'linear_getProjectIssues' or 'linear_getIssues', which also retrieve lists of Linear resources, so it doesn't achieve full sibling 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?

The description provides no guidance on when to use this tool versus alternatives. With sibling tools like 'linear_getProjectIssues' (which retrieves issues within projects) and 'linear_getIssues' (which retrieves issues generally), there's no indication of whether this tool is for listing project metadata, filtering, or other specific use cases.

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

linear_getTeamsB

Get a list of teams from Linear

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/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. It states the action is 'Get,' implying a read operation, but lacks details on permissions, rate limits, pagination, or return format. This is inadequate for a tool with zero annotation coverage.

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

Conciseness5/5

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

The description is a single, efficient sentence with no wasted words. It's front-loaded with the core purpose, making it easy to parse and understand quickly, which is ideal for 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 annotations and output schema, the description is incomplete. It doesn't explain what the returned list includes (e.g., team fields, structure), behavioral traits like pagination, or error handling, leaving significant gaps for agent usage.

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 input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description doesn't add parameter details, which is appropriate, but it also doesn't compensate for any gaps since there are none, warranting a high baseline score.

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

Purpose4/5

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

The description clearly states the action ('Get') and resource ('list of teams from Linear'), providing a specific verb+resource combination. However, it doesn't differentiate this tool from sibling tools like 'linear_getUsers' or 'linear_getProjects' beyond the resource type, which prevents 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. With sibling tools like 'linear_getUsers' and 'linear_getProjects' available, there's no indication of use cases, prerequisites, or distinctions, leaving the agent without contextual direction.

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

linear_getUsersB

Get a list of users in the Linear organization

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/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 states the action but doesn't describe traits like pagination, rate limits, authentication needs, or return format. This leaves significant gaps for a tool that likely involves network calls and data retrieval.

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, efficient sentence with no wasted words. It's front-loaded with the core action and resource, making it easy to understand at a glance.

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 incomplete. It doesn't address behavioral aspects like response format, error handling, or usage constraints, which are important for a tool that retrieves organizational data.

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

Parameters4/5

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

The tool has 0 parameters, and schema description coverage is 100%, so there's no need for parameter details in the description. The baseline for this case is 4, as the description doesn't need to compensate for any parameter gaps, but it doesn't add extra semantic value 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 the verb ('Get') and resource ('list of users in the Linear organization'), making the purpose unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'linear_getViewer' or 'linear_getOrganization', which also retrieve user/organization data, so it doesn't reach the highest score.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, context, or exclusions, such as whether this is for listing all users versus filtered subsets available in other tools like 'linear_getTeams'.

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

linear_getViewerB

Get information about the currently authenticated user

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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 the full burden of behavioral disclosure. It mentions authentication ('currently authenticated user'), which is useful context, but fails to describe other traits like response format, error handling, or any rate limits. For a tool with zero annotation coverage, this leaves significant gaps in understanding its 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?

The description is a single, efficient sentence that directly states the tool's purpose without any wasted words. It is front-loaded and appropriately sized for a simple tool, 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.

Completeness3/5

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

Given the tool's low complexity (0 parameters, no output schema), the description is adequate but incomplete. It covers the basic purpose and authentication context, but without annotations or output schema, it lacks details on return values or behavioral nuances, making it minimally viable but with clear gaps for agent usage.

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 input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description doesn't add parameter details, which is appropriate here, earning a baseline score of 4 as it doesn't need to compensate for any schema gaps.

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 ('Get') and resource ('information about the currently authenticated user'), making the purpose specific and understandable. However, it doesn't explicitly distinguish this tool from sibling tools like 'linear_getUsers' or 'linear_getOrganization', which might also retrieve user-related data, so it doesn't fully differentiate from alternatives.

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_getUsers' for listing multiple users or 'linear_getOrganization' for broader context. It lacks explicit instructions on prerequisites, context, or exclusions, leaving usage implied rather than clearly defined.

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

linear_getWorkflowStatesC

Get workflow states for a team

ParametersJSON Schema
NameRequiredDescriptionDefault
teamIdYesID of the team to get workflow states for
includeArchivedNoWhether to include archived states (default: false)

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 for behavioral disclosure. It states a read operation ('Get'), implying non-destructive behavior, but lacks details on permissions, rate limits, pagination, or error handling. For a tool with no annotation coverage, this is a significant gap in transparency.

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

Conciseness5/5

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

The description is a single, efficient sentence with zero waste. It's front-loaded with the core purpose, making it easy to parse quickly, though its brevity contributes to gaps in other dimensions like guidelines and transparency.

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 annotations, no output schema, and a read operation with two parameters, the description is incomplete. It lacks information on return values (e.g., state list format), error cases, or operational context, making it inadequate for full agent understanding without external inference.

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 clear documentation for both parameters (teamId and includeArchived). The description adds no additional parameter semantics beyond what the schema provides, such as format examples or constraints, so it meets the baseline for high schema coverage without compensating value.

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 ('Get') and resource ('workflow states for a team'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'linear_getTeams' or 'linear_getProjects', which also retrieve team-related data, leaving some ambiguity about 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?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing team ID from 'linear_getTeams'), exclusions, or comparisons to similar tools like 'linear_getIssues' or 'linear_getProjects', leaving the agent to infer usage context.

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

linear_removeIssueLabelC

Remove a label from an issue in Linear

ParametersJSON Schema
NameRequiredDescriptionDefault
issueIdYesID or identifier of the issue to remove the label from (e.g., ABC-123)
labelIdYesID of the label to remove from the issue

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 carries the full burden of behavioral disclosure. It states the action but doesn't cover critical aspects like required permissions, whether this is a destructive operation, what happens if the label isn't attached, or what the response looks like. This leaves significant gaps 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.

Conciseness5/5

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

The description is a single, efficient sentence that states the core purpose without any wasted words. It's appropriately sized for a simple operation and gets straight to the point.

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 mutation tool with no annotations and no output schema, the description is insufficient. It doesn't explain what happens after removal, error scenarios, permissions needed, or how this interacts with other label management tools. The agent would lack critical context to use this tool effectively.

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?

With 100% schema description coverage, the input schema already fully documents both parameters. The description adds no additional semantic context about the parameters beyond what's in the schema (e.g., format examples, relationship between issueId and labelId, or where to find these IDs). This meets the baseline for high schema coverage.

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

Purpose4/5

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

The description clearly states the action ('Remove') and target ('a label from an issue in Linear'), which is specific and unambiguous. However, it doesn't explicitly differentiate from its sibling 'linear_addIssueLabel' beyond the obvious verb difference, missing an opportunity to clarify the complementary relationship.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., the label must already be attached), error conditions, or when other tools like 'linear_updateIssue' might be more appropriate for bulk label management.

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

linear_searchIssuesC

Search for issues with various filters

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNoText to search for in issue title or description
teamIdNoFilter issues by team ID
assigneeIdNoFilter issues by assignee ID
projectIdNoFilter issues by project ID
statesNoFilter issues by state name (e.g., 'Todo', 'In Progress', 'Done')
limitNoMaximum number of issues to return (default: 10)

TDQS

C2.6/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. It mentions 'various filters' but doesn't specify search behavior (e.g., full-text vs. exact match, pagination, rate limits, authentication needs, or what happens with no results). For a search tool with zero annotation coverage, this is a significant gap in transparency.

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

Conciseness4/5

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

The description is a single, efficient sentence with no wasted words. It's appropriately sized for a search tool, though it could be more front-loaded with critical details like distinguishing from siblings or behavioral traits.

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 search tool with 6 parameters, no annotations, and no output schema, the description is incomplete. It lacks details on return values, error handling, performance constraints, and differentiation from sibling tools, making it inadequate for informed tool selection.

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 schema already documents all 6 parameters thoroughly. The description adds no additional meaning beyond implying filter usage, which is redundant with the schema. Baseline 3 is appropriate when the schema does the heavy lifting, but no extra value is added.

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 'Search for issues with various filters' states the verb (search) and resource (issues), but it's vague about scope and specificity. It doesn't distinguish this from sibling tools like 'linear_getIssues' or 'linear_getProjectIssues', leaving ambiguity about when to use this versus other issue retrieval 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 guidance is provided on when to use this tool versus alternatives. With multiple sibling tools for retrieving issues (e.g., linear_getIssues, linear_getProjectIssues), the description offers no context about prerequisites, typical use cases, or exclusions, leaving the agent to guess based on tool names alone.

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

linear_setIssuePriorityC

Set the priority of an issue

ParametersJSON Schema
NameRequiredDescriptionDefault
issueIdYesID or identifier of the issue (e.g., ABC-123)
priorityYesPriority level (0 = No priority, 1 = Urgent, 2 = High, 3 = Normal, 4 = Low)

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 carries full burden for behavioral disclosure. 'Set the priority' implies a mutation operation, but it doesn't mention required permissions, whether this action is reversible, what happens to existing priority values, or any rate limits. For a mutation tool with zero annotation coverage, this leaves significant behavioral questions unanswered.

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, efficient sentence that states the core functionality without any wasted words. It's appropriately sized for a simple mutation tool and gets straight to the point.

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 mutation tool with no annotations and no output schema, the description is insufficient. It doesn't explain what happens after setting the priority (success/failure indicators, return values), doesn't mention permissions or side effects, and doesn't differentiate from similar tools. Given the complexity of issue management systems, more context is needed.

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 both parameters clearly documented in the schema (issueId format and priority enum values). The description adds no additional parameter information beyond what's already in the structured schema, so it meets but doesn't exceed the baseline expectation.

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 ('Set') and resource ('priority of an issue'), making the purpose immediately understandable. However, it doesn't differentiate this tool from similar mutation tools like linear_updateIssue or linear_assignIssue, which could also affect issue properties.

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. With siblings like linear_updateIssue (which likely handles multiple fields) and linear_assignIssue (which might handle assignments), there's no indication whether this tool is specialized for priority changes only or when it should be preferred over broader update tools.

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

linear_subscribeToIssueC

Subscribe to issue updates

ParametersJSON Schema
NameRequiredDescriptionDefault
issueIdYesID or identifier of the issue to subscribe to (e.g., ABC-123)

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. It mentions 'subscribe to issue updates' but doesn't disclose behavioral traits such as whether this requires authentication, what type of updates are subscribed to (e.g., comments, status changes), if it's idempotent, or how subscriptions are managed (e.g., duration, cancellation). The description is minimal and lacks critical operational details.

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 with a single phrase 'Subscribe to issue updates', which is front-loaded and wastes no words. Every word earns its place by directly conveying the tool's purpose without redundancy or 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 of a subscription tool with no annotations and no output schema, the description is incomplete. It doesn't explain what 'subscribe' means in practice, what the tool returns (e.g., confirmation, subscription ID), or any side effects (e.g., notifications setup). For a tool that likely involves ongoing updates, more context is needed to be fully helpful.

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, with the 'issueId' parameter well-documented as 'ID or identifier of the issue to subscribe to (e.g., ABC-123)'. The description adds no additional meaning beyond this, as it doesn't elaborate on parameter usage or constraints. Baseline score of 3 is appropriate since the schema does the heavy lifting.

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 'Subscribe to issue updates' clearly states the action (subscribe) and target (issue updates), but it's somewhat vague about what 'subscribe' entails (e.g., notifications, webhooks, email alerts). It distinguishes from siblings by focusing on subscription rather than creation, assignment, or modification, but lacks specificity about the subscription mechanism.

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. It doesn't mention prerequisites (e.g., needing an existing issue), exclusions (e.g., not for unauthenticated users), or related tools (e.g., how it differs from linear_getIssueById for monitoring changes). The context is implied but not explicitly stated.

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

linear_transferIssueC

Transfer an issue to another team

ParametersJSON Schema
NameRequiredDescriptionDefault
issueIdYesID or identifier of the issue to transfer (e.g., ABC-123)
teamIdYesID of the team to transfer the issue to

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. 'Transfer' suggests a mutation operation, but the description doesn't specify if this is reversible, requires permissions, affects issue history, or has side effects (e.g., notifications). It misses key behavioral traits like whether the transfer preserves issue data or resets fields, making it inadequate for a mutation tool with zero annotation coverage.

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

Conciseness5/5

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

The description is a single, efficient sentence with zero waste—'Transfer an issue to another team'—front-loading the core action. It's appropriately sized for a simple tool, avoiding unnecessary elaboration while clearly stating the purpose. Every word earns its place, 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 tool's mutation nature (transfer implies write operation), lack of annotations, and no output schema, the description is incomplete. It doesn't address behavioral aspects like permissions, reversibility, or response format, which are critical for an agent to use it correctly. For a 2-param mutation tool with no structured support, more context is needed to be adequately 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 description coverage is 100%, with both parameters (issueId, teamId) documented in the schema. The description adds no additional meaning beyond implying these parameters are used for transfer, but it doesn't clarify format (e.g., teamId source) or constraints. With high schema coverage, the baseline is 3, as the description doesn't compensate but doesn't detract either.

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

Purpose4/5

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

The description clearly states the action ('transfer') and resource ('issue'), specifying the target ('to another team'). It distinguishes this from sibling tools like linear_assignIssue (assigns to user) or linear_updateIssue (general updates), though it doesn't explicitly name alternatives. The purpose is specific but could be more precise about what 'transfer' entails (e.g., moving ownership vs. copying).

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_assignIssue or linear_updateIssue, nor does it mention prerequisites (e.g., needing issue and team IDs). It implies usage for moving issues between teams but lacks context on exclusions (e.g., if the issue is archived) or best practices, leaving the agent to infer from tool names alone.

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

linear_updateIssueC

Update an existing issue in Linear

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesID or identifier of the issue to update (e.g., ABC-123)
titleNoNew title for the issue
descriptionNoNew description for the issue (Markdown supported)
stateIdNoID of the new state for the issue
priorityNoNew priority for the issue (0 = No priority, 1 = Urgent, 2 = High, 3 = Normal, 4 = Low)
projectIdNoID of the project to move the issue to
assigneeIdNoID of the user to assign the issue to, or null to unassign
cycleIdNoID of the cycle to move the issue to, or null to remove from current cycle
estimateNoThe estimated complexity/points for the issue
dueDateNoThe new due date for the issue (YYYY-MM-DD format), or null to remove
labelIdsNoIDs of the labels to set on the issue (replacing existing labels)
addedLabelIdsNoIDs of labels to add to the issue (without removing existing ones)
removedLabelIdsNoIDs of labels to remove from the issue
parentIdNoID of the parent issue, or null to convert to a regular issue
subscriberIdsNoIDs of the users to subscribe to the issue (replacing existing subscribers)
teamIdNoID of the team to move the issue to
sortOrderNoThe position of the issue in relation to other issues

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 carries the full burden of behavioral disclosure. While 'Update' implies a mutation operation, the description doesn't address important behavioral aspects: what permissions are required, whether updates are reversible, how partial updates are handled, what happens to unspecified fields, or what the response looks like. For a mutation tool with 17 parameters and no annotations, this is a significant gap.

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, efficient sentence that states the core purpose without any wasted words. It's appropriately sized for what it communicates and gets straight to the point with no unnecessary elaboration.

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 mutation tool with 17 parameters, no annotations, and no output schema, the description is inadequate. It doesn't address behavioral implications, error conditions, permissions, or what happens when the tool succeeds. Given the complexity and lack of structured metadata, the description should provide more context about how this update operation works in practice.

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 100%, so the schema already documents all 17 parameters thoroughly with clear descriptions, including format specifications and special values. The description adds no additional parameter information beyond what's in the schema, so it meets the baseline expectation when schema coverage is complete.

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

Purpose4/5

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

The description clearly states the verb ('Update') and resource ('an existing issue in Linear'), making the purpose immediately understandable. It distinguishes this from creation tools like 'linear_createIssue' by specifying 'existing issue', but doesn't explicitly differentiate from other update-related siblings like 'linear_updateProject' or 'linear_setIssuePriority'.

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. With many sibling tools that perform specific updates (like linear_setIssuePriority, linear_assignIssue, linear_addIssueToCycle), there's no indication whether this comprehensive update tool should be preferred over those specialized tools, or what the trade-offs might be.

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

linear_updateProjectC

Update an existing project in Linear

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesID of the project to update
nameNoNew name of the project
descriptionNoNew description of the project (Markdown supported)
stateNoNew state of the project (e.g., 'planned', 'started', 'paused', 'completed', 'canceled')

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 carries full burden for behavioral disclosure. 'Update an existing project' implies a mutation operation but doesn't disclose permission requirements, whether changes are reversible, rate limits, or what happens to unspecified fields (partial vs. full updates). For a mutation tool with zero annotation coverage, this leaves significant behavioral gaps.

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, efficient sentence that states the core purpose without unnecessary words. It's appropriately front-loaded with the essential action and resource. Every word earns its place with zero redundancy.

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 mutation tool with no annotations and no output schema, the description is inadequate. It doesn't cover behavioral aspects like permissions, side effects, or response format. While the schema covers parameters well, the overall context for safe and effective tool invocation 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?

Schema description coverage is 100%, so the schema fully documents all 4 parameters. The description adds no additional parameter semantics beyond what's already in the schema (e.g., it doesn't explain parameter interactions or provide examples). This meets the baseline expectation when 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 the verb ('Update') and resource ('an existing project in Linear'), making the purpose immediately understandable. It distinguishes from sibling tools like linear_createProject (creation vs. update) and linear_updateIssue (different resource type). However, it doesn't specify what aspects can be updated beyond what's implied by the parameters.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing an existing project ID), when not to use it, or how it differs from similar mutation tools like linear_updateIssue. The agent must infer usage from the tool name and parameters alone.

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

TDQS

B3.3/5.0
Disambiguation5/5

Every tool has a clearly distinct purpose targeting specific resources and actions in Linear, such as linear_addIssueLabel vs. linear_removeIssueLabel or linear_getIssueById vs. linear_searchIssues. There is no ambiguity or overlap that would cause misselection, as each tool name precisely indicates its function.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern with the 'linear_' prefix, such as linear_createIssue, linear_getIssues, and linear_updateIssue. The naming is uniform throughout, using snake_case and clear action verbs, making it highly predictable and readable.

Tool Count3/5

With 32 tools, the count is borderline high for a project management server, as it may feel heavy and complex for agents to navigate. While it covers many operations, a more streamlined set of 15-25 tools might be more appropriate for the scope without sacrificing functionality.

Completeness5/5

The tool surface provides comprehensive CRUD and lifecycle coverage for Linear's domain, including issue management (create, update, archive, duplicate), project handling, user and team operations, and advanced features like relations and subscriptions. There are no obvious gaps, and agents can perform full workflows without dead ends.

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

  • 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.
    713
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/wkoutre/linear-mcp-server'

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