用于Codecov的MCP服务器
](https://www.npmjs.com/package/@egulatee/mcp-codecov) ](https://www.npmjs.com/package/@egulatee/mcp-codecov)  
一种模型上下文协议(MCP)服务器,提供查询Codecov覆盖数据的工具。支持codecov.io和具有可配置URL端点的自托管codecov实例。
📦 发布于npm: @egulate/mcp编解码器 🐳 Docker镜像: ghcr.io/egulate/mcp-server-codecov
📖 了解更多:阅读 用人工智能在2小时内构建这个MCP服务器.
快速入门(克劳德代码)
在2分钟内开始:
1.获取Codecov API代币
从Codecov帐户创建API令牌(不是上载令牌):
- 首选 codecov.io (或您的自托管URL)
- 点击您的头像→ 设置→ 访问选项卡
- 点击“生成令牌”并将其命名为“MCP服务器API访问”
- 复制令牌值
2.设置环境变量
添加到您的shell配置文件(~/.zshrc 或 ~/.bashrc):
export CODECOV_TOKEN="your-api-token-here"然后重新加载: source ~/.zshrc
3.安装MCP服务器
claude mcp add --transport stdio codecov \
--env CODECOV_BASE_URL=https://codecov.io \
--env CODECOV_TOKEN=${CODECOV_TOKEN} \
-- npx -y @egulatee/mcp-codecov4.验证安装
claude mcp get codecov预期产量: codecov: @egulatee/mcp-codecov - ✓ Connected
就是这样! 您现在可以在Claude Code中使用Codecov工具。看 可用工具 在......下面
______________________________________________________________________
特性
- 文件级覆盖率:获取特定文件的详细逐行覆盖率数据
- 承诺覆盖范围:检索单个提交的覆盖率统计信息
- 存储库覆盖率:获取存储库的总体覆盖指标
- 拉取请求覆盖范围:分析覆盖范围的变化和拉取请求的影响
- 覆盖范围比较:比较分支、提交或标签之间的覆盖率
- 可配置URL:指向任何Codecov实例(Codecov.io或自托管)
- 令牌身份验证:访问覆盖率数据的API令牌支持
令牌类型
重要:Codecov有两种不同类型的令牌:
- 上传令牌:用于在CI/CD期间将覆盖率报告推送到Codecov。可以在存储库的设置中找到→ 常规页面。
- API代币:用于通过API从Codecov读取覆盖率数据。在Codecov设置中创建→ 访问选项卡。
此MCP服务器需要 API令牌,不是上传令牌。
可用工具
get_file_平均值
获取特定文件的逐行覆盖率数据。
参数:
owner(必填):存储库所有者(用户名或组织)repo(必填):存储库名称file_path(必填):存储库中文件的路径(例如“src/index.ts”)ref(可选):Git引用(分支、标记或提交SHA)
例子:
Get coverage for src/index.ts in owner/repo on main branchget_commit_coverage
获取特定提交的覆盖率数据。
参数:
owner(必填):存储库所有者repo(必填):存储库名称commit_sha(必填):提交SHA
例子:
Get coverage for commit abc123 in owner/repoget_repo_coverage
获取存储库的总体覆盖率统计数据。
参数:
owner(必填):存储库所有者repo(必填):存储库名称branch(可选):分支名称(默认为存储库的默认分支)
例子:
Get overall coverage for owner/repo on main branchget_pull_request_coverage
获取特定拉取请求的覆盖率数据,包括覆盖率更改和文件级影响。
参数:
owner(必填):存储库所有者(用户名或组织)repo(必填):存储库名称pull_number(必填):拉取请求号
例子:
Get coverage for pull request #123 in owner/repo使用案例:
- 在批准之前,检查PR是否符合覆盖阈值
- 当PR降低整体覆盖率时发出警报
- 确定PR中哪些文件缺乏覆盖范围
- 实施质量门,在覆盖率下降时阻止合并
比较覆盖率
比较两个git引用(分支、提交或标签)之间的覆盖率。
参数:
owner(必填):存储库所有者(用户名或组织)repo(必填):存储库名称base(必填):基础引用(例如,“main”,提交SHA)head(必填):与基准进行比较的头部参考
例子:
Compare coverage between main branch and feature-branch in owner/repo使用案例:
- 比较发布分支之间的覆盖率
- 分析任意两次提交之间的覆盖率变化
- 跟踪整个开发周期的覆盖趋势
- 验证功能分支中的覆盖率改进
存储库激活
重要提示:在存储库可以接收覆盖率上传之前,必须在Codecov中激活它。这是一个一次性设置步骤 无法通过API实现自动化.
手动激活过程
要激活覆盖率跟踪存储库,请执行以下操作:
- 登录您的Codecov实例(例如。, codecov.io)
- 导航到您的组织/用户帐户
- 找到要激活的存储库
- 点击 激活 启用覆盖跟踪的按钮
- 激活后,您可以从CI/CD管道上传覆盖率报告
为什么需要手动激活:Codecov API v2未提供 /activate 终点。存储库激活必须通过web UI完成,或者在首次覆盖上传时自动进行(取决于您的Codecov配置)。
验证和故障排除
常见问题
1.401未经授权的错误
- 检查令牌类型:确保您正在使用 API令牌 (来自设置→ 访问),而不是上传令牌
- 验证令牌是否有效,是否可以访问存储库
- 对于自托管实例,请确认您使用的是正确的
CODECOV_BASE_URL
2.环境变量不扩展
- 确保变量已导出到shell中(检查
~/.zshrc或~/.bashrc) - 设置环境变量后重新启动Claude代码
- 验证变量是否存在:
echo $CODECOV_TOKEN
3.连接失败
- 重新启动克劳德代码或克劳德桌面
- 验证环境变量是否设置正确:
echo $CODECOV_TOKEN - 检查配置:
claude mcp get codecov
4.HTTP与HTTPS
总是使用 https:// 为了 CODECOV_BASE_URL,不 http://:
- 对的:
https://your-codecov-instance.com - 不正确:
http://your-codecov-instance.com
高级配置
自托管Codecov
对于自托管的Codecov实例,请使用您的实例URL:
claude mcp add --transport stdio codecov \
--env CODECOV_BASE_URL=https://codecov.your-company.com \
--env CODECOV_TOKEN=${CODECOV_TOKEN} \
-- npx -y @egulatee/mcp-codecovClaude桌面设置
添加到您的Claude Desktop配置文件中:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
视窗: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"codecov": {
"command": "npx",
"args": ["-y", "@egulatee/mcp-codecov"],
"env": {
"CODECOV_BASE_URL": "https://codecov.io",
"CODECOV_TOKEN": "your-codecov-token-here"
}
}
}
}手动配置(克劳德代码)
增添 ~/.claude.json:
{
"mcpServers": {
"codecov": {
"command": "npx",
"args": ["-y", "@egulatee/mcp-codecov"],
"env": {
"CODECOV_BASE_URL": "https://codecov.io",
"CODECOV_TOKEN": "${CODECOV_TOKEN}"
}
}
}
}备注:
- 使用支持环境变量扩展
${VAR}语法 - 变量如
${CODECOV_TOKEN}将从您的shell环境中读取 - 这
-ynpx的标志会自动接受软件包安装提示
Docker(不需要Node.js)
从GitHub容器注册表中提取并运行官方多平台镜像:
docker run --rm -i \
-e CODECOV_TOKEN=your_token \
ghcr.io/egulatee/mcp-server-codecov平台: linux/amd64 和 linux/arm64 (苹果硅、AWS Graviton)
克劳德桌面 (~/Library/Application Support/Claude/claude_desktop_config.json 在macOS上):
{
"mcpServers": {
"codecov": {
"command": "docker",
"args": [
"run", "--rm", "-i",
"-e", "CODECOV_TOKEN=your_token",
"ghcr.io/egulatee/mcp-server-codecov"
]
}
}
}使用自托管Codecov:
docker run --rm -i \
-e CODECOV_TOKEN=your_token \
-e CODECOV_BASE_URL=https://codecov.your-company.com \
ghcr.io/egulatee/mcp-server-codecov可用标签: latest, 2, 2.1, 2.1.0 (全文)
stdio与socat的桥梁:
Docker镜像包括 socat,它允许通过stdio通信的MCP客户端通过TCP套接字连接到容器内运行的服务器:
# Start the server exposing a TCP port
docker run --rm -p 3000:3000 \
-e CODECOV_TOKEN=your_token \
ghcr.io/egulatee/mcp-server-codecov
# Bridge stdio ↔ TCP in a second terminal (or from your MCP client config)
socat TCP:localhost:3000 STDIO注:socat还必须安装在 宿主机 运行桥接命令。安装时使用brew install socat(macOS),apt install socat(Debian/Ubuntu),或apk add socat(阿尔卑斯山)。
从npm全球安装
npm install -g @egulatee/mcp-codecov优点:
- 简单的一个命令安装
- 自动更新
npm update -g @egulatee/mcp-codecov - 无需手动构建步骤
- 适用于所有项目
验证安装:
npm list -g @egulatee/mcp-codecov
which mcp-codecov
npm view @egulatee/mcp-codecov version开发安装(来源)
仅当您为项目做出贡献时才使用此方法:
git clone https://github.com/egulatee/mcp-server-codecov.git
cd mcp-server-codecov
npm install
npm run build然后使用构建的路径进行配置:
克劳德代码CLI:
claude mcp add --transport stdio codecov \
--env CODECOV_BASE_URL=https://codecov.io \
--env CODECOV_TOKEN=${CODECOV_TOKEN} \
-- node /absolute/path/to/codecov-mcp/dist/index.js手册(~/.claude.json):
{
"mcpServers": {
"codecov": {
"command": "node",
"args": ["/absolute/path/to/codecov-mcp/dist/index.js"],
"env": {
"CODECOV_BASE_URL": "https://codecov.io",
"CODECOV_TOKEN": "${CODECOV_TOKEN}"
}
}
}
}克劳德桌面:
{
"mcpServers": {
"codecov": {
"command": "node",
"args": ["/path/to/mcp-server-codecov/dist/index.js"],
"env": {
"CODECOV_BASE_URL": "https://codecov.io",
"CODECOV_TOKEN": "your-codecov-token-here"
}
}
}
}测试
该项目使用Vitest进行全面的单元测试,保持了97%以上的代码覆盖率。
有关详细的测试文档,包括如何运行测试、覆盖率要求、CI集成和编写测试,请参阅 测试.md.
发展
# Install dependencies
npm install
# Build the project
npm run build
# Watch mode for development
npm run watch发布过程
该项目通过GitHub Actions使用自动发布工作流。当你推送版本标签时,发布会自动发布到npm。
有关详细的发布说明,包括先决条件、创建版本、手动版本和版本号,请参阅 发布.md.
API兼容性
此服务器使用Codecov的API v2。API端点遵循以下模式:
- 文件覆盖范围:
/api/v2/gh/{owner}/repos/{repo}/file_report/{file_path} - 承诺覆盖范围:
/api/v2/gh/{owner}/repos/{repo}/commits/{commit_sha} - 存储库覆盖范围:
/api/v2/gh/{owner}/repos/{repo} - 拉取请求覆盖范围:
/api/v2/gh/{owner}/repos/{repo}/pulls/{pull_number} - 覆盖范围比较:
/api/v2/gh/{owner}/repos/{repo}/compare/{base}...{head}
目前支持GitHub存储库(gh).可以通过修改API路径来添加对其他提供商(GitLab、Bitbucket)的支持。
资源
- 📝 在2小时内构建Codecov MCP服务器 -使用AI增强开发技术开发此服务器的详细演练
许可证
麻省理工学院
