yusong652/pfc-mcp

yusong652/pfc-mcp

от yusong652
MCP сервер для связи ИИ-агентов с ITASCA PFC — пакетом дискретного элементного моделирования (DEM). Через естественный диалог можно искать документацию, выполнять код и управлять симуляциями. Приго...

itasca-mcp

itasca-mcp

English | 简体中文

PyPI Downloads GitHub stars License: MIT Python 3.10+

itasca>model new ;now, with LLM.

itasca-mcp connects AI agents to ITASCA's numerical modeling software — PFC, FLAC, 3DEC, MPoint, and MassFlow — through the Model Context Protocol. Browse documentation, run simulations, and execute code, all through natural conversation. Pick the engine with the software parameter.

itasca>model solve ;LLM solves.

itasca-mcp demo

Tools (10)

5 documentation tools — browse and search the selected engine's commands, Python API, and reference docs (software parameter). No bridge required.

5 execution tools — interactive REPL, task submission, progress monitoring, interruption, and history. Requires bridge.

First-time Setup

Prerequisites
  • An ITASCA engine installed — PFC, FLAC, 3DEC, MPoint, or MassFlow. 9.0+ recommended; Python 3-compatible 6.0 / 7.0 builds also supported.
  • uv installed (for uvx)
Agentic Setup (Recommended)

Copy this to your AI agent and let it self-configure:

Fetch and follow this bootstrap guide end-to-end:
https://raw.githubusercontent.com/yusong652/itasca-mcp/main/docs/agentic/itasca-mcp-bootstrap.md
Инструменты были проиндексированы:
itasca_browse_commands

Просматривает документацию команд Itasca по пути (как glob + cat). Уровни навигации: - Без команды: обзор всех категорий команд - Только категория (например, "ball"): список команд в категории - Полная команда (например, "ball create"): полная документация Когда использовать: - Вы знаете категорию команды или точную команду - Вы хотите изучить доступные команды Связанные инструменты: - itasca_query_command: поиск команд по ключевым словам (когда путь неизвестен) - itasca_browse_reference: просмотр справочной документации (например, "contact-models linear")

Команды просмотра Itasca

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

    Itasca command to browse (space-separated, matching Itasca command syntax). Examples: - None or '': List all command categories - 'ball': List all ball commands - 'ball create': Get ball create documentation - 'contact': List all contact commands - 'contact property': Get contact property command documentation

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

    ITASCA engine to query: 'pfc', 'flac', '3dec', 'mpoint', or 'massflow'. Required — there is no default engine.

  • versionenum

    Documentation version to browse. Defaults to 7.0 for multi-version engines (PFC: 6.0/7.0/9.0, FLAC: 7.0/9.0, 3DEC: 7.0/9.0); 9.0-only engines (MPoint, MassFlow) always resolve at 9.0.

itasca_browse_python_api

Просматривает документацию Itasca Python SDK по пути (аналог glob + cat).

Itasca Browse Python Api

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

    Itasca Python API path to browse (dot-separated, starting from itasca). Examples: - None or '': Root overview - all modules and objects - 'itasca': Core module functions (command, cycle, gravity, etc.) - 'itasca.ball': Ball module functions (create, find, list, etc.) - 'itasca.ball.create': Specific function documentation - 'itasca.ball.Ball': Ball object method groups - 'itasca.ball.Ball.pos': Specific method documentation - 'itasca.wall.facet': Nested submodule - 'itasca.wall.facet.Facet': Facet object in wall.facet module

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

    ITASCA engine to query: 'pfc', 'flac', '3dec', 'mpoint', or 'massflow'. Required — there is no default engine.

itasca_browse_reference

Просматривает справочную документацию ITASCA (элементы синтаксиса, свойства модели). Работает со всеми движками через обязательный селектор software (pfc/flac/3dec). Справочные элементы — это языковые конструкции, используемые внутри команд, а не отдельные команды. Уровни навигации: - Без темы: все категории справочных элементов для движка - Категория (например, "constitutive-models"): список элементов в категории - Полный путь (например, "constitutive-models mohr-coulomb"): полная документация - Путь подэлемента (например, "plot-items zone contour"): подробности подэлемента Когда использовать: - Нужны названия свойств модели материала/контакта/шва (kn, ks, fric, cohesion, friction, ...) - Нужен синтаксис фильтрации диапазона (position, cylinder, group, id) - Нужна настройка элементов графика (contour, label, color-by, cut, transparency, legend) - Настройка команд назначения модели (например, "... cmodel assign ... property ...") - Использование фильтров диапазона в любой команде - Настройка команд "plot item create" Связанные инструменты: - itasca_browse_commands: синтаксис команд (например, "zone create") - itasca_query_command: поиск команд по ключевым словам

