代码覆盖率分析服务

Codecov MCP服务器提供全面的代码覆盖率分析功能,支持通过REST API v2访问35+工具,适用于AI助手直接查询PR覆盖率、查找覆盖率缺口、跟踪趋势等开发场景。

  • by ScottN-PV
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 ScottN-PV/codecov-mcp

使用说明

codecov mcp

最全面 Codecov MCP服务器-- 35+工具 包括Codecov REST API v2以及5个提示和4个资源。

专为 克劳德代码 以及任何与MCP兼容的AI代理。

为什么?

您的AI助手可以直接:

  • 审查公关报道 --一次调用中的补丁%、受影响的文件和行级差异
  • 查找覆盖范围差距 --从回购中钻取→ 目录→ file → 未覆盖的线条
  • 追踪趋势 --看看覆盖率是随着时间的推移而提高还是下降
  • 调试CI --检查上传、标记和组件
  • 查找片状测试 --识别默认分支上失败的测试
  • 验证配置 --检查 codecov.yaml 在承诺之前

快速开始

1.获取Codecov API代币

首选 Codecov设置>访问 并生成 API访问令牌 (不是上传令牌)。

2.将codecov mcp添加到您的mcp客户端

选择下面的工具以获取特定于平台的设置说明。

Claude Code

CLI安装(macOS/Linux):

claude mcp add --transport stdio codecov --env CODECOV_TOKEN=your-token-here -- npx -y codecov-mcp

CLI安装(Windows):

claude mcp add codecov --env CODECOV_TOKEN=your-token-here -- cmd /c npx -y codecov-mcp

项目范围(Windows):

claude mcp add --scope project codecov --env CODECOV_TOKEN=your-token-here -- cmd /c npx -y codecov-mcp

在macOS/Linux上,添加 --scope project 之后 add 在第一个命令中。

JSON回退 --如果CLI在您的环境中不起作用,请添加 .claude.json (项目)或 ~/.claude.json (用户):

macOS/Linux:

{
  "mcpServers": {
    "codecov": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "codecov-mcp"],
      "env": {
        "CODECOV_TOKEN": "your-token-here"
      }
    }
  }
}

窗户:

{
  "mcpServers": {
    "codecov": {
      "type": "stdio",
      "command": "cmd",
      "args": ["/c", "npx", "-y", "codecov-mcp"],
      "env": {
        "CODECOV_TOKEN": "your-token-here"
      }
    }
  }
}
Codex

CLI安装(所有平台):

codex mcp add codecov --env CODECOV_TOKEN=your-token-here -- npx -y codecov-mcp

配置存储在 ~/.codex/config.toml (用户)或 .codex/config.toml (项目)。Codex IDE扩展共享相同的配置。

Gemini CLI / Gemini Code Assist

JSON配置(所有平台) --添加到 .gemini/settings.json (项目)或 ~/.gemini/settings.json (用户):

{
  "mcpServers": {
    "codecov": {
      "command": "npx",
      "args": ["-y", "codecov-mcp"],
      "env": {
        "CODECOV_TOKEN": "your-token-here"
      }
    }
  }
}

窗户: 如果你得到 spawn npx ENOENT,更改 "command" 到 "cmd" 和 "args" 到 ["/c", "npx", "-y", "codecov-mcp"].

VS Code中的Gemini Code Assist代理模式由Gemini CLI提供支持,并使用相同的配置。

VS Code (GitHub Copilot)

VS代码使用 "servers" (不是 "mcpServers").

JSON配置(所有平台) --创建 .vscode/mcp.json 在项目根目录中:

{
  "servers": {
    "codecov": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "codecov-mcp"],
      "env": {
        "CODECOV_TOKEN": "${input:codecov-token}"
      }
    }
  },
  "inputs": [
    {
      "id": "codecov-token",
      "type": "promptString",
      "description": "Codecov API Token",
      "password": true
    }
  ]
}

窗户: 如果你得到 spawn npx ENOENT,更改 "command" 到 "cmd" 和 "args" 到 ["/c", "npx", "-y", "codecov-mcp"].

您还可以使用 MCP:打开用户配置 从用户级配置的命令面板中。

Cursor

JSON配置(所有平台) --创建 .cursor/mcp.json (项目)或 ~/.cursor/mcp.json (用户):

{
  "mcpServers": {
    "codecov": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "codecov-mcp"],
      "env": {
        "CODECOV_TOKEN": "your-token-here"
      }
    }
  }
}

窗户: 如果你得到 spawn npx ENOENT,更改 "command" 到 "cmd" 和 "args" 到 ["/c", "npx", "-y", "codecov-mcp"].

