Atlas / MCP servers / unstructured-io / Unstructured API

Unstructured APICAUTION

mcp/unstructured-io/unstructured-api
Verdict
CAUTION
Grade
C
Trust score
78 /100
Exposed tools
12 9r · 1w · 2d
Transport
stdio
License
—
Stars
43
01

Overview

From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.

[!NOTE] This server interacts with the Unstructured API to manage sources, destinations, and workflows. It is not actively maintained and is kept here for reference. If you want to parse and transform files into structured output (markdown, JSON, HTML, or plain text), use the Unstructured Transform MCP server instead. Unstructured Transform brings production-grade document processing to your agents as a hosted MCP server. It gives them the ability to turn 60+ file types into structured data that's ready for your applications, vector databases, and any downstream processes by parsing, enriching, chunking, and embedding files directly inside their current session. You can start using it by signing up here.

An MCP server implementation for interacting with the Unstructured API. This server provides tools to list sources and workflows.

Available Tools

Read from source at commit 0b5f2826334dOBSERVED · 2026-10-08
Advertisement
02

Connect

Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control. Replace the environment placeholders with a token scoped to the least it needs.

claude-code
claude mcp add uns_mcp --env ASTRA_DB_APPLICATION_TOKEN=${ASTRA_DB_APPLICATION_TOKEN} --env AWS_KEY=${AWS_KEY} --env AWS_SECRET=${AWS_SECRET} --env AZURE_ACCOUNT_KEY=${AZURE_ACCOUNT_KEY} -- uvx uns_mcp
claude-desktop
{
  "mcpServers": {
    "uns_mcp": {
      "command": "uvx",
      "args": [
        "uns_mcp"
      ],
      "env": {
        "ASTRA_DB_APPLICATION_TOKEN": "${ASTRA_DB_APPLICATION_TOKEN}",
        "AWS_KEY": "${AWS_KEY}",
        "AWS_SECRET": "${AWS_SECRET}",
        "AZURE_ACCOUNT_KEY": "${AZURE_ACCOUNT_KEY}"
      }
    }
  }
}
03

Exposed tools (12)

9 read · 1 write · 2 destructive. Blast radius: 2 tools can delete or overwrite — an agent that can be talked into calling a tool can be talked into calling this one.

ToolRiskDescription
cancel_jobdestructiveDelete a specific job.
delete_workflowdestructiveDelete a specific workflow.
get_destination_inforeadGet detailed information about a specific destination connector.
get_job_inforeadGet detailed information about a specific job.
get_source_inforeadGet detailed information about a specific source connector.
get_workflow_inforeadGet detailed information about a specific workflow.
list_destinationsreadList available destinations from the Unstructured API.
list_jobsread
list_sourcesread
list_workflowsread
list_workflows_with_finished_jobsread
run_workflowwriteRun a specific workflow.
04

Trust audit

CAUTIONgrade C · trust 78/100 Install with care. The audit found things worth knowing before you trust its output.

LayerWhat it checksResult
L0Provenance & inventoryPASS
L1Static analysis of the codeWARN
L2Instruction surface (what it tells the agent)WARN
L3Class-specific surfaceWARN
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
declared (1 observation(s))
Network
declared (8 observation(s))
Shell
none-observed
Dependencies
pinned
Secrets in source
none-found

Findings (12)

MEDIUMPrivilege escalation / persistence · fs.persistence · CWE-269, CWE-250
uns_mcp/server.py:347
result.append("  - No crontab entry")
MEDIUMNetwork egress · net.raw_ip · CWE-200, CWE-319
Makefile:7
uv run python minimal_client/client.py "http://127.0.0.1:8080/sse"
MEDIUMNetwork egress · net.raw_ip · CWE-200, CWE-319
Makefile:11
uv run python minimal_client/client.py "http://127.0.0.1:8080/sse" "@wonderwhy-er/desktop-commander@^0.2.11"
MEDIUMNetwork egress · net.raw_ip · CWE-200, CWE-319
example_clients/crew_ai_agent.py:62
{"url": os.getenv("MCP_SERVER_URL", "http://127.0.0.1:8080/sse")},
MEDIUMPrompt injection · scope.undeclared_system · CWE-94, CWE-1427
<declared scope>
system use found in code, not declared in the description
Why it matters. the description does not admit a capability the code has
Fix. declare system use in the description, or remove it
MEDIUMFilesystem / path · mcp.destructive_tools · CWE-22, CWE-59
cancel_job, delete_workflow
Why it matters. 2 tool(s) can delete or overwrite
Fix. prefer a read-only mode or scoped tokens; the page states the blast radius
LOWInventory / provenance · inv.hidden_file · CWE-1104
.env.template
.env.template
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWInventory / provenance · inv.hidden_file · CWE-1104
.pre-commit-config.yaml
.pre-commit-config.yaml
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWInventory / provenance · inv.no_license · CWE-1104
Why it matters. no LICENSE file and no repo licence
Fix. add a licence
LOWInsecure crypto · crypto.weak_hash · CWE-327, CWE-338
uns_mcp/connectors/external/firecrawl.py:508
filename_hash = hashlib.md5(url.encode()).hexdigest()
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
README.md:213
uv run python minimal_client/client.py "http://127.0.0.1:8080/sse"
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
README.md:275
uv run python minimal_client/client.py "http://127.0.0.1:8080/sse" "@wonderwhy-er/desktop-commander@^0.2.11"

Gates applied: no_behavioural_pass, no_license.

Audited 2026-10-08 · audit v0.4.1 · source sha 0b5f2826334dfull audit observations/trust-audit/mcp-server/unstructured-io__unstructured-api.json · Report an issue / request a re-scan
05

Audit history

Every audit this server has had. A grade with a past is a grade somebody is still checking.

DateSourceVerdictGradeScoreChange
2026-10-080b5f2826334dCAUTIONC78first audit
06

Questions

What tools does Unstructured API expose?

12 in total: 9 read-only, 1 that write, and 2 that can delete or overwrite (cancel_job, delete_workflow). Every one is listed on this page with its risk.

Is Unstructured API safe to connect to an agent?

With care. The audit graded it C (78/100) and found 12 things worth knowing before you trust this server, listed below with the exact line each was found on. Separately from the audit: 2 of its tools can destroy data, so scope the token you give it to what you actually need.

What credentials does Unstructured API need?

It reads ASTRA_DB_APPLICATION_TOKEN, AWS_KEY, AWS_SECRET, AZURE_ACCOUNT_KEY, AZURE_SAS_TOKEN, DATABRICKS_CLIENT_SECRET, FIRECRAWL_API_KEY, GOOGLEDRIVE_SERVICE_ACCOUNT_KEY, NEO4J_PASSWORD, PINECONE_API_KEY, SALESFORCE_CONSUMER_KEY and SALESFORCE_PRIVATE_KEY from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.

How does Unstructured API run?

It speaks stdio, so it runs as a local process your client starts. It is published on PyPI as uns_mcp.

How current is this page?

The grade is for one exact copy of the source (0b5f2826334d), read on 2026-10-08. The repository is watched and re-audited when it changes.

Advertisement