ActionDock

Supervised API-write gateway for AI agents with policy, human approval and execution receipts.

我该使用它吗

质量与安全性

A
描述质量
98%
模式完整度
80%
命名质量
100%
投毒风险
100%
权限匹配度
100%
协议合规性
100%

基于对工具定义和协议合规性的自动分析。

上下文开销

~4,126token 数(工具定义)
~5.4 KB典型响应大小
对注意力有显著影响(占 128k 上下文窗口的 3.22%)

这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。

安装

一键安装

将以下内容添加到你的 `claude_desktop_config.json` 文件中:

{
  "mcpServers": {
    "actiondock": {
      "url": "https://actiondock.app/mcp"
    }
  }
}

远程端点

https://actiondock.app/mcpstreamable-http

它能做什么

工具清单

工具(8)

🟢 只读🟡 写入🔴 删除⚪ 未知
🟢list_actions

List every action available to the agent, including input schemas and side-effect flags.

输入模式

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}

输出模式

{
  "type": "object",
  "properties": {
    "actions": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {},
        "additionalProperties": {}
      },
      "description": "Catalog entries with name, description, input schema, and side-effect flag."
    }
  },
  "required": [
    "actions"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🔴run_action(action, input, workflow_id, workflow_name, idempotency_key)

Create an action job. External writes always wait for workspace-owner approval in the dashboard; the owner is emailed, and wait_for_job blocks until the decision.

输入模式

{
  "type": "object",
  "properties": {
    "action": {
      "type": "string",
      "minLength": 1,
      "description": "Catalog action name from list_actions, for example integration.execute."
    },
    "input": {
      "default": {},
      "description": "Action input matching the schema advertised by list_actions.",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "workflow_id": {
      "description": "Stable identifier of the agent workflow this job belongs to, for grouping events.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "workflow_name": {
      "description": "Human-readable workflow name shown to the workspace owner during review.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "idempotency_key": {
      "description": "Caller-chosen key; resubmitting the same key and input returns the existing job instead of creating another.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    }
  },
  "required": [
    "action"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

输出模式

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid",
      "description": "Job identifier."
    },
    "workspaceId": {
      "type": "string",
      "format": "uuid",
      "description": "Workspace that owns the job."
    },
    "action": {
      "type": "string",
      "description": "Catalog action name, for example integration.execute."
    },
    "workflowId": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Caller-supplied workflow identifier shared across related jobs."
    },
    "workflowName": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Caller-supplied workflow name shown in the dashboard."
    },
    "status": {
      "type": "string",
      "enum": [
        "awaiting_approval",
        "queued",
        "running",
        "succeeded",
        "failed",
        "rejected",
        "execution_unknown"
      ],
      "description": "awaiting_approval, queued, and running are non-terminal; succeeded, failed, rejected, and execution_unknown are terminal. An owner may revoke a queued approval, producing rejected with both approval and rejection evidence."
    },
    "input": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {},
      "description": "Validated action input exactly as submitted."
    },
    "output": {
      "description": "For writes awaiting_approval or queued: the exact approval preview bound to the owner's decision. Rejected writes retain that preview, including after a queued approval is revoked. After succeeded: the action result. After execution_unknown: the approved write plus the ambiguous provider response when one was received. Other jobs may have a preserved preview or null."
    },
    "error": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Failure, execution_unknown or queued approval revocation explanation; null otherwise."
    },
    "sideEffect": {
      "type": "boolean",
      "description": "True when the action writes to an external system and therefore required owner approval."
    },
    "idempotencyKey": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Idempotency key that deduplicates this submission within the workspace."
    },
    "approvedAt": {
      "anyOf": [
        {
          "type": "string",
          "format": "date-time",
          "description": "When a signed-in workspace owner released the write."
        },
        {
          "type": "null"
        }
      ]
    },
    "approvedBy": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Owner who approved the write."
    },
    "rejectedAt": {
      "anyOf": [
        {
          "type": "string",
          "format": "date-time",
          "description": "When a signed-in workspace owner rejected the write."
        },
        {
          "type": "null"
        }
      ]
    },
    "rejectedBy": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Owner who rejected the write."
    },
    "createdAt": {
      "type": "string",
      "format": "date-time",
      "description": "Creation time."
    },
    "updatedAt": {
      "type": "string",
      "format": "date-time",
      "description": "Last status change."
    }
  },
  "required": [
    "id",
    "workspaceId",
    "action",
    "workflowId",
    "workflowName",
    "status",
    "input",
    "output",
    "error",
    "sideEffect",
    "idempotencyKey",
    "approvedAt",
    "approvedBy",
    "rejectedAt",
    "rejectedBy",
    "createdAt",
    "updatedAt"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢get_job(job_id)

Get the current status and result of an action job.

输入模式

{
  "type": "object",
  "properties": {
    "job_id": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      "description": "Job identifier returned by run_action."
    }
  },
  "required": [
    "job_id"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

输出模式

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid",
      "description": "Job identifier."
    },
    "workspaceId": {
      "type": "string",
      "format": "uuid",
      "description": "Workspace that owns the job."
    },
    "action": {
      "type": "string",
      "description": "Catalog action name, for example integration.execute."
    },
    "workflowId": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Caller-supplied workflow identifier shared across related jobs."
    },
    "workflowName": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Caller-supplied workflow name shown in the dashboard."
    },
    "status": {
      "type": "string",
      "enum": [
        "awaiting_approval",
        "queued",
        "running",
        "succeeded",
        "failed",
        "rejected",
        "execution_unknown"
      ],
      "description": "awaiting_approval, queued, and running are non-terminal; succeeded, failed, rejected, and execution_unknown are terminal. An owner may revoke a queued approval, producing rejected with both approval and rejection evidence."
    },
    "input": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {},
      "description": "Validated action input exactly as submitted."
    },
    "output": {
      "description": "For writes awaiting_approval or queued: the exact approval preview bound to the owner's decision. Rejected writes retain that preview, including after a queued approval is revoked. After succeeded: the action result. After execution_unknown: the approved write plus the ambiguous provider response when one was received. Other jobs may have a preserved preview or null."
    },
    "error": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Failure, execution_unknown or queued approval revocation explanation; null otherwise."
    },
    "sideEffect": {
      "type": "boolean",
      "description": "True when the action writes to an external system and therefore required owner approval."
    },
    "idempotencyKey": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Idempotency key that deduplicates this submission within the workspace."
    },
    "approvedAt": {
      "anyOf": [
        {
          "type": "string",
          "format": "date-time",
          "description": "When a signed-in workspace owner released the write."
        },
        {
          "type": "null"
        }
      ]
    },
    "approvedBy": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Owner who approved the write."
    },
    "rejectedAt": {
      "anyOf": [
        {
          "type": "string",
          "format": "date-time",
          "description": "When a signed-in workspace owner rejected the write."
        },
        {
          "type": "null"
        }
      ]
    },
    "rejectedBy": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Owner who rejected the write."
    },
    "createdAt": {
      "type": "string",
      "format": "date-time",
      "description": "Creation time."
    },
    "updatedAt": {
      "type": "string",
      "format": "date-time",
      "description": "Last status change."
    }
  },
  "required": [
    "id",
    "workspaceId",
    "action",
    "workflowId",
    "workflowName",
    "status",
    "input",
    "output",
    "error",
    "sideEffect",
    "idempotencyKey",
    "approvedAt",
    "approvedBy",
    "rejectedAt",
    "rejectedBy",
    "createdAt",
    "updatedAt"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢list_job_reconciliations(job_id, limit, before)

Read the owner's append-only observations about an unknown write. These are owner reports, not verified provider facts, a changed job status, or permission to retry. Agents cannot record observations.

输入模式

{
  "type": "object",
  "properties": {
    "job_id": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      "description": "Job identifier returned by run_action."
    },
    "limit": {
      "default": 20,
      "description": "Maximum observations per page, newest first.",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "before": {
      "description": "nextBefore from the previous page; omit for the newest observations.",
      "type": "string",
      "pattern": "^[1-9][0-9]{0,18}$"
    }
  },
  "required": [
    "job_id"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

输出模式

{
  "type": "object",
  "properties": {
    "records": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          },
          "jobId": {
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          },
          "outcome": {
            "type": "string",
            "enum": [
              "applied",
              "not_applied",
              "inconclusive"
            ]
          },
          "evidence": {
            "type": "string"
          },
          "reference": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "recordedBy": {
            "type": "string",
            "description": "Signed-in workspace owner who recorded this observation."
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
          }
        },
        "required": [
          "id",
          "jobId",
          "outcome",
          "evidence",
          "reference",
          "recordedBy",
          "createdAt"
        ],
        "additionalProperties": false
      },
      "description": "Owner observations, newest first; corrections append to history."
    },
    "nextBefore": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Pass as before to read older records; null means the end of history."
    }
  },
  "required": [
    "records",
    "nextBefore"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢wait_for_job(job_id, timeout_seconds)

Wait for an action job to reach a decision or a final state: approved and executed, rejected, failed, or execution_unknown. A job still awaiting owner approval when the timeout elapses is returned as awaiting_approval; call again to keep waiting. Keep timeout_seconds below your client's tool timeout.

输入模式

{
  "type": "object",
  "properties": {
    "job_id": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      "description": "Job identifier returned by run_action."
    },
    "timeout_seconds": {
      "default": 30,
      "description": "How long to wait for a decision or final state before returning the current job; keep it below your client's tool timeout.",
      "type": "integer",
      "minimum": 0,
      "maximum": 300
    }
  },
  "required": [
    "job_id"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

输出模式

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid",
      "description": "Job identifier."
    },
    "workspaceId": {
      "type": "string",
      "format": "uuid",
      "description": "Workspace that owns the job."
    },
    "action": {
      "type": "string",
      "description": "Catalog action name, for example integration.execute."
    },
    "workflowId": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Caller-supplied workflow identifier shared across related jobs."
    },
    "workflowName": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Caller-supplied workflow name shown in the dashboard."
    },
    "status": {
      "type": "string",
      "enum": [
        "awaiting_approval",
        "queued",
        "running",
        "succeeded",
        "failed",
        "rejected",
        "execution_unknown"
      ],
      "description": "awaiting_approval, queued, and running are non-terminal; succeeded, failed, rejected, and execution_unknown are terminal. An owner may revoke a queued approval, producing rejected with both approval and rejection evidence."
    },
    "input": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {},
      "description": "Validated action input exactly as submitted."
    },
    "output": {
      "description": "For writes awaiting_approval or queued: the exact approval preview bound to the owner's decision. Rejected writes retain that preview, including after a queued approval is revoked. After succeeded: the action result. After execution_unknown: the approved write plus the ambiguous provider response when one was received. Other jobs may have a preserved preview or null."
    },
    "error": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Failure, execution_unknown or queued approval revocation explanation; null otherwise."
    },
    "sideEffect": {
      "type": "boolean",
      "description": "True when the action writes to an external system and therefore required owner approval."
    },
    "idempotencyKey": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Idempotency key that deduplicates this submission within the workspace."
    },
    "approvedAt": {
      "anyOf": [
        {
          "type": "string",
          "format": "date-time",
          "description": "When a signed-in workspace owner released the write."
        },
        {
          "type": "null"
        }
      ]
    },
    "approvedBy": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Owner who approved the write."
    },
    "rejectedAt": {
      "anyOf": [
        {
          "type": "string",
          "format": "date-time",
          "description": "When a signed-in workspace owner rejected the write."
        },
        {
          "type": "null"
        }
      ]
    },
    "rejectedBy": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Owner who rejected the write."
    },
    "createdAt": {
      "type": "string",
      "format": "date-time",
      "description": "Creation time."
    },
    "updatedAt": {
      "type": "string",
      "format": "date-time",
      "description": "Last status change."
    }
  },
  "required": [
    "id",
    "workspaceId",
    "action",
    "workflowId",
    "workflowName",
    "status",
    "input",
    "output",
    "error",
    "sideEffect",
    "idempotencyKey",
    "approvedAt",
    "approvedBy",
    "rejectedAt",
    "rejectedBy",
    "createdAt",
    "updatedAt"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢list_events(limit)

List recent job and callback events for workflow continuation and audit.

输入模式

{
  "type": "object",
  "properties": {
    "limit": {
      "default": 50,
      "description": "Maximum number of most recent events to return.",
      "type": "integer",
      "minimum": 1,
      "maximum": 200
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}

输出模式

{
  "type": "object",
  "properties": {
    "events": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {},
        "additionalProperties": {}
      },
      "description": "Most recent job and callback events, newest first."
    }
  },
  "required": [
    "events"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢list_connections

List the workspace-approved HTTPS API connections and their method/path allowlists. Credentials are never returned.

输入模式

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}

输出模式

{
  "type": "object",
  "properties": {
    "connections": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {},
        "additionalProperties": {}
      },
      "description": "Workspace-approved API connections with their method and path allowlists; credentials are never included."
    }
  },
  "required": [
    "connections"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢list_usage(limit)

List metered action debits and the current UTC-month usage total.

输入模式

{
  "type": "object",
  "properties": {
    "limit": {
      "default": 50,
      "description": "Maximum number of most recent usage records to return.",
      "type": "integer",
      "minimum": 1,
      "maximum": 200
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}

输出模式

{
  "type": "object",
  "properties": {
    "summary": {
      "type": "object",
      "properties": {},
      "additionalProperties": {},
      "description": "Current UTC-month usage total and plan limit."
    },
    "records": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {},
        "additionalProperties": {}
      },
      "description": "Most recent metered action debits, newest first."
    }
  },
  "required": [
    "summary",
    "records"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}

推荐提示词

retrieve_data
Get details about [item] from ActionDock
预期工具: get_job
fetch_info
Fetch [information type] using ActionDock
预期工具: get_job
list_items
List all [items] available in ActionDock
预期工具: list_actions
browse_collection
Show me the [collection] from ActionDock
预期工具: list_actions
explore_workflow
List available [items], then get details for each one using ActionDock
预期工具: list_actionsget_job

社区

评价此服务器

证据

最近观测

已验证未记录版本8 个工具
已验证未记录版本8 个工具