Mdfmcp — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Mdfmcp (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
A Model Context Protocol (MCP) server for analyzing ASAM MDF (Measurement Data Format) files. Enables AI assistants to access and analyze automotive and industrial measurement data.
# Install uv (if not already installed)
curl -LsSf https://astral.sh/uv/install.sh | sh
# Run the server directly
uvx mcp-server-mdf# Clone and setup
git clone https://github.com/Shanko-26/mdfmcp
cd mdfmcp
# Install in virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
pip install -e .
# Run the server
mcp-server-mdfImportant: This MCP server requires direct file system access to read MDF files. It works best with IDEs that support local file operations.
#### For VS Code with Continue.dev
Add to your MCP configuration:
{
"mcpServers": {
"mdf": {
"command": "uvx",
"args": ["mcp-server-mdf@latest"]
}
}
}#### For Cursor IDE
Add to ~/.cursor/mcp.json:
{
"mcpServers": {
"mdf": {
"command": "uvx",
"args": ["mcp-server-mdf@latest"]
}
}
}#### For Windsurf/Codeium
Follow your IDE's MCP configuration guide with the same uvx command.
#### Troubleshooting uvx Path Issues
If you get "command not found" errors, find your uvx path:
which uvx # On macOS/Linux
where uvx # On WindowsThen use the full path in your configuration:
{
"mcpServers": {
"mdf": {
"command": "/Users/username/.local/bin/uvx",
"args": ["mcp-server-mdf"]
}
}
}Smart Workspace Search: The server automatically finds MDF files in your project:
your-project/
├── data.mf4 # ✅ Found by filename
├── data/
│ └── test.mf4 # ✅ Found in data/ folder
├── measurements/
│ └── run1.mf4 # ✅ Found in measurements/ folder
├── test_data/
├── examples/
└── samples/Usage Examples:
"data.mf4" → Searches workspace automatically"./data/test.mf4" → Relative path from current directory"/absolute/path/file.mf4" → Full absolute path"DATA.MF4" finds "data.mf4"Always use latest version by adding @latest to your IDE configuration:
{
"mcpServers": {
"mdf": {
"command": "uvx",
"args": ["mcp-server-mdf@latest"]
}
}
}Check version: uvx mcp-server-mdf@latest --version
User: Open the measurement file at /data/test_drive.mf4
Assistant: I'll open that MDF file for you.
[Opens file]
Successfully opened test_drive.mf4:
- Session ID: mdf_a3b2c1d4
- Version: 4.10
- Channels: 847
- Duration: 1823.4 secondsUser: What temperature channels are available?
Assistant: Let me search for temperature-related channels.
Found 23 temperature channels:
- Engine_Temp (°C) - Engine coolant temperature
- Oil_Temp (°C) - Engine oil temperature
- Ambient_Temp (°C) - Outside air temperatureUser: Show me the engine speed statistics and plot it
Assistant: I'll analyze the engine speed signal.
Engine Speed Analysis:
- Mean: 2,847 RPM
- Max: 6,234 RPM
- Std Dev: 1,123 RPM
[Shows time-series plot of engine speed]open_mdf - Open an MDF fileclose_mdf - Close a sessionlist_sessions - Show active sessionsget_file_info - Get file metadatalist_channels - List available channelsmdf_get - Extract single channel datamdf_select - Extract multiple channelsmdf_get_master - Get time channel datacalculate_statistics - Compute signal statisticsplot_signals - Create visualizationsmdf_to_dataframe - Convert to pandas DataFramemdf_cut - Extract time slicemdf_filter - Filter specific channelsmdf_resample - Change sampling ratemdf_export - Export to various formatsmdf_convert - Convert between MDF versionsmdf_save - Save modified filedocker build -t mcp-server-mdf .# Basic run
docker run -it --rm mcp-server-mdf
# With volume mount for data
docker run -it --rm -v /path/to/mdf/files:/data mcp-server-mdf
# With custom environment
docker run -it --rm -e MAX_SESSIONS=20 mcp-server-mdf{
"mcpServers": {
"mdf": {
"command": "docker",
"args": ["run", "--rm", "-i", "-v", "/path/to/data:/data", "mcp-server-mdf"]
}
}
}# Run tests
pytest tests/
# Test server manually
python tests/manual_test.pymdfmcp/
├── src/mdfmcp/
│ ├── __init__.py
│ └── server.py # Main MCP server
├── tests/
│ ├── conftest.py
│ ├── manual_test.py
│ └── test_server.py
├── examples/
│ ├── basic_usage.py
│ └── test_data_generator.py
├── Dockerfile
├── requirements.txt
├── pyproject.toml
└── README.md# Create virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
# Install in development mode
pip install -e .# Format code
black src/
# Lint
ruff src/
# Type checking
mypy src/memory="low" when opening filesThis project is licensed under the MIT License - see the LICENSE file for details.
Dependencies: This project uses asammdf which is licensed under LGPL v3+. The asammdf library remains a separate component and is not modified by this project.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.