New:Microsoft Teams Notifications Are Now Available in Socket.Learn more
Get Started

MatPlotLibNet.Mcp

Package Overview
Dependencies
Maintainers
1
Versions
6
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

MatPlotLibNet.Mcp

MCP (Model Context Protocol) stdio server for MatPlotLibNet. An AI agent renders the library's chart types to PNG, SVG or PDF from a JSON spec, reads the chart's data back as a markdown table, lists the chart types and reads the spec schema — no browser, no service.

Source
nugetNuGet
Version
1.16.0
Version published
Total downloads
550
Maintainers
1
Created
Source

MatPlotLibNet.Mcp

mcp-name: io.github.xkqg/matplotlibnet

An MCP (Model Context Protocol) server for MatPlotLibNet. It gives an AI agent — Claude Code, VS Code, Claude Desktop, any MCP host — five tools:

toolwhat it does
render_chartrenders a chart spec to a PNG image the model can look at
save_chartwrites the chart as PNG, SVG or PDF to a file and returns the path it wrote
chart_data_tablethe chart's DATA as markdown tables — a model can see that a line rises, but it cannot read a value off a picture
list_chart_typesthe chart types the spec accepts, read off the library's own registry
describe_chart_schemathe fields of the spec, and a worked example for a chart type

The server speaks stdio. It is a .NET tool: a host runs it with dnx MatPlotLibNet.Mcp (the .NET 10 SDK resolves and starts it), or with dotnet tool exec MatPlotLibNet.Mcp.

{
  "servers": {
    "MatPlotLibNet.Mcp": {
      "type": "stdio",
      "command": "dnx",
      "args": ["MatPlotLibNet.Mcp", "--yes"]
    }
  }
}

The spec

The spec is the library's own figure JSON — the same document figure.ToJson() writes and ChartSerializer.FromJson reads — so anything the library can draw, the agent can ask for:

{
  "width": 800, "height": 600, "title": "Revenue",
  "subPlots": [{
    "series": [{ "type": "line", "xData": [1, 2, 3, 4, 5], "yData": [2, 4, 3, 5, 1], "label": "Q1" }]
  }]
}

The server checks the spec before it renders: an unknown field, an unknown chart type, a misspelled enum value, a colour the library does not know, a missing size — each is refused with a message that names the offending field, so the model can correct itself instead of receiving a blank picture.

What comes back

render_chart returns the PNG as an image block and, beside it, a short text summary (chart types, series, axis ranges) so a model that cannot see the image still knows what it made. SVG and PDF are large; they go to a file through save_chart, never inline.

The SVG this server writes carries text as glyph outlines (<path>), not <text> elements — the PNG backend is loaded in the same process, and the library then embeds its own font so the drawing is identical everywhere.

Limits

  • save_chart writes only under one directory: the system temp directory, or the one named by the MATPLOTLIBNET_MCP_OUTPUT_ROOT environment variable. It never overwrites an existing file unless asked.
  • A canvas larger than the documented ceiling is refused with the ceiling in the message.

License

MIT — see the repository.

Keywords

mcp

FAQs

Package last updated on 12 Sep 2026

Related posts