microcharts
Encuentra, conecta y renderiza microcharts: gráficos React del tamaño de una palabra con texto alternativo generado.
Documentación
@microcharts/mcp
Un servidor MCP y un conjunto de herramientas para el Vercel AI-SDK para microcharts — permite que un modelo encuentre el gráfico del tamaño de una palabra adecuado, obtenga exactamente cómo conectarlo y lo renderice a un SVG terminado con texto alternativo real.
microcharts está construido para que un modelo pueda escribir gráficos. Así es como un modelo los invoca: no "emitir algo de gramática y esperar
que el cliente lo renderice", sino una llamada a herramienta que devuelve el SVG estático real de la librería, honesto por construcción, con el
nombre accesible generado describeSeries adjunto.
- Se ejecuta en tu máquina. Servidor stdio, distribuido en npm. Nada está alojado; sin cuenta, sin clave, sin que los datos salgan.
- Funciona en cualquier lugar. La herramienta de renderizado devuelve SVG autocontenido, por lo que una superficie de chat que no pueda ejecutar React aún puede mostrar un gráfico real.
- Cero configuración.
npx @microcharts/mcp— el paquete trae su propia copia de@microcharts/react.
Instalación
Agrégalo a cualquier cliente MCP. Para Claude Desktop (claude_desktop_config.json) o Cursor (.cursor/mcp.json):
{
"mcpServers": {
"microcharts": {
"command": "npx",
"args": ["-y", "@microcharts/mcp"]
}
}
}
Eso es todo — el cliente inicia el servidor a través de stdio bajo demanda.
Herramientas
find_microchart(question, dataShape?)
Clasifica el catálogo según una pregunta en lenguaje natural. Comienza aquí cuando conoces la pregunta, no el gráfico.
find_microchart({ question: "is it trending?" })
→ [{ slug: "sparkline", name: "Sparkline", why: "inline trend", dataShape: "number[]" }, …]
get_microchart(slug)
Todo lo necesario para conectar un gráfico: rutas de importación, sus props más las props compartidas, la forma de los datos, guía de mejores prácticas/evitar, un
ejemplo ejecutable para copiar, y sample — ese mismo ejemplo como props JSON, listo para pasar directamente a render_microchart.
get_microchart({ slug: "bullet" })
→ {
staticImport: "@microcharts/react/bullet",
props: [...],
example: { code: "<Bullet value={72} target={80} bands={[50, 90]} title=\"Quota\" />" },
sample: { value: 72, target: 80, bands: [50, 90], title: "Quota" },
…
}
Cada gráfico toma su propia forma de datos — number[] para un sparkline, { label, value }[] para un dot plot,
{ open, high, low, close }[] para OHLC — por lo que sample es el camino más corto desde "qué gráfico" hasta "un renderizado que funciona".
render_microchart(type, data?, props?, format?)
Renderiza a un SVG terminado y autocontenido más su texto alternativo generado. Pasa la serie como data; coloca otras props
(value, target, curve, color, width) en props.
render_microchart({ type: "sparkline", data: [132, 148, 141, 165, 159, 182] })
→ {
svg: "<svg …><style>…</style>…</svg>",
summary: "Trending up 38%. Range 132 to 182. Last value 182.",
mimeType: "image/svg+xml", width: 80, height: 20
}
format es "svg" (predeterminado, estilos incrustados — se inserta en cualquier superficie) o "bare" (sin CSS, para páginas que ya cargan
@microcharts/react/styles.css).
Los datos faltantes o con forma incorrecta se rechazan por nombre en lugar de pasarse a React, por lo que un llamador obtiene
"dot-plot" needs \data. Forma de los datos: { label, value }[]. Llama a get_microchart("dot-plot") para un ejemplo listo para renderizar. en lugar de un stack trace. Los payloads sobredimensionados también se rechazan — un microchart es una marca del tamaño de una palabra.
También expone dos recursos: microcharts://catalog (cada gráfico + metadatos) y microcharts://agent-setup (el
prompt para conectar microcharts a un codebase).
Úsalo desde el Vercel AI SDK
Las mismas tres capacidades se envían como herramientas del AI-SDK (en el subpath /ai-sdk, para que el núcleo nunca arrastre ai):
import { microchartsTools } from "@microcharts/mcp/ai-sdk";
import { streamText } from "ai";
const result = streamText({
model,
tools: microchartsTools,
prompt: "Summarise this quarter and show the revenue trend as a chart.",
});
Las funciones también se exportan directamente — findChart, getChart, renderChart — si las quieres sin el envoltorio
de herramienta.
Versionado
Este servidor agrupa el catálogo de gráficos y renderiza con @microcharts/react (instalado como dependencia normal). Su
versión rastrea sus propios cambios; una librería compatible se incorpora automáticamente. La versión de la librería desde la que se cortó una instantánea
dada está en el recurso microcharts://catalog.
Enlaces
- Documentación: https://microcharts.dev/docs/mcp
- Librería:
@microcharts/react - Fuente: https://github.com/ganapativs/microcharts/tree/main/packages/mcp
MIT