1. Conduid
  2. Developer Tools
  3. Dataviz
MCP server · Developer Tools

Dataviz

A Model Context Protocol server for data visualization

Unclaimed NOASSERTION last commit 6 months ago aimcp
64Good

Scored a month ago · breakdown

About Dataviz

Dataviz is an MCP server published by SCKelemen in the Developer Tools category: a Model Context Protocol server for data visualization. It has been installed 0 times through Conduid.

The repository has 1 stars and 0 forks, with the last commit 6 months ago. Six months or more without a commit doesn't mean the server is broken, but check the open issues (0) before depending on it in production.

Install

Install
npx dataviz
Claude Code
claude mcp add dataviz -- npx -y dataviz-mcp
npx
npx -y dataviz-mcp

This server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.

Ask AI

Ask AI about Dataviz

Powered by Claude · Grounded in docs

I know everything about Dataviz. Ask me about installation, configuration, usage, or troubleshooting.

Security checks

  • ·README presentNot checked yet.
  • ·License declaredNot checked yet.
  • ·Tests presentNot checked yet.
  • ·Dependencies pinnedNot checked yet.
  • ·No dynamic code executionNot checked yet.
  • !Scoped permissionsDoesn't declare a permission scope. Assume it can do anything its process can.

Releases

v1.1.4v1.1.4 · 10 Mar 2026Full Changelog**: https://github.com/SCKelemen/dataviz/compare/v1.1.3...v1.1.4
v1.1.3v1.1.3 · 10 Mar 2026Full Changelog**: https://github.com/SCKelemen/dataviz/compare/v1.1.1...v1.1.3
v1.1.2v1.1.2 · 29 Jan 2026Full Changelog**: https://github.com/SCKelemen/dataviz/compare/v1.1.0...v1.1.2
v1.1.1v1.1.1 · 29 Jan 2026Full Changelog**: https://github.com/SCKelemen/dataviz/compare/v1.1.0...v1.1.1
v1.1.0v1.1.0 · 29 Jan 2026What's Changed ci: bump actions/upload-artifact from 4 to 6 by @dependabot[bot] in https://github.com/SCKelemen/dataviz/pull/5 ci: bump actions/setup-go from 5 to 6 by @dependabot[bot] in https://github.com/SCKelemen/dataviz/pull/4 ci:…

README

DataViz

Chart and data visualization library for Go with dual output modes (SVG + Terminal).

Go Version CI Go Report Card codecov

Overview

DataViz provides high-level charting APIs built on top of the general-purpose SCKelemen rendering stack. It focuses on chart-specific code: implementations of common chart types and tools for data visualization.

Architecture

This library provides chart implementations and visualization tools:

┌─────────────────────────────────────────────────────────┐
│          DataViz Monorepo (Chart-Specific Code)         │
│  ┌─────────────────────────────────────────────────┐   │
│  │  charts/     - Line, Area, Bar, Scatter, Heat-  │   │
│  │                map, Pie/Donut, Stat cards       │   │
│  │  mcp/        - Model Context Protocol server    │   │
│  │  cmd/        - viz-cli, dataviz-mcp binaries    │   │
│  └─────────────────────────────────────────────────┘   │
└────────────────────────┬────────────────────────────────┘
                         │ depends on
┌────────────────────────▼────────────────────────────────┐
│       SCKelemen Rendering Stack (External Deps)         │
│  ┌──────────────────┐    ┌──────────────────────────┐  │
│  │  layout          │    │  design-system           │  │
│  │  • Flexbox       │    │  • Design tokens         │  │
│  │  • CSS Grid      │    │  • Themes (optional)     │  │
│  │  • Text layout   │    │  • Radix UI integration  │  │
│  └──────────────────┘    └──────────────────────────┘  │
│                                                          │
│  ┌──────────────────┐    ┌──────────────────────────┐  │
│  │  cli             │    │  tui                     │  │
│  │  • SVG output    │    │  • Dashboard framework   │  │
│  │  • Terminal out  │    │  • Interactive UI        │  │
│  └──────────────────┘    └──────────────────────────┘  │
└────────────────────────┬────────────────────────────────┘
                         │ depends on
