ZTLStudio
MCP serverDev toolsZero-trust logic judge: your AI writes a claim as a ZFL table, the ZTL core judges it.
Available today. Use it from your connected AI after setup.
No other account needed.
Add ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.
Then ask your AI: use the language tool from ZTLStudio
Install ZTLStudio
The server’s own address, for the clients that take one directly. Or connect ahel onceand every client you use reads it from one address, with the account kept on ahel rather than in each client’s config.
Claude Code
claude mcp add --transport http --scope user ztlstudio 'https://api.vitalyreznik.com/mcp'Run it once in your project, then open /mcp to approve any sign-in the server asks for.
Claude Desktop
https://api.vitalyreznik.com/mcpAdd a custom connector in Settings, paste this address, and approve the sign-in.
Cursor
cursor://anysphere.cursor-deeplink/mcp/install?name=ztlstudio&config=eyJ1cmwiOiJodHRwczovL2FwaS52aXRhbHlyZXpuaWsuY29tL21jcCJ9Open the link and Cursor adds the server at that address.
ChatGPT
https://api.vitalyreznik.com/mcpIn Settings, enable Developer mode, create an MCP app, and paste this address. Your plan and workspace must allow custom apps.
Codex
codex mcp add ztlstudio --url 'https://api.vitalyreznik.com/mcp'Run it once, then sign in with codex mcp login ztlstudio if the server asks for an account.
From the project's README
As published by inventor1975/ztlstudio in README.md.
The AI translates; the measured core judges — truth is never granted on credit, not even to the translator.
A local studio for judging claims and paradoxes. You state one in natural language (any language); an LLM only translates it into ZFL, the formal table language — it never judges. A deterministic, measured ZTL core does the judging: verdicts with warranties, quarantine passports for self-referential systems, and a deterministic back-reading that verbalizes exactly what the core read from your table.
The pipeline embodies the logic it serves: the LLM's output is an unverified
input (the mark Z), and the core is the customs house — truth is never
granted on credit, not even to the translator.
human ──meta-chat──► the AI fills a ZFL table (rows + a claim), you sign off
│
▼ validator ──► the deterministic core judges
▼ back-reading (no AI — the second auditor)
▼
verdict · warranty · passport · stipulations
Run
python3 ztlstudio.py # → http://localhost:8190
Python stdlib only; the ZTL core is vendored in ztlcore/, so a clone is
self-contained (no submodules, no dependencies). The AI is optional: with no
key the studio runs in pro mode — fill the ZFL table by hand. To enable AI
translation, open ⚙ Model, pick a provider + model + key, or set the env
var, or drop a key into a local .<provider>_key file (all gitignored — no
keys ship).
What you hand it: one table, no genre to declare
ZFL v2 is a single table of rows plus a claim. Each row states a fact,
its status (T verified / F refuted / Z unverified — the zero-trust
default), its ground, and — importantly — what it means in words (the
polarity auditor: it lets the back-reading catch an encoding that says the
opposite of what you intended). You never declare whether this is a "statement"
or a "paradox": the genre is computed, and whichever instruments apply fire
— a verdict + warranty for a claim, a passport for a self-referential system.
The studio ships 41 worked examples — open one to see the exact shape of the table, then edit it. The back-reading verbalizes what the core actually read, so your translation is audited by a component that cannot hallucinate.
The workflow
- Meta-chat — describe the claim in your language; the AI fills the table's rows and asks only when formalization is genuinely blocked. It knows its boundary: arithmetic, quantities and numeric wordplay get an honest "does not formalize into propositional ZTL", never an invented encoding.
- The table — a grid of rows, the grounds bar, and the claim line, all hand-editable (pros skip the chat entirely). Run validates and judges; validator issues are machine-readable and can be fed back to the AI to repair.
- The report — the core's verdict, its warranty grade (hereditary / sound / until-verification), the passport of unverified inputs, and the completion table — followed by the deterministic back-reading and an optional AI explanation that retells the verdict and is forbidden to re-judge (labeled unverified by definition: the pipeline applies its own logic to itself).
What the core reports
- Claims — the verdict (
T/F— verdicts are always two-valued;Zis a mark on an input, never a verdict), the warranty grade, the passport of unverified inputs, and the completion table showing how the verdict behaves under every reading of the unverified rows. - Self-referential systems — the grounded part (identical in every fixed point), the quarantine set, and a passport per component: PARADOX (no classical solution — permanent refusal, with the oscillation period), UNDERDETERMINED (refusal until stipulation), INPUT (until verification), DOWNSTREAM (inherited).
Providers
Keys stay on this machine, read in order: the Settings field, the env var
(GROQ_API_KEY, ANTHROPIC_API_KEY, …), then a local .<provider>_key file.
Supported: Groq, Anthropic (Claude), OpenAI, OpenRouter, DeepSeek, Gemini,
xAI, NVIDIA. A stronger model formalizes cleaner; the core judges the same
regardless of who translated.
Related
- ZTL — the logic itself: the kernel, the papers, and the ZFL language.
- introspect — the same zero-trust core applied to code: a taint analyzer for seven languages.
AI disclosure
Built by Claude (Anthropic) as architect and implementer, with Vitaly Reznik as human curator and decision-maker, under a strict honesty discipline: mark boundaries honestly, measure — don't guess, and never claim more than was verified.
License
Dual-licensed under MIT and Apache-2.0 (see LICENSE-MIT,
LICENSE-APACHE).
Tools it offers (3)
What this server listed when ahel dialed its public endpoint in Sep 2026, with no key and no account of yours. The names are the server’s own.
languageexamplesjudge
Signals
- Last commit
- Sep 2026
Advanced
- Delivery
- ztl-judge MCP server → your ahel connector (mcp.ahel.ai) → your AI.
- Item type
- mcp-server
- Key
io-github-inventor1975-ztl-judge- Source
- github.com/inventor1975/ztlstudio
- Hosted endpoint
https://api.vitalyreznik.com/mcp