Unstructured MCP Server
oficialConfigure e interaja com seus fluxos de trabalho de processamento de dados não estruturados na Unstructured Platform
Documentação
Servidor MCP da API Unstructured
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 da API Unstructured. |
get_source_info | Obtém informações detalhadas sobre um conector de origem específico. |
create_source_connector | Cria um conector de origem. |
update_source_connector | Atualiza um conector de origem existente por parâmetros. |
delete_source_connector | Exclui um conector de origem pelo ID da origem. |
list_destinations | Lista os destinos disponíveis da 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 origem, ID de destino, etc. |
run_workflow | Executa um fluxo de trabalho específico pelo ID do fluxo |
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 origem e destino. |
Abaixo está uma lista de conectores que o servidor UNS-MCP atualmente suporta. Consulte a lista completa de conectores de origem que a plataforma Unstructured suporta aqui e a lista de destinos aqui. Estamos planejando adicionar mais!
| Origem | 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 | obrigatório para executar o minimal_client para interagir com nosso servidor. |
AWS_KEY, AWS_SECRET | obrigatório para criar conector S3 via servidor uns-mcp, veja como na documentação e aqui |
WEAVIATE_CLOUD_API_KEY | obrigatório para criar conector de banco vetorial Weaviate, veja como na documentação |
FIRECRAWL_API_KEY | obrigatório para usar ferramentas Firecrawl no external/firecrawl.py, cadastre-se no Firecrawl e obtenha uma chave de API. |
ASTRA_DB_APPLICATION_TOKEN, ASTRA_DB_API_ENDPOINT | obrigatório para criar conector Astradb via servidor uns-mcp, veja como na documentação |
AZURE_CONNECTION_STRING | opção 1 obrigatória para criar conector Azure via servidor uns-mcp, veja como na documentação |
AZURE_ACCOUNT_NAME+AZURE_ACCOUNT_KEY | opção 2 obrigatória para criar conector Azure via servidor uns-mcp, veja como na documentação |
AZURE_ACCOUNT_NAME+AZURE_SAS_TOKEN | opção 3 obrigatória para criar conector Azure via servidor uns-mcp, veja como na documentação |
NEO4J_PASSWORD | obrigatório para criar conector Neo4j via servidor uns-mcp, veja como na documentação |
MONGO_DB_CONNECTION_STRING | obrigatório para criar conector Mongodb via servidor uns-mcp, veja como na documentação |
GOOGLEDRIVE_SERVICE_ACCOUNT_KEY | um valor 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 string |
DATABRICKS_CLIENT_ID,DATABRICKS_CLIENT_SECRET | obrigató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 | obrigatório para criar conector One Drive via servidor uns-mcp, veja como na documentação |
PINECONE_API_KEY | obrigatório para criar conector de banco vetorial Pinecone via servidor uns-mcp, veja como na documentação |
SALESFORCE_CONSUMER_KEY,SALESFORCE_PRIVATE_KEY | obrigatório para criar conector de origem salesforce via servidor uns-mcp, veja como na documentação |
SHAREPOINT_CLIENT_ID, SHAREPOINT_CLIENT_CRED,SHAREPOINT_TENANT_ID | obrigató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, ex.: defina como ERROR para obter tudo |
CONFIRM_TOOL_USE | defina como true para que minimal_client possa confirmar a execução antes de cada chamada de ferramenta |
DEBUG_API_REQUESTS | defina como true para que uns_mcp/server.py possa exibir parâmetros de requisição para melhor depuração |
Origem 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 Otimizado para LLM: Usando
invoke_firecrawl_llmtxtpara gerar texto echeck_llmtxt_statuspara recuperar resultados
Como o Firecrawl funciona:
Processo de Rastreamento Web:
- Começa 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
- Jobs podem ser cancelados com
cancel_crawlhtml_jobse necessário - Use isso se você 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 de texto limpo e significativo das páginas rastreadas
- Gera formatos de texto otimizados especificamente para modelos de linguagem de grande porte
- Os resultados são enviados automaticamente para o local S3 especificado
- Nota: Trabalhos de geração de texto para LLM não podem ser cancelados depois de iniciados. 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 o 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 e depois no servidor.
Usando o 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 da 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 abrir 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 você 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 (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 o 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 fornecendo-a pelo usuário ou chamando a ferramentaget_workflow_info, pois esta ferramenta não funciona como um aplicador depatch, ela substitui completamente 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