Skip to main content
Glama
genesis-plan

lingshu-solver

by genesis-plan

Lingshu Solver

Category: Certified Real-Root Computation

License MCP Deterministic npm

A deterministic solver for systems of real equations. The same problem always produces the same answer — no language model, no randomness, no hallucination. Every solution it reports is reproducible and checkable by substitution, and the result carries structured decision fields that tell the calling agent exactly what to do next.

Built for AI agents. Connect it as an MCP tool and your model stops guessing arithmetic. It is a deterministic, non-LLM numerical engine: same input, same answer, every reported solution checkable by substitution, and — crucially — every result comes with a trust block that tells the agent whether the answer is complete, safe to use, or needs more work. You branch on those fields; you never re-derive completeness yourself. Three things matter to a calling agent, and all three are built in:

What an agent needs

What this tool does

A verdict it can branch on without guessing

every result carries a conclusion — exactly one of 全部解 / 部分解 / 无解 / 计算资源不足 (all / partial / none / budget-exhausted) — plus canAssert for programmatic use, so you never have to re-derive completeness yourself

An 8-level trust block for the "how much do I believe it" question

trustLevel (8 values, incl. complete_but_shown_partially — search finished, only the page was capped), safeToUse, and provenCount / candidateCount so you never have to count solutions yourself

Honesty about "no answer"

an empty result is never silently "no real solution" — meaningOfEmpty distinguishes proven empty / not found within budget / input not solvable

A proof of completeness when one exists

trust.completeness compares the number of solutions found against a theorem-proven upper bound (BKK mixed volume of the Newton polytopes, Bézout, multi-homogeneous Bézout, Milnor–Thom, Descartes/fewnomial). complete = the count hits the bound, so you may say "these are all of them". Anything else says so instead of guessing

Inequality constraints that are actually enforced

x^2=0, x>0 returns no solution, not x=0 — a final gate substitutes every candidate back into the problem's own inequalities (open endpoints included) and drops the violators

A way to fix its own mistake

verify returns the certified corrected value and how far off the original was, so a wrong number becomes a repair, not a retry loop

It also does 1D/2D/3D geometry through one geometry tool (130 closed-form ops: distance, intersection, area, volume, angle, convex hull, point-in-polygon, rotation, bounding box, plus the classical triangle and circle theorems — five centres, Euler line and OI² = R(R−2r), Heron, Stewart, Ceva, Menelaus, Ptolemy, Miquel, Napoleon, Pick, pole/polar, Brahmagupta, plus a tropical/convex bridge (Newton polytope, BKK mixed-volume bound, regular-subdivision multiplicities) — and 3D tetrahedron/Monge point). Same contract as the solver: a trust block tells the agent whether the value is exact, whether the computation proved there is definitely_none, or whether the input itself is degenerate (parallel / collinear / coplanar) — and in the last case the correct move is to report the degeneracy, never to invent a number.

Humans can use the web page too (zero install) — but the design target is the agent: compact tool descriptions, structured errors that say what to change, and no prose the model has to pay for on every turn.

🔬 Live demo against the production endpoint: https://hclj-1409755229.cos.ap-guangzhou.myqcloud.com/lingshu-solver/demo.html — call the real MCP endpoint right from the browser and watch poly_roots return certified real roots and verify judge a candidate value. Thirty seconds is enough to see why "an LLM will mis-compute this, Lingshu can certify it".

Yes

a deterministic (non-LLM) numerical engine for systems of real equations; algebraic equations and common transcendentals (sin/cos/tan/log/exp/sqrt/abs) all work

No

a symbolic CAS (no analytic derivation), an ODE solver, an integer-programming solver, and it does not claim completeness it did not prove — the completeness block is a theorem-backed bound where one exists, and unknown everywhere else


30 seconds to start

① AI agent (MCP — pick either form)

// local stdio — permanently free, unlimited, offline. Recommended.
{ "mcpServers": { "lingshu-solver": { "command": "npx", "args": ["-y", "lingshu-solver"] } } }
// hosted endpoint — no install, always on, reachable over the public internet
{ "mcpServers": { "lingshu-solver": { "type": "http", "url": "https://hongchenlingjing.com/mcp" } } }

