white-box-synthesis
This server verifies white-box synthesis derivations: it checks that every character of an output passage traces to declared operations (COPY, INFLECT, NORMALISE, DELETE, ORDER) on source passages, records gaps when no valid derivation exists, and returns a report with overall status, per-operation verdicts, reconstruction result, counts, and provenance. It supports structured candidate and gap inputs, validates operation details and citation labels, and flags unverified or failed operations.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@white-box-synthesisVerify my synthesized paragraph preserves the source passages' human-ness."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
white-box-synthesis
An MCP server for constructing passages from approved human-authored fragments. The core preserves human wording lineage through recorded edits. Meaning and causality need separate review.
It uses the five operations from the white-box synthesis reference.
Core workflow
synthesise takes a passage plan, ordered arguments, approved fragments, and optional constraints. Without a candidate or gap, it returns needs_agent. The calling agent submits one construction record per argument using COPY, INFLECT, NORMALISE, ORDER, and DELETE, or reports a typed gap.
The server executes those operations and returns the passage and provenance. complete means construction succeeded. Checked wording is labelled 100%; unchecked transformations are Unverified and block selection. These labels describe derivation from the supplied fragments, whose authorship is assumed. Human review remains required.
Case and punctuation changes are checked. Nontrivial inflections and declared spelling replacements remain unverified until narrower rules are implemented.
Optional agent diagnostics record causal gaps and source contradictions with exact basis spans. The core does not detect them or certify preserved meaning.
Minimal candidate request:
{
"passage_plan": {
"passage_id": "p1", "claim": "Workers organise.",
"arguments": [{"id": "a1", "claim": "Workers organise."}]
},
"fragments": [{"id": "user-1", "text": "Workers organise."}],
"candidate": {"records": [{
"argument_id": "a1",
"operations": [{
"type": "COPY", "fragment_id": "user-1", "text": "Workers organise."
}]
}]}
}The synthesis record schema is 2.0; explicit 1.0 records are rejected. DELETE now edits a target piece; ORDER applies a permutation. Semantic support fields are replaced by optional diagnostics.verify_synthesis retains its legacy 1.0 flat derivation contract.
Related MCP server: phionyx-pipeline-mcp
Run
uvx --from git+https://github.com/AhmedKishki/mcp-white-box-synthesis white-box-synthesisFor local development:
uvx --from . white-box-synthesis
python3 tests/test_synthesis.py
python3 tests/test_verify.pySee ROADMAP.md for the remaining work.
Available Tools
1 toolverify_synthesisA
Verify a white-box-synthesis derivation, or record a declared gap.
Checks that every character of the output traces to a declared operation on a declared source span. Does not check meaning: that is the human's job.
Args:
passages: Source passages. Each needs id and text, and should carry
a source citation label, which flows through to the report.
output_context: What the output passage is meant to support.
candidate: {"output": str, "operations": [...]}. Each operation needs
type (COPY, INFLECT, NORMALISE, DELETE or ORDER), passage_id,
text quoted verbatim from that passage, and occurrence
(1-indexed). INFLECT and NORMALISE also need output_text, and
INFLECT needs axis (tense, number, case, article or pronoun).
DELETE and ORDER accept an optional note.
gap: A typed gap when no legal derivation exists. Needs type (one of
the six gap types), passage_id, argument_id,
missing_requirement, authoritative_owner, question and
resolution_paths. Submit exactly one of candidate or gap.
Returns:
A report with an overall status of accepted, rejected or gap, a
per-operation verdict of verified, unverified or failed, the
reconstruction result, counts, and a compact provenance declaration.
Operations marked unverified are recorded claims rather than checked
facts, and any derivation containing one declares Human wording: Unverified.
| Name | Required | Description | Default |
|---|---|---|---|
| gap | No | ||
| passages | Yes | ||
| candidate | No | ||
| output_context | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It explicitly states that the tool does not check meaning, that operations marked 'unverified' are recorded claims rather than checked facts, and that any derivation containing one declares 'Human wording: Unverified.' It also outlines the report statuses (accepted, rejected, gap). This provides substantial behavioral context, though it does not mention permissions, side effects, or whether the tool is read-only.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-organized: a one-line summary followed by a structured Args section and a Returns section. It is longer than average but justified by the complexity of the parameters and the need to compensate for the sparse schema. Each sentence earns its place, and the most important information (purpose and scope) is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity, the absence of annotations, and the 0% schema coverage, the description is remarkably complete. It covers all parameter requirements, the return format (report with statuses, per-operation verdicts, reconstruction result, counts, provenance declaration), and behavioral caveats. While it could benefit from concrete examples or edge-case handling, nothing critical is missing for an agent to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description is the sole source of parameter meaning. It thoroughly explains each parameter: passages need id, text, and a source label; output_context is described; candidate requires a structured object with operation types (COPY, INFLECT, NORMALISE, DELETE, ORDER) and their specific required fields; gap is defined with its six required fields. This adds comprehensive meaning far beyond the generic schema definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening line states a specific verb and resource: 'Verify a white-box-synthesis derivation, or record a declared gap.' It clearly distinguishes between two modes (verification vs. gap recording) and leaves no ambiguity about the tool's core function. Since there are no sibling tools to differentiate, the purpose is fully clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains the two usage scenarios: verify a derivation when one exists, or record a gap when no legal derivation exists. It also implies the context of use (white-box synthesis) and clarifies that meaning checking is left to humans. However, it does not explicitly state when not to use the tool or provide exclusion criteria, though no alternatives exist to compare against.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
v0.1.0- First observed
verify_synthesis
TDQS
Scored across 1 tool
With only a single tool, there is no possibility of confusing it with another. The purpose is clear and distinct.
The single tool name follows a clear verb_noun pattern ('verify_synthesis'). Since there is only one tool, the naming convention is internally consistent.
One tool is slightly below the typical 3-15 range, but it fits the server's narrow, single-purpose scope of verifying synthesis derivations. The tool is substantial and not redundant.
The tool covers the core verification workflow, including accepting passages, candidates, and gap declarations. It does not include auxiliary operations like retrieving past reports, but those are not clearly required for the stated purpose.
Maintenance
Related MCP Connectors
Fact-checks generated content against your sources of truth showing what to trust, change, & verify.
Claim-level provenance preflight for sanitized nonfiction passages; automated triage only.
Verify AI outputs against real sources. Returns a trust signal and permanent doc number.
Verify claims with verdict, confidence & cited sources; batch verify, source checks, daily brief.
Related MCP Servers
AlicenseNot gradedqualityNot gradedmaintenanceEnables fact-checking of AI responses against reliable sources and validation of responses against document content to ensure accuracy and reliability.-- AlicenseAqualityAmaintenanceEnables verification of AI coding agent self-reports against git diff truth and a deterministic gate, producing pass/regenerate/reject directives to ensure claimed work matches actual changes.6AGPL 3.0
- AlicenseNot gradedqualityBmaintenanceEnables per-claim citation verification for AI-generated text by fetching cited sources and judging whether they support the claim, with verdicts and evidence quotes.37 npmMIT
- AlicenseNot gradedqualityBmaintenanceEnables agents to verify their own output mid-task by checking every claim against provided sources, returning supported, partial, unsupported, or contradicted verdicts with exact citations.MIT