Archerkattri/mathlas

Archerkattri/mathlas

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

mathlas

mathlas

PyPI Downloads DOI mcp.so Glama score License Python HF dataset

Available on mcp.so · Glama · listed in awesome-mcp-servers and best-of-lean4.

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 math — search_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 identify — identify_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 result — search_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[]

    ОПЦИОНАЛЬНОЕ плотное встраивание (dense embedding) слогана, вычисленное ВАМИ (ИИ) с помощью ТОЙ ЖЕ модели, которую использует обслуживаемый индекс, длина == размерность обслуживаемого индекса. Его хранение даёт находке полный поиск dense+BM25 (находится даже когда формулировка отличается от запроса). mathlas НЕ загружает никаких моделей. Опустите для режима только BM25.

  • namestring

    Необязательное название/заголовок результата

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

    Краткое описание на естественном языке (то, что оно говорит)

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

    откуда это взялось: URL / arXiv id / ссылка

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

    Формулировка результата, найденного в интернете (реальный текст)

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

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

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

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

    заявление кандидата о результате

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

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

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

Параметры
  • cf_depthinteger

    глубина вычисления непрерывной дроби (по умолчанию 200)

  • max_termsinteger

    Максимальная длина базисного вектора PSLQ (по умолчанию 16; стоимость растёт быстро).

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

    Вещественная константа в виде десятичной строки (укажите МНОГО цифр; для поиска PSLQ/CF требуется >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' — оценивает программу в песочнице и присваивает ей балл; 'register' — сохраняет оценённую программу; 'status' — показывает лучшие программы и few-shot контекст.

  • behaviornumber | string[]

    (Зарегистрируйте) поведенческий дескриптор из параметра action='evaluate' (выбирает ячейку MAP-Elites).

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

    задача: 'cap_set' или 'online_bin_packing'

  • program_srcstring

    (оценить/зарегистрировать) исходный код программы на Python — пишете его ВЫ; он должен определять точку входа задачи.

  • scorenumber

    (Регистрирует) оценку, которую вернуло действие 'evaluate'.

  • timeout_snumber

    (evaluate) жесткий лимит времени ожидания в секундах (по умолчанию 10)

  • top_kinteger

    (статус) элитные программы в few-shot (по умолчанию 3)

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

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

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

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

    Необязательный набор констант, например ["pi","e","catalan"]

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

    действительное значение в виде десятичной строки (укажите много цифр, >16)

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

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

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

Параметры
  • max_resultsinteger

    Максимум возвращаемых совпадений OEIS (по умолчанию 5)

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

    последовательность целых чисел для идентификации, например [1,1,2,3,5,8,13,21] (укажите не менее 4 членов)

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

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

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

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

    утверждение существующего результата-кандидата

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

    Задача, которую нужно решить.

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

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

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

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

    Описание проблемы / результата для составления плана веб-поиска

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

    Необязательный каталог с Parquet-файлами набора данных OpenTheorem; если опущен, используется предоставляемый индекс / встроенный исходный корпус.

  • kinteger

    количество кандидатов (по умолчанию 10)

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

    описание проблемы / результата

  • source_filterobject

    Необязательное жёсткое включение/исключение источников корпуса, например {"exclude": ["dolma"]} для отбрасывания документов, извлечённых из веба, при поиске канонических формулировок теорем. Ключи: 'include' и/или 'exclude', значения — списки из arxiv / dolma / stacks / proofwiki / other. По умолчанию выключено (без изменения поведения).

  • source_weightsobject

    Опциональное понижение веса для отдельных источников, например {"dolma": 0.5} для мягкого понижения веб-документов (вес 0 = исключить). Ключи источников как в source_filter; веса >= 0 умножают объединённый показатель RRF. По умолчанию выключено (без изменений в поведении). Обратите внимание: понижение веса источника вредит запросам, чья истинная цель — именно этот источник; это настройка под конкретный запрос, а не глобальное значение по умолчанию.

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' = шаблон/тип, 'leansearch' = естественный язык, 'auto' = оба (по умолчанию)

  • kinteger

    Максимум объединённых результатов (по умолчанию 10)

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

    Естественный язык (leansearch) или запрос по шаблону/типу Loogle

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 для проверки ядром как есть, например, "example : 2 + 2 = 4 := rfl" (опустите и это, и proof, и вердикт будет честным UNDETERMINED - сам по себе текст утверждения не проверяем)

  • proofstring

    Проверяет доказательство statement в Lean 4: это термин (rfl) или тактический блок (by\n intro n\n rfl). Настоящее ядро проверяет его; при REFUTED исправляет с помощью kernel_error и вызывает заново. Пропуски sorry/admit отклоняются.

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

    Проверяемое утверждение; с proof это ДОЛЖНО быть утверждение на Lean 4, например, '∀ n : Nat, n + 0 = n'

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

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

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

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

    выражение в замкнутой форме, например 'pi**2/6' или 'zeta(3)'

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

    значение в виде десятичной строки

1.5.0основная
1.4.0
1.3.0
1.2.0
1.1.2
1.1.1
1.1.0
1.0.1
1.0.0

Выберите клиент, чтобы установить Archerkattri/mathlas:

Любой клиент

Конфиг добавления MCP сервера стандартный, обычно он не меняется вообще, поэтому подходит практически к любому ИИ клиенту, поддерживающему MCP.

{
  "mcpServers": {
    "archerkattri-mathlas-lylyakrmwv": {
      "command": "uvx",
      "args": [
        "mathlas-mcp"
      ]
    }
  }
}
CursorCursor

Перейдите по ссылке и сервер автоматически будет добавлен в Cursor. Либо откройте/создайте файл ~/.cursor/mcp.json(%USERPROFILE%\.cursor\mcp.json на Windows) и добавьте конфиг сервера:

{
  "mcpServers": {
    "archerkattri-mathlas-lylyakrmwv": {
      "command": "uvx",
      "args": [
        "mathlas-mcp"
      ]
    }
  }
}
VS Code

Создайте .vscode/mcp.json в проекте (ключ верхнего уровня — servers):

{
  "servers": {
    "archerkattri-mathlas-lylyakrmwv": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "mathlas-mcp"
      ]
    }
  }
}

