Mendix Context Bridge
The Mendix Context Bridge server enables AI agents to inspect and understand Mendix low-code application structures by parsing .mpr project files in both offline and cloud-based modes.
Core Capabilities:
• List modules - Get an overview of all modules in the opened .mpr file
• Inspect microflows - Find microflows by name and retrieve their logical steps and execution flow
• Extract domain models - View all entities and types within specific modules
• Examine database schema - Inspect the internal SQLite database structure to understand how Mendix stores project metadata
• Discover project components - Automatically detect projects and list documents (Microflows, Pages) with optional module filtering
Operating Modes:
• Offline mode - Fast local parsing using the "Shadow SDK" for direct binary .mpr and .mxunit file analysis without requiring cloud connectivity
• Cloud mode - Precise inspection via the official Mendix Platform SDK for 100% accurate representations
AI Integration:
• AI-ready output - Transforms complex Mendix objects into clean, circular-safe JSON that AI agents can easily process • Privacy-first - Operates entirely offline to keep intellectual property secure on your machine • Low-code bridge - Makes proprietary Mendix file formats accessible to AI tools like Claude, Cursor, and other MCP-compatible clients
Connects to Mendix project .mpr files (which use SQLite format) in read-only mode to query project structure, entities, microflows, and modules, enabling AI agents to understand and analyze local Mendix application models.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Mendix Context Bridgeshow me all microflows in the OrderManagement module"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Mendix MCP Server
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:
Shadow SDK (Local): Instant, offline access to
.mprfiles via direct binary parsing.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
.mprSQLite databases and.mxunitbinaries 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.
Related MCP server: digital-rain-mcp
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
.mprformat)Node.js (v18 or higher)
A local Mendix project (Git-backed or local file)
Setup
Clone the repository:
git clone https://github.com/YourUsername/mendix-local-mcp.git cd mendix-local-mcpInstall Dependencies:
npm installBuild the Project:
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):
{
"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
.mprSQLite 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
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 configurationContributing
Contributions are welcome! If you'd like to improve the Binary Parser or add more DTO mappers:
Fork the repository.
Create a feature branch (
git checkout -b feature/amazing-feature).Commit your changes (
git commit -m 'Add some amazing feature').Push to the branch (
git push origin feature/amazing-feature).Open a Pull Request.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Available Tools
4 toolsget_domain_modelB
Geeft een overzicht van alle entiteiten en types in een specifieke module.
| Name | Required | Description | Default |
|---|---|---|---|
| module_name | Yes | De naam van de module waarvan je het domeinmodel wilt zien. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool provides an overview, implying a read-only operation, but doesn't clarify if it's safe, requires permissions, has rate limits, or what the output format might be (e.g., list, structured data). For a tool with zero annotation coverage, this leaves significant gaps in understanding its behavior and constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence in Dutch that directly states the tool's purpose without any fluff or redundancy. It's front-loaded with the key action and resource, making it efficient and easy to parse. Every word earns its place, achieving optimal conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (1 parameter, no output schema, no annotations), the description is minimally adequate. It covers the basic purpose but lacks details on usage guidelines, behavioral traits, or output expectations. Without annotations or an output schema, the agent might struggle with how to interpret results, but the simplicity of the tool means it's not critically incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with the parameter 'module_name' well-documented as 'De naam van de module waarvan je het domeinmodel wilt zien' (The name of the module for which you want to see the domain model). The description adds no additional parameter details beyond what the schema provides, such as format examples or constraints. With high schema coverage, the baseline score of 3 is appropriate as the schema handles the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Geeft een overzicht van alle entiteiten en types in een specifieke module' (Provides an overview of all entities and types in a specific module). It specifies the verb ('geeft een overzicht van' - provides an overview of) and resource ('alle entiteiten en types' - all entities and types), making the action and target explicit. However, it doesn't distinguish this from sibling tools like 'inspect_database_schema' or 'list_local_modules', which might offer related functionality, so it doesn't reach the highest score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'inspect_database_schema' or 'list_local_modules', nor does it specify prerequisites, exclusions, or contextual cues for selection. The agent must infer usage based on the purpose alone, which is insufficient for optimal tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
inspect_database_schemaB
Geeft de kolomstructuur van een tabel in de lokale database terug. Handig om te begrijpen hoe Mendix data opslaat.
| Name | Required | Description | Default |
|---|---|---|---|
| table_name | No | Naam van de tabel (standaard: Unit) | Unit |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. The description states it returns column structure, which implies a read-only operation, but doesn't explicitly confirm this is safe (non-destructive) or mention any authentication needs, rate limits, or error conditions. It mentions the local database context, which is useful context, but lacks details about what 'local' means (e.g., development vs. production environment) or any constraints on table accessibility.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences that efficiently convey the core purpose and usage context. The first sentence states what the tool does, and the second adds practical value. There's no unnecessary repetition or fluff, though it could be slightly more structured (e.g., by explicitly separating purpose from guidelines).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has one parameter with full schema coverage and no output schema, the description provides basic completeness: it explains what the tool returns (column structure) and why it's useful (to understand Mendix data storage). However, as a database inspection tool with no annotations, it lacks details about behavioral aspects like safety, permissions, or output format specifics. The description compensates somewhat with the Mendix context, but doesn't fully address gaps in behavioral transparency.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the schema fully documenting the single parameter 'table_name' including its type, description, and default value. The description doesn't add any parameter-specific information beyond what's in the schema (e.g., it doesn't explain table naming conventions or valid table examples). With high schema coverage and only one parameter, the baseline score of 3 is appropriate as the schema handles most of the parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Geeft de kolomstructuur van een tabel in de lokale database terug' (Returns the column structure of a table in the local database). It specifies the verb ('geeft terug' - returns) and resource ('kolomstructuur van een tabel' - column structure of a table). However, it doesn't explicitly differentiate from sibling tools like 'get_domain_model' or 'inspect_local_microflow', which might also provide structural information about the database or application.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides implied usage guidance: 'Handig om te begrijpen hoe Mendix data opslaat' (Useful to understand how Mendix stores data). This suggests the tool is for exploring data storage structure, but it doesn't explicitly state when to use this tool versus alternatives like 'get_domain_model' (which might provide a broader domain model) or 'list_local_modules' (which might list modules rather than table structures). No explicit when-not-to-use or alternative tool recommendations are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
inspect_local_microflowC
Zoekt een microflow op naam en geeft de logische stappen terug.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Naam van de microflow |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool searches and returns logical steps, implying a read-only operation, but doesn't disclose critical traits like error handling (e.g., what happens if the microflow isn't found), performance considerations, or output format details. For a tool with no annotations, this leaves significant gaps in understanding its behavior beyond the basic purpose.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence in Dutch: 'Zoekt een microflow op naam en geeft de logische stappen terug.' It is front-loaded with the core action and outcome, with zero wasted words. Every part of the sentence directly contributes to understanding the tool's function, making it highly efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (a search tool with no output schema and no annotations), the description is incomplete. It doesn't explain what 'logical steps' entail, how they are formatted, or any limitations (e.g., only works for local microflows). With no output schema to clarify return values and no annotations for behavioral context, the description should provide more detail to fully guide the agent, but it falls short.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with the parameter 'name' documented as 'Naam van de microflow' (Name of the microflow). The description adds no additional parameter semantics beyond what the schema provides, such as format examples or constraints. Since schema coverage is high, the baseline score of 3 is appropriate, as the schema adequately documents the parameter without needing extra details in the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Zoekt een microflow op naam en geeft de logische stappen terug' (Searches for a microflow by name and returns the logical steps). It specifies the verb ('zoeken' - search), resource ('microflow'), and output ('logical steps'), which is specific and actionable. However, it doesn't explicitly differentiate from sibling tools like 'get_domain_model' or 'inspect_database_schema', which likely serve different purposes but share a similar inspection theme.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools, prerequisites, or contextual cues for selection. For example, it doesn't clarify if this is for debugging, documentation, or analysis, or how it differs from 'list_local_modules'. Without such guidance, the agent must infer usage from the tool name and description alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_local_modulesB
Geeft een overzicht van alle modules in het geopende .mpr bestand.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool provides an overview but doesn't describe what 'overzicht' entails (e.g., list format, metadata included), whether it's read-only or has side effects, or any constraints like performance or file access requirements. For a tool with zero annotation coverage, this leaves significant gaps in understanding its behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence in Dutch that directly states the tool's function without unnecessary words. It's front-loaded with the core purpose and appropriately sized for a simple tool with no parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (0 parameters, no output schema, no annotations), the description is minimally adequate. It states what the tool does but lacks details on output format, behavioral traits, or usage context. Without annotations or output schema, the description should ideally provide more context about what 'overzicht' includes, but it's complete enough for basic understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters, and schema description coverage is 100% (empty schema). The description doesn't need to add parameter information, so it meets the baseline of 4 for tools with no parameters, as there's no gap to compensate for.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Geeft een overzicht van alle modules in het geopende .mpr bestand' (Provides an overview of all modules in the opened .mpr file). It specifies the verb ('geeft een overzicht' - provides an overview) and resource ('modules in het geopende .mpr bestand'), though it doesn't explicitly differentiate from sibling tools like 'get_domain_model' or 'inspect_local_microflow'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing an opened .mpr file), exclusions, or comparisons to sibling tools like 'inspect_local_microflow' which might handle microflows within modules. Usage is implied by the resource scope but not explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
4 tool updates
v1.0.0- First observed
get_domain_model - First observed
inspect_database_schema - First observed
inspect_local_microflow - First observed
list_local_modules
TDQS
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.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Let AI agents query data and act across all your business apps via MCP.
The Cortex MCP server provides read-only access to real-time engineering context from the Cortex developer portal, allowing AI coding assistants to answer natural language questions about your organization's catalog (microservices, libraries, domains, teams, infrastructure), scorecards (engineering standards and best practices), initiatives (goals and deadlines), and Engineering Intelligence metrics. It includes tools for querying documentation, tracking personal entities, and accessing AI-assisted insights across the entire Cortex ecosystem.
Agent-native MCP server over the public saagarpatel.dev corpus. Read-only, stateless.
Read-only MCP server exposing a user ORANO library to their own AI agent.
1
Related MCP Servers
- AlicenseAqualityNot gradedmaintenanceEnables AI assistants to extract and document Mendix Studio Pro modules by interrogating local .mpr files. Generates comprehensive JSON documentation of domain models, pages, microflows, and enumerations without sending data to the cloud.171-
- AlicenseNot gradedqualityAmaintenancePrivacy-first, read-only repo intelligence for AI coding agents: scans local codebases and recommends MCP servers, repos, and research without sending data to the cloud.1Apache 2.0
- FlicenseNot gradedqualityCmaintenanceEnables AI agents to read and modify Mendix application models through MCP tools for creating modules, entities, pages, microflows, deploying, and querying runtime data.1-
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to locally search, query, and understand codebases with token-efficient context, dependency graphs, history, architecture diagrams, and metrics through MCP.1051MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/EGorsel/mendix-local-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server