Справочник по просмотру Itasca

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

    ITASCA engine to query: 'pfc', 'flac', '3dec', 'mpoint', or 'massflow'. Required — there is no default engine.

  • topicstring | null

    Reference topic to browse (space-separated path). Categories vary by engine — call with no topic first to discover them. Examples (by engine): - None or '': List all reference categories for the chosen engine - PFC 'contact-models' / 'contact-models linear': contact model + its properties - FLAC 'constitutive-models' / 'constitutive-models mohr-coulomb': zone model + properties - 3DEC 'joint-models' / 'joint-models mohr': joint (sub-contact) model + properties - 'range-elements' / 'range-elements cylinder': range filter syntax (all engines) - 'plot-items' / 'plot-items <type>' / 'plot-items <type> <sub>': plot item keywords

  • versionenum

    Documentation version (PFC: 6.0/7.0/9.0, FLAC: 7.0/9.0). Only gates version-specific items (e.g. PFC contact models by availability). range-elements, plot-items, and the FLAC/3DEC reference sets are version-agnostic, so the value is ignored for them. 9.0-only engines (MPoint, MassFlow) always resolve at 9.0.

itasca_check_task_status

Проверяет состояние и постраничный вывод для отправленной задачи Itasca. Вывод объединяет вывод Python и вывод консоли Itasca из вызовов itasca.command() (дампы таблиц, вывод списков, сводки команд), перемешанные в порядке выполнения. Используйте skip_newest / limit для постраничного вывода или filter, чтобы оставить только совпадающие строки.

Проверить статус задачи Itasca

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

    Only keep output lines containing this text

  • limitinteger

    Output lines per page

  • skip_newestinteger

    Skip N newest output lines before pagination

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

    Task ID returned by itasca_execute_task

  • wait_secondsnumber

    Wait time before querying status

itasca_execute_code

Execute Python code synchronously in the running Itasca engine process. Returns stdout and an optional result variable immediately. Code runs in the engine's main thread, sharing the same main namespace as any running task — side effects persist and are immediately visible to the task on its next cycle. The tool stays responsive while a task submitted via itasca_execute_task is cycling (calls interleave at cycle gaps), so use it as a live REPL — nothing has to be pre-scripted into the task up front. Typical uses: - Query model state and read Itasca command output: itasca.command('ball list') etc. — table dumps, list output, and command summaries are captured and interleaved with Python prints in execution order - Live inspection and tuning during a running task: check forces or contact statistics, modify parameters, swap callbacks, set sentinel variables the task reads each cycle - Create and export plots: itasca.command('plot ...') Environment: the engine's embedded Python interpreter (Itasca 9+ → Python 3.10, pre-9 → Python 3.6 or older; the product+version is encoded in sys.executable, e.g. PFC900). When unsure, check sys.version_info before relying on newer syntax. Code-writing rules (shared with itasca_execute_task): - Multi-line itasca.command("""...""") batches are normalized to one engine call per command, keeping the bridge reachable mid-batch. Normalization recognizes itasca.command through its import name; call it through that name directly — rebinding via intermediate variables (_it = itasca) bypasses it and the output carries a bridge warning. - Pass each FISH definition block (fish define / fish operator / legacy bare define, through its terminating standalone end) whole, in ONE itasca.command() string; feeding one line-by-line leaves the engine blocked in interactive FISH mode until completed manually in the GUI console. Per-line loops are fine for ordinary commands. - program call '<file>' (.p3dat / .p2dat / .dat / ...) is supported: the bridge runs the file inline, one command per engine call, so the bridge stays reachable, the run stays interruptible, and the file's output arrives command by command. Synchronous semantics: the request blocks until the code finishes or hits the timeout (default 10s, max 600s), and output is returned in full. The call is not tracked by itasca_list_tasks and cannot be interrupted mid-execution. For cancellable, pollable, or background work, submit via itasca_execute_task instead.

Выполняет код.

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

    Python code to execute in the Itasca engine user console

  • timeoutinteger

    Console execution timeout in seconds

itasca_execute_task

