mcpField
C
CodeView MCP 🪄

CodeView MCP 🪄

本地服务
pypi.org开发工具25 周前更新

关于 CodeView MCP 🪄

CodeView MCP 将代码审查 MCP 服务、CLI 和 GitHub Action 用于审查拉取请求、本地更改及差异。它结合正则安全检查与可选 AI 分析,并输出关联行号的问题、结论和风险分数。

主要功能

  1. 01审查拉取请求、本地更改和差异
  2. 02用正则规则检测安全问题
  3. 03可选 AI 分析缺陷与测试
  4. 04生成问题、结论和风险分数
  5. 05发布 GitHub 行内评论与报告

适用场景

  1. 01审查 GitHub 拉取请求
  2. 02检查暂存或未提交的代码更改
  3. 03按严重程度或风险控制 CI
  4. 04生成行内审查评论和 SARIF

MCP 相关

MCP 服务提供审查拉取请求、本地更改和差异文本、获取 PR 差异、发布审查以及查看规则和提供方状态的工具。它还提供审查提示词和资源,支持 stdio 或本机 Streamable HTTP 端点。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

codeview

CI License: MIT

codeview 可审查代码变更:GitHub 拉取请求、本地尚未提交的工作,或任意差异。 它既可以作为 MCP 服务运行(编辑器助手可以调用它),也可以作为命令行工具和 GitHub Action 运行。

每次审查包含两部分:

  1. 一组约 50 条正则规则,会检查新增行。它们可以捕获已提交的机密信息、通过字符串格式化构造的 SQL、eval、shell=True、被禁用的 TLS 验证,以及有风险的 GitHub Actions 工作流。
  2. 可选的 AI 检查,用于查找逻辑错误、边界情况和缺失的测试。它只使用提供免费套餐的服务(Gemini、Groq、Cerebras、OpenRouter),或通过 Ollama 使用本地模型,因此运行无需花费。

输出包括与文件和行号关联的问题列表、审查结论,以及 0–100 的风险评分和评分依据。

安装

需要 Python 3.11+。

pip install git+https://github.com/mann-uofg/codeview-mcp

或者使用 uv 直接运行,无需安装:

uvx --from git+https://github.com/mann-uofg/codeview-mcp codeview review

用法

codeview review https://github.com/psf/requests/pull/6883   # a pull request
codeview review owner/repo#123                              # short form
codeview review                                             # uncommitted changes in the current repo
codeview review --staged                                    # only staged changes
codeview review --branch --base main                        # current branch vs main
git diff HEAD~3 | codeview review --diff -                  # any diff

公开仓库无需令牌即可使用。对于私有仓库或要发布审查结果,请设置 GITHUB_TOKEN。 如果已登录 gh CLI,系统会自动使用其令牌。

其他实用选项:

-f, --format text|markdown|json|sarif
-o, --output FILE
--json-output FILE / --sarif-output FILE   write extra reports in the same run
--post [--dry-run]                         publish the review to the PR as inline comments
--fail-on high                             exit 1 if any finding is high or worse (default: high)
--max-risk 60                              exit 1 if the risk score is above 60
--no-ai                                    rules only
--provider gemini --model ...              pick the AI provider/model
--focus security                           ask the AI to concentrate on something

codeview rules 会列出所有规则,codeview providers 会显示已配置的 AI 服务,codeview init 会写入一个入门配置文件。

AI 服务

设置以下任意一个。如果设置了多个,则会按此顺序尝试;某个服务失败或触及速率限制时,会切换到下一个。

服务环境变量获取密钥
Google GeminiGEMINI_API_KEYhttps://aistudio.google.com/apikey
GroqGROQ_API_KEYhttps://console.groq.com/keys
CerebrasCEREBRAS_API_KEYhttps://cloud.cerebras.ai
OpenRouter(免费模型)OPENROUTER_API_KEYhttps://openrouter.ai/keys
Ollama(本地)CODEVIEW_OLLAMA=1 或 OLLAMA_HOSThttps://ollama.com
任意 OpenAI 兼容 APICODEVIEW_BASE_URL、CODEVIEW_MODEL、CODEVIEW_API_KEY

