MCP Server
O Pipe inclui um servidor MCP (Model Context Protocol) que permite que agentes de IA gerenciem e executem pipelines de dados. Qualquer cliente compatível com MCP — como o Claude Desktop — pode listar, executar e monitorar pipelines por meio de linguagem natural.
Instalar
Seção intitulada “Instalar”pip install dataspoc-pipe[mcp]Iniciar o servidor
Seção intitulada “Iniciar o servidor”dataspoc-pipe mcpO servidor roda via stdio, seguindo o protocolo de transporte MCP. Ele foi projetado para ser iniciado por um cliente MCP, não para ser executado manualmente no terminal.
Configuração no Claude Desktop
Seção intitulada “Configuração no Claude Desktop”Adicione o seguinte ao arquivo de configuração MCP do Claude Desktop:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Linux: ~/.config/Claude/claude_desktop_config.json
{ "mcpServers": { "dataspoc-pipe": { "command": "dataspoc-pipe", "args": ["mcp"] } }}Se o dataspoc-pipe estiver instalado em um ambiente virtual, use o caminho completo:
{ "mcpServers": { "dataspoc-pipe": { "command": "/home/you/.venv/bin/dataspoc-pipe", "args": ["mcp"] } }}Reinicie o Claude Desktop após atualizar a configuração.
Tools disponíveis
Seção intitulada “Tools disponíveis”O servidor MCP expõe as seguintes tools:
list_pipelines
Seção intitulada “list_pipelines”Lista todos os nomes de pipelines configurados.
Retorna: Um nome de pipeline por linha, ou “No pipelines configured.”
pipeline_config
Seção intitulada “pipeline_config”Retorna a configuração completa de um pipeline como JSON.
Parâmetros:
name(string, obrigatório): Nome do pipeline
Retorna: JSON com configuração de source, destination, incremental e schedule.
run_pipeline
Seção intitulada “run_pipeline”Executa um pipeline de extração.
Parâmetros:
name(string, obrigatório): Nome do pipelinefull(boolean, opcional): Forçar extração completa, ignorando o estado incremental. Padrão:false
Retorna: JSON com success, streams (contagem de registros por stream) e error.
pipeline_status
Seção intitulada “pipeline_status”Retorna o status de todos os pipelines configurados.
Retorna: Array JSON, cada entrada com name, last_run, status, duration, records.
pipeline_logs
Seção intitulada “pipeline_logs”Retorna o log de execução mais recente de um pipeline.
Parâmetros:
name(string, obrigatório): Nome do pipeline
Retorna: JSON com o log completo da execução, ou “No logs found”.
show_manifest
Seção intitulada “show_manifest”Retorna o manifest (catálogo) de um bucket.
Parâmetros:
bucket(string, obrigatório): URI do bucket (ex.:s3://my-bucket,file:///tmp/lake)
Retorna: JSON com o catálogo de tabelas incluindo schemas, timestamps e contagens de linhas.
validate_pipeline
Seção intitulada “validate_pipeline”Valida a conectividade do bucket e a disponibilidade do tap para um pipeline.
Parâmetros:
name(string, obrigatório): Nome do pipeline
Retorna: JSON com pipeline, bucket_ok, tap_ok e errors.
Resources
Seção intitulada “Resources”pipe://pipelines
Seção intitulada “pipe://pipelines”Um resource MCP que lista todos os nomes de pipelines com seu tap e bucket:
[ {"name": "orders", "tap": "tap-csv", "bucket": "s3://my-lake"}, {"name": "customers", "tap": "tap-postgres", "bucket": "s3://my-lake"}]Exemplos de interação com agentes
Seção intitulada “Exemplos de interação com agentes”Depois de configurado, você pode interagir com o Pipe pelo Claude usando linguagem natural:
“Quais pipelines estão configurados?”
O agente chama
list_pipelinese retorna a lista.
“Execute o pipeline de orders”
O agente chama
run_pipeline(name="orders")e informa: “O pipeline orders foi concluído com sucesso. 5.200 registros foram extraídos em 1 stream.”
“Mostre o status de todos os pipelines”
O agente chama
pipeline_statuse apresenta um resumo formatado do último run, status, duração e contagem de registros de cada pipeline.
“Faça uma re-extração completa de customers”
O agente chama
run_pipeline(name="customers", full=True)para ignorar o estado incremental e re-extrair tudo.
“O pipeline de orders está saudável? Verifique o bucket e o tap.”
O agente chama
validate_pipeline(name="orders")e informa se o bucket está gravável e o tap está disponível.
“Quais tabelas existem no bucket s3://my-lake?”
O agente chama
show_manifest(bucket="s3://my-lake")e lista as tabelas disponíveis com seus schemas e contagens de registros.