Skip to main content
Glama
magarcia

Linear MCP Server

by magarcia

线性 MCP 服务器

npm 版本 铁匠徽章

线性 API的模型上下文协议服务器。

该服务器通过 MCP 提供与 Linear 问题跟踪系统的集成,允许 LLM 与 Linear 问题进行交互。

安装

自动安装

要通过Smithery自动为 Claude Desktop 安装 Linear MCP 服务器:

npx @smithery/cli install mcp-server-linearapp --client claude

手动安装

  1. 创建或获取 Linear 个人 API 密钥: https://linear.app/settings/account/security

  2. 将服务器配置添加到 Claude Desktop:

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

{
  "mcpServers": {
    "linear": {
      "command": "npx",
      "args": ["-y", "mcp-server-linearapp"],
      "env": {
        "LINEAR_API_KEY": "your_linear_api_key_here"
      }
    }
  }
}

Related MCP server: Linear MCP Server

成分

工具

用户相关工具

  1. linear_get_viewer :获取有关经过身份验证的用户的信息

    • 无需输入

    • 返回用户个人资料信息,包括 ID、姓名、电子邮件和活动状态

  2. linear_get_user_issues :获取分配给用户的问题

    • 可选输入:

      • userId (字符串):用户 ID(对于已验证的用户可省略)

      • includeArchived (布尔值):包括存档问题

      • limit (数字,默认值:50):最大结果数

  3. linear_get_user_teams :获取与用户关联的团队

    • 可选输入:

      • userId (字符串):获取团队的用户 ID(对于经过身份验证的用户则省略)

      • includeArchived (布尔值):包括存档的团队

      • limit (数字,默认值:50):返回的最大团队数量

    • 返回用户所属团队的列表

  4. linear_get_user_projects :获取与用户关联的项目

    • 可选输入:

      • userId (字符串):获取项目的用户 ID(对于经过身份验证的用户则省略)

      • includeArchived (布尔值):包括存档项目

      • limit (数字,默认值:50):返回的最大项目数

      • status (字符串):按项目状态过滤(例如“已完成”、“进行中”)

    • 返回用户作为领导或成员的项目列表

团队相关工具

  1. linear_get_teams :获取组织中的团队

    • 可选输入:

      • includeArchived (布尔值):包括存档的团队

      • limit (数字,默认值:50):返回的最大团队数量

  2. linear_get_team :获取特定团队的详细信息

    • 必需输入:

      • teamId (字符串):获取详细信息的团队 ID

    • 返回团队信息,包括名称、密钥、成员和设置

  3. linear_get_team_issues :获取特定团队的问题

    • 必需输入:

      • teamId (字符串):获取问题的团队 ID

    • 可选输入:

      • includeArchived (布尔值):包括存档问题

      • limit (数字,默认值:50):返回的最大问题数

      • status (字符串):按问题状态过滤

      • priority (数字):按优先级过滤

      • assigneeId (字符串):按受让人过滤

项目相关工具

  1. linear_get_projects :获取组织中的项目

    • 可选输入:

      • teamId (字符串):按团队过滤项目

      • includeArchived (布尔值):包括存档项目

      • limit (数字,默认值:50):返回的最大项目数

      • status (字符串):按项目状态过滤

  2. linear_get_project :获取有关特定项目的详细信息

    • 必需输入:

      • projectId (字符串):获取详细信息的项目 ID

    • 返回详细的项目信息,包括进度、状态、团队、负责人和日期

  3. linear_get_project_issues :获取特定项目的问题

  • 必需输入:

    • projectId (字符串):获取问题的项目 ID

  • 可选输入:

    • includeArchived (布尔值):包括存档问题

    • limit (数字,默认值:50):返回的最大问题数

    • status (字符串):按问题状态过滤

    • priority (数字):按优先级过滤

问题相关工具

  1. linear_create_issue :创建一个新的线性问题

  • 必需输入:

    • title (字符串):问题标题

    • teamId (字符串):创建问题的团队 ID

  • 可选输入:

    • description (字符串):问题描述(支持 markdown)

    • priority (数字,0-4):优先级(1=紧急,4=低)

    • status (字符串):初始状态名称

  1. linear_update_issue :更新现有问题

  • 必需输入:

    • id (字符串):要更新的问题 ID

  • 可选输入:

    • title (字符串):新标题

    • description (字符串):新描述

    • priority (数字,0-4):新的优先级

    • status (字符串):新状态名称

  1. linear_search_issues :使用灵活过滤来搜索问题

  • 可选输入:

    • query (字符串):在标题/描述中搜索的文本

    • teamId (字符串):按团队过滤

    • status (字符串):按状态过滤

    • assigneeId (字符串):按受让人过滤

    • labels (string[]):按标签过滤

    • priority (数字):按优先级过滤

    • limit (数字,默认值:10):最大结果数

  1. linear_add_comment :向问题添加评论

  • 必需输入:

    • issueId (字符串):需要评论的问题 ID

    • body (字符串):评论文本(支持 markdown)

  • 可选输入:

    • createAsUser (字符串):自定义用户名

    • displayIconUrl (string): 自定义头像URL

