yusong652/yade-mcp

yusong652/yade-mcp

от yusong652
MCP инструмент для подключения AI-агентов к YADE - DEM движку. Через естественный язык просматривайте API, запускайте симуляции и выполняйте код в консоли. Для инженеров и исследователей, автоматиз...

yade-mcp

yade-mcp header

English | 简体中文

PyPI Downloads GitHub stars Glama License: MIT Python 3.10+

O.engines += [LLM()] # yet another engine.

yade-mcp connects AI agents to YADE — the open-source discrete element method engine — through the Model Context Protocol. Browse API docs, run simulations, and execute code, all through natural conversation.

Your agent doesn't just call tools — it sits at your YADE console, runs long simulations on its own, and stays in sync with what you're doing.

yade-mcp demo

Works with any MCP client — verified with Claude Code, Codex CLI, Gemini CLI, GitHub Copilot CLI, OpenCode, and toyoura-nagisa.

Features

Your agent types, YADE runs

Powered by yade_execute_code

Describe what you want in plain language. The agent types commands into your YADE console — inspecting particles, tweaking parameters, stepping the engine, analyzing results. It reads each output, debugs, and iterates, the same way you do at the console yourself.

Set it running, walk away

Powered by yade_execute_task + yade_check_task_status + yade_interrupt_task

Run a full YADE script as a background task — just like firing off yade script.py, except you don't have to babysit it. The agent watches on its own: tailing the live output, catching errors as they appear, stopping the run gracefully when something looks off, fixing the script, and resubmitting — until the simulation actually finishes.

yade_browse_api

Просматривайте Python API YADE как нативное дерево классов YADE. Дерево строится на реальной иерархии наследования YADE: пути отражают __mro__ класса вплоть до корневой категории. Никаких сокращений: всегда проходите через родителей.

Просматривайте Python API YADE как нативное дерево классов YADE. Дерево строится на реальной иерархии наследования YADE: пути отражают __mro__ класса вплоть до корневой категории. Никаких сокращений: всегда проходите через родителей.

Параметры

  • pathany

    Dot-separated path into YADE's class hierarchy. Navigation is tree-driven (no class-name shortcuts). - None or '': list top-level categories (engine / functor / material / shape / ...) - 'engine': list direct sub-trees of Engine (Dispatcher, GlobalEngine, PartialEngine, ...) - 'engine.GlobalEngine': list GlobalEngine's sub-trees (BoundaryController, Collider, PeriodicEngine, ...) plus its direct leaf classes (NewtonIntegrator, InteractionLoop, ...) - 'engine.GlobalEngine.NewtonIntegrator': full docs for NewtonIntegrator - 'functor.LawFunctor.Law2_ScGeom_FrictPhys_CundallStrack': full docs for a contact law functor Every leaf is reached via its parent-class chain.

yade_check_task_status

Проверить статус и вывод отправленной задачи YADE.

Проверить статус и вывод отправленной задачи YADE.

Параметры

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

    Task ID returned by yade_execute_task

  • skip_newestinteger

    Skip N newest output lines before pagination

  • limitinteger

    Output lines per page

  • filterany

    Only keep output lines containing this text

  • wait_secondsnumber

    Delay before querying (prevents polling too fast). Use 0 for immediate check.

yade_execute_code

