Skip to main content
Glama
AhmedKishki

white-box-synthesis

by AhmedKishki

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-synthesis

For local development:

uvx --from . white-box-synthesis
python3 tests/test_synthesis.py
python3 tests/test_verify.py

See ROADMAP.md for the remaining work.

Available Tools

1 tool
verify_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.

ParametersJSON Schema
NameRequiredDescriptionDefault
gapNo
passagesYes
candidateNo
output_contextYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters5/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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. 1 tool updatev0.1.0
    • First observedverify_synthesis

TDQS

A4.4/5.0

Scored across 1 tool

Disambiguation5/5

With only a single tool, there is no possibility of confusing it with another. The purpose is clear and distinct.

Naming Consistency5/5

The single tool name follows a clear verb_noun pattern ('verify_synthesis'). Since there is only one tool, the naming convention is internally consistent.

Tool Count4/5

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.

Completeness4/5

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

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    Enables 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.
    6
    AGPL 3.0
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables 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 npm
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables 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