Pular para o conteúdo

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.

Terminal window
pip install dataspoc-pipe[mcp]
Terminal window
dataspoc-pipe mcp

O 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.

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.

O servidor MCP expõe as seguintes tools:

Lista todos os nomes de pipelines configurados.

Retorna: Um nome de pipeline por linha, ou “No pipelines configured.”

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.

Executa um pipeline de extração.

Parâmetros:

  • name (string, obrigatório): Nome do pipeline
  • full (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.

Retorna o status de todos os pipelines configurados.

Retorna: Array JSON, cada entrada com name, last_run, status, duration, records.

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”.

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.

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.

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"}
]

Depois de configurado, você pode interagir com o Pipe pelo Claude usando linguagem natural:

“Quais pipelines estão configurados?”

O agente chama list_pipelines e 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_status e 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.