{"name":"io.equation/equation","slug":"equation","title":"Equation.io","description":"Create interactive 2D and 3D graphs with validated equations, shareable links, and PNG previews.","url":"https://mcp.market/server/equation","rating":null,"grade":"A","score":91,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":48,"stars":406,"forks":54,"downloads_week":null,"last_push_at":"2026-10-03T12:03:45.000Z","license":"MIT"},"uptime":{"percent":100,"checks":28,"ok":28,"last_checked_at":"2026-11-04T05:00:52.957Z","last_ok_at":"2026-11-04T05:00:52.957Z","latency_ms":74},"claimed":false,"transport":"remote","callable_via_gateway":true,"default_price_micros":0,"repository":"https://github.com/aantthony/equation.io","website":"https://equation.io","version":"1.0.1","remotes":[{"type":"streamable-http","url":"https://equation.io/mcp"}],"packages":[],"tools":[{"name":"decode_graph_url","description":"Decode an equation.io link (either the #-fragment form or the /g/ share form) into its list of equation rows, so you can edit them and build a new link with encode_graph_url. The rows use the equation.io syntax documented in the \"syntax\" MCP resource (also at https://equation.io/llms.txt).","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"url":{"type":"string","description":"An equation.io graph URL."}},"required":["url"]}},{"name":"encode_graph_url","description":"Build an equation.io graph link, validating every row with the app's parser. Pass the COMPLETE graph in \"equations\": a flat array of strings, one equation or definition per string, in display order — when editing an existing graph (see decode_graph_url), include unchanged rows too.\n\nRows can be: equations and inequalities in x,y (curves, regions; z makes it 3D), bare expressions in x, y (scalar fields — a curve is written y = f(x); complex plots via w), points (rows report \"draggable\"), parametric tuples in u,v — and definitions: \"a = 2\" (a draggable slider), \"f(x) = x^3 - a x\", coordinate fields like \"r = sqrt(x^2+y^2)\" for polar. t animates. Also derivatives d/dx, integrals int[a..b] f dx, sums sum[n=1..N], domain()/conformal()/iter() for complex plots, rgb()/hsl()/oklch() color fields, y' = … slope fields, random variables \"X ~ Normal(m, s)\"/\"P(0<X<2)\"/\"E(X^2)\", and \"view(x = -5..5, y = -2..2)\"/\"camera(theta, phi)\" framing rows. That is a menu, not the syntax: before your first non-trivial graph, read the \"syntax\" MCP resource (also at https://equation.io/llms.txt).\n\nThe result returns text and structured data only. \"rows\" gives each equation's validation result: status \"ok\" with its kind, or \"error\" with the parser message. The link is usable only once every row is \"ok\". Give users the share_url (it unfurls to a preview card in chat apps); url is the equivalent #-fragment form. \"preview\" and \"preview_omits\" describe the share link's simplified static preview (t = 0, 3D as wireframes), which draws less than the interactive app. No image is attached to the tool response.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"equations":{"type":"array","items":{"type":"string"},"description":"Every equation in the graph, in display order. One equation or definition per string — do not join rows with \";\" (inside quoted text a \";\" is data, and kept)."}},"required":["equations"],"additionalProperties":false}},{"name":"show_graph","description":"Display an interactive equation.io graph inside the conversation, with editable equations, sliders, pan/zoom, and 3D rotation. Use when the user asks to see or explore a graph. Pass the COMPLETE graph as \"equations\", one equation or definition per string, preserving unchanged rows when editing. For a slider use \"a = 2\" then \"y = a sin(x)\". For advanced syntax read the \"syntax\" resource (https://equation.io/llms.txt). Returns per-row validation and share links; a row with status \"error\" is not drawn until its text is corrected and the graph resubmitted. Use encode_graph_url for validation or link-only requests (including share-link preview notes). In clients without UI support, provide share_url.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"equations":{"type":"array","items":{"type":"string"},"description":"Every equation in the graph, in display order. One equation or definition per string — do not join rows with \";\" (inside quoted text a \";\" is data, and kept)."}},"required":["equations"],"additionalProperties":false}}],"scan":{"score":91,"grade":"A","scanned_at":"2026-10-03T16:49:58.362Z","report":{"scannerVersion":"0.1.10","scannedAt":"2026-10-03T16:49:58.262Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 472ms"]},"poisoning":{"score":15,"max":15,"notes":["3 tool descriptions checked"]},"auth":{"score":10,"max":15,"notes":["open endpoint, read-only tools"]},"maintenance":{"score":15,"max":15,"notes":["last push 0 days ago"]},"identity":{"score":8,"max":10,"notes":["endpoint served from the registry-verified namespace domain"]}},"findings":[],"inputs":{"probes":[{"url":"https://equation.io/mcp","reachable":true,"authRequired":false,"latencyMs":472,"serverInfo":{"name":"equation","version":"1.0.1"}}],"packages":[],"repo":{"found":true,"owner":"aantthony","repo":"equation.io","archived":false,"pushedAt":"2026-10-03T12:03:45Z","stars":406,"forks":54,"openIssues":3,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/277425?v=4","ownerCreatedAt":"2010-05-15T03:01:03Z","license":"MIT"},"icon":{"url":"https://equation.io/icon.svg","source":"registry"},"presence":{"stars":406,"forks":54,"downloadsWeek":null,"license":"MIT","lastPushAt":"2026-10-03T12:03:45.000Z","score":48}}}},"grade_history":[],"reviews":[]}