Unstructured APICAUTION
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
0b5f2826334dOBSERVED · 2026-10-08Connect
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 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{
"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}"
}
}
}
}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.
| Tool | Risk | Description |
|---|---|---|
cancel_job | destructive | Delete a specific job. |
delete_workflow | destructive | Delete a specific workflow. |
get_destination_info | read | Get detailed information about a specific destination connector. |
get_job_info | read | Get detailed information about a specific job. |
get_source_info | read | Get detailed information about a specific source connector. |
get_workflow_info | read | Get detailed information about a specific workflow. |
list_destinations | read | List available destinations from the Unstructured API. |
list_jobs | read | |
list_sources | read | |
list_workflows | read | |
list_workflows_with_finished_jobs | read | |
run_workflow | write | Run a specific workflow. |
Trust audit
CAUTIONgrade C · trust 78/100 Install with care. The audit found things worth knowing before you trust its output.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | PASS |
| L1 | Static analysis of the code | WARN |
| L2 | Instruction surface (what it tells the agent) | WARN |
| L3 | Class-specific surface | WARN |
| L4 | Behavioural (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)
result.append(" - No crontab entry")uv run python minimal_client/client.py "http://127.0.0.1:8080/sse"
uv run python minimal_client/client.py "http://127.0.0.1:8080/sse" "@wonderwhy-er/desktop-commander@^0.2.11"
{"url": os.getenv("MCP_SERVER_URL", "http://127.0.0.1:8080/sse")},system use found in code, not declared in the description
cancel_job, delete_workflow
.env.template
.pre-commit-config.yaml
filename_hash = hashlib.md5(url.encode()).hexdigest()
uv run python minimal_client/client.py "http://127.0.0.1:8080/sse"
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.
0b5f2826334dfull audit observations/trust-audit/mcp-server/unstructured-io__unstructured-api.json · Report an issue / request a re-scanAudit history
Every audit this server has had. A grade with a past is a grade somebody is still checking.
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-10-08 | 0b5f2826334d | CAUTION | C | 78 | first audit |
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.