npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@mokoconsulting/mcp-mokocrm-api

v1.0.0

Published

MCP server for Dolibarr ERP/CRM REST API operations

Readme

dolibarr-api-mcp

MCP server for Dolibarr ERP/CRM REST API operations

Language License Node MCP Wiki

| Field | Value | |---|---| | Language | TypeScript | | License | GPL-3.0-or-later | | Platform | Gitea | | Node.js | >= 20.0.0 | | MCP SDK | @modelcontextprotocol/sdk ^1.12.1 |

A Model Context Protocol (MCP) server that bridges AI assistants (Claude Code, Cursor, etc.) with Dolibarr's built-in REST API. Manage invoices, proposals, orders, products, third parties, projects, and more -- directly from your AI assistant.


Quick Start

git clone https://git.mokoconsulting.tech/MokoConsulting/dolibarr-api-mcp.git
cd dolibarr-api-mcp
npm install
npm run build
npm run setup

The interactive setup wizard will prompt for your Dolibarr instance URL, API key, and TLS settings.

Register with Claude Code (~/.claude.json):

{
  "mcpServers": {
    "dolibarr-api": {
      "type": "stdio",
      "command": "node",
      "args": ["/path/to/dolibarr-api-mcp/dist/index.js"]
    }
  }
}

Verify with: dolibarr_status -- returns the Dolibarr version and server info.


Tools (85)

Every tool accepts an optional connection parameter to target a specific named Dolibarr instance (defaults to the configured default).

Third Parties (5)

| Tool | Description | |---|---| | dolibarr_thirdparties_list | List/search third parties with pagination and SQL filters | | dolibarr_thirdparty_get | Get a third party by ID | | dolibarr_thirdparty_create | Create a new third party (customer, supplier, or prospect) | | dolibarr_thirdparty_update | Update an existing third party | | dolibarr_thirdparty_delete | Delete a third party |

Contacts (5)

| Tool | Description | |---|---| | dolibarr_contacts_list | List/search contacts with pagination | | dolibarr_contact_get | Get a contact by ID | | dolibarr_contact_create | Create a new contact linked to a third party | | dolibarr_contact_update | Update an existing contact | | dolibarr_contact_delete | Delete a contact |

Invoices (7)

| Tool | Description | |---|---| | dolibarr_invoices_list | List/search invoices with status and date filters | | dolibarr_invoice_get | Get an invoice by ID | | dolibarr_invoice_create | Create a new invoice for a third party | | dolibarr_invoice_add_line | Add a line item to an invoice | | dolibarr_invoice_validate | Validate a draft invoice | | dolibarr_invoice_set_paid | Mark an invoice as paid | | dolibarr_invoice_add_payment | Record a payment against an invoice | | dolibarr_invoice_payments | List payments for an invoice |

Proposals / Quotes (7)

| Tool | Description | |---|---| | dolibarr_proposals_list | List/search proposals with pagination | | dolibarr_proposal_get | Get a proposal by ID | | dolibarr_proposal_create | Create a new proposal for a third party | | dolibarr_proposal_add_line | Add a line item to a proposal | | dolibarr_proposal_validate | Validate a draft proposal | | dolibarr_proposal_close | Close a proposal (signed or refused) |

Orders (5)

| Tool | Description | |---|---| | dolibarr_orders_list | List/search orders with pagination | | dolibarr_order_get | Get an order by ID | | dolibarr_order_create | Create a new order for a third party | | dolibarr_order_add_line | Add a line item to an order | | dolibarr_order_validate | Validate a draft order |

Products & Services (5)

| Tool | Description | |---|---| | dolibarr_products_list | List/search products and services | | dolibarr_product_get | Get a product by ID | | dolibarr_product_create | Create a new product or service | | dolibarr_product_update | Update an existing product | | dolibarr_product_stock | Get stock levels for a product |

Projects (4)

| Tool | Description | |---|---| | dolibarr_projects_list | List/search projects | | dolibarr_project_get | Get a project by ID | | dolibarr_project_create | Create a new project | | dolibarr_project_update | Update an existing project |

Tasks (6)

| Tool | Description | |---|---| | dolibarr_tasks_list | List tasks (optionally filtered by project) | | dolibarr_task_get | Get a task by ID | | dolibarr_task_create | Create a new task within a project | | dolibarr_task_update | Update an existing task | | dolibarr_task_timespent_list | List time entries for a task | | dolibarr_task_timespent_add | Add a time entry to a task |

Contracts (4)

| Tool | Description | |---|---| | dolibarr_contracts_list | List/search contracts | | dolibarr_contract_get | Get a contract by ID | | dolibarr_contract_create | Create a new contract | | dolibarr_contract_validate | Validate a draft contract |

Shipments (5)

| Tool | Description | |---|---| | dolibarr_shipments_list | List/search shipments | | dolibarr_shipment_get | Get a shipment by ID | | dolibarr_shipment_create | Create a new shipment from an order | | dolibarr_shipment_validate | Validate a draft shipment | | dolibarr_shipment_close | Close a shipment |

Agenda Events (4)

| Tool | Description | |---|---| | dolibarr_agendaevents_list | List/search agenda events | | dolibarr_agendaevent_get | Get an agenda event by ID | | dolibarr_agendaevent_create | Create a new agenda event | | dolibarr_agendaevent_update | Update an existing agenda event |

Tickets (3)