标签管理工具

  1. linear_get_labels :获取组织中的标签

  • 可选输入:

    • teamId (字符串):按团队过滤标签

    • includeArchived (布尔值):包含存档标签

    • limit (数字,默认值:50):返回的最大标签数

  1. linear_create_label :创建新标签

  • 必需输入:

    • name (字符串):标签名称

    • teamId (字符串):要创建标签的团队 ID

  • 可选输入:

    • color (字符串):颜色十六进制代码(例如“#FF0000”)

    • description (字符串):标签描述

  1. linear_update_label :更新现有标签

  • 必需输入:

    • id (字符串):要更新的标签ID

  • 可选输入:

    • name (字符串):新标签名称

    • color (字符串):新的颜色十六进制代码

    • description (字符串):新描述

附件管理工具

  1. linear_add_attachment :向问题添加附件

  • 必需输入:

    • issueId (字符串):要添加附件的问题 ID

    • url (字符串):附件的 URL

    • title (字符串):附件的标题

  • 可选输入:

    • subtitle (字符串):附件的字幕

    • icon (字符串):附件的图标 URL

  1. linear_get_attachments :获取问题的附件

  • 必需输入:

    • issueId (string): 获取附件的问题 ID

问题关系工具

  1. linear_link_issues :创建问题之间的关系

  • 必需输入:

    • issueId (字符串):源问题 ID

    • relatedIssueId (字符串):目标问题ID

    • type (字符串):关系类型(例如,“blocks”、“related”、“duplicate”)

  1. linear_get_issue_relations :获取问题的关系

  • 必需输入:

    • issueId (字符串):获取关系的问题 ID

  • 可选输入:

    • type (字符串):按关系类型过滤

里程碑管理工具

  1. linear_get_milestones :获取项目的里程碑

  • 可选输入:

    • projectId (字符串):按项目过滤里程碑

    • includeArchived (布尔值):包括已存档的里程碑

    • limit (数字,默认值:50):返回的最大里程碑数量

  1. linear_create_milestone :创建一个新的里程碑

  • 必需输入:

    • name (字符串):里程碑名称

    • projectId (字符串):创建里程碑的项目 ID

    • targetDate (字符串):目标完成日期(ISO 格式)

  • 可选输入:

    • description (字符串):里程碑描述

    • sortOrder (数字):里程碑列表中的位置

  1. linear_update_milestone :更新现有里程碑

  • 必需输入:

    • id (字符串):要更新的里程碑 ID

  • 可选输入:

    • name (字符串):新里程碑名称

    • targetDate (字符串):新的目标日期

    • description (字符串):新描述

    • status (字符串):新状态(例如,“计划”、“进行中”、“已完成”)

资源

  • linear-issue:///{issueId} :查看单个问题的详细信息

    • 返回问题信息,包括标题、描述、评论和元数据

  • linear-team:///{teamId} :查看团队详细信息

    • 返回团队信息,包括名称、密钥、描述和成员

  • linear-team:///{teamId}/issues :查看团队问题

    • 返回特定团队的所有问题及其状态和优先级信息

  • linear-project:///{projectId} :查看项目详情

    • 返回项目信息,包括名称、描述、进度、状态、负责人、团队和时间表

  • linear-project:///{projectId}/issues :查看项目问题

    • 返回特定项目的所有问题及其状态和分配信息

  • linear-project:///{projectId}/milestones :查看项目里程碑

    • 返回特定项目的所有里程碑以及进度和状态信息

  • linear-user:///{userId}/assigned :查看用户分配的问题

    • 返回分配给特定用户的问题以及项目和团队上下文

  • linear-organization: :查看组织信息

    • 返回组织级信息,包括名称和设置

  • linear-viewer: :查看当前用户上下文

    • 返回有关已验证用户的信息

  • linear-viewer:///teams :查看经过身份验证的用户的团队

    • 返回当前用户所属的所有团队

  • linear-viewer:///projects :查看经过身份验证的用户的项目

    • 返回当前用户参与的所有项目(作为领导或成员)

  • linear-viewer:///assigned :查看分配给经过身份验证的用户的问题

    • 返回分配给当前用户的所有问题以及项目和团队上下文

  • linear-label:///{labelId} :查看标签详情

    • 返回标签信息,包括名称、颜色和相关问题

使用示例

以下是您可以使用 Claude Desktop 与 Linear 进行交互的示例提示:

问题管理

  • “为身份验证系统创建新的错误报告”→使用linear_create_issue创建具有适当详细信息的新问题

  • “将工单 FRONT-123 的优先级更新为紧急”→使用linear_update_issue修改现有问题的优先级

  • “向登录页面错误添加一条评论,解释根本原因”→使用linear_add_comment向现有问题添加信息

查找和过滤问题

  • “显示我所有高优先级问题”→使用linear_get_user_issues或linear-viewer:///assigned查找分配给您的高优先级问题

  • “查找所有正在进行的前端任务”→使用linear_search_issues来定位状态为“正在进行”的前端相关问题

  • “目前分配给 Sarah 的问题有哪些?” → 使用linear_get_user_issues和 Sarah 的 ID 查看她的分配情况

团队和项目管理

  • “我是哪些团队的成员?” → 使用linear_get_user_teams或linear-viewer:///teams列出经过身份验证的用户所属的所有团队

  • “显示我正在领导或参与的项目”→使用linear_get_user_projects或linear-viewer:///projects获取与当前用户相关的所有项目

  • “移动应用项目目前进展如何?” → 使用linear_get_project获取项目详细信息,包括进度

  • “列出前端团队的所有活跃项目”→结合linear_get_team查找团队 ID,并使用linear_get_projects与团队过滤器查找活跃项目

状态和工作量分析

  • “请提供计费系统问题的最新更新摘要”→使用linear_search_issues识别相关问题,然后使用linear-issue:///{issueId}获取问题详细信息

  • “移动团队目前的工作量是多少?” → 使用linear-team:///{teamId}/issues或linear_get_team_issues来分析整个团队的问题分布情况

  • “显示我在组织中的角色和职责”→使用linear_get_viewer和linear-viewer:///teams来分析团队成员和角色

标签和分类

  • “为高优先级安全问题创建‘安全’标签”→使用linear_create_label创建具有适当设置的新标签

  • “前端团队有哪些可用的标签?” → 使用linear_get_labels和前端团队 ID 查看可用的分类

  • “将‘需要文档’标签应用于所有 API 问题”→使用linear_search_issues查找与 API 相关的问题,然后使用linear_update_issue更新每个问题

里程碑管理

  • “为 Beta 版本创建里程碑”→使用linear_create_milestone设置项目里程碑和目标日期

  • “移动应用项目中即将实现哪些里程碑?” → 使用linear_get_milestones和项目 ID 查看计划交付点

  • “将 API v2 里程碑的状态更新为已完成”→使用linear_update_milestone更改里程碑状态

问题关系

  • “将问题 FRONT-123 标记为阻塞 API-456”→使用linear_link_issues在问题之间创建阻塞关系

  • “这个错误阻止了哪些问题?” → 使用linear_get_issue_relations查找依赖项

  • “显示与身份验证系统相关的所有问题”→使用带有适当过滤器的linear_search_issues ,然后使用linear_get_issue_relations探索关系

发展

  1. 安装依赖项:

npm install
  1. 在.env中配置 Linear API 密钥:

LINEAR_API_KEY=your_api_key_here
  1. 构建服务器:

npm run build

对于使用自动重建的开发:

npm run watch

执照

此 MCP 服务器采用 MIT 许可证。这意味着您可以自由使用、修改和分发该软件,但须遵守 MIT 许可证的条款和条件。更多详情,请参阅项目仓库中的 LICENSE 文件。

Available Tools

19 tools
linear_add_attachmentC

Add an attachment to an issue in Linear

NameRequiredDescriptionDefault
iconNoIcon URL for attachment
issueIdYesIssue ID to add attachment to
subtitleNoSubtitle for attachment
titleYesTitle of attachment
urlYesURL of attachment

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') but doesn't mention required permissions, whether this is a mutation operation, potential side effects, error conditions, or response format. This leaves significant gaps 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 unnecessary words. It's appropriately sized and front-loaded with the core functionality.

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 attachment addition, error handling, or behavioral context. Given the complexity of modifying issue data, more completeness 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%, so the schema already documents all 5 parameters thoroughly. The description adds no additional parameter information beyond what's in the schema, maintaining the baseline score of 3 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 an attachment') and target resource ('to an issue in Linear'), providing specific verb+resource pairing. However, it doesn't differentiate from sibling tools like linear_get_attachments or linear_update_issue, which would require explicit comparison for a score of 5.

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