Windsurf

JSON配置(所有平台) --编辑 ~/.codeium/windsurf/mcp_config.json,或通过添加 Windsurf设置>级联>MCP服务器:

{
  "mcpServers": {
    "codecov": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "codecov-mcp"],
      "env": {
        "CODECOV_TOKEN": "your-token-here"
      }
    }
  }
}

窗户: 如果你得到 spawn npx ENOENT,更改 "command" 到 "cmd" 和 "args" 到 ["/c", "npx", "-y", "codecov-mcp"].

Additional Tools
Kilo Code

打开千码设置> 代理人行为 > MCP服务器,然后使用 编辑全局MCP 或 编辑项目MCP.

项目配置 — .kilocode/mcp.json

macOS/Linux:

{
  "mcpServers": {
    "codecov": {
      "command": "npx",
      "args": ["-y", "codecov-mcp"],
      "env": {
        "CODECOV_TOKEN": "your-token-here"
      }
    }
  }
}

窗户:

{
  "mcpServers": {
    "codecov": {
      "command": "cmd",
      "args": ["/c", "npx", "-y", "codecov-mcp"],
      "env": {
        "CODECOV_TOKEN": "your-token-here"
      }
    }
  }
}
Kilo CLI

JSON配置 --添加到 kilo.json 或 .kilo/kilo.json:

macOS/Linux:

{
  "mcp": {
    "codecov": {
      "type": "local",
      "command": ["npx", "-y", "codecov-mcp"],
      "enabled": true,
      "environment": {
        "CODECOV_TOKEN": "your-token-here"
      }
    }
  }
}

窗户:

{
  "mcp": {
    "codecov": {
      "type": "local",
      "command": ["cmd", "/c", "npx", "-y", "codecov-mcp"],
      "enabled": true,
      "environment": {
        "CODECOV_TOKEN": "your-token-here"
      }
    }
  }
}
Roo Code

打开Roo Code窗格,单击 MCP服务器 图标,然后使用 编辑全局MCP 或 编辑项目MCP.

项目配置 — .roo/mcp.json

macOS/Linux:

{
  "mcpServers": {
    "codecov": {
      "command": "npx",
      "args": ["-y", "codecov-mcp"],
      "env": {
        "CODECOV_TOKEN": "your-token-here"
      }
    }
  }
}

窗户:

{
  "mcpServers": {
    "codecov": {
      "command": "cmd",
      "args": ["/c", "npx", "-y", "codecov-mcp"],
      "env": {
        "CODECOV_TOKEN": "your-token-here"
      }
    }
  }
}
Warp

打开 设置>MCP服务器 在“扭曲”中,单击 +添加,然后粘贴:

{
  "mcpServers": {
    "codecov": {
      "command": "npx",
      "args": ["-y", "codecov-mcp"],
      "env": {
        "CODECOV_TOKEN": "your-token-here"
      }
    }
  }
}

也可从以下网址访问 曲速驱动器>个人>MCP服务器 或命令面板(打开MCP服务器).

窗户: 如果 npx 无法解决,请使用 "command": "cmd" 和 "args": ["/c", "npx", "-y", "codecov-mcp"].

OpenCode

JSON配置 --添加到 opencode.json:

macOS/Linux:

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "codecov": {
      "type": "local",
      "command": ["npx", "-y", "codecov-mcp"],
      "enabled": true,
      "environment": {
        "CODECOV_TOKEN": "your-token-here"
      }
    }
  }
}

窗户:

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "codecov": {
      "type": "local",
      "command": ["cmd", "/c", "npx", "-y", "codecov-mcp"],
      "enabled": true,
      "environment": {
        "CODECOV_TOKEN": "your-token-here"
      }
    }
  }
}
Droid CLI

CLI安装:

droid mcp add codecov "npx -y codecov-mcp" --env CODECOV_TOKEN=your-token-here

或添加到 .factory/mcp.json:

{
  "mcpServers": {
    "codecov": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "codecov-mcp"],
      "env": {
        "CODECOV_TOKEN": "your-token-here"
      },
      "disabled": false
    }
  }
}

窗户: 如果 npx 无法解决,请使用 "command": "cmd" 和 "args": ["/c", "npx", "-y", "codecov-mcp"].

Cline

打开Cline侧栏> MCP服务器 图标> 配置MCP服务器,然后添加:

{
  "mcpServers": {
    "codecov": {
      "command": "npx",
      "args": ["-y", "codecov-mcp"],
      "env": {
        "CODECOV_TOKEN": "your-token-here"
      }
    }
  }
}

