原型 · 预览版:收录官方注册中心里的全部服务器,每 30 分钟同步一次。评价和账户功能将在后续阶段推出。
PopNx MCP为使用 AI 的人准备的 MCP 服务器 · 用大白话讲清楚

Matplotlibnet

作者:xkqg版本 1.18.1i★ –i在你的电脑上运行
注册名称io.github.xkqg/matplotlibnet

安装

概览

作者提供的说明(英文原文)

Renders MatPlotLibNet charts to PNG, SVG or PDF from a JSON spec an AI agent writes.

PopNx MCP 的三大支柱

这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。

它能帮你做什么

我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。

  • 连接方式: 在你的电脑上运行
  • 传输方式: stdio
  • 分类: 文档、表格与办公

安装

选择你使用的 AI 应用,然后复制设置。

安装之前

  • 基础检查:1 项中通过 1 项
  • 在你的电脑上运行,拥有你的用户账户的权限(文件、网络、应用)。
  • 需要你自己填写: MATPLOTLIBNET_MCP_OUTPUT_ROOT, MATPLOTLIBNET_FONTS

你用的是哪个应用?

在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。

打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json

{
  "mcpServers": {
    "matplotlibnet": {
      "command": "dnx",
      "args": [
        "MatPlotLibNet.Mcp",
        "--yes"
      ],
      "env": {
        "MATPLOTLIBNET_MCP_OUTPUT_ROOT": "your-value",
        "MATPLOTLIBNET_FONTS": "your-value"
      }
    }
  }
}

在终端中运行这条命令

claude mcp add matplotlibnet --env MATPLOTLIBNET_MCP_OUTPUT_ROOT=your-value --env MATPLOTLIBNET_FONTS=your-value -- dnx MatPlotLibNet.Mcp --yes

运行前请先填写空着的值。

在 Cursor 中打开

或者自己复制设置

粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json

{
  "mcpServers": {
    "matplotlibnet": {
      "command": "dnx",
      "args": [
        "MatPlotLibNet.Mcp",
        "--yes"
      ],
      "env": {
        "MATPLOTLIBNET_MCP_OUTPUT_ROOT": "your-value",
        "MATPLOTLIBNET_FONTS": "your-value"
      }
    }
  }
}

浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。

在 VS Code 中打开

或者自己复制设置

粘贴到项目中的 .vscode/mcp.json

{
  "servers": {
    "matplotlibnet": {
      "type": "stdio",
      "command": "dnx",
      "args": [
        "MatPlotLibNet.Mcp",
        "--yes"
      ],
      "env": {
        "MATPLOTLIBNET_MCP_OUTPUT_ROOT": "your-value",
        "MATPLOTLIBNET_FONTS": "your-value"
      }
    }
  }
}

浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。

这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。

你的选择通过 Cookie 保存在这台设备上,无需账户。

需要你填写的值

  • MATPLOTLIBNET_MCP_OUTPUT_ROOT env
    The only directory save_chart may write under. Defaults to the system temp directory.
  • MATPLOTLIBNET_FONTS env
    Font files (.ttf, .otf) and directories of them, separated by ';', registered at startup so a chart can use a script the bundled font lacks (Devanagari, Thai, Chinese). Arabic and Hebrew work without…

这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。

它能做什么

它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。

基础检查i

我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月6日

  • ✓ 通过

    作者与仓库一致

    注册名称已通过 GitHub 账户 xkqg 验证,该账户拥有此仓库

  • … 尚未检查

    仍在维护

    我们还没有从 GitHub 读取这个仓库

  • … 尚未检查

    有许可证

    我们还没有从 GitHub 读取这个仓库

  • – 不适用

    端点有响应

    它在你的电脑上运行,没有互联网端点

  • – 不适用

    使用 OAuth 登录

    在你的电脑上运行,改用本地设置

  • … 尚未检查

    工具描述中没有隐藏指令

    它在你的电脑上运行;我们只能读取互联网端点的工具列表

与“文档、表格与办公”中的其他服务器比较i

  • 星标数多于此分类中其他 2169 个服务器的 0%
  • 发布到注册中心的时间比此分类中其他 2169 个服务器的 54% 更新
  • 基础检查结果等于或优于此分类中其他 2169 个服务器的 100%

与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。

常见问题

Matplotlibnet 安全吗?

它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。

它需要哪些密钥或代码?

注册中心没有列出必需的密钥,不过有些服务器会在首次使用时要求你登录。

它在我的电脑上运行还是在云端?

它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。

它还在维护吗?

GitHub 仓库最后更新于–,最新版本(1.18.1)于25天前进入注册中心。

哪些应用可以使用它?

支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 .NET。

有什么可以替代它?

同一分类中有:Agent-Native Calendar, Excel MCP Server, MCP Server for Excel

替代选择

同一分类中其他作者的服务器,按星标数排序。

如何看卡片:★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i

Agent-Native Calendar

作者:BuilderIO

Agent-Native Google Calendar - manage events, sync, and public booking

在云端运行★ 7,620MIT2个月前更新
安装

Excel MCP Server

作者:haris-musa

