Read-only tools
Expose repository status, fleet signals, diff context and recovery surfaces without granting mutation endpoints.
FluxGit's MCP layer is designed for AI agents that need repository context: status, fleet radar, diffs, reflog hints, restore points and safety timeline details. Agents inspect read-only; Git writes stay controlled by the desktop app and the human user.
AI coding agents can help explain diffs, summarize branch state and plan next steps. They should not get silent end-to-end control over reset, rebase, patch application or branch mutation just because they can read a repo.
FluxGit does not claim that agents operate Git safely end-to-end. The MCP sidecar has validated read-only behavior, while installed app visibility and real client smoke testing remain part of beta hardening.
Expose repository status, fleet signals, diff context and recovery surfaces without granting mutation endpoints.
Risky Git actions stay in the FluxGit desktop cockpit where previews, safety rails and human confirmation can apply.
Beta workflows can review what context agents requested, helping teams debug and set trust boundaries.
The protocol is open. The shell speaks MCP and works without the app for standard Git inspection. The tools that need FluxGit return an explicit upgrade hint, not a fake answer.
repo.status, repo.refs, repo.history, repo.reflog, commit.details, worktree.changes, submodule.status, diff.text. Works with local git alone.
fleet.radar, diff.semantic, diff.semanticFallbacks, repo.conflictPreflight. Return documented fallback metadata without FluxGit; enriched when the gateway is configured.
safety.timeline, safety.eventDetails, flux.latestRestorePoint, flux.restorePoints, flux.restorePointDetails. Return error code 10001 without FluxGit because synthesizing them from local refs would mislead the agent.
Eighteen read-only tools, plus five write-with-UI-handshake tools that dispatch through the FluxGit approval card. All labelled with their tier. Direct mutations stay in the desktop cockpit; the agent only proposes.
repo.status · working tree, current branch, dirty pathsrepo.refs · branches, tags, remotes, stashesrepo.branchStack · current vs upstream/base/relatedrepo.history · paginated commit historyrepo.reflog · movement timeline with recovery hintscommit.details, worktree.changes, submodule.statusdiff.text · standard git diff compatible patchdiff.semantic · negotiated. Returns supported=false fallback unless FluxGit's semantic engine is wireddiff.semanticFallbacks · per-path fallback metadatafleet.radar · prioritized attention stack across selected repos. Cached refs only without FluxGit; predictive when gateway is wiredrepo.conflictPreflight · advisory merge/rebase outcome before running, never mutatingsafety.timeline · synthesized risk events from restore points + reflogsafety.eventDetails · drill-down into one eventflux.latestRestorePoint, flux.restorePoints, flux.restorePointDetails · audit-grade undo/redo pointsoperation.preview.merge · agent proposes a merge; FluxGit renders the approval cardoperation.preview.rebase · rewrites-history warning surfaced in the cardoperation.preview.discard · irrecoverable-warning card with path listoperation.preview.reset · mode-aware (hard mode forces strong confirmation)operation.preview.patch · monospace patch preview with applyToIndex toggleThe agent dispatches a proposal through the gateway; FluxGit shows a "🤖 Requested by AI agent" card in the desktop cockpit with the agent's plain-language reason. You approve or reject; FluxGit executes through the existing safety pipeline with restore points. The agent never holds write power.
Agents lie when they describe a patch as "semantic" without a semantic payload behind it. The contract makes that impossible: diff.semantic only returns supported: true when the FluxGit engine produced structural output. Otherwise it returns the arguments the agent should pass to diff.text as a text-diff fallback, and a precise reason.
Agents connected to FluxGit MCP must say "FluxGit reported a text-diff fallback for this file" when supported=false, never "this is a semantic diff". The wording is published as a contract; we treat over-claiming as a bug.
No silent fallback. No fake structure inferred from a text patch. If the file fell back, the agent surfaces which path and why. Senior engineers notice this; it's why we wrote it down.
FluxGit MCP is protocol-aligned, not vendor-aligned. Paste this block into any MCP host config. The desktop app pre-fills the absolute sidecar path and gateway address from the running process.
{
"mcpServers": {
"fluxgit": {
"command": "<absolute path to fluxgit-mcp-sidecar bundled with FluxGit>",
"env": {
"FLUXGIT_GATEWAY_ADDR": "<auto-filled, e.g. 127.0.0.1:14660>",
"FLUXGIT_MCP_AUDIT_LOG": "<optional path to a JSONL audit file>"
}
}
}
}
Works with any MCP-compatible code agent. No client-specific install required.
FluxGit MCP closes the loop: agents propose writes, FluxGit shows the preview, the user approves in the app, FluxGit executes through its existing safety pipeline. The agent never has write power; the user reviews everything in the UI they already trust.
All five operations are live: operation.preview.merge, operation.preview.rebase, operation.preview.discard, operation.preview.reset, operation.preview.patch. Every preview gets a previewId; the audit chain links agent intent → user approval → execution.
Cloud-hosted MCP servers without an app cannot do this. FluxGit can because the approval UI lives in the desktop cockpit. It's the structural reason FluxGit-powered tools require FluxGit.
MCP can expose sensitive repository facts to a connected agent, so the boundary must be explicit. FluxGit keeps writes blocked from MCP, labels semantic diff fallback, avoids aggressive fleet fetch from agents and treats AI/provider data sharing as a separate user-controlled decision. The audit log hashes arguments rather than storing them verbatim.