┌────────────────────────▼────────────────────────────────┐
│            Foundation Libraries (External)              │
│  unicode, color, units, svg, text                       │
└─────────────────────────────────────────────────────────┘

Use Cases

1. Data Visualization & Charting

  • Line graphs, area charts, bar charts, scatter plots, heatmaps, pie/donut charts, stat cards
  • Time-series visualization with time.Time types
  • Smooth curves with configurable tension (Bezier interpolation)
  • Custom markers: circle, square, diamond, triangle, cross, x, dot
  • Gradients, fills, stacked bars
  • Design token integration for consistent styling
  • Dual output: SVG for web, Terminal for CLI (where applicable)

2. AI Agent Integration

  • MCP server for Claude Code and other MCP clients
  • Generic data types (interface{}, float64) for multi-source data
  • Multi-series line charts, generic XY scatter plots, matrix heatmaps
  • Composable with other MCP servers (Omnitron, file systems, APIs)
  • MCP acts as thin wrapper around main library where possible

3. Command-Line Tools

  • viz-cli: Interactive terminal chart viewer
  • dataviz-mcp: MCP server for AI agents

Packages

Chart Implementations

charts/

High-level charting API with multiple chart types:

  • Line graphs with smooth curves, tension control, area fill, gradients, markers
  • Area charts with smooth curves and gradient fills
  • Bar charts with stacked support
  • Pie/Donut charts with percentage labels and legend
  • Scatter plots with custom markers (7 types)
  • Heatmaps (linear and GitHub-style weeks view)
  • Stat cards with change indicators and mini trend graphs
  • Time-series support with time.Time types
  • Dual output: SVG and Terminal rendering (where applicable)

Features:

  • Smooth curves: Bezier interpolation with configurable tension (0-1)
  • Markers: circle, square, diamond, triangle, cross, x, dot
  • Gradients: Vertical fade with opacity control
  • Terminal: ANSI colors + Braille dots for high-resolution
  • Donut mode: Configurable inner radius for donut charts

Built on top of SCKelemen/layout for positioning and layout.

Note: Currently focused on time-series data. See Roadmap for future generic coordinate support via Observable Plot-style scales and marks architecture.

MCP Server

mcp/

Model Context Protocol server for AI agents:

  • 29 chart generation tools for Claude Code and MCP clients
  • Gallery tool for generating comparison galleries of chart variations
  • Generic data types (interface{}, float64)
  • Composable with other MCP servers (Omnitron, file systems, APIs)
  • Data-source agnostic design

Tools Include:

  • Statistical: bar, pie, line, scatter, histogram, boxplot, violin, density, ridgeline
  • Hierarchical: treemap, sunburst, icicle, circle_packing, dendrogram
  • Financial: candlestick, ohlc
  • Specialized: heatmap, radar, parallel, streamchart, sankey, chord, wordcloud
  • Gallery: generate_gallery (comparison galleries of chart variants)

Architecture:

  • Consolidated charts (pie, bar): MCP acts as thin wrapper, calls main library
  • Generic charts (line with multi-series, XY scatter, matrix heatmap): MCP-specific implementations that complement the time-series-focused main library
  • Gallery system: Reusable internal/gallery package for generating comparison views
  • Future: Unified approach via Observable Plot-style scales and marks (see Roadmap)

Command-Line Tools

cmd/viz-cli/

Interactive terminal chart viewer:

viz-cli data.json              # Visualize JSON data
viz-cli --watch data.json      # Watch for changes
viz-cli --output chart.svg     # Export to SVG

cmd/dataviz-mcp/

MCP server binary for Claude Code integration:

dataviz-mcp                    # Start MCP server

