Archerkattri/mathlas

Archerkattri/mathlas

от archerkattri
MCP сервер для математических вычислений - даёт ИИ надёжный поиск теорем, проверку численных и формальных утверждений, идентификацию констант и последовательностей. Без API ключа, возвращает проверяемые данные. Полезен разработчикам, строящим агентные пайплайны.

mathlas

mathlas

PyPI DOI Glama score License Python HF dataset

An airtight-math tool an AI uses — no LLM, no API key, free. Plug it into Claude Code, Cursor, or any MCP client. The AI is the brain; mathlas is the hands — it gives the AI the capabilities it lacks and returns data (candidates, verdicts, checklists, scaffolds) for the AI to reason over. Apache-2.0. The code is free for any use; published corpus/index artifacts carry their own per-source terms (CC-BY/CC0).

A real mathlas tool session: verify_formal returns VERIFIED_PROOF, then REFUTED with the kernel's verbatim error, then REJECTED for a sorry hole, all from the real Lean 4.31.0 kernel; identify_constant recovers pi**2/6 to 50 digits via PSLQ
Every verdict from the real Lean 4.31.0 kernel / PSLQ + an independent re-eval — no LLM inside. Real in-process tool outputs, captured by assets/gen/capture_outputs.py.


Is this for you?

  • You use Claude Code / Cursor and want your AI to stop hallucinating mathsearch_existing_math finds the real theorem from a 3.68M-doc index; verify_numeric and verify_formal check claims with zero hallucination risk.
  • You have a numeric constant or integer sequence you can't identifyidentify_constant runs PSLQ + closed-form matching (50-digit precision); identify_sequence does an exact OEIS term-match.
  • You need the formal (Lean/mathlib) name of a resultsearch_formal_math proxies the public Loogle + LeanSearch services and returns declaration names + types, provenance-labeled.
  • You're building an agent pipeline that needs airtight math in the loop — all 12 tools are pure data-returning MCP tools, no LLM inside, composable with any framework.
Инструменты были проиндексированы:
add_finding

Загружает найденный в вебе результат в рабочий корпус mathlas, чтобы search_existing_math сразу возвращал его (provenance 'web_added'; BM25 всегда - без загрузки модели; полный dense retrieval тоже, если передать dense_vec, встроенный в пространство обслуживаемого индекса). Используйте после веб-поиска согласно search_directive. Аргументы: statement, slogan, source, необязательный name, необязательный dense_vec.

Добавляет результат веб-поиска в живой корпус.

Параметры
  • dense_vecnumber[]

    OPTIONAL dense embedding of the slogan, computed BY YOU (the AI) with the SAME model the served index uses, length == the served index dim. Storing it gives the finding full dense+BM25 retrieval (found even when wording differs from the query). NO model is loaded by mathlas. Omit for BM25-only.

  • namestring

    optional name/title of the result

  • sloganstringобязательный

    a short natural-language denotation of it (what it says)

  • sourcestringобязательный

    where it came from: a URL / arXiv id / citation

  • statementstringобязательный

    the web-found result's statement (the real text)

applicability_checklistтолько чтениеидемпотентный

Декомпозирует формулировку теоремы-кандидата на атомарные предусловия и заключение, чтобы вы могли проверить их одно за другим в контексте вашей задачи (выявляет ошибочные применения, например, использование теоремы для замкнутого интервала на открытом интервале). Используйте после поиска, прежде чем полагаться на какого-либо кандидата. Аргументы: candidate_statement (текст формулировки результата).

Контрольный список применимости

Параметры
  • candidate_statementstringобязательный

    the candidate result's statement

conjecture_relationтолько чтениеидемпотентный

Выдвигает гипотезы о соотношениях для вещественной константы, в стиле Ramanujan-Machine: PSLQ по обширному базису и поиск по цепным дробям/рекуррентным соотношениям; каждый кандидат численно ПРОВЕРЕН до >= 25 цифр, но НЕ доказан (источник: 'conjectured_relation'). Используйте, когда identify_constant возвращает UNIDENTIFIED. Аргументы: value (десятичная строка, МНОГО цифр), max_terms (по умолчанию 16), cf_depth (по умолчанию 200).

