MCP server for heterogeneous AI validation — T1 structured reasoning, T2 cross-model evaluation, and deterministic checksum. Python stdlib-only.
claude mcp add t1-t2-protocol -- python -m -e{
"mcpServers": {
"t1-t2-protocol": {
"command": "python",
"args": ["-m", "pytest"]
}
}
}MCP Servers overview
[](https://www.python.org/)
[](https://pypi.org/project/t1-t2-protocol/)
[](https://github.com/Fauxetine/t1-t2-protocol/actions/workflows/ci.yml)
[](LICENSE)
[](https://modelcontextprotocol.io/)
[](https://registry.modelcontextprotocol.io/)
# T1/T2 Protocol — Heterogeneous Validation for MCP
[中文文档](README.zh.md) · [MCP Registry entry](https://registry.modelcontextprotocol.io/) (`io.github.Fauxetine/t1-t2-protocol`)
<!-- mcp-name: io.github.Fauxetine/t1-t2-protocol -->
> **Reference implementation.** This is a **stdlib-only MCP reference server** for structured reasoning discipline — not a production security product. Evaluate your own threat model before deploying in sensitive environments. Unlike official Python MCP servers, it does **not** use the `mcp` SDK; it speaks JSON-RPC over stdio directly.
**T1/T2 is an MCP server that makes AI reasoning verifiable, auditable, and trustworthy** — by decomposing ambiguous questions into structured tiers (T1), then validating answers through cross-model evaluation (T2), with a deterministic checksum layer that doesn't depend on any LLM.
## Why?
When an LLM checks its own answer, it uses the same training data, the same reasoning preferences, and the same systematic biases. **Self-reflection cannot catch its own blind spots.**
T1/T2 introduces **heterogeneous validation**: the model that produces the answer and the model that evaluates it should be different. Their different training distributions cover each other's blind spots.
## Tools
| Tool | Function | Why it matters |
|------|----------|---------------|
| **t1_protocol** | Decomposes ambiguous questions into L1 (facts) / L2 (assumptions) / L3 (hypotheses) / L4 (unknowns) | Forces structured reasoning before answering |
| **t2_protocol** | Evaluates answer quality from another model's perspective (qualitative five-level confidence) | Catches blind spots self-reflection misses |
| **checksum** | Deterministic structural validation — pure regex, zero LLM dependency | Safety that doesn't scale with intelligence |
> **How tools return data:** `t1_protocol` and `t2_protocol` return **structured prompt templates** for your MCP host's LLM to execute. Only `checksum` returns deterministic JSON (`checksum_passed`, `errors`).
### Tool inputs (MCP schema)
#### t1_protocol
| Input | Type | Required | Description |
|-------|------|----------|-------------|
| `question` | string | yes | The ambiguous question to decompose |
| `locale` | string | no | `en` (default) or `zh` |
| `weight_hint` | string | no | `fact-first`, `efficiency-first`, `cost-first`, `robustness-first`, `general-first` (or Chinese equivalents) |
#### t2_protocol
| Input | Type | Required | Description |
|-------|------|----------|-------------|
| `answer` | string | yes | Text to evaluate (often the host LLM's draft answer) |
| `locale` | string | no | `en` (default) or `zh` |
| `weight_hint` | string | no | Same values as `t1_protocol` |
#### checksum
| Input | Type | Required | Description |
|-------|------|----------|-------------|
| `text` | string | yes | Structured answer text to validate |
Returns JSON: `{"checksum_passed": bool, "errors": [...]}`.
## Quick Start
### Requirements
- Python 3.10+
- An MCP client: [Cursor](https://cursor.sh/), [Claude Desktop](https://claude.ai/download), [Windsurf](https://codeium.com/windsurf), or any MCP-compatible host
### Install
From PyPI (recommended):
```bash
pip install "t1-t2-protocol>=0.1.0"
```
From source (development):
```bash
git clone https://github.com/Fauxetine/t1-t2-protocol.git
cd t1-t2-protocol
pip install -e ".[dev]"
T1T2_DISABLE_COUNTERS=1 python -m pytest tests/ -v
```
Or run directly without installing:
```bash
python src/t1_t2_mcp_server.py # Windows
python3 src/t1_t2_mcp_server.py # macOS / Linux
```
### Configure
After `pip install`, use the console script in MCP config (recommended):
```json
{
"mcpServers": {
"t1-t2-protocol": {
"type": "stdio",
"command": "t1-t2-protocol"
}
}
}
```
**Cursor** — `.cursor/mcp.json` (same as above).
**Claude Desktop** — `claude_desktop_config.json`:
```json
{
"mcpServers": {
"t1-t2-protocol": {
"command": "t1-t2-protocol"
}
}
}
```
**From source (no pip install)** — point at the script:
```json
{
"mcpServers": {
"t1-t2-protocol": {
"type": "stdio",
"command": "python",
"args": ["C:/path/to/t1-t2-protocol/src/t1_t2_mcp_server.py"]
}
}
}
```
On macOS/Linux use `"command": "python3"` instead of `"python"`.
### Verify it works
1. Restart or reload your MCP host after editing config.
2. Confirm three tools appear: `t1_protocol`, `t2_protocol`, `checksum`.
3. Call `t1_protocol` with `{"question": "Should we adopt microservices?", "locale": "en"}` — you should receive a structured T1 prompt template.
4. Call `checksum` with sample `[L1 Facts]` … `---` text — you should receive JSON with `checksum_passed`.
## Usage
### T1: Structure a vague question
Call `t1_protocol` with your question. The host LLM receives a structured prompt template with four tiers:
```
Input: {"question": "Should we migrate our monolith to microservices?"}
Output: Prompt template instructing the host to produce:
[L1 Facts] Team size, codebase size, current stack
[L2 Assumptions] Expected benefits that need verification
[L3 Hypotheses] Testable claims about migration risk
[L4 Unknown] Future growth trajectory
[Core Question] The precise feasibility question
```
### T2: Cross-validate a decision
Call `t2_protocol` with a decision or answer text. Returns an evaluation prompt for the host LLM:
```
Input: {"answer": "Decision text for approach A..."}
Output: Prompt template requesting:
Confidence: high | medium-high | medium | medium-low | low
Adoption table with:
✅ Adopt — verified conclusions (L1)
⚠️ Reserved — needs more evidence (L2)
❌ N/A — blind spots to address
```
### checksum: Validate output structure
Call `checksum` with structured text. It returns pass/fail based on deterministic rules:
```
Input: "[L1 Facts]\n1. ...\n[L2 Assumptions]\n1. ...\n---"
Output: {"checksum_passed": true, "errors": []}
```
### Full pipeline
```
Vague question → T1 structured decomposition → Decision based on structure → checksum (optional) → T2 validation → Refined decision
```
For time-sensitive factual claims, **search on the caller side before T2** — see [Caller-side web verification (v2.6)](docs/caller-protocol.md).
## Configuration
### Locale
Both `t1_protocol` and `t2_protocol` accept an optional `locale` parameter:
| Value | Output |
|-------|--------|
| `en` (default) | English templates |
| `zh` | Chinese templates |
Example: `{"question": "...", "locale": "zh"}`
### Weight hints
Both `t1_protocol` and `t2_protocol` accept an optional `weight_hint` parameter to bias evaluation criteria:
| Weight | Effect |
|--------|--------|
| `事实优先` / `fact-first` | Prioritizes factual accuracy |
| `效率优先` / `efficiency-first` | Prioritizes efficiency |
| `成本优先` / `cost-first` | Prioritizes cost |
| `鲁棒性优先` / `robustness-first` | Prioritizes robustness |
| `通用优先` / `general-first` | No specific bias |
### Recursion protection
T2 automatically detects recursion depth and terminates at depth >= 3, where marginal information gain drops below 5%.
## Design Philosophy
See [docs/philosophy.md](docs/philosophy.md) for the full design rationale.
Core tenets:
1. **Separate intelligence from trust** — AI capability and AI safety should be guaranteed by different systems
2. **Heterogeneous over self-referential** — Cross-model validation is more reliable than self-reflection
3. **Deterministic over probabilistic** — What can be checked by code should not be left to model judgment
## Examples
See [examples/](examples/) for step-by-step walkthroughs:
- [T1: Structure a vague question](examples/t1-basic.md)
- [T2: Cross-validate a decision](examples/t2-basic.md)
- [Full pipeline: T1 → decision → T2](examples/full-pipeline.md)
## Positioning
| Project | Layer | What it does | T1/T2 relationship |
|---------|-------|--------------|-------------------|
| [Sequential Thinking](https://github.com/modelcontextprotocol/servers/tree/main/src/sequentialthinking) (official MCP) | Caller-side chain-of-thought | One model logs iterative steps | Complementary — T1 adds L1–L4 tiers + T2 cross-model review |
| [ThoughtProof](https://github.com/modelcontextprotocol/modelcontextprotocol/discussions/2574) / verdict APIs | Server-side verification | `APPROVE`/`DENY`/`UNCERTAIN` with confidence | Complementary — T1/T2 structures reasoning *before* verdict APIs act |
| Self-reflection / prompt chains | Same model | Re-reads or re-prompts its own output | Replaced — heterogeneous validation catches shared blind spots |
| Tool integrity (e.g. Phionyx) | Transport / tool schema | Detects tool poisoning, schema drift | Orthogonal — T1/T2 does not secure tool definitions |
T1/T2 is a **stdlib reference implementation** for [MCP Discussion #2574](https://github.com/modelcontextprotocol/modelcontextprotocol/discussions/2574)-style reasoning discipline: structure first (T1), cross-validate second (T2), checksum what code can verify. It is not a signed verdict API and not a security scanner.
## Versioning
Two version numbers — do not conflate them:
| | Example | Meaning |
|---|---------|---------|
| **Package** (PyPI) | `0.1.0` | Distribution lifecycle. `0.x` = experimental ([SemVer](https://semver.org/), [FastAPI policWhat people ask about t1-t2-protocol
What is Fauxetine/t1-t2-protocol?
+
Fauxetine/t1-t2-protocol is mcp servers for the Claude AI ecosystem. MCP server for heterogeneous AI validation — T1 structured reasoning, T2 cross-model evaluation, and deterministic checksum. Python stdlib-only. It has 0 GitHub stars and was last updated yesterday.
How do I install t1-t2-protocol?
+
You can install t1-t2-protocol by cloning the repository (https://github.com/Fauxetine/t1-t2-protocol) or following the README instructions on GitHub. ClaudeWave also provides quick install blocks on this page.
Is Fauxetine/t1-t2-protocol safe to use?
+
Fauxetine/t1-t2-protocol has not been audited yet by our security agent. Review the original repository on GitHub before using it in production.
Who maintains Fauxetine/t1-t2-protocol?
+
Fauxetine/t1-t2-protocol is maintained by Fauxetine. The last recorded GitHub activity is from yesterday, with 0 open issues.
Are there alternatives to t1-t2-protocol?
+
Yes. On ClaudeWave you can browse similar mcp servers at /categories/mcp, sorted by popularity or recent activity.
Deploy t1-t2-protocol to your cloud
Ship this repo to production in minutes. Each platform spins up its own environment with editable env vars.
Maintain this repo? Add a badge to your README
Drop the badge into your GitHub README to show it's tracked on ClaudeWave. Each badge links back to this page and reflects the live Trust Score.
[](https://claudewave.com/repo/fauxetine-t1-t2-protocol)<a href="https://claudewave.com/repo/fauxetine-t1-t2-protocol"><img src="https://claudewave.com/api/badge/fauxetine-t1-t2-protocol" alt="Featured on ClaudeWave: Fauxetine/t1-t2-protocol" width="320" height="64" /></a>More MCP Servers
Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.
User-friendly AI Interface (Supports Ollama, OpenAI API, ...)
An open-source AI agent that brings the power of Gemini directly into your terminal.
The fastest path to AI-powered full stack observability, even for lean teams.
🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl!
⭐AI-driven public opinion & trend monitor with multi-platform aggregation, RSS, and smart alerts.🎯 告别信息过载,你的 AI 舆情监控助手与热点筛选工具!聚合多平台热点 + RSS 订阅,支持关键词精准筛选。AI 智能筛选新闻 + AI 翻译 + AI 分析简报直推手机,也支持接入 MCP 架构,赋能 AI 自然语言对话分析、情感洞察与趋势预测等。支持 Docker ,数据本地/云端自持。集成微信/飞书/钉钉/Telegram/邮件/ntfy/bark/slack 等渠道智能推送。