It also works if you never pay: the hosted endpoint runs on an honor system — pass "honorPaid": true in the solve arguments and the call is released for free (no verification, no balance deduction). The npx local version and the web version are permanently free. If you do want to support it, see the payment page — a corporate account, self-service crediting, effective immediately, no human approval anywhere in the loop.

② Web (zero install, permanently free)

Type equations into the box (for example x^2 + y^2 = 25 and x + y = 7) and press solve. Everything is computed inside your browser; the equations never leave your device.

③ Developer

git clone https://github.com/genesis-plan/lingshu-solver.git
cd lingshu-solver
node mcp-server.js          # start the local MCP (stdio) server
node test/regression.js     # standing regression suite

Related MCP server: Math MCP Server

Discovery — where agents find Lingshu

  • npm — npx -y lingshu-solver (local stdio, permanently free, offline)

  • Hosted endpoint — https://hongchenlingjing.com/mcp (MCP Streamable HTTP; always on, no install, no key)

  • Auto-indexed MCP directories — Glama · HiMCP · LobeHub

To surface it in more clients, point any MCP client at the hosted endpoint above, or submit the repo to Smithery, the official MCP Registry, or mcp.so. The hosted endpoint is the canonical discovery URL.

Honest boundaries

Dimension

What it means

Verified solutions

every reported solution is Krawczyk-certified (tier=proven); error is within the certified radius; mathematically faithful

Completeness

proved where a bound exists. For polynomial systems the engine derives a rigorous upper bound on the number of isolated solutions (BKK mixed volume of the Newton polytopes, Bézout, multi-homogeneous Bézout, Milnor–Thom, Descartes/fewnomial) and reports trust.completeness. complete means the number found equals that bound, so "these are all the solutions" is a theorem, not a guess. incomplete / unknown never pretends otherwise

scope caveat

the bound's scope is a closed enum. "(C*)^n" (BKK) counts only solutions where every variable is non-zero, so a solution with a zero coordinate is outside the count — complete there means "all non-zero solutions found"

truncated semantics

only means "the global branch search did not finish inside the budget"; it does not mean solutions were missed. In most cases every real solution was found

Variables

≤ 6

Equations

1–64 (server-side guard), and the count must be ≥ the variable count

Search range

default ±1e6 per variable; supply domain explicitly for fast-growing functions (exp/sinh)

Output precision

No user-facing switch. Internal computation is fixed at 6 decimals; the agent-facing display is 4 decimals (precisionDecimals) while solutions[].values keep full float precision

Determinism

no random branching; identical input always yields identical output, so caching is safe

Data

web version sends nothing upward; local version runs offline; the hosted endpoint does not persist equation contents

Dependencies

zero third-party dependencies (Node built-ins and standard browser APIs only)

Not guaranteed: 100% exhaustiveness for every input, or convergence inside budget for highly pathological systems. That is the honest floor of numerical mathematics ("guaranteeing all solutions" is undecidable in the general case), not a defect to be fixed.


Documentation

The machine-readable description for AI agents lives at llms.txt.

Three of the design docs are in English; the deep-dive docs (design rationale, technical reference, licence and pricing, contract, versioning, history) are still in their original Chinese. Each row below tells you which is which.

Doc

Language

Contents

01 · Product role

EN

what it is, what problem it solves, who it is for, capabilities and limits, official wording

02 · User guide

EN

the three forms, the MCP tool contract (input/output/errors), self-hosting, FAQ

05 · Use cases

EN

applicable scenarios (agent backend / multi-agent / off-chain computation / tax and finance control / on-prem / education / audit) and the ones that do not apply

03 · Design ideas

中文

six design principles, why it is trustworthy, why no LLM, what it deliberately refuses to do

04 · Technical reference

中文

mathematical framework, algorithm pipeline, operator table, hard spec constraints, test suite

06 · Commercial licence and pricing

中文

