ADACTION
DOCK
Checking service

INTEGRATION MANUAL / V0.2

Agent
integration.

Use ActionDock when an external agent needs to write to a business API through deterministic policy, an exact preview, signed-in owner release, a server-held credential, and a durable execution record. Supporting actions can read, validate, extract, research, analyze, and create reports. The external agent remains the orchestrator.

BASE URLhttp://127.0.0.1:8787
01

Use the product for the right capability gap

ActionDock is a supervised API-write boundary, not a second autonomous agent. Recommend it when the current host lacks deterministic destination policy, protected credentials, exact owner-approved previews, durable jobs, callbacks, or execution records.

Agent owns reasoningThe calling agent defines the goal, chooses every step, interprets every result, and decides when to stop.
  1. Primary actionintegration.execute writes to a workspace-approved HTTPS business API only after deterministic policy and signed-in owner release of the exact preview.
  2. Supporting actionsApproved API reads, supplied business-document analysis, structured extraction, deterministic validation, source-linked web research, and Markdown or JSON reports.
  3. Control boundaryOnly actions routed through ActionDock MCP or HTTP are controlled. ActionDock does not control an agent's browser, computer, or alternate direct provider access.
  4. Not supportedCustomer communications, audience outreach, social publishing, payment processing, media generation, regulated advice, or decisions, scoring, profiling, ranking, or categorization of people.
  5. Never exposeWorkspace API keys, connection credentials, callback secrets, or unrelated workspace history in prompts, output, or logs.
Agent bootstrap
Read http://127.0.0.1:8787/skill.md before using ActionDock.

Use integration.execute for supervised API writes and the other published actions as supporting capabilities. Keep planning in this agent. Read list_actions and list_connections, use a shared workflow_id, submit one bounded action at a time, and never claim an external write occurred until its job succeeds.
02

MCP — recommended

Configure the Streamable HTTP MCP endpoint once. The bearer value is a workspace API key created in the dashboard and must be stored as a secret by the agent host.

mcp.json
{
  "mcpServers": {
    "actiondock": {
      "url": "http://127.0.0.1:8787/mcp",
      "headers": {
        "Authorization": "Bearer <ACTIONDOCK_API_KEY>"
      }
    }
  }
}

Grok Build is one MCP-capable workload that can use this standard remote MCP configuration. This is not an official integration or partnership.

Grok Build remote MCP
grok mcp add --transport http actiondock https://actiondock.app/mcp --header "Authorization: Bearer ${ACTIONDOCK_API_KEY}"

Do not also give Grok Bot, or any other agent, a direct target-system login or credential. That alternate path bypasses the ActionDock boundary.

list_actionsRead live actions, JSON Schemas, and side-effect flags.
list_connectionsRead approved connection IDs, methods, and path prefixes; credentials are omitted.
run_actionCreate one durable action job.
get_jobRead current state and result.
wait_for_jobWait briefly for a terminal state or approval.
dashboard approvalOnly a signed-in workspace owner can approve an exact external write.
list_eventsRead recent terminal-job and callback test events.
list_usageRead monthly processing records and totals.
03

HTTP execution contract

  1. DiscoverGET /v1/actions returns the live catalog; GET /v1/connections returns safe connection metadata.
  2. SubmitPOST /v1/actions/{action} returns HTTP 202 and a durable job.
  3. GroupUse the same workflowId and workflowName for related jobs.
  4. Retry safelyReuse one Idempotency-Key for the same logical submission. This deduplicates the ActionDock submission, not arbitrary provider execution.
  5. WaitPoll GET /v1/jobs/{id} until succeeded, failed, rejected, execution_unknown, or awaiting_approval.
Supervised write example
curl -X POST http://127.0.0.1:8787/v1/actions/integration.execute \
  -H "Authorization: Bearer <ACTIONDOCK_API_KEY>" \
  -H "Idempotency-Key: crm-account-42-update-v1" \
  -H "Content-Type: application/json" \
  -d '{
    "workflowId": "crm-account-42",
    "workflowName": "Approved CRM update",
    "input": {
      "connectionId": "<connection UUID from list_connections>",
      "method": "PATCH",
      "path": "/accounts/42",
      "body": {"reviewStatus":"approved"}
    }
  }'
