mcpField
L
Linear MCP Server

Linear MCP Server

本地服务
github.com/magarcia版本控制183 周前更新

关于 Linear MCP Server

Linear MCP Server 将 LLM 连接到 Linear 工单系统,提供问题、团队、项目、标签、附件、关联和里程碑的查询与管理能力。

主要功能

  1. 01搜索、创建和更新问题
  2. 02管理评论与附件
  3. 03浏览团队和项目
  4. 04管理标签与里程碑
  5. 05读取问题和组织资源

适用场景

  1. 01按状态、负责人或优先级查找问题
  2. 02创建或修改 Linear 工单
  3. 03查看项目进度与里程碑
  4. 04添加评论或关联相关问题

MCP 相关

通过工具和资源向 MCP 客户端提供 Linear 数据及操作能力。需要 Linear 个人 API 密钥。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"linearapp": {
"command": "npx",
"args": [
"-y",
"@smithery/cli"
]
}
}
}
启动命令npx -y @smithery/cli

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@smithery/cli

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Linear MCP 服务

npm version smithery badge

一个用于 Linear API 的 Model Context Protocol 服务。

此服务通过 MCP 与 Linear 的问题跟踪系统集成,让大模型能够与 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"
      }
    }
  }
}

组件

工具
用户相关工具
  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(字符串):按项目状态筛选(例如,'completed'、'in progress')
    • 返回用户担任负责人或成员的项目列表
团队相关工具
  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 (string):按团队筛选项目
      • includeArchived (boolean):包含已归档项目
      • limit (number, default: 50):返回项目的最大数量
      • status (string):按项目状态筛选
  2. linear_get_project:获取特定项目的详细信息

    • 必需输入:
      • projectId (string):要获取详细信息的项目 ID
    • 返回项目的详细信息,包括进度、状态、团队、负责人和日期
  3. linear_get_project_issues:获取特定项目的问题

    • 必需输入:
      • projectId (string):要获取问题的项目 ID
    • 可选输入:
      • includeArchived (boolean):包含已归档问题
      • limit (number, default: 50):返回问题的最大数量
      • status (string):按问题状态筛选
      • priority (number):按优先级筛选
问题相关工具
  1. linear_create_issue:创建新的 Linear 问题

    • 必需输入:
      • title (string):问题标题
      • teamId (string):要在其中创建问题的团队 ID
    • 可选输入:
      • description (string):问题描述(支持 Markdown)
      • priority (number, 0-4):优先级(1=紧急,4=低)
      • status (string):初始状态名称
  2. linear_update_issue:更新现有问题

    • 必需输入:
      • id (string):要更新的问题 ID
    • 可选输入:
      • title (string):新标题
      • description (string):新描述
      • priority (number, 0-4):新优先级
      • status (string):新状态名称
  3. linear_search_issues:使用灵活的筛选条件搜索问题

    • 可选输入:
      • query (string):要在标题/描述中搜索的文本
      • teamId (string):按团队筛选
      • status (string):按状态筛选
      • assigneeId (string):按受派人筛选
      • labels (string[]):按标签筛选
      • priority (number):按优先级筛选
      • limit (number, default: 10):结果数量上限
  4. linear_add_comment:为问题添加评论

    • 必需输入:
      • issueId (string):要评论的问题 ID
      • body (string):评论内容(支持 Markdown)
    • 可选输入:
      • createAsUser (string):自定义用户名
      • displayIconUrl (string):自定义头像 URL
标签管理工具
  1. linear_get_labels:获取组织中的标签

    • 可选输入:
      • teamId (string):按团队筛选标签
      • includeArchived (boolean):包含已归档标签
      • limit (number, default: 50):返回标签的最大数量
  2. linear_create_label:创建新标签

    • 必需输入:
      • name (string):标签名称
      • teamId (string):要在其中创建标签的团队 ID
    • 可选输入:
      • color (string):颜色十六进制代码(例如,"#FF0000")
      • description (string):标签描述
  3. linear_update_label:更新现有标签

    • 必需输入:
      • id (string):要更新的标签 ID
    • 可选输入:
      • name (string):新标签名称
      • color (string):新的颜色十六进制代码
      • description (string):新描述
附件管理工具
  1. linear_add_attachment:为问题添加附件

    • 必需输入:
      • issueId (string):要添加附件的问题 ID
      • url (string):附件 URL
      • title (string):附件标题
    • 可选输入:
      • subtitle (string):附件副标题
      • icon (string):附件图标 URL
  2. linear_get_attachments:获取问题的附件

    • 必需输入:
      • issueId (string):要获取附件的问题 ID
问题关联工具
  1. linear_link_issues:创建问题之间的关联

    • 必需输入:
      • issueId(string):源问题 ID
      • relatedIssueId(string):目标问题 ID
      • type(string):关联类型(例如,“blocks”“related”“duplicate”)
  2. linear_get_issue_relations:获取问题的关联

    • 必需输入:
      • issueId(string):要获取关联的问题 ID
    • 可选输入:
      • type(string):按关联类型筛选
里程碑管理工具
  1. linear_get_milestones:获取项目的里程碑

    • 可选输入:
      • projectId(string):按项目筛选里程碑
      • includeArchived(boolean):包含已归档的里程碑
      • limit(number,默认值:50):要返回的里程碑数量上限
  2. linear_create_milestone:创建新里程碑

    • 必需输入:
      • name(string):里程碑名称
      • projectId(string):要在其中创建里程碑的项目 ID
      • targetDate(string):目标完成日期(ISO 格式)
    • 可选输入:
      • description(string):里程碑描述
      • sortOrder(number):里程碑列表中的位置
  3. linear_update_milestone:更新现有里程碑

    • 必需输入:
      • id(string):要更新的里程碑 ID
    • 可选输入:
      • name(string):新的里程碑名称
      • targetDate(string):新的目标日期
      • description(string):新的描述
      • status(string):新状态(例如,“planned”“inProgress”“completed”)
资源
  • 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 分析团队成员身份和角色

标签和分类
  • “为高优先级安全问题创建一个‘security’标签” → 使用 linear_create_label 创建一个设置适当的新标签

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

  • “将‘needs-documentation’标签应用到所有 API 问题” → 使用 linear_search_issues 查找 API 相关问题,然后使用 linear_update_issue 逐一更新

里程碑管理
  • “为 Beta 版本创建一个里程碑” → 使用 linear_create_milestone 创建一个带有目标日期的项目里程碑

  • “移动应用项目有哪些即将到来的里程碑?” → 使用项目 ID 调用 linear_get_milestones,查看计划的交付节点

  • “将 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 文件。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。