{"server":"io.equation/equation","count":3,"tools":[{"name":"decode_graph_url","title":"Read a graph link","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).","input_schema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","description":"An equation.io graph URL."}}},"output_schema":{"type":"object","required":["equations"],"properties":{"equations":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},"annotations":{"title":"Read a graph link","readOnlyHint":true,"openWorldHint":false,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T17:50:57.178Z"},{"name":"encode_graph_url","title":"Create a graph link","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 link card in chat apps); url is the equivalent #-fragment form. No image is attached to the tool response.","input_schema":{"type":"object","required":["equations"],"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)."}},"additionalProperties":false},"output_schema":{"type":"object","required":["valid","url","share_url","rows"],"properties":{"url":{"type":"string","description":"Graph URL using a #-fragment."},"rows":{"type":"array","items":{"anyOf":[{"type":"object","required":["text","status","kind"],"properties":{"kind":{"type":"string"},"note":{"type":"string"},"text":{"type":"string"},"value":{"type":"string"},"status":{"enum":["ok"],"type":"string"},"animated":{"type":"boolean"},"draggable":{"type":"boolean"}},"additionalProperties":false},{"type":"object","required":["text","status","error"],"properties":{"text":{"type":"string"},"error":{"type":"string"},"status":{"enum":["error"],"type":"string"}},"additionalProperties":false}]}},"valid":{"type":"boolean"},"preview":{"type":"string","description":"Static preview availability and limitations."},"share_url":{"type":"string","description":"Shareable /g/ graph URL."},"preview_omits":{"type":"array","items":{"type":"object","required":["row","why"],"properties":{"row":{"type":"string"},"why":{"type":"string"}},"additionalProperties":false}}},"additionalProperties":false},"annotations":{"title":"Create a graph link","readOnlyHint":true,"openWorldHint":false,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T17:50:57.178Z"},{"name":"show_graph","title":"Show an interactive 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.","input_schema":{"type":"object","required":["equations"],"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)."}},"additionalProperties":false},"output_schema":{"type":"object","required":["valid","url","share_url","rows"],"properties":{"url":{"type":"string","description":"Graph URL using a #-fragment."},"rows":{"type":"array","items":{"anyOf":[{"type":"object","required":["text","status","kind"],"properties":{"kind":{"type":"string"},"note":{"type":"string"},"text":{"type":"string"},"value":{"type":"string"},"status":{"enum":["ok"],"type":"string"},"animated":{"type":"boolean"},"draggable":{"type":"boolean"}},"additionalProperties":false},{"type":"object","required":["text","status","error"],"properties":{"text":{"type":"string"},"error":{"type":"string"},"status":{"enum":["error"],"type":"string"}},"additionalProperties":false}]}},"valid":{"type":"boolean"},"share_url":{"type":"string","description":"Shareable /g/ graph URL."}},"additionalProperties":false},"annotations":{"title":"Show an interactive graph","readOnlyHint":true,"openWorldHint":false,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T17:50:57.178Z"}],"next_cursor":null,"next_actions":[{"action":"get_connection","description":"Connection block to call these tools","href":"/v1/servers/io.equation%2Fequation/connection?target=mcpServers","arguments":{"name":"io.equation/equation","target":"mcpServers"}},{"action":"get_server","description":"Full descriptor with trust and connectability","href":"/v1/servers/io.equation%2Fequation","arguments":{"name":"io.equation/equation"}}]}