用途
MCP Linear 是一个实现 Model Context Protocol(MCP)的服务器,为 Linear GraphQL API 提供接口,使 AI 助手能够通过自然语言与 Linear 项目管理系统交互。它面向真实的项目管理工作流,而不仅是基础的议题 CRUD。
主要能力
- 检索议题、项目、团队、周期、里程碑、路线图、客户、客户需求,以及工作区/项目/计划/团队/议题/发布/周期文档。
- 创建和更新议题、变更状态、分配负责人、添加评论。
- 管理项目,支持完整的差异感知项目与计划更新生命周期、里程碑、路线图、保存视图和收藏。
- 创建和管理工作区 Webhook,包括更新和签名密钥轮换。
- 准备 OAuth 应用清单和授权 URL,签发按范围限定的客户端凭证令牌;在以可管理 OAuth 应用身份认证时,可管理子 OAuth 应用。
- 使用模板、自定义字段和附件。
- 处理客户记录、客户状态/层级,以及关联到议题或项目的客户需求。
- 在 MCP 中读取通知、订阅、会话、审计和集成。
- 在执行繁重的规划任务前检查速率限制和服务器健康状态。 完整工具清单见 TOOLS.md。
MCP 原生资源与提示词
除工具外,服务器还暴露 MCP 资源和提示词:
- 资源:linear://viewer、linear://organization、linear://teams、linear://projects、linear://project/{id}、linear://project/{id}/issues、linear://project/{id}/documents、linear://issue/{id}、linear://document/{id}、linear://roadmap/{id}、linear://milestone/{id}、linear://rate-limit。
- 提示词:summarize-project-status、draft-project-update、triage-issue、summarize-document。
示例提示词
连接后可使用诸如以下提示:
- “显示我所有的 Linear 议题”
- “在 Frontend 团队中创建一个标题为 'Fix login bug' 的新议题”
- “将议题 FE-123 的状态改为 'In Progress'”
- “将议题 BE-456 分配给 John Smith”
- “按里程碑和周期分组显示此项目中所有未关闭的议题”
- “根据当前 Linear 状态起草一份每周项目更新”
- “查找与某项目相关的最新文档并总结关键决策”
- “显示此团队主页上固定的文档和链接”
- “为 ENG-123 创建带有资源排序元数据的文档”
- “获取最新的项目更新差异并归档过时的更新”
- “显示此项目的客户需求并标记重要的需求”
- “创建一条计划更新,并从更新正文中隐藏生成的差异”
- “为我的 GitHub 议题流水线准备一个启用客户端凭证的私有 OAuth 应用”
- “为该 GitHub 流水线签发一个范围严格限定的客户端凭证令牌”
- “为 Issue 和 Comment 事件创建 Webhook,然后轮换其签名密钥”
使用方式
获取凭据
- 在 linear.app 登录你的 Linear 账户。
- 点击左上角的组织头像。
- 选择 Settings。
- 在左侧边栏进入 Security & access。
- 在 Personal API Keys 下点击 New API Key。
- 为密钥命名(例如 MCP Linear Integration)。
- 复制生成的 API 令牌并安全保存——之后无法再次查看。
个人 API 密钥支持常规的 Linear 和工作区 Webhook 工具。它们无法调用 Linear 的 alpha 托管子 OAuth 应用 API,因为该 API 要求调用方本身是 OAuth 应用。使用个人 API 密钥时,linear_generateOAuthApplicationSetup 仍会准备官方清单和预填的 Linear 设置 URL,供管理员确认。
若要让 MCP 实际创建和管理子 OAuth 应用,需使用属于有资格管理这些子应用的 Linear OAuth 应用的访问令牌进行认证;或传入 --oauth-token YOUR_OAUTH_ACCESS_TOKEN。显式命令行凭据优先于环境变量;当两种环境凭据类型同时存在时,选择 OAuth 认证。参见 Linear 的 OAuth 文档和 OAuth 应用清单。
每个 MCP 服务器进程使用一个 Linear 凭据。如果管理应用令牌使用 actor=app(无法获得 admin 权限),而你又需要 admin 范围的工作区 Webhook 工具,可配置两个 MCP 服务器条目:一个使用管理 OAuth 令牌负责子应用操作,另一个使用工作区管理员的个人 API 密钥负责工作区 Webhook。带有 admin 的用户 actor OAuth 令牌也可覆盖 Webhook 侧。
OAuth 范围在请求授权 URL 或客户端凭证令牌时选定;它们不是 OAuth 应用上的可变字段。MCP 会校验当前 Linear 范围、准备授权 URL,并可通过 linear_createOAuthClientCredentialsToken 签发应用 actor 令牌。对于 GitHub 托管的流水线,启用 client_credentials 授权并请求最小必要范围,例如 issues:create。
客户端凭证令牌通常在 30 天后过期,且没有刷新令牌。Linear 仅在同一范围集下允许存在多个活动令牌;请求不同的范围集会撤销该应用现有的应用 actor 令牌。因此令牌工具要求同时提供 confirmSecretExposure: true 和 confirmScopeChangeRisk: true。
创建 OAuth 应用以及轮换 OAuth 或 Webhook 密钥会通过 MCP 返回一次性密钥材料。这些工具要求 confirmSecretExposure: true;请将返回的值直接移入密钥管理器(如 GitHub Actions secrets),不要粘贴到源码控制或日志中。
Webhook URL 必须是可公开访问的 HTTPS 端点。校验会拒绝 URL 中包含凭据以及明显的回环、私网、链路本地和本地主机名目的地。
安装
通过 add-mcp 安装(推荐):add-mcp 只需一条命令即可将服务器安装到 Claude Code、Cursor、Codex、VS Code、Claude Desktop 以及许多其他支持 MCP 的 agent 中。添加 -g 可全局安装而非安装到当前项目。完整 agent 列表和标志见 add-mcp 文档。
手动配置:将以下内容添加到你的 MCP 设置文件:
- Cursor:~/.cursor/mcp.json
- Claude Desktop:~/Library/Application Support/Claude/claude_desktop_config.json
- Claude VSCode Extension:~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
- GoMCP:~/.config/gomcp/config.yaml
需要 Linear 个人 API 密钥或 OAuth 访问令牌。使用你的 Linear API 令牌运行服务器;或使用管理 OAuth 应用的访问令牌;或在环境中设置令牌后无参数运行。
默认验证路径:npm test 会针对构建后的 stdio 服务器运行 Jest 单元测试和官方 MCP SDK 冒烟测试,覆盖工具、资源和提示词注册以及宿主兼容的模式输出。本地开发细节见 DEVELOPMENT.md。
适用场景
适用于希望让 AI 助手通过自然语言操作 Linear 项目数据的团队与开发者,包括议题与项目管理、文档与路线图查询、客户需求跟踪、项目更新起草与总结、Webhook 与 OAuth 应用管理等自动化工作流。
限制
- 个人 API 密钥无法调用 Linear 的 alpha 托管子 OAuth 应用 API。
- 每个 MCP 服务器进程仅使用一个 Linear 凭据,需要不同权限时须配置多个条目。
- 客户端凭证令牌通常 30 天过期且无刷新令牌;请求不同范围集会撤销该应用现有应用 actor 令牌。
- Webhook URL 必须是可公开访问的 HTTPS 端点,且不能包含凭据或指向回环、私网、链路本地和本地主机名地址。
- 一次性密钥材料需通过 confirmSecretExposure: true 确认,且不应粘贴到源码控制或日志中。 本项目采用 MIT 许可证,详见 LICENSE 文件。