licence model, what is free, hosted-endpoint metering, enterprise annual licence, invoicing

07 · Licence contract

中文

commercial licence template, clause walkthrough, signing flow

08 · Versioning

中文

version semantics, release flow and the consistency checklist, compatibility promises, history

09 · Project history

中文

how it got from the original problem to where it stands now

If you read only one page, read 01 · Product role — it states the limits and the approved wording.

Privacy and security commitments are published separately: privacy.html.


Licence (summary)

Free for non-commercial use; commercial use requires written permission (a proprietary licence of our own, not an open-source licence):

  • Non-commercial, free: personal study / research / teaching / evaluation; internal use by non-profit organisations and educational institutions; internal evaluation by teams with annual revenue up to RMB 1 million (≤ 3 instances).

  • Commercial use needs prior written permission: any product, service or business operated for profit, resale of SaaS/cloud/API, integration, embedding, or redistribution as a hosted service.

  • Version applicability: this licence applies from 1.0.4. Versions 1.0.3 and earlier remain under the Apache License 2.0 as published at the time (a historical fact, not revocable, and it does not extend to later versions).

Full terms in LICENSE · scope and pricing in 06 · Commercial licence and pricing · contract in 07 · Licence contract


Contact

  • Business / licence / feedback: 553420544@qq.com (or open an issue in this repository)

  • Copyright holder: Guangzhou Hongchen Lingjing Digital Technology Co., Ltd. (广州市红尘灵境数字科技有限公司)

  • Filing: 粤ICP备2026031206号-3 · 粤公网安备44011402001444号

Available Tools

4 tools
give_feedbackAInspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
contextNoOptional context: the triggering scenario or input characteristics.
messageYesWhat you hit, what you expected, and what you actually got.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden and discloses the key side effect: text is written to a local log only and never transmitted elsewhere. It does not cover log location, permissions, or return behavior, but the critical data-handling trait is stated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two efficient sentences. The primary purpose and trigger conditions are front-loaded, and the second sentence adds essential behavioral context without waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter feedback tool with no output schema and no annotations, the description covers purpose, usage triggers, and data handling adequately. It could be slightly more complete by clarifying whether feedback should also be given when verify finds issues, but the core context is sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the schema already documents both context and message thoroughly. The description adds no parameter-specific syntax, format, or constraints beyond what the schema provides, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and target: reporting a problem to the operator. It also specifies the exact triggering conditions tied to the sibling tool solve, making it easy to distinguish from computational siblings like solve, verify, and poly_roots.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It clearly says when to use the tool: when solve hits a dead end, returns an error, or produces something believed wrong. It does not state when not to use it or name explicit alternatives, but the contextual guidance is strong and actionable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

poly_rootsAInspect

All real roots of a polynomial, each individually certified by Krawczyk with a strict error box. Coefficients are ordered highest degree first, so [1,-2,-5,6] means x^3-2x^2-5x+6. Deterministic and reproducible; complex roots are not returned (real numbers only). Use it as a reliable polynomial root component instead of letting a general language model estimate roots. Free to use: pass honorPaid:true to declare personal or evaluation use.

ParametersJSON Schema
NameRequiredDescriptionDefault
toleranceNoTolerance used to decide a root (optional; internal precision is used by default).
coefficientsYesPolynomial coefficients, highest degree first. [1,-2,-5,6] means x^3-2x^2-5x+6.

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full load and does well: it discloses determinism/reproducibility, the Krawczyk certification with strict error boxes, exclusion of complex roots, and the honorPaid licensing declaration. It omits failure behavior for malformed or non-polynomial input and does not explain that honorPaid is not present in the declared input schema, which is a notable gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core purpose and scope, then the coefficient-ordering convention and the licensing note. Four sentences with little waste, though the honorPaid sentence is longer than the information warrants.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, so the description must cover returns; it explains the certificate and error box but not the shape of the result (list of roots? objects with bounds?). It also never reconciles the honorPaid parameter with a schema that lacks it, leaving the agent unsure how to satisfy the licensing requirement.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the schema already documents coefficients ordering and tolerance defaults, so the description's repetition of the [1,-2,-5,6] example adds no new meaning. The only novel parameter information is honorPaid, which is not in the schema at all, creating ambiguity rather than usable semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource – returning all real roots of a polynomial – plus the scope qualifier that complex roots are excluded and roots are certified by Krawczyk with a strict error box. It does not explicitly compare itself to siblings like solve or verify, so an agent still has to infer the boundary between this and a general solver.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It advises use 'instead of letting a general language model estimate roots', which implies when to reach for it, but gives no when-not guidance and never names the sibling solve/verify tools it should be preferred over or combined with. Requirements and prerequisites for input are not stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

