Skip to main content

NIMO Controller: MCP-based interface for self-driving laboratories

Project description

nimo-controller

Installation

Installation requires uv.

git clone https://github.com/NIMS-DA/nimo-controller.git
cd nimo-controller
uv sync

Examples

Bayesian optimization

The example_mcp/ackley directory contains an example MCP server that demonstrates how to use PHYSBO with the Ackley function.

Start the MCP server:

cd example_mcp/ackley
uv run mcp_ackley.py

In a separate terminal, launch NIMO Controller:

cd nimo-controller
uv run nimo-controller

Then open http://127.0.0.1:8888/ in your browser. At this point you will see a warning indicating that no candidates file has been loaded yet.

screenshot1

Click the Upload candidates file button and upload example_mcp/ackley/candidates.csv. Once uploaded, the x1 and x2 blocks will appear in the NIMO toolbox.

screenshot2

Use the blocks to build the workflow shown below:

screenshot3

Press the Run button to execute the workflow.

screenshot4

Note that the target is the negated Ackley function, since PHYSBO performs maximization.

Phase diagram construction

The example_mcp/phase_diagram directory contains an example MCP server that demonstrates the PDC algorithm by constructing a phase diagram for the fictional material X described in the IvoryOS integration guide.

Start the MCP server:

cd example_mcp/phase_diagram
uv run mcp_phase_diagram.py

Restart NIMO Controller, then upload example_mcp/phase_diagram/candidates.csv via the Upload candidates file button.

Build the workflow shown below. After running the workflow, a phase diagram will be constructed.

screenshot5

Configuration

Configuration is loaded from the following sources, in order of precedence:

  1. The path specified by --config <path>
  2. ./config.yaml in the current directory
  3. <user-config-dir>/nimo-controller/config.yaml (for example, ~/.config/nimo-controller/config.yaml)
  4. The default configuration bundled with the package

Example config.yaml:

model: "gpt-4o-mini"
port: 8888

# Optional: route requests to an OpenAI-compatible local endpoint (e.g. Ollama).
# openai_base_url: "http://127.0.0.1:11434/v1"
# openai_api_key: "ollama"

mcp_servers:
  sdl: "http://127.0.0.1:8001/mcp"

Runtime data, including the uploaded candidates.csv and optimization results, is written to <user-data-dir>/nimo-controller/ (for example, ~/.local/share/nimo-controller/).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nimo_controller-0.0.1.tar.gz (39.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nimo_controller-0.0.1-py3-none-any.whl (43.7 kB view details)

Uploaded Python 3

File details

Details for the file nimo_controller-0.0.1.tar.gz.

File metadata

  • Download URL: nimo_controller-0.0.1.tar.gz
  • Upload date:
  • Size: 39.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.12 {"installer":{"name":"uv","version":"0.10.12","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for nimo_controller-0.0.1.tar.gz
Algorithm Hash digest
SHA256 31c5c32c2277ff198e6cc033d027eabfd4cf7d190644fef6f415501b5f604940
MD5 a0ce0f447e633a94c9d16e7e0b96010f
BLAKE2b-256 3c128e5ded37de46713ef3555af8f4baf85c9f5847487ca4e3159c44eaa2cb98

See more details on using hashes here.

File details

Details for the file nimo_controller-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: nimo_controller-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 43.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.12 {"installer":{"name":"uv","version":"0.10.12","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for nimo_controller-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 2a2cfc71b7680bba3f3cf95b6ab358a3881532222adf8b11fdc5169f320fb1ec
MD5 935b97d6b5f1176ea1e78b7844588428
BLAKE2b-256 9d6c0679794168a76e3ef39ed1550e399fa1239556815107d9934dd4809f5a3d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page