Выполняет Python код синхронно в работающем процессе YADE. Возвращает stdout немедленно. Код выполняется в окружении Python YADE, где модули yade уже импортированы; побочные эффекты сохраняются. Этот инструмент остаётся отзывчивым ДАЖЕ ВО ВРЕМЯ выполнения симуляционной задачи (отправленной через yade_execute_task). Используйте его как живой REPL для проверки состояния симуляции в реальном времени — не нужно заранее прописывать print-выражения. Типичные сценарии: - Запрос состояния симуляции: количество тел O.bodies, текущая итерация - Создание/изменение тел, движков, взаимодействий - Чтение или задание свойств материалов - Живая инспекция во время запущенной симуляции (например, проверить тензор напряжений, координационное число, энергетический баланс или сделать скриншот области просмотра, если доступен GUI) - Разработка и REPL-стиль тестирования В отличие от yade_execute_task, этот инструмент работает по принципу «запустил и получил ответ»: ответ содержит полный вывод. Он НЕ отслеживается через yade_list_tasks и не может быть прерван или опрошен. Поведение при таймауте: при таймауте мост пытается прервать выполняемый код. Ответ содержит обёртку ошибки (``ok=false``), где ``error.code`` принимает одно из значений: - ``interrupted`` — код выполнял цикл симуляции (``O.run``) и был аккуратно приостановлен на границе итерации. Для длительных симуляций или решения до равновесия переключитесь на yade_execute_task — он отслеживает прогресс и чисто останавливается через yade_interrupt_task. - ``terminated`` — прерывание вне цикла сработало (инъекция асинхронного исключения); поток pump свободен, но состояние YADE может быть частично изменено кодом, выполнившимся до срабатывания прерывания. Проверьте состояние перед повторной попыткой. - ``timeout`` — прерывание не удалось (код застрял в C-расширении или внутри тика PyRunner запущенной задачи); мост может всё ещё быть заблокирован. Перезапустите, если нет ответа. ПРЕДУПРЕЖДЕНИЕ: Для всего, что займёт больше нескольких секунд, используйте вместо этого yade_execute_task — у него есть корректная отмена через yade_interrupt_task, и он не оставляет дрейф состояния при таймауте. Кроме того, НЕ пишите ``except BaseException:`` в коде…

Выполняет Python код синхронно в работающем процессе YADE. Возвращает stdout немедленно. Код выполняется в окружении Python YADE, где модули yade уже импортированы; побочные эффекты сохраняются. Этот инструмент остаётся отзывчивым ДАЖЕ ВО ВРЕМЯ выполнения симуляционной задачи (отправленной через yade_execute_task). Используйте его как живой REPL для проверки состояния симуляции в реальном времени — не нужно заранее прописывать print-выражения. Типичные сценарии: - Запрос состояния симуляции: количество тел O.bodies, текущая итерация - Создание/изменение тел, движков, взаимодействий - Чтение или задание свойств материалов - Живая инспекция во время запущенной симуляции (например, проверить тензор напряжений, координационное число, энергетический баланс или сделать скриншот области просмотра, если доступен GUI) - Разработка и REPL-стиль тестирования В отличие от yade_execute_task, этот инструмент работает по принципу «запустил и получил ответ»: ответ содержит полный вывод. Он НЕ отслеживается через yade_list_tasks и не может быть прерван или опрошен. Поведение при таймауте: при таймауте мост пытается прервать выполняемый код. Ответ содержит обёртку ошибки (``ok=false``), где ``error.code`` принимает одно из значений: - ``interrupted`` — код выполнял цикл симуляции (``O.run``) и был аккуратно приостановлен на границе итерации. Для длительных симуляций или решения до равновесия переключитесь на yade_execute_task — он отслеживает прогресс и чисто останавливается через yade_interrupt_task. - ``terminated`` — прерывание вне цикла сработало (инъекция асинхронного исключения); поток pump свободен, но состояние YADE может быть частично изменено кодом, выполнившимся до срабатывания прерывания. Проверьте состояние перед повторной попыткой. - ``timeout`` — прерывание не удалось (код застрял в C-расширении или внутри тика PyRunner запущенной задачи); мост может всё ещё быть заблокирован. Перезапустите, если нет ответа. ПРЕДУПРЕЖДЕНИЕ: Для всего, что займёт больше нескольких секунд, используйте вместо этого yade_execute_task — у него есть корректная отмена через yade_interrupt_task, и он не оставляет дрейф состояния при таймауте. Кроме того, НЕ пишите ``except BaseException:`` в коде…

Параметры

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

    Python code to execute in YADE process

  • timeoutinteger

    Console execution timeout in seconds

yade_execute_task

