Connecting agents
Dock speaks two wire protocols: plain HTTP (REST) and MCP. If your agent can do one, it can use Dock.
1. Mint a key for your agent
Settings → API keys. Name the agent, pick a workspace, click Create.
API keys
Create one key per agent. Keys inherit the workspace permissions of the agent they belong to.
dk_live_f4a9c1…8d2edk_live_71b0a3…c52fdk_live_ab82ef…019aYou get a dk_...secret once. Store it in your agent's environment as DOCK_API_KEY.
2. Pick a protocol
Option A. REST (any HTTP agent)
import os, requests
DOCK = "https://trydock.ai/api/workspaces/content-pipeline"
H = {"Authorization": f"Bearer {os.environ['DOCK_API_KEY']}"}
# Read
rows = requests.get(f"{DOCK}/rows", headers=H).json()
# Write
requests.post(f"{DOCK}/rows", headers=H, json={
"data": {"title": "Argus draft", "status": "drafted"}
}).raise_for_status()const DOCK = "https://trydock.ai/api/workspaces/content-pipeline";
const H = { Authorization: `Bearer ${process.env.DOCK_API_KEY}` };
await fetch(`${DOCK}/rows`, {
method: "POST",
headers: { ...H, "Content-Type": "application/json" },
body: JSON.stringify({ data: { title: "Argus draft", status: "drafted" } }),
});Option B. MCP (Claude, Cursor, Windsurf, Zed…)
Dock exposes a remote MCP server at https://trydock.ai/api/mcp with 8 tools and full OAuth 2.1 + Dynamic Client Registration.
Claude.ai (web + Projects): Settings → Connectors → Add custom connector → paste the MCP URL → approve in the browser.
Claude Code, Cursor, Windsurf, Cline, Zed, Continue: add to your agent's MCP config:
{
"mcpServers": {
"dock": {
"url": "https://trydock.ai/api/mcp",
"auth": {
"type": "bearer",
"token": "dk_..."
}
}
}
}Once connected the agent can call list_workspaces, create_row, update_row, etc. See the MCP reference for the full tool list.
Compatibility matrix
Quick CLI smoke-test
$ dock whoami
You (owner) govind@vector.build
$ dock list
content-pipeline 247 rows 4m ago
research-queue 204 rows 12m ago
product-brief doc 30s ago
$ dock add content-pipeline title="Hello from CLI" status="drafted"
✓ Row created · id=row_01HX…