线性mcp-rs
用于Linear的Rust MCP服务器。单个~4MB二进制文件,无运行时依赖关系。
安装
gh release download --repo davidjpnelson/linear-mcp-rs -p install.sh -O- | bash
需要 GitHub命令行界面.下载适用于您的OS/arch的正确二进制文件 ~/.local/bin/linear-mcp.
设置
1.线性API键
在创建个人API密钥 https://linear.app → 设置 → 安全和访问 → 个人API密钥
服务器按顺序检查这些:
LINEAR_API_KEY 环境变量
- 带服务名称的macOS钥匙串条目
linear-api-key
选项A--环境变量 (添加到 ~/.zshrc):
export LINEAR_API_KEY="lin_api_your_key_here"
选项B-macOS钥匙扣:
security add-generic-password -s linear-api-key -a "$USER" -w "lin_api_your_key_here"
2.添加到您的编码代理
Claude Code
claude mcp add linear-mcp ~/.local/bin/linear-mcp
然后重新启动Claude Code。
OpenAI Codex CLI
codex mcp add linear-mcp -- ~/.local/bin/linear-mcp
或添加到 ~/.codex/config.toml (使用完整的主路径):
[mcp_servers.linear-mcp]
command = "/Users/YOUR_USER/.local/bin/linear-mcp"
Gemini CLI
gemini mcp add --name linear-mcp -- ~/.local/bin/linear-mcp
或添加到 ~/.gemini/settings.json (使用完整的主路径):
{
"mcpServers": {
"linear-mcp": {
"command": "/Users/YOUR_USER/.local/bin/linear-mcp"
}
}
}
Open Code
添加 ~/.config/opencode/opencode.json (或 opencode.json 在项目根目录中,使用完整的主路径):
{
"mcp": {
"linear-mcp": {
"type": "local",
"command": ["/Users/YOUR_USER/.local/bin/linear-mcp"]
}
}
}
Jules
Jules内置了线性MCP支持,不需要二进制文件。首选 Jules设置→ MCP,输入Linear API键,然后启动会话。
工具
253个工具,具有线性API的全部CRUD覆盖范围。所有人都接受人性化的输入(团队密钥如 ENG、电子邮件、州名称、项目名称、问题标识符),并自动将其解析为ID。
问题
| 工具 |
说明 |
list_issues |
按团队、受让人、状态、项目、标签、优先级筛选。分页。 |
search_issues |
在标题、描述和评论中进行全文搜索 |
semantic_search |
基于人工智能的跨问题语义搜索 |
get_issue |
按标识符列出的全部细节(例如。 ENG-123)或UUID。包括评论、标签、关系。 |
my_issues |
按状态分组分配的问题 |
create_issue |
使用团队密钥、受让人电子邮件、州名称、标签、优先级创建问题 |
create_issue_from_template |
从保存的模板创建问题 |
batch_create_issues |
在团队中同时创建多个问题 |
update_issue |
更新任何字段。使用 "none" 清除受让人/到期日期。 |
bulk_update_issues |
同时更新多个问题(状态、优先级、受让人、标签) |
archive_issue |
存档问题 |
unarchive_issue |
恢复已存档的问题 |
add_issue_label |
为问题添加标签 |
remove_issue_label |
从问题中删除标签 |
get_issue_priority_values |
列出所有优先级及其值 |
search_issue_figma_file_key |
查找与Figma文件链接的问题 |
get_issue_filter_suggestion |
AI为问题查询建议了过滤器 |
问题关系
| 工具 |
说明 |
list_issue_relations |
列出问题的关系 |
get_issue_relation |
获取特定问题关系 |
create_issue_relation |
在问题(相关、块、重复)之间创建关系 |
update_issue_relation |
更新关系类型 |
delete_issue_relation |
删除关系 |
分诊
| 工具 |
说明 |
list_triage_issues |
列出团队分诊状态中的问题 |
triage_issue |
将分流问题移动到目标工作流状态 |
list_triage_responsibilities |
列出分流责任分配 |
get_triage_responsibility |
按ID获得分流责任 |
create_triage_responsibility |
创建分流责任分配 |
update_triage_responsibility |
更新分流责任 |
delete_triage_responsibility |
删除分流责任 |
工作流状态
| 工具 |
说明 |
list_states |
按团队分组的工作流状态 |
get_workflow_state |
按ID获取工作流状态 |
create_workflow_state |
为团队创建新的工作流状态 |
update_workflow_state |
更新工作流状态的名称、颜色或位置 |
archive_workflow_state |
存档工作流状态 |
评论
| 工具 |
说明 |
list_comments_all |
列出所有问题的评论 |
get_comment |
按ID获取特定评论 |
add_comment |
添加标记注释(支持线程回复) |
update_comment |
编辑现有评论 |
delete_comment |
删除评论 |
反应
| 工具 |
说明 |
add_reaction |
在评论中添加表情符号反应 |
remove_reaction |
通过UUID删除反应 |
标签
| 工具 |
说明 |
list_labels |
列出工作区和团队范围的标签 |
get_issue_label |
按ID获取特定标签 |
create_label |
创建标签(工作区或团队范围,带颜色) |
update_label |
更新标签的名称或颜色 |
archive_label |
存档标签 |
项目
| 工具 |
说明 |
list_projects |
具有状态、进度、领导和团队的项目 |
get_project |
完整的项目详细信息 |
create_project |
使用团队关联、潜在客户和日期创建项目 |
update_project |
更新项目详细信息 |
archive_project |
归档项目 |
unarchive_project |
还原已存档的项目 |
delete_project |
永久删除项目 |
update_project_relation |
更新项目关系的锚点类型 |
get_project_filter_suggestion |
AI建议的项目查询过滤器 |
项目里程碑和更新
| 工具 |
说明 |
list_project_milestones |
列出项目的里程碑 |
get_project_milestone |
获取特定的项目里程碑 |
create_project_milestone |
创建具有目标日期的里程碑 |
list_project_updates |
列出项目的状态更新 |
create_project_update |
向项目发布状态更新 |
项目状态
| 工具 |
说明 |
list_project_statuses |
列出所有项目状态 |
get_project_status |
按ID获取项目状态 |
create_project_status |
创建新的项目状态 |
update_project_status |
更新项目状态 |
archive_project_status |
归档项目状态 |
unarchive_project_status |
恢复已存档的项目状态 |
项目标签
| 工具 |
说明 |
list_project_labels |
列出项目级标签 |
get_project_label |
按ID获取项目标签 |
create_project_label |
创建项目标签 |
update_project_label |
更新项目标签 |
delete_project_label |
删除项目标签 |
循环
| 工具 |
说明 |
list_cycles |
列出团队的周期 |
get_cycle |
获取循环详细信息 |
create_cycle |
创建具有开始/结束日期的新周期 |
add_issue_to_cycle |
将问题添加到循环中 |
remove_issue_from_cycle |
从循环中删除问题 |
举措
| 工具 |
说明 |
list_initiatives |
列出所有工作空间计划 |
create_initiative |
创建一个包含状态、所有者和目标日期的计划 |
update_initiative |
更新倡议 |
archive_initiative |
将倡议存档 |
unarchive_initiative |
恢复已存档的计划 |
delete_initiative |
永久删除倡议 |
update_initiative_to_project |
将倡议更新到项目链接 |
archive_initiative_update |
存档倡议更新 |
unarchive_initiative_update |
恢复已存档的计划更新 |
update_initiative_update |
更新倡议更新 |
倡议关系
| 工具 |
说明 |
list_initiative_relations |
列出倡议关系 |
get_initiative_relation |
通过ID获得主动关系 |
create_initiative_relation |
建立主动关系 |
update_initiative_relation |
更新倡议关系 |
delete_initiative_relation |
删除倡议关系 |
客户
| 工具 |
说明 |
get_customer_need |
通过ID获取客户需求 |
archive_customer_need |
归档客户需求 |
unarchive_customer_need |
恢复已存档的客户需求 |
delete_customer_need |
删除客户需求 |
merge_customers |
合并两条客户记录 |
客户状态
| 工具 |
说明 |
list_customer_statuses |
列出所有客户状态 |
get_customer_status |
通过ID获取客户状态 |
create_customer_status |
创建客户状态 |
update_customer_status |
更新客户状态 |
delete_customer_status |
删除客户状态 |
客户层次
| 工具 |
说明 |
list_customer_tiers |
列出所有客户层级 |
get_customer_tier |
按ID获取客户级别 |
create_customer_tier |
创建客户层 |
update_customer_tier |
更新客户层 |
delete_customer_tier |
删除客户层 |
发布
| 工具 |
说明 |
get_release |
通过ID获取释放 |
search_releases |
按查询字符串搜索发布 |
archive_release |
存档发布 |
unarchive_release |
恢复已存档的版本 |
delete_release |
删除发布 |
释放管道
| 工具 |
说明 |
list_release_pipelines |
列出发布管道 |
get_release_pipeline |
按ID获取发布管道 |
create_release_pipeline |
创建发布管道 |
update_release_pipeline |
更新发布管道 |
delete_release_pipeline |
删除发布管道 |
发布阶段
| 工具 |
说明 |
list_release_stages |
列出发布阶段 |
get_release_stage |
按ID获取发布阶段 |
create_release_stage |
创建发布阶段 |
update_release_stage |
更新发布阶段 |
发布问题
| 工具 |
说明 |
list_issue_to_releases |
列出发布关联的问题 |
get_issue_to_release |
按ID获取发布链接的问题 |
add_issue_to_release |
在发布中添加问题 |
remove_issue_from_release |
从发布中删除问题 |
文件
| 工具 |
说明 |
list_documents |
列出文档,可选择按项目筛选 |
get_document |
获取完整文档内容 |
get_document_content_history |
获取文档的内容修订历史记录 |
search_documents |
跨文档的全文搜索 |
create_document |
创建文档,可选择链接到项目 |
update_document |
更新文档标题或内容 |
unarchive_document |
还原已存档的文档 |
团队
| 工具 |
说明 |
list_teams |
所有持有钥匙的团队 |
get_team |
按密钥或UUID获取团队详细信息 |
create_team |
创建新团队 |
update_team |
更新团队名称、描述或时区 |
delete_team |
删除团队 |
unarchive_team |
恢复已存档的团队 |
list_archived_teams |
列出已存档的团队 |
团队成员
| 工具 |
说明 |
list_team_memberships |
列出团队成员资格,可选择按团队筛选 |
get_team_membership |
通过ID获取团队成员资格 |
create_team_membership |
将用户添加到团队 |
update_team_membership |
更新会员资格(例如所有者标志) |
delete_team_membership |
从团队中删除用户 |
用户
| 工具 |
说明 |
list_users |
具有角色的工作区成员 |
get_user |
通过电子邮件或UUID获取用户 |
get_viewer |
获取经过身份验证的用户信息 |
update_user |
更新用户显示名称、状态或描述 |
list_external_users |
列出外部(访客)用户 |
通知
| 工具 |
说明 |
list_notifications |
您最近的通知 |
get_notification |
按ID获取特定通知 |
get_notifications_unread_count |
获取未读通知的计数 |
mark_notification_read |
将通知标记为已读 |
通知订阅
| 工具 |
说明 |
list_notification_subscriptions |
列出通知订阅 |
get_notification_subscription |
按ID获取订阅 |
create_notification_subscription |
创建通知订阅(团队、项目或标签范围) |
update_notification_subscription |
更新订阅 |
视图
| 工具 |
说明 |
list_views |
列出已保存的自定义视图 |
get_view_issues |
获取与自定义视图筛选器匹配的问题 |
get_custom_view_suggestion |
AI建议从提示中自定义视图 |
check_custom_view_has_subscribers |
检查自定义视图是否有订阅者 |
附件
| 工具 |
说明 |
list_attachments |
列出问题的附件 |
get_attachment |
按ID获取附件 |
add_attachment |
向问题添加URL附件 |
attach_link_url |
将URL链接附加到问题 |
get_attachments_for_url |
查找与URL匹配的附件 |
收藏夹
| 工具 |
说明 |
list_favorites |
列出您最喜欢的项目 |
get_favorite |
按ID获取收藏夹 |
add_favorite |
喜欢某个问题或项目 |
update_favorite |
更新收藏夹的排序顺序或文件夹 |
remove_favorite |
按UUID删除收藏夹 |
模板
| 工具 |
说明 |
list_templates |
列出问题模板 |
get_template |
按ID获取模板 |
create_template |
创建新模板 |
update_template |
更新模板 |
delete_template |
删除模板 |
实体外部链接
| 工具 |
说明 |
get_entity_external_link |
通过ID获取外部链接 |
create_entity_external_link |
在实体上创建外部链接 |
update_entity_external_link |
更新外部链接 |
delete_entity_external_link |
删除外部链接 |
表情符号
| 工具 |
说明 |
list_emojis |
列出自定义表情符号 |
get_emoji |
通过ID获取表情符号 |
create_emoji |
创建自定义表情符号 |
delete_emoji |
删除自定义表情符号 |
时间进度计划
| 工具 |
说明 |
list_time_schedules |
列出时间表 |
get_time_schedule |
按ID获取时间表 |
create_time_schedule |
制定时间表 |
update_time_schedule |
更新时间表 |
delete_time_schedule |
删除时间表 |
Git自动化
| 工具 |
说明 |
create_git_automation_state |
创建git自动化状态映射 |
update_git_automation_state |
更新git自动化状态映射 |
delete_git_automation_state |
删除git自动化状态映射 |
create_git_automation_target_branch |
创建git自动化目标分支 |
update_git_automation_target_branch |
更新git自动化目标分支 |
delete_git_automation_target_branch |
删除git自动化目标分支 |
电子邮件接收
| 工具 |
说明 |
get_email_intake_address |
通过ID获取电子邮件接收地址 |
create_email_intake_address |
为团队创建电子邮件接收地址 |
update_email_intake_address |
更新电子邮件接收地址 |
delete_email_intake_address |
删除电子邮件接收地址 |
历史与审计
| 工具 |
说明 |
get_issue_history |
对问题变更的审计跟踪 |
query_audit_log |
工作区审核日志(仅限管理员) |
集成和Webhooks
| 工具 |
说明 |
list_integrations |
列出工作区集成 |
list_webhooks |
列出webhooks(仅限管理员) |
create_webhook |
创建webhook(仅限管理员) |
delete_webhook |
删除webhook(仅限管理员) |
组织与制度
| 工具 |
说明 |
get_organization |
获取工作区组织信息 |
get_application_info |
获取API应用程序信息 |
get_rate_limit_status |
获取当前API费率限制状态 |
list_roadmaps |
列出路线图 |
建筑
- MCP-SDK: rmcp v0.15与stdio传输
- 线性API:原始GraphQL通过
reqwest (无线性SDK)
- 传输层安全:rustls(不依赖OpenSSL)
- 缓存:用于实体解析的内存缓存(团队键→ ID,问题标识符→ UUID)
- 在线富集:在查询中内联获取的相关实体(州、受让人、标签),没有N+1
从源代码构建
需要 防锈工具链.
git clone git@github.com:davidjpnelson/linear-mcp-rs.git
cd linear-mcp-rs
cargo build --release
# Binary: target/release/linear-mcp