ivanmartin33/dolibarr-mcp-server
If you are the rightful owner of dolibarr-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.
The Dolibarr MCP Server is a Model Context Protocol compliant server that facilitates structured access to Dolibarr ERP/CRM API endpoints.
Dolibarr MCP Server
A compliant Model Context Protocol (MCP) server that provides structured access to Dolibarr ERP/CRM API endpoints. Built with Nitro and implementing the JSON-RPC 2.0 specification.
Features
- ✅ MCP Compliant: Full implementation of the Model Context Protocol specification
- 🔧 Complete CRUD Operations: GET, POST, PUT, DELETE support for all Dolibarr endpoints
- 🚀 Production Ready: Built with Nitro for optimal performance and deployment flexibility
- 🔒 Secure: Environment-based configuration with API key authentication
- 📦 Easy Integration: Compatible with n8n, Claude, and other MCP clients
- 🌍 Multi-runtime: Supports Node.js, Bun, and Deno
Quick Start
Prerequisites
- Node.js 18+
- pnpm 9.0+
- Dolibarr instance with REST API enabled
- Valid Dolibarr API key
Installation
# Clone the repository
git clone https://github.com/ivanmartin33/dolibarr-mcp-server.git
cd dolibarr-mcp-server
# Install dependencies
pnpm install
# Copy environment file
cp .env.example .env
# Edit .env with your Dolibarr configuration
# Start development server
pnpm run dev
Environment Setup
Create a .env file in your project root:
DOLI_URL=https://your-dolibarr-instance.com/api/index.php
DOLI_KEY=your-dolibarr-api-key
Running the Server
# Development
pnpm run dev
# Production build
pnpm run build
# Start production server
pnpm run start
The server will be available at http://localhost:3000
MCP Tools Available
The server exposes four main tools for interacting with Dolibarr:
1. dolibarr_get
Fetch data from Dolibarr API using GET method.
{
"name": "dolibarr_get",
"arguments": {
"endpoint": "thirdparties",
"id": "1",
"params": {
"limit": "10"
}
}
}
2. dolibarr_post
Create new data in Dolibarr API using POST method.
{
"name": "dolibarr_post",
"arguments": {
"endpoint": "thirdparties",
"data": {
"name": "New Company",
"client": 1
}
}
}
3. dolibarr_put
Update existing data in Dolibarr API using PUT method.
{
"name": "dolibarr_put",
"arguments": {
"endpoint": "thirdparties",
"id": "1",
"data": {
"name": "Updated Company Name"
}
}
}
4. dolibarr_delete
Delete data from Dolibarr API using DELETE method.
{
"name": "dolibarr_delete",
"arguments": {
"endpoint": "thirdparties",
"id": "1"
}
}
API Endpoints
Main MCP Endpoint
POST /mcp- Main JSON-RPC 2.0 endpoint for MCP communication
Additional Endpoints
GET /mcp/describe- Server information and tool descriptionsPOST /mcp/tools/call- Direct tool execution endpointGET /- Landing page with server information
MCP Protocol Examples
Initialize Connection
curl -X POST http://localhost:3000/mcp \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "initialize",
"params": {},
"id": 1
}'
List Available Tools
curl -X POST http://localhost:3000/mcp \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "tools/list",
"params": {},
"id": 2
}'
Execute a Tool
curl -X POST http://localhost:3000/mcp \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "dolibarr_get",
"arguments": {
"endpoint": "users"
}
},
"id": 3
}'
Integration with n8n
The Dolibarr MCP Server can be easily integrated with n8n for workflow automation:
Connection URLs
- n8n in Docker:
http://host.docker.internal:3000/mcp - Local n8n:
http://localhost:3000/mcp
Starting Server for Docker Access
NITRO_HOST=0.0.0.0 NITRO_PORT=3000 pnpm run dev
HTTP Request Node Configuration
In your n8n workflow, add an HTTP Request node:
- Method: POST
- URL:
http://host.docker.internal:3000/mcp(for Docker) orhttp://localhost:3000/mcp(local) - Headers:
{ "Content-Type": "application/json" } - Body:
{ "jsonrpc": "2.0", "method": "tools/call", "params": { "name": "dolibarr_get", "arguments": { "endpoint": "{{ $json.endpoint }}", "id": "{{ $json.id }}" } }, "id": "{{ $runIndex }}" }
Dolibarr Configuration
API Setup in Dolibarr
-
Enable REST API Module:
- Go to
Home > Setup > Modules/Applications - Activate "Web services REST API"
- Go to
-
Create API User:
- Go to
Users & Groups - Create a new user or select existing
- Generate API key in user profile
- Go to
-
Set Permissions:
- Assign appropriate permissions to the API user
- Recommended: Create dedicated API user with minimal required rights
Common Dolibarr Endpoints
users- User managementthirdparties- Companies/customersproducts- Product catalogorders- Sales ordersinvoices- Customer invoicesproposals- Commercial proposalscontracts- Contractsprojects- Project management
Production Deployment
Environment Variables
| Variable | Description | Default |
|---|---|---|
NITRO_DOLI_URL | Dolibarr API base URL | http://localhost/api/index.php |
NITRO_DOLI_KEY | Dolibarr API key | super_api_key |
NITRO_HOST | Server host | localhost |
NITRO_PORT | Server port | 3000 |
Docker
FROM node:18-alpine
# Enable corepack for pnpm
RUN corepack enable
WORKDIR /app
COPY package.json pnpm-lock.yaml ./
RUN pnpm install --frozen-lockfile --prod
COPY . .
RUN pnpm run build
ENV NITRO_HOST=0.0.0.0
ENV NITRO_PORT=3000
EXPOSE 3000
CMD ["node", ".output/server/index.mjs"]
Docker Compose
version: '3.8'
services:
dolibarr-mcp:
build: .
ports:
- "3000:3000"
environment:
- DOLI_URL=http://host.docker.internal:4000/api/index.php
- DOLI_KEY=your-api-key
- NITRO_HOST=0.0.0.0
- NITRO_PORT=3000
restart: unless-stopped
License
This project is licensed under the MIT License - see the file for details.