Skip to main content

Open Data Framework — CLI, UI & MCP (odf)

The CLI, UI server, MCP server, and chat surface for Open Data Framework. Depends on opendataframework for the core abstractions (Entity, Repository, Component, Service, Task, Pipeline, Layer, Context, Project) — see that package for those.


Install

pip install odf              # CLI + scaffolding only
pip install odf[ui]           # + UI dev server
pip install odf[mcp]          # + MCP server
pip install odf[chat]         # + chat window (requires [ui])

CLI

Scaffold a new project:

odf init --template default my-project

Available templates: default, data-analytics, data-engineering, data-science, research — each scaffolds a config.toml and folder layout tailored to that use case.

Run a project, optionally with the UI / MCP server / chat:

odf run
odf run --ui --mcp --chat

UI

A small FastAPI dev server (backgrounded, like any Service) that visualizes the resolved object graph — every Component/Service/ Repository, grouped by Layer, with lifecycle actions (start/stop/ execute) available from the UI. Grid positions persist across reloads. Repositories can declare a data_view() to pick how their data renders (table, map, timeseries, streaming video/audio, ...) instead of the default table.

server.start(ui=True)
print(server.ui_url)  # http://127.0.0.1:4747

Icons and colors can be extended beyond the built-in isometric set via [ui] icon-scripts / [ui.colors] in config, or by packages registering into odf.ui.extensions.


MCP Server

Exposes the same actions available in the UI — component start/stop, task/pipeline execution, log inspection — as MCP tools for any MCP-speaking client.

server.start(mcp=True)
print(server.mcp_url)  # http://127.0.0.1:4748/mcp

New components can be added to an existing project from within an AI chat: the MCP service knows the available component library and the project's current structure, generates the config delta and any needed code, and the project rebuilds.


Chat

An optional chat window added to the UI, backed by a local Ollama model. Requires ui=True; if mcp=True is also passed, the chat model gets tool-calling access to the same actions exposed as MCP tools.

server.start(ui=True, mcp=True, chat=True)

Connection parameters come from [project.chat] in config: model (default "gpt-oss") and ollama-host (default "http://localhost:11434").


Examples

See examples/ for the UI-server surface built on top of opendataframework. For the core abstractions themselves, see the opendataframework package and its own examples/.

Metadata

Release files for odf 0.2.0

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

Source distribution (sdist)

Source distribution for odf 0.2.0
File Size Uploaded Provenance Actions
odf-0.2.0.tar.gz 232.1 kB Without provenance Details for odf-0.2.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for odf 0.2.0
File Interpreter ABI Platform Actions
odf-0.2.0-py3-none-any.whl Python 3 none any Details for odf-0.2.0-py3-none-any.whl

Total release size: 484.6 kB

Release files / odf-0.2.0.tar.gz

Download URL odf-0.2.0.tar.gz
Size 232.1 kB
Tags Source
SHA-256 checksum
How to use checksums
cc5d04507b693bd203f0a298c49b34c6ca54c136e58feb6ba1fae12246c3b600
BLAKE2b-256 checksum
How to use checksums
78092e808693af878f84bb0557d894a9e5d0e84c70e7e8de5443ed799ef4aeb9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.4.1 CPython/3.13.1 Darwin/24.3.0

Release files / odf-0.2.0-py3-none-any.whl

Download URL odf-0.2.0-py3-none-any.whl
Size 252.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ec41c4c1d4f6d92591b41494189ea862077f7a889830a203263676072ed0592c
BLAKE2b-256 checksum
How to use checksums
4eed5023ca1964200541d3fa38a85f331a3ce33fe6f2c73ef1e8d3dd34449a9e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.4.1 CPython/3.13.1 Darwin/24.3.0

Security for odf 0.2.0

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.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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