Qedra
OCI · GHCR.IO/EVGWPW/QEDRA · 3 COMPONENTS
Computer algebra with verifiable answers
Available components
Last scanned (7 hours ago)
Scores higher than 39% of OCI servers
Category Education and Research
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →
Supply Chain Security0
- No malware scan is available for this kind of package: the supply-chain vendors we use do not cover it. This is a permanent gap in our coverage, not a finding about the package.Unverified
- Known CVEs could not be checked: this artifact ships no SBOM or dependency manifest, so there is no dependency list to read.Unverified
- Install-script risk not yet assessed.Unverified
- Dependency health could not be checked: this artifact ships no SBOM or dependency manifest, so there is no dependency list to read.Unverified
Provenance & Transparency45
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- Clear OSI-approved license (0BSD).Pass
- Actively maintained (last published 0 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability71
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (good).Pass
- Context-footprint check failed: tool/resource definitions use about 11559 tokens (~481/item across 24 items; 23 tools + 1 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management3
- Stability observed for 1 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
Tool Safety75
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- 0 of 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "undeclare" implies "remove" and declares no destructiveHint at all, which the MCP spec reads as destructive by default. See how to fix → Fail
- An AI judge read all 25 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Unverified: 1 category
A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 5 Nov 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 0 to 3. That category is still filling its 30-day observation window: 0 days of observed history at the previous scan, 1 at this one. The score rises as the window fills, whether or not the server changes.
- 4 Nov 26 38
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 5 Nov 2026 · Analysed oci/ghcr.io/evgwpw/qedra@1.109.7.11
Provenance No attestation
The registry publishes no build provenance for this version, so there is nothing to verify.
| Result | No attestation |
|---|---|
| Ecosystem | oci |
| Reason | No attestation published |
Background: How many MCP packages publish verified provenance →
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
apart ~583
Partial fraction decomposition of a rational function with respect to 'var': 1/(x^2-1) gives 1/(2(x-1)) - 1/(2(x+1)). Not a rational function in 'var' (e.g. contains sin(x)): status "error" or unchanged input. Returns a JSON object: status (answer | unknown | no-solution | nonelementary | error | timeout), result (S-expression), pretty (math-language form), note, conditions (when the answer is valid, e.g. a ≠ 0), assumptions, certificate (only with certificate=true), steps, warnings, output, error.
| Name | Type | Req | Description |
|---|---|---|---|
| certificate | boolean | – | Include a verification of the answer in the 'certificate' field (default false): derivative check for integrate, substitution check for solve, equivalence check for simplify/expand/factor/together/ap… |
| expr | string | yes | Expression in the math language, e.g. "x^2*sin(x) + exp(-x)" (with syntax="lisp": an S-expression, e.g. "(* (^ x 2) (sin x))"). |
| lang | string | – | Language of step titles and comments (used with steps): "ru" (default) or "en". The rule ids and the formulas are language-independent. A step without an English translation keeps its Russian text an… |
| max_chars | integer | – | Truncate result/pretty to this many characters (default 20000, max 200000); truncation is reported in 'warnings'. |
| steps | string | – | Include the step-by-step solution in the 'steps' field (a tree; titles and comments are in Russian unless lang="en"): none (default), brief (main top-level steps only), full (the whole tree: depth ≤… |
| syntax | string | – | Input syntax of expression arguments: "math" (default; infix: x^2, sqrt(x), pi, ∞, a = b) or "lisp" (S-expressions). |
| timeout_s | integer | – | Time limit in seconds (default 60, max 600). On expiry the computation is interrupted, status is "timeout"; the session stays usable. |
| var | string | yes | Variable of the decomposition, e.g. "x". |
No output schema declared.
No examples provided.
code ~321
Query the Lisp source of the CAS library (lib/) instead of reading whole files; for developers and agents extending the library. kind: def (location, signature, doc comment and source of NAME), sig (one-line signature + module + first doc line; builtins too), refs (where NAME is used), callers / callees (direct, depth for transitive), module (exports and module dependencies), outline (definitions of a file with line numbers), search (top-10 definitions by name/doc words, Russian or English), deps (external names a file uses, by module), unused (definitions never referenced). Names may be qualified: module::name. Result: plain text (default, compact) or JSON text with json=true. An unknown name returns an error with similar names.
| Name | Type | Req | Description |
|---|---|---|---|
| arg | string | – | NAME for def/sig/refs/callers/callees, module name for module, file path (lib/algnum.lisp or algnum.lisp) for outline/deps, words for search; not used by unused. |
| depth | integer | – | callers/callees: depth of the transitive closure (default 1). |
| json | boolean | – | Return JSON text instead of compact text (default false). |
| kind | string | yes | Kind of query. |
| max_chars | integer | – | Truncate result/pretty to this many characters (default 20000, max 200000); truncation is reported in 'warnings'. |
| no_body | boolean | – | def: omit the source text (default false). |
No output schema declared.
No examples provided.
declarations ~179
List the active declarations of the session, one "x ∈ D" per line (also given in 'assumptions' of every response). Returns a JSON object: status (answer | unknown | no-solution | nonelementary | error | timeout), result (S-expression), pretty (math-language form), note, conditions (when the answer is valid, e.g. a ≠ 0), assumptions, certificate (only with certificate=true), steps, warnings, output, error.
| Name | Type | Req | Description |
|---|---|---|---|
| max_chars | integer | – | Truncate result/pretty to this many characters (default 20000, max 200000); truncation is reported in 'warnings'. |
| timeout_s | integer | – | Time limit in seconds (default 60, max 600). On expiry the computation is interrupted, status is "timeout"; the session stays usable. |
No output schema declared.
No examples provided.
declare ~506
Declare a property of a symbol for the whole session: its domain or interval. It then affects simplify (sqrt(x^2) becomes x for x in positive), solve, integrate and the signs of expressions. Declarations of one symbol accumulate (they intersect): call again to add a constraint. Returns "x ∈ D"; 'assumptions' lists all active declarations. Undeclared symbols are complex numbers. Returns a JSON object: status (answer | unknown | no-solution | nonelementary | error | timeout), result (S-expression), pretty (math-language form), note, conditions (when the answer is valid, e.g. a ≠ 0), assumptions, certificate (only with certificate=true), steps, warnings, output, error.
| Name | Type | Req | Description |
|---|---|---|---|
| domain | string | yes | One of: ℝ (reals), ℤ (integers), ℚ (rationals), ℕ (naturals incl. 0), ℂ (complex); positive, nonnegative, negative, nonpositive; an interval: (0, ∞), [0, 1], (0, 1], interval(-1, 1). ASCII names also… |
| lang | string | – | Language of step titles and comments (used with steps): "ru" (default) or "en". The rule ids and the formulas are language-independent. A step without an English translation keeps its Russian text an… |
| max_chars | integer | – | Truncate result/pretty to this many characters (default 20000, max 200000); truncation is reported in 'warnings'. |
| steps | string | – | Include the step-by-step solution in the 'steps' field (a tree; titles and comments are in Russian unless lang="en"): none (default), brief (main top-level steps only), full (the whole tree: depth ≤… |
| symbol | string | yes | Symbol name, e.g. "x". |
| timeout_s | integer | – | Time limit in seconds (default 60, max 600). On expiry the computation is interrupted, status is "timeout"; the session stays usable. |
No output schema declared.
No examples provided.
diff ~543
Differentiate an expression; the result is simplified. Returns a JSON object: status (answer | unknown | no-solution | nonelementary | error | timeout), result (S-expression), pretty (math-language form), note, conditions (when the answer is valid, e.g. a ≠ 0), assumptions, certificate (only with certificate=true), steps, warnings, output, error.
| Name | Type | Req | Description |
|---|---|---|---|
| certificate | boolean | – | Include a verification of the answer in the 'certificate' field (default false): derivative check for integrate, substitution check for solve, equivalence check for simplify/expand/factor/together/ap… |
| expr | string | yes | Expression in the math language, e.g. "x^2*sin(x) + exp(-x)" (with syntax="lisp": an S-expression, e.g. "(* (^ x 2) (sin x))"). |
| lang | string | – | Language of step titles and comments (used with steps): "ru" (default) or "en". The rule ids and the formulas are language-independent. A step without an English translation keeps its Russian text an… |
| max_chars | integer | – | Truncate result/pretty to this many characters (default 20000, max 200000); truncation is reported in 'warnings'. |
| order | integer | – | Derivative order (default 1). |
| steps | string | – | Include the step-by-step solution in the 'steps' field (a tree; titles and comments are in Russian unless lang="en"): none (default), brief (main top-level steps only), full (the whole tree: depth ≤… |
| syntax | string | – | Input syntax of expression arguments: "math" (default; infix: x^2, sqrt(x), pi, ∞, a = b) or "lisp" (S-expressions). |
| timeout_s | integer | – | Time limit in seconds (default 60, max 600). On expiry the computation is interrupted, status is "timeout"; the session stays usable. |
| var | string | yes | Differentiation variable, e.g. "x". |
No output schema declared.
No examples provided.
equivalent ~623
Check whether two expressions are equal. result is "true", "false" or "unknown" (status "answer"). true: proved symbolically (the difference simplifies to 0); holds where both expressions are defined. false: a counterexample is given in 'note' (a point where the values differ; sample points respect declarations, undeclared symbols are sampled as real numbers). unknown: not proved, and the numeric checks at random points agreed (this is NOT a proof); verify by other means or say that you could not decide. Returns a JSON object: status (answer | unknown | no-solution | nonelementary | error | timeout), result (S-expression), pretty (math-language form), note, conditions (when the answer is valid, e.g. a ≠ 0), assumptions, certificate (only with certificate=true), steps, warnings, output, error.
| Name | Type | Req | Description |
|---|---|---|---|
| a | string | yes | First expression, e.g. "sin(x)^2 + cos(x)^2". |
| b | string | yes | Second expression, e.g. "1". |
| certificate | boolean | – | Include a verification of the answer in the 'certificate' field (default false): derivative check for integrate, substitution check for solve, equivalence check for simplify/expand/factor/together/ap… |
| lang | string | – | Language of step titles and comments (used with steps): "ru" (default) or "en". The rule ids and the formulas are language-independent. A step without an English translation keeps its Russian text an… |
| max_chars | integer | – | Truncate result/pretty to this many characters (default 20000, max 200000); truncation is reported in 'warnings'. |
| steps | string | – | Include the step-by-step solution in the 'steps' field (a tree; titles and comments are in Russian unless lang="en"): none (default), brief (main top-level steps only), full (the whole tree: depth ≤… |
| syntax | string | – | Input syntax of expression arguments: "math" (default; infix: x^2, sqrt(x), pi, ∞, a = b) or "lisp" (S-expressions). |
| timeout_s | integer | – | Time limit in seconds (default 60, max 600). On expiry the computation is interrupted, status is "timeout"; the session stays usable. |
| vars | string | – | Variables to sample, e.g. "[x, y]" (optional: all free symbols are used). |
No output schema declared.
No examples provided.
evaluate ~376
Evaluate Lisp (Scheme-like) code in the persistent session; one or more forms, the value of each is returned (one line per form). On error, 'stack' holds the Lisp backtrace. Returns a JSON object: status (answer | unknown | no-solution | nonelementary | error | timeout), result (S-expression), pretty (math-language form), note, conditions (when the answer is valid, e.g. a ≠ 0), assumptions, certificate (only with certificate=true), steps, warnings, output, error.
| Name | Type | Req | Description |
|---|---|---|---|
| code | string | yes | Lisp code, e.g. "(integrate '(* x (exp x)) 'x)". |
| lang | string | – | Language of step titles and comments (used with steps): "ru" (default) or "en". The rule ids and the formulas are language-independent. A step without an English translation keeps its Russian text an… |
| max_chars | integer | – | Truncate result/pretty to this many characters (default 20000, max 200000); truncation is reported in 'warnings'. |
| steps | string | – | Include the step-by-step solution in the 'steps' field (a tree; titles and comments are in Russian unless lang="en"): none (default), brief (main top-level steps only), full (the whole tree: depth ≤… |
| timeout_s | integer | – | Time limit in seconds (default 60, max 600). On expiry the computation is interrupted, status is "timeout"; the session stays usable. |
No output schema declared.
No examples provided.
expand ~522
Expand products and integer powers of sums into a sum of monomials (collects like terms). Returns a JSON object: status (answer | unknown | no-solution | nonelementary | error | timeout), result (S-expression), pretty (math-language form), note, conditions (when the answer is valid, e.g. a ≠ 0), assumptions, certificate (only with certificate=true), steps, warnings, output, error.
| Name | Type | Req | Description |
|---|---|---|---|
| certificate | boolean | – | Include a verification of the answer in the 'certificate' field (default false): derivative check for integrate, substitution check for solve, equivalence check for simplify/expand/factor/together/ap… |
| expr | string | yes | Expression in the math language, e.g. "x^2*sin(x) + exp(-x)" (with syntax="lisp": an S-expression, e.g. "(* (^ x 2) (sin x))"). |
| lang | string | – | Language of step titles and comments (used with steps): "ru" (default) or "en". The rule ids and the formulas are language-independent. A step without an English translation keeps its Russian text an… |
| max_chars | integer | – | Truncate result/pretty to this many characters (default 20000, max 200000); truncation is reported in 'warnings'. |
| steps | string | – | Include the step-by-step solution in the 'steps' field (a tree; titles and comments are in Russian unless lang="en"): none (default), brief (main top-level steps only), full (the whole tree: depth ≤… |
| syntax | string | – | Input syntax of expression arguments: "math" (default; infix: x^2, sqrt(x), pi, ∞, a = b) or "lisp" (S-expressions). |
| timeout_s | integer | – | Time limit in seconds (default 60, max 600). On expiry the computation is interrupted, status is "timeout"; the session stays usable. |
No output schema declared.
No examples provided.
factor ~540
Factor a polynomial over the integers into irreducible factors (also a rational function: numerator and denominator). Irreducible or non-polynomial input is returned unchanged with status "answer". Returns a JSON object: status (answer | unknown | no-solution | nonelementary | error | timeout), result (S-expression), pretty (math-language form), note, conditions (when the answer is valid, e.g. a ≠ 0), assumptions, certificate (only with certificate=true), steps, warnings, output, error.
| Name | Type | Req | Description |
|---|---|---|---|
| certificate | boolean | – | Include a verification of the answer in the 'certificate' field (default false): derivative check for integrate, substitution check for solve, equivalence check for simplify/expand/factor/together/ap… |
| expr | string | yes | Expression in the math language, e.g. "x^2*sin(x) + exp(-x)" (with syntax="lisp": an S-expression, e.g. "(* (^ x 2) (sin x))"). |
| lang | string | – | Language of step titles and comments (used with steps): "ru" (default) or "en". The rule ids and the formulas are language-independent. A step without an English translation keeps its Russian text an… |
| max_chars | integer | – | Truncate result/pretty to this many characters (default 20000, max 200000); truncation is reported in 'warnings'. |
| steps | string | – | Include the step-by-step solution in the 'steps' field (a tree; titles and comments are in Russian unless lang="en"): none (default), brief (main top-level steps only), full (the whole tree: depth ≤… |
| syntax | string | – | Input syntax of expression arguments: "math" (default; infix: x^2, sqrt(x), pi, ∞, a = b) or "lisp" (S-expressions). |
| timeout_s | integer | – | Time limit in seconds (default 60, max 600). On expiry the computation is interrupted, status is "timeout"; the session stays usable. |
No output schema declared.
No examples provided.
groebner ~617
Reduced Groebner basis of the ideal generated by polynomials, as a vector of monic polynomials. 'order' is the monomial order: lex (default; useful for elimination and solving), grlex, grevlex (usually fastest). Large systems (e.g. cyclic-6) can be slow: use timeout_s; status "timeout" means no answer, not an empty basis. Returns a JSON object: status (answer | unknown | no-solution | nonelementary | error | timeout), result (S-expression), pretty (math-language form), note, conditions (when the answer is valid, e.g. a ≠ 0), assumptions, certificate (only with certificate=true), steps, warnings, output, error.
| Name | Type | Req | Description |
|---|---|---|---|
| certificate | boolean | – | Include a verification of the answer in the 'certificate' field (default false): derivative check for integrate, substitution check for solve, equivalence check for simplify/expand/factor/together/ap… |
| lang | string | – | Language of step titles and comments (used with steps): "ru" (default) or "en". The rule ids and the formulas are language-independent. A step without an English translation keeps its Russian text an… |
| max_chars | integer | – | Truncate result/pretty to this many characters (default 20000, max 200000); truncation is reported in 'warnings'. |
| order | string | – | Monomial order, default lex. |
| polys | string | yes | Polynomials, as a vector "[x^2 + y, x*y - 1]" or an array of strings; an equation a = b means a - b. |
| steps | string | – | Include the step-by-step solution in the 'steps' field (a tree; titles and comments are in Russian unless lang="en"): none (default), brief (main top-level steps only), full (the whole tree: depth ≤… |
| syntax | string | – | Input syntax of expression arguments: "math" (default; infix: x^2, sqrt(x), pi, ∞, a = b) or "lisp" (S-expressions). |
| timeout_s | integer | – | Time limit in seconds (default 60, max 600). On expiry the computation is interrupted, status is "timeout"; the session stays usable. |
| vars | string | yes | Variables, as a vector "[x, y]" or an array of strings; the order of variables matters for lex. |
No output schema declared.
No examples provided.
guide ~209
Return the on-demand LLM guide (markdown). Without 'topic': the short core (input syntax, how to read the response: status / conditions / certificates, which tool when) and the list of topic cards (the same text is the MCP resource lisp://guide). With 'topic' (e.g. "integration", "ode", "linear-algebra", "sums"): a card with 5-15 functions with exact signatures, runnable examples and pitfalls. A name from other systems (Mathematica, Maple) ("DSolve", "FactorInteger", "Eigenvalues", ...) or a tool name is accepted and returns the right card; topic "synonyms" is the whole table. An unknown topic returns an error with suggestions. Read the core once before the first calculation.
| Name | Type | Req | Description |
|---|---|---|---|
| topic | string | – | Topic card name (e.g. "integration") or a name from another system (e.g. "DSolve"); omit for the core guide and the list of topics. |
No output schema declared.
No examples provided.
integrate ~606
Integrate an expression: indefinite, or definite when both 'from' and 'to' are given. If no antiderivative is found, status is "unknown" and result is the unevaluated integral; conditions list parameter assumptions used. Returns a JSON object: status (answer | unknown | no-solution | nonelementary | error | timeout), result (S-expression), pretty (math-language form), note, conditions (when the answer is valid, e.g. a ≠ 0), assumptions, certificate (only with certificate=true), steps, warnings, output, error.
| Name | Type | Req | Description |
|---|---|---|---|
| certificate | boolean | – | Include a verification of the answer in the 'certificate' field (default false): derivative check for integrate, substitution check for solve, equivalence check for simplify/expand/factor/together/ap… |
| expr | string | yes | Expression in the math language, e.g. "x^2*sin(x) + exp(-x)" (with syntax="lisp": an S-expression, e.g. "(* (^ x 2) (sin x))"). |
| from | string | – | Lower limit for a definite integral (math language; -∞ allowed). |
| lang | string | – | Language of step titles and comments (used with steps): "ru" (default) or "en". The rule ids and the formulas are language-independent. A step without an English translation keeps its Russian text an… |
| max_chars | integer | – | Truncate result/pretty to this many characters (default 20000, max 200000); truncation is reported in 'warnings'. |
| steps | string | – | Include the step-by-step solution in the 'steps' field (a tree; titles and comments are in Russian unless lang="en"): none (default), brief (main top-level steps only), full (the whole tree: depth ≤… |
| syntax | string | – | Input syntax of expression arguments: "math" (default; infix: x^2, sqrt(x), pi, ∞, a = b) or "lisp" (S-expressions). |
| timeout_s | integer | – | Time limit in seconds (default 60, max 600). On expiry the computation is interrupted, status is "timeout"; the session stays usable. |
| to | string | – | Upper limit for a definite integral (math language; ∞ allowed). |
| var | string | yes | Integration variable, e.g. "x". |
No output schema declared.
No examples provided.
limit ~669
Limit of an expression as var approaches point (a number, or ∞ / -∞). Without 'side' it is the two-sided limit. If the limit is not found (it may exist, or may not, e.g. sin(1/x) at 0), status is "unknown" and result is the unevaluated limit(...); do not guess the value. Result may be ∞, -∞ or undefined. Returns a JSON object: status (answer | unknown | no-solution | nonelementary | error | timeout), result (S-expression), pretty (math-language form), note, conditions (when the answer is valid, e.g. a ≠ 0), assumptions, certificate (only with certificate=true), steps, warnings, output, error.
| Name | Type | Req | Description |
|---|---|---|---|
| certificate | boolean | – | Include a verification of the answer in the 'certificate' field (default false): derivative check for integrate, substitution check for solve, equivalence check for simplify/expand/factor/together/ap… |
| expr | string | yes | Expression in the math language, e.g. "x^2*sin(x) + exp(-x)" (with syntax="lisp": an S-expression, e.g. "(* (^ x 2) (sin x))"). |
| lang | string | – | Language of step titles and comments (used with steps): "ru" (default) or "en". The rule ids and the formulas are language-independent. A step without an English translation keeps its Russian text an… |
| max_chars | integer | – | Truncate result/pretty to this many characters (default 20000, max 200000); truncation is reported in 'warnings'. |
| point | string | yes | Limit point (math language): "0", "1", "∞", "-∞", "a". |
| side | string | – | One-sided limit: "plus" (from the right, x→a+) or "minus" (from the left). Default: two-sided. |
| steps | string | – | Include the step-by-step solution in the 'steps' field (a tree; titles and comments are in Russian unless lang="en"): none (default), brief (main top-level steps only), full (the whole tree: depth ≤… |
| syntax | string | – | Input syntax of expression arguments: "math" (default; infix: x^2, sqrt(x), pi, ∞, a = b) or "lisp" (S-expressions). |
| timeout_s | integer | – | Time limit in seconds (default 60, max 600). On expiry the computation is interrupted, status is "timeout"; the session stays usable. |
| var | string | yes | Limit variable, e.g. "x". |
No output schema declared.
No examples provided.
linear-algebra ~589
Exact linear algebra on a matrix (step LA.4): Jordan normal form, matrix exponential exp(A·t), symbolic matrix power A^n, a function of a matrix f(A), diagonalization, eigenvalues/eigenvectors. The matrix is given as "[[2,1],[0,2]]" in the math language. fn selects the operation: jordan_form (returns [P, J] with A = P·J·P⁻¹), jordan_blocks, mat_exp (var defaults to the built-in t; verified by d/dt E = A·E and E(0) = I), mat_power (var defaults to n; nilpotent Jordan blocks at λ=0 are written as zeros with the condition n ≥ s in 'conditions'), mat_fn (func, e.g. "exp" or a lambda), diagonalize ([P, D]), is_diagonalizable, eigenvalues, eigenvectors. Returns a JSON object: status (answer | unknown | no-solution | nonelementary | error | timeout), result (S-expression), pretty (math-language form), note, conditions (when the answer is valid, e.g. a ≠ 0), assumptions, certificate (only with certificate=true), steps, warnings, output, error.
| Name | Type | Req | Description |
|---|---|---|---|
| expr | string | yes | Matrix in the math language, e.g. "[[2,1],[0,2]]". |
| fn | string | yes | Operation on the matrix. |
| func | string | – | Function for mat_fn, e.g. "exp" or "lambda(x) x^2". |
| lang | string | – | Language of step titles and comments (used with steps): "ru" (default) or "en". The rule ids and the formulas are language-independent. A step without an English translation keeps its Russian text an… |
| max_chars | integer | – | Truncate result/pretty to this many characters (default 20000, max 200000); truncation is reported in 'warnings'. |
| steps | string | – | Include the step-by-step solution in the 'steps' field (a tree; titles and comments are in Russian unless lang="en"): none (default), brief (main top-level steps only), full (the whole tree: depth ≤… |
| timeout_s | integer | – | Time limit in seconds (default 60, max 600). On expiry the computation is interrupted, status is "timeout"; the session stays usable. |
| var | string | – | Variable for mat_exp (t) or mat_power (n); defaults to the built-in. |
No output schema declared.
No examples provided.
linear-programming ~664
Linear and integer linear programming (step LP.3) with exact rational arithmetic: the two-phase simplex method (Bland's rule) for LP, branch and bound for ILP. Maximize or minimize a linear objective cᵀx over linear constraints. The answer always carries a certificate verified by lp-check (independent: only multiplications and comparisons): optimal — x, value and the dual prices y with cᵀx = value = bᵀy; infeasible — a Farkas lemma certificate; unbounded — a feasible point and a ray; integer — re-solving the branch-and-bound tree. 'integer' is a vector of variable classes "int"/"bin"/"free"; when absent the problem is a plain LP. answers: (optimal x value y), (infeasible y), (unbounded x d), (unknown x value nil) when the node limit is exceeded. Returns a JSON object: status (answer | unknown | no-solution | nonelementary | error | timeout), result (S-expression), pretty (math-language form), note, conditions (when the answer is valid, e.g. a ≠ 0), assumptions, certificate (only with certificate=true), steps, warnings, output, error.
| Name | Type | Req | Description |
|---|---|---|---|
| constraints | string | yes | Constraint matrix A as a matrix, e.g. "[[1,0],[0,2],[1,1]]". |
| dir | string | yes | Optimization direction. |
| integer | string | – | Variable classes for ILP as a vector of "int"/"bin"/"free", e.g. "["bin", "bin", "int"]"; when absent — plain LP. |
| lang | string | – | Language of step titles and comments (used with steps): "ru" (default) or "en". The rule ids and the formulas are language-independent. A step without an English translation keeps its Russian text an… |
| max_chars | integer | – | Truncate result/pretty to this many characters (default 20000, max 200000); truncation is reported in 'warnings'. |
| objective | string | yes | Objective coefficients c as a vector, e.g. "[3, 5]". |
| relations | string | – | Constraint relations as a vector of "<="/">="/"=", e.g. "["<=", ">=", "="]"; default all "<=". |
| rhs | string | yes | Right-hand sides b as a vector, e.g. "[4, 12, 8]". |
| steps | string | – | Include the step-by-step solution in the 'steps' field (a tree; titles and comments are in Russian unless lang="en"): none (default), brief (main top-level steps only), full (the whole tree: depth ≤… |
| timeout_s | integer | – | Time limit in seconds (default 60, max 600). On expiry the computation is interrupted, status is "timeout"; the session stays usable. |
No output schema declared.
No examples provided.
math ~437
Run a program in the CAS math language in the persistent session: statements separated by ';' or newlines, assignments 'a := 2', functions 'f(x) := x^2', domain declarations 'x :∈ ℝ', and all CAS functions (simplify, expand, factor, diff, integrate, solve, limit, series, ...). result/pretty contain one line per statement; print() output goes to 'output'. Returns a JSON object: status (answer | unknown | no-solution | nonelementary | error | timeout), result (S-expression), pretty (math-language form), note, conditions (when the answer is valid, e.g. a ≠ 0), assumptions, certificate (only with certificate=true), steps, warnings, output, error.
| Name | Type | Req | Description |
|---|---|---|---|
| code | string | yes | Program text, e.g. "f(x) := x^3 - x; factor(f(x)); solve(f(x) = 0, x)". |
| lang | string | – | Language of step titles and comments (used with steps): "ru" (default) or "en". The rule ids and the formulas are language-independent. A step without an English translation keeps its Russian text an… |
| max_chars | integer | – | Truncate result/pretty to this many characters (default 20000, max 200000); truncation is reported in 'warnings'. |
| steps | string | – | Include the step-by-step solution in the 'steps' field (a tree; titles and comments are in Russian unless lang="en"): none (default), brief (main top-level steps only), full (the whole tree: depth ≤… |
| timeout_s | integer | – | Time limit in seconds (default 60, max 600). On expiry the computation is interrupted, status is "timeout"; the session stays usable. |
No output schema declared.
No examples provided.
reset ~25
Reset the session: forget all variables, functions and domain declarations. Returns status "answer".
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
series ~600
Taylor/Laurent series of an expression around a point, up to the given order (the O(...) remainder is included in the result). Series that the CAS cannot compute (essential singularities, unsupported functions): status "unknown". Returns a JSON object: status (answer | unknown | no-solution | nonelementary | error | timeout), result (S-expression), pretty (math-language form), note, conditions (when the answer is valid, e.g. a ≠ 0), assumptions, certificate (only with certificate=true), steps, warnings, output, error.
| Name | Type | Req | Description |
|---|---|---|---|
| certificate | boolean | – | Include a verification of the answer in the 'certificate' field (default false): derivative check for integrate, substitution check for solve, equivalence check for simplify/expand/factor/together/ap… |
| expr | string | yes | Expression in the math language, e.g. "x^2*sin(x) + exp(-x)" (with syntax="lisp": an S-expression, e.g. "(* (^ x 2) (sin x))"). |
| lang | string | – | Language of step titles and comments (used with steps): "ru" (default) or "en". The rule ids and the formulas are language-independent. A step without an English translation keeps its Russian text an… |
| max_chars | integer | – | Truncate result/pretty to this many characters (default 20000, max 200000); truncation is reported in 'warnings'. |
| order | integer | – | The series is exact up to O(var^order); default 6. |
| point | string | – | Expansion point (math language), default "0". |
| steps | string | – | Include the step-by-step solution in the 'steps' field (a tree; titles and comments are in Russian unless lang="en"): none (default), brief (main top-level steps only), full (the whole tree: depth ≤… |
| syntax | string | – | Input syntax of expression arguments: "math" (default; infix: x^2, sqrt(x), pi, ∞, a = b) or "lisp" (S-expressions). |
| timeout_s | integer | – | Time limit in seconds (default 60, max 600). On expiry the computation is interrupted, status is "timeout"; the session stays usable. |
| var | string | yes | Expansion variable, e.g. "x". |
No output schema declared.
No examples provided.
simplify ~510
Simplify an expression to canonical form. Returns a JSON object: status (answer | unknown | no-solution | nonelementary | error | timeout), result (S-expression), pretty (math-language form), note, conditions (when the answer is valid, e.g. a ≠ 0), assumptions, certificate (only with certificate=true), steps, warnings, output, error.
| Name | Type | Req | Description |
|---|---|---|---|
| certificate | boolean | – | Include a verification of the answer in the 'certificate' field (default false): derivative check for integrate, substitution check for solve, equivalence check for simplify/expand/factor/together/ap… |
| expr | string | yes | Expression in the math language, e.g. "x^2*sin(x) + exp(-x)" (with syntax="lisp": an S-expression, e.g. "(* (^ x 2) (sin x))"). |
| lang | string | – | Language of step titles and comments (used with steps): "ru" (default) or "en". The rule ids and the formulas are language-independent. A step without an English translation keeps its Russian text an… |
| max_chars | integer | – | Truncate result/pretty to this many characters (default 20000, max 200000); truncation is reported in 'warnings'. |
| steps | string | – | Include the step-by-step solution in the 'steps' field (a tree; titles and comments are in Russian unless lang="en"): none (default), brief (main top-level steps only), full (the whole tree: depth ≤… |
| syntax | string | – | Input syntax of expression arguments: "math" (default; infix: x^2, sqrt(x), pi, ∞, a = b) or "lisp" (S-expressions). |
| timeout_s | integer | – | Time limit in seconds (default 60, max 600). On expiry the computation is interrupted, status is "timeout"; the session stays usable. |
No output schema declared.
No examples provided.
solve ~586
Solve an equation or a system. Returns the SET of solutions (a system solution is a vector of equations x = ...); status "no-solution" means proven unsolvable; 'conditions' lists the generic-parameter conditions (e.g. a ≠ 0) under which the answer holds. Returns a JSON object: status (answer | unknown | no-solution | nonelementary | error | timeout), result (S-expression), pretty (math-language form), note, conditions (when the answer is valid, e.g. a ≠ 0), assumptions, certificate (only with certificate=true), steps, warnings, output, error.
| Name | Type | Req | Description |
|---|---|---|---|
| certificate | boolean | – | Include a verification of the answer in the 'certificate' field (default false): derivative check for integrate, substitution check for solve, equivalence check for simplify/expand/factor/together/ap… |
| equations | string | yes | Equation "x^2 - 5x + 6 = 0" (an expression means '= 0'), or a vector of equations "[x + y = 3, x - y = 1]". |
| lang | string | – | Language of step titles and comments (used with steps): "ru" (default) or "en". The rule ids and the formulas are language-independent. A step without an English translation keeps its Russian text an… |
| max_chars | integer | – | Truncate result/pretty to this many characters (default 20000, max 200000); truncation is reported in 'warnings'. |
| steps | string | – | Include the step-by-step solution in the 'steps' field (a tree; titles and comments are in Russian unless lang="en"): none (default), brief (main top-level steps only), full (the whole tree: depth ≤… |
| syntax | string | – | Input syntax of expression arguments: "math" (default; infix: x^2, sqrt(x), pi, ∞, a = b) or "lisp" (S-expressions). |
| timeout_s | integer | – | Time limit in seconds (default 60, max 600). On expiry the computation is interrupted, status is "timeout"; the session stays usable. |
| vars | string | yes | Unknown "x", or a vector of unknowns "[x, y]" for a system. |
No output schema declared.
No examples provided.
sum ~666
Symbolic summation (step 21l.7): Faulhaber for polynomials, Gosper/Abramov for hypergeometric and rational terms, Zeilberger + rsolve for binomial sums (sum(C(n,k),k,0,n) = 2^n). The answer is a closed form, or a recurrence with initial values when no hypergeometric closed form exists (Apéry numbers); the certificate verifies the answer by direct summation. Lower bound 'from' defaults to 0; upper bound 'to' is required (usually n). Returns a JSON object: status (answer | unknown | no-solution | nonelementary | error | timeout), result (S-expression), pretty (math-language form), note, conditions (when the answer is valid, e.g. a ≠ 0), assumptions, certificate (only with certificate=true), steps, warnings, output, error.
| Name | Type | Req | Description |
|---|---|---|---|
| certificate | boolean | – | Include a verification of the answer in the 'certificate' field (default false): derivative check for integrate, substitution check for solve, equivalence check for simplify/expand/factor/together/ap… |
| expr | string | yes | Expression in the math language, e.g. "x^2*sin(x) + exp(-x)" (with syntax="lisp": an S-expression, e.g. "(* (^ x 2) (sin x))"). |
| from | string | – | Lower bound (math language; default 0). |
| lang | string | – | Language of step titles and comments (used with steps): "ru" (default) or "en". The rule ids and the formulas are language-independent. A step without an English translation keeps its Russian text an… |
| max_chars | integer | – | Truncate result/pretty to this many characters (default 20000, max 200000); truncation is reported in 'warnings'. |
| steps | string | – | Include the step-by-step solution in the 'steps' field (a tree; titles and comments are in Russian unless lang="en"): none (default), brief (main top-level steps only), full (the whole tree: depth ≤… |
| syntax | string | – | Input syntax of expression arguments: "math" (default; infix: x^2, sqrt(x), pi, ∞, a = b) or "lisp" (S-expressions). |
| timeout_s | integer | – | Time limit in seconds (default 60, max 600). On expiry the computation is interrupted, status is "timeout"; the session stays usable. |
| to | string | yes | Upper bound (math language; usually n). |
| var | string | yes | Summation variable, e.g. "k". |
No output schema declared.
No examples provided.
together ~534
Combine a sum of fractions into one fraction numerator/denominator in lowest terms: 1/x + 1/y gives (x + y)/(x*y). Returns a JSON object: status (answer | unknown | no-solution | nonelementary | error | timeout), result (S-expression), pretty (math-language form), note, conditions (when the answer is valid, e.g. a ≠ 0), assumptions, certificate (only with certificate=true), steps, warnings, output, error.
| Name | Type | Req | Description |
|---|---|---|---|
| certificate | boolean | – | Include a verification of the answer in the 'certificate' field (default false): derivative check for integrate, substitution check for solve, equivalence check for simplify/expand/factor/together/ap… |
| expr | string | yes | Expression in the math language, e.g. "x^2*sin(x) + exp(-x)" (with syntax="lisp": an S-expression, e.g. "(* (^ x 2) (sin x))"). |
| lang | string | – | Language of step titles and comments (used with steps): "ru" (default) or "en". The rule ids and the formulas are language-independent. A step without an English translation keeps its Russian text an… |
| max_chars | integer | – | Truncate result/pretty to this many characters (default 20000, max 200000); truncation is reported in 'warnings'. |
| steps | string | – | Include the step-by-step solution in the 'steps' field (a tree; titles and comments are in Russian unless lang="en"): none (default), brief (main top-level steps only), full (the whole tree: depth ≤… |
| syntax | string | – | Input syntax of expression arguments: "math" (default; infix: x^2, sqrt(x), pi, ∞, a = b) or "lisp" (S-expressions). |
| timeout_s | integer | – | Time limit in seconds (default 60, max 600). On expiry the computation is interrupted, status is "timeout"; the session stays usable. |
No output schema declared.
No examples provided.
undeclare ~340
Remove all declarations of a symbol (it becomes an arbitrary complex number again). Returns a JSON object: status (answer | unknown | no-solution | nonelementary | error | timeout), result (S-expression), pretty (math-language form), note, conditions (when the answer is valid, e.g. a ≠ 0), assumptions, certificate (only with certificate=true), steps, warnings, output, error.
| Name | Type | Req | Description |
|---|---|---|---|
| lang | string | – | Language of step titles and comments (used with steps): "ru" (default) or "en". The rule ids and the formulas are language-independent. A step without an English translation keeps its Russian text an… |
| max_chars | integer | – | Truncate result/pretty to this many characters (default 20000, max 200000); truncation is reported in 'warnings'. |
| steps | string | – | Include the step-by-step solution in the 'steps' field (a tree; titles and comments are in Russian unless lang="en"): none (default), brief (main top-level steps only), full (the whole tree: depth ≤… |
| symbol | string | yes | Symbol name, e.g. "x". |
| timeout_s | integer | – | Time limit in seconds (default 60, max 600). On expiry the computation is interrupted, status is "timeout"; the session stays usable. |
No output schema declared.
No examples provided.
How do I install the Qedra MCP server?
Qedra runs locally as a container image, launched with docker run --rm -i ghcr.io/evgwpw/qedra:1.109.7.11. Ready-made configuration for Claude, Cursor, VS Code, Codex and 3 more is on this page, copied from each client's own documentation.
oci · ghcr.io/evgwpw/qedra
claude mcp add evgwpw-qedra -- docker run --rm -i ghcr.io/evgwpw/qedra:1.109.7.11
What is the Qedra MCP server?
Qedra is an MCP server listed in the public MCP registry as io.github.evgwpw/qedra. Computer algebra with verifiable answers. This page covers its container image (ghcr.io/evgwpw/qedra).
Is the Qedra MCP server safe to use?
Qedra scores 39 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the Qedra MCP server expose?
Qedra exposes 23 tools: math, evaluate, simplify, diff, integrate, and 18 more. Their descriptions and schemas cost roughly 11,245 tokens of context every time the server is loaded.
Is the Qedra MCP server still maintained?
Qedra is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.
What licence is the Qedra MCP server under?
Qedra declares the 0BSD licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.