{"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":89,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":48,"stars":405,"forks":54,"downloads_week":null,"last_push_at":"2026-09-19T12:07:08.000Z","license":"MIT"},"uptime":{"percent":100,"checks":2,"ok":2,"last_checked_at":"2026-09-19T22:25:52.697Z","last_ok_at":"2026-09-19T22:25:52.697Z","latency_ms":78},"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.0","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 a link that opens the equation.io grapher with the given equations already rendered, validating every row through the app's own 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 the unchanged rows too.\n\nRows can be: equations and inequalities in x,y (curves, regions; z makes it 3D), bare expressions (scalar fields; 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, 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 the same per-row validation and share links as encode_graph_url; 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. 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":89,"grade":"A","scanned_at":"2026-09-19T20:03:10.842Z","report":{"scannerVersion":"0.1.5","scannedAt":"2026-09-19T20:03:10.822Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 160ms"]},"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":7,"max":10,"notes":["namespace and repository owner differ","GitHub account older than a year","website matches verified namespace"]}},"findings":[],"inputs":{"probes":[{"url":"https://equation.io/mcp","reachable":true,"authRequired":false,"latencyMs":160,"serverInfo":{"name":"equation","version":"1.0.0"}}],"packages":[],"repo":{"found":true,"owner":"aantthony","repo":"equation.io","archived":false,"pushedAt":"2026-09-19T12:07:08Z","stars":405,"forks":54,"openIssues":4,"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":405,"forks":54,"downloadsWeek":null,"license":"MIT","lastPushAt":"2026-09-19T12:07:08.000Z","score":48}}}},"grade_history":[],"reviews":[]}