Skip to content

Commit fec30c6

Browse files
committed
Automatic es + pt translations
1 parent 06d525c commit fec30c6

85 files changed

Lines changed: 3774 additions & 1 deletion

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

docs/catalogs/brasil.es.md

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# Brasil
2+
3+
**Repo:** [okfn/mcp-dados-brasil](https://github.com/okfn/mcp-dados-brasil)
4+
· **Portal:** [dados.gov.br](https://dados.gov.br)
5+
· **Idioma:** portugués
6+
7+
Definiciones de datasets para el portal nacional de datos abiertos de
8+
Brasil. Cada archivo `.yaml` bajo `datasets/` declara un dataset y sus
9+
herramientas; el repo también contiene herramientas en Python para los
10+
casos más elaborados.
11+
12+
## Desde el terreno
13+
14+
Este catálogo respaldó un piloto con la Contraloría General de la Unión
15+
de Brasil, enfocado en las **enmiendas parlamentarias**, uno de los
16+
datasets más solicitados del portal. El objetivo era probar si la
17+
ciudadanía podía preguntar en lenguaje natural y obtener respuestas
18+
trazables hasta los datos oficiales. Ver [lecciones de los
19+
pilotos](../lessons/index.md).
20+
21+
## Agregar un dataset
22+
23+
Sigue la guía general de [datasets en YAML](../plugins/yaml-datasets.md):
24+
un nuevo archivo `.yaml` en `datasets/`, push, y volver a hacer fetch en
25+
el servidor. Las descripciones, los parámetros y las preguntas de
26+
ejemplo están escritas en portugués, acorde a la audiencia.

docs/catalogs/brasil.pt.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# Brasil
2+
3+
**Repo:** [okfn/mcp-dados-brasil](https://github.com/okfn/mcp-dados-brasil)
4+
· **Portal:** [dados.gov.br](https://dados.gov.br)
5+
· **Idioma:** português
6+
7+
Definições de datasets para o portal nacional de dados abertos do
8+
Brasil. Cada arquivo `.yaml` em `datasets/` declara um dataset e suas
9+
ferramentas; o repo também contém ferramentas em Python para os casos
10+
mais elaborados.
11+
12+
## Direto do campo
13+
14+
Este catálogo sustentou um piloto com a Controladoria-Geral da União,
15+
focado nas **emendas parlamentares**, um dos datasets mais requisitados
16+
do portal. O objetivo era testar se os cidadãos podiam perguntar em
17+
linguagem natural e obter respostas rastreáveis até os dados oficiais.
18+
Veja [lições dos pilotos](../lessons/index.md).
19+
20+
## Adicionando um dataset
21+
22+
Siga o guia geral de [datasets em YAML](../plugins/yaml-datasets.md):
23+
um novo arquivo `.yaml` em `datasets/`, push, e refazer o fetch no
24+
servidor. As descrições, os parâmetros e as perguntas de exemplo estão
25+
escritos em português, de acordo com o público.

docs/catalogs/index.es.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# Catálogos de datos
2+
3+
Los plugins que existen hoy, cada uno mantenido en su propio repo y en
4+
su propio idioma:
5+
6+
- [Uruguay](uruguay.md): datasets de catalogodatos.gub.uy, en español.
7+
- [Brasil](brasil.md): datasets de dados.gov.br, en portugués.
8+
9+
Ambos están en etapa Alpha y son las mejores plantillas para empezar un
10+
nuevo plugin de país: ver [plugins](../plugins/index.md).

docs/catalogs/index.pt.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# Catálogos de dados
2+
3+
Os plugins que existem hoje, cada um mantido em seu próprio repo e em
4+
seu próprio idioma:
5+
6+
- [Uruguai](uruguay.md): datasets de catalogodatos.gub.uy, em espanhol.
7+
- [Brasil](brasil.md): datasets de dados.gov.br, em português.
8+
9+
Ambos estão em estágio Alpha e são os melhores modelos para começar um
10+
novo plugin de país: veja [plugins](../plugins/index.md).

docs/catalogs/uruguay.es.md

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
# Uruguay
2+
3+
**Repo:** [okfn/mcp-datos-uruguay-ben](https://github.com/okfn/mcp-datos-uruguay-ben)
4+
· **Portal:** [catalogodatos.gub.uy](https://catalogodatos.gub.uy/)
5+
· **Idioma:** español
6+
7+
Herramientas MCP sobre el *Balance Energetico Nacional* (BEN) de
8+
Uruguay, publicado por el Ministerio de Industria, Energía y Minería
9+
(MIEM) en el portal nacional de datos abiertos.
10+
11+
![El catálogo de energía de Uruguay respondiendo preguntas en el chat](../assets/images/datos-uruguay.png)
12+
13+
## Lo más destacado
14+
15+
El plugin expone herramientas sobre la matriz eléctrica, la potencia
16+
instalada, el factor de emisión de la red, el consumo final, el
17+
abastecimiento primario, las importaciones de petróleo y gas, el
18+
intercambio de electricidad y las emisiones de CO2 por sector, además
19+
de un [glosario del BEN](../lessons/glossary.md) con definiciones
20+
oficiales.
21+
22+
## Acotado a propósito
23+
24+
Este repo reemplazó al anterior `mcp-datos-uruguay`, más amplio, que
25+
intentaba cubrir todo el portal y se volvió demasiado general. Acotar
26+
el plugin a un solo dominio bien entendido (energía) es una decisión
27+
deliberada: ver [por qué acotamos los plugins](../lessons/scope.md).
28+
29+
## Instalación
30+
31+
Es un paquete de Python instalable con pip. Instálalo en el entorno del
32+
servidor MCP y reinicia el servidor; no hay que agregar ninguna entrada
33+
en `tool_sources.yaml`. Las descripciones, los parámetros y las
34+
preguntas de ejemplo están escritas en español, acorde a la audiencia.
35+
36+
## Desde el terreno
37+
38+
Este catálogo impulsó un piloto público sobre los datos de energía de
39+
Uruguay en julio de 2026. Todo lo que aprendimos al operarlo, las
40+
fortalezas, los modos de falla y los cambios que publicamos, está
41+
escrito en [lecciones del piloto](../lessons/index.md).

docs/catalogs/uruguay.pt.md

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
# Uruguai
2+
3+
**Repo:** [okfn/mcp-datos-uruguay-ben](https://github.com/okfn/mcp-datos-uruguay-ben)
4+
· **Portal:** [catalogodatos.gub.uy](https://catalogodatos.gub.uy/)
5+
· **Idioma:** espanhol
6+
7+
Ferramentas MCP sobre o *Balance Energetico Nacional* (BEN, o balanço
8+
energético nacional) do Uruguai, publicado pelo Ministério da
9+
Indústria, Energia e Mineração (MIEM) no portal nacional de dados
10+
abertos.
11+
12+
![O catálogo de energia do Uruguai respondendo perguntas no chat](../assets/images/datos-uruguay.png)
13+
14+
## Destaques
15+
16+
O plugin expõe ferramentas sobre a matriz elétrica, a capacidade
17+
instalada, o fator de emissão da rede, o consumo final, a oferta
18+
primária, as importações de petróleo e gás, o intercâmbio de
19+
eletricidade e as emissões de CO2 por setor, além de um
20+
[glossário do BEN](../lessons/glossary.md) com definições oficiais.
21+
22+
## Focado de propósito
23+
24+
Este repo substituiu o antigo `mcp-datos-uruguay`, mais amplo, que
25+
tentava cobrir o portal inteiro e ficou genérico demais. Restringir o
26+
plugin a um único domínio bem compreendido (energia) é uma escolha
27+
deliberada: veja [por que restringimos o escopo dos
28+
plugins](../lessons/scope.md).
29+
30+
## Instalação
31+
32+
É um pacote Python instalável com pip. Instale-o no ambiente do
33+
servidor MCP e reinicie o servidor; não há nenhuma entrada para
34+
adicionar em `tool_sources.yaml`. As descrições, os parâmetros e as
35+
perguntas de exemplo estão escritos em espanhol, de acordo com o
36+
público.
37+
38+
## Direto do campo
39+
40+
Este catálogo alimentou um piloto público sobre os dados de energia do
41+
Uruguai em julho de 2026. Tudo o que aprendemos ao operá-lo, os pontos
42+
fortes, os modos de falha e as mudanças que publicamos, está registrado
43+
em [lições do piloto](../lessons/index.md).

docs/contributing.es.md

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
# Contribuir
2+
3+
Este sitio es Markdown plano construido con
4+
[MkDocs](https://www.mkdocs.org/) y el tema
5+
[Material](https://squidfunk.github.io/mkdocs-material/), alojado en
6+
GitHub Pages. Cada página tiene un ícono de edición (lápiz) que te
7+
lleva directo al archivo en GitHub.
8+
9+
## Trabajar en local
10+
11+
```bash
12+
git clone https://github.com/okfn/mcp-docs
13+
cd mcp-docs
14+
uv sync
15+
uv run mkdocs serve # live preview at http://127.0.0.1:8000
16+
```
17+
18+
El sitio se reconstruye automáticamente al guardar. Hacer push a `main`
19+
lo publica mediante un workflow de GitHub Actions.
20+
21+
## Reglas de la casa
22+
23+
- **Archivos chicos.** Un tema por página, páginas de una o dos
24+
pantallas. Si una página crece más que eso, divídela. Los archivos
25+
chicos también permiten que la gente edite en paralelo sin conflictos
26+
de merge.
27+
- **Primero lo humano.** Esto es un manual, no una referencia de API.
28+
Explica el porqué antes del cómo; los bloques de código acompañan al
29+
texto, no al revés.
30+
- **Puntuación simple.** Comillas rectas, guiones simples, tres puntos.
31+
Sin Unicode tipográfico, sin emojis decorativos.
32+
- **Las capturas de pantalla** viven en `docs/assets/images/`.
33+
Comprímelas cuando puedas.
34+
- Las páginas nuevas deben agregarse a la sección `nav` de
35+
`mkdocs.yml`, o se construirán pero no aparecerán en la navegación.

docs/contributing.pt.md

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
# Contribuir
2+
3+
Este site é Markdown puro construído com
4+
[MkDocs](https://www.mkdocs.org/) e o tema
5+
[Material](https://squidfunk.github.io/mkdocs-material/), hospedado no
6+
GitHub Pages. Cada página tem um ícone de edição (lápis) que leva você
7+
direto ao arquivo no GitHub.
8+
9+
## Trabalhando localmente
10+
11+
```bash
12+
git clone https://github.com/okfn/mcp-docs
13+
cd mcp-docs
14+
uv sync
15+
uv run mkdocs serve # live preview at http://127.0.0.1:8000
16+
```
17+
18+
O site é reconstruído automaticamente quando você salva. Fazer push
19+
para `main` publica o site por meio de um workflow do GitHub Actions.
20+
21+
## Regras da casa
22+
23+
- **Arquivos pequenos.** Um tópico por página, páginas de uma ou duas
24+
telas. Se uma página crescer além disso, divida-a. Arquivos pequenos
25+
também permitem que as pessoas editem em paralelo sem conflitos de
26+
merge.
27+
- **Humano primeiro.** Isto é um manual, não uma referência de API.
28+
Explique o porquê antes do como; os blocos de código apoiam o texto,
29+
não o contrário.
30+
- **Pontuação simples.** Aspas retas, hífens simples, três pontos. Sem
31+
Unicode tipográfico, sem emojis decorativos.
32+
- **As capturas de tela** ficam em `docs/assets/images/`. Comprima-as
33+
quando puder.
34+
- Páginas novas precisam ser adicionadas à seção `nav` do
35+
`mkdocs.yml`, ou serão construídas mas não aparecerão na navegação.

docs/dev/architecture.es.md

Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
# Arquitectura
2+
3+
Tres partes móviles hacen funcionar la plataforma, el chat gateway, el LLM y el
4+
servidor MCP con sus herramientas de plugin, y un contrato las une.
5+
6+
El **gateway es el único iniciador**: llama tanto al LLM como al servidor
7+
MCP y espera cada respuesta. El LLM y el servidor MCP nunca hablan entre
8+
sí, y el servidor MCP no puede interrumpir: solo habla cuando se le
9+
habla.
10+
11+
```mermaid
12+
sequenceDiagram
13+
actor User as Usuario
14+
participant Gateway as Chat gateway
15+
participant LLM
16+
participant MCP as Servidor MCP
17+
participant Tool as Herramienta del plugin
18+
participant Data as Datasets
19+
20+
User->>Gateway: pregunta
21+
Gateway->>LLM: pregunta + catálogo de herramientas
22+
LLM-->>Gateway: llama esta herramienta, con estos argumentos
23+
Gateway->>MCP: ejecuta esa herramienta
24+
MCP->>Tool: despacha a la función del plugin
25+
Tool->>Data: lee
26+
Data-->>Tool: filas
27+
Tool-->>MCP: texto + tablas/gráficos/fuentes
28+
MCP-->>Gateway: ese resultado, sin cambios
29+
Gateway->>LLM: solo el texto de la herramienta
30+
LLM-->>Gateway: la respuesta, en palabras
31+
Gateway-->>User: esas palabras, más tablas/gráficos dibujados desde los datos
32+
```
33+
34+
Esa es toda la imagen en tiempo de ejecución, y el tiempo corre hacia
35+
abajo. El LLM le responde al gateway **dos veces, en dos momentos
36+
distintos**, y las dos respuestas no son la misma clase de cosa:
37+
38+
- **La primera respuesta nombra una herramienta.** El modelo todavía no
39+
vio ningún dato. Está mirando el catálogo de herramientas y eligiendo
40+
una, así que esta respuesta es un pedido, no una respuesta.
41+
- **La última respuesta es la respuesta.** A esta altura la herramienta
42+
ya corrió y el gateway le entregó al modelo el texto de la
43+
herramienta, así que el modelo está escribiendo prosa sobre datos que
44+
realmente recibió.
45+
46+
El medio del diagrama puede repetirse: si el modelo quiere una segunda
47+
herramienta, pide de nuevo y el ciclo corre una vez más antes de la
48+
respuesta final.
49+
50+
Fíjate por dónde viajan los datos estructurados: al LLM se le entrega
51+
solo el texto de la herramienta, mientras que las tablas y los gráficos
52+
pasan de largo, directo a la pantalla del usuario, [sin pasar nunca por
53+
la IA](../overview/idea.md).
54+
55+
## Dónde se ubica el plugin
56+
57+
La **herramienta del plugin** es la única parte de esta imagen que sabe
58+
algo sobre un dataset específico. Todo lo que está arriba es genérico:
59+
el gateway, el LLM y el servidor MCP funcionarían igual sobre enmiendas
60+
parlamentarias o sobre un balance energético. Todo lo que está abajo es
61+
un archivo.
62+
63+
El servidor MCP no lee datos. Recibe una llamada, despacha a la función
64+
del plugin registrada bajo ese nombre y pasa el resultado de vuelta
65+
**sin cambios**. Así que los números que ve un usuario fueron calculados
66+
por código del repo del plugin de un país, por gente que conoce esos
67+
datos, que es exactamente por qué los plugins están [acotados a un
68+
dominio que alguien entiende](../lessons/scope.md).
69+
70+
## Lo que el diagrama deja afuera
71+
72+
**El catálogo de herramientas llega primero.** Antes de todo esto, el
73+
gateway le pide al servidor MCP su lista de herramientas (`tools/list`)
74+
y la guarda en caché. Esa llamada es iniciativa propia del gateway y
75+
ocurre sin ninguna IA involucrada, así que para cuando al modelo se le
76+
pregunta algo, el catálogo del que elige ya está fijo. Ejecutar una
77+
herramienta es `tools/call`.
78+
79+
**Una herramienta puede dirigirse al usuario directamente.** Además de
80+
tablas y gráficos, una herramienta puede devolver un mensaje `force`:
81+
texto que se muestra al usuario como un mensaje propio, que nunca se
82+
agrega a la conversación que lee el LLM. La herramienta le habla al
83+
humano por encima del modelo, por diseño.
84+
85+
## El contrato
86+
87+
Cada herramienta devuelve un texto para el LLM **y** un payload
88+
`structuredContent` para la interfaz, y ese payload debe declarar de
89+
dónde vinieron los datos.
90+
91+
Las fuentes no son una convención. Una herramienta que no declara el
92+
contrato portador de fuentes es rechazada al arranque y nunca se vuelve
93+
invocable, lo cual es más estricto de lo que exige el estándar MCP. Mira
94+
[resultados de las herramientas](../plugins/tool-results.md) para la
95+
forma completa y cómo se hace cumplir.
96+
97+
## Transportes
98+
99+
El servidor MCP habla dos transportes:
100+
101+
- **stdio**: para uso local, por ejemplo conectarlo a Claude Desktop.
102+
- **HTTP**: para despliegues reales, donde el gateway (o cualquier
103+
cliente) se conecta por la red.

0 commit comments

Comments
 (0)