# PLAXIS MCP

> Model Context Protocol server for interacting with a running PLAXIS Remote Scripting session

- **Type:** MCP server
- **Install:** `agentstack add mcp-yixuanzhong-plaxis-mcp`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [yixuanzhong](https://agentstack.voostack.com/s/yixuanzhong)
- **Installs:** 0
- **Category:** [Integrations](https://agentstack.voostack.com/c/integrations)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [yixuanzhong](https://github.com/yixuanzhong)
- **Source:** https://github.com/yixuanzhong/PLAXIS-MCP

## Install

```sh
agentstack add mcp-yixuanzhong-plaxis-mcp
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# plaxis-mcp

`plaxis-mcp` is a Model Context Protocol server for interacting with a running
PLAXIS Remote Scripting session.

It uses the PLAXIS Python scripting interface shape published in
[`cemsbv/plxscripting`](https://github.com/cemsbv/plxscripting) and exposes a
small set of generic MCP tools for connecting to PLAXIS, inspecting objects,
reading values, setting properties, and invoking remote methods.

## Features

- Connect to a running PLAXIS Remote Scripting server.
- Create, open, close, recover, and save PLAXIS projects.
- Summarize phases, materials, and common project metadata.
- Inspect global and nested PLAXIS objects through path-based access.
- Read dynamic property values in a JSON-friendly form.
- Set writable properties.
- Call remote methods with positional arguments.
- Expose connection state as both a resource and MCP tools.

## Requirements

- Python 3.10+
- A running PLAXIS instance with Remote Scripting enabled
- Access to the `plxscripting` package

You can provide `plxscripting` in either of these ways:

1. Install the published package dependency from this project.
2. Point `PLAXIS_SCRIPTING_PATH` at the PLAXIS-installed scripting location,
   such as:

```text
C:\ProgramData\Seequent\PLAXIS Python Distribution V2\python\Lib\site-packages
```

That path pattern comes from the upstream `plxscripting` README.

## Installation

```bash
pip install -e .
```

Or build a container image:

```bash
docker build -t plaxis-mcp .
```

## Running

By default the server uses stdio transport:

```bash
python -m plaxis_mcp.server
```

With Docker:

```bash
docker run -i --rm \
  -e PLAXIS_HOST=host.docker.internal \
  -e PLAXIS_PORT=10000 \
  plaxis-mcp
```

Note: the container only runs the MCP server. PLAXIS still needs to run on the
Windows host with Remote Scripting enabled and reachable from the container.

Optional environment variables:

- `PLAXIS_HOST` default: `127.0.0.1`
- `PLAXIS_PORT` default: `10000`
- `PLAXIS_PASSWORD` default: empty
- `PLAXIS_TIMEOUT` default: `5.0`
- `PLAXIS_REQUEST_TIMEOUT` optional per-request timeout
- `PLAXIS_SCRIPTING_PATH` optional extra import path for PLAXIS scripting files
- `PLAXIS_MCP_TRANSPORT` default: `stdio`

## MCP Tools

- `connect`
- `disconnect`
- `connection_status`
- `new_project`
- `open_project`
- `close_project`
- `recover_project`
- `save_project`
- `project_info`
- `list_phases`
- `list_materials`
- `list_result_types`
- `get_results`
- `list_members`
- `inspect`
- `set_property`
- `call_method`

## Path Syntax

Paths use dotted access with optional list indexes:

- `Phases[0]`
- `Soils[1].Material`
- `Soil_1.Material.Name`

An empty path refers to the PLAXIS global object.

## Example MCP Client Config

See [examples/mcp-client-config.json](examples/mcp-client-config.json) for a
copy-pasteable client config covering both direct Python and Docker usage.

```json
{
  "mcpServers": {
    "plaxis-mcp": {
      "command": "python",
      "args": ["-m", "plaxis_mcp.server"],
      "env": {
        "PLAXIS_HOST": "127.0.0.1",
        "PLAXIS_PORT": "10000",
        "PLAXIS_PASSWORD": ""
      }
    }
  }
}
```

## Development

Run the unit tests:

```bash
python -m unittest discover -s tests
```

Run a local smoke test:

```bash
python scripts/smoke_test.py
```

The smoke test is diagnostic rather than strict: it reports whether the `mcp`
SDK and `plxscripting` are importable in the current environment, and it exits
successfully even when those runtime dependencies are missing.

For PLAXIS Output result extraction, connect this MCP to an Output scripting
server and then use tools like:

- `list_result_types("ResultTypes")`
- `get_results(phase=0, result_type_path="ResultTypes.Soil.Utot", fem_type="node")`

## References

- [`cemsbv/plxscripting`](https://github.com/cemsbv/plxscripting)
- [official MCP Python SDK](https://github.com/modelcontextprotocol/python-sdk)

## Trademark Notice

PLAXIS is a trademark of Seequent and related companies. This project is an
independent integration and is not affiliated with, endorsed by, or sponsored
by Seequent or Bentley Systems.

## Source & license

This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [yixuanzhong](https://github.com/yixuanzhong)
- **Source:** [yixuanzhong/PLAXIS-MCP](https://github.com/yixuanzhong/PLAXIS-MCP)
- **License:** MIT

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/mcp-yixuanzhong-plaxis-mcp
- Seller: https://agentstack.voostack.com/s/yixuanzhong
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