solveAInspect

Deterministic solver for systems of real equations. This is not a language model: no randomness, and identical input always returns an identical, reproducible result. Use it when you need a verifiable, reproducible numeric answer for algebraic equations or common transcendentals (sin/cos/tan/log/exp/sqrt/abs); it works well as a non-hallucinating math backend for an AI agent. Not suitable for symbolic algebra, closed-form proofs, initial-value ODEs, or mandatory integer equality. INPUT: equations (array of strings containing an equals sign, e.g. ["x^2+y^2=25","x+y=7"]); supported operators + - * / ^ sqrt log sin cos tan exp abs, with in-text domain constraints such as x in [-30,30]; variables (optional, auto-detected, max 6); domain (optional, e.g. {"x":[-30,30]}), defaulting to +/-1e6 per variable. HARD LIMITS: at most 6 variables; 1 to 64 equations and the equation count must be at least the variable count; up to 100KB of equation text per call; output is fixed at 6 decimal places and is not configurable. OUTPUT (JSON): resultType is empty (no real solutions, proven), finite (finite verified solutions) or infinite (infinite solution set, only the recommended nearest-to-origin solution is given); summary; solutions[] with values[] (6-decimal numbers), tier (proven means Krawczyk-certified, otherwise likely or candidate), certified, text; residual and other internals under internals; recommended holds the compact nearest-to-origin structure. truncated=true means the global branch-and-bound did not finish inside the budget; it does not necessarily mean solutions were missed and in most cases every real solution was found; narrow the domain or raise options.budget and retry if you need a completeness guarantee. Errors return error.type (invalid_input or internal_error). If something looks wrong, call give_feedback rather than guessing. The same input always produces the exact same output, so caching and retries are safe. PAYMENT: this endpoint is free to use. Pass honorPaid:true to declare personal or evaluation use and the call is served with no verification and no balance deduction; payment is voluntary and never enforced.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainNoExplicit 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.
optionsNoAdvanced options (optional), e.g. {budget:500000, maxDepth:28}
fastModeNoFast mode (default false).
equationsYesArray 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].
variablesNoVariable names (optional). If omitted they are auto-detected from the equation text, in order of appearance. Maximum 6.

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are supplied, so the description carries full burden and does so richly: determinism/reproducibility ('identical input always returns an identical output, so caching and retries are safe'), hard limits, error taxonomy (invalid_input/internal_error), truncated semantics, and payment behavior. This is exactly the behavioral disclosure a mutation-free but complex tool needs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose, then INPUT/HARD LIMITS/OUTPUT/PAYMENT headers that make scanning easy; each block is substantive rather than filler. It is long, and the OUTPUT block is verbose because no output schema exists, but the payment paragraph is the only portion that could be trimmed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and nested options/domain objects, the description supplies the return contract itself (resultType enum, solutions[].tier/certified, truncated, error.type), so an agent knows what it will get back. Nothing material is missing for correct invocation or interpretation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is already 100%, so the schema handles per-parameter meaning; the description still adds constraints the schema does not encode (max 6 variables, 1-64 equations, equation count >= variable count, 100KB cap, 6-decimal fixed output, domain defaulting to +/1e6). It stops short of explaining options.budget/maxDepth or fastMode, which the schema also leaves thin.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('deterministic solver for systems of real equations') and immediately separates itself from siblings by naming what it is not: not symbolic algebra, not an ODE solver, not a language model. An agent can distinguish it from poly_roots/verify without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly frames when to use it ('verifiable, reproducible numeric answer for algebraic equations or common transcendentals') and when not ('Not suitable for symbolic algebra, closed-form proofs, initial-value ODEs, or mandatory integer equality'), plus it routes failures to give_feedback. This is the full when/when-not/alternative pattern.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