Выдвигает гипотезы о соотношениях (Ramanujan Machine)

Параметры
  • cf_depthinteger

    continued-fraction evaluation depth (default 200)

  • max_termsinteger

    max PSLQ basis vector length (default 16; cost grows fast)

  • valuestringобязательный

    the real constant as a decimal string (give MANY digits; PSLQ/CF search needs >16)

funsearch

Изолированная среда поиска программ (FunSearch): action='evaluate' оценивает ВАШУ программу на Python для problem_id ('cap_set' или 'online_bin_packing') в песочнице без сети/с таймаутом/с rlimit; action='register' сохраняет оценённую программу в БД MAP-Elites; action='status' возвращает лучшие программы и few-shot контекст для написания следующего варианта. Используйте для итеративной эволюции программ: ВЫ - генератор, mathlas - детерминированный оценщик. Аргументы: action, problem_id, затем program_src (evaluate/register), score + behavior (register), timeout_s (evaluate), top_k (status).

Обвязка FunSearch (evaluate/register/status)

Параметры
  • actionenumобязательный

    'evaluate' = sandbox-score program_src; 'register' = store a scored program; 'status' = best programs + few-shot context

  • behaviornumber | string[]

    (register) the behaviour descriptor from action='evaluate' (selects the MAP-Elites cell)

  • problem_idstringобязательный

    the problem: 'cap_set' or 'online_bin_packing'

  • program_srcstring

    (evaluate/register) the candidate Python program source — YOU write it; it must define the problem's entry point

  • scorenumber

    (register) the score that action='evaluate' returned

  • timeout_snumber

    (evaluate) hard wall-clock timeout seconds (default 10)

  • top_kinteger

    (status) elite programs in the few-shot (default 3)

identify_constantтолько чтениеидемпотентный

Безошибочно определяет замкнутую форму действительного числа: PSLQ + поиск по замкнутым формам, каждый кандидат независимо перепроверяется с точностью до 50+ знаков, в противном случае честно указывается UNIDENTIFIED. Используйте, когда у вас есть числовая константа и вы хотите узнать, что это ТАКОЕ. Args: value (десятичная строка, укажите МНОГО цифр, >16), optional basis (имена констант, например ['pi','e']).

Определяет константу (в замкнутой форме).

Параметры
  • basisstring[]

    optional constant basis, e.g. ["pi","e","catalan"]

  • valuestringобязательный

    the real value as a decimal string (give many digits, >16)

identify_sequenceтолько чтениеидемпотентный

Сопоставляет целочисленную последовательность с ЛОКАЛЬНОЙ копией OEIS по ТОЧНОМУ совпадению подряд идущих членов (без нечёткого сопоставления; честно возвращает UNDETERMINED, если файлы данных отсутствуют). Используется, когда у вас есть не менее 4 целочисленных членов и вы хотите получить именованную последовательность. Аргументы: terms (список целых чисел), max_results (по умолчанию 5).

Определяет целочисленную последовательность (OEIS)

Параметры
  • max_resultsinteger

    max OEIS matches to return (default 5)

  • termsinteger[]обязательный

    the integer sequence to identify, e.g. [1,1,2,3,5,8,13,21] (give >= 4 terms)

mapping_scaffoldтолько чтениеидемпотентный

Строит каркас «потребности<->гарантии» (структурированные вопросы + шаблон для заполнения) между вашей проблемой и кандидатным результатом. Используется, когда применимость неочевидна и вам нужна структура для оценки (оценка остаётся за вами). Аргументы: problem, candidate_statement.

Каркас сопоставления потребностей и гарантий

Параметры
  • candidate_statementstringобязательный

    a candidate existing result's statement

  • problemstringобязательный

    the problem to solve

search_directiveтолько чтениеидемпотентный

