Skip to content

feat(unstructured-mcp): adding unstructured.io transform mcp#6626

Open
mattbarrio wants to merge 3 commits into
FlowiseAI:mainfrom
mattbarrio:feature/unstructured-mcp
Open

feat(unstructured-mcp): adding unstructured.io transform mcp#6626
mattbarrio wants to merge 3 commits into
FlowiseAI:mainfrom
mattbarrio:feature/unstructured-mcp

Conversation

@mattbarrio

Copy link
Copy Markdown

Hi there Flowise team, Unstructured.io employee here. This PR adds an Unstructured integration, using our hosted Transform MCP server.

The Unstructured Transform MCP Server connects Flowise agents to Unstructured's document processing platform. It turns raw files into structured, AI-ready data. We support parsing 60+ file types including PDFs, Office documents, emails, and images into clean markdown or structured JSON.

Key use cases

  • RAG ingestion: process heterogeneous document collections into chunked, embedding-ready output
  • Document Q&A agents: fetch and parse documents on demand inside an Agentflow
  • Format normalization: convert mixed input types into one consistent structured representation
  • OCR at runtime: extract text from images and scanned documents as a workflow step

How it works

The node connects to the remote MCP server at https://mcp.transform.unstructured.io over streamable HTTP, no local process and no stdio. Authentication uses the Unstructured Transform API key as a bearer token, via a new Unstructured Transform API credential (type: 'password'). Transform keys are specific to the Transform service and distinct from the legacy keys used by the existing Unstructured document-loader nodes, so this ships as its own credential class rather than overloading the existing unstructuredApi one.

Document transformation is asynchronous, so the workflow involves three stages: initiating the job with transform_files, polling progress with check_transform_status, and retrieving output via get_transform_results. The agent drives all three as ordinary tool calls.

Available tools

listActions pulls these dynamically from the server:

  • transform_files - initiates a parsing job and returns a job ID
  • check_transform_status - reports job progress (SCHEDULED, IN_PROGRESS, COMPLETED)
  • get_transform_results - returns parsed output as markdown, JSON, HTML, or text, with download URLs
  • request_file_upload_url - generates pre-signed upload URLs for local files

Credentials

Sign-up is self-serve at https://transform.unstructured.io/get-started. The API key is available right after sign-in, and the first 15,000 pages per month are free (docs). Reviewers can create a key and exercise the node end to end in a couple of minutes, no sales contact needed.

Screenshots
Node on the canvas, wired to a Tool Agent (credential attached, actions loaded):
01-canvas

Credential setup (new Unstructured Transform API credential):
02-credential

Available Actions pulled dynamically from the server, with live tool descriptions:
03-actions

Demo video: Unstructured Transform Overview

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces the Unstructured Transform API credential and the Unstructured MCP tool node to integrate with Unstructured.io. Feedback is provided to improve code quality and type safety, including renaming the class to follow PascalCase, avoiding the use of //@ts-ignore by providing default values for the options parameter, implementing fail-fast error handling for invalid actions input, and updating the module exports accordingly.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.

Comment thread packages/components/nodes/tools/MCP/UnstructuredMCP/UnstructuredMCP.ts Outdated
Comment thread packages/components/nodes/tools/MCP/UnstructuredMCP/UnstructuredMCP.ts Outdated
Comment thread packages/components/nodes/tools/MCP/UnstructuredMCP/UnstructuredMCP.ts Outdated
Comment thread packages/components/nodes/tools/MCP/UnstructuredMCP/UnstructuredMCP.ts Outdated
Comment thread packages/components/nodes/tools/MCP/UnstructuredMCP/UnstructuredMCP.ts Outdated
- Rename Unstructured_MCP class to UnstructuredMCP (PascalCase)
- Replace @ts-ignore with optional options parameter defaults
- Fail fast when mcpActions is not an array

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@mattbarrio

Copy link
Copy Markdown
Author

Gemini comments addressed in 6212c02. Not sure of the usual process in this repo if you'd like me to leave the comments open or resolve each of them with comment - happy to do either.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant