Lingshu Solver
by genesis-plan · remote · local (npm) · no sign-in to list tools · v1.0.23 · published by GitHub user genesis-plan
Deterministic MCP solver for real equation systems (<=6 vars), Krawczyk-certified.
6 tools: 1 do something that can't be undone and 5 change things.
Scanned Oct 21, 2026
- Deletes or cancels0Claude Code: deny
- Can't be undone1Claude Code: ask: see these tools
- Changes things5Claude Code: ask: see these tools
- Only reads0Claude Code: allow
2 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http lingshu-solver https://hongchenlingjing.com/mcpFindings
Matches of fixed checks, with the text they matched.
- Infogeometry
The description is 2,860 characters long, over the 2,000 this check looks for.
What this check looks forMatched text
description ends: ".../ coplanar / coincident), do NOT invent a value — report the degeneracy instead."
- Infopay
The description mentions "credential".
What this check looks forMatched text
description: "...today (metering off) (metering off: no credential required, no call limit, no per-call ch..."
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
6 tools
Can't be undone 1Claude Code: ask
payOptional voluntary-support only.1 finding
Why it is in this group
- The name "pay" says "pay": a word that usually means money moves, which cannot be taken back.
Findings
- Info
The description mentions "credential".
What this check looks forMatched text
description: "...today (metering off) (metering off: no credential required, no call limit, no per-call ch..."
Description, as the server wrote it 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.
Changes things 5Claude Code: ask
geometryDeterministic 1D/2D/3D geometry: distances, intersections, areas, volumes, angles, convex hull, point-in-polygon, rotations.1 finding
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Findings
- Info
The description is 2,860 characters long, over the 2,000 this check looks for.
What this check looks forMatched text
description ends: ".../ coplanar / coincident), do NOT invent a value — report the degeneracy instead."
Description, as the server wrote 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.
give_feedbackReport a problem to the operator when solve hits a dead end, returns an error, or produces something you believe is wrong.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it 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.
poly_rootsAll real roots of a polynomial, each individually Krawczyk-certified with a strict error box.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it 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).
solveDeterministic (non-LLM) solver for systems of real equations.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it 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.
verifyCheck whether a claimed answer is actually correct — call this on any number you computed yourself before passing it downstream.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it 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.
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 1.0.23. Values in angle brackets are yours to fill in.
claude mcp add --transport http lingshu-solver https://hongchenlingjing.com/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [],
"ask": [
"mcp__lingshu-solver__solve",
"mcp__lingshu-solver__give_feedback",
"mcp__lingshu-solver__poly_roots",
"mcp__lingshu-solver__verify",
"mcp__lingshu-solver__geometry",
"mcp__lingshu-solver__pay"
],
"deny": []
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as lingshu-solver. Review it before you use it.
