这是一个用Go编写的Linear模型上下文协议(MCP)服务器。该服务器提供了通过MCP协议与Linear API交互的工具。
预构建的二进制文件可以在GitHub Releases页面上找到,适用于Linux、macOS和Windows。
chmod +x linear-mcp-go-*
# 下载最新发布的Linux二进制文件
RELEASE=$(curl -s https://api.github.com/repos/geropl/linear-mcp-go/releases/latest)
DOWNLOAD_URL=$(echo $RELEASE | jq -r '.assets[] | select(.name | contains("linux")) | .browser_download_url')
curl -L -o ./linear-mcp-go $DOWNLOAD_URL
chmod +x ./linear-mcp-go
# 设置MCP服务器(如.gitpod.yml,dotfiles仓库等)
./linear-mcp-go setup --tool=cline
要检查Linear MCP服务器的版本:
./linear-mcp-go version
这将显示版本、git提交和构建日期信息。
export LINEAR_API_KEY=your_linear_api_key
# 在只读模式下运行(默认)
./linear-mcp-go serve
# 启用写入访问权限运行
./linear-mcp-go serve --write-access
服务器将启动并监听标准输入/输出上的MCP请求。
setup命令自动化了各种AI助手的安装和配置过程:
# 将您的Linear API密钥设置为环境变量
# 唯一例外:Ona在设置时不需要此步骤!
export LINEAR_API_KEY=your_linear_api_key
# 为Cline设置(默认)
./linear-mcp-go setup
# 启用写入访问权限设置
./linear-mcp-go setup --write-access
# 为只读工具启用自动批准
./linear-mcp-go setup --auto-approve=allow-read-only
# 为特定工具启用自动批准
./linear-mcp-go setup --auto-approve=linear_get_issue,linear_search_issues
# 启用写入访问权限和只读工具的自动批准
./linear-mcp-go setup --write-access --auto-approve=allow-read-only
# 为不同的工具设置(目前仅支持“cline”)
./linear-mcp-go setup --tool=cline
此命令:
--auto-approve标志可用于指定哪些工具应在Cline配置中自动批准:
--auto-approve=allow-read-only:自动批准所有只读工具(linear_search_issues,linear_get_user_issues,linear_get_issue,linear_get_teams)--auto-approve=tool1,tool2,...:自动批准指定逗号分隔的工具列表目前支持的AI助手:
默认情况下,服务器以只读模式运行,这意味着以下工具被禁用:
linear_create_issuelinear_update_issuelinear_add_commentlinear_reply_to_commentlinear_update_issue_comment要启用这些工具,请使用--write-access=true标志。
创建具有指定详细信息的新Linear问题。支持创建父子关系(子问题)并分配标签。
参数:
title(必需):问题标题team(必需):团队标识符(键、UUID或名称)description:问题描述priority:优先级。接受值:0/'无优先级',1/'紧急',2/'高',3/'中',4/'低'status:问题状态makeSubissueOf:通过指定父问题ID或标识符(例如,'TEAM-123')创建子问题。这在Linear中建立了父子关系。labels:可选的逗号分隔的标签ID或名称列表project:可选的项目标识符(ID、名称或slug)以分配问题示例:创建子问题
{
"title": "实现登录表单验证",
"team": "ENG",
"makeSubissueOf": "ENG-42",
"description": "为登录表单添加客户端验证"
}
更新现有Linear问题的属性。
参数:
id(必需):问题IDtitle:新标题description:新描述priority:优先级。接受值:0/'无优先级',1/'紧急',2/'高',3/'中',4/'低'status:新状态使用灵活的标准搜索Linear问题。
参数:
query:在标题和描述中搜索的可选文本teamId:按团队ID过滤status:按状态名称过滤(例如,'正在进行中','已完成')assigneeId:按分配人的用户ID过滤labels:按标签名称过滤(逗号分隔)priority:优先级。接受值:0/'无优先级',1/'紧急',2/'高',3/'中',4/'低'estimate:按估计点数过滤includeArchived:是否包括存档的问题(默认:false)limit:返回的最大结果数(默认:1-10)检索分配给特定用户或经过身份验证的用户的问题。
参数:
userId:可选的用户ID。如果没有提供,则返回经过身份验证的用户的问题includeArchived:是否包括存档的问题limit:要返回的最大问题数(默认:50)通过ID检索单个Linear问题。
参数:
issueId(必需):要检索的问题ID向现有Linear问题添加评论。支持通过传递thread参数中的评论标识符来回复现有评论。
参数:
issue(必需):要评论的问题ID或标识符(例如,'TEAM-123')body(必需):以markdown格式的评论文本thread:可选的评论标识符以回复。接受值:完整的Linear评论URL、UUID、简写(comment-abc123)或哈希(abc123)。创建一个线程回复而不是顶级评论。createAsUser:可选的自定义用户名以显示评论URL支持:您可以直接将完整的Linear评论URL(例如,https://linear.app/.../issue/TEST-10/...#comment-abc123)传递给thread参数。工具会自动解析URL为UUID,然后再调用API。
用于回复现有评论的便捷工具。自动解析评论中的问题,因此您只需提供评论标识符和回复文本。
参数:
thread(必需):要回复的评论。接受值:完整的Linear评论URL、UUID、简写(comment-abc123)或哈希(abc123)body(必需):以markdown格式的回复文本createAsUser:可选的自定义用户名以显示回复为什么使用这个工具? 当您有评论URL或ID并且想要回复时,这个工具比linear_add_comment更简单,因为您不需要单独指定问题。工具会自动从评论中查找问题。
支持分页和线程导航的Linear问题评论检索。
参数:
issue(必需):要检索评论的问题ID或标识符(例如,'TEAM-123')thread:可选的父评论UUID以检索其回复。如果没有提供,则返回顶级评论limit:要返回的最大评论数(默认:10)after:分页的游标,获取此点之后的评论使用场景:
thread参数中传递评论UUID来导航评论线程linear_add_comment中支持URL,这变得不那么必要)更新Linear问题上的现有评论。
参数:
comment(必需):要更新的评论标识符。接受值:完整的Linear评论URL、UUID、简写(comment-abc123)或哈希(abc123)body(必需):新的评论文本,以markdown格式URL支持:与其他评论工具一样,它接受完整的Linear评论URL,并自动解析为UUID。
带有可选名称过滤器的Linear团队检索。
参数:
name:可选的团队名称过滤器。返回名称包含此字符串的团队。测试使用go-vcr实现,并针对https://linear.app/linear-mcp-go-test执行。
使用现有的录音(磁带):
go test -v ./...
需要设置TEST_LINEAR_API_KEY以供测试工作区使用。
go test -v -record=true ./...
这将更新所有不会改变远程状态的测试。
go test -v -recordWrites=true ./...
这将重新运行所有测试,包括一些可能会改变其他测试结果的测试,可能需要进一步的手动调整。
go test -v -golden=true ./...
更新所有.ground字段。
该项目使用GitHub Actions进行自动化测试和发布。版本通过pkg/server/server.go中的ServerVersion常量管理。
v*(例如,v1.0.0)的标签时,会自动创建一个新的发布重要:版本标签应仅在所有更改合并到main分支后创建。
更新版本:修改pkg/server/server.go中的ServerVersion常量
// ServerVersion 是MCP服务器的版本
ServerVersion = "1.13.0"
创建PR:将版本更新作为拉取请求提交,确保经过审查和测试
合并到主分支:一旦PR获得批准并合并到主分支
创建并推送发布标签:
# 确保您处于最新的主分支
git checkout main
git pull origin main
# 创建并推送标签(必须与server.go中的版本匹配)
git tag v1.13.0
git push origin v1.13.0
自动发布:GitHub Actions工作流将自动:
version命令显示:
pkg/server/server.go中的ServerVersion常量读取对于开发构建,git提交和构建日期将显示为"未知"。
MIT