Usage Guidelines2/5

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

No guidance is provided about when to use this tool versus alternatives. The description doesn't mention prerequisites, exclusions, or comparisons with sibling tools like linear_get_attachments (for viewing) or linear_update_issue (which might also handle attachments).

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

linear_add_commentC

Add a comment to a Linear issue

NameRequiredDescriptionDefault
bodyYesComment text (markdown supported)
createAsUserNoCustom username for the comment creator
displayIconUrlNoCustom avatar URL for the comment creator
issueIdYesIssue ID to comment on

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 comment') but doesn't describe what happens—whether this creates a permanent record, requires specific permissions, supports notifications, or has rate limits. For a mutation tool with zero annotation coverage, this leaves significant gaps in understanding the tool's behavior and implications.

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

Conciseness5/5

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

The description is a single, efficient sentence that front-loads the core purpose with zero wasted words. It directly answers 'what does this tool do?' without unnecessary elaboration, 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 operation with 4 parameters), lack of annotations, and no output schema, the description is incomplete. It doesn't address behavioral aspects like permissions, side effects, or response format, leaving the agent with insufficient context to use the tool effectively beyond basic parameter passing.

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 four parameters (issueId, body, createAsUser, displayIconUrl). The description adds no parameter-specific information beyond what's in the schema, such as examples or constraints. This meets the baseline of 3, as the schema handles the heavy lifting, 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 action ('Add a comment') and target resource ('to a Linear issue'), making the purpose immediately understandable. It distinguishes from siblings like linear_create_issue or linear_update_issue by focusing specifically on commenting. However, it doesn't explicitly differentiate from hypothetical similar tools like linear_update_comment (if it existed), keeping it at 4 rather than 5.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing an existing issue), exclusions, or comparisons to sibling tools like linear_update_issue (which might also allow commenting). The agent must infer usage from the tool name and schema alone.

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