Отправляет Python-скрипт на асинхронное выполнение в YADE. Мгновенно возвращает task_id; скрипт ставится в очередь и выполняется в фоне. Задачи выполняются по одной в порядке отправки (они используют общий процесс YADE и его единственное состояние симуляции), поэтому многоэтапный конвейер можно отправить за один раз — каждый этап запускается после завершения предыдущего. Используйте вспомогательные инструменты для управления жизненным циклом задачи: - yade_check_task_status: опрашивать вывод, прогресс и финальный статус - yade_interrupt_task: остановить выполняющуюся задачу или отменить поставленную в очередь - yade_list_tasks: просматривать историю задач (также показывает порядок очереди) Используйте это для рабочих симуляционных запусков, длительных циклов O.run() и любых операций, которые могут занимать минуты или дольше. Для быстрых запросов и тестирования в стиле REPL используйте yade_execute_code.

Отправляет Python-скрипт на асинхронное выполнение в YADE. Мгновенно возвращает task_id; скрипт ставится в очередь и выполняется в фоне. Задачи выполняются по одной в порядке отправки (они используют общий процесс YADE и его единственное состояние симуляции), поэтому многоэтапный конвейер можно отправить за один раз — каждый этап запускается после завершения предыдущего. Используйте вспомогательные инструменты для управления жизненным циклом задачи: - yade_check_task_status: опрашивать вывод, прогресс и финальный статус - yade_interrupt_task: остановить выполняющуюся задачу или отменить поставленную в очередь - yade_list_tasks: просматривать историю задач (также показывает порядок очереди) Используйте это для рабочих симуляционных запусков, длительных циклов O.run() и любых операций, которые могут занимать минуты или дольше. Для быстрых запросов и тестирования в стиле REPL используйте yade_execute_code.

Параметры

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

    Absolute path to entry Python script for YADE

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

    Brief task purpose

yade_interrupt_task

Останавливает выполняющуюся задачу YADE или отменяет задачу, ожидающую в очереди. Задача, которая ещё не запущена, просто удаляется из очереди и завершается со статусом ``canceled`` (``method`` сообщает ``canceled_while_queued``). Для выполняющейся задачи мост применяет два пути отмены одновременно: - ``flag_only`` - устанавливает флаг прерывания, который тик PyRunner YADE проверяет между итерациями симуляции (корректный путь для задач ``O.run``). - ``flag_and_async_exc`` - дополнительно внедряет исключение ``TaskInterrupt`` в поток скрипта, так что чисто-питоновские бесконечные циклы без ``O.run`` в стеке тоже завершаются. Поле ``method`` в ответе сообщает, какой путь сработал. Если async-exc отклонён (например, целевой поток является фреймом Dummy-N boost::python), ``async_exc_skipped_reason`` объясняет причину. Пространство имён после прерывания: пространство имён YADE ``__main__`` общее для задач и вызовов ``yade_execute_code``. Любые переменные, которые уже определил прерванный скрипт - включая состояние ``O`` - сохраняются. Нет необходимости перезапускать весь скрипт для продолжения работы: проверьте состояние через ``yade_execute_code`` или возобновите с помощью новой ``yade_execute_task``, которая выполняет только оставшуюся логику.

Останавливает выполняющуюся задачу YADE или отменяет задачу, ожидающую в очереди. Задача, которая ещё не запущена, просто удаляется из очереди и завершается со статусом ``canceled`` (``method`` сообщает ``canceled_while_queued``). Для выполняющейся задачи мост применяет два пути отмены одновременно: - ``flag_only`` - устанавливает флаг прерывания, который тик PyRunner YADE проверяет между итерациями симуляции (корректный путь для задач ``O.run``). - ``flag_and_async_exc`` - дополнительно внедряет исключение ``TaskInterrupt`` в поток скрипта, так что чисто-питоновские бесконечные циклы без ``O.run`` в стеке тоже завершаются. Поле ``method`` в ответе сообщает, какой путь сработал. Если async-exc отклонён (например, целевой поток является фреймом Dummy-N boost::python), ``async_exc_skipped_reason`` объясняет причину. Пространство имён после прерывания: пространство имён YADE ``__main__`` общее для задач и вызовов ``yade_execute_code``. Любые переменные, которые уже определил прерванный скрипт - включая состояние ``O`` - сохраняются. Нет необходимости перезапускать весь скрипт для продолжения работы: проверьте состояние через ``yade_execute_code`` или возобновите с помощью новой ``yade_execute_task``, которая выполняет только оставшуюся логику.

