
Company News
Socket Joins New OpenJS Program to Fund Node.js Security Work
Socket is joining the OpenJS Security Stewardship Program to fund Node.js vulnerability research, maintainer remediation, and security releases.
MatPlotLibNet.Mcp
Advanced tools
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.
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 — four tools:
| tool | what it does |
|---|---|
render_chart | renders a chart spec to a PNG image the model can look at |
save_chart | writes the chart as PNG, SVG or PDF to a file and returns the path it wrote |
list_chart_types | the chart types the spec accepts, read off the library's own registry |
describe_chart_schema | the 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 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.
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.
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.MIT — see the repository.
FAQs
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.
We found that MatPlotLibNet.Mcp demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Company News
Socket is joining the OpenJS Security Stewardship Program to fund Node.js vulnerability research, maintainer remediation, and security releases.

Security News
Two compromised GitHub Actions were re-enabled with malicious tags intact, exposing thousands of downstream repositories to Mini Shai-Hulud.

Research
/Security News
A malicious Firefox extension fetches its payload after installation to evade detection, steal Google session cookies, and automate account takeover.