Skip to main content

columna-server

The Columna MCP server (ADR-032 D8): a library of Manifolds exposed to AI agents over MCP, with one contract — every tool returns the same outcome/disclosure structure the Python API returns. This is the wedge product: the first metrics MCP server that can say "it depends."

Run

pip install columna-core columna-server
columna-server demo --play                    # the packaged demo: clarify -> refuse -> disclose -> serve
columna-server demo                           # serve the packaged demo over MCP stdio (no path args)
columna-server mcp --manifolds <dir>          # serve your own manifolds dir over stdio
columna-server mcp --manifolds <dir> --http :8000   # streamable-http, gated by COLUMNA_MCP_TOKEN

# Natural-language agent (a true MCP client over the server); needs the [agent] extra + a key:
pip install "columna-server[agent]"
ANTHROPIC_API_KEY=... columna-server agent    # chat REPL over the packaged demo

The agent turns natural language into a proposed Frame-QL query, spawns the server over stdio, and lets the four moods drive the conversation — it never touches the engine in-process. The model proposes, the planner disposes, the human decides (clarifies are relayed, never auto-picked; every number comes verbatim from the wire). See demos/agent_transcript.md. Model via COLUMNA_AGENT_MODEL (default claude-opus-4-8).

Richer run. The packaged demo ships a small (~330 KB) warehouse. To run the same benchmark Manifold over the full 4.7 MB warehouse (299,934 transactions), point --manifolds at a directory whose data.toml warehouse path is the repo's packages/columna-core/demos/warehouse.

From source (contributors): git clone https://github.com/datumwise/columna && cd columna, then pip install -e packages/columna-core -e "packages/columna-server[test]" and pytest packages/columna-server -q.

<dir> holds <id>/manifold.cml + data.toml (connector type + data path). Manifolds are parsed and connected once at startup.

Tools (five, read-only — no SQL, no writes)

tool touches data? returns
list_manifolds() no the catalog: governed publication lineages (manifold_id, latest_version, versions[] with per-version realizable) + classified legacy/authority_incomplete compatibility runtimes
describe_manifold(manifold_id) no dimensions/levels, edges (+ lineage), universes (+ predicate), measure index
describe_measure(manifold_id, measure) no family triple, per-member anchors, dtype, v-anchor {universe, grain}, m-anchor, provenance
query(manifold_id, frameql, universe?) yes the wire contract (serve/disclose/clarify/refuse/error)
explain(manifold_id, frameql, universe?) no (fetches_delta: 0) the would-be outcome + disclosures

frameql is "<columns> @ <anchor>" (e.g. "rate: revenue / level.last @ store, day"); the envelope is parsed here and every expression is delegated to columna-core — one expression dialect.

The contract

Outcomes are data (the four moods), and disclosures are structured {code, materiality, severity, category, detail, remedy, source, rel_error} via columna_core.disclosure_wire — the same serialization every surface shares. Clarify alternatives are mechanically substitutable (a universe pin carries apply: {"universe": U}).

See demos/mcp_claude_desktop.md for a Claude Desktop config and a real clarify → answer transcript.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

columna_server-0.11.0.tar.gz (830.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

columna_server-0.11.0-py3-none-any.whl (773.3 kB view details)

Uploaded Python 3

File details

Details for the file columna_server-0.11.0.tar.gz.

File metadata

  • Download URL: columna_server-0.11.0.tar.gz
  • Upload date:
  • Size: 830.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for columna_server-0.11.0.tar.gz
Algorithm Hash digest
SHA256 6269d3664b36a556512cf29f700150c95f219ff70cb38dc1d41ba8db919f978a
MD5 2cf3130a799b0b3fc7de6bb1bf750822
BLAKE2b-256 d8f50b9ed76191fa0f068985c7f70a4672c9464cc0695c911d8957ac19b716f0

See more details on using hashes here.

Provenance

The following attestation bundles were made for columna_server-0.11.0.tar.gz:

Publisher: publish.yml on datumwise/columna

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file columna_server-0.11.0-py3-none-any.whl.

File metadata

  • Download URL: columna_server-0.11.0-py3-none-any.whl
  • Upload date:
  • Size: 773.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for columna_server-0.11.0-py3-none-any.whl
Algorithm Hash digest
SHA256 021129e035ed52cd80f70e006d9626a962d3d8f5b6ac77599b66778720d2542f
MD5 47ad6706f187763722c3e1623e70942f
BLAKE2b-256 eb0d61eafc1df947b1ecc74c17f8aae0d5b95b970600523f55b3f1d3b49c6088

See more details on using hashes here.

Provenance

The following attestation bundles were made for columna_server-0.11.0-py3-none-any.whl:

Publisher: publish.yml on datumwise/columna

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.11.0 This release

2 files

0.10.0

2 files

0.9.0

2 files

0.8.3

2 files

0.8.2

2 files

0.8.1

2 files

0.8.0

2 files

0.7.1

2 files

0.7.0

2 files

0.6.1

2 files

0.6.0

2 files

0.5.0

2 files

0.4.0

2 files

0.3.0

2 files

0.2.0

2 files

0.1.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page