Equation.io
Create interactive 2D and 3D graphs with validated equations, shareable links, and PNG previews.
使うべきか
品質と安全性
検出事項(6)
- HIGH
- MEDIUMencode_graph_url 内
- MEDIUMdecode_graph_url 内
- MEDIUMshow_graph 内
- LOWencode_graph_url 内
- LOWdecode_graph_url 内
ツール定義とプロトコルへの準拠に関する自動分析に基づいています。
コンテキストコスト
これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。
インストール
ワンクリックインストール
これを `claude_desktop_config.json` ファイルに追加してください:
{
"mcpServers": {
"equation": {
"url": "https://equation.io/mcp"
}
}
}リモートエンドポイント
https://equation.io/mcpstreamable-httpできること
ツール一覧
ツール(3)
🟢encode_graph_url(equations)
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. Rows 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, 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). The 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.
入力スキーマ
{
"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
}出力スキーマ
{
"type": "object",
"properties": {
"valid": {
"type": "boolean"
},
"url": {
"type": "string",
"description": "Graph URL using a #-fragment."
},
"share_url": {
"type": "string",
"description": "Shareable /g/ graph URL."
},
"preview": {
"type": "string",
"description": "Static preview availability and limitations."
},
"preview_omits": {
"type": "array",
"items": {
"type": "object",
"properties": {
"row": {
"type": "string"
},
"why": {
"type": "string"
}
},
"required": [
"row",
"why"
],
"additionalProperties": false
}
},
"rows": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"properties": {
"text": {
"type": "string"
},
"status": {
"type": "string",
"enum": [
"ok"
]
},
"kind": {
"type": "string"
},
"animated": {
"type": "boolean"
},
"value": {
"type": "string"
},
"note": {
"type": "string"
},
"draggable": {
"type": "boolean"
}
},
"required": [
"text",
"status",
"kind"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"text": {
"type": "string"
},
"status": {
"type": "string",
"enum": [
"error"
]
},
"error": {
"type": "string"
}
},
"required": [
"text",
"status",
"error"
],
"additionalProperties": false
}
]
}
}
},
"required": [
"valid",
"url",
"share_url",
"preview",
"rows"
],
"additionalProperties": false
}🟢decode_graph_url(url)
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).
入力スキーマ
{
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "An equation.io graph URL."
}
},
"required": [
"url"
]
}出力スキーマ
{
"type": "object",
"properties": {
"equations": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"equations"
],
"additionalProperties": false
}🟢show_graph(equations)
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.
入力スキーマ
{
"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
}出力スキーマ
{
"type": "object",
"properties": {
"valid": {
"type": "boolean"
},
"url": {
"type": "string",
"description": "Graph URL using a #-fragment."
},
"share_url": {
"type": "string",
"description": "Shareable /g/ graph URL."
},
"rows": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"properties": {
"text": {
"type": "string"
},
"status": {
"type": "string",
"enum": [
"ok"
]
},
"kind": {
"type": "string"
},
"animated": {
"type": "boolean"
},
"value": {
"type": "string"
},
"note": {
"type": "string"
},
"draggable": {
"type": "boolean"
}
},
"required": [
"text",
"status",
"kind"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"text": {
"type": "string"
},
"status": {
"type": "string",
"enum": [
"error"
]
},
"error": {
"type": "string"
}
},
"required": [
"text",
"status",
"error"
],
"additionalProperties": false
}
]
}
}
},
"required": [
"valid",
"url",
"share_url",
"rows"
],
"additionalProperties": false
}コミュニティ
エビデンス