Create and edit Excel files with AI: charts, PivotTables, formulas. No Excel needed.

在你的电脑上运行★ 4,276MIT5天前更新
安装

MCP Server for Excel

作者:sbroenne

Excel automation for AI - Sheets, Power Query, DAX, VBA, Tables, Ranges and more. Windows only.

在你的电脑上运行★ 847MIT3天前更新
安装

作者的 README

打开 README

按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。

MatPlotLibNet — matplotlib for .NET

MatPlotLibNet is a charting library for C#, .NET 10 and .NET 8, inspired by matplotlib. It draws 91 chart types and saves them as SVG, PNG, PDF or an animated GIF, straight from your server code. It does not need a JavaScript framework, a WebView or a hosted service.

It has a fluent API and it works with dependency injection. It ships with 148 colormaps, 30 themes, 13 map projections with embedded Natural Earth data, LaTeX-style MathText, text in any script, O(1) streaming (57 of its 59 technical indicators have a streaming form), a control room (Plt.OpsDashboard() — KPI tiles, state timelines, one shared trend window), and an MCP server so an AI agent can draw with it. Charts render natively in Blazor, WPF, MAUI, Avalonia, Uno and ASP.NET Core, inside a Verso notebook cell, and TypeScript clients are there for Angular, React and Vue.

Where this is going

1.29.0 puts shapes on an axes and lets an axis show another unit. A rectangle, a polygon, an arrow, a circle, an ellipse, a wedge and an arc (AddPatch) are placed in data coordinates and bend with the axes they stand on, as matplotlib's patches do: on a log axis a circle bends and a straight edge stays straight. They count in the automatic range, a labelled one has a row in the legend, and they travel through JSON and the MCP server. A top or side axis can show the same values in another unit through a function and its inverse (Link with an AxisTransform: degrees Celsius against Fahrenheit, a frequency against its period), as matplotlib's secondary_xaxis and secondary_yaxis do. The top X axis now follows its own tick locator and scale, a series on it follows a log primary Y axis, a translucent line or text keeps its opacity in the SVG, a figure built with AddSubPlot(rows, cols, index) keeps its cell through JSON, and the MCP server draws a spec that holds shapes, spans or annotations and no series. The three rows that were still to come on the roadmap are done.

1.28.0 draws more of what matplotlib draws. Stairs, VLines, HLines and Triplot join the chart verbs, and a sixth family of verbs (Psd, Csd, Cohere, MagnitudeSpectrum, PhaseSpectrum, AngleSpectrum, Acorr, Xcorr) draws a sampled signal in the frequency domain, and its correlation, with matplotlib's defaults; the twelve bring the chart verbs to thirty-eight. A contour label follows its line, upright and in the line's colour; a figure carries text, a legend and an image of its own (FigText, FigLegend, FigImage), drawn on a figure with no subplot too; and an inset marks the region it zooms into (IndicateZoom). The spectrogram windows each frame once and draws its rows at the frequencies they are, a line that is downsampled keeps its gaps, and a line set to LineStyle.None draws no line. A figure's texts, legend and images and an inset's zoom travel through JSON and the MCP server.

1.27.0 finishes the roadmap. A word cloud, a chord diagram, a ternary plot and a Piper diagram are new charts, a selection in one chart can light the same rows in another, and an animation can be saved as one SVG that steps through its frames. A live chart sends its own gestures, one handler interface receives them, and several viewers of one chart share it by design. The native controls return Home to the first view, the MAUI view reaches the same functions, and the Windows heads are tested by CI. 57 of the 59 indicators have a streaming form that follows each new bar, and transfer entropy follows a window.

1.26.0 gives marks that are a size in data units a home. A waffle chart, a calendar of events, Point and Figure and Renko charts draw squares, stripes and boxes that tile the plot area, and Kagi draws its thick and thin lines. A fill can run from one colour to another, an arrow can follow a connected scatter, and the frame of a plot can be trimmed: a spine spans only the data's range, a plot keeps an equal scale on request, and parallel coordinates label every column in its own units. An icicle chart, an arc diagram and a stem-and-leaf plot join the layouts, a waterfall chart can mark a target on each bar, and the comparison with matplotlib now runs in CI. Three new series types (the waffle chart, Point and Figure and the icicle chart) join the chart types, and six new verbs (CalendarEvents, Renko, Kagi, ConnectedScatter, StemAndLeaf, MatShow) bring the chart verbs to 26.

1.25.0 gives each value a chart resolves one owner that every reader asks. The colour bar puts its ticks where the chart's normaliser puts its colours, a theme owns the neutral grey that reference lines and outlines wear, a grid the author changed stays a change over whichever theme the figure is drawn under (a polar chart's rings and a 3-D chart's walls included), and a light's strength reaches the surfaces and bars it lights. Saving to .png, .pdf or .gif without the Skia package is refused rather than written as SVG, and axes that share a scale share its margins, so a table stands directly under the curve it counts. The statistics grow: the violin reads the same Gaussian estimator as the density plot, ProbabilityPlot draws a Q-Q plot against an exponential, uniform, log-normal or Student t distribution (or one of your own), RiskTable puts the numbers at risk and the log-rank test under a survival plot, and ShewhartChart draws the individuals, moving range, X-bar, range, p and c charts and marks points by Nelson's eight tests. The volume tools gain an anchored VWAP (Vwap(bars, anchor)) and a volume profile (VolumeProfile). The library now has 59 indicators.