Configure in Claude Code:

{
  "mcpServers": {
    "dataviz": {
      "command": "dataviz-mcp"
    }
  }
}

External Dependencies

This library depends on the SCKelemen rendering stack:

  • layout - CSS Grid, Flexbox, text layout
  • cli - SVG and terminal renderers
  • tui - Interactive dashboard framework
  • design-system - Design tokens and themes (optional)

And foundation libraries:

  • unicode - 10 UAX/UTS implementations
  • color - OKLCH perceptually uniform color
  • units - Type-safe CSS units
  • svg - SVG generation primitives
  • text - Unicode-aware text operations

Installation

# As a library
go get github.com/SCKelemen/dataviz

# Build CLI tools
git clone https://github.com/SCKelemen/dataviz
cd dataviz
go build -o viz-cli ./cmd/viz-cli
go build -o dataviz-mcp ./cmd/dataviz-mcp

Usage Examples

1. Time-Series Line Chart

import "github.com/SCKelemen/dataviz/charts"

// Time-series line chart
data := []charts.TimeSeriesData{
    {Date: time.Date(2024, 1, 1, 0, 0, 0, 0, time.UTC), Value: 100},
    {Date: time.Date(2024, 1, 2, 0, 0, 0, 0, time.UTC), Value: 150},
    {Date: time.Date(2024, 1, 3, 0, 0, 0, 0, time.UTC), Value: 120},
}

config := charts.LineChartConfig{
    Width: 800,
    Height: 400,
    Title: "Sales Over Time",
    UseGradient: true,
    ShowMarkers: true,
}

// Render to SVG
svgChart := charts.RenderLineChart(data, config)

// Or render to terminal
termChart := charts.RenderLineChartTerminal(data, config)

3. With Design Tokens (Optional)

import (
    design "github.com/SCKelemen/design-system"
    "github.com/SCKelemen/dataviz/charts"
)

// Use design tokens for consistent styling
theme := design.MidnightTheme()

config := charts.LineChartConfig{
    Width: 800,
    Height: 400,
    Colors: theme.Colors.Chart,
    Typography: theme.Typography,
    Spacing: theme.Spacing,
}

svgChart := charts.RenderLineChart(data, config)

4. Interactive Dashboard

import (
    "github.com/SCKelemen/tui"
    "github.com/SCKelemen/dataviz/charts"
    tea "github.com/charmbracelet/bubbletea"
)

func main() {
    // Create dashboard model with charts
    model := tui.NewDashboard()
    model.AddChart("Sales", salesChartData)

    // Run with bubbletea
    p := tea.NewProgram(model)
    if err := p.Start(); err != nil {
        log.Fatal(err)
    }
}

Key Design Principles

1. Layered Architecture

  • Low-level: Layout engine (flexbox, grid, text)
  • Mid-level: Renderers (SVG, terminal)
  • High-level: Charts API (uses layout + renderers)

This separation allows you to:

  • Use the layout engine without charts
  • Use the renderers for custom visualizations
  • Use the charts API for quick results

2. Dual Output Modes

Charts can be rendered to:

  • SVG - For web, documentation, high-quality printing
  • Terminal - For CLI tools, SSH sessions, logs (where applicable: line, area, bar, scatter, heatmap)

3. Optional Design Tokens

Design tokens are opt-in:

  • Use them for consistent styling across your app
  • Or don't - the rendering engine works fine without them
  • Themes: midnight, nord, paper, wrapped

4. Data-Source Agnostic

The MCP server and charts API accept generic data:

  • interface{} for X values (can be time.Time, int, float64, string)
  • float64 for Y values
  • Works with data from any source (Omnitron, databases, APIs, files)

5. Type-Safe

  • Layout uses type-safe CSS units
  • Charts use proper types (time.Time for time-series)
  • Compile-time safety where possible

Package Import Paths

