MCP server
ffgit ships a Model Context Protocol server, ffgit-mcp, inside the app. Coding agents read repositories through ffgit’s own Git core and can ask the running app to change them. The server itself never writes.
Set it up
Section titled “Set it up”Main menu → Coding agents (MCP)… shows ready-to-copy commands that already allow the current workspace’s project folders. On macOS the helper is /Applications/ffgit.app/Contents/MacOS/ffgit-mcp; pass one --allow per folder.
claude mcp add --scope user ffgit -- \ /Applications/ffgit.app/Contents/MacOS/ffgit-mcp --allow ~/codecodex mcp add ffgit -- \ /Applications/ffgit.app/Contents/MacOS/ffgit-mcp --allow ~/code{ "mcpServers": { "ffgit": { "command": "/Applications/ffgit.app/Contents/MacOS/ffgit-mcp", "args": ["--allow", "/Users/you/code"] } }}Agents you start from ffgit get these tools automatically for their session.
Read tools
Section titled “Read tools”Read-only, non-destructive and idempotent:
| Tool | What it returns |
|---|---|
ffgit_status | Branch, HEAD, an unfinished operation, staged, unstaged, untracked and conflicted files, linked worktrees |
ffgit_branches | Local and remote-tracking branches with upstream and ahead/behind counts |
ffgit_log | History on all branches or one ref, searchable by message, author, hash, path or code |
ffgit_show_commit | Author, date, full message, parents and changed files |
ffgit_diff | Working tree, staged, or between two commits, optionally for one path |
ffgit_blame, ffgit_line_history | Blame for up to 2,000 lines; git log -L for a line range |
ffgit_grep | Literal text in tracked files, in the working tree or at a commit |
ffgit_conflicts | The operation, which side is ours and theirs, and each conflict block |
ffgit_backups | The worktree’s recovery copies |
Files listed in .ffignore are reported apart, as expected changes.
Changes you approve
Section titled “Changes you approve”Agents can ask to stage, unstage, commit, create a branch, stash, resolve a conflict, continue an operation, and — destructively — skip a commit or abort an operation. Push, pull, discard and branch or worktree removal are not offered.
The running app carries out each change with a recovery copy, according to Changes from agents in Coding agents (MCP)…:
- Off — declines every change.
- Ask every time (default) — shows a prompt naming the agent, the repository and the change; it runs only after Approve.
- Allow without asking — runs changes at once, including repository hooks and filters.