Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Beschreibung vom Entwickler (englisches Original)
Perforce P4 MCP Server is a MCP server that integrates with the Perforce P4 version control system.
Diese drei werden nie zu einer Punktzahl zusammengefasst: Meinungen, Messungen und Beliebtheit sind verschiedene Dinge.
Für diesen Server haben wir noch keine Zusammenfassung in einfacher Sprache geschrieben. Unten stehen die Fakten, die wir aus der Registry gelesen haben.
Wähle die KI-App, die du nutzt, und kopiere die Einstellungen.
Der Entwickler hat in der Registry keine Installationsangaben gemacht. Sieh dir unten die README des Entwicklers an.
Läuft auf deinem Computer; die Tool-Liste erscheint nach der Installation in deiner KI-App.
Wir prüfen Informationen, die jeder sehen kann; den Code haben wir nicht gelesen. Checks, die nicht zutreffen, werden nicht mitgezählt. · Geprüft am 7. Nov. 2026
Der Herausgeber (hjain-perforce) ist nicht der Repo-Inhaber (perforce); vielleicht hat jemand anderes ihn eingetragen
Dieses Repo haben wir noch nicht von GitHub gelesen
Dieses Repo haben wir noch nicht von GitHub gelesen
Dieser Server läuft auf deinem Computer; es gibt keinen Endpunkt im Internet
Läuft auf deinem Computer und nutzt stattdessen lokale Einstellungen
Läuft auf deinem Computer; Tool-Listen können wir nur von Endpunkten im Internet lesen
Verglichen mit allen aktiven Servern dieser Kategorie in der Registry. Sterne zählen nur, wenn dem Herausgeber das Repo gehört.
Er hat 0 von 1 zutreffenden Basischecks bestanden. Den Code haben wir nicht gelesen. Bevor du einen Schlüssel oder Token hinzufügst, sieh nach, welche Zugriffe der Server verlangt, und nutze einen Schlüssel, der nur die Berechtigungen hat, die du brauchst.
Die Registry nennt keinen erforderlichen Schlüssel, manche Server bitten dich aber bei der ersten Nutzung, dich anzumelden.
Er läuft auf deinem Computer. Deine KI-App startet ihn bei Bedarf, und die Daten laufen nicht über die Server des Entwicklers (außer der Server ruft selbst einen Onlinedienst auf).
Das GitHub-Repo wurde zuletzt – geändert, und die neueste Version (2025.1.2830393) kam vor 11 Monaten in die Registry.
Apps, die MCP unterstützen, etwa Claude Desktop, Claude Code, Cursor und VS Code.
In derselben Kategorie: Spec Driven Development, Remote Desktop Commander, Detailing Manager
Server derselben Kategorie von anderen Entwicklern, sortiert nach Sternen.
So liest du eine Karte:★ GitHub-SterneiDrei Säulen: Bewertungen · Checks · NutzungiAktualisiert = neueste Version in der Registry veröffentlichti
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Connect your auto detailing studio's tasks, cars, clients and revenue to Claude or ChatGPT.
Unverändert aus dem Repo des Entwicklers übernommen. PopNx MCP hat den Inhalt weder geprüft noch empfiehlt es ihn. HTML, Bilder und Skripte wurden entfernt. Links führen von dieser Website weg.
Perforce P4 MCP Server
Perforce P4 MCP Server is a Model Context Protocol (MCP) server that integrates with the Perforce P4 version control system. It is built on FastMCP with direct P4 Python bindings to expose safe, structured read/write tools for changelists, files, shelves, workspaces, jobs, reviews, and server metadata. It also integrates with P4 DAM through its REST API to manage resources .
Features · Prerequisites · System Requirements · Install · Deployment · Client Configurations · P4 Configurations · Tools
Logging · Troubleshoot · Support · Contributions · License
logs/ directory.| Component | Supported Versions |
|---|
| Operating Systems | Windows 10+ macOS 12+ Linux (glibc 2.34+, e.g. Ubuntu 22.04+, Rocky Linux 9+) | | Perforce P4 Server | 2026.1 *(earlier versions untested)* | | Python | 3.11+ *(required only for building from source)* |
uvx (easiest, no install required)
If you have uv installed, you can run P4 MCP Server directly without any manual installation:
# Run the server
uvx p4mcp-server
uvx p4mcp-server --version
uvx p4mcp-server --readonly --allow-usage
This automatically fetches and runs the latest version from PyPI. No Python virtual environment setup or dependency management needed.
Requirements:
Pre-built binaries (recommended for offline/air-gapped)
Download the appropriate binary for your operating system:
Extract and use the executable directly. No Python installation is required.
# macOS / Linux
unzip p4-mcp-server-mac.zip # or p4-mcp-server-linux.zip ./p4-mcp-server --help
# Windows
Expand-Archive p4-mcp-server-win.zip -DestinationPath . .\p4-mcp-server.exe --help
Build from source
Requirements:
Build:
Output:
Local
Run the P4 MCP Server directly on your machine using the default STDIO transport.
Add the following to your mcp.json:
{
"mcpServers": { "perforce-p4-mcp": { "command": "/absolute/path/to/p4-mcp-server", "env": { "P4PORT": "ssl:perforce.example.com:1666", "P4USER": "your_username", "P4CLIENT": "your_workspace", "P4DAM_API_KEY": "your_api_key" }, "args": [ "--readonly", "--allow-usage" ] } } }
Note: This example shows explicit
envvalues. IfP4CONFIGis set, you can omit them and use the generic configuration example in theMCP client configurationsection instead.
Docker
Run the P4 MCP Server from a Docker container with STDIO transport, allowing MCP clients to manage the container lifecycle.
Note: Docker-based execution is currently supported on macOS and Linux only.
Prerequisites
Pull the Docker image
docker pull ghcr.io/perforce/p4mcp-server:latest
Build from source instead
cd /path/to/p4mcp-server
docker build -t ghcr.io/perforce/p4mcp-server .
Configure MCP Client
Add the following to your mcp.json:
{
"servers": { "perforce-p4mcp-docker": { "command": "docker", "args": [ "run", "-i", "--rm", "--hostname", "your-hostname", "-e", "P4PORT=ssl:perforce.example.com:1666", "-e", "P4USER=your_username", "-e", "P4CLIENT=your_workspace", "-e", "P4DAM_API_KEY=your_api_key", "-v", "/Users/your_username/.p4tickets:/home/mcpuser/.p4tickets:ro", "ghcr.io/perforce/p4mcp-server:latest" ] } } }
Configuration Options
| Flag | Description |
|---|---|
-i | Interactive mode (required for STDIO) |
--rm | Remove container when stopped |
--hostname | Match workspace host restriction |
-e P4PORT | P4 server address |
-e P4USER | P4 username |
-e P4CLIENT | Workspace name |
-v | Mount P4 tickets file |
Authentication
Using P4 tickets:
# macOS/Linux
-v /Users/your_username/.p4tickets:/home/mcpuser/.p4tickets:ro
Note: Use the full path to your tickets file (not
~). After runningp4 login, restart the MCP server to pick up the new ticket.
Note: By default the container starts as root, copies the bind-mounted tickets file to a location readable by the non-root
mcpuser, then drops privileges (viagosu) so the server runs asmcpuser. This auto-copy lets an owner-only (0600) tickets file owned by a foreign uid work on runtimes that preserve host ownership (native Linux Docker/podman). A:robind mount of the ticket is supported — the file is copied, not modified in place (this is distinct from a read-only container root filesystem; see below). Note the auto-copy runs only when the container starts as root (the default); forcing a non-root uid or a read-only root filesystem changes this behavior, as described below.
Kubernetes / restricted (non-root-enforced) profiles: the image intentionally starts as root and drops to
mcpuser(uid 1000) viagosu, so the server always runs non-root — both paths are supported. ForrunAsNonRoot/ restricted PodSecurity / OpenShift restricted SCC, setsecurityContext.runAsUser: 1000(andfsGroup: 1000when mounting the ticket). In that mode the entrypoint's root-only ticket copy is skipped, so the mounted ticket must already be readable by uid 1000 (owner-matched mount,-e P4PASSWD="your_ticket_content", orpodman -v :/home/mcpuser/.p4tickets:U).
Read-only root filesystem (`--read-only` / `readOnlyRootFilesystem`): provide a writable/tmpfs
/home/mcpuser(e.g.--tmpfs /home/mcpuser) so the ticket copy can be written; otherwise the ticket copy fails and P4 will report a normal auth error.
Using a password:
-e P4PASSWD="your_password"
Workspace Host Restrictions
⚠️ Important: Docker containers have their own hostname, which differs from your local machine. If your P4 workspace is restricted to a specific host, operations like
syncwill fail.
To resolve this, set the container hostname to match your workspace's host restriction:
--hostname your-hostname
To find your workspace host name:
# macOS/Linux
p4 client -o your_workspace | grep "^Host:"
Mounting Client Root for Write Operations
⚠️ Important: By default, the Docker container cannot access your local workspace files. For write operations like
sync,submit, orreconcile, you must mount your client root directory into the container at the same path.
Add a volume mount for your client root:
-v /path/to/your/client/root:/path/to/your/client/root
Example configuration with client root mounted:
{
"servers": { "perforce-p4mcp-docker": { "command": "docker", "args": [ "run", "-i", "--rm", "--hostname", "your-hostname", "-e", "P4PORT=ssl:perforce.example.com:1666", "-e", "P4USER=your_username", "-e", "P4CLIENT=your_workspace", "-e", "P4DAM_API_KEY=your_api_key", "-v", "/Users/your_username/.p4tickets:/home/mcpuser/.p4tickets", "-v", "/path/to/client/root:/path/to/client/root", "ghcr.io/perforce/p4mcp-server:latest" ] } } }
To find your client root:
p4 client -o your_workspace | grep "^Root:"
Note: The mount path inside the container must match the client root path exactly, as P4 tracks files by their absolute paths.
Security: HTTP binds to
127.0.0.1(local only) by default. Use--host 0.0.0.0for remote clients. HTTP has no authentication, so expose it only on trusted networks.
VM
Run the MCP server on a VM using the HTTP transport, allowing clients to connect over the network.
Start the server on the VM:
P4PORT=ssl:perforce.example.com:1666 P4USER=your_username P4PASSWD=YOUR_TICKET ./p4-mcp-server --readonly --transport http --host 0.0.0.0 --port 8000
Configure the MCP client:
Add the following to your mcp.json:
{
"servers": { "perforce-p4-mcp": { "type": "http",
Nur der Anfang wird gezeigt; den Rest findest du im Repo