I’m currently evaluating the state of AI and how it can interface with different systems i’m running.
To let AI (chatbots) interface with different tools (Like Dolibarr), a layer (on top of API’s) is used called an MCP server.
I found this Dolibarr ERP MCP server - a Hugging Face Space by Agents-MCP-Hackathon demo project. And MCP server for dolibarr.
I was wondering if this is something that is being evaluated to bring inside Dolibarr itself.
I found Module AI (Artificial Intelligence) - Dolibarr ERP CRM Wiki, but that is more of an internal AI inside dolibarr vs letting external tools interface with Dolibarr.
I’m just wondering I guess what the future brings for Dolibarr on this side/if any of you actually tried interfacing with Dolibarr this way and what the experience was.
Hi @aforte
We are interested on this MCP project.
Let me know how we can participate and get the community work on this topic.
I launched a topic in the French side to get an outcome too.
Are you still working/evaluating on that Dolibarr MCP server ?
I’m currently exploring ways to interact with Dolibarr leveragin AI capabilities and I have developed a module Komodr (available in the Dolistore) that allows users to interact with Dolibarr (some aspects of it) using natural language.
Ex user natural query typed or spoken with built-in Google Chrome STT:
“Show me last year’s invoices that are unpaid”
“Make a list of last month’s orders” etc.
etc.
I am interested in all AI related projects, discussions.
Having a MCP server inside dolibarr is a “Must have” feature. Currently there is a module ai with only client features.
If you set option MAIN_FEATURES_LEVEL to 2 , you will also see a tab “MCP server” to setup a mcp server, but nothing was yet coded…
So contribution (pull request) with a first implementation of a mcp, even if very light are welcome (the feature has status develop so we can merge unstable feature on this feature)…
I am sure that if we have a first example of a dirty implementation, it can become very quickly a mature official feature. Community developers just need a first example of implementation…
I agree with @Eldy: AI integration is essential for Dolibarr’s future.
I’ve been experimenting with a different approach focused on data privacy.
The Privacy Challenge
Many companies can’t send business data to external LLMs (GDPR, confidentiality). This blocks traditional AI integration.
My Experiment: Komodr
I built a POC where the LLM interprets intent but never sees your data.
Simple example:
User: "Show me ABC invoices from October"
↓
LLM produces: {"action":"search", "company":"ABC", "date":"2025-10"}
↓
Dolibarr executes locally → LLM never sees results
What’s Exposed vs. Protected
Based on real usage:
LLM sees:
What you type (“ABC”, “October”, “1500€”)
LLM never sees:
Complete customer/invoice lists
Query results (amounts, counts)
Database structure
Anything you don’t explicitly type
Result: ~95% reduction in data exposure vs. traditional approaches.
Two Different Use Cases
Use Case 1: AI Assistant INSIDE Dolibarr (Komodr’s focus)
User queries their own Dolibarr via natural language
All execution happens locally
Use Case 2: External LLM queries Dolibarr (Traditional MCP)
ChatGPT/Claude accesses your Dolibarr data
Requires exposing an API
My assumption: Most users want Use Case 1.
Technical Note
The approach uses a JSON protocol as a “semantic pivot” (inspired by research from Tétras Libre on semantic transduction). It separates intent interpretation from data access.
This is what we did for our PBX calls processor. We have a local server in the office which is connected to our PBX. The server is running Ollama3 and Whisper. Right now I’ve kept it out of Dolibarr, but it seems like the logical steps forward would build upon this as you’re suggesting as it’s worked for me.
Our python tool has a list of possibilities and endpoints, without actually passing key data to any external services. Our LLM processes the call and then is able to put it into place without reading the contents of the DB. All matching and DB interface is done within a Dolibarr module whose job is to catch and display information - it doesn’t provide details to the LLM.
Use Case 1 is my choice also. Use case 2 is exciting and terrifying at the same time.