Unofficial integration of fmpy with mcp.
Project description
Model Context Protocol - Functional Mock-up Interface
Makes your simulation models available as tools for LLM-based agents.
Novia UAS | Research Project | Contact
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 nameand when was it last updated? - Make a step-change in input
input nameat 60s. Keep the other inputs constant with default values. - Simulate
model namewith 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
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_toolretrieves 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_toolsimulates a single FMU model with the specified input signals. Returns the simulated outputs.create_signal_toolgenerates an input-sequence object for a single input.merge_signals_toolmerges multiple signel objects that can be used as an input for a simulation.show_results_in_browser_toolvisualizes simulation results in browser.
Tool Overview
Future work
List of tools to be implemented:
show_results_as_artifact_toolvisualized simulation results as interractive artifacts in Claude Desktop.co_simulate_toolco-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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mcp_fmi-0.1.7.tar.gz.
File metadata
- Download URL: mcp_fmi-0.1.7.tar.gz
- Upload date:
- Size: 10.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.7.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
59efe8d4afa1a5fdfdf38be5b5d0b987ef07773635c274b65a4da1669f3562ae
|
|
| MD5 |
284a2ff64253628643a38c0b1f45ac52
|
|
| BLAKE2b-256 |
ece77eb3bcf97e3f558425a61a7e76f9ac92ff2dedf7e9be109ef5ce09bcbe90
|
File details
Details for the file mcp_fmi-0.1.7-py3-none-any.whl.
File metadata
- Download URL: mcp_fmi-0.1.7-py3-none-any.whl
- Upload date:
- Size: 10.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.7.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6c91731bfa19b60f0377d3d1b8562a606ea2c78902a26d8030ee547278f871c3
|
|
| MD5 |
e5136a415dfd29c5a57f5316d07ca91d
|
|
| BLAKE2b-256 |
a1508c0fc36ac8efc5e102530834a737b130185a03255e1a0f20e8b99b023009
|