dbx-tools-graphiti
Native launcher for Graphiti with local Neo4j and LiteLLM processes configured for Databricks Model Serving. It runs directly on the host without Docker, Podman, or another container runtime.
Install from PyPI:
uv add dbx-tools-graphitiOr install the current main branch:
uv add "dbx-tools-graphiti @ git+https://github.com/reggie-db/dbx-tools.git@main#subdirectory=packages/py/graphiti"Key features
Section titled “Key features”- launches upstream Graphiti’s HTTP MCP server at
http://127.0.0.1:8000/mcp/; - runs Neo4j Community 5.26 as a native background process;
- starts
dbx-tools-litellmand authenticates through a Databricks CLI profile; - defaults to
databricks-gpt-5-nanoand the 1024-dimensionaldatabricks-gte-large-enembedding model; - provisions Java 21 and
uvthroughmise use -gonly when absent; - pins Graphiti and Neo4j versions for repeatable local environments;
- caches downloads, Python dependencies, Neo4j data, credentials, and logs;
- needs no
config.yamland does not vendor Graphiti code.
Quick start
Section titled “Quick start”mise and a working Databricks CLI profile must already be configured. The
launcher handles Java, uv, LiteLLM, Graphiti, and Neo4j:
uv run dbx-graphiti startThe launcher uses DATABRICKS_CONFIG_PROFILE when set. Otherwise it runs
databricks auth profiles --output json --skip-validate and uses the one entry
marked "default": true. --profile <name> is an optional override, not a
requirement.
The first run downloads about 120 MB of Neo4j plus the pinned Graphiti release,
creates Graphiti’s uv environment, generates a local Neo4j password, starts
LiteLLM and Neo4j, and then runs Graphiti in the foreground. Later runs reuse
the installed assets.
For background operation:
uv run dbx-graphiti upuv run dbx-graphiti statusuv run dbx-graphiti downCommands
Section titled “Commands”setupprovisions tools and populates the local cache without starting services.startstarts Neo4j and LiteLLM, then runs Graphiti in the foreground. This is the default.upstarts all three services in the background.downstops the managed Graphiti, LiteLLM, and Neo4j processes.statusprints process state, model selection, and the MCP URL as JSON.envprints resolved database, proxy, and model settings as JSON. Its output includes the Neo4j password and must be treated as secret.
Arguments after -- are forwarded to upstream Graphiti:
uv run dbx-graphiti start -- --port 9000 --group-id my-agentProvisioning and caching
Section titled “Provisioning and caching”The package deliberately keeps orchestration separate from Graphiti itself:
- It checks
mise where java@21andmise where uv@0.11. - A missing tool is installed globally with
mise use -g --yes. - Neo4j Community
5.26.12is downloaded fromdist.neo4j.organd unpacked. - Graphiti
v0.29.3is downloaded from its GitHub release tag. uv sync --project <checkout>/mcp_servercreates the upstream environment.- A generated Neo4j password is stored with mode
0600. - The packaged LiteLLM proxy starts against the selected Databricks profile, and Graphiti receives its OpenAI-compatible URL and model settings through environment variables and CLI flags.
The cache root is:
- macOS:
~/Library/Application Support/dbx-tools/graphiti - Linux:
${XDG_DATA_HOME:-~/.local/share}/dbx-tools/graphiti - Windows:
%LOCALAPPDATA%/dbx-tools/graphiti
Set DBX_GRAPHITI_HOME to override it. Removing the directory clears the
download cache and permanently removes the local graph data.
Configuration
Section titled “Configuration”There is no Graphiti config.yaml. Model and server settings resolve from CLI
option, environment variable, then package default:
--profile/DATABRICKS_CONFIG_PROFILE: an optional Databricks profile override for managed LiteLLM. When both are absent, the launcher uses the Databricks CLI profile marked as default.--model/MODEL_NAME: defaults todbx/databricks-gpt-5-nano.--embedder-model/EMBEDDER_MODEL: defaults todbx/databricks-gte-large-en.--embedder-dimensions/EMBEDDER_DIMENSIONS: defaults to1024.--litellm-host/LITELLM_HOST: defaults to127.0.0.1.--litellm-port/LITELLM_PORT: defaults to4000.GRAPHITI_GROUP_ID: defaults upstream tomain.GRAPHITI_HOSTandGRAPHITI_PORT: default upstream to127.0.0.1and8000.NEO4J_URIandNEO4J_DATABASE: default tobolt://127.0.0.1:7687andneo4j.
The launcher sets Graphiti’s OpenAI provider and embedding dimensions directly. No OpenAI key is required for its managed local proxy.
To use a separately managed LiteLLM instance:
uv run dbx-graphiti start \ --litellm-url https://models.example/v1 \ --no-manage-litellmSetting LITELLM_URL also selects external mode automatically. A direct
OPENAI_API_URL selects external OpenAI-compatible mode and requires
OPENAI_API_KEY. --manage-litellm overrides either environment choice when
the launcher should still own the local proxy.
Explicit NEO4J_* values override generated defaults, which lets the Graphiti
process use an existing Neo4j server. The launcher still manages its local
Neo4j process; use upstream Graphiti directly if lifecycle ownership belongs to
an external database administrator.
Graphiti owns MCP tools, graph behavior, LLM calls, embeddings, and migrations. This package owns repeatable installation, Databricks defaults, and process lifecycle. See the upstream MCP server documentation for its complete API.