Unstructured

oficial

Configure 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_sources e list_destinations para 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_connector e ferramentas relacionadas.
  • Executar e monitorar fluxos de trabalho de ingestão — Dispare um fluxo de trabalho com run_workflow e depois acompanhe seus jobs usando list_jobs e get_job_info.
  • Encontrar fluxos de trabalho com jobs concluídos — Chame list_workflows_with_finished_jobs para identificar fluxos de trabalho que já finalizaram o processamento.
  • Rastrear sites para seu pipeline — Inicie um rastreamento Firecrawl com invoke_firecrawl_crawlhtml e verifique o status por meio de check_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

FerramentaDescrição
list_sourcesLista as fontes disponíveis na API Unstructured.
get_source_infoObtém informações detalhadas sobre um conector de fonte específico.
create_source_connectorCria um conector de fonte.
update_source_connectorAtualiza um conector de fonte existente por parâmetros.
delete_source_connectorExclui um conector de fonte pelo ID da fonte.
list_destinationsLista os destinos disponíveis na API Unstructured.
get_destination_infoObtém informações detalhadas sobre um conector de destino específico.
create_destination_connectorCria um conector de destino por parâmetros.
update_destination_connectorAtualiza um conector de destino existente pelo ID do destino.
delete_destination_connectorExclui um conector de destino pelo ID do destino.
list_workflowsLista os fluxos de trabalho da API Unstructured.
get_workflow_infoObtém informações detalhadas sobre um fluxo de trabalho específico.
create_workflowCria um novo fluxo de trabalho com ID de fonte, destino, etc.
run_workflowExecuta um fluxo de trabalho específico pelo ID do fluxo de trabalho.
update_workflowAtualiza um fluxo de trabalho existente por parâmetros.
delete_workflowExclui um fluxo de trabalho específico pelo ID.
list_jobsLista os jobs de um fluxo de trabalho específico da API Unstructured.
get_job_infoObtém informações detalhadas sobre um job específico pelo ID do job.
cancel_jobExclui um job específico pelo ID.
list_workflows_with_finished_jobsLista 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!

FonteDestino
S3S3
AzureWeaviate
Google DrivePinecone
OneDriveAstraDB
SalesforceMongoDB
SharepointNeo4j
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 CredencialDescrição
ANTHROPIC_API_KEYnecessário para executar o minimal_client para interagir com nosso servidor.
AWS_KEY, AWS_SECRETnecessário para criar conector S3 via servidor uns-mcp, veja como na documentação e aqui
WEAVIATE_CLOUD_API_KEYnecessário para criar conector de banco de dados vetorial Weaviate, veja como na documentação
FIRECRAWL_API_KEYnecessá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_ENDPOINTnecessário para criar conector Astradb via servidor uns-mcp, veja como na documentação
AZURE_CONNECTION_STRINGopção 1 necessária para criar conector Azure via servidor uns-mcp, veja como na documentação
AZURE_ACCOUNT_NAME+AZURE_ACCOUNT_KEYopção 2 necessária para criar conector Azure via servidor uns-mcp, veja como na documentação
AZURE_ACCOUNT_NAME+AZURE_SAS_TOKENopção 3 necessária para criar conector Azure via servidor uns-mcp, veja como na documentação
NEO4J_PASSWORDnecessário para criar conector Neo4j via servidor uns-mcp, veja como na documentação
MONGO_DB_CONNECTION_STRINGnecessário para criar conector Mongodb via servidor uns-mcp, veja como na documentação
GOOGLEDRIVE_SERVICE_ACCOUNT_KEYum 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_SECRETnecessá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_IDnecessário para criar conector One Drive via servidor uns-mcp, veja como na documentação
PINECONE_API_KEYnecessário para criar conector de banco de dados vetorial Pinecone via servidor uns-mcp, veja como na documentação
SALESFORCE_CONSUMER_KEY,SALESFORCE_PRIVATE_KEYnecessário para criar conector de fonte salesforce via servidor uns-mcp, veja como na documentação
SHAREPOINT_CLIENT_ID, SHAREPOINT_CLIENT_CRED,SHAREPOINT_TENANT_IDnecessário para criar conector One Drive via servidor uns-mcp, veja como na documentação
LOG_LEVELUsado para definir o nível de log para nosso minimal_client, por exemplo, defina como ERROR para obter tudo
CONFIRM_TOOL_USEdefina como true para que o minimal_client possa confirmar a execução antes de cada chamada de ferramenta
DEBUG_API_REQUESTSdefina 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:

  1. Recuperação de Conteúdo HTML: Usando invoke_firecrawl_crawlhtml para iniciar jobs de rastreamento e check_crawlhtml_status para monitorá-los
  2. Geração de Texto Otimizada para LLM: Usando invoke_firecrawl_llmtxt para gerar texto e check_llmtxt_status para 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_job se 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+
  • uv para 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

  1. Clone o repositório.

  2. Instale as dependências:

    uv sync
    
  3. 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.template para 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:

  1. Inicie o servidor em um terminal:

    uv run python uns_mcp/server.py --host 127.0.0.1 --port 8080
    # or
    make sse-server
    
  2. 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_workflow deve ser carregada no contexto juntamente com a ferramenta create_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 ferramenta get_workflow_info, pois esta ferramenta não funciona como um aplicador patch, 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 command da sua configuração. Por exemplo, substitua python por /opt/miniconda3/bin/python