1.24.0 gathers every Y axis of a chart into one container. The primary axis is the first axis of the left side, and each further axis stacks outward past the one before it, on either side and as many times as the chart needs one: WithAddRightYAxis and WithAddLeftYAxis add an axis with its own range, ticks, colour, series and legend entry, there is no "second" or "third" in the name to count, and the four scales 1.23.0 stopped at are no limit any more. The older verbs for a secondary and for an outward-stacked Y axis keep working and are marked obsolete in favour of them; the changelog lists each with what replaces it. A Y axis title now stands the same distance from its tick labels on the left and on the right, 4 px between the title and the widest label by default, and WithYAxisTitleGap sets another distance for the whole chart; the left title no longer runs off the edge of the figure. Every axis draws the way the primary one does, with its own log or symlog scale, tick locator, minor ticks and a title in math markup, and a line on a left-hand axis can carry its name at its end. A figure written to JSON keeps every axis, whatever their number, and a figure that stays within the old four writes the file 1.23.0 wrote. A chart server drops a zoom or pan that names a subplot it does not have, and one event that fails no longer ends the chart's session for good, as it used to; the MCP server checks every axis of a chart spec instead of the first two. The texts of a chart are placed with more care: a legend left at Best stands where it covers the fewest marks, as matplotlib's loc='best' does, an annotation takes the theme's text size and can move by a number of pixels or out of the way of the data and the legend, a bar's value label stands beyond the bar's end whichever way the bar points, and a turned tick label has room beside the plot.

The same release picks up thirteen more rows of the roadmap, each one rule where there had been two. A colour bar puts its ticks at round numbers, as many as fit along its length. A polar chart has one radial scale that its rings, lines, bars and heatmap all read, and polar bars stack, so a wind rose is one PolarBar call for each speed class. Bars stack on both sides of zero, so a Likert scale is a stacked bar chart. A filled contour fills the bands between its levels over the grid and follows the limits you set. A series that cannot be drawn from the data it was given is refused when it is built, and not when the chart is drawn, and the MCP server names the place in the spec where it stands. A stacked area names its layers in the legend, a state timeline's legend entry shows its states, and a series says for itself whether it needs axes around it. A map from MatPlotLibNet.Geo keeps its holes, comes back from JSON, colours its regions by a value (Choropleth) and takes points, bubbles, hexagon bins, flows along great circles, a cartogram and a Dorling map.

1.23.0 moves the technical indicators that read a candle's open, high, low, close and volume from separate array parameters to one OhlcvBars value, built with the factory that names the columns the indicator actually uses (OhlcvBars.Hlc(high, low, close), OhlcvBars.Cv(close, volume), and so on) instead of repeating the same arrays across every indicator on a chart. A chart with more than two scales now has somewhere to put the extra ones: a verb that stacks a second axis past the first on either side — four scales total, two left and two right, each with its own range, ticks, series and legend entry, the way matplotlib moves a twin's spine outward. A secondary axis restores through the same registry the primary one does, so a bar or an area survives there and on the top axis too, not only a line or a point; and a wheel zoom, a drag pan, a rectangle zoom and Home now move every one of those axes, each by its own amount, whether the server answers the gesture or a native control does. Underneath, the close to a hundred chart verbs the fluent API builds from now live one-per-file as extension members on Axes instead of all sharing one class — a file-layout change only, no call a reader writes is any different because of it.

1.22.0 lets several series share one colour instead of each taking the next one from the theme's cycle, and spends it on three things: a Kaplan-Meier curve now draws its confidence band and its censor marks in the curve's own colour, and two new verbs, Raincloud (a half violin, a narrow box and a group's raw points in one colour) and Horizon (a signed series folded into bands of two hues), bring the axes builder to seventeen verbs.

1.21.0 makes every chart type and every axes setting round-trip through JSON whole. A Sankey's nodes and links, a treemap's, sunburst's, dendrogram's and clustermap's trees, a tree grid's rows, a polar chart's data, a streaming chart's current points and a planar 3-D bar's data all come back from JSON as themselves now, not a placeholder — the MCP server lists and accepts all eight again, where it used to refuse them by name. An axes' Z axis, its 3-D pane colours and its tooltip switch come back too. The one series this release did not reach is MatPlotLibNet.Geo's GeoPolygonSeries, named on the roadmap; 1.24.0 brings it back from JSON too.

1.20.0 turns charts that took a page of code into one call. Fifteen verbs on the axes builder, among them Pareto, Ridgeline, CalendarHeatmap, QQPlot, ControlChart, KaplanMeier, StreamGraph and Marimekko, take the data as you hold it (names, groups, samples, dates) and build the chart from the series the library already has. Underneath them, a figure wr

只显示了开头部分;其余内容请在仓库中阅读

问 PopNx