Expand API.md with full parameter tables for all new tools: shipments, contracts, interventions, expense reports, tickets, agenda events, payments, documents, members, stock movements, contact CRUD, task CRUD, dictionaries, bank transactions, categories, users. Update README tool listing to match. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
dolibarr-api-mcp
A Model Context Protocol (MCP) server that exposes the Dolibarr ERP/CRM REST API as tools for AI assistants.
Connects to Dolibarr instances over HTTP using the built-in REST API (/api/index.php) and API key authentication (DOLAPIKEY header). Claude, Cursor, and other MCP clients can manage third parties, invoices, proposals, orders, products, projects, and more — without SSH or direct server access.
Table of Contents
Background
Dolibarr ships with a comprehensive REST API that supports ERP/CRM operations over HTTP. This MCP server wraps that API into structured tools, enabling:
- Third party management (customers, suppliers, prospects — list, create, update, delete)
- Invoice management (list, create, add lines, validate, mark as paid)
- Commercial proposals / quotes (list, create, add lines, validate, close)
- Customer order management (list, create, validate)
- Product and service catalog (list, create, update, stock levels)
- Contact / address management
- Project and task management
- Category management
- Bank account listing
- Supplier invoice and order listing
- Warehouse and stock management
- Company setup and system status
- Raw API passthrough for any endpoint
Supports multiple named connections for managing several Dolibarr instances from a single MCP server.
Install
git clone https://git.mokoconsulting.tech/MokoConsulting/dolibarr-api-mcp.git
cd dolibarr-api-mcp
npm install
npm run build
npm run setup
The setup wizard will prompt for your Dolibarr URL and API key. Run it again to add more connections — each site gets its own name, URL, and API key so you can manage multiple Dolibarr instances from a single MCP server.
Usage
Add to Claude Code
In your Claude Code MCP settings (~/.claude.json or project .mcp.json):
{
"mcpServers": {
"dolibarr": {
"command": "node",
"args": ["/path/to/dolibarr-api-mcp/dist/index.js"]
}
}
}
Configuration
The easiest way to configure is npm run setup, which walks you through it interactively. Run it multiple times to add connections for each Dolibarr instance you manage.
You can also create the config manually. Copy config.example.json to ~/.dolibarr-api-mcp.json and edit:
cp config.example.json ~/.dolibarr-api-mcp.json
Each connection needs the Dolibarr instance's base URL and an API key (generated in Dolibarr under Setup > Security > API or per-user settings):
{
"defaultConnection": "production",
"connections": {
"local-dev": {
"baseUrl": "https://localhost:8080",
"apiKey": "your-dolibarr-api-key-here",
"insecure": true
},
"production": {
"baseUrl": "https://erp.example.com",
"apiKey": "your-production-api-key"
},
"staging": {
"baseUrl": "https://erp-staging.example.com",
"apiKey": "your-staging-api-key"
}
}
}
| Field | Required | Description |
|---|---|---|
baseUrl |
Yes | Dolibarr instance URL (no trailing slash) |
apiKey |
Yes | Dolibarr API key (DOLAPIKEY header auth) |
insecure |
No | Skip TLS verification for self-signed certs |
Tools (89)
Third Parties
| Tool | Description |
|---|---|
dolibarr_thirdparties_list |
List third parties with customer/supplier/prospect filters |
dolibarr_thirdparty_get |
Get a single third party by ID |
dolibarr_thirdparty_create |
Create a new third party |
dolibarr_thirdparty_update |
Update an existing third party |
dolibarr_thirdparty_delete |
Delete a third party |
Invoices
| Tool | Description |
|---|---|
dolibarr_invoices_list |
List invoices with status and customer filters |
dolibarr_invoice_get |
Get a single invoice by ID |
dolibarr_invoice_create |
Create a new invoice |
dolibarr_invoice_add_line |
Add a line item to an invoice |
dolibarr_invoice_validate |
Validate (finalize) a draft invoice |
dolibarr_invoice_set_paid |
Mark an invoice as paid |
dolibarr_invoice_payments |
List payments for an invoice |
dolibarr_invoice_add_payment |
Add a payment to an invoice |
Proposals (Quotes)
| Tool | Description |
|---|---|
dolibarr_proposals_list |
List commercial proposals |
dolibarr_proposal_get |
Get a single proposal by ID |
dolibarr_proposal_create |
Create a new proposal |
dolibarr_proposal_add_line |
Add a line item to a proposal |
dolibarr_proposal_validate |
Validate a draft proposal |
dolibarr_proposal_close |
Close a proposal (sign or refuse) |
Orders
| Tool | Description |
|---|---|
dolibarr_orders_list |
List customer orders |
dolibarr_order_get |
Get a single order by ID |
dolibarr_order_create |
Create a new order |
dolibarr_order_add_line |
Add a line to a customer order |
dolibarr_order_validate |
Validate a draft order |
Products / Services
| Tool | Description |
|---|---|
dolibarr_products_list |
List products and services with filters |
dolibarr_product_get |
Get a single product by ID |
dolibarr_product_create |
Create a new product or service |
dolibarr_product_update |
Update a product or service |
dolibarr_product_stock |
Get stock levels across warehouses |
Contacts / Addresses
| Tool | Description |
|---|---|
dolibarr_contacts_list |
List contacts/addresses |
dolibarr_contact_get |
Get a single contact by ID |
dolibarr_contact_create |
Create a new contact/address |
dolibarr_contact_update |
Update a contact/address |
dolibarr_contact_delete |
Delete a contact/address |
Shipments
| Tool | Description |
|---|---|
dolibarr_shipments_list |
List shipments (expeditions) |
dolibarr_shipment_get |
Get a single shipment by ID |
dolibarr_shipment_create |
Create a new shipment |
dolibarr_shipment_validate |
Validate a draft shipment |
dolibarr_shipment_close |
Close a shipment (mark as delivered) |
Contracts / Subscriptions
| Tool | Description |
|---|---|
dolibarr_contracts_list |
List contracts/subscriptions |
dolibarr_contract_get |
Get a single contract by ID |
dolibarr_contract_create |
Create a new contract |
dolibarr_contract_validate |
Validate a draft contract |
Interventions
| Tool | Description |
|---|---|
dolibarr_interventions_list |
List interventions (field service) |
dolibarr_intervention_get |
Get a single intervention by ID |
Expense Reports
| Tool | Description |
|---|---|
dolibarr_expensereports_list |
List expense reports |
dolibarr_expensereport_get |
Get a single expense report by ID |
dolibarr_expensereport_create |
Create a new expense report |
Tickets (Helpdesk)
| Tool | Description |
|---|---|
dolibarr_tickets_list |
List helpdesk tickets |
dolibarr_ticket_get |
Get a single ticket by ID |
dolibarr_ticket_create |
Create a new helpdesk ticket |
Agenda / Events
| Tool | Description |
|---|---|
dolibarr_agendaevents_list |
List agenda events |
dolibarr_agendaevent_get |
Get a single agenda event by ID |
dolibarr_agendaevent_create |
Create a new agenda event |
dolibarr_agendaevent_update |
Update an agenda event |
Documents
| Tool | Description |
|---|---|
dolibarr_documents_list |
List documents attached to an object |
dolibarr_document_download |
Download/get content of a document |
dolibarr_document_builddoc |
Generate/build a document (e.g. PDF invoice) |
Projects
| Tool | Description |
|---|---|
dolibarr_projects_list |
List projects |
dolibarr_project_get |
Get a single project by ID |
dolibarr_project_create |
Create a new project |
dolibarr_project_update |
Update a project |
Tasks
| Tool | Description |
|---|---|
dolibarr_tasks_list |
List project tasks |
dolibarr_task_get |
Get a single task by ID |
dolibarr_task_create |
Create a new project task |
dolibarr_task_update |
Update a project task |
dolibarr_task_timespent_list |
List time spent entries for a task |
dolibarr_task_timespent_add |
Add time spent on a task |
Members
| Tool | Description |
|---|---|
dolibarr_members_list |
List association members |
dolibarr_member_get |
Get a single member by ID |
Stock / Warehouses
| Tool | Description |
|---|---|
dolibarr_warehouses_list |
List warehouses |
dolibarr_stockmovements_list |
List stock movements |
dolibarr_stockmovement_create |
Create a stock movement (add/remove stock) |
Other
| Tool | Description |
|---|---|
dolibarr_users_list |
List Dolibarr users |
dolibarr_user_get |
Get a single user by ID |
dolibarr_user_create |
Create a new Dolibarr user |
dolibarr_categories_list |
List categories by type |
dolibarr_category_get |
Get a single category by ID |
dolibarr_category_create |
Create a new category |
dolibarr_bankaccounts_list |
List bank accounts |
dolibarr_bankaccount_lines |
List transactions for a bank account |
dolibarr_supplier_invoices_list |
List supplier invoices |
dolibarr_supplier_orders_list |
List supplier/purchase orders |
dolibarr_setup_company |
Get company/entity information |
dolibarr_setup_dictionary |
Get dictionary entries (countries, currencies, payment types, etc.) |
dolibarr_setup_modules |
List enabled Dolibarr modules |
dolibarr_status |
Get Dolibarr version and status |
dolibarr_api_request |
Raw API request to any endpoint |
dolibarr_list_connections |
List configured connections |
All tools accept an optional connection parameter to target a specific named connection.
Contributing
Contributions are welcome! Please read CONTRIBUTING.md for details on our code of conduct and the process for submitting pull requests.
This project follows the Contributor Covenant Code of Conduct.
License
This project is licensed under the GNU General Public License v3.0 or later - see the LICENSE file for details.
Copyright © 2026 Moko Consulting hello@mokoconsulting.tech
Maintainers
For questions or support, please contact: hello@mokoconsulting.tech
Revision History
| Date | Version | Author | Notes |
|---|---|---|---|
| 2026-05-07 | 0.0.1 | jmiller | Initial MCP server with Dolibarr REST API tools |