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. The agent browses the YADE API, runs code in a live YADE session, launches long simulations as background tasks, and reads what you type at the YADE console.

yade-mcp demo

Tools (7)

Two documentation tools (no bridge needed) and five execution tools (bridge required):

Tool Purpose Bridge
yade_browse_api Walk the YADE Python class tree No
yade_query_api BM25 keyword search across the API No
yade_execute_code Run Python in the live YADE process; returns synchronously Yes
yade_execute_task Submit a script as a long-running background task Yes
yade_check_task_status Inspect a running or finished task (output, status) Yes
yade_interrupt_task Stop a running task at an iteration boundary, or cancel a queued one Yes
yade_list_tasks List submitted tasks with metadata Yes

Example Prompts

  • "Set up a triaxial compression test on a dense packing and plot deviatoric stress against axial strain"
  • "Build an irregular particle as a level set body and drop it onto a plane"
  • "The simulation is still running, check the unbalanced force without stopping it"
  • "Look up how GlobalStiffnessTimeStepper picks the timestep, then add it to this model"
  • "The command I just typed in the console raised an error, what went wrong?"
  • "List what was run yesterday and summarize what each task produced"

Часто задаваемые вопросы

Инструменты были проиндексированы:
yade_browse_api

Обозревает Python API YADE в виде дерева классов, родного для YADE. Дерево основано на реальной иерархии наследования YADE: пути отражают mro класса вплоть до корня его категории. Никаких сокращений - всегда проходит через родителей.

Параметры
  • pathstring | null

    Точечный путь в иерархии классов YADE. Навигация строится по дереву (без сокращений имён классов). - None или '': список категорий верхнего уровня (engine / functor / material / shape / ...) - 'engine': список прямых поддеревьев Engine (Dispatcher, GlobalEngine, PartialEngine, ...) - 'engine.GlobalEngine': список поддеревьев GlobalEngine (BoundaryController, Collider, PeriodicEngine, ...) и его прямых классов-листьев (NewtonIntegrator, InteractionLoop, ...) - 'engine.GlobalEngine.NewtonIntegrator': полная документация по NewtonIntegrator - 'functor.LawFunctor.Law2_ScGeom_FrictPhys_CundallStrack': полная документация по фунутору контактного закона Каждый листовой элемент достигается через цепочку родительских классов.

yade_check_task_status

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

Параметры
  • filterstring | null

    Сохраняет только строки вывода, содержащие этот текст.

  • limitinteger

    Выводить строк на страницу

  • skip_newestinteger

    Пропустить N самых новых строк вывода перед пагинацией

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

    Идентификатор задачи, который возвращает yade_execute_task.

  • wait_secondsnumber

    Задержка перед запросом (предотвращает слишком частый опрос). Используйте 0 для немедленной проверки.

yade_execute_code

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

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

    Код Python для выполнения в процессе YADE

  • timeoutinteger

    Тайм-аут выполнения консоли в секундах

yade_execute_task

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

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

    Краткая цель задачи

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

    Абсолютный путь к входному Python-скрипту для YADE.

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, которая выполняет только оставшуюся логику.

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

    Идентификатор задачи, который возвращает yade_execute_task.

yade_list_tasks

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

Параметры
  • limitinteger

    Максимум задач для возврата.

  • skip_newestinteger

    Пропусти N последних задач перед выводом списка.

yade_query_api

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

Параметры
  • limitinteger

    Максимальное количество результатов

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

    Ключевые слова для поиска по YADE Python API. Примеры: 'sphere body', 'triaxial compression', 'contact force'. Регистр не учитывается.

0.11.1основная
0.11.0
0.10.0
0.8.0
0.3.0
0.2.2
0.2.1
0.2.0
0.1.7
0.1.6
0.1.5
0.1.4
0.1.3
0.1.2
0.1.1
0.1.0

Выберите клиент, чтобы установить yusong652/yade-mcp:

Любой клиент

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

{
  "mcpServers": {
    "yusong652-yade-mcp-dc8juthb6m": {
      "command": "uvx",
      "args": [
        "yade-mcp"
      ]
    }
  }
}
CursorCursor

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