窗户: 使用 "command": "cmd" 和 "args": ["/c", "npx", "-y", "codecov-mcp"].

Continue

添加 .continue/config.yaml 或通过继续设置UI:

mcpServers:
  - name: codecov
    command: npx
    args:
      - -y
      - codecov-mcp
    env:
      CODECOV_TOKEN: your-token-here
Zed

添加到Zed设置(settings.json 通过 Zed>设置 或 文件>设置):

{
  "context_servers": {
    "codecov": {
      "command": {
        "path": "npx",
        "args": ["-y", "codecov-mcp"],
        "env": {
          "CODECOV_TOKEN": "your-token-here"
        }
      }
    }
  }
}
Claude Desktop

打开克劳德桌面> 设置>开发人员>编辑配置,然后添加:

macOS/Linux:

{
  "mcpServers": {
    "codecov": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "codecov-mcp"],
      "env": {
        "CODECOV_TOKEN": "your-token-here"
      }
    }
  }
}

窗户:

{
  "mcpServers": {
    "codecov": {
      "type": "stdio",
      "command": "cmd",
      "args": ["/c", "npx", "-y", "codecov-mcp"],
      "env": {
        "CODECOV_TOKEN": "your-token-here"
      }
    }
  }
}

保存后重新启动Claude Desktop。

如果你在一个具有公共GitHub/GitLab/Bitbucket远程的git仓库中,服务器会自动检测你的服务、所有者和仓库。企业/自托管用户应设置 CODECOV_SERVICE, CODECOV_OWNER,以及 CODECOV_REPO 明确地。

3.开始使用它

问你的AI代理一些事情,比如:

“此回购的当前覆盖范围是多少?”

“向我展示PR#42的覆盖影响”

“哪些文件的覆盖率最差?”

“src/auth.ts中哪些行未被测试覆盖?”

“有什么不稳定的测试吗?”


工具(共37个,35个默认+2个管理员选择加入)

覆盖

工具 说明
get_coverage_totals 提交的覆盖率摘要——默认情况下仅为效率而总计。集 include_files=true 对于每个文件的数据。
get_coverage_trend 每个间隔的最小/最大/平均时间序列覆盖数据
get_coverage_report 完整报告,包括每个文件的覆盖范围和行级详细信息
get_coverage_tree 按目录分层覆盖——非常适合查找低覆盖区域
get_file_coverage 文件的逐行覆盖率,计算 uncoveredLines 阵列

比较(全部接受 pullid 用于PR比较)

工具 说明
compare_coverage 比较两个提交或一个PR——base/head/diff总计和每个文件的更改
compare_impacted_files 仅覆盖范围发生变化的文件——对大型PR有效
compare_file 单个文件的行级覆盖率差异
compare_flags 按标志比较(单位、积分、e2e)
compare_components 按组件(前端、后端)进行比较
compare_segments 块级差异——可用的最细粒度视图

拉取请求

工具 说明
list_pulls 具有覆盖影响的PR,可按州过滤
get_pull PR的基础/头部/补丁覆盖百分比

存储库和分支

工具 说明
list_repos 所有者的所有存储库,可过滤和排序
get_repo 回购详情和当前覆盖范围
get_repo_config 活动编解码器YAML配置
list_branches 有覆盖数据的分支机构
get_branch 特定分支机构的覆盖范围

提交

工具 说明
list_commits 承保总额承诺
get_commit 承诺的详细覆盖范围
list_commit_uploads 上传会话--对调试CI很有用

标志和组件

工具 说明
list_flags 覆盖标志和百分比
get_flag_coverage_trend 特定旗帜的时间序列
list_components codecov.yaml中定义的覆盖率组件

所有者和用户

工具 说明
list_owners 可访问令牌的组织/用户
get_owner 所有者详细信息
list_users 处于激活状态的组织中的用户
get_user 用户详细信息

管理工具(选择加入)

这些工具是 默认情况下禁用 为了安全。集 CODECOV_ENABLE_ADMIN_TOOLS=true 以使他们能够。

工具 说明
update_user 激活/停用用户(需要 confirm: true)
list_user_sessions 带有令牌和时间戳的登录会话

测试分析和评估

工具 说明
list_test_analytics 通过/失败/持续时间分析的测试结果
get_eval_summary AI/LLM评估指标
get_eval_comparison 比较提交之间的eval指标

复合(高价值多调用工具)

工具 说明
get_coverage_summary 从这里开始。 在一次通话中实现全面的态势感知——回购覆盖率、趋势方向、标志分解和未平仓PR计数。
get_pr_coverage 最适合代码审查。 在一次通话中将PR详细信息(补丁/基础/头部覆盖率)与受影响的文件相结合。
find_flaky_tests 在默认分支上失败的测试——强而不稳定的测试候选者
validate_yaml 验证 codecov.yaml 提交之前(无需身份验证)

