Skip to main content
Retab exposes its workflow and document tools through an MCP server, so you can build and run document pipelines directly from an MCP client.
SettingValue
Server nameretab
Transportstreamable-http
Server URLhttps://mcp.retab.com/mcp
AuthenticationOAuth or an Api-Key header, depending on the client
Grab an API key from Settings → API Keys in the dashboard before you start.

Install

curl -fsSL https://retab.com/install.sh | sh && retab setup
Claude Desktop (paid plan required): Settings → Connectors → Add custom connector, name retab, URL https://mcp.retab.com/mcp, complete OAuth.

What you get

Once connected, your MCP client can browse files, build and edit workflows, run them, and iterate on results. Most clients list the tools automatically after connecting — ask your client to “build a workflow from this PDF” to get going. For the workflow model itself, see Workflows and Blocks.

Tool reference

The server exposes tools grouped under underscore-separated namespaces. Start with help — it returns Retab-specific guidance for whichever subsystem you’re about to use.

Files

ToolUse it to
files_listList recent files in the org, optionally filtered by workflow id or filename, with id pagination.
files_uploadUpload a file from a data URL or HTTP(S) URL and get back a durable file_id.
files_analyzeAnalyze one document into a Document Blueprint (subdocuments, fields, recommended topology). Async — returns a job_id; poll with jobs_get.
files_grepSearch a literal string or Python regex in one file. Returns matches with a format-specific anchor (page+line for PDFs, line+char for text, sheet+cell for spreadsheets).
files_inspectRender a specific region of a file — line range, spreadsheet/CSV range, PDF page, or image area — so you can verify a files_grep hit in context.
files_get_sourcesReturn per-leaf provenance for a completed extraction (each value wrapped as {value, source: {content, anchor}}). Supports path to drill into a subtree of big extractions.

Workflows

ToolUse it to
workflows_createCreate an empty workflow scaffold with a default start_document block.
workflows_listList workflows in the org, most-recently-updated first, with id pagination.
workflows_getFetch a workflow’s full graph (blocks, configs, positions, handles, edges). In MCP clients that support widgets, this renders an interactive graph.
workflows_diagnoseCheck a draft for structural errors and warnings — missing start, dangling edges, unreachable blocks, type mismatches, incomplete configs, human-review gates, cycles.

Workflow blocks

Block tools operate on flat block resources keyed by workflow_id.
ToolUse it to
workflows_blocks_getGet a block’s type, label, config, position, parent container, connected edges, and available handles.
workflows_blocks_createAdd a block to a draft. Supports parent_id for placing inside for_each/while_loop containers, connect_from for auto-wired connections, and connections for explicit handle wiring on branching blocks (classifier, split).
workflows_blocks_updateUpdate a block’s label, config, position, size, or parent. For extract blocks supports surgical json_schema_patch (RFC 6902); for function blocks supports surgical code_patch (exact-string Edit-style). Pass replace=true to replace config entirely.
workflows_blocks_deleteDelete a block and all its connected edges from the draft.

Workflow edges

Edge tools operate on flat edge resources keyed by workflow_id.
ToolUse it to
workflows_edges_listList draft edges, optionally filtered by source or target block.
workflows_edges_createConnect a source block’s output handle to a target block’s input handle. Use workflows_blocks_get first to discover handle names.
workflows_edges_deleteDelete a draft edge.

Workflow runs

ToolUse it to
workflows_runs_createRun a workflow against production, draft, or a pinned version id. Inputs map start_document block ids to file_id strings (or {download_url, filename}) and start_json block ids to JSON objects.
workflows_runs_listList recent runs with lifecycle and timing, optionally filtered by status.
workflows_runs_getFetch a run’s lifecycle, timing, inputs, and step summaries. Waits up to 5s for in-progress runs.
workflows_steps_listList every step in a run with lifecycle, timing, errors, model, and the artifact ref.
workflows_steps_getInspect one persisted step object by step_id, including lifecycle, timing, handle inputs, handle outputs, artifact, retry count, and model fields.
workflows_reviews_*Reviews for gated block runs: list the queue, inspect triggered_by, create corrected versions with parent_id, approve/reject an exact version_id, or wait for a gate to fire.

Workflow artifacts

ToolUse it to
workflows_artifacts_getDereference a step’s {operation, id} artifact ref into the canonical persisted record. Use this to inspect why a conditional branch matched (evaluations, matched_condition_ids, selected_handles) or to read invocation artifacts.
workflows_artifacts_listList and dereference every artifact produced in one run, optionally filtered by operation or block_id.

Workflow tests

ToolUse it to
workflows_tests_createCreate a workflow test with one input source (manual handle inputs or a captured run step), one output handle target, and one assertion.
workflows_tests_listList tests with rollups: passed, failed, blocked, error, cancelled, not_run, and schema_drifted.
workflows_tests_getGet a test’s definition, stored inputs, assertion, validation status, and cached latest-run summary.
workflows_tests_updateUpdate a test’s source and/or assertion.
workflows_tests_deleteDelete a test and its run history.
workflows_tests_runs_createRun one test, all tests for a workflow, or all tests for a block. Async - returns a run id; poll the workflow-test run for status and results.
workflows_tests_runs_getFetch a workflow-test run by run_id, including lifecycle, timing, target, and aggregate counts.
workflows_tests_results_listList the test results produced by one workflow-test run.
workflows_tests_results_getFetch one test result from a workflow-test run by run_id and test_id.

Experiments

ToolUse it to
experiments_createAttach a consensus experiment to a supported block (extract, split, classifier, split-by-key for_each). Defines a document set; does not run metrics — call experiments_runs_create after.
experiments_listList experiments on a workflow with the latest run’s status, score, is_stale flag, and merkle-based schema_drift.
experiments_updateUpdate an experiment’s document set, name, or n_consensus (3 / 5 / 7). Changing any of these invalidates metrics — re-run after.
experiments_deleteDelete an experiment and all its runs.
experiments_runs_createRefresh an experiment for the current draft config. Reuses fresh successful results and recomputes failed, missing, or stale documents. Async - returns a run id.
experiments_runs_getFetch an experiment run by run_id, including lifecycle, timing, score, and document counts.
experiments_results_listList the per-document results produced by one experiment run.
experiments_results_getFetch one experiment result by run_id and document_id.
experiments_metrics_getRead run-scoped consensus likelihoods across four views: summary, by_document, by_target, and votes.

Utilities

ToolUse it to
helpGet Retab-specific guidance before touching an unfamiliar subsystem. Topics: default, files, workflows, workflows_runs, workflow_blocks (with optional block_type), tests, experiments, human_review.
jobs_getPoll generic async jobs from tools such as files_analyze. Waits up to 5s before returning.

Prompts

The server also exposes two MCP prompts (clients with prompt support surface these alongside tools):
PromptPurpose
workflow_assistantRetab workflow assistant prompt for building, configuring, testing, and debugging workflows.
workflow_agentFull workflow-agent system prompt for external MCP clients.