基于JSXGraph的MCP协议服务器,提供13种数学可视化工具,适用于教育数学、工程和科学应用。
此 Skill 必须配置 API 密钥才能使用。
.env 中没有 XBY_APIKEY, 必须使用 AskUserQuestion 工具向用户询问 API 密钥scripts.config.set_api_key(api_key) 保存,然后继续处理你(大模型)是路由层,负责理解用户意图、选择工具、提取参数。代码只负责调用API。
text
用户输入 → 你选择工具 → 提取该工具需要的参数 → 调用 scripts.tools 中的函数 → 返回结果给用户
scripts.config.settings.api_key 为空,使用 AskUserQuestion 询问用户,拿到后调用 scripts.config.set_api_key(key) 保存scripts.tools 中的函数,例如 scripts.tools.search_schools(score='520', province='北京', category='综合')raw 数据整理后展示给用户根据用户意图选择对应的工具函数:
用户意图工具函数Function Graph Tool — render single or multiple functions with JSXGraph.
Use when the problem asks to plot or sketch y = f(x), compare curves, or show calculus features such as tangents, derivatives, or integrals.
⚠️⚠️⚠️ CRITICAL TYPE REQUIREMENTS ⚠️⚠️⚠️
Capabilities:
Examples:
Plot a single function: { "functions": [{ "expression": "x^2" }] }
Function with domain and open endpoints (for piecewise functions): { "functions": [ { "expression": "x^2", "domain": [-3, 2], "leftOpen": true, "rightOpen": false } ] } // leftOpen=true draws a hollow circle at x=-3, rightOpen=false draws a filled circle at x=2
Function with custom points (filled or open circles): { "functions": [{ "expression": "x^2" }], "points": [ { "x": 0, "y": 0, "name": "Origin", "fillColor": "red" }, { "x": 2, "y": 4, "fillColor": "white", "strokeColor": "blue" } // open circle ] }
Multiple functions with custom colors: { "functions": [ { "expression": "x^2", "color": "blue", "name": "f(x)" }, { "expression": "x^3", "color": "red", "name": "g(x)" } ] }
Common mistakes to AVOID:
Keywords: plot function, function graph, sketch curve, calculus visualization, compare functions | scripts.tools.generate_function_graph |
| Parametric Curve Tool — plot curves defined by x(t) and y(t) with JSXGraph.
⚠️⚠️⚠️ CRITICAL TYPE REQUIREMENTS ⚠️⚠️⚠️
Use when the prompt describes parameterized motion, circles, cycloids, Lissajous patterns, or any curve specified as functions of t.
Capabilities:
Examples:
Circle (unit circle): { "curves": [{ "xExpression": "Math.cos(t)", "yExpression": "Math.sin(t)", "tMin": 0, "tMax": 6.283185307179586 }] }
Parabola in parametric form: { "curves": [{ "xExpression": "t", "yExpression": "t^2", "tMin": -5, "tMax": 5 }] }
Curve with points (x = 5sin(t), 0 ≤ t ≤ π/6): { "curves": [{ "xExpression": "5 * Math.sin(t)", "yExpression": "t", "tMin": 0, "tMax": 0.5236 }], "points": [{ "x": 0, "y": 0 }, { "x": 2.5, "y": 0.5236 }] }
Common mistakes to AVOID:
Keywords: parametric plot, x of t, y of t, motion path, curve animation | scripts.tools.generate_parametric_curve |
| Generate interactive geometry diagrams using JSXGraph.
Create points, lines, circles, polygons, angles, vectors, and geometric constructions.
Perfect for visualizing geometric concepts, theorems, and constructions like triangles, perpendiculars, angle bisectors, vectors, etc.
⚠️⚠️⚠️ CRITICAL TYPE REQUIREMENTS ⚠️⚠️⚠️
Examples:
Triangle with labeled vertices: { "points": [ { "x": 0, "y": 0, "name": "A" }, { "x": 3, "y": 0, "name": "B" }, { "x": 1.5, "y": 2.6, "name": "C" } ], "lines": [ { "point1": "A", "point2": "B" }, { "point1": "B", "point2": "C" }, { "point1": "C", "point2": "A" } ], "polygons": [{ "vertices": ["A", "B", "C"], "fillOpacity": 0.2 }] }
Square with custom angle label: { "points": [ { "x": 0, "y": 0, "name": "P1" }, { "x": 2, "y": 0, "name": "P2" }, { "x": 2, "y": 2, "name": "P3" }, { "x": 0, "y": 2, "name": "P4" } ], "polygons": [{ "vertices": ["P1", "P2", "P3", "P4"] }], "angles": [{ "point1": "P1", "vertex": "P2", "point2": "P3", "label": "90°" }] }
Vector diagram: { "points": [ { "x": 0, "y": 0, "name": "O" }, { "x": 3, "y": 2, "name": "A" }, { "x": -1, "y": 3, "name": "B" } ], "lines": [ { "point1": "O", "point2": "A", "type": "vector", "name": "v1", "color": "#ff0000" }, { "point1": "O", "point2": "B", "type": "vector", "name": "v2", "color": "#0000ff" } ] }
Common mistakes to AVOID:
REMEMBER: Always define points first, then reference them by name (string) in lines, polygons, angles!
Keywords: geometry, triangle, polygon, angle, vector, construction, geometric diagram | scripts.tools.generate_geometry_diagram |
| Generate vector field visualizations using JSXGraph.
Display 2D vector fields with arrows showing direction and magnitude at each point.
Supports streamlines, singular points, and color-coded magnitudes.
Ideal for visualizing gradient fields, flow fields, electromagnetic fields, etc.
⚠️⚠️⚠️ CRITICAL TYPE REQUIREMENTS ⚠️⚠️⚠️
Examples:
Circular vector field F(x,y) = (-y, x): { "fieldFunction": { "dx": "-y", "dy": "x" } }
Direction field for y' = 9 + 9y: { "fieldFunction": { "dx": "1", "dy": "9 + 9*y" }, "streamlines": [{ "startX": 0, "startY": -1 }, { "startX": 0, "startY": 0 }] }
Radial field F(x,y) = (x, y): { "fieldFunction": { "dx": "x", "dy": "y" } }
Gradient field ∇f where f(x,y) = x² + y²: { "fieldFunction": { "dx": "2 x", "dy": "2 y" } }
Common mistakes to AVOID:
REMEMBER: Even constant numbers like 0, 1, -1 MUST be strings: "0", "1", "-1" | scripts.tools.generate_vector_field |
| Linear System Tool — graph linear equations and inequalities using JSXGraph.
Use when the prompt asks to solve or visualise systems of linear equations, highlight intersection points, or show feasible regions for inequalities/objectives.
Capabilities:
Quick start example: { "equations": [{ "a": 1, "b": 1, "c": 5 }, { "a": 1, "b": -1, "c": 1 }] }
Keywords: linear system, intersection graph, inequality shading, objective line, simultaneous equations | scripts.tools.generate_linear_system |
| Function Transformation Tool — illustrate how a base function changes under common operations.
Use when the question mentions translations, stretches, reflections, absolute values, inverses, or composite functions based on an original curve.
Capabilities:
IMPORTANT: transformation 'type' MUST be one of: 'translate', 'scale', 'reflect', 'absolute', 'inverse', 'composite'.
Examples:
Horizontal shift (translation): { "baseFunction": { "expression": "x^2" }, "transformations": [{ "type": "translate", "parameters": { "h": 2, "k": 1 } }] }
Vertical stretch (scaling): { "baseFunction": { "expression": "Math.sin(x)" }, "transformations": [{ "type": "scale", "parameters": { "a": 2 } }] }
Horizontal compression: { "baseFunction": { "expression": "x^2" }, "transformations": [{ "type": "scale", "parameters": { "b": 2 } }] }
Reflection across x-axis: { "baseFunction": { "expression": "x^2" }, "transformations": [{ "type": "reflect", "parameters": { "axis": "x" } }] }
Reflection across y=x (inverse function): { "baseFunction": { "expression": "x^3" }, "transformations": [{ "type": "reflect", "parameters": { "axis": "y=x" } }] }
Multiple transformations: { "baseFunction": { "expression": "x^2" }, "transformations": [ { "type": "translate", "parameters": { "h": 1 } }, { "type": "scale", "parameters": { "a": 2 } } ] }
Common mistakes:
Keywords: transform function, translate graph, stretch function, reflect curve, composition | scripts.tools.generate_function_transformation |
| Quadratic Analysis Tool — visualize parabolas and their key features using JSXGraph.
Use when the prompt asks to analyse or sketch quadratic functions, compare parabolas, or explain vertex, intercepts, symmetry, or discriminant behavior.
Capabilities:
Quick start example: { "quadratics": [{ "a": 1, "b": 0, "c": 0 }] }
Keywords: quadratic graph, parabola analysis, vertex form, factor form, compare parabolas | scripts.tools.generate_quadratic_analysis |
| Exponential and Logarithmic Tool — plot growth, decay, and log curves with JSXGraph.
Use when the problem references exponential or logarithmic expressions, asymptotes, inverse relationships, or needs comparisons between bases.
Capabilities:
IMPORTANT:
Examples:
Natural logarithm y = ln(x): { "functions": [{ "type": "logarithm" }] }
Common logarithm y = log₁₀(x): { "functions": [{ "type": "logarithm", "base": 10 }] }
Exponential growth y = 2^x: { "functions": [{ "type": "exponential", "base": 2 }] }
Natural exponential y = e^x: { "functions": [{ "type": "exponential" }] }
Exponential decay y = (0.5)^x: { "functions": [{ "type": "exponential", "base": 0.5 }] }
Compare ln(x) with log₂(x): { "functions": [ { "type": "logarithm", "name": "ln(x)", "color": "blue" }, { "type": "logarithm", "base": 2, "name": "log₂(x)", "color": "red" } ] }
Logarithm with special points and asymptote: { "functions": [{ "type": "logarithm", "base": 10 }], "showAsymptotes": true, "specialPoints": [{ "x": 1, "y": 0, "label": "(1, 0)" }, { "x": 10, "y": 1, "label": "(10, 1)" }] }
Common mistakes to avoid:
Keywords: exponential graph, logarithmic curve, growth rate, decay model, inverse functions | scripts.tools.generate_exponential_logarithm |
| Generate rational and irrational function visualizations using JSXGraph.
Plot rational functions with asymptotes (vertical, horizontal, oblique), holes, intercepts, and critical points.
Visualize irrational functions with domain restrictions.
Supports factorization, partial fractions, and end behavior analysis.
⚠️⚠️⚠️ CRITICAL TYPE REQUIREMENTS ⚠️⚠️⚠️
Examples:
Simple rational function f(x) = 1/x: { "rationalFunctions": [{ "numerator": "1", "denominator": "x" }] }
Rational function f(x) = (x² - 1)/(x - 2): { "rationalFunctions": [{ "numerator": "x^2 - 1", "denominator": "x - 2" }] }
Multiple rational functions: { "rationalFunctions": [ { "numerator": "x + 1", "denominator": "x^2 - 4", "color": "blue" }, { "numerator": "x^2", "denominator": "x - 1", "color": "red" } ] }
Irrational function f(x) = √x: { "irrationalFunctions": [{ "expression": "Math.sqrt(x)", "domain": [0, 10] }] }
Common mistakes to AVOID:
REMEMBER: ALL expressions MUST be strings with quotes, including simple numbers!
Examples: "1" not 1, "0" not 0, "x" not x, "2 x+1" not 2 x+1 | scripts.tools.generate_rational_function |
| Generate systems of equations visualization using JSXGraph. Solve and visualize linear and nonlinear equation systems, find intersection points, show solution sets, and analyze system properties. Supports implicit equations, parametric systems, numerical solutions, and advanced analysis including matrix representation and phase portraits. | scripts.tools.generate_equation_system |
| Generate conic sections and high-degree polynomials using JSXGraph.
Visualize circles, ellipses, parabolas, hyperbolas with their foci, directrices, vertices, and asymptotes.
Plot polynomials with roots, critical points, and inflection points.
Supports general conic equations, rotated conics, and intersection analysis.
IMPORTANT: Each conic in the 'conics' array MUST have a 'type' field.
Examples:
Circle with radius 5: { "conics": [{ "type": "circle", "center": { "x": 0, "y": 0 }, "radius": 5 }] }
Parabola y² = 4px: { "conics": [{ "type": "parabola", "vertex": { "x": 0, "y": 0 }, "p": 1 }] }
Ellipse with semi-axes a=4, b=2: { "conics": [{ "type": "ellipse", "center": { "x": 0, "y": 0 }, "a": 4, "b": 2 }] }
Hyperbola: { "conics": [{ "type": "hyperbola", "center": { "x": 0, "y": 0 }, "a": 3, "b": 2 }] }
General conic Ax² + Bxy + Cy² + Dx + Ey + F = 0: { "generalConics": [{ "A": 1, "B": 0, "C": 1, "D": 0, "E": 0, "F": -25 }] }
Common mistakes:
scripts.tools.generate_conic_section |
| Number Line Inequality Tool — illustrate solution sets on a one-dimensional axis with JSXGraph.Use when the task asks to plot inequality solutions, show interval notation, or visualise unions/intersections on a number line.
Capabilities:
IMPORTANT: Each inequality MUST have an 'expression' field (string). DO NOT use 'start/end' or 'includeStart/End' fields.
Examples:
Single inequality (x ≤ 3): { "inequalities": [{ "expression": "x <= 3" }] }
Union of intervals (x ≤ 3 or 4 ≤ x ≤ 5): { "inequalities": [ { "expression": "x <= 3", "color": "blue" }, { "expression": "4 <= x <= 5", "color": "blue" } ] }
Compound inequality with custom range: { "inequalities": [{ "expression": "-2 < x < 3" }], "boundingBox": [-5, 1, 5, -1] }
Multiple separate regions: { "inequalities": [ { "expression": "x < -1", "color": "red" }, { "expression": "2 <= x <= 4", "color": "green" }, { "expression": "x > 6", "color": "blue" } ] }
Expression format guide:
Keywords: number line, inequality graph, interval notation, solution set, one dimensional plot | scripts.tools.generate_number_line_inequality |
| Generate economic competition market analysis charts including MC (Marginal Cost), AC (Average Cost), AVC (Average Variable Cost) curves, price line, and profit/loss areas. Ideal for perfect competition market analysis. | scripts.tools.generate_economics_competition |
| Generate structural engineering shear force and bending moment diagrams. Displays beam with loads, support reactions, and resulting force diagrams. All calculations should be done externally - this tool only visualizes the results. | scripts.tools.generate_structural_force |
| Generate economics isoquant and isocost analysis charts.
Displays isoquant curves (equal output), isocost lines (equal cost), and optimal production points.
Ideal for production theory and cost minimization analysis.
IMPORTANT: 'isoquants' is a REQUIRED field. Each isoquant MUST have 'Q' and 'points' properties.
Examples:
Basic isoquant analysis: { "isoquants": [ { "Q": 100, "points": [[1, 4], [2, 2], [4, 1]] } ] }
Multiple isoquants with isocost: { "isoquants": [ { "Q": 100, "points": [[1, 4], [2, 2], [4, 1]] }, { "Q": 200, "points": [[2, 8], [4, 4], [8, 2]] } ], "isocosts": [{ "C": 100, "slope": -1 }] }
With optimal point: { "isoquants": [{ "Q": 100, "points": [[1, 4], [2, 2], [4, 1]] }], "optimum": { "K": 2, "L": 2 } }
Common mistakes:
scripts.tools.generate_economics_isoquant |
| Normal Distribution Tool — visualize probability density curves with JSXGraph.Use when the prompt references a normal distribution, z-scores, shaded probability intervals, or hypothesis-testing thresholds.
⚠️⚠️⚠️ CRITICAL TYPE REQUIREMENTS ⚠️⚠️⚠️
Capabilities:
Examples:
Standard normal distribution N(0,1): { } // produces N(0, 1) with default settings
Custom normal with shaded area: { "mean": 5, "stddev": 2, "shade": [3, 7] }
With custom labels: { "mean": 0, "stddev": 1, "labels": { "mean": "μ", "stddev": "σ", "probability": "P(a ≤ X ≤ b)" } }
Common mistakes to AVOID:
REMEMBER: labels properties are STRINGS, not objects!
Keywords: normal curve, bell curve, z score, probability shading, statistics | scripts.tools.generate_statistics_normal |
| Generate function transformation sequence visualizations. Shows how a base function is transformed through a series of translations, scalings, and reflections. Ideal for teaching transformation concepts. | scripts.tools.generate_transform_sequence |
| Generate geometric logo designs using conic sections, polygons, and curves. Combines multiple geometric shapes with customizable styles to create logos and emblems. | scripts.tools.generate_logo_design |
| Linear Feasible Region Tool — visualise constraint systems and objectives with JSXGraph.
Use when the prompt involves linear programming, feasible regions, constraint sets, or identifying optimal points for an objective.
Capabilities:
Quick start example: { "constraints": [{ "a": 1, "b": 1, "c": 10 }, { "a": 1, "b": 0, "c": 0, "type": ">=" }] }
Keywords: feasible region, linear programming, constraint graph, objective optimization, LP diagram | scripts.tools.generate_linear_feasible |
如果参数不完整,使用 AskUserQuestion 向用户询问缺失的参数。
工具描述:Function Graph Tool — render single or multiple functions with JSXGraph.
Use when the problem asks to plot or sketch y = f(x), compare curves, or show calculus features such as tangents, derivatives, or integrals.
⚠️⚠️⚠️ CRITICAL TYPE REQUIREMENTS ⚠️⚠️⚠️
Capabilities:
Examples:
Plot a single function: { "functions": [{ "expression": "x^2" }] }
Function with domain and open endpoints (for piecewise functions): { "functions": [ { "expression": "x^2", "domain": [-3, 2], "leftOpen": true, "rightOpen": false } ] } // leftOpen=true draws a hollow circle at x=-3, rightOpen=false draws a filled circle at x=2
Function with custom points (filled or open circles): { "functions": [{ "expression": "x^2" }], "points": [ { "x": 0, "y": 0, "name": "Origin", "fillColor": "red" }, { "x": 2, "y": 4, "fillColor": "white", "strokeColor": "blue" } // open circle ] }
Multiple functions with custom colors: { "functions": [ { "expression": "x^2", "color": "blue", "name": "f(x)" }, { "expression": "x^3", "color": "red", "name": "g(x)" } ] }
Common mistakes to AVOID:
Keywords: plot function, function graph, sketch curve, calculus visualization, compare functions
参数名称参数类型是否必填默认值描述functionsarrayfalse[]Array of mathematical functions to plot. Each function has an expression and optional styling. Can be empty if only plotting points.pointsarrayfalseOptional points to plot on the graph. Each point MUST have both x and y coordinates (numbers). Example: [{x: 0, y: 0, name: "Origin"}, {x: 1, y: 1}]showDerivativebooleanfalsefalseWhether to show the derivative of the first functionshowIntegralbooleanfalsefalseWhether to show the integral area of the first functionintegralBoundsarrayfalseBounds for integral area [a, b], required if showIntegral is truetangentAtnumberfalseX coordinate to show tangent line atstyleobjectfalseCustom style configuration for the chart.widthnumberfalse800.0Set the width of the math chart, default is 800.heightnumberfalse600.0Set the height of the math chart, default is 600.titlestringfalse""Set the title of the math chart.axisXTitlestringfalse"x"Label for X axisaxisYTitlestringfalse"y"Label for Y axisboundingBoxarrayfalseThe bounding box for the chart. Default is [-10, 10, 10, -10].keepAspectRatiobooleanfalsefalseWhether to keep aspect ratio.showCopyrightbooleanfalsefalseWhether to show JSXGraph copyright.showNavigationbooleanfalsetrueWhether to show navigation controls.zoomobjectfalseZoom configuration for the chart.panobjectfalsePan configuration for the chart.
工具描述:Parametric Curve Tool — plot curves defined by x(t) and y(t) with JSXGraph.
⚠️⚠️⚠️ CRITICAL TYPE REQUIREMENTS ⚠️⚠️⚠️
Use when the prompt describes parameterized motion, circles, cycloids, Lissajous patterns, or any curve specified as functions of t.
Capabilities:
Examples:
Circle (unit circle): { "curves": [{ "xExpression": "Math.cos(t)", "yExpression": "Math.sin(t)", "tMin": 0, "tMax": 6.283185307179586 }] }
Parabola in parametric form: { "curves": [{ "xExpression": "t", "yExpression": "t^2", "tMin": -5, "tMax": 5 }] }
Curve with points (x = 5sin(t), 0 ≤ t ≤ π/6): { "curves": [{ "xExpression": "5 * Math.sin(t)", "yExpression": "t", "tMin": 0, "tMax": 0.5236 }], "points": [{ "x": 0, "y": 0 }, { "x": 2.5, "y": 0.5236 }] }
Common mistakes to AVOID:
Keywords: parametric plot, x of t, y of t, motion path, curve animation
参数名称参数类型是否必填默认值描述curvesarrayfalse[{xExpression=Math.cos(t), yExpression=Math.sin(t), tMin=0.0, tMax=6.283185307179586, color=#0066cc, strokeWidth=2.0, dash=0.0}]Array of parametric curves to plot. Each curve is defined by x(t) and y(t) expressions. tMin and tMax MUST be numbers, not strings. Examples: [{xExpression: 'Math.cos(t)', yExpression: 'Math.sin(t)', tMin: 0, tMax: 6.283185307179586}] for circle, [{xExpression: 't', yExpression: 't^2', tMin: -5, tMax: 5}] for parabola.showTracebooleanfalsefalseWhether to show animated trace point moving along the curvetraceSpeednumberfalse1.0Speed of the trace animation (1 = normal speed)pointsarrayfalseOptional points to plot on the graphstyleobjectfalseCustom style configuration for the chart.widthnumberfalse800.0Set the width of the math chart, default is 800.heightnumberfalse600.0Set the height of the math chart, default is 600.titlestringfalse""Set the title of the math chart.axisXTitlestringfalse"x"Label for X axisaxisYTitlestringfalse"y"Label for Y axisboundingBoxarrayfalseThe bounding box for the chart. Default is [-10, 10, 10, -10].keepAspectRatiobooleanfalsefalseWhether to keep aspect ratio.showCopyrightbooleanfalsefalseWhether to show JSXGraph copyright.showNavigationbooleanfalsetrueWhether to show navigation controls.zoomobjectfalseZoom configuration for the chart.panobjectfalsePan configuration for the chart.
工具描述:Generate interactive geometry diagrams using JSXGraph. Create points, lines, circles, polygons, angles, vectors, and geometric constructions. Perfect for visualizing geometric concepts, theorems, and constructions like triangles, perpendiculars, angle bisectors, vectors, etc.
⚠️⚠️⚠️ CRITICAL TYPE REQUIREMENTS ⚠️⚠️⚠️
Examples:
Triangle with labeled vertices: { "points": [ { "x": 0, "y": 0, "name": "A" }, { "x": 3, "y": 0, "name": "B" }, { "x": 1.5, "y": 2.6, "name": "C" } ], "lines": [ { "point1": "A", "point2": "B" }, { "point1": "B", "point2": "C" }, { "point1": "C", "point2": "A" } ], "polygons": [{ "vertices": ["A", "B", "C"], "fillOpacity": 0.2 }] }
Square with custom angle label: { "points": [ { "x": 0, "y": 0, "name": "P1" }, { "x": 2, "y": 0, "name": "P2" }, { "x": 2, "y": 2, "name": "P3" }, { "x": 0, "y": 2, "name": "P4" } ], "polygons": [{ "vertices": ["P1", "P2", "P3", "P4"] }], "angles": [{ "point1": "P1", "vertex": "P2", "point2": "P3", "label": "90°" }] }
Vector diagram: { "points": [ { "x": 0, "y": 0, "name": "O" }, { "x": 3, "y": 2, "name": "A" }, { "x": -1, "y": 3, "name": "B" } ], "lines": [ { "point1": "O", "point2": "A", "type": "vector", "name": "v1", "color": "#ff0000" }, { "point1": "O", "point2": "B", "type": "vector", "name": "v2", "color": "#0000ff" } ] }
Common mistakes to AVOID:
REMEMBER: Always define points first, then reference them by name (string) in lines, polygons, angles!
Keywords: geometry, triangle, polygon, angle, vector, construction, geometric diagram
参数名称参数类型是否必填默认值描述pointsarrayfalse[]Array of points to create. Points can be referenced by name in other elements.linesarrayfalseArray of lines, segments, or rays connecting pointscirclesarrayfalseArray of circles defined by center and radius or through-pointpolygonsarrayfalseArray of polygons defined by their verticesanglesarrayfalseArray of angles to display and measureshowMeasurementsbooleanfalsefalseWhether to show measurements (distances, angles)constructionobjectfalseGeometric constructions like perpendiculars, parallels, midpoints, and angle bisectorsstyleobjectfalseCustom style configuration for the diagram.widthnumberfalse800.0Set the width of the math chart, default is 800.heightnumberfalse600.0Set the height of the math chart, default is 600.titlestringfalse""Set the title of the math chart.boundingBoxarrayfalseThe bounding box for the chart. Default is [-10, 10, 10, -10].keepAspectRatiobooleanfalsefalseWhether to keep aspect ratio.showCopyrightbooleanfalsefalseWhether to show JSXGraph copyright.showNavigationbooleanfalsetrueWhether to show navigation controls.zoomobjectfalseZoom configuration for the chart.panobjectfalsePan configuration for the chart.
工具描述:Generate vector field visualizations using JSXGraph. Display 2D vector fields with arrows showing direction and magnitude at each point. Supports streamlines, singular points, and color-coded magnitudes. Ideal for visualizing gradient fields, flow fields, electromagnetic fields, etc.
⚠️⚠️⚠️ CRITICAL TYPE REQUIREMENTS ⚠️⚠️⚠️
Examples:
Circular vector field F(x,y) = (-y, x): { "fieldFunction": { "dx": "-y", "dy": "x" } }
Direction field for y' = 9 + 9y: { "fieldFunction": { "dx": "1", "dy": "9 + 9*y" }, "streamlines": [{ "startX": 0, "startY": -1 }, { "startX": 0, "startY": 0 }] }
Radial field F(x,y) = (x, y): { "fieldFunction": { "dx": "x", "dy": "y" } }
Gradient field ∇f where f(x,y) = x² + y²: { "fieldFunction": { "dx": "2 x", "dy": "2 y" } }
Common mistakes to AVOID:
REMEMBER: Even constant numbers like 0, 1, -1 MUST be strings: "0", "1", "-1"
参数名称参数类型是否必填默认值描述fieldFunctionobjecttrueVector field function F(x,y) = (dx, dy) - REQUIRED field. MUST be an object with 'dx' and 'dy' STRING expressions (both with quotes). Example: {"dx": "1", "dy": "9 + 9*y"} NOT {dx: 1, dy: ...}densitynumberfalse10.0Number of vectors to show in each direction (density of the field)scalenumberfalse0.8Scale factor for vector lengths (0.1 to 2.0)arrowStyleobjectfalseStyling options for the vector arrowsstreamlinesarrayfalseOptional streamlines (integral curves) to show the flow of the field. MUST be an array of objects, not a boolean. Example: [{startX: 0, startY: 0}, {startX: 1, startY: 1}] or omit entirely.singularPointsarrayfalseOptional singular/critical points to highlightcolorByMagnitudebooleanfalsefalseWhether to color vectors based on their magnitudeshowMagnitudeLegendbooleanfalsefalseWhether to show a legend for magnitude colorsstyleobjectfalseCustom style configuration for the chart.widthnumberfalse800.0Set the width of the math chart, default is 800.heightnumberfalse600.0Set the height of the math chart, default is 600.titlestringfalse""Set the title of the math chart.axisXTitlestringfalse"x"Label for X axisaxisYTitlestringfalse"y"Label for Y axisboundingBoxarrayfalseThe bounding box for the chart. Default is [-10, 10, 10, -10].keepAspectRatiobooleanfalsefalseWhether to keep aspect ratio.showCopyrightbooleanfalsefalseWhether to show JSXGraph copyright.showNavigationbooleanfalsetrueWhether to show navigation controls.zoomobjectfalseZoom configuration for the chart.panobjectfalsePan configuration for the chart.
工具描述:Linear System Tool — graph linear equations and inequalities using JSXGraph.
Use when the prompt asks to solve or visualise systems of linear equations, highlight intersection points, or show feasible regions for inequalities/objectives.
Capabilities:
Quick start example: { "equations": [{ "a": 1, "b": 1, "c": 5 }, { "a": 1, "b": -1, "c": 1 }] }
Keywords: linear system, intersection graph, inequality shading, objective line, simultaneous equations
参数名称参数类型是否必填默认值描述equationsarrayfalse[{a=1.0, b=1.0, c=5.0}, {a=1.0, b=-1.0, c=1.0}]Array of linear equations to plot (ax + by = c form). Example: [{a: 1, b: 1, c: 5}, {a: 1, b: -1, c: 1}]inequalitiesarrayfalse[]Array of linear inequalities to plot and shade. Example: [{a: 1, b: 1, c: 10, type: '<='}]showIntersectionsbooleanfalsetrueWhether to highlight intersection pointsshowFeasibleRegionbooleanfalsetrueWhether to highlight the feasible region for inequalitiesobjectivesarrayfalseObjective functions for linear programmingpointsarrayfalseAdditional points to highlightstyleobjectfalseCustom style configuration for the chart.widthnumberfalse800.0Set the width of the math chart, default is 800.heightnumberfalse600.0Set the height of the math chart, default is 600.titlestringfalse""Set the title of the math chart.axisXTitlestringfalse"x"Label for X axisaxisYTitlestringfalse"y"Label for Y axisboundingBoxarrayfalseThe bounding box for the chart. Default is [-10, 10, 10, -10].keepAspectRatiobooleanfalsefalseWhether to keep aspect ratio.showCopyrightbooleanfalsefalseWhether to show JSXGraph copyright.showNavigationbooleanfalsetrueWhether to show navigation controls.zoomobjectfalseZoom configuration for the chart.panobjectfalsePan configuration for the chart.
工具描述:Function Transformation Tool — illustrate how a base function changes under common operations.
Use when the question mentions translations, stretches, reflections, absolute values, inverses, or composite functions based on an original curve.
Capabilities:
IMPORTANT: transformation 'type' MUST be one of: 'translate', 'scale', 'reflect', 'absolute', 'inverse', 'composite'.
Examples:
Horizontal shift (translation): { "baseFunction": { "expression": "x^2" }, "transformations": [{ "type": "translate", "parameters": { "h": 2, "k": 1 } }] }
Vertical stretch (scaling): { "baseFunction": { "expression": "Math.sin(x)" }, "transformations": [{ "type": "scale", "parameters": { "a": 2 } }] }
Horizontal compression: { "baseFunction": { "expression": "x^2" }, "transformations": [{ "type": "scale", "parameters": { "b": 2 } }] }
Reflection across x-axis: { "baseFunction": { "expression": "x^2" }, "transformations": [{ "type": "reflect", "parameters": { "axis": "x" } }] }
Reflection across y=x (inverse function): { "baseFunction": { "expression": "x^3" }, "transformations": [{ "type": "reflect", "parameters": { "axis": "y=x" } }] }
Multiple transformations: { "baseFunction": { "expression": "x^2" }, "transformations": [ { "type": "translate", "parameters": { "h": 1 } }, { "type": "scale", "parameters": { "a": 2 } } ] }
Common mistakes:
Keywords: transform function, translate graph, stretch function, reflect curve, composition
参数名称参数类型是否必填默认值描述baseFunctionobjectfalse{expression=x^2, color=#0066cc, strokeWidth=2.0, name=f(x)}The original function to transformtransformationsarrayfalse[{type=translate, parameters={h=1.0, k=0.0}, strokeWidth=2.0, dash=0.0}]Array of transformations to apply and visualize. Each transformation MUST have a valid 'type' field. For stretching/shrinking, use type: 'scale' (not 'stretch' or 'verticalStretch'). For shifting, use type: 'translate' (not 'shift' or 'move'). Examples: [{type: 'translate', parameters: {h: 2, k: 1}}] for horizontal shift right 2 and vertical shift up 1, [{type: 'scale', parameters: {a: 2}}] for vertical stretch by factor 2, [{type: 'reflect', parameters: {axis: 'x'}}] for reflection across x-axis.showStepsbooleanfalsefalseWhether to show intermediate transformation stepsshowVectorsbooleanfalsefalseWhether to show transformation vectors for translationshighlightPointsarrayfalsePoints to highlight on base and transformed functionsanimateTransformationbooleanfalsefalseWhether to animate the transformation with a slidercompareModestringfalse"overlay"How to display the functionsstyleobjectfalseCustom style configuration for the chart.widthnumberfalse800.0Set the width of the math chart, default is 800.heightnumberfalse600.0Set the height of the math chart, default is 600.titlestringfalse""Set the title of the math chart.axisXTitlestringfalse"x"Label for X axisaxisYTitlestringfalse"y"Label for Y axisboundingBoxarrayfalseThe bounding box for the chart. Default is [-10, 10, 10, -10].keepAspectRatiobooleanfalsefalseWhether to keep aspect ratio.showCopyrightbooleanfalsefalseWhether to show JSXGraph copyright.showNavigationbooleanfalsetrueWhether to show navigation controls.zoomobjectfalseZoom configuration for the chart.panobjectfalsePan configuration for the chart.
工具描述:Quadratic Analysis Tool — visualize parabolas and their key features using JSXGraph.
Use when the prompt asks to analyse or sketch quadratic functions, compare parabolas, or explain vertex, intercepts, symmetry, or discriminant behavior.
Capabilities:
Quick start example: { "quadratics": [{ "a": 1, "b": 0, "c": 0 }] }
Keywords: quadratic graph, parabola analysis, vertex form, factor form, compare parabolas
参数名称参数类型是否必填默认值描述quadraticsarrayfalse[{a=1.0, b=0.0, c=0.0}]Array of quadratic functions to analyze (ax^2 + bx + c form). Provide at least one or rely on the default parabola y = x^2.showVertexbooleanfalsetrueWhether to show and label the vertexshowAxisOfSymmetrybooleanfalsetrueWhether to show the axis of symmetryshowRootsbooleanfalsetrueWhether to show and label the roots/x-interceptsshowYInterceptbooleanfalsetrueWhether to show the y-interceptshowFocusDirectrixbooleanfalsefalseWhether to show the focus and directrixshowDiscriminantbooleanfalsefalseWhether to display discriminant value and root naturevertexFormbooleanfalsefalseWhether to display the vertex form: a(x-h)^2 + kfactorizedFormbooleanfalsefalseWhether to display the factorized form if applicabletangentLinesarrayfalsePoints where to draw tangent linesshadeRegionobjectfalseRegion to shade relative to the parabolacompareModestringfalse"overlay"How to display multiple quadraticsstyleobjectfalseCustom style configuration for the chart.widthnumberfalse800.0Set the width of the math chart, default is 800.heightnumberfalse600.0Set the height of the math chart, default is 600.titlestringfalse""Set the title of the math chart.axisXTitlestringfalse"x"Label for X axisaxisYTitlestringfalse"y"Label for Y axisboundingBoxarrayfalseThe bounding box for the chart. Default is [-10, 10, 10, -10].keepAspectRatiobooleanfalsefalseWhether to keep aspect ratio.showCopyrightbooleanfalsefalseWhether to show JSXGraph copyright.showNavigationbooleanfalsetrueWhether to show navigation controls.zoomobjectfalseZoom configuration for the chart.panobjectfalsePan configuration for the chart.
工具描述:Exponential and Logarithmic Tool — plot growth, decay, and log curves with JSXGraph.
Use when the problem references exponential or logarithmic expressions, asymptotes, inverse relationships, or needs comparisons between bases.
Capabilities:
IMPORTANT:
Examples:
Natural logarithm y = ln(x): { "functions": [{ "type": "logarithm" }] }
Common logarithm y = log₁₀(x): { "functions": [{ "type": "logarithm", "base": 10 }] }
Exponential growth y = 2^x: { "functions": [{ "type": "exponential", "base": 2 }] }
Natural exponential y = e^x: { "functions": [{ "type": "exponential" }] }
Exponential decay y = (0.5)^x: { "functions": [{ "type": "exponential", "base": 0.5 }] }
Compare ln(x) with log₂(x): { "functions": [ { "type": "logarithm", "name": "ln(x)", "color": "blue" }, { "type": "logarithm", "base": 2, "name": "log₂(x)", "color": "red" } ] }
Logarithm with special points and asymptote: { "functions": [{ "type": "logarithm", "base": 10 }], "showAsymptotes": true, "specialPoints": [{ "x": 1, "y": 0, "label": "(1, 0)" }, { "x": 10, "y": 1, "label": "(10, 1)" }] }
Common mistakes to avoid:
Keywords: exponential graph, logarithmic curve, growth rate, decay model, inverse functions
参数名称参数类型是否必填默认值描述functionsarrayfalse[{type=exponential, base=2.718281828459045, coefficient=1.0, hShift=0.0, vShift=0.0}]Array of exponential and logarithmic functions to plot. Each function MUST have 'type' field set to 'exponential' or 'logarithm' (not 'logarithmic'). The 'base' field MUST be a number (e.g., 2, 10, 2.718281828459045), not a string. Examples: [{type: 'exponential', base: 2}] for y=2^x, [{type: 'logarithm', base: 10}] for y=log₁₀(x), [{type: 'logarithm'}] for y=ln(x) (base defaults to e), [{type: 'exponential', base: 0.5}] for y=(0.5)^x (decay).showAsymptotesbooleanfalsetrueWhether to show horizontal/vertical asymptotesshowInterceptsbooleanfalsetrueWhether to show and label x and y interceptsshowInversebooleanfalsefalseWhether to show the inverse functionshowReflectionLinebooleanfalsefalseWhether to show y=x line for inverse relationshipcomparisonPointsarrayfalsePoints to compare function valuesgrowthDecayAnalysisobjectfalseGrowth and decay analysis optionslogarithmicScaleobjectfalseLogarithmic scale optionsspecialPointsarrayfalseSpecial points to highlight (e.g., (0,1) for exponentials)tangentAtarrayfalseX coordinates where to show tangent linesstyleobjectfalseCustom style configuration for the chart.widthnumberfalse800.0Set the width of the math chart, default is 800.heightnumberfalse600.0Set the height of the math chart, default is 600.titlestringfalse""Set the title of the math chart.axisXTitlestringfalse"x"Label for X axisaxisYTitlestringfalse"y"Label for Y axisboundingBoxarrayfalseThe bounding box for the chart. Default is [-10, 10, 10, -10].keepAspectRatiobooleanfalsefalseWhether to keep aspect ratio.showCopyrightbooleanfalsefalseWhether to show JSXGraph copyright.showNavigationbooleanfalsetrueWhether to show navigation controls.zoomobjectfalseZoom configuration for the chart.panobjectfalsePan configuration for the chart.
工具描述:Generate rational and irrational function visualizations using JSXGraph. Plot rational functions with asymptotes (vertical, horizontal, oblique), holes, intercepts, and critical points. Visualize irrational functions with domain restrictions. Supports factorization, partial fractions, and end behavior analysis.
⚠️⚠️⚠️ CRITICAL TYPE REQUIREMENTS ⚠️⚠️⚠️
Examples:
Simple rational function f(x) = 1/x: { "rationalFunctions": [{ "numerator": "1", "denominator": "x" }] }
Rational function f(x) = (x² - 1)/(x - 2): { "rationalFunctions": [{ "numerator": "x^2 - 1", "denominator": "x - 2" }] }
Multiple rational functions: { "rationalFunctions": [ { "numerator": "x + 1", "denominator": "x^2 - 4", "color": "blue" }, { "numerator": "x^2", "denominator": "x - 1", "color": "red" } ] }
Irrational function f(x) = √x: { "irrationalFunctions": [{ "expression": "Math.sqrt(x)", "domain": [0, 10] }] }
Common mistakes to AVOID:
REMEMBER: ALL expressions MUST be strings with quotes, including simple numbers! Examples: "1" not 1, "0" not 0, "x" not x, "2 x+1" not 2 x+1
参数名称参数类型是否必填默认值描述rationalFunctionsarrayfalseArray of rational functions (P(x)/Q(x)) to plot. Both 'numerator' and 'denominator' MUST be STRING expressions, not numbers. Example: [{numerator: 'x^2 - 1', denominator: 'x - 2'}] for (x²-1)/(x-2). Even for constants, use strings: [{numerator: '1', denominator: 'x'}] for 1/x.irrationalFunctionsarrayfalseArray of irrational functions (involving roots) to plotshowVerticalAsymptotesbooleanfalsetrueWhether to show vertical asymptotesshowHorizontalAsymptotesbooleanfalsetrueWhether to show horizontal asymptotesshowObliqueAsymptotesbooleanfalsetrueWhether to show oblique/slant asymptotesshowHolesbooleanfalsetrueWhether to show removable discontinuities (holes)showInterceptsbooleanfalsetrueWhether to show x and y interceptsshowCriticalPointsbooleanfalsefalseWhether to show local maxima and minimashowDomainRestrictionsbooleanfalsetrueWhether to highlight domain restrictions for irrational functionsanalyzeEndBehaviorbooleanfalsefalseWhether to show end behavior analysisfactorizationobjectfalseFactorization and simplification optionspartialFractionsbooleanfalsefalseWhether to show partial fraction decompositiontangentLinesarrayfalseX coordinates where to draw tangent linesshadeRegionsarrayfalseRegions to shadestyleobjectfalseCustom style configuration for the chart.widthnumberfalse800.0Set the width of the math chart, default is 800.heightnumberfalse600.0Set the height of the math chart, default is 600.titlestringfalse""Set the title of the math chart.axisXTitlestringfalse"x"Label for X axisaxisYTitlestringfalse"y"Label for Y axisboundingBoxarrayfalseThe bounding box for the chart. Default is [-10, 10, 10, -10].keepAspectRatiobooleanfalsefalseWhether to keep aspect ratio.showCopyrightbooleanfalsefalseWhether to show JSXGraph copyright.showNavigationbooleanfalsetrueWhether to show navigation controls.zoomobjectfalseZoom configuration for the chart.panobjectfalsePan configuration for the chart.
工具描述:Generate systems of equations visualization using JSXGraph. Solve and visualize linear and nonlinear equation systems, find intersection points, show solution sets, and analyze system properties. Supports implicit equations, parametric systems, numerical solutions, and advanced analysis including matrix representation and phase portraits.
参数名称参数类型是否必填默认值描述systemsarrayfalseArray of equation systems to solve and visualizeindividualEquationsarrayfalseIndividual equations to plot (not part of a system)showIntersectionsbooleanfalsetrueWhether to highlight intersection points (solutions)showSolutionSetbooleanfalsetrueWhether to display the solution set algebraicallynumericalSolutionsobjectfalseNumerical solution optionsparameterAnimationobjectfalseOptions for animating parametric equationssolutionRegionsarrayfalseRegions defined by equation systemslinearAlgebraViewobjectfalseLinear algebra analysis for linear systemsnonlinearAnalysisobjectfalseNonlinear system analysis optionsstyleobjectfalseCustom style configuration for the chart.widthnumberfalse800.0Set the width of the math chart, default is 800.heightnumberfalse600.0Set the height of the math chart, default is 600.titlestringfalse""Set the title of the math chart.axisXTitlestringfalse"x"Label for X axisaxisYTitlestringfalse"y"Label for Y axisboundingBoxarrayfalseThe bounding box for the chart. Default is [-10, 10, 10, -10].keepAspectRatiobooleanfalsefalseWhether to keep aspect ratio.showCopyrightbooleanfalsefalseWhether to show JSXGraph copyright.showNavigationbooleanfalsetrueWhether to show navigation controls.zoomobjectfalseZoom configuration for the chart.panobjectfalsePan configuration for the chart.
工具描述:Generate conic sections and high-degree polynomials using JSXGraph. Visualize circles, ellipses, parabolas, hyperbolas with their foci, directrices, vertices, and asymptotes. Plot polynomials with roots, critical points, and inflection points. Supports general conic equations, rotated conics, and intersection analysis.
IMPORTANT: Each conic in the 'conics' array MUST have a 'type' field.
Examples:
Circle with radius 5: { "conics": [{ "type": "circle", "center": { "x": 0, "y": 0 }, "radius": 5 }] }
Parabola y² = 4px: { "conics": [{ "type": "parabola", "vertex": { "x": 0, "y": 0 }, "p": 1 }] }
Ellipse with semi-axes a=4, b=2: { "conics": [{ "type": "ellipse", "center": { "x": 0, "y": 0 }, "a": 4, "b": 2 }] }
Hyperbola: { "conics": [{ "type": "hyperbola", "center": { "x": 0, "y": 0 }, "a": 3, "b": 2 }] }
General conic Ax² + Bxy + Cy² + Dx + Ey + F = 0: { "generalConics": [{ "A": 1, "B": 0, "C": 1, "D": 0, "E": 0, "F": -25 }] }
Common mistakes:
参数名称参数类型是否必填默认值描述conicsarrayfalseArray of standard conic sections to plot. Each conic MUST have a 'type' field set to 'circle', 'ellipse', 'parabola', or 'hyperbola'. Examples: [{type: 'circle', center: {x: 0, y: 0}, radius: 5}], [{type: 'parabola', vertex: {x: 0, y: 0}, p: 1}], [{type: 'ellipse', center: {x: 0, y: 0}, a: 4, b: 2}].generalConicsarrayfalseConic sections in general form: Ax² + Bxy + Cy² + Dx + Ey + F = 0polynomialsarrayfalseHigh-degree polynomial functions to plotpointsarrayfalseOptional points to plot on the graphshowFocibooleanfalsetrueWhether to show foci for conicsshowDirectrixbooleanfalsefalseWhether to show directrix for parabolas and general conicsshowAsymptotesbooleanfalsetrueWhether to show asymptotes for hyperbolasshowCenterbooleanfalsetrueWhether to mark the center of conicsshowVerticesbooleanfalsetrueWhether to mark vertices of conicsshowEccentricitybooleanfalsefalseWhether to display eccentricity valuesshowTangentsarrayfalseTangent lines to drawshowPolynomialRootsbooleanfalsetrueWhether to mark roots of polynomialsshowCriticalPointsbooleanfalsefalseWhether to show critical points of polynomialsshowInflectionPointsbooleanfalsefalseWhether to show inflection points of polynomialsdegreeAnalysisbooleanfalsefalseWhether to show polynomial degree and leading coefficient analysisintersectionAnalysisobjectfalseIntersection analysis optionspolarFormbooleanfalsefalseWhether to show polar form equations for conicsstyleobjectfalseCustom style configuration for the chart.widthnumberfalse800.0Set the width of the math chart, default is 800.heightnumberfalse600.0Set the height of the math chart, default is 600.titlestringfalse""Set the title of the math chart.axisXTitlestringfalse"x"Label for X axisaxisYTitlestringfalse"y"Label for Y axisboundingBoxarrayfalseThe bounding box for the chart. Default is [-10, 10, 10, -10].keepAspectRatiobooleanfalsefalseWhether to keep aspect ratio.showCopyrightbooleanfalsefalseWhether to show JSXGraph copyright.showNavigationbooleanfalsetrueWhether to show navigation controls.zoomobjectfalseZoom configuration for the chart.panobjectfalsePan configuration for the chart.
工具描述:Number Line Inequality Tool — illustrate solution sets on a one-dimensional axis with JSXGraph.
Use when the task asks to plot inequality solutions, show interval notation, or visualise unions/intersections on a number line.
Capabilities:
IMPORTANT: Each inequality MUST have an 'expression' field (string). DO NOT use 'start/end' or 'includeStart/End' fields.
Examples:
Single inequality (x ≤ 3): { "inequalities": [{ "expression": "x <= 3" }] }
Union of intervals (x ≤ 3 or 4 ≤ x ≤ 5): { "inequalities": [ { "expression": "x <= 3", "color": "blue" }, { "expression": "4 <= x <= 5", "color": "blue" } ] }
Compound inequality with custom range: { "inequalities": [{ "expression": "-2 < x < 3" }], "boundingBox": [-5, 1, 5, -1] }
Multiple separate regions: { "inequalities": [ { "expression": "x < -1", "color": "red" }, { "expression": "2 <= x <= 4", "color": "green" }, { "expression": "x > 6", "color": "blue" } ] }
Expression format guide:
Keywords: number line, inequality graph, interval notation, solution set, one dimensional plot
参数名称参数类型是否必填默认值描述inequalitiesarrayfalse[{expression=x > 0, color=#0066cc, strokeWidth=3.0, showEndpoints=true, endpointRadius=0.15}]Array of inequalities to plot on the number line. Each inequality MUST have an 'expression' field. Examples: [{expression: 'x > 2'}] for (2, ∞), [{expression: '0 <= x <= 5'}] for [0, 5], [{expression: 'x <= 3'}, {expression: '4 <= x <= 5'}] for union of (-∞, 3] ∪ [4, 5]. DO NOT use 'start', 'end', 'includeStart', or 'includeEnd' fields.numberLinePositionnumberfalse0.0Y coordinate position of the number linetickMarksbooleanfalsetrueWhether to show tick marks on the number linetickIntervalnumberfalse1.0Interval between tick marksshowNumbersbooleanfalsetrueWhether to show numbers on tick marksnumberIntervalnumberfalse1.0Interval between number labelsstyleobjectfalseCustom style configuration for the chart.widthnumberfalse800.0Set the width of the math chart, default is 800.heightnumberfalse600.0Set the height of the math chart, default is 600.titlestringfalse""Set the title of the math chart.boundingBoxarrayfalseThe bounding box for the chart. Default is [-10, 10, 10, -10].keepAspectRatiobooleanfalsefalseWhether to keep aspect ratio.showCopyrightbooleanfalsefalseWhether to show JSXGraph copyright.showNavigationbooleanfalsetrueWhether to show navigation controls.zoomobjectfalseZoom configuration for the chart.panobjectfalsePan configuration for the chart.
工具描述:Generate economic competition market analysis charts including MC (Marginal Cost), AC (Average Cost), AVC (Average Variable Cost) curves, price line, and profit/loss areas. Ideal for perfect competition market analysis.
参数名称参数类型是否必填默认值描述curvesobjecttrueCost curves for the firmpriceLinenumbertrueMarket price P (horizontal line)quantityRangearraytrueQuantity range [min, max] for the x-axislabelsobjectfalseCustom labels for curves and areasshowProfitbooleanfalsetrueWhether to shade the profit/loss areashowEquilibriumbooleanfalsetrueWhether to mark the equilibrium point(s)showShutdownPointbooleanfalsefalseWhether to mark the shutdown point (where P = min AVC)styleobjectfalseCustom style configuration for the chart.titlestringfalse""Set the title of the math chart.widthnumberfalse800.0Set the width of the math chart, default is 800.heightnumberfalse600.0Set the height of the math chart, default is 600.boundingBoxarrayfalseThe bounding box for the chart. Default is [-10, 10, 10, -10].keepAspectRatiobooleanfalsefalseWhether to keep aspect ratio.showCopyrightbooleanfalsefalseWhether to show JSXGraph copyright.showNavigationbooleanfalsetrueWhether to show navigation controls.zoomobjectfalseZoom configuration for the chart.panobjectfalsePan configuration for the chart.axisXTitlestringfalse"Quantity (Q)"nullaxisYTitlestringfalse"Price/Cost ($)"null
工具描述:Generate structural engineering shear force and bending moment diagrams. Displays beam with loads, support reactions, and resulting force diagrams. All calculations should be done externally - this tool only visualizes the results.
参数名称参数类型是否必填默认值描述lengthnumbertrueBeam length L in metersloadsarraytrueArray of loads applied to the beamreactionsarraytrueSupport reactions (externally calculated, not solved by this tool)sheararraytrueShear force curve as discrete points [x, V(x)]momentarraytrueBending moment curve as discrete points [x, M(x)]deflectionarrayfalseDeflection curve as discrete points [x, y(x)] (optional)labelsobjectfalseCustom labels for diagramsshowValuesbooleanfalsetrueWhether to show numerical values on diagramsshowDiagramsobjectfalseWhich diagrams to displaystyleobjectfalseCustom style configuration for the chart.titlestringfalse""Set the title of the math chart.widthnumberfalse800.0Set the width of the math chart, default is 800.heightnumberfalse600.0Set the height of the math chart, default is 600.boundingBoxarrayfalseThe bounding box for the chart. Default is [-10, 10, 10, -10].keepAspectRatiobooleanfalsefalseWhether to keep aspect ratio.showCopyrightbooleanfalsefalseWhether to show JSXGraph copyright.showNavigationbooleanfalsetrueWhether to show navigation controls.zoomobjectfalseZoom configuration for the chart.panobjectfalsePan configuration for the chart.
工具描述:Generate economics isoquant and isocost analysis charts. Displays isoquant curves (equal output), isocost lines (equal cost), and optimal production points. Ideal for production theory and cost minimization analysis.
IMPORTANT: 'isoquants' is a REQUIRED field. Each isoquant MUST have 'Q' and 'points' properties.
Examples:
Basic isoquant analysis: { "isoquants": [ { "Q": 100, "points": [[1, 4], [2, 2], [4, 1]] } ] }
Multiple isoquants with isocost: { "isoquants": [ { "Q": 100, "points": [[1, 4], [2, 2], [4, 1]] }, { "Q": 200, "points": [[2, 8], [4, 4], [8, 2]] } ], "isocosts": [{ "C": 100, "slope": -1 }] }
With optimal point: { "isoquants": [{ "Q": 100, "points": [[1, 4], [2, 2], [4, 1]] }], "optimum": { "K": 2, "L": 2 } }
Common mistakes:
参数名称参数类型是否必填默认值描述isoquantsarraytrueArray of isoquant curves with their output levels and points - REQUIRED. Each isoquant MUST have 'Q' (output level) and 'points' (array of [L, K] coordinates). Example: [{Q: 100, points: [[1, 4], [2, 2], [4, 1]]}, {Q: 200, points: [[2, 8], [4, 4], [8, 2]]}]isocostsarrayfalseOptional array of isocost linesoptimumobjectfalseOptimal point where isoquant is tangent to isocostlabelsobjectfalseCustom labels for axes and curvesshowMarginalRatebooleanfalsefalseWhether to show marginal rate of technical substitution (MRTS)showTangentbooleanfalsefalseWhether to show tangent line at optimum pointproductionFunctionstringfalseProduction function expression for display, e.g., 'Q = AK^αL^β'styleobjectfalseCustom style configuration for the chart.titlestringfalse""Set the title of the math chart.widthnumberfalse800.0Set the width of the math chart, default is 800.heightnumberfalse600.0Set the height of the math chart, default is 600.boundingBoxarrayfalseThe bounding box for the chart. Default is [-10, 10, 10, -10].keepAspectRatiobooleanfalsefalseWhether to keep aspect ratio.showCopyrightbooleanfalsefalseWhether to show JSXGraph copyright.showNavigationbooleanfalsetrueWhether to show navigation controls.zoomobjectfalseZoom configuration for the chart.panobjectfalsePan configuration for the chart.axisXTitlestringfalse"Labor (L)"nullaxisYTitlestringfalse"Capital (K)"null
工具描述:Normal Distribution Tool — visualize probability density curves with JSXGraph.
Use when the prompt references a normal distribution, z-scores, shaded probability intervals, or hypothesis-testing thresholds.
⚠️⚠️⚠️ CRITICAL TYPE REQUIREMENTS ⚠️⚠️⚠️
Capabilities:
Examples:
Standard normal distribution N(0,1): { } // produces N(0, 1) with default settings
Custom normal with shaded area: { "mean": 5, "stddev": 2, "shade": [3, 7] }
With custom labels: { "mean": 0, "stddev": 1, "labels": { "mean": "μ", "stddev": "σ", "probability": "P(a ≤ X ≤ b)" } }
Common mistakes to AVOID:
REMEMBER: labels properties are STRINGS, not objects!
Keywords: normal curve, bell curve, z score, probability shading, statistics
参数名称参数类型是否必填默认值描述meannumberfalse0.0Mean (μ) of the normal distributionstddevnumberfalse1.0Standard deviation (σ) of the normal distributionrangearrayfalse[-4.0, 4.0]Range [min, max] for plotting the distributionshadearrayfalseInterval [a, b] to shade for probability calculationshowStandardScalebooleanfalsefalseWhether to show z-score scale on additional axisshowProbabilitybooleanfalsetrueWhether to display the shaded area probabilityshowCriticalValuesbooleanfalsefalseWhether to mark critical values (±1σ, ±2σ, ±3σ)labelsobjectfalse⚠️⚠️⚠️ CRITICAL: labels MUST be an object with STRING properties, NOT nested objects! ⚠️⚠️⚠️Type: object with string valuesEach property (distribution, probability, mean, stddev) MUST be a STRING.❌ WRONG examples:
工具描述:Generate function transformation sequence visualizations. Shows how a base function is transformed through a series of translations, scalings, and reflections. Ideal for teaching transformation concepts.
参数名称参数类型是否必填默认值描述basestringtrueBase function expression, e.g., 'x^2', 'Math.sin(x)'transformsarraytrueArray of transformations to apply in sequencefinalstringfalseFinal function expression for verification (optional)showStepsbooleanfalsetrueWhether to show intermediate transformation stepsshowAnimationbooleanfalsefalseWhether to animate the transformation sequencestepColorsarrayfalseColors for each transformation steplabelsobjectfalseCustom labels for base and final functionsstyleobjectfalseCustom style configuration for the chart.titlestringfalse""Set the title of the math chart.widthnumberfalse800.0Set the width of the math chart, default is 800.heightnumberfalse600.0Set the height of the math chart, default is 600.boundingBoxarrayfalseThe bounding box for the chart. Default is [-10, 10, 10, -10].keepAspectRatiobooleanfalsefalseWhether to keep aspect ratio.showCopyrightbooleanfalsefalseWhether to show JSXGraph copyright.showNavigationbooleanfalsetrueWhether to show navigation controls.zoomobjectfalseZoom configuration for the chart.panobjectfalsePan configuration for the chart.axisXTitlestringfalse"x"nullaxisYTitlestringfalse"y"null
工具描述:Generate geometric logo designs using conic sections, polygons, and curves. Combines multiple geometric shapes with customizable styles to create logos and emblems.
参数名称参数类型是否必填默认值描述pathsarraytrueArray of geometric shapes that compose the logostyleobjectfalseStyle configuration including default path stylespathStylesarrayfalseIndividual styles for each path (overrides defaults)showGridbooleanfalsefalseWhether to show grid (usually off for logos)showAxisbooleanfalsefalseWhether to show axes (usually off for logos)titlestringfalse""Set the title of the math chart.widthnumberfalse800.0Set the width of the math chart, default is 800.heightnumberfalse600.0Set the height of the math chart, default is 600.boundingBoxarrayfalseThe bounding box for the chart. Default is [-10, 10, 10, -10].keepAspectRatiobooleanfalsetrueWhether to keep aspect ratio.showCopyrightbooleanfalsefalseWhether to show JSXGraph copyright.showNavigationbooleanfalsetrueWhether to show navigation controls.zoomobjectfalseZoom configuration for the chart.panobjectfalsePan configuration for the chart.
工具描述:Linear Feasible Region Tool — visualise constraint systems and objectives with JSXGraph.
Use when the prompt involves linear programming, feasible regions, constraint sets, or identifying optimal points for an objective.
Capabilities:
Quick start example: { "constraints": [{ "a": 1, "b": 1, "c": 10 }, { "a": 1, "b": 0, "c": 0, "type": ">=" }] }
Keywords: feasible region, linear programming, constraint graph, objective optimization, LP diagram
参数名称参数类型是否必填默认值描述constraintsarrayfalse[{a=1.0, b=1.0, c=10.0, type=<=}, {a=1.0, b=0.0, c=0.0, type=>=}, {a=0.0, b=1.0, c=0.0, type=>=}]Array of linear inequality constraints. Example: [{a: 1, b: 1, c: 10}, {a: 1, b: 0, c: 0, type: '>='}]domainarrayfalse[0.0, 20.0, 20.0, 0.0]Clipping domain [xmin, xmax, ymin, ymax] for the feasible regionobjectiveFunctionobjectfalseOptional objective function for linear programmingshowVerticesbooleanfalsetrueWhether to mark vertices of the feasible regionshowOptimalPointbooleanfalsetrueWhether to mark the optimal point (if objective function provided)interactivebooleanfalsefalse⚠️ Rendering mode selection:
false (default) - STATIC mode: • Vertices pre-calculated on server • Generated code is simple and fast • Recommended for most use cases (diagrams, homework) • ~30 lines of generated code
true - INTERACTIVE mode: • Vertices calculated dynamically in browser • Supports draggable constraint lines (future) • More code, slightly slower initial render • ~120 lines of generated code
Use static mode unless you need dynamic updates.| |feasibleRegionStyle|object|false| |Style for the feasible region| |labels|object|false| |Custom labels| |style|object|false| |Custom style configuration for the chart.| |title|string|false|""|Set the title of the math chart.| |width|number|false|800.0|Set the width of the math chart, default is 800.| |height|number|false|600.0|Set the height of the math chart, default is 600.| |boundingBox|array|false| |The bounding box for the chart. Default is [-10, 10, 10, -10].| |keepAspectRatio|boolean|false|false|Whether to keep aspect ratio.| |showCopyright|boolean|false|false|Whether to show JSXGraph copyright.| |showNavigation|boolean|false|true|Whether to show navigation controls.| |zoom|object|false| |Zoom configuration for the chart.| |pan|object|false| |Pan configuration for the chart.| |axisXTitle|string|false|"x"|null| |axisYTitle|string|false|"y"|null|
工具函数返回 dict 对象:
result["raw"] - API 原始返回数据(JSON), 直接将此数据整理后展示给用户result["success"] - 是否成功(True/False)result["message"] - 状态消息text
xiaobenyang_gaokao_skill/
├── scripts/
│ ├── __init__.py
│ ├── config.py # 配置管理 + set_api_key()
│ ├── call_api.py # API 客户端 + call_api()
│ └── tools.py # 工具函数(直接调用)
├── requirements.txt
└── SKILL.md