<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: AlbanoSanchez</title>
    <description>The latest articles on DEV Community by AlbanoSanchez (@albanoschz).</description>
    <link>https://dev.to/albanoschz</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3995926%2F70d1dff7-3698-4eb3-bde0-bdeacd9f560f.jpg</url>
      <title>DEV Community: AlbanoSanchez</title>
      <link>https://dev.to/albanoschz</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/albanoschz"/>
    <language>en</language>
    <item>
      <title>CHE MCP — Building Argentina's First National MCP Ecosystem: 5-Stage Classifier, WMA Online Learning, 748 Datasets</title>
      <dc:creator>AlbanoSanchez</dc:creator>
      <pubDate>Mon, 22 Jun 2026 02:32:58 +0000</pubDate>
      <link>https://dev.to/albanoschz/asdas-3107</link>
      <guid>https://dev.to/albanoschz/asdas-3107</guid>
      <description>&lt;p&gt;Argentina just got its first national MCP ecosystem — and it was built from Bahía Blanca.&lt;/p&gt;

&lt;p&gt;CHE MCP is an intelligent gateway that connects any AI agent with real-time Argentine data. Dollar exchange rates, weather, football, tax compliance (ARCA), inflation, public transit — 80+ official data sources through a SINGLE MCP server.&lt;/p&gt;

&lt;p&gt;Why does this matter? Because right now, if you want your AI to answer "¿cuánto está el dólar blue?", you either Google it yourself or install 80 different MCP servers. CHE MCP solves that with a gateway that understands natural language in Spanish and routes queries automatically.&lt;/p&gt;




&lt;h2&gt;
  
  
  How It Works — 5-Stage Intelligent Gateway
&lt;/h2&gt;

&lt;p&gt;Query: "dolar blue hoy"&lt;br&gt;
         │&lt;br&gt;
    ┌────▼─────┐   Stage 1 — Keyword matching&lt;br&gt;
    │  Keyword  │   3,000+ keywords across 182 classified domains&lt;br&gt;
    └────┬─────┘&lt;br&gt;
         │&lt;br&gt;
    ┌────▼─────┐   Stage 2 — WMA weighted routing&lt;br&gt;
    │   WMA     │   Weighted Majority Algorithm: learns from every query&lt;br&gt;
    └────┬─────┘&lt;br&gt;
         │&lt;br&gt;
    ┌────▼─────┐   Stage 3 — Semantic embeddings&lt;br&gt;
    │ Embedding │   384-dim vectors (all-MiniLM-L6-v2) with Jaccard fallback&lt;br&gt;
    └────┬─────┘&lt;br&gt;
         │&lt;br&gt;
    ┌────▼─────┐   Stage 4 — Data Node search&lt;br&gt;
    │ Data Node │   DuckDB SQL over 748 Parquet datasets + NL-to-SQL&lt;br&gt;
    └────┬─────┘&lt;br&gt;
         │&lt;br&gt;
    ┌────▼─────┐   Stage 5 — LLM fallback&lt;br&gt;
    │   LLM     │   External endpoint (optional, configurable)&lt;br&gt;
    └────┬─────┘&lt;br&gt;
         │&lt;br&gt;
    ┌────▼─────┐&lt;br&gt;
    │  Response │   "Dólar blue: $1,245 / $1,265 compra/venta"&lt;br&gt;
    └──────────┘&lt;/p&gt;

&lt;h2&gt;
  
  
  The WMA Router — A Classifier That Learns
&lt;/h2&gt;

&lt;p&gt;The Weighted Majority Algorithm (WMA) is an online learning system embedded directly in the router. Every domain starts with equal weight (1.0). When a query succeeds, the winning domain gets reinforced (+0.1). When it fails, the domain gets penalized (−0.1). Weights are bounded at [0.1, 5.0] and persisted to disk — the router starts warm and improves with every query.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Benchmark: 95.45% Top-First-Score accuracy&lt;/strong&gt; on MCPAgentBench (66 diverse queries).&lt;/p&gt;

&lt;h2&gt;
  
  
  Data Node — SQL, But Natural
&lt;/h2&gt;

&lt;p&gt;748 Parquet datasets from datos.gob.ar (Argentina's open data portal), compressed 9.92× with Zstd (404 MB vs 3.92 GB CSV). The Data Node converts natural language to SQL:&lt;/p&gt;

&lt;p&gt;User: "¿Cuánto aumentó la inflación en 2024?"&lt;br&gt;
→ DuckDB generates: SELECT AVG(valor) FROM indice_precios_consumidor &lt;br&gt;
                    WHERE fecha BETWEEN '2024-01-01' AND '2024-12-31'&lt;br&gt;
→ Result: 117.8% anual&lt;/p&gt;

&lt;p&gt;SQL injection guardrails, read-only enforcement, 5-second timeout, 1,000-row result limit.&lt;/p&gt;

&lt;h2&gt;
  
  
  Resilience Patterns
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Pattern&lt;/th&gt;
&lt;th&gt;Implementation&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;3-tier cache&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;In-memory LRU (200 entries) → disk (atomic writes) → live CKAN&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Circuit breaker&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Per-dataset, 3-failure threshold, 60s cooldown, serves stale data&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Request collapsing&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Concurrent identical queries share a single upstream fetch&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Predictive pre-fetch&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Top-10 hot datasets refresh every 15 minutes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Rate limiting&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Token bucket per API key, 100 req/min, noisy neighbor isolation&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Built for the Next MCP Standard
&lt;/h2&gt;

&lt;p&gt;The Model Context Protocol is undergoing its biggest architectural update in July 2026 — mandatory Streamable HTTP transport, stateless architecture. CHE MCP was architected for this from day one:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;✅ Streamable HTTP transport&lt;/li&gt;
&lt;li&gt;✅ MCP SDK @modelcontextprotocol v1.29.0&lt;/li&gt;
&lt;li&gt;✅ JWT + API key auth with scope validation&lt;/li&gt;
&lt;li&gt;✅ OpenTelemetry distributed tracing&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Tech Stack
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;TypeScript 5.4 + Node.js 24&lt;/li&gt;
&lt;li&gt;DuckDB (columnar, embeddable)&lt;/li&gt;
&lt;li&gt;all-MiniLM-L6-v2 via @xenova/transformers&lt;/li&gt;
&lt;li&gt;Zod validation, Vitest (280+ tests)&lt;/li&gt;
&lt;li&gt;MCP SDK v1.29.0 (server.registerTool API)&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;Built from Bahía Blanca, Argentina 🇦🇷 with &lt;a href="https://github.com/Gentleman-Programming/gentle-ai" rel="noopener noreferrer"&gt;Gentle AI&lt;/a&gt;'s SDD orchestration + &lt;a href="https://github.com/Gentleman-Programming/engram" rel="noopener noreferrer"&gt;Engram&lt;/a&gt; persistent memory.&lt;/p&gt;

&lt;p&gt;Full technical documentation: &lt;a href="https://github.com/Albano-schz/che-mcp-docs" rel="noopener noreferrer"&gt;github.com/Albano-schz/che-mcp-docs&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;What questions do you have about building MCP ecosystems at national scale?&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>mcp</category>
      <category>nlp</category>
      <category>showdev</category>
    </item>
  </channel>
</rss>
