Unstructured Transform
Production-grade document processing your AI agents can call as MCP tools — parse PDFs, invoices, spreadsheets, presentations, scanned docs, and 60+ file types into structured markdown, JSON, or HTML with tables and layout intact.
Install
openclaw plugins install clawhub:@unstructured/transform-mcpUnstructured Transform — ClawHub bundle plugin
Production-grade document processing your AI agents can call as MCP tools. This bundle registers Unstructured's publicly-hosted Transform MCP server with an OpenClaw (or Claude Code) agent. Parse PDFs, invoices, spreadsheets, presentations, scanned docs, and 60+ file types into reliable structured output — markdown, Element JSON, HTML, or plain text — with tables and layout intact.
What it wires up
| Endpoint | https://mcp.transform.unstructured.io/ |
| Transport | streamable-http (type: http) |
| Auth | OAuth 2.0 (dynamic client registration + PKCE) — or an Unstructured API key as a Bearer token |
Tools exposed: request_file_upload_url, transform_files,
check_transform_status, get_transform_results.
What you can do
- Extract clean, structured text from PDFs, invoices, spreadsheets, presentations, scanned docs, emails, HTML, and images — 60+ file types.
- Get output as markdown, Element JSON, HTML, or plain text, ready for RAG, search indexing, or downstream agents.
- Preserve tables (returned as embedded HTML) and OCR scanned/image PDFs automatically.
- Handle large, multi-page documents via an async submit-and-poll job flow.
- Parse from a public URL directly, or upload a local file first.
Package contents
.mcp.json # MCP server registration (Claude Code format)
.claude-plugin/plugin.json # Claude Code plugin manifest
openclaw.plugin.json # OpenClaw bundle manifest (schemaVersion 2026.1)
package.json # openclaw compat metadata
skills/transform-unstructured/SKILL.md # bundled skill: the upload→transform→poll→retrieve workflow
Auth
The server advertises OAuth 2.0 Protected Resource Metadata at
/.well-known/oauth-protected-resource, so the client completes OAuth
automatically on first connect. No secrets are stored in this bundle.
For headless use, present an Unstructured API key as a Bearer token instead
(get one at https://unstructured.io/getapikey) by overriding the server entry
in .mcp.json:
"headers": { "Authorization": "Bearer ${UNSTRUCTURED_API_KEY}" }
Install & test in OpenClaw
1. Install the plugin
openclaw plugins install clawhub:@unstructured/transform-mcp
This registers the transform-unstructured MCP server and the bundled skill.
Restart / reload OpenClaw afterward so it picks up the new server.
2. Authenticate (browser OAuth)
openclaw mcp login transform-unstructured
A browser window opens — sign in and approve; tokens are stored automatically. Nothing to paste. (On a headless host, use an Unstructured API key as a Bearer token instead — see Auth above.)
3. Verify the connection
openclaw mcp doctor transform-unstructured --probe
A healthy probe lists the four tools: request_file_upload_url,
transform_files, check_transform_status, get_transform_results.
openclaw plugins list confirms the plugin and skill loaded.
4. Smoke test
Ask the agent to parse a public URL (no upload needed):
"Use the transform tools to parse
https://<some-public-pdf-url>into markdown."
Expected chain: transform_files → job_id → poll check_transform_status →
get_transform_results returns a download URL. Point it at a local file to also
exercise the upload path (request_file_upload_url + PUT).
Exact
openclawsubcommand names can vary by version;openclaw plugins --helpandopenclaw mcp --helpconfirm the current forms.
Publish (maintainers)
clawhub login
clawhub package publish . --family bundle-plugin --owner unstructured --dry-run
# then re-run without --dry-run