提示(5)

MCP提示是AI代理可以执行的可重用工作流:

提示 描述
coverage_review 分析覆盖差距并提出改进建议
pr_coverage_check 端到端审查PR的覆盖范围影响
suggest_tests 为文件中未覆盖的行建议测试用例
flaky_test_report 需要注意的片状测试报告
coverage_health_check 带有等级和行动项目的完整回购健康报告卡

资源(4)

MCP资源提供您的代理可以直接读取的数据:

URI 描述
codecov://{owner}/repos 所有者的所有repos
codecov://repo/{owner}/{repo} 回购覆盖率摘要
codecov://repo/{owner}/{repo}/flags 旗帜覆盖范围
codecov://repo/{owner}/{repo}/components 组件覆盖范围

配置

所有配置都是通过环境变量进行的:

变量 必填 默认 描述
CODECOV_TOKEN 是* - Codecov API访问令牌
CODECOV_API_BASE_URL 没有 https://api.codecov.io API基本URL(用于自托管)
CODECOV_SERVICE 否 自动检测到 github, gitlab, bitbucket等等。
CODECOV_OWNER 否 自动检测到 组织或用户名
CODECOV_REPO 否 自动检测到 存储库名称
CODECOV_TIMEOUT_MS 没有 30000 请求超时(毫秒)
CODECOV_MAX_RETRIES 没有 3 429/5xx上的最大重试次数
CODECOV_CACHE_TTL_MS 没有 300000 缓存TTL(毫秒)(5分钟)
CODECOV_ENABLE_ADMIN_TOOLS 没有 false 启用 update_user 和 list_user_sessions

*不需要 validate_yaml 其使用公共端点。

参数解析顺序

对于 service, owner,以及 repo,服务器按以下顺序解析值:

  1. 工具参数 --直接在工具调用中传递
  2. 环境变量 — CODECOV_SERVICE, CODECOV_OWNER, CODECOV_REPO
  3. Git 远程 --自动检测自 git remote get-url origin
  4. 错误 --明确的信息,解释要设置什么

支持服务列表

服务 价值
GitHub.com github
GitLab.com gitlab
比特桶云 bitbucket
GitHub企业版 github_enterprise
GitLab自我管理 gitlab_enterprise
比特桶数据中心 bitbucket_server

故障排除

错误 修复
CODECOV_TOKEN is not set 使用A API访问令牌 (不上传令牌)来自 编解码器设置
Could not determine git service 使用可识别的远程或设置从git仓库运行 CODECOV_SERVICE/CODECOV_OWNER/CODECOV_REPO
Authentication failed (401) 令牌无效或已过期--生成一个新的令牌
Resource not found (404) 检查所有者/回购名称以及回购是否有覆盖率数据
视窗: spawn npx ENOENT 使用 "command": "cmd" 随着 "args": ["/c", "npx", "-y", "codecov-mcp"],或尝试 "command": "npx.cmd"
陈旧数据 设置 CODECOV_CACHE_TTL_MS=0 禁用缓存

更多故障排除: 安装指南——故障排除


发展

git clone https://github.com/ScottN-PV/codecov-mcp.git
cd codecov-mcp
npm install
npm run build
npm test

脚本

命令 描述
npm run build 将TypeScript编译为 dist/
npm test 运行单元测试
npm run test:coverage 使用覆盖率报告运行测试
npm run lint ESLint棉绒

项目结构

src/
├── index.ts          # Entry point (stdio transport)
├── server.ts         # MCP server setup — registers all tools/prompts/resources
├── client.ts         # Codecov API client with retry and caching
├── config.ts         # Environment variable configuration
├── cache.ts          # LRU cache with TTL
├── types.ts          # TypeScript type definitions
├── schemas/
│   └── shared.ts     # Shared Zod schemas (service, pagination, etc.)
├── tools/            # Tool implementations (one file per API group)
│   ├── coverage.ts   # get_coverage_totals, get_coverage_tree, etc.
│   ├── comparison.ts # compare_coverage, compare_impacted_files, etc.
│   ├── composite.ts  # get_coverage_summary, get_pr_coverage, etc.
│   └── ...           # owners, users, repos, branches, commits, pulls, flags, components, test-analytics, evaluations
├── prompts/          # MCP prompt definitions
├── resources/        # MCP resource definitions
└── utils/            # Error handling, formatting, git remote parsing

许可证

麻省理工学院——见 许可证 了解详情。