linear_create_issueC

Create a new Linear issue

NameRequiredDescriptionDefault
assigneeIdNoUser ID to assign the issue to
descriptionNoIssue description (markdown supported)
priorityNoPriority level (0-4), where 0=no priority, 1=urgent, 4=low
statusNoInitial status name (e.g., 'Todo', 'In Progress')
teamIdYesTeam ID to create issue in
titleYesIssue title

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 only states the basic action ('Create a new Linear issue'). It doesn't mention authentication requirements, rate limits, what happens when creation fails, whether this is a mutating operation, or any side effects. For a creation 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, efficient sentence that gets straight to the point with zero waste. It's appropriately sized for a basic creation operation and front-loads 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?

For a creation tool with 6 parameters, no annotations, and no output schema, the description is inadequate. It doesn't explain what happens after creation, what the tool returns, error conditions, or how it differs from sibling tools. Given the complexity and lack of structured data, the description should provide more complete context.

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 6 parameters thoroughly. The description adds no additional parameter information beyond what's in the schema. According to the scoring rules, when schema coverage is high (>80%), the baseline is 3 even with no param info in the description.

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 'Create a new Linear issue' clearly states the verb ('Create') and resource ('Linear issue'), making the purpose immediately understandable. However, it doesn't distinguish this tool from its sibling 'linear_update_issue' or explain what differentiates creation from updating, 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 like 'linear_update_issue' or 'linear_search_issues'. There's no mention of prerequisites, constraints, or appropriate contexts for creating issues versus other operations, leaving the agent with minimal usage direction.

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

linear_create_labelC

Create a new label in Linear

NameRequiredDescriptionDefault
colorNoThe color for the label in hex format (e.g. "#FF0000")
descriptionNoA description for the label
nameYesThe name of the label
parentIdNoThe ID of a parent label to create a nested label
teamIdYesThe ID of the team to create the label 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 full burden for behavioral disclosure. It states 'Create' which implies a write/mutation operation, but doesn't mention permission requirements, whether creation is idempotent, error conditions, or what happens on success (e.g., returns label ID). 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 sized for a create operation and front-loaded with the essential action. Every word earns its place 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?

For a mutation tool with 5 parameters, no annotations, and no output schema, the description is inadequate. It doesn't explain what happens after creation (return value), permission requirements, error handling, or how it differs from sibling update_label. The 100% schema coverage helps with parameters, but behavioral and contextual gaps remain significant.

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 5 parameters (color, description, name, parentId, teamId) with clear descriptions. The description adds no parameter information beyond what's in the schema, meeting the baseline of 3 when schema coverage is high. No additional semantics are provided.

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

Purpose4/5

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

The description clearly states the action ('Create') and resource ('new label in Linear'), making the purpose immediately understandable. It distinguishes this from sibling tools like linear_get_labels (read) and linear_update_label (update), though it doesn't explicitly contrast with them. The description is specific but lacks explicit 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 prerequisites (e.g., needing team access), when not to use it (e.g., for updating existing labels), or refer to sibling tools like linear_update_label for modifications. Usage context is implied but not stated.

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

linear_get_attachmentsC

Get attachments for an issue in Linear

NameRequiredDescriptionDefault
issueIdYesIssue ID to get attachments 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 action but does not cover critical traits like whether this is a read-only operation, potential rate limits, authentication needs, or return format. This leaves significant gaps for a tool that interacts with external 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 unnecessary words. It is front-loaded and appropriately sized, 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 does not address behavioral aspects like safety, performance, or return values, which are crucial for a data retrieval tool. This leaves the agent with insufficient context to use the tool effectively beyond basic invocation.

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

Parameters3/5

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

The schema description coverage is 100%, with the single parameter 'issueId' fully documented in the schema. The description adds no additional meaning beyond what the schema provides, such as format examples or constraints, so it meets the baseline for high schema coverage without enhancing 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 action ('Get') and resource ('attachments for an issue'), making the purpose understandable. However, it does not differentiate from siblings like linear_get_issue_relations or linear_get_labels, which also retrieve issue-related data, so it lacks specificity for 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 linear_search_issues for broader queries or linear_get_issue_relations for related data. It implies usage by specifying the resource but offers no explicit context or exclusions.

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

linear_get_issue_relationsC

Get relationships for an issue in Linear

NameRequiredDescriptionDefault
issueIdYesIssue ID to get relationships for
typeNoFilter by relationship type

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 information. It implies a read-only operation ('Get'), but doesn't specify whether it requires authentication, returns paginated results, includes rate limits, or what the output format looks like (e.g., list of related issues with metadata). This leaves significant gaps for a tool that likely interacts with external 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, direct sentence with zero wasted words. It front-loads the core purpose ('Get relationships for an issue') efficiently, making it easy to parse quickly 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 of fetching relational data (likely involving structured outputs) and the absence of both annotations and an output schema, the description is insufficient. It doesn't explain what 'relationships' entail (e.g., linked issues, dependencies), the return format, or error conditions, leaving the agent under-informed for a tool with potential nuanced behavior.

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

