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/.
Release files for odf 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| odf-0.1.0.tar.gz | 78.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| odf-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 174.2 kB
Release files / odf-0.1.0.tar.gz
| Download URL | odf-0.1.0.tar.gz |
|---|---|
| Size | 78.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
08aa6a9d596f84761eea97a1d0031a3d5bc0e4900d2d135dfaa1711578058adf
|
|
BLAKE2b-256 checksum How to use checksums |
0407552efcfaa941f7470645c8afa88611543021470518114d89affc49885022
|
| 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.1.0-py3-none-any.whl
| Download URL | odf-0.1.0-py3-none-any.whl |
|---|---|
| Size | 95.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
fe08205a7fe497578cf44656b5426f08423840de4917c83248854ede87834de0
|
|
BLAKE2b-256 checksum How to use checksums |
17e6eaa7b8f90a7c68f45ac4603f000568cf167220aac746e6f383a802c437a6
|
| 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
|