No description
  • Go 99.1%
  • Dockerfile 0.9%
Find a file
ymnuk 234dba8596
All checks were successful
ci/woodpecker/tag/woodpecker Pipeline was successful
fix: CI
2026-08-16 10:39:20 +03:00
cmd refactor: real chart implementation with preview tool 2026-08-15 20:45:51 +03:00
docs feat: Реализация Donut и Sunburst 2026-08-14 19:28:12 +03:00
internal refactor: real chart implementation with preview tool 2026-08-15 20:45:51 +03:00
.gitignore feat: Релизация Pie 2026-08-14 21:55:17 +03:00
.woodpecker.yml feat: CI 2026-08-14 20:38:00 +03:00
config.yml.example fix: Print help 2026-08-14 20:22:20 +03:00
Dockerfile fix: CI 2026-08-16 10:39:20 +03:00
go.mod fix: Print help 2026-08-14 20:22:20 +03:00
go.sum fix: Print help 2026-08-14 20:22:20 +03:00
LICENSE first commit 2026-08-14 16:38:57 +03:00
README.md fix: Print help 2026-08-14 20:22:20 +03:00

MCP Chart Server

MCP-сервер для генерации диаграмм из JSON данных с помощью MCP protocol (Model Context Protocol).

Возможности

  • 9 инструментов для разных типов визуализаций: bar, scatter, pie, sankey, indicator, heatmap_graph, finance, geo_stat, distribution
  • 23 render-функции в pure Go через gonum/plot (встроенный PNG encoder)
  • Транспорты: stdio и HTTP streamable
  • Конфигурация: YAML файл + CLI флаги с приоритетом flags > config > defaults
  • Фильтрация групп по --groups параметру
  • Логирование через slog с уровнями от off до debug

Диаграммы

Инструмент Чарты Данные
charts.generate_bar bar, line, area, dotplot {categories, series[]}
charts.generate_scatter scatter, effect_scatter, bubble {series[].points[]}
charts.generate_pie pie, donut, sunburst {series[][name, value]}
charts.generate_sankey sankey, treemap {nodes[], links[]}
charts.generate_indicator gauge, liquid_fill {value}
charts.generate_heatmap_graph heatmap, graph, word_cloud, treemap {categories, series[]}
charts.generate_finance kline {series[][open, high, low, close]}
charts.generate_geo_stat radar, parallel {indicator[], series[]}
charts.generate_distribution boxplot, violin, histogram_kde, stem_leaf, errorbar, contour {series[].values[]}

Все инструменты возвращают результат как image/png.

Быстрый старт

Сборка

go build -o mcp-chart ./cmd/mcp-chart/

Запуск

# stdio режим (по умолчанию)
./mcp-chart

# HTTP streamable
./mcp-chart --mode http-streamable --port 8080

# Конфиг из файла
./mcp-chart --config config.yml.example

# Только bar и pie группы
./mcp-chart --groups bar,pie

CLI флаги

Флаг Переменная окружения По умолчанию Описание
--config Путь к config файлу (yaml/json)
-m, --mode MODE stdio Режим: stdio, http-streamable, http-standalone
-p, --port PORT 8080 Порт для HTTP режимов
-f, --log-file LOG_FILE "" Путь к файлу логов (jsonl)
-L, --log-level LOG_LEVEL info Уровень: off, error, warn, info, debug
-g, --groups CHART_GROUPS [] Группы инструментов (через запятую)

Конфигурация

Скопируйте и отредактируйте пример:

cp config.yml.example ./.mcp-config.yml

Полный формат см. в config.yml.example.

Структура проекта

cmd/mcp-chart/          # Точка входа
internal/
  config/               # Конфигурация и CLI парсинг
  log/                  # Логирование через slog
  mcp/
    server.go           # Инициализация сервера, транспорта
    tools/              # Инструменты (bar, scatter, pie, sankey, etc.)
  render/
    png.go              # Рендеринг всех чартов в PNG
docs/                   # Документация
config.yml.example      # Пример конфигурации

Зависимости

  • github.com/modelcontextprotocol/go-sdk — MCP protocol
  • gonum.org/v1/plot — визуализация (pure Go, встроенный png.Encoder)
  • git.ymnuktech.ru/ymnuk/go-simple-args — CLI парсинг + конфиг

Лицензия

MIT