Parameters3/5

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

The input schema has 100% description coverage, clearly documenting both parameters ('issueId' and 'type'). The description adds no additional semantic context beyond what the schema provides, such as examples of relationship types or how the filtering works. 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') and resource ('relationships for an issue'), making the purpose immediately understandable. However, it doesn't differentiate this tool from potential sibling tools like 'linear_link_issues' (which might create relationships) or 'linear_get_issue' (which might get issue details without relationships), leaving room for ambiguity about its unique role.

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 issue ID), exclusions, or how it compares to sibling tools like 'linear_search_issues' or 'linear_get_issue', leaving the agent to infer usage context 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_get_labelsB

Get labels from Linear, optionally filtered by team

NameRequiredDescriptionDefault
includeArchivedNoWhether to include archived labels
limitNoMaximum number of labels to return
teamIdNoFilter labels by team ID

TDQS

B3.3/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 but only states the basic operation. It doesn't disclose behavioral traits like whether this is a read-only operation, if it requires authentication, rate limits, pagination behavior, or what happens when no labels match. The phrase 'Get labels' implies a read operation, but lacks details on permissions, error conditions, or response format.

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. Every word earns its place: 'Get labels from Linear' establishes the action and resource, while 'optionally filtered by team' adds necessary scope information without redundancy.

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

Completeness3/5

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

For a simple read operation with 3 well-documented parameters and no output schema, the description is minimally adequate. However, without annotations or output schema, it should ideally provide more context about the return format (e.g., list of label objects), authentication requirements, or error handling to help the 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%, so the schema fully documents all three parameters (includeArchived, limit, teamId). The description adds minimal value beyond the schema by mentioning 'optionally filtered by team' which corresponds to the teamId parameter, but doesn't provide additional context about parameter interactions or usage patterns.

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 ('labels from Linear') with an optional scope ('optionally filtered by team'). It distinguishes from siblings like linear_create_label (create vs get) and linear_get_teams (labels vs teams), though it doesn't explicitly differentiate from other 'get' tools like linear_get_attachments or linear_get_projects.

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

Usage Guidelines3/5

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

The description implies usage for retrieving labels with optional team filtering, but doesn't provide explicit guidance on when to use this tool versus alternatives like linear_get_teams or linear_get_projects. No exclusions or prerequisites are mentioned, leaving the agent to infer context from the tool name and sibling list.

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

linear_get_projectC

Get details about a specific project

NameRequiredDescriptionDefault
projectIdYesProject ID to get details 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 it 'gets details,' implying a read-only operation, but doesn't specify what details are returned, potential errors (e.g., invalid project ID), authentication needs, rate limits, or data format. 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 with no wasted words. It's front-loaded with the core action and resource, 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.

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 read operation with one parameter) and lack of annotations and output schema, the description is incomplete. It doesn't explain what 'details' include, potential response structures, or error handling, leaving the agent with insufficient context for effective 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 single parameter 'projectId' clearly documented. The description adds no additional meaning beyond the schema, such as format examples or context about where to obtain the ID. This meets the baseline of 3 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 verb ('Get') and resource ('details about a specific project'), making the purpose understandable. However, it doesn't explicitly differentiate from sibling tools like 'linear_get_projects' (plural) or 'linear_get_project_issues', which might retrieve related but different data.

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 a project ID), exclusions, or comparisons to siblings like 'linear_get_projects' for listing projects or 'linear_get_project_issues' for project-specific issues.

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

linear_get_project_issuesC

Get issues for a specific project

NameRequiredDescriptionDefault
includeArchivedNoInclude archived issues
limitNoMaximum number of issues to return (default: 50)
priorityNoFilter by priority level (0-4), where 0=no priority, 1=urgent, 4=low
projectIdYesProject ID to get issues for
statusNoFilter by issue status name

TDQS

C2.7/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 but discloses minimal behavioral traits. It doesn't mention whether this is a read-only operation, if it requires authentication, rate limits, pagination behavior, or what the return format looks like. 'Get' implies a read operation, but no further details are given.

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 wasted words. It's appropriately sized for a simple retrieval tool and front-loads the core purpose immediately.

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 tool with 5 parameters, no annotations, and no output schema, the description is incomplete. It doesn't explain what 'issues' are in this context, how results are structured, or provide any behavioral context beyond the basic verb. The agent must rely entirely on the input schema for parameter details.

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 5 parameters. The description adds no additional meaning beyond implying project-scoped filtering, which is already covered by the 'projectId' parameter in the schema. Baseline 3 is appropriate when 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 'Get issues for a specific project' clearly states the verb ('Get') and resource ('issues'), but it's vague about scope and doesn't distinguish from siblings like 'linear_get_team_issues' or 'linear_search_issues'. It doesn't specify whether this returns all issues, filtered issues, or paginated results.

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_get_team_issues' (for team-scoped issues) or 'linear_search_issues' (for broader searches). The description implies project-specific retrieval but offers no explicit comparison or exclusion criteria.

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

