Skip to content

Add Unstructured Transform MCP starter template#5578

Open
SudSampath wants to merge 2 commits into
simstudioai:stagingfrom
SudSampath:feat/unstructured-transform-mcp-template
Open

Add Unstructured Transform MCP starter template#5578
SudSampath wants to merge 2 commits into
simstudioai:stagingfrom
SudSampath:feat/unstructured-transform-mcp-template

Conversation

@SudSampath

@SudSampath SudSampath commented Jul 10, 2026

Copy link
Copy Markdown

What changed

  • Added a reusable MCP server template list to the Add MCP Server modal.
  • Added Unstructured Transform as a starter template with the streamable HTTP endpoint and Authorization header placeholder.
  • Clarified what Unstructured Transform does: converts PDFs, DOCX, PPTX, HTML, and images, including scanned/image-only pages via OCR, into clean markdown, JSON, HTML, or text, with RAG preprocessing for chunking, enrichment, and embedding.
  • Documented the Unstructured setup flow in the MCP tools docs, including the required UNSTRUCTURED_API_KEY environment variable and allowlist domain.

Why

Unstructured Transform is exposed as an MCP server, so discoverability fits best as a first-class MCP starter configuration instead of a guessed native REST connector. Selecting the template fills the server name, URL, transport, timeout, and header values while still using Sim's existing connection test and MCP execution flow.

Validation

  • pnpm dlx @biomejs/biome@2.0.0-beta.5 check --no-errors-on-unmatched --files-ignore-unknown=true ...
  • git diff --check

Full workspace checks were not run in this fresh clone because Bun is not installed in the local shell and dependencies are not installed.

@vercel

vercel Bot commented Jul 10, 2026

Copy link
Copy Markdown

Someone is attempting to deploy a commit to the Sim Team on Vercel.

A member of the Team first needs to authorize it.

@SudSampath

SudSampath commented Jul 10, 2026

Copy link
Copy Markdown
Author

Quick follow-up / product context:

This PR is meant to be the small MCP-first step: it gets Unstructured Transform into the MCP add flow so a Sim user can pick it, add their UNSTRUCTURED_API_KEY, and use the hosted Transform MCP server in agents/workflows.

For folks less familiar with it: Transform converts documents like PDFs, DOCX, PPTX, HTML, and images, including scanned/image-only pages via OCR, into clean markdown, JSON, HTML, or text. It also supports the RAG prep work around that: chunking, enrichment, and embedding.

If we want Transform to show up in the main Integrations catalog too, I think there are two possible follow-ups:

  • MCP-backed integration card — my preferred path if it fits Sim's product model. Keep execution backed by the hosted MCP server, add a normal catalog card/page with icon/category/tags/docs, and have Add to Sim open or prefill this MCP template.
  • Native Sim block/tool — definitely possible, but heavier. We'd need REST/OpenAPI docs, auth details, file upload/reference behavior, exact request/response schemas, sample successful responses, supported operation choices, and Unstructured brand assets. I avoided that here because the public quickstart is MCP-first, and I didn't want to guess a Sim-native schema.

Happy to adapt this to whatever pattern the Sim team prefers. If MCP-backed catalog cards are acceptable, I can follow up with that PR.

@SudSampath SudSampath marked this pull request as ready for review July 14, 2026 23:37
@cursor

cursor Bot commented Jul 14, 2026

Copy link
Copy Markdown

PR Summary

Low Risk
UI and documentation only; existing save, domain allowlist, and connection-test paths are reused with no changes to MCP execution or auth.

Overview
The Add MCP Server modal now shows Starter templates in add mode. Picking a template pre-fills name, transport, URL, timeout, and headers (with an empty header row), switches back to the form view, and clears connection-test / submit state.

A new mcp-server-templates module defines a typed template list; Unstructured Transform is the first entry (streamable-http, https://mcp.transform.unstructured.io, Authorization: Bearer {{UNSTRUCTURED_API_KEY}}).

The MCP tools docs add a Starter Configurations section covering the Unstructured setup (UNSTRUCTURED_API_KEY, pre-filled URL/headers) and noting mcp.transform.unstructured.io for ALLOWED_MCP_DOMAINS on self-hosted deployments.

Reviewed by Cursor Bugbot for commit b9e441d. Bugbot is set up for automated code reviews on this repo. Configure here.

@greptile-apps

greptile-apps Bot commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This PR adds an MCP starter template for Unstructured Transform. The main changes are:

  • A reusable starter template list for the Add MCP Server modal.
  • A new Unstructured Transform template with URL, timeout, transport, and Authorization header defaults.
  • Docs for the Unstructured setup flow and allowlist domain.

Confidence Score: 4/5

The new external MCP starter needs an explicit domain-gating fix before merging.

  • The template can send a workspace API key to an external MCP host when the allowlist env var is unset or empty.
  • The form-state and header-shape changes appear compatible with the existing save and test flow.
  • The docs mention the allowlist only when it is already configured, which leaves the default permissive path unchanged.

apps/sim/app/workspace/[workspaceId]/settings/components/mcp/components/mcp-server-form-modal/mcp-server-templates.ts

Security Review

The new Unstructured starter pre-fills an external MCP URL with a bearer-token header sourced from a workspace env var. In deployments where ALLOWED_MCP_DOMAINS is unset or empty, the existing MCP domain policy allows that outbound secret-bearing traffic without an explicit allowlist entry.

Important Files Changed

Filename Overview
apps/sim/app/workspace/[workspaceId]/settings/components/mcp/components/mcp-server-form-modal/mcp-server-templates.ts Adds the Unstructured Transform starter template, including an external URL and bearer-token header default.
apps/sim/app/workspace/[workspaceId]/settings/components/mcp/components/mcp-server-form-modal/mcp-server-form-modal.tsx Adds the starter template picker and applies selected template values through the existing MCP form state.
apps/docs/content/docs/en/agents/mcp.mdx Documents starter configurations and the Unstructured Transform setup requirements.

Reviews (1): Last reviewed commit: "Clarify Unstructured Transform MCP templ..." | Re-trigger Greptile

Comment on lines +23 to +24
url: 'https://mcp.transform.unstructured.io',
headers: [{ key: 'Authorization', value: 'Bearer {{UNSTRUCTURED_API_KEY}}' }],

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.

P1 security Default-Allow External MCP Egress

When ALLOWED_MCP_DOMAINS is unset or empty, the existing MCP validation treats all domains as allowed. This new starter makes mcp.transform.unstructured.io a one-click external endpoint with Authorization: Bearer {{UNSTRUCTURED_API_KEY}}, so self-hosted deployments can send a workspace secret to that host without any explicit domain allowlist entry.

Rule Used: API keys and other user-provided credentials shoul... (source)

Learned From
simstudioai/sim#2133

@SudSampath

Copy link
Copy Markdown
Author

@waleedlatif1, would you mind taking a look when you have a chance? This adds Unstructured Transform as a starter template in Sim's existing MCP setup flow.

I also opened the companion Unstructured docs PR at https://github.com/Unstructured-IO/docs/pull/995 so users have a first-party setup and workflow guide. The docs PR will stay draft until this lands and we can validate the deployed flow end to end.

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