A side-by-side look at the Microcharts and Maidr MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose Microcharts for data visualization work as a local process; choose Maidr for data visualization as a local process. You can also run both side by side in one mcpServers block.
find_microchart, get_microchart, render_microchart.show_chart, update_chart, maidr_list_charts.Rows where the two servers differ are marked.
| Spec | M Maidr | |
|---|---|---|
| Category | Data Visualization | Data Visualization |
| Quality signal | 68/100 · Great | 53/100 · Good |
| Install command | Confirmed | Confirmed |
| Transport | Local subprocess (stdio) | Local subprocess (stdio) |
| Auth | No auth required | No auth required |
| Pricing | Free | Free |
| Required env vars | None listed | None listed |
| Verified owner | Community listing | Community listing |
| GitHub stars | 199 | 1 |
| Directory activity | 3 views 0 installs 0 upvotes | 0 views 0 installs 0 upvotes |
| Tools | 3 | 7 |
| Full listing | View Microcharts | View Maidr |
find_microchartRank microcharts chart types against a plain-language question about data ("is it trending?", "error budget", "part to whole"). Returns candidates with the reason each matched. Start here when you know the question, not the chart.get_microchartFull wiring detail for one chart by slug: import paths, its props plus the shared props, data shape, best/avoid guidance, a copy-runnable example, and `sample` — the example as JSON props you can pass straight to render_microchart.render_microchartRender a chart to a finished, self-contained SVG (styles embedded) plus its generated alt text — for surfaces that can't run React. Pass the series as `data`; put other props (value, target, curve, color, width) in `props`. Each chart takes its own data shape — get_microchart returns a valid `sample` to adapt.show_chartDraws the chart and shows it. Returns the `viewId` the other tools take.update_chartDraws a new chart and puts it in place of the one in that `viewId`'s view. Adds no view. A reader in the chart stays in it, on the new chart; anyone else keeps their focus. Both are told it changed.maidr_list_chartsReturns the chart's layers, point counts, and, while the reader is in the chart, where they are, live. Silent.maidr_get_layer_dataReturns a page of a layer's points, each with the `target` that `maidr_navigate` takes. Silent.maidr_navigateMoves the reader to a point and announces it. With `focus: true`, for a reader who asked to be taken there, maidr first moves their keyboard focus into the chart, and answers `focused: true`, or `focused: false` when it could not, leaving the move to wait for them.maidr_list_commandsReturns the reader's commands, each with its id, title, keys, and whether the model can run it, and the reader's current modes (text, sound, braille, autoplay and more). Silent.maidr_run_commandRuns one of the reader's commands, such as `toggle_braille`, `autoplay_forward` or `go_to_max_value`, as if they had pressed its keys, and announces the result. Commands that open a dialog or text field are the reader's own. With `focus: true`, for a reader who asked for it now, maidr first moves t…Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.
{
"mcpServers": {
"ganapativs-microcharts": {
"command": "npx",
"args": [
"-y",
"@microcharts/mcp"
]
}
}
}
{
"mcpServers": {
"maidr": {
"command": "uvx",
"args": [
"maidr-mcp"
]
}
}
}