linear_get_projectsC

Get projects in the organization

NameRequiredDescriptionDefault
includeArchivedNoInclude archived projects
limitNoMaximum number of projects to return (default: 50)
statusNoFilter by project status (e.g., 'completed', 'in progress')
teamIdNoFilter projects by team ID

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 a read operation ('Get'), implying it's non-destructive, but doesn't cover critical aspects like authentication requirements, rate limits, pagination behavior (beyond the limit parameter), error handling, or return format. This leaves significant gaps for a tool with 4 parameters and no output schema.

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 wasted words. It's front-loaded with the core purpose and appropriately sized for a straightforward list tool, 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 (4 parameters, no annotations, no output schema), the description is inadequate. It doesn't explain what 'projects' entail in this context, how results are structured, or any behavioral constraints. For a list operation with filtering options, more context on output and usage would be necessary for an agent to use it 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 input schema has 100% description coverage, so parameters like includeArchived, limit, status, and teamId are well-documented in the schema itself. The description adds no additional parameter semantics beyond implying a list operation, which is already clear from the name and schema. 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 'Get projects in the organization' clearly states the verb ('Get') and resource ('projects'), with scope ('in the organization') that distinguishes it from sibling tools like linear_get_project (singular) or linear_get_team_issues. However, it doesn't explicitly differentiate from other list tools like linear_get_teams or linear_get_labels, which follow a similar pattern.

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. For example, it doesn't mention when to choose linear_get_projects over linear_get_project_issues or linear_get_team_issues, nor does it specify prerequisites or typical use cases. The agent must infer usage from the 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.

linear_get_teamB

Get details about a specific team

NameRequiredDescriptionDefault
teamIdYesTeam ID to get details for

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 'Get details' but doesn't clarify if this is a read-only operation, what permissions are required, error handling, 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 with zero waste. It's appropriately sized for a simple lookup tool and front-loaded with the core purpose, making it easy to parse 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 low complexity (one parameter, no output schema, no annotations), the description is minimally adequate but lacks completeness. It doesn't address behavioral aspects like safety or response format, which are important for an agent to use it correctly despite the simple 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 the single parameter 'teamId' well-documented in the schema. The description doesn't add any meaning beyond what the schema provides (e.g., format examples or constraints), so it meets the baseline for high schema coverage without compensation.

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 ('details about a specific team'), making the purpose unambiguous. However, it doesn't differentiate from sibling tools like 'linear_get_teams' (plural) or 'linear_get_team_issues', which might cause confusion 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?

No guidance is provided on when to use this tool versus alternatives. The description doesn't mention prerequisites, when-not-to-use scenarios, or comparisons to sibling tools like 'linear_get_teams' or 'linear_get_team_issues', 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_get_team_issuesC

Get issues for a specific team

NameRequiredDescriptionDefault
assigneeIdNoFilter by assignee ID
includeArchivedNoInclude archived issues
limitNoMaximum number of issues to return (default: 50)
priorityNoFilter by priority level (0-4), where 0=no priority, 1=urgent, 4=low
statusNoFilter by issue status name
teamIdYesTeam ID to get issues for

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 issues') but doesn't describe whether this is a read-only operation, how results are returned (e.g., pagination, sorting), rate limits, or authentication needs. For a tool with 6 parameters and 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 ('Get issues for a specific team') that is front-loaded and wastes no words. It directly conveys the core purpose without unnecessary elaboration, making it highly concise and well-structured.

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

Completeness2/5

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

Given the complexity of a tool with 6 parameters, no annotations, and no output schema, the description is incomplete. It doesn't explain return values, behavioral traits like pagination or sorting, or how to handle errors. For a read operation with filtering options, more context is needed to guide effective 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, providing clear documentation for all 6 parameters (e.g., 'Filter by assignee ID', 'Include archived issues'). The description adds no additional parameter semantics beyond the schema, so it meets the baseline of 3 where the schema does the heavy lifting without compensating 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 verb ('Get') and resource ('issues for a specific team'), making the purpose immediately understandable. However, it doesn't differentiate from similar sibling tools like 'linear_get_user_issues' or 'linear_get_project_issues', which also retrieve issues but with different scopes, 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 sibling tools like 'linear_get_user_issues' for user-specific issues or 'linear_get_project_issues' for project-specific issues, nor does it specify prerequisites such as needing a team ID. This leaves the agent without clear usage context.

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

linear_get_teamsC

Get teams in the organization

NameRequiredDescriptionDefault
includeArchivedNoInclude archived teams
limitNoMaximum number of teams to return (default: 50)

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 mentions 'Get teams' but doesn't specify whether this is a read-only operation, if it requires authentication, what the return format is, or if there are rate limits. For a tool with zero annotation coverage, this leaves significant behavioral aspects undocumented.

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 wasted words. It's front-loaded with the core purpose and appropriately sized for a simple retrieval 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 lack of annotations and output schema, the description is incomplete. It doesn't explain what 'teams' means in this context, what data is returned, or how results are structured. For a tool with no structured output documentation, the description should provide more context about the return values.

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 both parameters (includeArchived and limit). The description adds no additional parameter information beyond what's already in the schema, which meets the baseline expectation when schema coverage is high.

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 'teams in the organization', making the purpose immediately understandable. It doesn't differentiate from sibling tools like 'linear_get_team' (singular) or 'linear_get_projects', but the core 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?

