Skip to main content

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"

First-time Setup

Prerequisites

  • YADE installed
  • uv installed. It provides the uvx launcher that agent clients use to run yade-mcp; without it the client reports No such file or directory when starting the server.
  • An AI agent: Claude Code, Codex CLI, Gemini CLI, or any MCP-capable client

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/yade-mcp/master/docs/agentic/yade-mcp-bootstrap.md

Manual Setup

1. Register the MCP server with your agent (use the line for yours):

# Claude Code
claude mcp add yade-mcp -- uvx yade-mcp

# Codex CLI
codex mcp add yade-mcp -- uvx yade-mcp

# Gemini CLI
gemini mcp add yade-mcp uvx yade-mcp

Or fill in the MCP config file by hand:

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

2. Install the bridge into YADE's Python.

YADE embeds one specific interpreter (the system python3 for the Debian and Ubuntu packages, or the one it was built against). A conda or venv Python is a different interpreter, and a package installed there is invisible to YADE. The reliable way to hit the right one is to install from inside YADE, where sys.executable is that interpreter. In the YADE console:

import sys, subprocess
subprocess.check_call([sys.executable, "-m", "pip", "install", "--user", "yade-mcp-bridge"])

Two things can go wrong here:

  • No module named pip: the interpreter has no pip. Install it with the system package manager, for example sudo apt install python3-pip.
  • externally-managed-environment (Debian 12, Ubuntu 23.04 and later): pip refuses --user by default. Add "--break-system-packages" after "--user" in the command above.

Then exit and restart YADE so the new package directory is picked up.

The bridge is proposed for inclusion in YADE itself (yade-dev/trunk !1187). Once it ships with YADE, this step goes away and the bridge starts with from yade import mcpbridge.

3. Start the bridge in the YADE console:

import yade_mcp_bridge
yade_mcp_bridge.start()

It prints one line: YADE MCP Bridge on http://localhost:9002, log: <cwd>/.yade-mcp/bridge.log.

Verify

Restart your AI agent and ask it to check that it is connected to YADE. It calls yade_execute_code; ok: true in the response means the whole chain works.

Daily Startup

Once first-time setup is done, each new YADE session only needs the bridge started again. In the YADE console:

import yade_mcp_bridge
yade_mcp_bridge.start()

The MCP client config persists.

Configuration

Port

The bridge listens on 9002 by default. To use another port, pass it to start():

yade_mcp_bridge.start(port=9008)

The MCP server connects to 9002 unless told otherwise, so register it with the matching URL:

{
  "mcpServers": {
    "yade-mcp": {
      "command": "uvx",
      "args": ["yade-mcp", "--bridge-url", "http://localhost:9008"]
    }
  }
}

Container

When YADE runs inside a container, bind the bridge to all interfaces so it is reachable from outside:

yade_mcp_bridge.start(host="0.0.0.0")

Publish the port when starting the container (for Docker, -p 9002:9002).

Features

  • Live REPL in the running YADE process: yade_execute_code runs Python in the session's own namespace, so state persists between calls. It keeps working while a task runs, for reading intermediate results without stopping the simulation.
  • Task lifecycle: submit a script as a background task, tail its output, stop it at an iteration boundary, fix and resubmit. Tasks queue up and run one at a time, so a multi-stage pipeline can be submitted in one go.
  • Task history across sessions: every task's script, output, and final state stay on record. A new agent session lists what was run and picks up without being told.
  • Console input reaches the agent: lines you type at the YADE console arrive in the agent's context on its next call, so you can work at the console and with the agent at the same time.
  • API documentation without a bridge: the class tree and a BM25 search over the YADE Python API work offline, from a corpus refreshed against current YADE releases.
  • Multi-client: works with Claude Code, Codex CLI, Gemini CLI, GitHub Copilot CLI, OpenCode, toyoura-nagisa, and other MCP clients.

Troubleshooting

See Troubleshooting in the bootstrap guide.

Contributing

See CONTRIBUTING.md for development setup and guidelines.

License

MIT, see LICENSE.

Metadata

Release files for yade-mcp 0.11.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for yade-mcp 0.11.1
File Size Uploaded
yade_mcp-0.11.1.tar.gz 507.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for yade-mcp 0.11.1
File Interpreter ABI Platform
yade_mcp-0.11.1-py3-none-any.whl Python 3 none any Details

Total release size: 1.2 MB

Release files / yade_mcp-0.11.1.tar.gz

Download URL yade_mcp-0.11.1.tar.gz
Size 507.9 kB
Tags Source
SHA-256 checksum
How to use checksums
d64e885ebb3c4e0a9d009c0e592c7d8f55b65019b2edfb2c6b96fa9b4d4c51ca
BLAKE2b-256 checksum
How to use checksums
29196f5c349b8034d6af30477aefb169a7efd2fb9699e5aecbe94e0591538f65
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 7, 2026.

Transparency log

Release files / yade_mcp-0.11.1-py3-none-any.whl

Download URL yade_mcp-0.11.1-py3-none-any.whl
Size 706.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9810f7cb285a1d04f060ee5f6c9a9e6cd3e2659f04e9414aa90590d2537e8966
BLAKE2b-256 checksum
How to use checksums
c5f7f996ade06d7be273540c30890fe3b060e6cfe4a98816e6aefdbe30729d78
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 7, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.11.1 This release

2 release files

0.11.0

2 release files

0.8.0

2 release files

0.3.0

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page