Datasets em YAML¶
Alguns datasets são só um arquivo CSV e um punhado de perguntas óbvias: "qual é o total por ano?", "quais são os 10 primeiros?", "liste as linhas da minha cidade". Para esses, você pode pular a programação: descreva o dataset em um arquivo YAML e escolha um engine.
Só para datasets realmente simples
No momento em que um dataset precisa de qualquer coisa personalizada, o YAML deixa de ser suficiente e é melhor usar uma ferramenta em Python. Leia quando usar YAML vs. Python antes de se apoiar nele. Sempre preferimos Python a YAML.
Os engines¶
| Engine | Responde perguntas como |
|---|---|
aggregate |
"Qual é o total / média / contagem de X?" (opcionalmente agrupado) |
row_list |
"Liste as linhas que atendem aos meus filtros, ordenadas por X" |
top_row |
"Qual linha tem o maior / menor X?" |
unique_values |
"Quais valores distintos existem nesta coluna?" |
Anatomia de um arquivo de dataset¶
engine: aggregate
dataset:
name: fuel-prices
source:
csv: https://example.org/data/fuel-prices.csv
tool:
name: average_fuel_price
description: "Average fuel price, optionally filtered by year and fuel type"
column: PRICE
filters:
- column: YEAR
param: year
type: int
description: "Year to filter by"
- column: FUEL_TYPE
param: fuel_type
type: str
description: "Type of fuel (e.g. gasoline, diesel)"
response: "The average price {filter_label} is {result}. Source: {source}"
Cada filter vira um parâmetro que a IA pode preencher ao chamar a
ferramenta. Os tipos de filtro incluem str (sem diferenciar
maiúsculas), int, float e int_range (que gera os parâmetros
_from / _to).
Um bloco opcional visualization (com group_by e um type de
gráfico bar, line ou pie) faz a ferramenta retornar um gráfico
junto com a resposta.
Onde os arquivos ficam¶
Coloque cada dataset em seu próprio arquivo .yaml dentro da pasta
datasets/ do plugin. Um arquivo, um dataset: arquivos pequenos são
mais fáceis de revisar e nunca entram em conflito entre si.
Os engines em si vivem no repo mcp-server, que é a referência se você precisar da lista completa de opções.
Quando usar YAML vs. Python¶
Declarar datasets em YAML funciona bem para casos básicos, mas o YAML declarativo pode facilmente virar uma linguagem de consulta sob medida se for esticado demais. Cada novo tipo de filtro, join ou coluna calculada exige expandir o engine que interpreta o YAML, e depois tem que ser aprendido por quem escreve o YAML. A aparente simplicidade se move em vez de desaparecer.
Regra prática:
- Use YAML para arquivos CSV genuinamente simples com perguntas padrão de agregação ou top-N.
- Use Python assim que um dataset exigir cálculos personalizados, transformações de datas, joins entre várias tabelas ou lógica de filtragem complexa. Escrever umas poucas linhas de código Python padrão é mais claro e mais fácil de manter do que estender regras de YAML sob medida.
Nada disso torna o YAML errado. Torna-o uma ferramenta afiada para um trabalho estreito: use-o para os casos simples, e não tente fazê-lo crescer até virar uma linguagem de consulta geral, porque essa é uma linguagem que você teria então que manter.