Development documentation

Sandbox

Use those commands to set up a development sandbox and install the project in editable mode.

git clone https://github.com/crate/cratedb-mcp
cd cratedb-mcp
uv venv --python 3.13 --seed .venv
source .venv/bin/activate
uv pip install --upgrade --editable='.[develop,test]'

Software tests

The project uses the poethepoet task runner, which provides convenience entry points for invoking linters and software tests. The top-level one-shot command will invoke both and is also used on CI/GHA.

poe check

To invoke individual software tests for working on the spot, use a traditional pytest invocation. Examples:

pytest --no-cov tests/test_knowledge.py
pytest --no-cov -k query

Release

The project uses versioningit so you don’t need to do any version bumping within files because the version number will be derived from the Git tag.

However, you need to designate the new release within the CHANGES.md file, and commit it. The release procedure currently looks like this:

git commit -m 'Release v0.0.1'
git tag v0.0.1
git push && git push --tags