Skip to main content

dbx-tools-graphiti

Run Graphiti REST, MCP, model routing, and PostgreSQL-backed graph memory from one Python runtime. The build synchronizes the upstream REST and MCP source plus the pinned PostGraph driver from Graphiti PR 1777 into the generated package tree, so the published wheel has no direct Git dependencies.

Both upstream surfaces come from the same Graphiti commit:

  • graph-service from server/
  • mcp-server from mcp_server/

Run

GRAPHITI_LISTEN=tcp://0.0.0.0:8000 \
uv run python -m dbx_tools.graphiti

From the repository root, the local launcher starts the unified runtime:

DATABRICKS_CONFIG_PROFILE=<profile> \
MODEL_NAME=databricks-gpt-5-nano \
bash scripts/run-graphiti-python.sh

The combined application exposes:

  • FastAPI documentation at /docs
  • OpenAPI at /openapi.json
  • REST health and Graphiti routes, including /healthcheck, /search, and ingestion endpoints
  • direct tool operations under /tools/*
  • Streamable HTTP MCP at /mcp/

Configure Graphiti through the shared environment contract used by the Node runtime and CLI.

The package also provides an environment-configured server entry point and a schema-only command:

python -m dbx_tools.graphiti
python -m dbx_tools.graphiti docs

docs writes the OpenAPI JSON document to stdout and exits without starting the database runtime.

Databricks Model Resolution

The process creates one generated auth client and one generated model client at startup. It resolves the fuzzy chat model, ranks embedding endpoints by the configured name, embedding class, and dimensions, then resolves both endpoint routes. REST and MCP reuse the same Graphiti model clients, while the auth client injects refreshed Databricks headers into every model request.

Use From A Notebook

Use the same resolved option names without starting Uvicorn:

from dbx_tools.graphiti.runtime import GraphitiRuntime

async with GraphitiRuntime.from_options() as runtime:
    graphiti = runtime.graphiti

In a Databricks notebook or Job, omitted auth options use the Python SDK's default WorkspaceClient. Graphiti receives the runtime host and refreshed authentication headers without copying credentials into environment variables. Pass profile only when selecting an explicit profile instead.

The base package is suitable for Lakebase, external PostgreSQL, Spark notebooks, and serverless notebook Jobs:

uv add dbx-tools-graphiti

Graphiti depends on dbx-tools-node-runtime. A normal pip installation is sufficient on Databricks serverless compute even when Node.js and npm are not installed:

%pip install dbx-tools-graphiti

The shared runtime reuses system npm when available. Otherwise its first binding load installs a compatible nodejs-wheel, creates direct build launchers, and installs PythonMonkey into the active Python environment. Generated Graphiti bindings import that runtime instead of carrying their own PythonMonkey loader or Node shim copies.

For Python callers that omit databaseUrl, install the optional embedded runtime:

uv add 'dbx-tools-graphiti[dev]'

Embedded mode starts bundled PostgreSQL with pgvector and persists it under graphitiHome, or the platform data directory when no home is configured. The owned PostgreSQL process stops with the runtime, while its data remains for the next start. Node, CLI, and AppKit launchers select the extra automatically only when no external database is configured.

Pass a regular PostgreSQL URL to use an existing database. A passwordless non-local URL, Lakebase resource path, or Lakebase project name is resolved by the generated Node Lakebase client. It injects a fresh short-lived credential whenever the asyncpg pool opens a physical connection, without persisting that credential in the URL. Lakebase mode provisions and uses the databaseSchema schema, which defaults to dbx_tools_graphiti, because application identities do not receive write access to public. Set GRAPHITI_DATABASE_SCHEMA when multiple identities share one database. If the database has no vector extension, Graphiti installs it in that schema. When the database already has its single allowed vector installation, Graphiti discovers that extension schema for type resolution without moving it.

Memory Writes

add_memory queues a write and returns immediately. Call wait_for_memory_queue before stopping a short-lived runtime when the caller needs queued work to be durable. Queue processing errors are re-raised by the wait operation instead of being reported as an empty successful queue.

Use add_memory_sync when the request itself must wait for persistence. Both forms remain available; queued writes are not forced to become synchronous. get_queue_status reports the pending count and worker state.

When creating an episode, omit uuid and use the generated episode UUID from subsequent retrieval. A supplied uuid selects an existing episode to update.

Composition Boundary

dbx_tools.graphiti.main adds FastAPI REST and MCP surfaces around the same importable runtime. Shared environment options are parsed through generated PythonMonkey bindings and mapped into both upstream settings objects.

Metadata

Release files for dbx-tools-graphiti 0.9.58

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for dbx-tools-graphiti 0.9.58
File Size Uploaded
dbx_tools_graphiti-0.9.58.tar.gz 540.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for dbx-tools-graphiti 0.9.58
File Interpreter ABI Platform
dbx_tools_graphiti-0.9.58-py3-none-any.whl Python 3 none any Details

Total release size: 1.1 MB

Release files / dbx_tools_graphiti-0.9.58.tar.gz

Download URL dbx_tools_graphiti-0.9.58.tar.gz
Size 540.1 kB
Tags Source
SHA-256 checksum
How to use checksums
0d5c355385cb0973a7672b367cd7fdad6b805e929892f5afadb46b85865196d5
BLAKE2b-256 checksum
How to use checksums
af79ef7797cf05d4463b9c34e827da987e5257fb6084f68e4a00831de5adf008
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 7, 2026.

Transparency log

Release files / dbx_tools_graphiti-0.9.58-py3-none-any.whl

Download URL dbx_tools_graphiti-0.9.58-py3-none-any.whl
Size 575.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d0ce88af8ddc14172c48ae5b4711a57e4efe2417d07080af59d7f3ff3eac2ea0
BLAKE2b-256 checksum
How to use checksums
b87b5b6ea2ba56edea46d443280d04b57f3bf06c66701b9d89d5e2d899957f4b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 7, 2026.

Transparency log

Release history Release notifications | RSS feed

0.9.99

2 release files

This release

0.9.58 This release

2 release files

0.9.9

2 release files

0.9.8

2 release files

0.9.7

2 release files

0.9.6

2 release files

0.9.5

2 release files

0.9.4

2 release files

0.9.3

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page