Qedra

io.github.evgwpw由 GitHub 账号 evgwpw 发布v1.109.7.11更新于 Nov 4, 2026

Computer algebra with verifiable answers

已验证STDIO仅桌面开发者工具AI 与机器学习

概览

AI 生成的概览

Qedra 是一个以 MCP 服务器形式提供的本地计算机代数系统,让助手获得可验证的符号数学结果,并附带步骤与证书。

可以做什么
  • 进行符号计算:积分(Risch 算法)、极限、级数、求和、递推、常微分方程、方程求解与化简
  • 处理代数与线性代数:因式分解、Gröbner 基、Galois 群、代数数、Jordan 标准形、LP/ILP
  • 校验结果:每个回答都带状态(answer、unknown、nonelementary、error)、条件,并可按需返回步骤与证书
  • 声明假设并判断两个表达式是否等价
  • 在沙箱限制下从磁盘加载数学文件或 Lisp 代码
适用场景
适合需要可信符号数学结果的场景,例如积分、极限、级数、常微分方程、多项式方程组,并要求给出步骤或如实说明未解出而不是编造答案。适用于桌面端的 Claude Desktop 及其他 MCP 客户端。
运行要求
以本地 stdio 进程运行,需用 --mcp 参数启动。可通过 MCPB 安装包(自包含,无需 .NET)、Docker 镜像或 NuGet 工具(需要 .NET 10)安装。未声明任何账号、API 密钥或环境变量。
安装前请注意
服务器可通过 load 与 load-math 工具读取文件;MCP 模式下沙箱默认开启,可用 --unsafe 关闭。README 说明沙箱只防 LLM 误操作,不防恶意攻击者,因为解释器与宿主在同一进程。使用 NuGet 版本需要 .NET 10 SDK。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Qedra,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

Qedra

Английская версия: README.en.md.