verifyAInspect

Check whether a claimed answer is correct. Give the equation plus a candidate value (a number for a single variable, {variable:value} pairs, or an array in variable order); the same certified kernel runs in a neighbourhood around the candidate. If a matching certified root is found the result is verified together with the error box; otherwise it is refuted and the nearest certified root is returned, so the calling agent immediately sees the correct value. Deterministic, not an LLM, reproducible across calls. Free to use: pass honorPaid:true to declare personal or evaluation use.

ParametersJSON Schema
NameRequiredDescriptionDefault
equationYesA single equation containing an equals sign, e.g. "x^2 = 4".
candidateYesThe claimed answer: a number (single variable, default variable x), {variable:value} for multiple variables, or an array in variables order.
toleranceNoNeighbourhood radius (optional, default 1e-3) within which a matching certified root is searched.
variablesNoVariable names (required for multiple variables or array candidates), e.g. ["x","y"].

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description carries the full burden, and it does well: it discloses the certified-kernel neighbourhood search, determinism and reproducibility, the refutation branch returning the nearest certified root, and a pricing/usage declaration via honorPaid. It omits failure modes such as malformed equation or non-convergence behaviour.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core behaviour and input forms are front-loaded in the first two sentences, and every sentence carries information. It runs slightly long, with the honorPaid pricing clause appended as a trailing sentence that is easy to skim past.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 4-parameter tool with no annotations and no output schema, the description covers both outcomes (verified with error box vs refuted with nearest certified root) so the agent knows what it will receive. It stops short of describing invalid-input or timeout behaviour, which is a minor gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3, but the description adds meaning beyond the schema by explaining that the candidate is evaluated within a neighbourhood of the supplied value ('the same certified kernel runs in a neighbourhood around the candidate'), which contextualises what tolerance actually does.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and object ('Check whether a claimed answer is correct') and frames the tool as a verifier of a supplied candidate rather than a solver, which cleanly separates it from siblings solve and poly_roots. An agent can select it without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear context for use: supply an equation plus a candidate value, and the tool certifies or refutes it. It does not explicitly say when not to use it (e.g. use solve/poly_roots when no candidate exists), so routing to alternatives is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 4 tool updatesv1.0.22
    • Changedgive_feedback2 fields changed
      • changedInput schema / properties / context / description
        Previous value: -"可选上下文:触发场景、输入特征等。"New value: +"Optional context: the triggering scenario or input characteristics."
      • changedInput schema / properties / message / description
        Previous value: -"反馈内容:遇到了什么、期望什么、实际得到什么。"New value: +"What you hit, what you expected, and what you actually got."
    • Changedpoly_roots2 fields changed
      • changedInput schema / properties / coefficients / description
        Previous value: -"多项式系数,最高次在前。如 [1,-2,-5,6] 对应 x³−2x²−5x+6。"New value: +"Polynomial coefficients, highest degree first. [1,-2,-5,6] means x^3-2x^2-5x+6."
      • changedInput schema / properties / tolerance / description
        Previous value: -"根的判定容差(可选,默认内部精度)"New value: +"Tolerance used to decide a root (optional; internal precision is used by default)."
    • Changedsolve5 fields changed
      • changedInput schema / properties / domain / description
        Previous value: -"显式搜索域(可选)。形如 {\"x\":[-30,30],\"y\":[-30,30]}。对\"有限解·部分\"演示或快增长函数(exp/sinh)建议显式给定,否则默认 ±1e6 可能剪枝失效并触发 truncated。"New value: +"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."
      • changedInput schema / properties / equations / description
        Previous value: -"方程字符串数组,如 [\"x^2 + y^2 = 25\", \"x + y = 7\"]。支持 + - * / ^ sqrt log sin cos tan exp abs,以及 in-text 域约束 \"x ∈ [-30,30]\"。"New value: +"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]."
      • changedInput schema / properties / fastMode / description
        Previous value: -"快速模式(默认 false)"New value: +"Fast mode (default false)."
      • changedInput schema / properties / options / description
        Previous value: -"高级选项(可选),如 {budget:500000, maxDepth:28}"New value: +"Advanced options (optional), e.g. {budget:500000, maxDepth:28}"
      • changedInput schema / properties / variables / description
        Previous value: -"变量名数组(可选)。不填则由方程文本自动识别,顺序按出现。最多 6 个。"New value: +"Variable names (optional). If omitted they are auto-detected from the equation text, in order of appearance. Maximum 6."
    • Changedverify4 fields changed
      • changedInput schema / properties / candidate / description
        Previous value: -"声称的答案:数字(单变量,默认变量 x)、{变量:值}(多变量)、或按 variables 顺序的数组。"New value: +"The claimed answer: a number (single variable, default variable x), {variable:value} for multiple variables, or an array in variables order."
      • changedInput schema / properties / equation / description
        Previous value: -"含 \"=\" 的方程,如 \"x^2 = 4\"。"New value: +"A single equation containing an equals sign, e.g. \"x^2 = 4\"."
      • changedInput schema / properties / tolerance / description
        Previous value: -"邻域半径(可选,默认 1e-3),在该邻域内寻找匹配的认证根。"New value: +"Neighbourhood radius (optional, default 1e-3) within which a matching certified root is searched."
      • changedInput schema / properties / variables / description
        Previous value: -"变量名(多变量或数组候选时必填),如 [\"x\",\"y\"]。"New value: +"Variable names (required for multiple variables or array candidates), e.g. [\"x\",\"y\"]."
  2. 2 tool updatesv1.0.15
    • Addedpoly_roots
    • Addedverify
  3. 2 tool updatesv1.0.2
    • First observedgive_feedback
    • First observedsolve