Получает СТРУКТУРИРОВАННЫЙ план веб-поиска для задачи: строки запроса arXiv, подразделы/категории, конкретные результаты, которые нужно искать, и какие другие инструменты mathlas запускать; mathlas НЕ выполняет веб-запросов (ВЫ ищете, затем передаёте результаты обратно через add_finding). Используйте, когда локальный индекс не дал результата. Аргументы: problem (описание).

Директива веб-поиска (только план)

Параметры
  • problemstringобязательный

    a problem / result description to build a web-search plan for

search_existing_mathтолько чтениеидемпотентный

Находит существующие теоремы и результаты для задачи из индекса mathlas на 3,68 млн документов (dense + BM25 + RRF, объединяется с любыми свежими результатами web_added). Используйте в первую очередь для любого вопроса вида «известная математика решает это?»; затем вызывайте applicability_checklist для перспективных кандидатов. Аргументы: query (описание задачи или результата), k (по умолчанию 10), необязательный corpus_dir (parquet-файлы набора данных; пропустите, чтобы использовался предсобранный индекс или исходный корпус), необязательные source_filter / source_weights, чтобы уменьшить вес источников корпуса или исключить их. Например, исключите документы, извлечённые из веба, когда ищете канонические формулировки теорем.

Ищет существующую математику (mathlas index)

Параметры
  • corpus_dirstring

    optional dir of open theorem dataset parquets; omit to use the served index / built-in seed corpus

  • kinteger

    number of candidates (default 10)

  • querystringобязательный

    a problem / result description

  • source_filterobject

    optional hard include/exclude of corpus sources, e.g. {"exclude": ["dolma"]} to drop web-mined docs when looking for canonical theorem statements. Keys: 'include' and/or 'exclude', values = lists drawn from arxiv / dolma / stacks / proofwiki / other. Default off (no behaviour change).

  • source_weightsobject

    optional per-source score down-weighting, e.g. {"dolma": 0.5} to soft-demote web-mined docs (weight 0 = exclude). Source keys as in source_filter; weights >= 0 multiply the fused RRF score. Default off (no behaviour change). Note: down-weighting a source hurts queries whose true target IS that source — a per-query-intent knob, not a global default.

search_formal_mathтолько чтениеидемпотентныйвнешний мир

Находит ОБЪЯВЛЕНИЯ mathlib (имя + тип) через публичные сервисы Loogle (запросы по шаблону или типу, например '?a * ?b = ?b * ?a') и LeanSearch (запросы на естественном языке); это ЕДИНСТВЕННЫЙ инструмент, который сам обращается в интернет. Честно сообщает 'service unavailable', если сервис недоступен (хотя при этом выдаётся кэшированный ответ на тот же запрос возрастом <= 7 дней, с явной пометкой 'cached' и указанием его возраста). Используйте, когда нужно формальное имя/тип результата в Lean, например перед написанием сниппета verify_formal. Аргументы: query, k (по умолчанию 10), backend ('auto'|'loogle'|'leansearch').

Ищет формальную математику (Loogle/LeanSearch).

Параметры
  • backendenum

    'loogle' = pattern/type, 'leansearch' = natural language, 'auto' = both (default)

  • kinteger

    max merged hits (default 10)

  • querystringобязательный

    natural language (leansearch) or a Loogle pattern/type query

verify_formalтолько чтениеидемпотентный

Запускает НАСТОЯЩЕЕ ядро Lean 4 (БЕЗ LLM). Два режима: (1) передайте lean (полный фрагмент, например 'example : 2 + 2 = 4 := rfl') для проверки типов как есть; (2) передайте proof для ПРОВЕРКИ ДОКАЗАТЕЛЬСТВА: тогда statement должен быть пропозицией Lean 4, а proof - вашим доказательством (терм или тактический блок 'by ...'); mathlas строит theorem _mathlas_check : <statement> := <proof>, и ядро возвращает proof_status VERIFIED_PROOF / REFUTED (в kernel_error содержится точная жалоба ядра, используйте её для исправления доказательства и повторного вызова) / UNDETERMINED (нет toolchain / таймаут / неразрешимый импорт, честно, никогда не подделывает). sorry/admit ОТКЛОНЯЮТСЯ. mathlas никогда не пишет доказательства, только проверяет их. Сначала найдите имена деклараций через search_formal_math. Аргументы: statement, lean?, proof?.

