Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者による説明(英語の原文)
Perforce P4 MCP server for version control and P4 DAM digital asset management.
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
P4PORT, P4USER, P4CLIENT, P4PASSWD, P4DAM_API_KEY必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます
{
"mcpServers": {
"p4mcp": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"P4PORT",
"-e",
"P4USER",
"-e",
"P4CLIENT",
"-e",
"P4PASSWD",
"-e",
"P4DAM_API_KEY",
"ghcr.io/perforce/p4mcp-server:2026.4.3126709"
],
"env": {
"P4PORT": "your-value",
"P4USER": "your-value",
"P4CLIENT": "your-value",
"P4PASSWD": "your-value",
"P4DAM_API_KEY": "your-value"
}
}
}
}ターミナルでこれを実行します
claude mcp add p4mcp --env P4PORT=your-value --env P4USER=your-value --env P4CLIENT=your-value --env P4PASSWD=your-value --env P4DAM_API_KEY=your-value -- docker run -i --rm -e P4PORT -e P4USER -e P4CLIENT -e P4PASSWD -e P4DAM_API_KEY ghcr.io/perforce/p4mcp-server:2026.4.3126709動かす前に、空欄の値を入力してください。
プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"p4mcp": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"P4PORT",
"-e",
"P4USER",
"-e",
"P4CLIENT",
"-e",
"P4PASSWD",
"-e",
"P4DAM_API_KEY",
"ghcr.io/perforce/p4mcp-server:2026.4.3126709"
],
"env": {
"P4PORT": "your-value",
"P4USER": "your-value",
"P4CLIENT": "your-value",
"P4PASSWD": "your-value",
"P4DAM_API_KEY": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"p4mcp": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"P4PORT",
"-e",
"P4USER",
"-e",
"P4CLIENT",
"-e",
"P4PASSWD",
"-e",
"P4DAM_API_KEY",
"ghcr.io/perforce/p4mcp-server:2026.4.3126709"
],
"env": {
"P4PORT": "your-value",
"P4USER": "your-value",
"P4CLIENT": "your-value",
"P4PASSWD": "your-value",
"P4DAM_API_KEY": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
P4PORT envP4USER envP4CLIENT envP4PASSWD envP4DAM_API_KEY envこの設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月8日にチェック
レジストリ名は、リポジトリを所有するGitHubアカウント perforce で確認済みです
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
これはパソコンで動くため、インターネット上のエンドポイントはありません
パソコンで動き、代わりにローカルの設定を使います
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
GitHubリポジトリの最終更新は–、最新バージョン(2026.4.3126709)がレジストリに届いたのは6 日前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにDockerも必要です。
同じカテゴリには:Spec Driven Development, Remote Desktop Commander, aamio rendezvous
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:↓ 週あたりのダウンロードi★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
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.
Meet an agent you have not met, exchange messages that expire, and prove it happened. No account.
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
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",
冒頭だけを表示しています。続きはリポジトリで読めます