关于 Linear MCP Server
Linear MCP Server 将 LLM 连接到 Linear 工单系统,提供问题、团队、项目、标签、附件、关联和里程碑的查询与管理能力。
主要功能
- 01搜索、创建和更新问题
- 02管理评论与附件
- 03浏览团队和项目
- 04管理标签与里程碑
- 05读取问题和组织资源
适用场景
- 01按状态、负责人或优先级查找问题
- 02创建或修改 Linear 工单
- 03查看项目进度与里程碑
- 04添加评论或关联相关问题
MCP 相关
通过工具和资源向 MCP 客户端提供 Linear 数据及操作能力。需要 Linear 个人 API 密钥。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Linear MCP 服务
一个用于 Linear API 的 Model Context Protocol 服务。
此服务通过 MCP 与 Linear 的问题跟踪系统集成,让大模型能够与 Linear 中的问题交互。
安装
自动安装
通过 Smithery 为 Claude Desktop 自动安装 Linear MCP 服务:
npx @smithery/cli install mcp-server-linearapp --client claude
手动安装
-
创建或获取 Linear 个人 API 密钥:https://linear.app/settings/account/security
-
将服务配置添加到 Claude Desktop:
- MacOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- MacOS:
{
"mcpServers": {
"linear": {
"command": "npx",
"args": ["-y", "mcp-server-linearapp"],
"env": {
"LINEAR_API_KEY": "your_linear_api_key_here"
}
}
}
}
组件
工具
用户相关工具
-
linear_get_viewer:获取已认证用户的信息- 无需输入
- 返回用户个人资料信息,包括 ID、姓名、邮箱和活跃状态
-
linear_get_user_issues:获取分配给用户的问题- 可选输入:
userId(字符串):用户 ID(若为已认证用户,可省略)includeArchived(布尔值):是否包含已归档的问题limit(数字,默认值:50):结果数量上限
- 可选输入:
-
linear_get_user_teams:获取与用户关联的团队- 可选输入:
userId(字符串):要获取其团队的用户 ID(若为已认证用户,可省略)includeArchived(布尔值):是否包含已归档的团队limit(数字,默认值:50):返回的团队数量上限
- 返回用户所属团队的列表
- 可选输入:
-
linear_get_user_projects:获取与用户关联的项目- 可选输入:
userId(字符串):要获取其项目的用户 ID(若为已认证用户,可省略)includeArchived(布尔值):是否包含已归档的项目limit(数字,默认值:50):返回的项目数量上限status(字符串):按项目状态筛选(例如,'completed'、'in progress')
- 返回用户担任负责人或成员的项目列表
- 可选输入:
团队相关工具
-
linear_get_teams:获取组织中的团队- 可选输入:
includeArchived(布尔值):是否包含已归档的团队limit(数字,默认值:50):返回的团队数量上限
- 可选输入:
-
linear_get_team:获取特定团队的详细信息- 必填输入:
teamId(字符串):要获取详细信息的团队 ID
- 返回团队信息,包括名称、键、成员和设置
- 必填输入:
-
linear_get_team_issues:获取特定团队的问题- 必填输入:
teamId(字符串):要获取问题的团队 ID
- 可选输入:
includeArchived(布尔值):是否包含已归档的问题limit(数字,默认值:50):返回的问题数量上限status(字符串):按问题状态筛选priority(数字):按优先级筛选assigneeId(字符串):按受指派人筛选
- 必填输入:
项目相关工具
-
linear_get_projects:获取组织中的项目- 可选输入:
teamId(string):按团队筛选项目includeArchived(boolean):包含已归档项目limit(number, default: 50):返回项目的最大数量status(string):按项目状态筛选
- 可选输入:
-
linear_get_project:获取特定项目的详细信息- 必需输入:
projectId(string):要获取详细信息的项目 ID
- 返回项目的详细信息,包括进度、状态、团队、负责人和日期
- 必需输入:
-
linear_get_project_issues:获取特定项目的问题- 必需输入:
projectId(string):要获取问题的项目 ID
- 可选输入:
includeArchived(boolean):包含已归档问题limit(number, default: 50):返回问题的最大数量status(string):按问题状态筛选priority(number):按优先级筛选
- 必需输入:
问题相关工具
-
linear_create_issue:创建新的 Linear 问题- 必需输入:
title(string):问题标题teamId(string):要在其中创建问题的团队 ID
- 可选输入:
description(string):问题描述(支持 Markdown)priority(number, 0-4):优先级(1=紧急,4=低)status(string):初始状态名称
- 必需输入:
-
linear_update_issue:更新现有问题- 必需输入:
id(string):要更新的问题 ID
- 可选输入:
title(string):新标题description(string):新描述priority(number, 0-4):新优先级status(string):新状态名称
- 必需输入:
-
linear_search_issues:使用灵活的筛选条件搜索问题- 可选输入:
query(string):要在标题/描述中搜索的文本teamId(string):按团队筛选status(string):按状态筛选assigneeId(string):按受派人筛选labels(string[]):按标签筛选priority(number):按优先级筛选limit(number, default: 10):结果数量上限
- 可选输入:
-
linear_add_comment:为问题添加评论- 必需输入:
issueId(string):要评论的问题 IDbody(string):评论内容(支持 Markdown)
- 可选输入:
createAsUser(string):自定义用户名displayIconUrl(string):自定义头像 URL
- 必需输入:
标签管理工具
-
linear_get_labels:获取组织中的标签- 可选输入:
teamId(string):按团队筛选标签includeArchived(boolean):包含已归档标签limit(number, default: 50):返回标签的最大数量
- 可选输入:
-
linear_create_label:创建新标签- 必需输入:
name(string):标签名称teamId(string):要在其中创建标签的团队 ID
- 可选输入:
color(string):颜色十六进制代码(例如,"#FF0000")description(string):标签描述
- 必需输入:
-
linear_update_label:更新现有标签- 必需输入:
id(string):要更新的标签 ID
- 可选输入:
name(string):新标签名称color(string):新的颜色十六进制代码description(string):新描述
- 必需输入:
附件管理工具
-
linear_add_attachment:为问题添加附件- 必需输入:
issueId(string):要添加附件的问题 IDurl(string):附件 URLtitle(string):附件标题
- 可选输入:
subtitle(string):附件副标题icon(string):附件图标 URL
- 必需输入:
-
linear_get_attachments:获取问题的附件- 必需输入:
issueId(string):要获取附件的问题 ID
- 必需输入:
问题关联工具
-
linear_link_issues:创建问题之间的关联- 必需输入:
issueId(string):源问题 IDrelatedIssueId(string):目标问题 IDtype(string):关联类型(例如,“blocks”“related”“duplicate”)
- 必需输入:
-
linear_get_issue_relations:获取问题的关联- 必需输入:
issueId(string):要获取关联的问题 ID
- 可选输入:
type(string):按关联类型筛选
- 必需输入:
里程碑管理工具
-
linear_get_milestones:获取项目的里程碑- 可选输入:
projectId(string):按项目筛选里程碑includeArchived(boolean):包含已归档的里程碑limit(number,默认值:50):要返回的里程碑数量上限
- 可选输入:
-
linear_create_milestone:创建新里程碑- 必需输入:
name(string):里程碑名称projectId(string):要在其中创建里程碑的项目 IDtargetDate(string):目标完成日期(ISO 格式)
- 可选输入:
description(string):里程碑描述sortOrder(number):里程碑列表中的位置
- 必需输入:
-
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查看关联关系
开发
- 安装依赖项:
npm install
- 在
.env中配置 Linear API 密钥:
LINEAR_API_KEY=your_api_key_here
- 构建服务:
npm run build
启用自动重新构建进行开发:
npm run watch
许可证
此 MCP 服务采用 MIT 许可证授权。这意味着你可以自由使用、修改和分发该软件,但须遵守 MIT 许可证的条款和条件。有关详细信息,请参阅项目代码库中的 LICENSE 文件。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。