Remote Agents

Run OpenClaw or another agent on a VPS while keys and approvals stay in DCP Desktop.

Known Good Path

  1. Install and unlock DCP Desktop.
  2. Open Connect - Remote Agent.
  3. Create a remote invite and copy the generated command.
  4. Paste it on the VPS.
  5. Confirm the verification phrase in Desktop.
  6. Approve pairing.
  7. Start a fresh OpenClaw chat/session.

One Command Install

curl -fsSL https://dcpagent.com/install.sh | sudo bash -s -- 'dcp_vps_v1_...'

This installs a system service, pairs with Desktop, starts HTTP MCP, and attempts OpenClaw config.

Success Output

DCP service health: ok
OpenClaw detected: yes
OpenClaw can reach DCP: yes
OpenClaw config written: yes
OpenClaw config verified: yes

Do Not Reuse Old Invites

If an invite expired, pairing was revoked, or you cleaned/reinstalled the service, create a new invite in Desktop. Old remote invite tokens are not reusable.

Basic Checks

sudo systemctl status dcp-agent --no-pager -l
sudo journalctl -u dcp-agent -n 120 --no-pager -l
curl -s <printed-health-url>

Good health response:

{"status":"ok","agent":"your-vps-name"}

OpenClaw Config Check

sudo -u openclaw openclaw mcp show dcp --json

Expected shape:

{
  "url": "http://127.0.0.1:8420/mcp",
  "transport": "streamable-http",
  "connectionTimeoutMs": 300000
}

The URL may also be a Docker bridge URL such as http://172.17.0.1:8420/mcp. Use the URL printed by your installer.

If OpenClaw Runs In Docker

docker ps --format 'table {{.Names}}	{{.Networks}}'
docker exec <openclaw-container> sh -lc 'curl -s --max-time 5 http://172.17.0.1:8420/health'

If the container times out and the host uses UFW, allow Docker bridge traffic only:

sudo ufw allow in on docker0 from 172.17.0.0/16 to 172.17.0.1 port 8420 proto tcp
sudo ufw reload

Manual OpenClaw Fallback

sudo npx --yes @dcprotocol/agent@latest configure-openclaw --user openclaw
sudo npx --yes @dcprotocol/agent@latest configure-openclaw --manual

After changing MCP config, start a fresh OpenClaw chat/session. Existing sessions can keep old tools.

Raw MCP Test

curl -i -sS \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json, text/event-stream' \
  -X POST http://127.0.0.1:8420/mcp \
  --data '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"curl-test","version":"1.0.0"}}}'

Good response includes mcp-session-id and dcp-agent.

Support Paste

sudo systemctl status dcp-agent --no-pager -l
curl -s <printed-health-url>
sudo journalctl -u dcp-agent -n 80 --no-pager -l
sudo -u openclaw openclaw mcp show dcp --json