Skip to main content

MCP-FMI

Model Context Protocol - Functional Mock-up Interface
Makes your simulation models available as tools for LLM-based agents.

Novia UAS | Research Project | Contact

Python Version License: MIT Funded by Business Finland

Prerequisites

  • Python 3.11 or higher
  • uv package manager
  • Claude Desktop (for desktop integration)

Claude Desktop Integration

Update the claude_desktop_config.json file with:

{
  "mcpServers": {
    "MCP-FMI Server": {
      "command": "uvx",
      "args": [
        "mcp-fmi",
        "--fmu-dir",
        "/full/path/to/fmu/folder"
        ],
    }
  }
}

Example usage

Example queries:

  • What simulation models do you have available?
  • Give me informaiton of input and output signals of model model name.
  • Who created the model model name and when was it last updated?
  • Make a step-change in input input name at 60s. Keep the other inputs constant with default values.
  • Simulate model name with generated inputs.

MCP - Functional Mockup Interface

This package integrates FMU simulation models as tools for LLM-based agents through the MCP. This is an unofficial MCP-integration of the FMPy package.

The Model Context Protocol (MCP) is an open protocol that standardizes how applications can provide context to Large Language Models (LLMs). MCP helps when integrating data and tools to LLM-based agents.

Architecture

MCP Architecture

The Functional Mockup Interface (FMI) is a free standard that defines a container and interface to exchange dynamic simulation models across simulation platforms. A Functional Mockup Unit (FMU) is a file containing a simulation model that adheres to the FMI standard.

MCP-FMI Features

  • Manage simulations from chat interfaces.
  • Use simulation models as tools for LLM-based agents.
  • Generate input signals for simulations from natural language.
  • Visualize simulation results in browser.

Implemented tools

List of implemented tools:

  • fmu_information_tool retrieves information about the available FMU models.
  • simulate_toolsimulates a single FMU model with default prameters and input signals. Returns the simulated outputs.
  • simulate_with_input_tool simulates a single FMU model with the specified input signals. Returns the simulated outputs.
  • create_signal_tool generates an input-sequence object for a single input.
  • merge_signals_tool merges multiple signel objects that can be used as an input for a simulation.
  • show_results_in_browser_tool visualizes simulation results in browser.

Tool Overview

MCP-FMI Tools

Future work

List of tools to be implemented:

  • show_results_as_artifact_tool visualized simulation results as interractive artifacts in Claude Desktop.
  • co_simulate_tool co-simulates multiple FMU models.

Citation

If you use this package in your research, please cite it using the following BibTeX entry:

@misc{MCP-FMI,
  author = {Mikael Manngård, Christoffer Björkskog},
  title = {MCP-FMI: MCP Server for the Functional Mock-Up Interface},
  year = {2025},
  howpublished = {\url{https://github.com/Novia-RDI-Seafaring/mcp-fmi}},
}

Acknowledgements

This work was done in the Business Finland funded project Virtual Sea Trial

License

This package is licensed under the MIT License license. See the LICENSE file for more details.

Metadata

Release files for mcp-fmi 0.1.7

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

Source distribution (sdist)

Source distribution for mcp-fmi 0.1.7
File Size Uploaded Provenance
mcp_fmi-0.1.7.tar.gz 10.8 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for mcp-fmi 0.1.7
File Interpreter ABI Platform
mcp_fmi-0.1.7-py3-none-any.whl Python 3 none any Details

Total release size: 21.0 kB

Release files / mcp_fmi-0.1.7.tar.gz

Download URL mcp_fmi-0.1.7.tar.gz
Size 10.8 kB
Tags Source
SHA-256 checksum
How to use checksums
59efe8d4afa1a5fdfdf38be5b5d0b987ef07773635c274b65a4da1669f3562ae
BLAKE2b-256 checksum
How to use checksums
ece77eb3bcf97e3f558425a61a7e76f9ac92ff2dedf7e9be109ef5ce09bcbe90
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.7.8

Release files / mcp_fmi-0.1.7-py3-none-any.whl

Download URL mcp_fmi-0.1.7-py3-none-any.whl
Size 10.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6c91731bfa19b60f0377d3d1b8562a606ea2c78902a26d8030ee547278f871c3
BLAKE2b-256 checksum
How to use checksums
a1508c0fc36ac8efc5e102530834a737b130185a03255e1a0f20e8b99b023009
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.7.8

Security for mcp-fmi 0.1.7

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.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

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