每个服务都有适用于其免费套餐的默认模型。codeview providers 会显示所用模型,--model 或 CODEVIEW_MODEL 可以覆盖它。差异内容会裁剪至适配各服务的限制范围内,响应也会缓存在本地,因此重复审查同一差异不会再次消耗配额。

未配置服务时,规则仍会运行。

MCP 服务

将以下内容添加到 MCP 客户端的配置中(Cursor、Windsurf、Zed 等使用此格式):

{
  "mcpServers": {
    "codeview": {
      "command": "uvx",
      "args": ["--from", "git+https://github.com/mann-uofg/codeview-mcp", "codeview", "serve"],
      "env": { "GEMINI_API_KEY": "...", "GITHUB_TOKEN": "..." }
    }
  }
}

对于 VS Code,将相同内容放在 .vscode/mcp.json 的 "servers" 下,并添加 "type": "stdio"。 codeview serve --http 则会在 127.0.0.1:8765/mcp 启动 Streamable HTTP 服务。

工具:

  • review_pull_request:审查 PR
  • review_local_changes:审查工作树、暂存区或分支变更
  • review_diff_text:审查作为文本传入的差异
  • get_pull_request_diff:获取 PR 元数据和带行号的差异,供助手自行阅读
  • post_review:将审查结果发布到 GitHub。除非传入 dry_run=false,否则为试运行;已发布过的评论会跳过。
  • list_rules、provider_status

它还提供提示词(deep_review、security_audit、suggest_tests、review_my_changes)和资源(codeview://rules、codeview://providers、codeview://config/example)。

GitHub Action

name: codeview
on: pull_request

permissions:
  contents: read
  pull-requests: write     # to post the review
  security-events: write   # only needed for the SARIF upload

jobs:
  review:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v7
      - uses: mann-uofg/codeview-mcp@v2
        with:
          gemini-api-key: ${{ secrets.GEMINI_API_KEY }}   # optional
          fail-on: critical
      - uses: github/codeql-action/upload-sarif@v4
        if: always()
        with:
          sarif_file: codeview.sarif

此 Action 会发布一条包含摘要和行内评论的审查,写入作业摘要,并设置 risk-score、risk-level、verdict 和 findings 输出。来自 fork 的拉取请求会获得只读令牌,因此不会在其中发布审查结果,但作业摘要和 SARIF 仍可正常使用。所有输入均列在 action.yml 中。

配置

在仓库根目录放置一个 .codeview.toml,或在 pyproject.toml 中添加一个 [tool.codeview] 表:

provider = "auto"
min_severity = "low"          # hide findings below this
fail_on = "high"              # or "never"
max_findings = 30
exclude = ["docs/**", "**/*.generated.ts"]
disable_rules = ["CV-QUAL-006"]
focus = ["security"]
instructions = "We use SQLAlchemy 2.x. Flag raw SQL built with string formatting."

[[custom_rules]]
id = "TEAM-001"
pattern = "print\\("
message = "Use the logger instead of print()."
severity = "low"
paths = ["src/**/*.py"]

要忽略某一行,可在该行添加 codeview-ignore 注释;要忽略特定规则,可添加 cv-ignore[CV-SEC-020]。

审查拉取请求时,配置会从基础分支读取,而不是从 PR 读取。这样一来,PR 就无法关闭原本可以发现其中问题的检查。

安全说明

codeview 会读取由他人控制的输入,因此:

  • 差异和 PR 文本会作为数据传递给模型,并指示模型不要遵循其中的任何内容。模型的回答会经过验证,指向差异中不存在的文件或行的发现会被丢弃。
  • 发布到 GitHub 的文本中,@mentions、关闭问题的关键词、图片和 HTML 注释都会经过处理,以防产生影响。
  • 运行本地 git 命令时,会关闭外部差异驱动程序、textconv、fsmonitor 和分页器。引用会经过验证,且不会跟随符号链接。
  • 只接受 GitHub 主机上的 PR URL。绝不会通过普通 HTTP 将 API 密钥发送到非本地主机。
  • HTTP 传输仅监听 localhost,并检查 Host/Origin 标头。

如需报告漏洞,请参阅 SECURITY.md。

开发

git clone https://github.com/mann-uofg/codeview-mcp
cd codeview-mcp
uv sync
uv run pytest
uv run ruff check . && uv run mypy

请参阅 CONTRIBUTING.md。更改记录列于 CHANGELOG.md。

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。