Параметры

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

    Task ID returned by yade_execute_task

yade_list_tasks

Выводит отслеживаемые задачи YADE с постраничным разделением. Задачи отображаются от новых к старым. Очередные (ожидающие) задачи выполняются по одной в порядке отправки, поэтому среди ожидающих записей следующей выполняется та, что находится ниже всех в списке.

Выводит отслеживаемые задачи YADE с постраничным разделением. Задачи отображаются от новых к старым. Очередные (ожидающие) задачи выполняются по одной в порядке отправки, поэтому среди ожидающих записей следующей выполняется та, что находится ниже всех в списке.

Параметры

  • skip_newestinteger

    Skip N most recent tasks before listing

  • limitinteger

    Max tasks to return

yade_query_api

Ищет по документации YADE API по ключевым словам (как grep). Возвращает подходящие имена классов/функций с описаниями, отсортированными по релевантности. Используйте yade_browse_api для полной документации конкретного класса. Когда использовать: - У вас есть ключевые слова, но вы не знаете точного имени класса - Примеры: "friction material", "gravity engine", "contact force", "triaxial stress", "sphere create", "hertz mindlin" Связанные инструменты: - yade_browse_api: Получить полную документацию по известному пути класса

Ищет по документации YADE API по ключевым словам (как grep). Возвращает подходящие имена классов/функций с описаниями, отсортированными по релевантности. Используйте yade_browse_api для полной документации конкретного класса. Когда использовать: - У вас есть ключевые слова, но вы не знаете точного имени класса - Примеры: "friction material", "gravity engine", "contact force", "triaxial stress", "sphere create", "hertz mindlin" Связанные инструменты: - yade_browse_api: Получить полную документацию по известному пути класса

Параметры

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

    Search keywords for YADE Python API. Examples: 'sphere body', 'triaxial compression', 'contact force'. Case-insensitive.

  • limitinteger

    Maximum number of results (1-20).

Другие проверенные MCP-сервера

korotovsky/slack-mcp-server

korotovsky/slack-mcp-server

MCP-сервер для Slack с полным набором инструментов: загрузка и поиск сообщений, треды, DMs, реакции, управление пользовательскими группами и сохранёнками. Работает в stealth-режиме, через OAuth, с ...

Go1735
webscraping-ai/webscraping-ai-mcp-server

webscraping-ai/webscraping-ai-mcp-server

официальный

MCP сервер для веб-скрапинга через WebScraping.AI — извлекает текст, HTML и структурированные данные, задаёт вопросы по содержимому страниц. Поддерживает JavaScript-рендеринг, CSS-селекторы, выбор прокси и эмуляцию устройств. Идеален для интеграции с LLM при сборе информации с сайтов.

JavaScript44
nickclyde/duckduckgo-mcp-server

nickclyde/duckduckgo-mcp-server

MCP сервер для поиска в DuckDuckGo и извлечения содержимого веб-страниц. Поддерживает настройки SafeSearch, региональную фильтрацию и гибкие параметры запросов. Удобный инструмент для LLM-агентов, ...

Python1343
Comet-ML/Opik-MCP

Comet-ML/Opik-MCP

официальный

MCP сервер для Opik – подключает AI-ассистентов (Claude Code, Cursor, VS Code) к вашему рабочему пространству: читайте трейсы, логируйте оценки, сохраняйте версии промптов и задавайте вопросы ассис...

Python214
last9/last9-mcp-server

last9/last9-mcp-server

официальный

Last9 MCP-сервер подключает AI-агентов (Claude, Cursor, Windsurf) к вашим производственным данным observability — логам, метрикам, трейсам, алертам. Без установки бинарников, через OAuth. Полезен S...

Go59
ReAPI-com/mcp-openapi

ReAPI-com/mcp-openapi

официальный

MCP сервер для загрузки OpenAPI спецификаций и их интеграции с LLM в IDE. Он помогает разработчикам находить операции, схемы и получать контекст для генерации кода и работы с API.

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

Лука Никитин