About io.github.architectds/mathgraphs-mcp
io.github.architectds/mathgraphs-mcp is an MCP server in the Science category: math & statistics graphing, computation, visualization, and validation engine.
Install
claude mcp add io-github-architectds-mathgraphs-mcp -- npx -y mathgraphs-mcpnpx -y mathgraphs-mcpThis 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.
Tools (7)
analyzeAnswer a question about a curve with an exact number — do NOT work it out yourself. Roots, extrema, inflections, intersections, tangent and normal lines, derivatives, integrals, area between curves, arc length, closest point, on explicit, parametric, polar, and implicit curves. Reach for this when the answer IS a number and a graph is optional (pass plot:true to get it drawn with the result already marked). Reach for plot_graph when the answer is a picture.
Parameters not published.
create_showBundle multiple plot_graph results into a slideshow. Returns URL to an interactive presentation with prev/next navigation.
Parameters not published.
get_3dRetrieve the element list of an existing 3D render by ID. Use before base_render_id to inspect what a scene contains. Returns all elements with their properties.
Parameters not published.
get_graphRetrieve the elements and viewport of an existing 2D graph render by ID. Use it before base_render_id to see what a graph contains, so you can iterate on a graph instead of rebuilding it from scratch.
Parameters not published.
net_generatorUnfold a 3D solid into its printable 2D net, and return its volume, surface area, and the worked formulas. Also the right tool when you only want the volume or surface area of a standard solid. Covers cylinder, cube, cone, square pyramid, triangular prism, rectangular prism, and the four Platonic solids. A sphere has no planar net.
Parameters not published.
plot_3dCreate interactive 3D scenes with shapes, surfaces z=f(x,y), lights, particles, water, text3d (extruded 3D block letters, CJK supported), and 36 compound presets (buildings, vehicles, nature, furniture, characters). Color-driven building styles (red=Chinese, blue=modern, yellow=cozy, green=eco, brown=rustic). Returns interactive URL with inline PNG thumbnail. Supports animation (spin/bounce/orbit/waypoint/follow), physics, WASD player controls, and skybox presets.
Parameters not published.
plot_graphPlot math functions, points, segments, labels, geometry, and shapes on an interactive graph. Auto-computes roots, extrema, and intersections, and auto-fits the viewport to your data when none is given. Supports gridStyle: 'polar'/'axes'/'none', theme: 'default'/'terminal'/'wallstreet'/'science'/'finance', and looping animations. Incremental building: pass base_render_id to build on an existing graph, remove_indices to drop elements from it. Every result reports what actually landed on the canvas (unreadable expressions, off-screen elements, duplicates, blank graphs).
Parameters not published.
Ask AI
Ask AI about io.github.architectds/mathgraphs-mcp
Powered by Claude · Grounded in docs
Security checks
- ✓README presentThe repository ships documentation.
5 checks have not been run yet.
README
mathgraphs-mcp
MCP server for interactive math graphing, 3D scene building, and presentations.
MathTalking computes and renders interactive visualizations. Plot 2D functions, geometry, and 3D scenes. Results are graph-verified — roots, extrema, and intersections are computed from actual plotted curves, not generated by AI.
Zero install. Browser-native. Every result is a shareable interactive URL.
Quick Start
Claude Desktop
Settings → Connectors → Add custom connector → paste:
https://mathtalking.com/api/mcp
No account or API key needed.
Claude Code
claude mcp add --transport http mathtalking https://mathtalking.com/api/mcp
Any MCP Client
POST https://mathtalking.com/api/mcp
Content-Type: application/json
Standard JSON-RPC 2.0 over Streamable HTTP.
Tools
plot_graph — 2D Math Visualization
Plot functions, points, segments, labels, and shapes on an interactive graph. Auto-computes roots, extrema, and intersections for plotted functions.
Input: Array of elements, each with a type and type-specific fields:
| Type | Fields | Example |
|---|---|---|
function |
expression (required), color |
{"type":"function", "expression":"x^2-4", "color":"#4A90D9"} |
points |
points [{x,y}] (required), color, label |
{"type":"points", "points":[{"x":2,"y":0}], "label":"root"} |
segment |
x1,y1,x2,y2 (required), color, label, arrow, dashed |
{"type":"segment", "x1":0, "y1":0, "x2":3, "y2":4, "label":"hypotenuse"} |
label |
text (required), x,y (required), color, fontSize |
{"type":"label", "text":"vertex", "x":0, "y":-4} |
triangle |
x1,y1,x2,y2,x3,y3 (required), color, opacity, border |
{"type":"triangle", "x1":0, "y1":0, "x2":3, "y2":0, "x3":3, "y3":4} |
box |
x1,y1,x2,y2 (required), height (required), color, opacity |
{"type":"box", "x1":0, "y1":0, "x2":1, "y2":0, "height":5} |
circle |
cx,cy,radius (required), color, opacity, border |
{"type":"circle", "cx":0, "cy":0, "radius":3} |
Supports: Explicit y=f(x), implicit x²+y²=1, parametric (cos(t),sin(t)), polar, piecewise, domain restrictions.
Optional params:
viewport—{xmin, xmax, ymin, ymax}to set coordinate rangetitle— graph titlesummary— frosted glass overlay text on the graphgridStyle—"polar"(concentric circles + radial lines),"axes"(axes only),"none"(clean canvas)output—"url"(default, interactive page),"embed"(iframe URL), or"svg"(vector image)animations— array of{tool, name, from, to, loop}for animated parameterstheme—"default","terminal","wallstreet","science", or"finance"
Returns: Interactive URL with zoom, pan, and sliders. Auto-computed roots, extrema, and intersections in the response text.
plot_3d — 3D Scene Builder
Create interactive 3D scenes with shapes, lights, and particle effects. Build anything — snowmen, castles, robots, geometry.
Input: Array of elements, each with a type and type-specific fields:
| Type | Fields | Example |
|---|---|---|
mesh |
shape (required), color, opacity, position, rotation, metalness, roughness, wireframe |
{"type":"mesh", "shape":"sphere", "r":1, "metalness":0.8, "position":[0,1,0]} |
compound |
compound (required), position, scale, color |
{"type":"compound", "compound":"house", "color":"#cc2222", "position":[0,0,0]} |
surface |
expression (required), color, xmin, xmax, ymin, ymax, resolution |
{"type":"surface", "expression":"sin(x)*cos(y)", "color":"#4A90D9"} |
light |
kind (point/spot/directional), color, intensity, position |
{"type":"light", "kind":"point", "color":"#ff8800", "position":[0,5,0]} |
particle |
preset (fire/smoke/rain/snow/sparkle/mist/splash), position, count, spread |
{"type":"particle", "preset":"fire", "position":[3,0,0]} |
water |
position, size, waveHeight, color, opacity |
{"type":"water", "position":[0,0,0], "size":10} |
line3d |
from [x,y,z], to [x,y,z], color |
{"type":"line3d", "from":[0,0,0], "to":[1,1,1]} |
label3d |
text, position [x,y,z] |
{"type":"label3d", "text":"origin", "position":[0,0,0]} |
text3d |
text, position [x,y,z], color, fontSize |
{"type":"text3d", "text":"HELLO", "position":[0,2,0], "color":"#ff0000", "fontSize":1} |
11 mesh shapes: cube, box, sphere, cylinder, cone, tetrahedron, octahedron, dodecahedron, icosahedron, torus, prism
36 compound presets: tree, house, castle_tower, fence, campfire, rock, stairs, arch, table, chair, person, car, road_sign, windmill, dog, cat, flag, bed, sofa, bookshelf, lamp, desk, bush, flower, bridge, lamp_post, bench, apartment, skyscraper, shopping_center, hospital, ambulance, truck, boat, traffic_light, water_tower, fountain
Color-driven building styles: Buildings change architectural style based on color — red=Chinese, blue=modern, yellow=cozy, green=eco, brown=rustic. The actual hex color is used for materials; the hue just selects the geometry variant.
Shape params: cube→size, box→width/height/depth, sphere→r, cylinder→r/h, cone→r/h, torus→r/tube, prism→points/h
Material params: metalness (0=plastic, 1=chrome), roughness (0=mirror, 1=matte), wireframe (boolean)
Animation: animate: {type, speed, ...} — spin, bounce, orbit, waypoint, follow (tracks player)
Physics & controls: physics: {velocity, mass}, controls: {type:"wasd", speed}, collision: true
Incremental building:
base_render_id— build on an existing scene (appends elements, creates new URL)remove_indices— remove elements by index from base (useget_3dto see indices)
Optional: title, summary, camera {position, target}, skybox (day/sunset/night/overcast), gravity (-9.8), follow (boolean)
Returns: Interactive 3D URL with orbit controls + inline PNG thumbnail for chat preview.
get_3d — Inspect 3D Scene
Retrieve the full element list of an existing 3D render by ID. Use this before base_render_id to see what a scene contains and plan modifications.
Input: render_id (the short alphanumeric ID from the URL)
Returns: All elements with their properties (shapes, positions, colors, materials).
create_show — Slideshow Presentations
Bundle multiple plot_graph results into a slideshow. Create each slide with plot_graph first, then pass the render IDs here.
Input: title (string), slide_ids (array of render IDs from plot_graph results), summary (optional per-slide text).
Returns: Interactive show URL with prev/next navigation, keyboard controls, and auto-play.
Example Prompts
- "Plot x³ - 3x + 1 and show me its roots and extrema" → Interactive graph with computed roots (x ≈ -1.88, 0.35, 1.53) and extrema
- "Build a village with a red house, trees, and a campfire" → 3D scene with Chinese-style house (red color triggers Chinese variant), PNG thumbnail in chat
- "Plot the surface z = sin(x) * cos(y)" → Interactive 3D surface plot with orbit controls
- "Create a 3-slide show: y=x², y=x²+2 shifted up, y=(x-3)² shifted right" → Slideshow URL with navigation
When to Use
- User asks to graph, plot, or visualize any math
- You need to verify a mathematical result visually
- Geometry needs precise rendering (triangles, circles, constructions)
- 3D scenes — shapes, architecture, creative builds
- Multi-step explanations — create slides, bundle into shows
- You want a shareable URL the user can explore interactively
Why Use This (vs generating images)
- Computed, not hallucinated — roots from actual zero-crossings, not LLM guesses
- Interactive — zoom, pan, rotate (3D), adjust sliders
- Shareable — permanent URL for every result
- Token efficient — ~500 output tokens vs ~3,000-5,000 for generated code
- 9 languages — en, zh, zh-TW, ja, ko, es, fr, de, pt-BR
Quick Test
# 2D graph
curl -X POST https://mathtalking.com/api/mcp \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"plot_graph","arguments":{"elements":[{"type":"function","expression":"sin(x)","color":"#4A90D9"}]}}}'
# 3D scene
curl -X POST https://mathtalking.com/api/mcp \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"plot_3d","arguments":{"elements":[{"type":"mesh","shape":"sphere","r":1,"color":"#ff0000","position":[0,1,0]}]}}}'
Links
- Website: mathtalking.com
- 3D Builder: mathtalking.com/3d
- Privacy: mathtalking.com/privacy
- Discord: discord.gg/5auPsmxh
- X: @Mathtalking_com
README copy captured when this server was indexed; it may lag the repository. The original is authoritative.