Unstructured
oficialConfigure e interaja com seus fluxos de trabalho de processamento de dados não estruturados na Unstructured Platform
O que você pode fazer com Unstructured MCP?
- Listar fontes e destinos disponíveis — Use
list_sourceselist_destinationspara ver quais conectores estão configurados na sua conta do Unstructured. - Gerenciar conectores de fonte e destino — Crie, atualize ou exclua conectores por meio de
create_source_connector,update_destination_connectore ferramentas relacionadas. - Executar e monitorar fluxos de trabalho de ingestão — Dispare um fluxo de trabalho com
run_workflowe depois acompanhe seus jobs usandolist_jobseget_job_info. - Encontrar fluxos de trabalho com jobs concluídos — Chame
list_workflows_with_finished_jobspara identificar fluxos de trabalho que já finalizaram o processamento. - Rastrear sites para seu pipeline — Inicie um rastreamento Firecrawl com
invoke_firecrawl_crawlhtmle verifique o status por meio decheck_crawlhtml_status.
Documentação
Servidor MCP da API Unstructured
[!NOTE] Este servidor interage com a API Unstructured para gerenciar fontes, destinos e fluxos de trabalho. Ele não é mantido ativamente e está aqui apenas para referência.
Se você quiser analisar e transformar arquivos em saída estruturada (markdown, JSON, HTML ou texto simples), use o servidor MCP Unstructured Transform.
O Unstructured Transform leva processamento de documentos de nível de produção para seus agentes como um servidor MCP hospedado. Ele dá a eles a capacidade de transformar mais de 60 tipos de arquivo em dados estruturados prontos para suas aplicações, bancos de dados vetoriais e quaisquer processos downstream, analisando, enriquecendo, dividindo em chunks e incorporando arquivos diretamente dentro da sessão atual.
Você pode começar a usá-lo inscrevendo-se aqui.
Uma implementação de servidor MCP para interagir com a API Unstructured. Este servidor fornece ferramentas para listar fontes e fluxos de trabalho.
Ferramentas Disponíveis
| Ferramenta | Descrição |
|---|---|
list_sources | Lista as fontes disponíveis na API Unstructured. |
get_source_info | Obtém informações detalhadas sobre um conector de fonte específico. |
create_source_connector | Cria um conector de fonte. |
update_source_connector | Atualiza um conector de fonte existente por parâmetros. |
delete_source_connector | Exclui um conector de fonte pelo ID da fonte. |
list_destinations | Lista os destinos disponíveis na API Unstructured. |
get_destination_info | Obtém informações detalhadas sobre um conector de destino específico. |
create_destination_connector | Cria um conector de destino por parâmetros. |
update_destination_connector | Atualiza um conector de destino existente pelo ID do destino. |
delete_destination_connector | Exclui um conector de destino pelo ID do destino. |
list_workflows | Lista os fluxos de trabalho da API Unstructured. |
get_workflow_info | Obtém informações detalhadas sobre um fluxo de trabalho específico. |
create_workflow | Cria um novo fluxo de trabalho com ID de fonte, destino, etc. |
run_workflow | Executa um fluxo de trabalho específico pelo ID do fluxo de trabalho. |
update_workflow | Atualiza um fluxo de trabalho existente por parâmetros. |
delete_workflow | Exclui um fluxo de trabalho específico pelo ID. |
list_jobs | Lista os jobs de um fluxo de trabalho específico da API Unstructured. |
get_job_info | Obtém informações detalhadas sobre um job específico pelo ID do job. |
cancel_job | Exclui um job específico pelo ID. |
list_workflows_with_finished_jobs | Lista todos os fluxos de trabalho que possuem algum job concluído, juntamente com informações sobre detalhes de fonte e destino. |
Abaixo está uma lista de conectores que o servidor UNS-MCP atualmente suporta. Consulte a lista completa de conectores de fonte que a plataforma Unstructured suporta aqui e a lista de destinos aqui. Estamos planejando adicionar mais!
| Fonte | Destino |
|---|---|
| S3 | S3 |
| Azure | Weaviate |
| Google Drive | Pinecone |
| OneDrive | AstraDB |
| Salesforce | MongoDB |
| Sharepoint | Neo4j |
| Databricks Volumes | |
| Databricks Volumes Delta Table |
Para usar a ferramenta que cria/atualiza/exclui um conector, as credenciais para esse conector específico devem ser definidas no seu arquivo .env. Abaixo está a lista de credentials para os conectores que suportamos:
| Nome da Credencial | Descrição |
|---|---|
ANTHROPIC_API_KEY | necessário para executar o minimal_client para interagir com nosso servidor. |
AWS_KEY, AWS_SECRET | necessário para criar conector S3 via servidor uns-mcp, veja como na documentação e aqui |
WEAVIATE_CLOUD_API_KEY | necessário para criar conector de banco de dados vetorial Weaviate, veja como na documentação |
FIRECRAWL_API_KEY | necessário para usar ferramentas Firecrawl no external/firecrawl.py, inscreva-se no Firecrawl e obtenha uma chave de API. |
ASTRA_DB_APPLICATION_TOKEN, ASTRA_DB_API_ENDPOINT | necessário para criar conector Astradb via servidor uns-mcp, veja como na documentação |
AZURE_CONNECTION_STRING | opção 1 necessária para criar conector Azure via servidor uns-mcp, veja como na documentação |
AZURE_ACCOUNT_NAME+AZURE_ACCOUNT_KEY | opção 2 necessária para criar conector Azure via servidor uns-mcp, veja como na documentação |
AZURE_ACCOUNT_NAME+AZURE_SAS_TOKEN | opção 3 necessária para criar conector Azure via servidor uns-mcp, veja como na documentação |
NEO4J_PASSWORD | necessário para criar conector Neo4j via servidor uns-mcp, veja como na documentação |
MONGO_DB_CONNECTION_STRING | necessário para criar conector Mongodb via servidor uns-mcp, veja como na documentação |
GOOGLEDRIVE_SERVICE_ACCOUNT_KEY | um valor de string. A chave da conta do servidor original (siga a documentação) está em arquivo json, execute base64 < /path/to/google_service_account_key.json no terminal para obter o valor da string |
DATABRICKS_CLIENT_ID,DATABRICKS_CLIENT_SECRET | necessário para criar conector Databricks volume/delta table via servidor uns-mcp, veja como na documentação e aqui |
ONEDRIVE_CLIENT_ID, ONEDRIVE_CLIENT_CRED,ONEDRIVE_TENANT_ID | necessário para criar conector One Drive via servidor uns-mcp, veja como na documentação |
PINECONE_API_KEY | necessário para criar conector de banco de dados vetorial Pinecone via servidor uns-mcp, veja como na documentação |
SALESFORCE_CONSUMER_KEY,SALESFORCE_PRIVATE_KEY | necessário para criar conector de fonte salesforce via servidor uns-mcp, veja como na documentação |
SHAREPOINT_CLIENT_ID, SHAREPOINT_CLIENT_CRED,SHAREPOINT_TENANT_ID | necessário para criar conector One Drive via servidor uns-mcp, veja como na documentação |
LOG_LEVEL | Usado para definir o nível de log para nosso minimal_client, por exemplo, defina como ERROR para obter tudo |
CONFIRM_TOOL_USE | defina como true para que o minimal_client possa confirmar a execução antes de cada chamada de ferramenta |
DEBUG_API_REQUESTS | defina como true para que o uns_mcp/server.py possa exibir parâmetros de requisição para melhor depuração |
Fonte Firecrawl
Firecrawl é uma API de rastreamento web que fornece duas capacidades principais em nosso MCP:
- Recuperação de Conteúdo HTML: Usando
invoke_firecrawl_crawlhtmlpara iniciar jobs de rastreamento echeck_crawlhtml_statuspara monitorá-los - Geração de Texto Otimizada para LLM: Usando
invoke_firecrawl_llmtxtpara gerar texto echeck_llmtxt_statuspara recuperar resultados
Como o Firecrawl funciona: Processo de Rastreamento Web:
- Inicia com uma URL especificada e a analisa para identificar links
- Usa o sitemap se disponível; caso contrário, segue os links encontrados no site
- Percorre recursivamente cada link para descobrir todas as subpáginas
- Coleta conteúdo de cada página visitada, lidando com renderização JavaScript e limites de taxa
- Tarefas podem ser canceladas com
cancel_crawlhtml_jobse necessário - Use isto se precisar de todas as informações extraídas em HTML bruto, o fluxo de trabalho do Unstructured faz uma limpeza muito boa :smile:
Geração de Texto para LLM:
- Após o rastreamento, extrai conteúdo textual limpo e significativo das páginas rastreadas
- Gera formatos de texto otimizados especificamente para grandes modelos de linguagem
- Os resultados são enviados automaticamente para o local S3 especificado
- Nota: Tarefas de geração de texto para LLM não podem ser canceladas após iniciadas. A função
cancel_llmtxt_jobé fornecida por consistência, mas atualmente não é suportada pela API Firecrawl.
Nota: Uma variável de ambiente FIRECRAWL_API_KEY deve ser definida para usar essas funções.
Instalação e Configuração
Este guia fornece instruções passo a passo para configurar o servidor UNS_MCP usando Python 3.12 e a ferramenta uv.
Pré-requisitos
- Python 3.12+
uvpara gerenciamento de ambiente- Uma chave de API do Unstructured. Você pode se cadastrar e obter sua chave de API aqui.
Usando uv (Recomendado)
Nenhuma instalação adicional é necessária ao usar uvx, pois ele gerencia a execução. No entanto, se preferir instalar o pacote diretamente:
uv pip install uns_mcp
Configurar o Claude Desktop
Para integração com o Claude Desktop, adicione o seguinte conteúdo ao seu claude_desktop_config.json:
Nota: O arquivo está localizado no diretório ~/Library/Application Support/Claude/.
Usando o Comando uvx:
{
"mcpServers": {
"UNS_MCP": {
"command": "uvx",
"args": ["uns_mcp"],
"env": {
"UNSTRUCTURED_API_KEY": "<your-key>"
}
}
}
}
Alternativamente, Usando o Pacote Python:
{
"mcpServers": {
"UNS_MCP": {
"command": "python",
"args": ["-m", "uns_mcp"],
"env": {
"UNSTRUCTURED_API_KEY": "<your-key>"
}
}
}
}
Usando o Código Fonte
-
Clone o repositório.
-
Instale as dependências:
uv sync -
Defina sua chave de API do Unstructured como uma variável de ambiente. Crie um arquivo .env no diretório raiz com o seguinte conteúdo:
UNSTRUCTURED_API_KEY="YOUR_KEY"Consulte
.env.templatepara as variáveis de ambiente configuráveis.
Agora você pode executar o servidor usando um dos seguintes métodos:
Usando Instalação de Pacote Editável
Instale como um pacote editável:uvx pip install -e .
Atualize sua configuração do Claude Desktop:
{
"mcpServers": {
"UNS_MCP": {
"command": "uvx",
"args": ["uns_mcp"]
}
}
}
Nota: Lembre-se de apontar para o executável uvx no ambiente onde você instalou o pacote
Usando Protocolo de Servidor SSE
Nota: Não suportado pelo Claude Desktop.
Para o protocolo SSE, você pode depurar mais facilmente desacoplando o cliente e o servidor:
-
Inicie o servidor em um terminal:
uv run python uns_mcp/server.py --host 127.0.0.1 --port 8080 # or make sse-server -
Teste o servidor usando um cliente local em outro terminal:
uv run python minimal_client/client.py "http://127.0.0.1:8080/sse" # or make sse-client
Nota: Para parar os serviços, use Ctrl+C primeiro no cliente, depois no servidor.
Usando Protocolo de Servidor Stdio
Configure o Claude Desktop para usar stdio:
{
"mcpServers": {
"UNS_MCP": {
"command": "ABSOLUTE/PATH/TO/.local/bin/uv",
"args": [
"--directory",
"ABSOLUTE/PATH/TO/YOUR-UNS-MCP-REPO/uns_mcp",
"run",
"server.py"
]
}
}
}
Alternativamente, execute o cliente local:
uv run python minimal_client/client.py uns_mcp/server.py
Configuração Adicional do Cliente Local
Configure o cliente mínimo usando variáveis de ambiente:
LOG_LEVEL="ERROR": Defina para suprimir saídas de depuração do LLM, exibindo mensagens claras para os usuários.CONFIRM_TOOL_USE='false': Desabilita a confirmação de uso de ferramenta antes da execução. Use com cautela, especialmente durante o desenvolvimento, pois o LLM pode executar fluxos de trabalho caros ou excluir dados.
Ferramentas de depuração
A Anthropic fornece a ferramenta MCP Inspector para depurar/testar seu servidor MCP. Execute o seguinte comando para iniciar uma interface de depuração. A partir dela, você poderá adicionar variáveis de ambiente (apontando para seu ambiente local) no painel esquerdo. Inclua sua chave de API pessoal lá como variável de ambiente. Vá para tools, você pode testar as capacidades que adicionar ao servidor MCP.
mcp dev uns_mcp/server.py
Se precisar registrar parâmetros de chamada de requisição para UnstructuredClient, defina a variável de ambiente DEBUG_API_REQUESTS=false.
Os logs são armazenados em um arquivo com o formato unstructured-client-{date}.log, que pode ser examinado para depurar parâmetros de chamada de requisição para funções UnstructuredClient.
Adicionar acesso ao terminal ao cliente mínimo
Vamos usar @wonderwhy-er/desktop-commander para adicionar acesso ao terminal ao cliente mínimo. Ele é construído sobre o Servidor de Sistema de Arquivos MCP. Tenha cuidado, pois o cliente (e também o LLM) agora tem acesso a arquivos privados.
Execute o seguinte comando para instalar o pacote:
npx @wonderwhy-er/desktop-commander setup
Em seguida, inicie o cliente com o parâmetro extra:
uv run python minimal_client/client.py "http://127.0.0.1:8080/sse" "@wonderwhy-er/desktop-commander@^0.2.11"
# or
make sse-client-terminal
Usando um subconjunto de ferramentas
Se seu cliente suporta usar apenas um subconjunto de ferramentas, aqui está a lista de coisas que você deve estar ciente:
- A ferramenta
update_workflowdeve ser carregada no contexto juntamente com a ferramentacreate_workflow, porque contém uma descrição detalhada sobre como criar e configurar um nó personalizado.
Problemas conhecidos
update_workflow- precisa ter no contexto a configuração do fluxo de trabalho que está atualizando, seja fornecida pelo usuário ou chamando a ferramentaget_workflow_info, pois esta ferramenta não funciona como um aplicadorpatch, ela substitui totalmente a configuração do fluxo de trabalho.
CHANGELOG.md
Quaisquer novos recursos/correções/melhorias desenvolvidos serão adicionados ao CHANGELOG.md. O formato de pré-lançamento 0.x.x-dev é preferido antes de avançarmos para uma versão estável.
Solução de Problemas
- Se você encontrar problemas com
Error: spawn <command> ENOENT, significa que<command>não está instalado ou visível no seu PATH:- Certifique-se de instalá-lo e adicioná-lo ao seu PATH.
- ou forneça o caminho absoluto para o comando no campo
commandda sua configuração. Por exemplo, substituapythonpor/opt/miniconda3/bin/python