| Tool | Description | |---|---| | dolibarr_tickets_list | List/search tickets | | dolibarr_ticket_get | Get a ticket by ID | | dolibarr_ticket_create | Create a new support ticket |

Members (2)

| Tool | Description | |---|---| | dolibarr_members_list | List/search members (foundation/association module) | | dolibarr_member_get | Get a member by ID |

Users (3)

| Tool | Description | |---|---| | dolibarr_users_list | List Dolibarr users | | dolibarr_user_get | Get a user by ID | | dolibarr_user_create | Create a new Dolibarr user |

Expense Reports (3)

| Tool | Description | |---|---| | dolibarr_expensereports_list | List/search expense reports | | dolibarr_expensereport_get | Get an expense report by ID | | dolibarr_expensereport_create | Create a new expense report |

Interventions (2)

| Tool | Description | |---|---| | dolibarr_interventions_list | List/search interventions | | dolibarr_intervention_get | Get an intervention by ID |

Documents (3)

| Tool | Description | |---|---| | dolibarr_documents_list | List documents attached to a module element | | dolibarr_document_download | Download a document file | | dolibarr_document_builddoc | Generate a PDF document for an element |

Stock & Warehouses (3)

| Tool | Description | |---|---| | dolibarr_warehouses_list | List warehouses | | dolibarr_stockmovements_list | List stock movements | | dolibarr_stockmovement_create | Create a stock movement |

Bank Accounts (2)

| Tool | Description | |---|---| | dolibarr_bankaccounts_list | List bank accounts | | dolibarr_bankaccount_lines | List transaction lines for a bank account |

Categories (3)

| Tool | Description | |---|---| | dolibarr_categories_list | List categories by type | | dolibarr_category_get | Get a category by ID | | dolibarr_category_create | Create a new category |

Supplier Invoices & Orders (2)

| Tool | Description | |---|---| | dolibarr_supplier_invoices_list | List supplier (vendor) invoices | | dolibarr_supplier_orders_list | List supplier (vendor) orders |

Setup & System (5)

| Tool | Description | |---|---| | dolibarr_status | Check Dolibarr instance status and version | | dolibarr_setup_company | Get company/organization setup info | | dolibarr_setup_modules | List enabled Dolibarr modules | | dolibarr_setup_dictionary | Query Dolibarr dictionary tables (countries, currencies, etc.) | | dolibarr_list_connections | List all configured Dolibarr connections |

Generic (1)

| Tool | Description | |---|---| | dolibarr_api_request | Make a raw API request to any Dolibarr endpoint |


Configuration

The config file is stored at ~/.dolibarr-api-mcp.json (or set DOLIBARR_API_MCP_CONFIG for a custom path):

{
  "defaultConnection": "production",
  "connections": {
    "production": {
      "baseUrl": "https://erp.example.com",
      "apiKey": "your-api-key"
    },
    "staging": {
      "baseUrl": "https://erp-staging.example.com",
      "apiKey": "your-staging-key",
      "insecure": true
    }
  }
}

| Field | Required | Description | |---|---|---| | defaultConnection | Yes | Name of the default connection | | connections | Yes | Map of named connections | | baseUrl | Yes | Dolibarr instance URL (no trailing slash) | | apiKey | Yes | Dolibarr API key (DOLAPIKEY header auth) | | insecure | No | Set true to skip TLS verification (self-signed certs) |


Architecture

AI Assistant  <-->  MCP (stdio)  <-->  DolibarrClient  <-->  Dolibarr REST API
                                                              /api/index.php
  • Transport: stdio (standard input/output)
  • Auth: DOLAPIKEY HTTP header (Dolibarr's native per-user API key)
  • HTTP: Uses node:https/node:http (not fetch) for reliable self-signed TLS support on Node.js 24+
  • Validation: Zod schemas for all tool inputs
  • Filtering: buildSqlFilter() helper for Dolibarr's sqlfilters parameter with injection-safe escaping

Source Layout

| File | Purpose | |---|---| | src/index.ts | Server entry point -- registers all MCP tools with Zod schemas | | src/client.ts | DolibarrClient HTTP class (GET/POST/PUT/DELETE) | | src/config.ts | Configuration loader for multi-instance connections | | src/types.ts | TypeScript interfaces (DolibarrConnection, DolibarrConfig, ApiResponse) | | scripts/setup.mjs | Interactive setup wizard for creating the config file | | config.example.json | Example configuration with multiple connections |


Examples

List all customers:

dolibarr_thirdparties_list with search="acme", limit=10

Create an invoice and add a line:

dolibarr_invoice_create with socid=42
dolibarr_invoice_add_line with id=<invoice_id>, desc="Consulting services", subprice=150.00, qty=8
dolibarr_invoice_validate with id=<invoice_id>

Check a specific Dolibarr instance:

dolibarr_status with connection="staging"

Raw API request for unsupported endpoints:

dolibarr_api_request with method="GET", endpoint="/categories", params={"type": "product"}

Guides

| Page | Description | |---|---| | INSTALLATION | Prerequisites, install steps, Claude Code registration, troubleshooting |

Reference

| Page | Description | |---|---| | ARCHITECTURE | Component overview, design decisions, data flow, API module coverage |


Documentation

Full documentation is available on the Wiki.

Contributing

See CONTRIBUTING.md for development guidelines and contribution instructions.

License

This project is licensed under the GNU General Public License v3.0 or later -- see the LICENSE file.


Moko Consulting -- MokoStandards