The composite helpers are the reason to prefer this over shelling out to p4: a changelist inspection returns the describe, the linked jobs and the reviewers together, and a workspace snapshot bundles info, status, opened files and recent changes — so a review question does not turn into a chain of round trips. Read-only and delete-disabled are the shipped defaults, which means a first connection cannot change the depot even by accident.
A Perforce server that drives the p4 CLI and returns structured JSON instead of parsed terminal output. It ships read-only by default, with the write-capable tools blocked until the safety flags are changed.
- Server and client information, workspace status, opened files, and the depot-to-local-to-workspace mappings for a path
- Submitted changelists listed with filtering, one described with its metadata, affected files and optionally its diff, and file history with per-line blame
- Diffs both ways: workspace against depot, and depot path against depot path server-side with no client mapping needed
- Depot browsing — files with metadata, directories, file sizes and disk usage, and text search across depot files
- Integration state: changelists not yet integrated between two paths, integration history, and merge conflict resolution
- Review workflow: changelists pending review, the reviewers for a file or change, and shelving and unshelving for review
- File operations when writes are enabled — add, edit, delete, revert, sync, copy, move, integrate and merge
- Changelists created, updated and submitted, individually or from the default changelist
- Streams, labels, users, clients, and jobs with the fixes linking changelists to them
- Composite helpers that collapse a workflow into one call — a review bundle, a full changelist inspection, path sync analysis, per-file inspection, a workspace snapshot, a search with metadata and previews, and review preparation
- Audit log entries and compliance configuration, where audit logging is enabled on the server
A Perforce server you have an account on, and the Perforce CLI installed and reachable as p4 or p4.exe — this server drives that binary rather than speaking the protocol itself. P4_PATH points at it if it is not on PATH. Connection settings come from a .p4config file or the MCP env block: P4PORT, P4USER, P4CLIENT and P4PASSWD. Node.js 18 or newer; npm install -g mcp-perforce-server from npm, currently 3.3.0. It runs over stdio by default; --transport=sse starts an HTTP server instead, configured with MCP_SSE_PORT, MCP_SSE_HOST, MCP_SSE_PATH, MCP_SSE_CORS_ORIGIN and, when you enable it, MCP_SSE_ENABLE_AUTH with MCP_SSE_AUTH_TOKEN. The safe profile is the default: P4_READONLY_MODE=true blocks the write-capable tools and P4_DISABLE_DELETE=true blocks deletion.
One command plus a key — npm install -g mcp-perforce-server, then supply credentials
