Mendix Context Bridge
# Mendix MCP Server
[](https://docs.mendix.com/)



**A powerful bridge between Mendix Applications and AI Agents.**
The **Mendix Local MCP Server** is a Model Context Protocol (MCP) server designed to empower AI tools (like Google Antigravity, Claude Desktop, or Cursor) to inspect, read, and understand the structure of Mendix projects.
It operates in a unique **Dual Mode**:
1. **Shadow SDK (Local):** Instant, offline access to `.mpr` files via direct binary parsing.
2. **Official SDK (Cloud):** Deep, accurate inspection using the Mendix Platform SDK.
---
## Why Use This Tool?
Integrating Low-Code platforms with AI agents is notoriously difficult due to proprietary file formats. This tool solves that problem.
* **š AI-Ready:** Exposes complex Mendix logic (Microflows, Domain Models) as clean, AI-readable JSON.
* **ā” Blazing Fast (Local):** Uses a custom "Shadow SDK" to parse `.mpr` SQLite databases and `.mxunit` binaries without waiting for the Model SDK to load.
* **š”ļø Circular-Safe:** Automatically handles the notorious "Circular Structure" errors common in the Mendix SDK by applying a DTO Transformation Layer.
* **š Privacy-First:** Can operate entirely offline (Local Mode), keeping your intellectual property on your machine.
---
## Key Features
* **Project Discovery:** Automatically detects Mendix projects in your workspace.
* **Module Browsing:** Recursively filters documents (Microflows, Pages) by Module.
* **Shadow Parsing:** Extracts metadata from binary blobs without the overhead of the full SDK.
* **Official SDK Integration:** Fetches authoritative data from the Mendix Cloud when absolute precision is required.
* **DTO Sanitization:** Maps complex Mendix objects to flat, safe JSON for AI consumption.
---
## Installation
### Prerequisites
* **Mendix Studio Pro v10.24.13 or newer** (Required for the new SQLite-based `.mpr` format)
* Node.js (v18 or higher)
* A local Mendix project (Git-backed or local file)
### Setup
1. **Clone the repository:**
```bash
git clone https://github.com/YourUsername/mendix-local-mcp.git
cd mendix-local-mcp
```
2. **Install Dependencies:**
```bash
npm install
```
3. **Build the Project:**
```bash
npm run build
```
---
## Configuration
To unlock the full power of the **Official SDK** (Cloud Mode), you must configure your Mendix Personal Access Token (PAT).
Add the server to your MCP Client configuration (e.g., `mcp_config.json` for Antigravity or Claude Desktop):
```json
{
"mcpServers": {
"mendix-local-mcp": {
"command": "node",
"args": ["/absolute/path/to/mendix-local-mcp/build/server.js"],
"env": {
"MENDIX_TOKEN": "your_generated_pat_string",
"MENDIX_USERNAME": "your_email@domain.com"
}
}
}
}
```
> **Note:** Generate your PAT in the Mendix Developer Portal with the scope `mx:modelrepository:repo:read`.
---
## Usage
Once running, the server exposes the following tools to your AI Agent:
### Local Mode Tools (Offline)
These tools use the "Shadow SDK" and do not require a token.
* `list_local_documents(module_name?)`
* Lists all documents in the project. Optional filter by module.
* `get_domain_model(module_name)`
* Extracts a simplified Domain Model using parsing.
* `inspect_local_microflow(microflow_name)`
* Reads binary definitions to show microflow logic.
* `inspect_database_schema(table_name?)`
* (Debug) Inspects the internal `.mpr` SQLite schema.
### Cloud Mode Tools (Online)
These tools use the Official Mendix SDK.
* `get_module_entities_sdk(module_name, project_id, branch?)`
* **Recommended for Refactoring.** Fetches a 100% accurate, sanitized JSON representation of the Domain Model from the Mendix Cloud.
---
## Project Structure
```text
mendix-local-mcp/
āāā src/
ā āāā index.ts # Main entry point (SDK implementation)
ā āāā server.ts # MCP Server definition and Tool handlers
ā āāā mprReader.ts # Shadow SDK: SQLite connection & query logic
ā āāā mendixParser.ts # Shadow SDK: Binary stream parser for .mxunit
ā āāā mappers.ts # Official SDK: DTO definitions (Entity, Attribute...)
āāā build/ # Compiled JavaScript output
āāā package.json # Dependencies & Scripts
āāā tsconfig.json # TypeScript configuration
```
---
## Contributing
Contributions are welcome! If you'd like to improve the Binary Parser or add more DTO mappers:
1. Fork the repository.
2. Create a feature branch (`git checkout -b feature/amazing-feature`).
3. Commit your changes (`git commit -m 'Add some amazing feature'`).
4. Push to the branch (`git push origin feature/amazing-feature`).
5. Open a Pull Request.
---
## License
This project is licensed under the MIT License - see the LICENSE file for details.
TDQS
Scored across 4 tools
Each tool has a clearly distinct purpose: get_domain_model covers entities and types in a module, inspect_database_schema focuses on table column structures, inspect_local_microflow handles microflow logic steps, and list_local_modules lists modules in a file. There is no overlap or ambiguity between these functions.
All tool names follow a consistent verb_noun pattern in snake_case, such as get_domain_model, inspect_database_schema, inspect_local_microflow, and list_local_modules. This uniformity makes the set predictable and easy to understand.
With 4 tools, the count is slightly low but reasonable for the server's purpose of providing Mendix context insights. It covers key areas like modules, domain models, database schemas, and microflows, though it might benefit from additional tools for more comprehensive coverage.
The tools cover basic inspection and listing functions for modules, domain models, database schemas, and microflows, but there are notable gaps. For example, there are no tools for creating, updating, or deleting elements, which limits the server to read-only operations and may cause agent failures in workflows requiring modifications.