Qedra — система компьютерной алгебры на собственном диалекте Lisp (F# / .NET 10). Главное — ответы, которым можно доверять: каждый результат проверяется независимо, нерешённое честно помечается, а решения можно разобрать по шагам. Обычная задача считается за доли секунды, трудная (Риш, Грунц, Ковачич) — за секунды.

Что это

  • Проверяемые ответы. Первообразная проверяется дифференцированием, решение уравнения — подстановкой в исходное уравнение, суммы и рекуррентности — численным оракулом. В --json и MCP это поле certificate.
  • Доказанные отказы. Если элементарной первообразной нет, алгоритм Риша это доказывает: status: nonelementary — это ответ, а не сбой. Если задача не решена, возвращается status: unknown с причиной, а не выдуманный результат.
  • Пошаговые решения. steps в --json и MCP показывает правило и формулу на каждом шаге (по-русски и по-английски).
  • Два входа. Математический язык (--math, файлы .mth) — формулы как на бумаге; Lisp — полный доступ к библиотеке.
  • Встраивание. MCP-сервер для Claude Desktop и других клиентов, --json для агентов, браузерная версия.

Умеет: интегрирование (Риш, рациональные функции, специальные функции, определённые интегралы), пределы (Грунц), ряды, символьные суммы и рекуррентности, ОДУ (включая Ковачича и решения через специальные функции), алгебру (факторизация, Грёбнер, группы Галуа, алгебраические числа), линейную алгебру и жорданову форму, LP/ILP, теорию чисел с сертификатами, интервальную арифметику и графики.

Установка

Готовые сборки — в Releases: qedra-1.109.7.11-win-x64.zip, qedra-1.109.7.11-linux-x64.tar.gz, qedra-1.109.7.11-osx-x64.tar.gz, qedra-1.109.7.11-osx-arm64.tar.gz. Они самодостаточны: установленный .NET не нужен. Распакуйте архив и запустите qedra (qedra.exe в Windows); рядом лежит Lisp.exe — тот же запускатель под прежним именем.

$ qedra --versionQedra 1.109.7.11$ qedra --math -e "integrate(x^2, x)"1/3*x^3

Из исходников нужен .NET 10 SDK:

dotnet build Lisp.slnxdotnet test Lisp.slnxsrc/Lisp.Host/bin/Debug/net10.0/Lisp.exe            # REPL: Lisp; --math — математический режим

Примеры

Каждый вывод ниже получен запуском qedra --math -e "…" на этой версии.

Неопределённый интеграл:

$ qedra --math -e "integrate(x*exp(x), x)"x*exp(x) - exp(x)

Неэлементарный интеграл: ответ — доказательство, а не ошибка (в --json видно status: nonelementary и причину в note):

$ qedra --math -e "integrate(exp(x^2), x)"integrate(exp(x^2), x)

Дифференциальное уравнение:

$ qedra --math -e "dsolve(y' + y = x, y(x))"y(x) = (C1 + x*exp(x) - exp(x))*exp(-x)

Уравнение и система многочленов:

$ qedra --math -e "solve(x^2 - 5*x + 6 = 0, x)"{2, 3}$ qedra --math -e "groebner([x^2 - y, y^2 - x], [x, y])"[x - y^2, -y + y^4]

Предел и разложение на множители:

$ qedra --math -e "limit(sin(x)/x, x, 0)"1$ qedra --math -e "factor(x^4 - 1)"(-1 + x)(1 + x)(1 + x^2)

Машиночитаемый ответ: одна строка JSON на запрос (поле timing.ms зависит от машины).

$ echo '{"op":"math","code":"diff(x^3 - 3*x, x)"}' | qedra --json{"status":"answer","result":"(+ -3 (* 3 (^ x 2)))","pretty":"-3 + 3x^2","latex":"-3 + 3x^{2}","note":null,"conditions":null,"assumptions":null,"certificate":null,"steps":null,"warnings":null,"output":"","timing":{"ms":71,"timeout":false},"ok":true,"error":null,"stack":null}

Больше примеров с эталонами — в examples/; они выполняются тестами.

MCP

qedra --mcp — MCP-сервер на stdio. Подключение в Claude Desktop (claude_desktop_config.json) или любом клиенте:

json
{  "mcpServers": {    "qedra": {      "command": "C:\\path\\to\\qedra.exe",      "args": ["--mcp"]    }  }}

Инструменты math, simplify, integrate, sum, solve, limit, series, groebner, equivalent, declare и другие возвращают единый ответ: status (answer / unknown / nonelementary / error), результат, conditions, по запросу — steps и certificate. Однако серверу доступно чтение файлов через load, поэтому по умолчанию включена песочница (см. ниже); параметры — docs/mcp.md.

Установка как MCP-сервер

  • MCPB (Claude Desktop, без .NET): скачайте qedra-1.109.7.11.mcpb из Releases и откройте файл — клиент предложит установку. Бандл самодостаточен: Windows x64, Linux x64, macOS x64/arm64.
  • Docker: docker run -i --rm ghcr.io/evgwpw/qedra — сервер на stdio; имя в реестре MCP — io.github.evgwpw/qedra.
  • NuGet (.NET tool, нужен .NET 10): dnx Qedra --mcp (или dotnet tool install -g Qedra, затем qedra --mcp).
json
{  "mcpServers": {    "qedra": { "command": "docker", "args": ["run", "-i", "--rm", "ghcr.io/evgwpw/qedra"] }  }}

Для NuGet: "command": "dnx", "args": ["Qedra", "--mcp"].

Песочница

qedra --sandbox [--allow-dir <путь>]... ограничивает load/load-math каталогом библиотеки и указанными каталогами во всех режимах: файл, -e, --math, --json, REPL. В режиме --mcp песочница включена по умолчанию, снимает её --unsafe. Это защита от ошибок LLM (лишний load, чтение чужого файла), а не изоляция ОС: интерпретатор и хост — один процесс, от злоумышленника песочница не защищает.

Браузерная версия

https://evgwpw.github.io/Qedra/ — тот же вычислитель, собранный в WebAssembly (AOT), с вводом формул и каталогом примеров. Локальная сборка: web/build.sh (или web/build.cmd), запуск — web/start.sh / web/start.cmd.

Документация

  • docs/math-language.md — входной математический язык: операции, функции, шаги, JSON-API.
  • docs/lisp-library-guide.md — справочник библиотеки Lisp (сверяется тестом с кодом).
  • docs/lisp-dialect.md, docs/lisp-modules.md — диалект и модули.
  • docs/mcp.md — MCP-сервер: инструменты, безопасность, протокол.
  • docs/guide/core.md — короткая справка для LLM (по-английски), карточки тем — в docs/guide/topics/.

Как сделано

Код написан в основном LLM-агентами по заданиям и под ревью автора: архитектура, выбор алгоритмов, приёмка — человек. Корректность не основана на доверии к генерации: каждый результат проверяется независимо (производная от первообразной, подстановка решения, сертификаты сумм и доказательств), набор — более 3300 тестов.

Лицензия

0BSD — см. LICENSE. Тексты сторонних библиотек браузерной версии — THIRD-PARTY-NOTICES.md.

来源:README.md,提交 488a68b

工具

0
SourceWeft 曾在隔离沙箱中以无凭据方式启动该软件包一次,以列出其工具,但未能完成:该软件包类型无法在沙箱中运行。

版本历史

1
  1. v1.109.7.11最新Nov 4, 2026

评分

已满足适用检查项的 40%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分

    请在仓库或注册中心条目中声明许可证。