Проверяет формальные доказательства (настоящее ядро Lean).

Параметры
  • leanstring

    Lean 4 snippet to kernel-check as-is, e.g. "example : 2 + 2 = 4 := rfl" (omit both this and proof and the verdict is an honest UNDETERMINED — statement text alone is not checkable)

  • proofstring

    YOUR Lean 4 proof of statement — a term ('rfl') or tactic block ('by\n intro n\n rfl'). Checked by the real kernel; on REFUTED, repair using kernel_error and re-call. sorry/admit holes are rejected.

  • statementstringобязательный

    the claim being checked; with proof it MUST be the Lean 4 proposition to prove, e.g. '∀ n : Nat, n + 0 = n'

verify_numericтолько чтениеидемпотентный

Проверяет с абсолютной надёжностью, что выражение в замкнутой форме равно числовому значению: независимо пересчитывает его в sympy с повышенной точностью и подтверждает результат только при совпадении >= 20 значащих цифр. Используйте перед утверждением любого числового тождества. Аргументы: value (строка десятичного числа), closed_form (например, 'pi**2/6', 'zeta(3)').

Проверяет числовое утверждение (строго).

Параметры
  • closed_formstringобязательный

    a closed-form expression, e.g. "pi**2/6" or "zeta(3)"

  • valuestringобязательный

    the value as a decimal string

Похожие MCP-сервера

maxim-saplin/mcp_safe_local_python_executor

maxim-saplin/mcp_safe_local_python_executor

MCP сервер для безопасного локального выполнения Python кода от LLM. Основан на LocalPythonExecutor от Hugging Face, не требует Docker, ограничивает импорты и файловые операции. Запускается через uv - замена Code Interpreter для Claude Desktop и MCP клиентов.

Python48
endiagram/mcp

endiagram/mcp

MCP сервер для детерминированного структурного анализа систем на основе теории графов. Помогает инженерам проверять структуру, инварианты и живость систем. Каждый результат подтверждён математическ...

JavaScript8
rikarazome/prolog-reasoner

rikarazome/prolog-reasoner

MCP-сервер, подключающий SWI-Prolog как логический калькулятор для LLM. Выполняет запросы на Prolog, решает комбинаторные задачи, выдаёт прозрачные цепочки рассуждений. Полезен разработчикам AI-аге...

Python11
mumez/pharo-smalltalk-interop-mcp-server

mumez/pharo-smalltalk-interop-mcp-server

MCP-сервер для взаимодействия с локальным образом Pharo Smalltalk: выполняет код, ищет классы и методы, управляет пакетами, запускает тесты и отлаживает UI. Незаменим для разработчиков на Pharo, ра...

Python12
merterbak/Grok-MCP

merterbak/Grok-MCP

MCP-сервер для интеграции с xAI Grok: агентные вызовы инструментов (веб-поиск, выполнение кода), генерация изображений и видео, анализ изображений через зрение, работа с файлами и stateful-чаты с с...

Python52
ofershap/real-browser-mcp

ofershap/real-browser-mcp

MCP-сервер и Chrome-расширение, которые подключают AI-агента к вашему реальному браузеру — с сохранёнными сессиями и куками. Разработчики могут поручать агенту клики, ввод текста, скриншоты и прове...

JavaScript50
© Каталог MCP, 2026. Все права защищены.
Проект не аффилирован с Anthropic и любыми упомянутыми продуктами.
Все названия и торговые марки принадлежат их владельцам.
Контакты для связи: hi@mcp-katalog.ru

Лука Никитин