Submit a Python script file for asynchronous execution in the Itasca engine. Returns a task_id immediately; the script runs in the background. Companion tools manage the lifecycle: - itasca_check_task_status: poll output, progress, and final status - itasca_interrupt_task: cancel a running task - itasca_list_tasks: browse task history For synchronous, inline execution, use itasca_execute_code instead. While the task is cycling, itasca_execute_code shares the same main namespace in the engine's main thread, so you can inspect or modify simulation state live — probe progress, tune parameters mid-run, swap callbacks, or trigger early termination via a sentinel variable. Submit with reasonable starting values and refine as the task runs. Console output from itasca.command() inside the script (table dumps, list output, command summaries) is captured into the task log alongside Python prints, visible through itasca_check_task_status. Script-writing rules: - Multi-line itasca.command("""...""") batches are normalized to one engine call per command, keeping the task interruptible mid-batch. Normalization recognizes itasca.command through its import name; call it through that name directly — rebinding via intermediate variables (_it = itasca) bypasses it and logs a bridge warning. - Pass each FISH definition block (fish define / fish operator / legacy bare define, through its terminating standalone end) whole, in ONE itasca.command() string; feeding one line-by-line leaves the engine blocked in interactive FISH mode until completed manually in the GUI console. Per-line loops are fine for ordinary commands. - program call '<file>' (.p3dat / .p2dat / .dat / ...) is supported: the bridge runs the file inline, one command per engine call, so the bridge stays reachable, the task stays interruptible, and the file's output lands in the task log command by command.

Itasca Выполнить задачу

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

    Brief task purpose

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

    Absolute path to entry Python script in the Itasca engine workspace

itasca_interrupt_task

Запрашивает вежливое прерывание выполняемой задачи Itasca.

Задача прерывания Itasca

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

    Task ID returned by itasca_execute_task

itasca_list_tasks

Перечисляет отслеживаемые задачи Itasca с пагинацией.

Itasca: список задач.

Параметры
  • limitinteger

    Max tasks to return

  • skip_newestinteger

    Skip N most recent tasks before listing

itasca_query_command

Ищет документацию по командам Itasca по ключевым словам (как grep). Возвращает пути команд, подходящих под запрос. Для получения полной документации используйте itasca_browse_commands. Когда использовать: - У вас есть ключевые слова, но вы не знаете точный путь команды - Пример: "ball create", "contact property", "model solve" Связанные инструменты: - itasca_browse_commands: Получает полную документацию для известного пути команды - itasca_browse_reference: Ищет справочную документацию (например, "contact-models linear") - itasca_query_python_api: Ищет Python SDK по ключевым словам

Команда запроса Itasca

Параметры
  • limitinteger

    Maximum number of results (1-20).

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

    Search keywords for Itasca commands. Examples: 'ball create', 'contact property', 'model solve'. Case-insensitive.

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

    ITASCA engine to query: 'pfc', 'flac', '3dec', 'mpoint', or 'massflow'. Required — there is no default engine.

  • versionenum

    Documentation version to search. Defaults to 7.0 for multi-version engines (PFC: 6.0/7.0/9.0, FLAC: 7.0/9.0, 3DEC: 7.0/9.0); 9.0-only engines (MPoint, MassFlow) always resolve at 9.0.

itasca_query_python_api

Ищет в документации Itasca Python SDK по ключевым словам (как grep). Возвращает подходящие пути API с сигнатурами. Для полной документации используйте itasca_browse_python_api. Когда использовать: - У вас есть ключевые слова, но вы не знаете точный путь API - Пример: "ball velocity", "create", "contact force" Связанные инструменты: - itasca_browse_python_api: Получает полную документацию для известного пути API - itasca_query_command: Ищет команды Itasca по ключевым словам

Itasca Query Python Api

Параметры
  • limitinteger

    Maximum number of results (1-20).

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

    Search keywords for Itasca Python SDK API. Examples: 'ball pos', 'contact force', 'model solve'. Case-insensitive.

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

    ITASCA engine to query: 'pfc', 'flac', '3dec', 'mpoint', or 'massflow'. Required — there is no default engine.

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

yusong652/yade-mcp

yusong652/yade-mcp

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

Python13
alvii147/piston-mcp

alvii147/piston-mcp

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

Python9
Coding-Solo/godot-mcp

Coding-Solo/godot-mcp

MCP-сервер для Godot: запускает редактор, выполняет проекты, захватывает отладку. Управляет сценами и проектами. Полезен разработчикам, использующим AI-агентов — даёт обратную связь от движка, уско...

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

mumez/pharo-smalltalk-interop-mcp-server

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

Python12
meanands/npm-package-docs-mcp

meanands/npm-package-docs-mcp

MCP сервер для получения актуальной документации npm-пакетов прямо в IDE. Запрашивает README из GitHub или из tarball пакета, возвращая свежую информацию об API и использовании. Полезен разработчик...

TypeScript11
Manticore MCP

Manticore MCP

официальный

MCP сервер для Manticore Search: даёт ИИ-ассистентам доступ к базе - SQL-запросы, таблицы и схемы, документация. Работает с Claude, Cursor и другими. Полезен разработчикам, работающим с полнотекстовым и векторным поиском.

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

Лука Никитин