Skip to content

Add Unstructured Transform MCP integration page#2033

Draft
simoncoombes wants to merge 2 commits into
MervinPraison:mainfrom
simoncoombes:add-unstructured-transform-mcp-page
Draft

Add Unstructured Transform MCP integration page#2033
simoncoombes wants to merge 2 commits into
MervinPraison:mainfrom
simoncoombes:add-unstructured-transform-mcp-page

Conversation

@simoncoombes

@simoncoombes simoncoombes commented Jul 15, 2026

Copy link
Copy Markdown

Adds docs/mcp/unstructured.mdx to the MCP Integrations gallery, showing how to parse documents into structured, AI-ready data with a PraisonAI agent using the hosted Unstructured Transform MCP server. Matches the existing per-server page format (frontmatter + mermaid + Quick Start Steps + Requirements) and registers it in the Integrations nav group.

Verified against the released praisonaiagents 1.6.152, the first release including the remote streamable-HTTP fix (#3033): it connects and lists all four Transform tools against a live server. The page notes 1.6.152 or later as the requirement.

Review feedback addressed: switched llm= to model= (the non-deprecated parameter).

Summary by CodeRabbit

  • Documentation
    • Added a new guide for integrating Unstructured Transform MCP.
    • Included setup instructions, required environment variables, installation steps, and a Python quick-start example.
    • Documented the asynchronous workflow for starting transformations, checking status, and retrieving results.
    • Added the integration to the MCP documentation navigation.

Signed-off-by: Simon Coombes <simon@unstructured.io>
@coderabbitai

coderabbitai Bot commented Jul 15, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: ee8b6d38-dcdc-42ab-8514-645371c63cdb

📥 Commits

Reviewing files that changed from the base of the PR and between 54f5fe0 and 0b07fff.

📒 Files selected for processing (2)
  • docs.json
  • docs/mcp/unstructured.mdx

📝 Walkthrough

Walkthrough

Added documentation for the Unstructured Transform MCP integration, including setup, asynchronous processing details, example code, requirements, and MCP navigation registration.

Changes

Unstructured MCP documentation

Layer / File(s) Summary
Unstructured integration guide
docs/mcp/unstructured.mdx, docs.json
Adds setup instructions, environment variables, an MCP agent example, Transform workflow details, requirements, and the page’s MCP integrations navigation entry.

Estimated code review effort: 1 (Trivial) | ~5 minutes

Suggested labels: pipeline/merge-ready, auto-merged-by-gate

Suggested reviewers: mervinpraison

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main change: adding a new Unstructured Transform MCP integration page.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@MervinPraison MervinPraison added the pipeline/awaiting-merge-gate FINAL done; waiting for merge gate / CI label Jul 15, 2026

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

Copy link
Copy Markdown

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 adds documentation for the Unstructured Transform MCP Integration, including a new MDX guide and updating the docs configuration. Feedback was provided to correct the Python code snippet in the documentation by replacing the deprecated llm parameter with model and wrapping the MCP instance in a list to prevent potential runtime errors.

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 docs/mcp/unstructured.mdx
Comment on lines +46 to +55
transform_agent = Agent(
instructions="""You parse documents into structured, AI-ready data.
Use the Unstructured Transform tools to turn PDFs, Office files, images,
and other documents into clean Markdown, then answer questions about the content.""",
llm="gpt-4o-mini",
tools=MCP(
"https://mcp.transform.unstructured.io",
headers={"Authorization": f"Bearer {os.environ['UNSTRUCTURED_API_KEY']}"},
)
)

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

medium

The code snippet uses the deprecated llm parameter and passes the MCP instance directly to tools instead of wrapping it in a list.

  1. Use model instead of llm: The llm parameter is deprecated in praisonaiagents and will trigger a deprecation warning. Using model is the preferred and future-proof approach.
  2. Wrap MCP in a list: The tools parameter expects a list of tools. Passing a single MCP instance directly can cause AttributeErrors if the agent tries to append or extend the tools list (for example, when injecting fallback tools or autonomy defaults).
        transform_agent = Agent(
            instructions="""You parse documents into structured, AI-ready data.
            Use the Unstructured Transform tools to turn PDFs, Office files, images,
            and other documents into clean Markdown, then answer questions about the content.""",
            model="gpt-4o-mini",
            tools=[MCP(
                "https://mcp.transform.unstructured.io",
                headers={"Authorization": f"Bearer {os.environ['UNSTRUCTURED_API_KEY']}"},
            )]
        )

Signed-off-by: Simon Coombes <simon@unstructured.io>
@simoncoombes

Copy link
Copy Markdown
Author

Thanks for the review.

  • Switched llm= to model= (0b07fff), since model= is the non-deprecated parameter.
  • Kept tools=MCP(...) unwrapped. Agent.__init__ already normalizes a single tool into a list (agent.py:1745), so a bare instance is safe, and it matches the existing MCP pages such as docs/mcp/bravesearch.mdx.

This is still a draft: the page uses the remote streamable-HTTP transport, which is fixed by #3033 but not yet in a PyPI release (latest is 1.6.151). I'll confirm the released version, update the version note, and mark it ready once that ships.

@simoncoombes
simoncoombes marked this pull request as ready for review July 15, 2026 16:13
@simoncoombes

Copy link
Copy Markdown
Author

praisonaiagents 1.6.152 shipped with #3033, and I verified this page's snippet against it: it connects and lists all four Transform tools against a live server. Marking ready for review.

@qodo-code-review

Copy link
Copy Markdown

Qodo reviews are paused for this user.

Troubleshooting steps vary by plan Learn more →

On a Teams plan?
Reviews resume once this user has a paid seat and their Git account is linked in Qodo.
Link Git account →

Using GitHub Enterprise Server, GitLab Self-Managed, or Bitbucket Data Center?
These require an Enterprise plan - Contact us
Contact us →

@simoncoombes
simoncoombes marked this pull request as draft July 15, 2026 16:35
@simoncoombes

Copy link
Copy Markdown
Author

Correction, moving this back to draft. The remote MCP connection works on 1.6.152 (it connects and lists all four tools), but on a full end-to-end run the agent polls check_transform_status without pacing and trips the loop guard ("No progress detected in 8 tool calls") before the asynchronous transform finishes, so the example does not complete as written. I'll rework it to pace the polling (a small wait step between status checks) and re-verify before marking it ready again.

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

Labels

pipeline/awaiting-merge-gate FINAL done; waiting for merge gate / CI

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants