mathcad-prime-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mathcad-prime-mcpRecalculate my worksheet and verify all results and errors from the file"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mathcad-prime-mcp
MCP-сервер поверх штатного Automation API PTC Mathcad Prime 12
(Ptc.MathcadPrime.Automation.dll, COM ProgID MathcadPrime.Application).
Даёт Claude открывать .mcdx-документы, читать/писать переменные, помеченные
как Input/Output, и сохранять файл.
Важное ограничение
Automation API видит только те переменные, которые в самом документе
Prime явно помечены как Input или Output variable (ПКМ на переменной ->
"Set as Input/Output Variable" на ленте Automation). Обычные переменные без
такой метки через mathcad_get_variables не появятся и не читаются/пишутся.
Related MCP server: advanced-math-mcp
Особенность процесса
MathcadPrime.exe - синглтон на сессию Windows: повторные подключения COM
попадают в один и тот же процесс, включая уже открытый пользователем вручную.
mathcad_quit убивает процесс только если сервер сам его запустил (было
подтверждено тестом - если Prime уже был открыт до первого вызова, quit
ничего не закрывает).
Инструменты
mathcad_open(path)- открыть/переиспользовать документ, список Input/Outputmathcad_list_worksheets()- все открытые в текущем инстансе Prime документыmathcad_get_variables(path)- обновить список алиасов Input/Outputmathcad_set_value(path, name, value, units="")- задать скалярmathcad_set_string(path, name, value)- задать строкуmathcad_set_batch(path, values, timeout_ms=30000)- пакетно задать несколько значений и пересчитать разомmathcad_get_value(path, name, source="output"|"input")- универсальное чтение (число/строка/матрица)mathcad_get_value_as(path, name, units)- чтение output с конвертацией единицmathcad_get_matrix/mathcad_set_matrix- матрицыmathcad_recalculate(path)- форсировать пересчёт (Synchronize)mathcad_save(path)/mathcad_save_as(path, new_path)mathcad_quit()- безопасно закрыть только свой процесс
Установка
uv syncПри ошибке uv Failed to write to the client cache - сломан junction
AppData\Local\uv, обходить через UV_CACHE_DIR=<своя папка> uv sync.
Зарегистрирован в ~/.claude.json -> mcpServers.mathcad-prime
(.venv\Scripts\python.exe -m mathcad_prime_mcp.server). Нужен перезапуск
Claude Code, чтобы сервер подхватился.
Что проверено вживую
Открытие реального документа (lab1.mcdx), чтение метаданных/списка
Input-Output, безопасность mathcad_quit (не трогает чужой уже открытый
процесс), корректность кириллических путей через COM. set_value /
get_value / batch / матрицы протестированы только по сигнатурам API (нет
под рукой документа с размеченными Input/Output переменными) - если что-то
пойдёт не так на реальном расчёте, смотреть сюда первым делом.
Авторские инструменты: лист целиком из текста
Второй слой сервера (tools_ws.py + пакет ws/) обходит ограничение выше.
Он не пользуется Automation API для чтения значений, а работает с самим
файлом: .mcdx это zip, формулы лежат в mathcad/worksheet.xml, а все
посчитанные значения и ошибки Prime складывает в mathcad/result.xml.
Поэтому лист можно собрать из текста и проверить, ни разу не взглянув на
экран.
Инструменты
Инструмент | Что делает |
| синтаксис компактного исходника |
| исходник -> |
| пересчитать и вернуть весь лист текстом: формулы, значения, ошибки |
| числовые данные кривых графика (для расчёта выводов) |
| png расчётной части и каждого графика, обрезанные по содержимому |
| памятка к защите: формулы + значения + пояснения |
Формат исходника
# комментарий
@text 1. Чтение файла и параметры помехи # подпись прямо в листе
S := READWAV("lab4.wav") ; m := floor(max(S)*0.1) ; L := length(S)
@note m - амплитуда шума, 10 процентов от максимума # только в шпаргалку
n := 0..L-1 ; D[n] := rnd(m)-m/2 ; V[n] := S[n]+D[n]
WRITEWAV("out.wav",44100,16,V)= # вычисление, показывает значение
L= ; sk= # вывод значений
@plot x=n y=S[n]:red:2,V[n]:navy:1 xlim=0..200 ylim=0..5 size=620x260
@gap 40Строка это ряд регионов, ; разделяет регионы в ряду. Выражения: + - * / ^,
|x| модуль, f(a,b) вызов, X[i] индекс, a..b диапазон. Греческие имена
по ASCII-псевдонимам: Phi (Хевисайд), pi, sigma, omega, Delta.
Слева от := допустимо имя, X[i] или f(x).
Почему проверка не требует скриншотов
mathcad_verify печатает по строке на регион:
6 sk := stdev(D)
22 sk = -> 183.909
28 график x=n,n y=S[n],V[n] x[0..44099] y[-6368..6368]; y[-6684..6683]
2 b := a+zzz ### ОШИБКА: Эта переменная не определена.Текст ошибки тот же, что показывает Prime. У графиков видны диапазоны данных каждой кривой, то есть корректность кривой проверяется числами.
Как получается ровная вёрстка
Ширину формулы вместе с показанным результатом знает только Prime. Поэтому
mathcad_write собирает лист дважды: после первого пересчёта читает из файла
проставленные Prime actualWidth/actualHeight и раскладывает по ним ровными
колонками. Учитывается и то, что Prime привязывает формулу по базовой линии:
дроби и степени выступают вверх, под них резервируется место.
Подписи в листе
Текстовый блок в Prime 12 это не просто тег: содержимое лежит в отдельной
части-архиве mathcad/xaml/FlowDocumentN.XamlPackage (WPF FlowDocument),
на которую ссылается mathcad/_rels/worksheet.xml.rels, а item-idref
элемента <text> совпадает с Id этой связи. Всё это собирает ws/textblock.py.
Ограничения
rndдаёт новую реализацию при каждом пересчёте: числа в отчёте и в файле совпадут, только если после последнего пересчёта не пересчитывать снова.Если формулы читают файлы по относительному имени (
READWAV,READPRN),.mcdxдолжен лежать рядом с ними; дляmathcad_figuresэтоwork_dir.mathcad_figuresпересчитывает лист, поэтомуWRITEWAV/WRITEPRNв исходнике перезапишут свои файлы новой реализацией шума.Картинки снимаются в масштабе Prime: при 100 % график шириной 610 единиц даёт ~610 px. Для более крупных картинок есть
zoom_clicks.
Схемы Prime
Полезно при расширении: <установка Prime>\Mathcad Converter\schema\*.xsd
описывают worksheet/math (версии 10-30, текущая в файлах 50, но структура
близка). Оттуда взята структура текстового региона.
This server cannot be deployed
Maintenance
Related MCP Connectors
AI-callable calculators and engineering models with real formulas. No hallucinated math.
AI access to Quadratic spreadsheets: open files, run Python/SQL, query connected databases.
PDF tools for Claude: merge, split, compress, convert, OCR & more. Requires a PDFHaul API key.
Read, edit, publish, and preview your pepita websites from Claude.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables Claude to create and manipulate SolidWorks CAD models through natural language commands, automating part creation, sketching, and extrusion.10-
- AlicenseAqualityBmaintenanceEnables advanced mathematics operations including linear algebra, vector math, symbolic computation, and calculus through MCP tools. Designed for use with Claude and other MCP-compatible LLMs.192MIT
- FlicenseNot gradedqualityCmaintenanceGives Claude deep tool-level control over Microsoft Excel files (.xlsx, .xlsm, .csv, .tsv) with 164 tools across 24 modules for reading, writing, formatting, formulas, charts, data analysis, and more.-
- FlicenseNot gradedqualityCmaintenanceEnables Claude to interact with local workspace files through MCP, including listing files, summarizing CSV datasets, generating plots, executing Python scripts, and running allowlisted shell commands from a chat interface.-