Linear问题跟踪集成服务

通过Model Context Protocol(MCP)服务器实现与Linear问题跟踪系统的集成,允许LLMs与Linear问题进行交互。

  • by magarcia
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 magarcia/mcp-server-linearapp

使用说明

线性MCP服务器

A. 模型上下文协议 服务器 线性API.

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

安装

自动安装

通过以下方式自动安装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 (string):用户ID(对于经过身份验证的用户省略)
      • includeArchived (boolean):包括已存档的问题
      • limit (数字,默认值:50):最大结果
  3. linear_get_user_teams:获取与用户关联的团队

    • 可选输入:
      • userId (string):获取团队的用户ID(对于经过身份验证的用户省略)
      • includeArchived (boolean):包括已存档的团队
      • limit (数字,默认值:50):返回的最大团队数量
    • 返回用户所属团队的列表
  4. linear_get_user_projects:获取与用户关联的项目

    • 可选输入:
      • userId (string):要获取项目的用户ID(对于经过身份验证的用户省略)
      • includeArchived (boolean):包括已存档的项目
      • limit (数字,默认值:50):要返回的最大项目数
      • status (string):按项目状态筛选(例如,“已完成”、“正在进行”)
    • 返回用户作为潜在客户或成员的项目列表

团队相关工具

  1. linear_get_teams:在组织中组建团队

    • 可选输入:
      • includeArchived (boolean):包括已存档的团队
      • limit (数字,默认值:50):返回的最大团队数量
  2. linear_get_team:获取特定团队的详细信息

    • 所需输入:
      • teamId (string):用于获取详细信息的团队ID
    • 返回团队信息,包括名称、密钥、成员和设置
  3. linear_get_team_issues:为特定团队获取问题

    • 所需输入:
      • teamId (string):用于获取问题的团队ID
    • 可选输入:
      • includeArchived (boolean):包括已存档的问题
      • limit (数字,默认值:50):要返回的最大问题数
      • status (string):按问题状态筛选
      • priority (数字):按优先级筛选
      • assigneeId (string):按受让人筛选

项目相关工具

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

    • 可选输入:
      • teamId (string):按团队筛选项目
      • includeArchived (boolean):包括已存档的项目
      • limit (数字,默认值:50):要返回的最大项目数
      • status (string):按项目状态筛选
  2. linear_get_project:获取特定项目的详细信息

    • 所需输入:
      • projectId (string):用于获取详细信息的项目ID
    • 返回详细的项目信息,包括进度、状态、团队、潜在客户和日期
  3. linear_get_project_issues:获取特定项目的问题

    • 所需输入:
      • projectId (string):用于获取问题的项目ID
    • 可选输入:
      • includeArchived (boolean):包括已存档的问题
      • limit (数字,默认值:50):要返回的最大问题数
      • status (string):按问题状态筛选
      • priority (数字):按优先级筛选

问题相关工具

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

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

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

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

    • 所需输入:
      • issueId (string):要评论的问题ID
      • body (string):注释文本(支持markdown)
    • 可选输入:
      • createAsUser (string):自定义用户名
      • displayIconUrl (字符串):自定义头像URL

标签管理工具

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

    • 可选输入:
      • teamId (string):按团队筛选标签
      • includeArchived (boolean):包括存档标签
      • limit (数字,默认值: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):关系类型(例如,“块”、“相关”、“重复”)
  2. linear_get_issue_relations:为某个问题建立关系

    • 所需输入:
      • issueId (string):用于获取关系的问题ID
    • 可选输入:
      • type (string):按关系类型筛选

里程碑管理工具

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

    • 可选输入:
      • projectId (string):按项目筛选里程碑
      • includeArchived (布尔值):包括存档的里程碑
      • limit (数字,默认值:50):要返回的最大里程碑数
  2. linear_create_milestone:创建新的里程碑

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

    • 所需输入:
      • id (字符串):要更新的里程碑ID
    • 可选输入:
      • name (string):新里程碑名称
      • targetDate (字符串):新的目标日期
      • description (string):新描述
      • status (string):新状态(例如,“计划中”、“进行中”和“已完成”)

资源

  • 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交互的示例提示:

问题管理

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

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

  • “在登录页面错误中添加注释,解释根本原因”→ use linear_add_comment 向现有问题添加信息

查找和筛选问题

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

  • “查找所有正在进行的前端任务”→ use linear_search_issues 查找状态为“进行中”的前端相关问题

  • “目前分配给Sarah的问题是什么?”→ use linear_get_user_issues 使用Sarah的身份证查看她的作业

团队和项目管理

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

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

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

  • “列出前端团队的所有活动项目”→ 结合 linear_get_team 查找团队ID和 linear_get_projects 使用团队筛选器查找活动项目

状态和工作量分析

  • “给我一份关于计费系统问题的最新更新摘要”→ use linear_search_issues 确定相关问题,然后 linear-issue:///{issueId} 获取问题详细信息

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

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

标签和分类

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

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

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

里程碑管理

  • “为测试版创建里程碑”→ use linear_create_milestone 设定一个具有目标日期的项目里程碑

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

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

问题关系

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

  • “这个bug阻止了哪些问题?”→ use linear_get_issue_relations 查找依赖关系

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

发展

  1. 安装依赖项:
npm install
  1. 在中配置线性API密钥 .env:
LINEAR_API_KEY=your_api_key_here
  1. 构建服务器:
npm run build

对于自动重建的开发:

npm run watch

许可证

此MCP服务器根据MIT许可证获得许可。这意味着您可以根据MIT许可证的条款和条件自由使用、修改和分发软件。有关更多详细信息,请参阅项目存储库中的LICENSE文件。