Deterministic MCP solver for real equation systems (<=6 vars), Krawczyk-certified.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Deterministic 1D/2D/3D geometry: distances, intersections, areas, volumes, angles, convex hull, point-in-polygon, rotations. Closed-form (not iterative), exact up to floating-point rounding, identical output for identical input. Use it instead of doing geometry yourself. Pass {op, ...args} with op one of: 1D: dist1,midpoint1,divide_point,divide_ratio,harmonic_conjugate,interval_length,interval_midpoint,interval_intersect,interval_union,interval_hull,interval_overlap_length,interval_contains,point_between | 2D: dist2,midpoint2,lerp2,line_from_points,point_line_distance,point_segment_distance,project_point_line,line_intersect,line_intersect_points,segment_intersect,segment_length,angle_3points,angle_vectors,line_angle,triangle_area,triangle_centroid,triangle_incenter,polygon_area,polygon_perimeter,polygon_centroid,point_in_polygon,convex_hull,polygon_is_convex,circle_from_3points,point_circle_position,circle_line_intersect,circle_circle_intersect,circle_measure,sector_area,rotate_point,reflect_point_line,scale_point,parallel_through,perpendicular_through,triangle_circumcenter,triangle_orthocenter,triangle_excenters,triangle_five_centers,euler_line,triangle_nine_point_circle,triangle_euler_inequality,triangle_medians,triangle_altitudes,triangle_bisector_lengths,cevian_concurrent,menelaus_collinear,power_of_point,radical_axis,polar_of_point,pole_of_line,ptolemy,miquel_point,napoleon_triangles,pick_theorem,cocircular_check,minimum_enclosing_circle,circumcircle | 3D: dist3,midpoint3,lerp3,plane_from_3points,point_plane_distance,project_point_plane,reflect_point_plane,coplanar,point_line_distance3,project_point_line3,line_plane_intersect,line_line_relation,plane_plane_intersect,tetra_volume,polygon_area3,face_normal,mesh_volume,sphere_from_4points,sphere_line_intersect,sphere_plane_intersect,sphere_measure,angle_vectors3,angle_line_plane,angle_plane_plane,rotate_axis,cross3,triple_product,tetrahedron_geometry,monge_point | any: distance,midpoint,lerp,norm,normalize,dot,cross,project,reject,translate,centroid,bbox,diameter,stewart_theorem,law_of_cosines,law_of_cosines_sas,law_of_sines,solve_triangle,heron_area,brahmagupta,golden_ratio,regular_polygon,regular_tetrahedron,newton_polytope,tropical_degree_bound,tropical_system_bound,regular_subdivision,bernstein_bound,tropical_bezout_bound,sphere_equation,polynomial_equation. The remaining args are passed flat and depend on op (p, q, a, b, c, d, r, poly, pts, angle, lambda, center, axis, segment, a1,b1,c1,a2,b2,c2, ...). Send an unknown op to receive the full catalog with every signature. READ trust.trustLevel: exact = safe to use directly; definitely_none = computed proof that there is NO intersection, safe to state as a conclusion; degenerate = the INPUT is degenerate (parallel / collinear / coplanar / coincident), do NOT invent a value — report the degeneracy instead.
Geometry operation name. See the tool description for the full list, or send an unknown value to receive the catalog with signatures.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Deterministic 1D/2D/3D geometry: distances, intersections, areas, volumes, angles, convex hull, point-in-polygon, rotations. Closed-form (not iterative), exact up to floating-point rounding, identical output for identical input. Use it instead of doing geometry yourself. Pass {op, ...args} with op one of: 1D: dist1,midpoint1,divide_point,divide_ratio,harmonic_conjugate,interval_length,interval_midpoint,interval_intersect,interval_union,interval_hull,interval_overlap_length,interval_contains,point_between | 2D: dist2,midpoint2,lerp2,line_from_points,point_line_distance,point_segment_distance,project_point_line,line_intersect,line_intersect_points,segment_intersect,segment_length,angle_3points,angle_vectors,line_angle,triangle_area,triangle_centroid,triangle_incenter,polygon_area,polygon_perimeter,polygon_centroid,point_in_polygon,convex_hull,polygon_is_convex,circle_from_3points,point_circle_position,circle_line_intersect,circle_circle_intersect,circle_measure,sector_area,rotate_point,reflect_point_line,scale_point,parallel_through,perpendicular_through,triangle_circumcenter,triangle_orthocenter,triangle_excenters,triangle_five_centers,euler_line,triangle_nine_point_circle,triangle_euler_inequality,triangle_medians,triangle_altitudes,triangle_bisector_lengths,cevian_concurrent,menelaus_collinear,power_of_point,radical_axis,polar_of_point,pole_of_line,ptolemy,miquel_point,napoleon_triangles,pick_theorem,cocircular_check,minimum_enclosing_circle,circumcircle | 3D: dist3,midpoint3,lerp3,plane_from_3points,point_plane_distance,project_point_plane,reflect_point_plane,coplanar,point_line_distance3,project_point_line3,line_plane_intersect,line_line_relation,plane_plane_intersect,tetra_volume,polygon_area3,face_normal,mesh_volume,sphere_from_4points,sphere_line_intersect,sphere_plane_intersect,sphere_measure,angle_vectors3,angle_line_plane,angle_plane_plane,rotate_axis,cross3,triple_product,tetrahedron_geometry,monge_point | any: distance,midpoint,lerp,norm,normalize,dot,cross,project,reject,translate,centroid,bbox,diameter,stewart_theorem,law_of_cosines,law_of_cosines_sas,law_of_sines,solve_triangle,heron_area,brahmagupta,golden_ratio,regular_polygon,regular_tetrahedron,newton_polytope,tropical_degree_bound,tropical_system_bound,regular_subdivision,bernstein_bound,tropical_bezout_bound,sphere_equation,polynomial_equation. The remaining args are passed flat and depend on op (p, q, a, b, c, d, r, poly, pts, angle, lambda, center, axis, segment, a1,b1,c1,a2,b2,c2, ...). Send an unknown op to receive the full catalog with every signature. READ trust.trustLevel: exact = safe to use directly; definitely_none = computed proof that there is NO intersection, safe to state as a conclusion; degenerate = the INPUT is degenerate (parallel / collinear / coplanar / coincident), do NOT invent a value — report the degeneracy instead.
| Argument | Type | Description |
|---|---|---|
| op* | string | Geometry operation name. See the tool description for the full list, or send an unknown value to receive the catalog with signatures. |
{
"type": "object",
"required": [
"op"
],
"properties": {
"op": {
"type": "string",
"description": "Geometry operation name. See the tool description for the full list, or send an unknown value to receive the catalog with signatures."
}
},
"additionalProperties": true
}Report a problem to the operator when solve hits a dead end, returns an error, or produces something you believe is wrong. The text is written to a local log only and is never transmitted anywhere else.
| Argument | Type | Description |
|---|---|---|
| context | string | Optional context: the triggering scenario or input characteristics. |
| message* | string | What you hit, what you expected, and what you actually got. |
{
"type": "object",
"required": [
"message"
],
"properties": {
"context": {
"type": "string",
"description": "Optional context: the triggering scenario or input characteristics."
},
"message": {
"type": "string",
"description": "What you hit, what you expected, and what you actually got."
}
}
}Optional voluntary-support only. The hosted endpoint is no per-call charge today (metering off) (metering off: no credential required, no call limit, no per-call charge), so no payment is needed at all. This tool records a support contribution of any amount: the channel is a corporate static collection code (UnionPay aggregate QR) settling into a corporate bank account, and no payment-platform merchant API is used. AFTER PAYING: nothing to do — there is no self-crediting step and no waiting for reconciliation; the operator reconciles against the corporate bank statement, and any positive amount counts as support, not a bill. If the server has no payment method configured the order is still created but payIntent.payTo is null; in that case just keep calling the endpoint with no credential at all.
| Argument | Type | Description |
|---|---|---|
| channel | string | Payment channel: currently fixed to corporate-static (corporate bank collection). Leave empty. |
| orderId | string | For self-reporting: the order id returned by a previous pay call, shaped like LS-YYYYMMDD-xxxxxx. |
| selfReportNote | string | Optional payment note (payer, channel, time), kept only for reconciliation, up to 200 characters. |
| selfReportPaid | boolean | Retired on 2026-10-02 with per-call billing: the endpoint is free, so no credit is created and nothing is released. Kept only for backwards compatibility; it is ignored. Voluntary support is any amount paid straight to the corporate account (payTo / payToQr), reconciled by the operator afterwards. |
{
"type": "object",
"required": [],
"properties": {
"channel": {
"type": "string",
"description": "Payment channel: currently fixed to corporate-static (corporate bank collection). Leave empty."
},
"orderId": {
"type": "string",
"description": "For self-reporting: the order id returned by a previous pay call, shaped like LS-YYYYMMDD-xxxxxx."
},
"selfReportNote": {
"type": "string",
"description": "Optional payment note (payer, channel, time), kept only for reconciliation, up to 200 characters."
},
"selfReportPaid": {
"type": "boolean",
"description": "Retired on 2026-10-02 with per-call billing: the endpoint is free, so no credit is created and nothing is released. Kept only for backwards compatibility; it is ignored. Voluntary support is any amount paid straight to the corporate account (payTo / payToQr), reconciled by the operator afterwards."
}
}
}All real roots of a polynomial, each individually Krawczyk-certified with a strict error box. Coefficients are highest degree first: [1,-2,-5,6] means x^3-2x^2-5x+6. Use it instead of letting a language model estimate roots. Complex roots are not returned (real only).
| Argument | Type | Description |
|---|---|---|
| tolerance | number | Tolerance used to decide a root (optional; internal precision is used by default). |
| coefficients* | array | Polynomial coefficients, highest degree first. [1,-2,-5,6] means x^3-2x^2-5x+6. |
{
"type": "object",
"required": [
"coefficients"
],
"properties": {
"tolerance": {
"type": "number",
"description": "Tolerance used to decide a root (optional; internal precision is used by default)."
},
"coefficients": {
"type": "array",
"items": {
"type": "number"
},
"description": "Polynomial coefficients, highest degree first. [1,-2,-5,6] means x^3-2x^2-5x+6."
}
}
}Deterministic (non-LLM) solver for systems of real equations. Use it instead of computing the math yourself whenever a wrong number has a cost. Same input always returns the identical result — no hallucination, no randomness, so caching and retries are safe. Supports algebraic equations and common transcendentals (sin/cos/tan/log/exp/sqrt/abs), max 6 variables, no initial guess needed. READ THE trust BLOCK: it tells you, per result, whether the value is safe to use directly or must be verified first. Pass domain explicitly for exp/sin or large ranges, else truncated may be true. Not for symbolic derivation, initial-value ODEs, or integer constraints. Optional: pass honorPaid:true to declare personal or evaluation use — then it is served free with no key, no balance and no deduction; payment is voluntary and never enforced.
| Argument | Type | Description |
|---|---|---|
| domain | object | Explicit search domain (optional), e.g. {"x":[-30,30],"y":[-30,30]}. Recommended for near-infinite solution sets or fast-growing functions such as exp or sinh; without it the default +/-1e6 may fail to prune and set truncated. |
| options | object | Advanced options (optional), e.g. {budget:500000, maxDepth:28} |
| fastMode | boolean | Fast mode (default false). |
| equations* | array | Array of equation strings, e.g. ["x^2 + y^2 = 25", "x + y = 7"]. Supports + - * / ^ sqrt log sin cos tan exp abs, plus in-text domain constraints such as x in [-30,30]. |
| honorPaid | boolean | Honor system: set true to declare this call personal or evaluation use. It is released for free with no verification and no balance deduction. Set false only when this runs inside a product, a commercial pipeline or an automated workflow; payment is voluntary and never enforced. |
Check whether a claimed answer is actually correct — call this on any number you computed yourself before passing it downstream. verdict=verified means it is a certified real root; verdict=refuted_or_unverified means it is NOT, and nearestCertifiedRoot then carries the correct value so you can self-correct in the same turn. Deterministic and reproducible.
| Argument | Type | Description |
|---|---|---|
| equation* | string | A single equation containing an equals sign, e.g. "x^2 = 4". |
| candidate* | any | The claimed answer: a number (single variable, default variable x), {variable:value} for multiple variables, or an array in variables order. |
| tolerance | number | Neighbourhood radius (optional, default 1e-3) within which a matching certified root is searched. |
| variables | array | Variable names (required for multiple variables or array candidates), e.g. ["x","y"]. |
{
"type": "object",
"required": [
"equation",
"candidate"
],
"properties": {
"equation": {
"type": "string",
"description": "A single equation containing an equals sign, e.g. \"x^2 = 4\"."
},
"candidate": {
"oneOf": [
{
"type": "number"
},
{
"type": "object"
},
{
"type": "array"
}
],
"description": "The claimed answer: a number (single variable, default variable x), {variable:value} for multiple variables, or an array in variables order."
},
"tolerance": {
"type": "number",
"description": "Neighbourhood radius (optional, default 1e-3) within which a matching certified root is searched."
},
"variables": {
"type": "array",
"items": {
"type": "string"
},
"description": "Variable names (required for multiple variables or array candidates), e.g. [\"x\",\"y\"]."
}
}
}| variables | array | Variable names (optional). If omitted they are auto-detected from the equation text, in order of appearance. Maximum 6. |
{
"type": "object",
"required": [
"equations"
],
"properties": {
"domain": {
"type": "object",
"description": "Explicit search domain (optional), e.g. {\"x\":[-30,30],\"y\":[-30,30]}. Recommended for near-infinite solution sets or fast-growing functions such as exp or sinh; without it the default +/-1e6 may fail to prune and set truncated."
},
"options": {
"type": "object",
"description": "Advanced options (optional), e.g. {budget:500000, maxDepth:28}"
},
"fastMode": {
"type": "boolean",
"description": "Fast mode (default false)."
},
"equations": {
"type": "array",
"items": {
"type": "string"
},
"description": "Array of equation strings, e.g. [\"x^2 + y^2 = 25\", \"x + y = 7\"]. Supports + - * / ^ sqrt log sin cos tan exp abs, plus in-text domain constraints such as x in [-30,30]."
},
"honorPaid": {
"type": "boolean",
"description": "Honor system: set true to declare this call personal or evaluation use. It is released for free with no verification and no balance deduction. Set false only when this runs inside a product, a commercial pipeline or an automated workflow; payment is voluntary and never enforced."
},
"variables": {
"type": "array",
"items": {
"type": "string"
},
"description": "Variable names (optional). If omitted they are auto-detected from the equation text, in order of appearance. Maximum 6."
}
}
}