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. 05GitHubぞのむンラむンコメントずレポヌト投皿

掻甚シヌン

  1. 01GitHubプルリク゚ストのレビュヌ
  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 ずしお動䜜したす。

各レビュヌは次の 2 ぀の郚分で構成されたす。

  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 は、抂芁ずむンラむンコメントを含むレビュヌを 1 件投皿し、ゞョブの抂芁を曞き蟌み、risk-score、risk-level、verdict、findings の出力を蚭定したす。フォヌクからのプルリク゚ストには読み取り専甚トヌクンが付䞎されるため、レビュヌは投皿されたせんが、ゞョブの抂芁ず 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"]

1 行を無芖するには、その行に codeview-ignore コメントを远加したす。特定のルヌルを無芖するには、cv-ignore[CV-SEC-020] を远加したす。

プルリク゚ストをレビュヌするずき、蚭定は PR ではなくベヌスブランチから読み蟌たれたす。これにより、PR で怜出を無効にできないようにしおいたす。

セキュリティに関する泚意

codeview は他の人が制埡する入力を読み取るため、次の察策を行っおいたす。

  • 差分ず PR のテキストはデヌタずしおモデルに枡され、その䞭に曞かれた指瀺には埓わないよう指瀺されたす。モデルの回答は怜蚌され、差分に含たれおいないファむルや行を指し瀺す怜出結果は砎棄されたす。
  • GitHub に投皿されるテキストでは、@mentions、課題をクロヌズするキヌワヌド、画像、HTML コメントが無効化されたす。
  • ロヌカルの git コマンドでは、倖郚 diff ドラむバヌ、textconv、fsmonitor、ペヌゞャヌが無効になりたす。参照は怜蚌され、シンボリックリンクはたどりたせん。
  • 受け付けるのは、GitHub ホスト䞊の PR URL のみです。API キヌが、ロヌカル以倖のホストぞ平文の HTTP で送信されるこずはありたせん。
  • 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

コメント

MCP は初めおですか

プロトコルの抂芁から最初のサヌバヌの導入たで、よくある疑問にたずめお答えたす。

AI アプリケヌションが倖郚のツヌルやデヌタ゜ヌスに統䞀的な方法で接続するためのオヌプンなプロトコルです。クラむアントはモデルずの察話を担い、MCP サヌバヌはツヌル・リ゜ヌス・プロンプトテンプレヌトを提䟛したす。暙準メッセヌゞでやり取りするため、1 ぀のサヌバヌを耇数のクラむアントで再利甚できたす。