Либо добавьте сервер через терминал:

code --add-mcp "{\"name\":\"archerkattri-mathlas-lylyakrmwv\",\"type\":\"stdio\",\"command\":\"uvx\",\"args\":[\"mathlas-mcp\"]}"
ClaudeClaude Desktop

Откройте Settings → Developer → Edit Config — это откроет файл claude_desktop_config.json:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Впишите сервер и полностью перезапустите Claude Desktop:

{
  "mcpServers": {
    "archerkattri-mathlas-lylyakrmwv": {
      "command": "uvx",
      "args": [
        "mathlas-mcp"
      ]
    }
  }
}
Claude CodeClaude Code

Добавьте сервер одной командой в терминале:

claude mcp add archerkattri-mathlas-lylyakrmwv -- uvx mathlas-mcp

Либо через JSON-конфиг:

claude mcp add-json archerkattri-mathlas-lylyakrmwv "{\"command\":\"uvx\",\"args\":[\"mathlas-mcp\"]}"
CodexCodex

Добавьте сервер командой в терминале:

codex mcp add archerkattri-mathlas-lylyakrmwv -- uvx mathlas-mcp

Либо вручную в ~/.codex/config.toml(%USERPROFILE%\.codex\config.toml на Windows):

[mcp_servers.archerkattri-mathlas-lylyakrmwv]
command = "uvx"
args = ["mathlas-mcp"]
PerplexityPerplexity

MCP доступен подписчикам Perplexity Pro / Max / Enterprise. Локальные серверы — только в приложении для macOS.

  1. Откройте Настройки аккаунта → Connectors.
  2. Установите вспомогательное приложение PerplexityXPC (один раз).
  3. Нажмите Add Connector → вкладка Simple.
  4. В поле Server Name укажите Archerkattri/mathlas, а в поле команды запуска — строку ниже:
uvx mathlas-mcp

Нажмите Save и дождитесь статуса Running.

WindsurfWindsurf

Откройте Windsurf Settings → Cascade → MCP Servers или отредактируйте файл ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "archerkattri-mathlas-lylyakrmwv": {
      "command": "uvx",
      "args": [
        "mathlas-mcp"
      ]
    }
  }
}
ClineCline

В панели Cline нажмите иконку MCP Servers → Configure → Configure MCP Servers (или отредактируйте ~/.cline/mcp.json) и добавьте сервер:

{
  "mcpServers": {
    "archerkattri-mathlas-lylyakrmwv": {
      "command": "uvx",
      "args": [
        "mathlas-mcp"
      ],
      "disabled": false,
      "autoApprove": []
    }
  }
}
Continue

Создайте файл в .continue/mcpServers/ (например archerkattri-mathlas-lylyakrmwv.yaml) или добавьте блок в config.yaml. MCP работает только в режиме agent:

mcpServers:
  - name: archerkattri-mathlas-lylyakrmwv
    command: uvx
    args:
      - "mathlas-mcp"
Zed

Выполните agent: add context server или откройте настройки (zed: open settings file) и добавьте сервер в объект context_servers:

{
  "context_servers": {
    "archerkattri-mathlas-lylyakrmwv": {
      "command": "uvx",
      "args": [
        "mathlas-mcp"
      ]
    }
  }
}

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

abhiphile/fermat-mcp

abhiphile/fermat-mcp

от abhiphile

MCP сервер для математических вычислений: численные и символьные операции + построение графиков. Использует NumPy, SymPy и Matplotlib — полезен инженерам, студентам и аналитикам для быстрых расчётов и визуализации данных.

Python⭐ 21
endiagram/mcp

endiagram/mcp

от dushyant30suthar

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

JavaScript⭐ 8
clawaimail/mcp

clawaimail/mcp

от joansongjr

ClawAIMail - MCP сервер для AI-агентов, предоставляющий почтовые ящики и полный контроль над email через REST API, WebSocket и webhooks. Идеален для разработчиков, строящих агентные рабочие процессы с email.

HTML⭐ 2
clouatre-labs/math-mcp-learning-server

clouatre-labs/math-mcp-learning-server

от clouatre-labs

Образовательный MCP сервер с 17 инструментами для математических вычислений, статистики, работы с матрицами и визуализации. Подходит студентам, преподавателям и разработчикам. Поддерживает облачный хостинг и персистентное рабочее пространство.

Python⭐ 5
Chimera-Protocol/csl-core

Chimera-Protocol/csl-core

от chimera-protocol

MCP-сервер для написания и верификации политик безопасности AI-агентов. Правила описываются в CSL, проходят формальную проверку через Z3 и применяются детерминированно, без оглядки на промпты. Поле...

Python⭐ 27
depwire/depwire

depwire/depwire

от depwire

Depwire – MCP сервер для AI-ассистентов, строящий детерминированный граф зависимостей кода на 16 языках. Позволяет симулировать удаление символов, проверять безопасность и оценивать архитектурное здоровье. Все 23 инструмента работают локально, без отправки кода.

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

Лука Никитин