{
  "mcpServers": {
    "yusong652-yade-mcp-dc8juthb6m": {
      "command": "uvx",
      "args": [
        "yade-mcp"
      ]
    }
  }
}
VS Code

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

{
  "servers": {
    "yusong652-yade-mcp-dc8juthb6m": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "yade-mcp"
      ]
    }
  }
}

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

code --add-mcp "{\"name\":\"yusong652-yade-mcp-dc8juthb6m\",\"type\":\"stdio\",\"command\":\"uvx\",\"args\":[\"yade-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": {
    "yusong652-yade-mcp-dc8juthb6m": {
      "command": "uvx",
      "args": [
        "yade-mcp"
      ]
    }
  }
}
Claude CodeClaude Code

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

claude mcp add yusong652-yade-mcp-dc8juthb6m -- uvx yade-mcp

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

claude mcp add-json yusong652-yade-mcp-dc8juthb6m "{\"command\":\"uvx\",\"args\":[\"yade-mcp\"]}"
CodexCodex

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

codex mcp add yusong652-yade-mcp-dc8juthb6m -- uvx yade-mcp

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

[mcp_servers.yusong652-yade-mcp-dc8juthb6m]
command = "uvx"
args = ["yade-mcp"]
PerplexityPerplexity

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

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

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

WindsurfWindsurf

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

{
  "mcpServers": {
    "yusong652-yade-mcp-dc8juthb6m": {
      "command": "uvx",
      "args": [
        "yade-mcp"
      ]
    }
  }
}
ClineCline

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

{
  "mcpServers": {
    "yusong652-yade-mcp-dc8juthb6m": {
      "command": "uvx",
      "args": [
        "yade-mcp"
      ],
      "disabled": false,
      "autoApprove": []
    }
  }
}
Continue

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

mcpServers:
  - name: yusong652-yade-mcp-dc8juthb6m
    command: uvx
    args:
      - "yade-mcp"
Zed

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

{
  "context_servers": {
    "yusong652-yade-mcp-dc8juthb6m": {
      "command": "uvx",
      "args": [
        "yade-mcp"
      ]
    }
  }
}

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

alvii147/piston-mcp

alvii147/piston-mcp

от alvii147

Piston MCP Server - MCP-сервер для подключения LLM к Piston API для выполнения кода. Он даёт ИИ-ассистентам безопасно запускать скрипты на разных языках в песочнице. Полезен разработчикам ИИ-агенто...

Python⭐ 9
alfonsograziano/node-code-sandbox-mcp

alfonsograziano/node-code-sandbox-mcp

от alfonsograziano

Выполняет Node.js-код в изолированном Docker-контейнере: ставит npm-пакеты, запускает shell-команды и возвращает вывод.

TypeScript⭐ 158
yepcode/mcp-server-js

yepcode/mcp-server-js

официальный

от yepcode

YepCode MCP сервер превращает YepCode-процессы в готовые инструменты для ИИ-ассистентов. Он запускает скрипты на Python или Node.js в изолированной среде, управляет параметрами через JSON Schema. Идеально для интеграции AI с бизнес-логикой — от выполнения кода до управления API.

TypeScript⭐ 47
datalayer/jupyter-mcp-server

datalayer/jupyter-mcp-server

официальный

от datalayer

Управляет Jupyter Notebook в реальном времени: выполняет ячейки, читает и редактирует код, переключается между блокнотами. Поддерживает изображения и графики.

Python⭐ 1309
jjsantos01/jupyter-notebook-mcp

jjsantos01/jupyter-notebook-mcp

от jjsantos01

JupyterMCP - MCP-сервер, подключающий Claude AI к Jupyter Notebook (только v6.x). Claude выполняет Python-код, управляет ячейками, анализирует данные и строит графики. Полезен для AI-ассистированно...

Jupyter Notebook⭐ 128
mumez/pharo-smalltalk-interop-mcp-server

mumez/pharo-smalltalk-interop-mcp-server

от mumez

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

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

Лука Никитин