v0.2.0 · live
CAPFRAME
§ serverregistryfindings.v2

mcp-server-git

pypi:mcp-server-git@2026.1.14

Score
B94
Findings
2
Tools
12
Last scan
2026-06-05

Severity breakdown

Critical0
High1
Medium1
Low0
Info0

Worst finding

Tool `git_create_branch` name implies a side effect that is not declared

· git_create_branch

`git_create_branch` looks like a side-effecting tool (its name contains a mutation verb), but its `side_effects` declaration is []. A policy synthesizer cannot produce safe rules for this tool because it cannot tell what it actually does.

fix: Declare the tool's true side effects explicitly. If the tool is genuinely read-only, rename it to match (e.g. `email.preview` rather than `email.send`).

All 2 findings

  1. high
    Tool `git_create_branch` name implies a side effect that is not declared· git_create_branchexcessive agency

    `git_create_branch` looks like a side-effecting tool (its name contains a mutation verb), but its `side_effects` declaration is []. A policy synthesizer cannot produce safe rules for this tool because it cannot tell what it actually does.

    fix: Declare the tool's true side effects explicitly. If the tool is genuinely read-only, rename it to match (e.g. `email.preview` rather than `email.send`).

  2. medium
    Tool `git_checkout` description mentions money but no `money` side-effect is declared· git_checkoutexcessive agency

    Description: "Switches branches - Inputs: - `repo_path` (string): Path to Git repository - `branch_name` (string): Name of branch to checkout - Returns: Confirmation of branch switch" -- this references money/payment/refund/etc., but the declared side_effects ([]) don't include `money`. A capframe-bind policy that relies on declared side_effects to scope spend caveats will under-scope this tool.

    fix: Add `money` to the tool's `side_effects` declaration, or rewrite the description to clarify that no actual money moves.

How this was scored

Source registry tool surface extracted from the package's README + manifest (R3/R5/R6/R7 fire; schema-dependent rules deferred). Findings are emitted by the public capframe.findings.v1 schema. Score = 100 − (10·Critical + 4·High + 2·Medium + 1·Low), clamped to [0, 100].

Disagree with a finding? Open an issue.