TDQS

A4/5.0

Scored across 4 tools

Disambiguation4/5

solve, poly_roots, verify, and give_feedback mostly have distinct roles: solving systems, finding polynomial roots, validating candidate answers, and reporting issues. However, solve and poly_roots can overlap for single polynomial equations, so an agent may occasionally hesitate between them.

Naming Consistency3/5

Names are readable and mostly snake_case, but they mix patterns: solve and verify are simple verbs, give_feedback is verb_noun, and poly_roots is a noun. The set lacks a single predictable naming convention.

Tool Count5/5

Four tools is well-scoped for a deterministic math solver with verification and feedback. Each tool appears to earn its place, and there is no obvious bloat or thinness.

Completeness4/5

The surface covers solving equations, polynomial roots, verifying claimed answers, and reporting problems, which matches the core numeric-solver domain. Minor gaps exist around explicit configuration/help tooling, but solve already exposes relevant options in its input.

Maintenance

ActivityActive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Provides 21 mathematical tools across 6 domains including basic calculations, array operations, statistics, financial mathematics, linear algebra, and calculus. Supports batch execution for complex multi-step workflows with intelligent dependency resolution.
    21
    6
    MIT
  • A
    license
    B
    quality
    A
    maintenance
    Provides secure mathematical computation capabilities including expression evaluation, symbolic math (derivatives, simplification), matrix operations, statistics, and unit conversion, with multi-tier acceleration through WebAssembly and WebWorkers for high-performance calculations.
    7
    84 npm
    ISC
  • A
    license
    A
    quality
    B
    maintenance
    Enables reliable engineering and scientific computation through tools for exact arithmetic, unit-aware formulas, calculus, linear algebra, statistics, uncertainty propagation, and physical constants, all executed safely in reproducible subprocesses.
    8
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Provides deterministic tools for symbolic math, equation solving, relation verification, reasoning structure audits, and validated CAD primitives, returning evidence artifacts for every result.
    MIT