// DataViz packages (this monorepo)
import "github.com/SCKelemen/dataviz/charts"  // Chart implementations
import "github.com/SCKelemen/dataviz/mcp"     // MCP server (usually not imported, used as binary)

// External rendering stack (separate repos)
import "github.com/SCKelemen/layout"          // CSS Grid, Flexbox, text layout
import "github.com/SCKelemen/cli"             // SVG and terminal renderers
import "github.com/SCKelemen/tui"             // Dashboard framework
import design "github.com/SCKelemen/design-system"  // Design tokens (optional)

// Foundation libraries (separate repos)
import "github.com/SCKelemen/color"           // OKLCH color operations
import "github.com/SCKelemen/svg"             // SVG primitives
import "github.com/SCKelemen/text"            // Unicode text operations

Project Structure

github.com/SCKelemen/dataviz/
├── charts/          # Chart implementations (line, area, bar, scatter, heatmap, pie/donut, stat cards)
├── mcp/             # MCP server implementation
│   ├── charts/      # MCP chart handlers (thin wrappers + generic implementations)
│   ├── types/       # MCP type definitions
│   └── mcp/         # MCP protocol implementation
├── cmd/
│   ├── viz-cli/     # CLI binary for terminal charts
│   └── dataviz-mcp/ # MCP server binary
├── examples/        # Example code and data files
└── docs/            # Documentation (ROADMAP.md, etc.)

Related Projects

This monorepo consolidates three previous repositories:

  • dataviz (archived) - Original core library
  • viz-cli (archived) - Original CLI tool
  • dataviz-mcp (archived) - Original MCP server

SCKelemen Foundation Libraries

Contributing

Contributions welcome! This is a monorepo with multiple packages, so please:

  1. Keep changes to relevant packages
  2. Update tests in the same commit
  3. Follow existing code style
  4. Update documentation

License

BearWare 1.0 - MIT-compatible license. See LICENSE for details.

Help the bear. 🐻🐼🐻‍❄️

FAQ

Is this just a charting library?

No! The core is a general-purpose layout and rendering engine. Charts are a high-level API built on top. You can use the layout engine to render:

  • Flexbox layouts
  • CSS Grid layouts
  • Text with proper Unicode handling
  • Any custom visualization

Can I use the layout engine without charts?

Yes! Import layout/ and render/svg/ (or render/terminal/) directly.

Do I need to use design tokens?

No, design tokens in design/ are optional. The rendering engine works fine without them.

What's the difference between render/svg/ and charts/?

  • render/svg/ is a general-purpose SVG renderer (can render any layout)
  • charts/ is a high-level API for common chart types (uses render/svg/ internally)

Can I render to PNG/JPEG?

SVG output can be converted to PNG/JPEG using external tools or libraries. The core library focuses on SVG and terminal rendering.

What's MCP?

Model Context Protocol - a standard for integrating tools with LLMs like Claude. The mcp/ package implements a server that exposes chart generation as MCP tools.

Why a monorepo?

  • Single source of truth for rendering logic
  • Shared layout engine across all outputs
  • Atomic commits across packages
  • Easier testing and CI/CD
  • Consistent versioning

What happened to the old repos?

The previous repos (dataviz, viz-cli, dataviz-mcp) have been archived and redirect here. Import paths have changed to github.com/SCKelemen/dataviz/*.

README mirrored from the source repository a month ago. The original is authoritative.

Questions

About Dataviz

How do I install Dataviz?

Run npx dataviz, then add the server to your MCP client's configuration. Conduid has recorded 0 installs, so the command is known to work with current clients.

Is Dataviz safe to use with an AI agent?

Its trust score is 64 out of 100 (good). It passes 0 of 1 static security checks; the failures are listed above. It has no ConduID identity yet, so agent calls to it are not receipted.

Is Dataviz still maintained?

Yes — the latest release is v1.1.4 (10 Mar 2026), and the last commit was 6 months ago. The repository has 1 stars and 0 open issues.