NOVA MCP Server
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., "@NOVA MCP ServerShow me unpaid customer invoices with aging buckets"
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.
NOVA MCP Server
Read-only Model Context Protocol server exposing the accounting and business data of the NOVA demonstration company (Dolibarr 23.0.3), for progressive investigation by an AI assistant via Cowork. See spec-final.md for the full specification.
Architecture
Auth (
app/auth/): Keycloak JWT validation (JWKS viaPyJWKClient), identity resolution(iss, sub),CredentialStore(local YAML) mapping to a per-user Dolibarr API key,credential_gatemiddleware (403 if identity is not mapped).Dolibarr (
app/dolibarr/): centralized HTTP client (persistent connection pool, limited retries, Decimal conversion) for the standard Dolibarr REST API (third parties, invoices, payments, bank).NOVA companion module (
dolibarr-module/): the chart of accounts and the general ledger are not exposed by the standard Dolibarr API — see the dedicated section below.Privacy Layer (
app/privacy/): replaces any third-party identity with a stable technical reference (THIRDPARTY:<id>, etc.), systematically applied by the services.Domain (
app/domain/): deterministic accounting rules (EBITDA, aging, pagination, validation) independent of any framework.Services (
app/services/): business logic, one module per domain.MCP (
app/mcp_server/): MCP server (official Anthropic SDK), tools per domain, central error-translation + logging decorator (errors.py).
Related MCP server: ERPNext MCP Server
Why a Dolibarr companion module?
The standard Dolibarr 23.0 REST API exposes no endpoint for the chart of accounts or the general ledger (the only native entry point, GET /accountancy/exportdata, writes a file server-side without returning it in the HTTP response). dolibarr-module/nova/ adds two read-only endpoints (GET /nova/accounts, GET /nova/bookkeeping) under the same native REST mechanism (DOLAPIKEY, application permissions). This module is installed separately on the Dolibarr NOVA instance — see dolibarr-module/README.md.
Local startup
uv sync --extra dev
cp .env.example .env # renseigner OIDC_ISSUER, CREDENTIAL_STORE_PATH, DOLIBARR_API_URL
cp credentials/credentials.example.yaml credentials/credentials.yaml # ne pas versionner
uv run uvicorn app.main:app --reloadGET /health/live,GET /health/ready: health checks (unauthenticated).POST /mcp: MCP endpoint (Streamable HTTP).
Tests
uv run pytest # suite complète (couverture terminal + coverage.xml)
uv run pytest --cov=app --cov-report=htmlNo database: tests use a test double (tests/fixtures/) for DolibarrClient, not PostgreSQL/NullPool fixtures.
Docker
docker compose up --buildThe CredentialStore is mounted read-only (./credentials:/app/credentials:ro) — never version credentials/credentials.yaml.
Prerequisites on the Dolibarr NOVA side
Install
dolibarr-module/nova/(see its README).For each auditor: create a dedicated Dolibarr user, generate their
DOLAPIKEY, grant the right Read the chart of accounts and the general ledger via the NOVA API, then add their entry tocredentials/credentials.yaml(with thesubof their Keycloak token) — restart the MCP server for it to take effect (no hot reload, H2).For
get_company: set the Dolibarr constantAPI_LOGINS_ALLOWED_FOR_GET_COMPANY(or grant the admin right) for each login used — otherwise this specific tool fails with an upstream 403 error (expected behavior).
This server cannot be installed
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 Servers
- FlicenseNot gradedqualityDmaintenanceEnables e-commerce shop owners to query their business data using natural language through local AI models. Provides secure, privacy-focused access to sales reports, inventory management, customer analytics, and order data without sending sensitive information to external services.
- AlicenseNot gradedqualityDmaintenanceEnables comprehensive interaction with ERPNext systems through natural language, providing secure access to any document type (customers, items, invoices, etc.) with enterprise-grade permission controls and audit logging.MIT
- AlicenseCqualityCmaintenanceA complete MCP server for Dolibarr ERP/CRM, enabling AI assistants to perform billing, accounting, CRM, project, stock, and contract management.100328MIT
- AlicenseNot gradedqualityBmaintenanceA read-only MCP server for the NuMetric.work accounting/POS/ERP platform, exposing 38 tools to query live business data such as financial statements, invoices, taxes, projects, inventory, and documents. It enables AI assistants to answer from real accounting data without any create, edit, or delete capabilities.MIT
Related MCP Connectors
Open-source AI accounting skills verified by licensed accountants (tax, VAT, payroll).
Read-only NuMetric.work accounting & ERP data: statements, KPIs, reports, invoices, documents.
AI-native ERP MCP: ES/EU fiscal compliance (VeriFactu/TicketBAI/Facturae), invoicing, tax, banking
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/CATS70/dolibarr-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server