MCP-Server

ActionDock

app.actiondock/actiondock
MCP- & Agenten-Infrastruktur Sicherheit Öffentlich und erreichbar MCP 2025-11-25

Was dieses MCP kann

Provides a policy-controlled API write gateway with human approval and execution receipts for agents.

get_job
Get job
Get the current status and result of an action job.
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['job_id'], '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.'}}}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id', 'workspaceId', 'action', 'workflowId', 'workflowName', 'status', 'input', 'output', 'error', 'sideEffect', 'idempotencyKey', 'approvedAt', 'approvedBy', 'rejectedAt', 'rejectedBy', 'createdAt', 'updatedAt'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'description': 'Job identifier.'}, 'error': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Failure, execution_unknown or queued approval revocation explanation; null otherwise.'}, 'input': {'type': 'object', 'description': 'Validated action input exactly as submitted.', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'action': {'type': 'string', 'description': 'Catalog action name, for example integration.execute.'}, '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."}, 'status': {'enum': ['awaiting_approval', 'queued', 'running', 'succeeded', 'failed', 'rejected', 'execution_unknown'], 'type': 'string', '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.'}, 'createdAt': {'type': 'string', 'format': 'date-time', 'description': 'Creation time.'}, 'updatedAt': {'type': 'string', 'format': 'date-time', 'description': 'Last status change.'}, '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.'}, 'sideEffect': {'type': 'boolean', 'description': 'True when the action writes to an external system and therefore required owner approval.'}, 'workflowId': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Caller-supplied workflow identifier shared across related jobs.'}, 'workspaceId': {'type': 'string', 'format': 'uuid', 'description': 'Workspace that owns the job.'}, 'workflowName': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Caller-supplied workflow name shown in the dashboard.'}, 'idempotencyKey': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Idempotency key that deduplicates this submission within the workspace.'}}, 'additionalProperties': False}
list_actions
List actions
List every action available to the agent, including input schemas and side-effect flags.
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['actions'], 'properties': {'actions': {'type': 'array', 'items': {'type': 'object', 'properties': {}, 'additionalProperties': {}}, 'description': 'Catalog entries with name, description, input schema, and side-effect flag.'}}, 'additionalProperties': False}
list_connections
List connections
List the workspace-approved HTTPS API connections and their method/path allowlists. Credentials are never returned.
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['connections'], 'properties': {'connections': {'type': 'array', 'items': {'type': 'object', 'properties': {}, 'additionalProperties': {}}, 'description': 'Workspace-approved API connections with their method and path allowlists; credentials are never included.'}}, 'additionalProperties': False}
list_events
List events
List recent job and callback events for workflow continuation and audit.
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'default': 50, 'maximum': 200, 'minimum': 1, 'description': 'Maximum number of most recent events to return.'}}}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['events'], 'properties': {'events': {'type': 'array', 'items': {'type': 'object', 'properties': {}, 'additionalProperties': {}}, 'description': 'Most recent job and callback events, newest first.'}}, 'additionalProperties': False}
list_job_reconciliations
Read owner reconciliation evidence
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.
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['job_id'], 'properties': {'limit': {'type': 'integer', 'default': 20, 'maximum': 100, 'minimum': 1, 'description': 'Maximum observations per page, newest first.'}, 'before': {'type': 'string', 'pattern': '^[1-9][0-9]{0,18}$', 'description': 'nextBefore from the previous page; omit for the newest observations.'}, '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.'}}}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['records', 'nextBefore'], 'properties': {'records': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'jobId', 'outcome', 'evidence', 'reference', 'recordedBy', 'createdAt'], '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': {'enum': ['applied', 'not_applied', 'inconclusive'], 'type': 'string'}, 'evidence': {'type': 'string'}, '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))$'}, 'reference': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'recordedBy': {'type': 'string', 'description': 'Signed-in workspace owner who recorded this observation.'}}, '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.'}}, 'additionalProperties': False}
list_usage
List usage
List metered action debits and the current UTC-month usage total.
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'default': 50, 'maximum': 200, 'minimum': 1, 'description': 'Maximum number of most recent usage records to return.'}}}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['summary', 'records'], 'properties': {'records': {'type': 'array', 'items': {'type': 'object', 'properties': {}, 'additionalProperties': {}}, 'description': 'Most recent metered action debits, newest first.'}, 'summary': {'type': 'object', 'properties': {}, 'description': 'Current UTC-month usage total and plan limit.', 'additionalProperties': {}}}, 'additionalProperties': False}
run_action
Submit action job
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.
Destruktiv Externer Zugriff
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['action'], 'properties': {'input': {'type': 'object', 'default': {}, 'description': 'Action input matching the schema advertised by list_actions.', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'action': {'type': 'string', 'minLength': 1, 'description': 'Catalog action name from list_actions, for example integration.execute.'}, 'workflow_id': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'Stable identifier of the agent workflow this job belongs to, for grouping events.'}, 'workflow_name': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'Human-readable workflow name shown to the workspace owner during review.'}, 'idempotency_key': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'Caller-chosen key; resubmitting the same key and input returns the existing job instead of creating another.'}}}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id', 'workspaceId', 'action', 'workflowId', 'workflowName', 'status', 'input', 'output', 'error', 'sideEffect', 'idempotencyKey', 'approvedAt', 'approvedBy', 'rejectedAt', 'rejectedBy', 'createdAt', 'updatedAt'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'description': 'Job identifier.'}, 'error': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Failure, execution_unknown or queued approval revocation explanation; null otherwise.'}, 'input': {'type': 'object', 'description': 'Validated action input exactly as submitted.', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'action': {'type': 'string', 'description': 'Catalog action name, for example integration.execute.'}, '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."}, 'status': {'enum': ['awaiting_approval', 'queued', 'running', 'succeeded', 'failed', 'rejected', 'execution_unknown'], 'type': 'string', '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.'}, 'createdAt': {'type': 'string', 'format': 'date-time', 'description': 'Creation time.'}, 'updatedAt': {'type': 'string', 'format': 'date-time', 'description': 'Last status change.'}, '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.'}, 'sideEffect': {'type': 'boolean', 'description': 'True when the action writes to an external system and therefore required owner approval.'}, 'workflowId': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Caller-supplied workflow identifier shared across related jobs.'}, 'workspaceId': {'type': 'string', 'format': 'uuid', 'description': 'Workspace that owns the job.'}, 'workflowName': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Caller-supplied workflow name shown in the dashboard.'}, 'idempotencyKey': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Idempotency key that deduplicates this submission within the workspace.'}}, 'additionalProperties': False}
wait_for_job
Wait for job
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.
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['job_id'], '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': {'type': 'integer', 'default': 30, 'maximum': 300, 'minimum': 0, 'description': "How long to wait for a decision or final state before returning the current job; keep it below your client's tool timeout."}}}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id', 'workspaceId', 'action', 'workflowId', 'workflowName', 'status', 'input', 'output', 'error', 'sideEffect', 'idempotencyKey', 'approvedAt', 'approvedBy', 'rejectedAt', 'rejectedBy', 'createdAt', 'updatedAt'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'description': 'Job identifier.'}, 'error': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Failure, execution_unknown or queued approval revocation explanation; null otherwise.'}, 'input': {'type': 'object', 'description': 'Validated action input exactly as submitted.', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'action': {'type': 'string', 'description': 'Catalog action name, for example integration.execute.'}, '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."}, 'status': {'enum': ['awaiting_approval', 'queued', 'running', 'succeeded', 'failed', 'rejected', 'execution_unknown'], 'type': 'string', '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.'}, 'createdAt': {'type': 'string', 'format': 'date-time', 'description': 'Creation time.'}, 'updatedAt': {'type': 'string', 'format': 'date-time', 'description': 'Last status change.'}, '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.'}, 'sideEffect': {'type': 'boolean', 'description': 'True when the action writes to an external system and therefore required owner approval.'}, 'workflowId': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Caller-supplied workflow identifier shared across related jobs.'}, 'workspaceId': {'type': 'string', 'format': 'uuid', 'description': 'Workspace that owns the job.'}, 'workflowName': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Caller-supplied workflow name shown in the dashboard.'}, 'idempotencyKey': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Idempotency key that deduplicates this submission within the workspace.'}}, 'additionalProperties': False}
Geändert
wait_for_job
29. September 2026 02:50
Geändert
get_job
29. September 2026 02:50
Geändert
run_action
29. September 2026 02:50
Hinzugefügt
list_job_reconciliations
23. September 2026 02:41
Hinzugefügt
list_usage
21. September 2026 02:46
Hinzugefügt
list_connections
21. September 2026 02:46
Hinzugefügt
list_events
21. September 2026 02:46
Hinzugefügt
wait_for_job
21. September 2026 02:46
Hinzugefügt
get_job
21. September 2026 02:46
Hinzugefügt
run_action
21. September 2026 02:46
Hinzugefügt
list_actions
21. September 2026 02:46