Query, validate, preview, and generate source from *.dtct data contracts and *.ngin templates.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent — or use 1-click editor setup below.
One-click editor setup isn’t available for this listing yet — we don’t have a confirmed install command, and we’d rather show nothing than point your editor at the wrong package or host. Follow the project’s own setup instructions, linked above.
A data contract (*.dtct) plus templates (*.ngin) that generate source. Declare the shape once; each platform gets its own types, validation, and UI instead of copying fields by hand.
An API backend and a React client both need the same records: capacity 1–500, starts_at a datetime, title required. Without a shared contract those rules are rewritten in Pydantic, Zod, forms, and serializers, and they drift. datuma_k keeps the shape in *.dtct. Shared attributes (min, max, local, required) mean the same thing everywhere. ngin turns them into different code on purpose: Pydantic Field(ge=, le=) on Python, Zod .min().max() on TypeScript.
Guide: guide/README.md — getting started, contracts, templates, the scripting language, dk queries, and generation.
The command is datuma_k. The package name is datuma-k. The Homebrew tap and Scoop bucket use datuma_k (underscore) — brew tap marthvon/datuma-k clones a repo that does not exist.
More detail: guide/getting-started.md.
macOS (and Linux with Homebrew) — Homebrew 6 ignores untrusted taps, so brew install datuma-k after a bare brew tap will not find it:
If that still fails after an earlier brew tap, run brew untap marthvon/datuma_k first.
Fedora
Debian / Ubuntu — no apt repo:
Alpine — musl .apk (unsigned). On Docker Alpine, install curl first; skip sudo if you are root. If a previous glibc apk is installed, apk del datuma-k first.
aarch64: datuma-k_1.0.0_aarch64.apk. The command is datuma_k.
Windows
Direct binary — download a binary or .rpm from the same release page, rename to datuma_k (or datuma_k.exe on Windows), and put it on PATH. On Fedora without Copr: sudo dnf install ./datuma-k-*-1.x86_64.rpm.
From source: cargo build --release → target/release/datuma_k.
start creates data/, engine/, definition/, a .env, data/keywords.md, and a starter definition/cases.def.ngin. The .env is:
Add *.dtct under data/, *.ngin under engine/, and extra *.def.ngin under definition/ as needed. Document every contract name in data/keywords.md. Then generate from this project directory (not $HOME or / — if a command asks, type yes):
start takes a single directory name (no / or \). check, catalog, and preview print JSON and do not write generated files. catalog filters match dk include filters. run commits planned files through dkcache.
check also requires data/keywords.md: every model, trait, type, attribute, and field name needs a table row with kind, description, purpose, and platforms (api_server, web_frontend, mobile_frontend). See mcp/resources/keywords.md.
Agents: install the MCP in mcp/ instead of wrapping these commands by hand.
run does.env (ROOT_DIRECTORY, DTCT_DIRECTORY, NGIN_DIRECTORY, DEF_DIRECTORY).*.dtct, *.def.ngin, and *.ngin under those trees.A .dkcache file sits next to generated output. Text between generated spans is kept across runs. Edits inside a generated snippet are overwritten the next time you run.
tests/example is a FastAPI + Vite React app generated from one contract (Event and Venue). How to generate and start those servers: tests/example/README.md.
cargo test regenerates the example and checks the emitted files. It does not start uvicorn or npm.
| Crate area | Role |
|---|---|
src/core | Language, parser, interpreter |
src/dtct | Data contracts (*.dtct) |
src/ngin | Templates (*.ngin, *.def.ngin) |
src/dkcache | Reconcile and commit generated files |
src/project | Load, plan, catalog, check, preview |
Parser internals and module notes: docs/README.md.
MCP (stdio, calls this binary): mcp/README.md.
Copyright (C) 2026 mamertvonn
datuma_k (the engine, MCP, grammars, and helpers shipped with this repository) is licensed under the GNU Affero General Public License v3.0. See LICENSE.md.
Your own *.dtct and *.ngin files, and the source datuma_k run generates from them, are yours. AGPL does not apply to that output just because you used the binary.
Distributing a modified datuma_k, including offering it as a network service, must stay under AGPL.
No reviews yet — be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/datuma-k)<a href="https://allmcps.com/mcp/datuma-k"><img src="https://allmcps.com/api/badge/datuma-k?style=directory" alt="Datuma K on AllMCPs" /></a>