No guidance is provided on when to use this tool versus alternatives like 'linear_get_team' (singular) or other team-related operations. The description only states what it does, not when it's appropriate or what prerequisites might exist.

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

linear_get_user_issuesC

Get issues assigned to a user

NameRequiredDescriptionDefault
includeArchivedNoInclude archived issues
limitNoMaximum number of issues to return (default: 50)
userIdNoUser ID (omit for authenticated user)

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 mentions 'Get issues' but does not specify if this is a read-only operation, what permissions are needed, how pagination works (implied by 'limit' but not explained), or error handling. This is a significant gap for a tool with parameters and no output schema.

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 is front-loaded and directly states the tool's purpose, 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 complexity of fetching user issues with parameters and no output schema, the description is incomplete. It lacks details on return format, error cases, authentication needs, and how it differs from sibling tools, making it inadequate for full contextual understanding.

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 all parameters in the input schema. The description does not add any extra meaning beyond the schema, such as explaining parameter interactions or default behaviors, so it meets the baseline for high coverage without compensation.

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 'issues assigned to a user', which is specific and actionable. However, it does not explicitly differentiate from sibling tools like 'linear_get_project_issues' or 'linear_get_team_issues', which also retrieve issues but with different scopes, so it lacks 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 such as 'linear_search_issues' or other issue-fetching siblings. It lacks context on prerequisites, exclusions, or comparisons, leaving the agent to infer usage based on the name alone.

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

linear_get_viewerB

Get information about the authenticated user

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 it 'gets information' but doesn't specify what type of information (e.g., profile details, permissions), whether it requires authentication (implied by 'authenticated user' but not explicit), or any rate limits or error conditions. This leaves significant gaps 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, clear sentence with no wasted words. It's front-loaded with the core purpose ('Get information about the authenticated user') and doesn't include extraneous details, making it highly efficient and well-structured.

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

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 is returned (e.g., user ID, name, email) or any behavioral aspects like authentication requirements. For a tool with no structured data to supplement it, this leaves the agent with insufficient context to use it effectively.

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 appropriately doesn't mention parameters, which is correct for a parameterless tool. This meets the baseline of 4 for zero parameters, as it avoids unnecessary detail.

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 authenticated user'), making the purpose specific and understandable. However, it doesn't distinguish this from potential sibling tools like 'linear_get_user_issues' or 'linear_get_team' that might also involve user information, so it doesn't fully differentiate from all siblings.

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_get_user_issues' that might retrieve user-related data, there's no indication of when this tool is preferred (e.g., for profile info vs. issue lists) or any prerequisites for usage.

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

linear_search_issuesC

Search issues in Linear with flexible filtering

NameRequiredDescriptionDefault
includeArchivedNoInclude archived issues
limitNoMaximum number of issues to return (default: 10)
queryNoText to search in title/description

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 mentions 'flexible filtering' but doesn't explain what that entails—whether it supports complex queries, pagination, sorting, or error handling. For a search tool with zero annotation coverage, this leaves significant gaps in understanding how the tool behaves 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, efficient sentence that directly states the tool's purpose. There's no wasted verbiage or redundancy. It's appropriately sized and front-loaded, making it easy to grasp immediately.

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 no annotations and no output schema, the description is insufficient. It doesn't explain return values, error conditions, or the scope of 'flexible filtering'. For a tool that likely returns structured data, more context is needed to help an agent use it 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?

Schema description coverage is 100%, so all parameters are documented in the schema. The description adds no additional information about parameters beyond what's in the schema (e.g., it doesn't clarify 'flexible filtering' in relation to the 'query' parameter). This meets the baseline for high schema coverage but 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 ('Search') and resource ('issues in Linear'), making the purpose immediately understandable. However, it doesn't differentiate this tool from sibling tools like 'linear_get_team_issues' or 'linear_get_project_issues', which appear to be more specific search variants. The term 'flexible filtering' is somewhat vague but still conveys the core functionality.

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_get_team_issues' or 'linear_get_project_issues'. It doesn't mention prerequisites, limitations, or typical use cases. The phrase 'flexible filtering' implies broad applicability but offers no concrete usage context.

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

linear_update_issueC

Update an existing Linear issue