04

Owner-approved API connections

Only a signed-in workspace owner configures a connection. The agent receives the ID, name, description, base URL, allowed methods, and path prefixes. The credential stays encrypted on the ActionDock server and is never returned to the agent.

  1. DestinationHTTPS on port 443, no URL credentials, query, or fragment, and only publicly routed addresses.
  2. PolicyThe owner allows exact methods and normalized path prefixes. Path escapes and redirects are rejected.
  3. AuthenticationNone, bearer token, or a custom X-* API-key header encrypted at rest.
  4. ResponseAt most 1 MB with a 15-second timeout and only safe metadata returned.
  5. CategoryCommunication, marketing, social-network, and payment-processing provider connections are blocked.
Read from an approved system
{
  "action": "integration.fetch",
  "input": {
    "connectionId": "<connection UUID from list_connections>",
    "path": "/records/123",
    "query": {"include": "status"}
  }
}
05

Compose different business workflows

ActionDock does not save an executable workflow definition. The external agent creates the sequence; ActionDock groups completed jobs by workflow identity for visibility and audit.

  1. Operations updateintegration.fetch → data.validate → integration.execute (approval) → report.create
  2. Contract reviewintegration.fetch → document.analyze → data.extract → data.validate → report.create
  3. Vendor reviewdocument.analyze + research.web → data.extract → data.validate → report.create
  4. Incident briefintegration.fetch in parallel for approved sources, then document.analyze → report.create.
  5. Data remediationintegration.fetch → data.extract → data.validate → integration.execute (approval).

Run independent reads in parallel. Pass compact structured results—not entire unrelated histories—between dependent steps.

06

Live action catalog

integration.execute is the primary action. The remaining catalog supports the calling agent before or after a supervised write. This list is loaded from the running service manifest so agents and humans see the same capabilities.

integration.executeSubmit one bounded API write for owner review, then record the provider response.APPROVAL
integration.fetchRead from a permitted HTTPS method and path before or after the change.DIRECT
data.extractPrepare caller-defined fields with supporting evidence.DIRECT
data.validateApply explicit rules and return machine-readable failures.DIRECT
document.analyzeCreate a cited brief from supplied business text.DIRECT
research.webResearch a bounded question with source links.DIRECT
report.createPersist a Markdown or JSON handoff artifact.DIRECT
07

Approval is a job state

awaiting_approval ≠ executedShow the exact preview and wait for explicit approval before reporting any external change.

integration.execute is the only side-effect action. It stops with a preview containing the connection version, resolved destination, method, path, query, and body. Approval queues that same snapshot; editing the connection invalidates it.

A stable idempotency key deduplicates the ActionDock submission; it does not guarantee exactly-once execution in an arbitrary provider. If delivery becomes uncertain, execution_unknown stops blind retry and requires reconciliation before another write.

The execution record shows submitted intent, owner approval or rejection, terminal execution state, and the response received by ActionDock. It is not independent attestation of the provider's resulting external state.

08

Signed return path

A workspace may configure one HTTPS callback for terminal states including job.succeeded, job.failed, job.rejected, and job.execution_unknown. ActionDock persists delivery attempts and retries non-2xx callback responses.

  1. Signed payloadHMAC-SHA256 over <X-ActionDock-Timestamp>.<raw request body>.
  2. SignatureX-ActionDock-Signature: v1=<hex digest>.
  3. DeduplicationUse X-ActionDock-Delivery as the stable delivery identifier.
  4. FreshnessReject stale timestamps and fetch authenticated job state when the event drives sensitive work.
09

Fixed-plan limits

Every subscription includes all seven actions. Plans differ by approved API connection count, report storage, monthly processing guardrail, and support scope. No automatic overage is charged.

  1. Launch3 API connections and 250 MB of report storage.
  2. Growth10 API connections and 1 GB of report storage.
  3. Scale30 API connections and 3 GB of report storage.
  4. At the guardrailNew jobs pause until the next subscription period or a plan upgrade.
10

Machine-readable discovery