Files
dolibarr-mcp/docs/development.md
2026-02-04 16:34:12 +01:00

2.4 KiB
Raw Blame History

Development

This project uses the same lightweight tooling philosophy as prestashop-mcp. The code lives under src/, tests under tests/ and optional Docker assets are kept separate in docker/.

Install development dependencies

It is recommended to use a virtual environment to avoid conflicts with system packages (especially on Linux systems with externally managed environments).

# Create a virtual environment
python3 -m venv .venv

# Activate the virtual environment
source .venv/bin/activate  # On Linux/macOS
# .venv\Scripts\activate   # On Windows

# Install dependencies
pip install -r requirements.txt
pip install -e .

Run the test suite

Once your virtual environment is active:

pytest

To gather coverage metrics:

pytest --cov=src/dolibarr_mcp --cov-report=term-missing

If you encounter "command not found" errors, ensure your virtual environment is activated or run via python module:

python3 -m pytest

Integration tests

The suite includes a small number of @pytest.mark.integration tests that hit a real Dolibarr instance. They are skipped by default unless valid credentials are present. To run them:

export DOLIBARR_URL="https://your-dolibarr.example.com/api/index.php"
export DOLIBARR_API_KEY="your-api-key"
pytest -m integration

Formatting and linting

The project intentionally avoids heavy linting dependencies. Follow the coding style already present in the repository and run the test-suite before opening a pull request.

Debugging 500 responses with correlation IDs

Unexpected Dolibarr API failures return a correlation_id in the JSON body. Include this value when filing issues or investigating user reports.

  1. Capture the correlation_id from the HTTP 500 response body.

  2. Search the MCP server logs (stdout/stderr) for that ID to locate the full stack trace. For docker users:

    docker logs <container> 2>&1 | grep "<correlation_id>"
    
  3. The log entry contains the failing endpoint and sanitized payload details. Avoid logging DOLAPIKEY or other secrets in bug reports.

Docker tooling

Container assets live in docker/:

  • Dockerfile production-ready image for the MCP server
  • ../docker-compose.yml compose file for the MCP server and optional checks

Build and run the container locally with:

docker compose up --build