NameRequiredDescriptionDefault
assigneeIdNoUser ID to assign the issue to
descriptionNoNew issue description (markdown supported)
dueDateNoNew due date
issueIdYesIssue ID to update
priorityNoNew priority level (0-4), where 0=no priority, 1=urgent, 4=low
stateIdNoNew state ID
teamIdNoNew team ID
titleNoNew issue title

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 Linear issue' implies a mutation operation but doesn't specify required permissions, whether changes are reversible, rate limits, or what happens to unspecified fields (partial vs. full updates). This leaves 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 with zero wasted words. It's appropriately sized for a tool with comprehensive schema documentation and gets straight to the point 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 8 parameters, no annotations, and no output schema, the description is insufficient. It doesn't address behavioral aspects like permissions, side effects, or response format. While the schema covers parameters well, the overall context for safe and effective use 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%, providing clear documentation for all 8 parameters. The description adds no parameter-specific information beyond what's in the schema, so it meets the baseline of 3. It doesn't compensate for any gaps since there are none in 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 action ('Update') and resource ('an existing Linear issue'), making the purpose immediately understandable. It distinguishes from siblings like linear_create_issue (creation vs. update) and linear_update_label (different resource type). However, it doesn't specify what aspects can be updated, 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 (e.g., needing an existing issue ID), contrast with linear_create_issue for new issues, or specify scenarios where updates are appropriate versus other operations like adding comments or attachments.

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

linear_update_labelC

Update an existing label in Linear

NameRequiredDescriptionDefault
archivedNoWhether to archive the label
colorNoThe new color for the label in hex format (e.g. "#FF0000")
descriptionNoThe new description for the label
labelIdYesThe ID of the label to update
nameNoThe new name for the label
parentIdNoThe ID of a new parent label

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 but only states the basic action ('Update an existing label'). It doesn't disclose behavioral traits like required permissions, whether updates are reversible, rate limits, error conditions, or what happens to unspecified fields (partial vs. full updates). 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 wasted words. It's front-loaded with the core action and resource, making it easy to parse quickly. 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 inadequate. It doesn't cover behavioral aspects (permissions, side effects), usage context, or return values. Given the complexity of updating a label with multiple fields and sibling tools available, more completeness 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%, so the schema fully documents all 6 parameters. The description adds no parameter-specific information beyond what's in the schema (e.g., it doesn't explain relationships between parameters like parentId hierarchy or color format validation). 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 verb ('Update') and resource ('an existing label in Linear'), making the purpose unambiguous. It distinguishes from sibling tools like 'linear_create_label' (create vs. update) and 'linear_get_labels' (read vs. update), though it doesn't explicitly mention these distinctions in the description itself.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like 'linear_create_label' for new labels or 'linear_get_labels' for viewing labels. It also doesn't mention prerequisites (e.g., needing labelId) or contextual constraints, leaving usage entirely implicit.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 19 tool updatesv1.0.0
    • First observedlinear_add_attachment
    • First observedlinear_add_comment
    • First observedlinear_create_issue
    • First observedlinear_create_label
    • First observedlinear_get_attachments
    • First observedlinear_get_issue_relations
    • First observedlinear_get_labels
    • First observedlinear_get_project
    • First observedlinear_get_project_issues
    • First observedlinear_get_projects
    • First observedlinear_get_team
    • First observedlinear_get_team_issues
    • First observedlinear_get_teams
    • First observedlinear_get_user_issues
    • First observedlinear_get_viewer
    • First observedlinear_link_issues
    • First observedlinear_search_issues
    • First observedlinear_update_issue
    • First observedlinear_update_label

TDQS

A3.5/5.0

Scored across 19 tools

Disambiguation5/5

Every tool has a clearly distinct purpose targeting specific resources and actions in Linear's domain. For example, linear_get_team_issues retrieves issues for a team, while linear_get_user_issues gets issues assigned to a user, and linear_search_issues allows flexible filtering across all issues. No tools appear to overlap or cause confusion.

Naming Consistency5/5

All tools follow a consistent 'linear_verb_noun' pattern with snake_case throughout. The verbs are clear and appropriate (e.g., get, create, update, add, link, search), and the nouns specify the target resource (e.g., issue, label, project, team). This predictability makes the tool set easy to navigate.

Tool Count5/5

With 19 tools, this server is well-scoped for managing Linear's core entities like issues, projects, teams, labels, and attachments. Each tool earns its place by covering essential CRUD operations and queries without redundancy, fitting the typical range of 3-15 tools for a comprehensive API integration.

Completeness5/5

The tool surface provides complete coverage for Linear's domain, including CRUD for issues and labels, attachment and comment management, relationship linking, and queries for projects, teams, and users. There are no obvious gaps; agents can perform full lifecycle operations without dead ends.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    F
    maintenance
    A Model Context Protocol server that integrates with Linear's issue tracking system, allowing LLMs to create, update, search, and comment on Linear issues through natural language interactions.
    1,052 npm
    346
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    A Model Context Protocol server that integrates with Linear, enabling AI assistants to create, update, search, and comment on issues for project management and issue tracking.
    5
    6
    Apache 2.0
  • F
    license
    B
    quality
    D
    maintenance
    A server that enables AI assistants to interact with Linear's project management tools through the Model Context Protocol, supporting features like searching, creating, and updating issues, adding comments, and retrieving user profiles and team information.
    9
    1
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    A Model Context Protocol server implementation that enables AI assistants to interact with Linear project management systems, allowing them to create, retrieve, and modify data related to issues, projects, teams, and users.
    16 npm
    3
    MIT