Skip to main content
Glama

TARGET Checklist MCP Server

An MCP server that operationalizes the TARGET reporting guideline (TrAnsparent ReportinG of observational studies Emulating a Target trial; Cashin et al., JAMA/BMJ, September 2025) as a deterministic, provenanced scoring engine for target trial emulation (TTE) studies.

This is the executable TARGET: not a manuscript auditor that renders an opinion, but a measurement instrument that produces a structured, item-by-item, evidence-linked matrix with fixed model provenance, so a corpus-scale result is reproducible.

See ../target-mcp-server-design.md for the full design rationale.

Status — vertical slice

Built and proven end-to-end:

  • Spec layer — the 21 published items decomposed into 39 scoreable leaf subitems, encoded as versioned YAML (target_mcp/specs/target-0.1.0.yaml) with own-words intent, verdict boundaries, signal terms, the 6x↔7x specification/emulation pairing, and applicability rules. Structurally validated on load (spec.py).

  • Ingestion layer — PDF/text/docx → SectionMap with character-offset, source-tagged section spans (main vs supplement:<file>), protocol-table and flow-diagram detection, extractor version + text hash stamps, and whitespace-insensitive quote→span resolution. Supports multi-document bundles (main text + supplements) via build_bundle (ingest.py).

  • Retrieval layer — the corpus/batch and convenience path: fetch open-access articles by PMCID from Europe PMC (JATS main text plus PMC-hosted supplementary files, merged into one bundle). Use this when there is no file in hand or to auto-fetch an OA paper's supplement; for a manuscript you were given, ingest the file directly (retrieve.py).

  • Assessment layer — batched, single-pass scoring of all applicable leaves. Scaffold mode (default) is the path for reviewing a publication: the agent already in the loop is the scorer, so the server returns the exact prompt + schema for it to run, then validates the verdicts it submits. Judge mode is for the headless/batch case (no LLM in the loop) — the server makes its own pinned model call so a corpus run is reproducible and caller-independent. Both share one validation path that enforces leaf coverage, verdict vocabulary, and mandatory verbatim evidence resolved to spans with a source_document tag (assess.py).

  • Rendering layerrender_checklist projects a finalized assessment onto the published TARGET checklist form (all 39 rows, verbatim item wording under CC BY-ND, a Location-reported column from the resolved evidence spans; the enriched view adds verdict + evidence). render_checklist_docx writes the same as a submission-ready Word file (render.py, render_docx.py).

  • Corpus & validation layersaggregate_corpus rolls many assessments into per-item completeness rates with coverage denominators (corpus.py); validate.py provides blind human coding-sheet generation and per-leaf agreement (raw, Cohen's κ, Gwet's AC1, sensitivity/specificity) against a gold standard.

  • Composition layer — FastMCP server (server.py) exposing eleven tools. The primary manuscript flow is parse_manuscript (parse the file you were given, with supplements= when available) → assess_manuscriptsubmit_scaffold_verdictsrender_checklist (or render_checklist_docx). Supporting tools: parse_pmcid (corpus/batch or OA-supplement fetch), get_checklist (introspect the spec), aggregate_corpus, build_coding_sheet, and validate_against_gold.

Not yet built (see design doc): assess_item, check_emulation_coherence, export_identifiability_spec, publisher-site supplement retrieval (beyond the PMC-OA tier), better table extraction, and the separate materiality/design-risk layer.

Provenance stamped on every assessment

spec_version, resolved model id, temperature, prompt_hash, prompt_template_version, extractor_version, text_sha256, assessed_at, full_text_available, supplement_status, and a per-source documents list; each evidence item carries its resolved span, section, and source_document. A span is only meaningful alongside the extractor version and text hash, so they travel together.

Related MCP server: traceable-research-mcp

Reporting completeness, not a pass/fail verdict

The instrument scores how completely a manuscript reports what the checklist requires — not study quality, and it issues no pass/fail judgment. TARGET presents all 21 items as essential minimum items with no tiering, and this tool follows suit: the output is the 39 per-leaf verdicts with evidence and a completeness tally. (An earlier "critical floor" — a BSCL pass/fail overlay over six leaves — was removed in 2026-07-19 as off-message and confusing; see docs/DECISIONS.md.) Do not present a verdict matrix as TARGET compliance.

Install

The server and the optional orchestration skill ship together in this repo, but they activate through two separate mechanisms — installing one does not enable the other. Getting the files (clone/download) gives you both; then do the two activation steps below.

1. Install the server

git clone https://github.com/Black-Swan-Causal-Labs/target-mcp.git
cd target-mcp
python3 -m venv .venv
.venv/bin/pip install -e .

(Once published to PyPI: pip install target-mcp.)

Run it standalone (stdio transport) to smoke-test:

.venv/bin/target-mcp

2. Register the server with your MCP client

Add it to the client's MCP config with an absolute path. For Claude Desktop that file is ~/Library/Application Support/Claude/claude_desktop_config.json (macOS); for a Claude Code project use .mcp.json:

{
  "mcpServers": {
    "target-checklist": {
      "command": "/ABSOLUTE/PATH/TO/target-mcp/.venv/bin/python",
      "args": ["-m", "target_mcp.server"]
    }
  }
}

Restart / reconnect the client. Confirm it exposes 11 tools (a stale process may show fewer — respawn it). The server is now fully usable on its own: any MCP client can run parse → assess → submit → render in a single scaffold pass.

3. (Optional, Claude Code only) Activate the fan-out skill

.claude/skills/target-checklist-fanout/ encodes the parallel-subagent orchestration that scores the 39 leaves concurrently (~2 min vs ~20 min). It is an accelerator, not a dependency — it only works in clients that can spawn subagents (the Claude Code CLI, or the Claude Desktop Code/Cowork tabs; the plain Chat tab cannot, and non-Claude clients like Codex ignore it). Without it, everything still works via the single-pass fallback.

A Claude Code session discovers the skill when its working directory is this repo. To make it available in every session regardless of directory, copy it to the user scope:

mkdir -p ~/.claude/skills
cp -R .claude/skills/target-checklist-fanout ~/.claude/skills/

For the skill to actually run, all three must be present: the server (step 2), the skill (this step), and a subagent-capable client.

Judge mode (headless/batch, optional)

Judge mode needs ANTHROPIC_API_KEY in the environment. The pinned model is claude-sonnet-5 by default; override with TARGET_JUDGE_MODEL.

Batch / corpus runs

Scoring hundreds of papers is a headless job, not an interactive MCP call (a multi-hour tool call would blow the client's request timeout). Use the target-mcp-corpus CLI: it fetches + judges a list of PMCIDs concurrently, isolates per-paper failures, retries transient errors, and rolls up the aggregate.

# ids.txt: one PMCID per line (#-comments and blanks ignored)
ANTHROPIC_API_KEY=sk-... target-mcp-corpus ids.txt -o out/ -j 12
  • -j/--workers bounds concurrency (default 8; raise toward your API rate limit). Judge is ~a few minutes/paper, so wall-clock ≈ papers / workers × per-paper — e.g. 300 papers at 12 concurrent ≈ 1–1.5h, versus ~10–20h serial.

  • -o/--out-dir writes one JSON per assessment plus aggregate.json and summary.json (with per-paper stamps, verdict tallies, and any failures). Without -o, the aggregate prints to stdout.

  • --model overrides the pinned judge model; --no-supplements skips supplement retrieval.

Judge mode records the resolved model id per paper, so a corpus aggregate is truthfully provenanced and caller-independent. Re-roll-up saved assessments any time with the aggregate_corpus MCP tool.

Tests

.venv/bin/python -m pytest tests/ -q

Covers spec validation, section mapping and quote resolution, the finalize + evidence-resolution path, evidence-required and coverage-mismatch guards, applicability rules, abstract-only full-text gating, corpus aggregation, the validation harness, checklist rendering (Markdown + .docx), and prompt-hash stability.

Licensing / commons hygiene

The encoded checklist is a re-encoding of item intent in own words plus assessor notes; it does not reproduce the TARGET checklist wording verbatim. The original checklist is © the TARGET group under CC BY-ND 4.0. When the Explanation & Elaboration document is released, leaves flagged e_e_pending: true should be re-checked and the spec bumped to a clean minor release. Do not copy E&E text verbatim.

Available Tools

11 tools
aggregate_corpusA

Roll up many assessments into per-item completeness rates plus coverage denominators (supplement-retrieval status, full-text availability, evidence- resolution rate). Pass an array of assessment objects as assessments, or use_session=true to aggregate every assessment produced this session. The completeness rates are only as valid as the sample and are not yet gold-standard calibrated.

ParametersJSON Schema
NameRequiredDescriptionDefault
assessmentsNo
use_sessionNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
coverageNo
n_papersNo
per_leafNo
spec_versionNo
lowest_reported_leavesNo

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 responsibility for behavioral disclosure. It explains the aggregation behavior, the output components, and adds an important caveat that rates are not gold-standard calibrated and are only as valid as the sample. It does not mention side effects, but the operation appears read-only and an output schema exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences with no filler: purpose first, then parameter usage, then a caveat. Every sentence earns its place and the front-loaded structure helps an agent quickly understand the tool.

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?

The description covers purpose, both input modes, and the key validity limitation, while the output schema handles return-value details. It leaves minor ambiguity about behavior when both `assessments` and `use_session` are supplied or when neither is supplied, but this is not a major gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must add meaning. It explains both parameters: `assessments` accepts an array of assessment objects, and `use_session=true` switches to aggregating every assessment produced this session. It could be more precise about the required shape of assessment objects, but it provides enough guidance.

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 description opens with a specific verb ('Roll up') and resource ('many assessments'), and clearly names the output: per-item completeness rates plus coverage denominators. This distinguishes it from sibling tools that parse, assess, or render individual items rather than aggregate them.

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 gives concrete usage instructions: pass an array via `assessments` or set `use_session=true` to aggregate session-produced assessments. It does not explicitly name sibling alternatives or state when not to use the tool, but the two modes are clearly explained.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

assess_manuscriptA

Assess a manuscript against all applicable TARGET leaves in one batched pass. document is a path, raw text, or a text_sha256 returned by parse_manuscript.

mode='scaffold' (default) is the path for reviewing a publication: you are the LLM in the loop, so the server returns the exact assessment prompt, the tool schema, and a prompt hash for YOU to execute — read the manuscript against the rubric, produce the verdicts, then call submit_scaffold_verdicts to validate them and get the stamped result (evidence resolved to spans, provenance, ready for render_checklist).

mode='judge' is for the headless/batch case where no LLM is in the loop (e.g. a corpus run). The server makes its own pinned-model API call (requires ANTHROPIC_API_KEY) so scoring is reproducible and caller- independent, and returns the full verdict matrix directly. Overkill when an agent is already reviewing the paper interactively.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoscaffold
modelNoclaude-sonnet-5
documentYes
spec_versionNotarget-0.1.0
manuscript_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral burden and does so well: it reveals that scaffold mode returns a prompt/schema/hash for the caller to execute, judge mode triggers a pinned-model API call requiring ANTHROPIC_API_KEY, and scoring is caller-independent. Minor gaps remain such as explicit side-effect/cost phrasing, but the core execution flow is disclosed.

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 front-loads the main purpose and then structures the two modes clearly. It is longer than average but each section adds behavioral or usage value, with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a five-parameter tool with two distinct modes and a rich output schema, the description covers the overall flow and inter-tool dependencies well. It is incomplete on three parameters and does not explicitly describe the output schema's role, though an output schema exists to fill that gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

It gives strong semantics for the two most important parameters: document (path/raw text/text_sha256) and mode (scaffold vs judge). However, with schema description coverage at 0%, model, spec_version, and manuscript_id are left completely unexplained, so the description only partially compensates for the missing schema documentation.

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 first sentence states a specific action ('Assess a manuscript') against a defined scope ('all applicable TARGET leaves in one batched pass'), and the rest distinguishes the two execution modes. This sets it apart from siblings like parse_manuscript (ingestion) and submit_scaffold_verdicts (validation) without needing to open schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly maps scaffold mode to interactive LLM-in-the-loop review and judge mode to headless/batch corpus runs, and even advises that judge is 'overkill' for interactive review. It also names the follow-on tool submit_scaffold_verdicts and references parse_manuscript as the input source.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

build_coding_sheetA

Emit blank per-paper coding sheets for human gold-standard coding: one row per applicable leaf with its intent and verdict boundaries and empty verdict/evidence/note fields. blind=true (default) withholds the instrument's verdict so coders are not anchored — use blind coding for the primary reference standard. Pass assessments or use_session=true.

ParametersJSON Schema
NameRequiredDescriptionDefault
blindNo
assessmentsNo
use_sessionNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/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 and does useful work: it discloses that blind mode withholds the instrument's verdict to prevent coder anchoring and that the emitted rows are blank except for intent and boundaries. It does not mention failure behavior when neither `assessments` nor `use_session` is provided, but the core behavioral traits are clearly stated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two dense sentences with no filler. The output purpose and structure are front-loaded, followed by the critical behavioral caveat and the invocation prerequisite. Every clause adds distinct value.

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 that an output schema exists, the description does not need to restate return values. It covers purpose, output shape, the blind mode, and data-source options. The main gap is the absence of explicit behavior when neither `assessments` nor `use_session` is set, and the vague semantics of `use_session`.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It explains `blind` well and indicates that `assessments` and `use_session=true` are alternative data sources, but it does not describe the expected structure of `assessments` entries or what `use_session` actually retrieves, leaving two of three parameters under-specified.

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 description uses a specific verb ('Emit') and resource ('blank per-paper coding sheets') and explains the exact output structure: one row per applicable leaf with intent, verdict boundaries, and empty verdict/evidence/note fields. This clearly distinguishes it from sibling rendering, parsing, and assessment tools.

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?

It gives explicit context for the primary reference standard use case ('use blind coding for the primary reference standard') and tells the caller to pass `assessments` or `use_session=true`. It does not explicitly name alternatives or when not to use the tool, so it stops short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_checklistA

Return the encoded TARGET checklist spec: 39 scoreable leaf subitems (grouped into the 21 published items) with intent, assessor notes, signal terms, pairing links, and applicability rules. Pass a version id to pin; omit for the current default.

OPTIONAL in the review flow — introspection only. assess_manuscript already embeds the full per-leaf rubric (intents + verdict boundaries) in the prompt it returns, so calling both get_checklist and assess_manuscript for the same review duplicates the rubric payload. Use this when you want to inspect the spec on its own, not as a required step before assessing.

ParametersJSON Schema
NameRequiredDescriptionDefault
versionNotarget-0.1.0

Output Schema

ParametersJSON Schema
NameRequiredDescription
itemsNo
e_e_statusNo
leaf_countNo
spec_versionNo
evidence_policyNo
guideline_scopeNo
available_versionsNo
verdict_vocabularyNo

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the burden for behavioral disclosure. It explicitly marks the tool as 'introspection only', notes the version pinning behavior, and warns about duplicated rubric payloads when called alongside assess_manuscript. It does not explicitly state that it makes no modifications, but 'introspection only' strongly implies a read-only operation.

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 front-loaded with the core purpose and content details, followed by a useful usage warning. It is slightly longer than strictly necessary because the second paragraph restates the optionality that earlier wording implies, but every sentence contributes actionable information and there is no fluff.

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?

For a single-parameter, no-annotation, introspection tool, the description covers what the tool returns, how the version parameter works, and how it relates to the assess_manuscript flow. The presence of an output schema reduces the need to describe return structure. It does not discuss relationships to render_checklist siblings, but the word 'encoded' and the detailed content list make the tool's role reasonably clear.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema provides a 'version' parameter with a default but no description, and schema coverage is 0%. The description compensates by explaining the parameter's meaning: 'Pass a version id to pin; omit for the current default.' This is sufficient for selecting a version, though it does not enumerate valid version values or formats.

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 description names a specific verb and resource ('Return the encoded TARGET checklist spec') and enumerates the exact content of the spec: 39 leaf subitems, 21 published items, intents, notes, signal terms, pairing links, and applicability rules. It also differentiates from assess_manuscript by clarifying that get_checklist is for standalone inspection, not an assessment prerequisite.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit when-to-use and when-not-to-use guidance: it is 'OPTIONAL in the review flow', 'introspection only', and should not be combined with assess_manuscript because that already embeds the rubric. It closes with a direct instruction: 'Use this when you want to inspect the spec on its own, not as a required step before assessing.'

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

parse_manuscriptA

PRIMARY entry point: parse a manuscript into a SectionMap with character-offset, source-tagged section spans.

PASS citation=: the manuscript's full bibliographic reference in APA style (authors, year, title, journal, volume(issue), pages, DOI). It is carried into the assessment and displayed on every rendered checklist so the assessed publication is unambiguous — without it, renders can only show the short manuscript_id. You have the paper in hand; format the reference from its title page.

document is EITHER the raw manuscript text OR a file path — but the path must be readable on the SERVER host. If you are an agent whose uploaded files live on your own filesystem (a mounted upload dir, a sandbox), the server cannot see them: paste the manuscript TEXT instead, or use parse_pmcid for an open-access PMCID. Reach for a file path only when the file is on the same host as this server (server-local/batch use). A path-looking string that the server can't find raises rather than being silently ingested as its own text.

supplements is a list of server-readable file paths (PDF/docx/text) to merge as supplementary material — PASS IT WHEN YOU HAVE IT: TTE methods (estimand, identifying assumptions) frequently live in a supplementary protocol table, and without a supplement the verdicts on those leaves come back not_reported when the content was merely in an un-ingested appendix. When supplements are provided, supplement_status defaults to 'user_provided'. Pass supplement_status='none_exists' to assert the article has no supplement. section_hints is a LAST RESORT for a section the detector cannot find: {'introduction': 6543} splits whatever section contains that character offset. Some journals print no heading for a section (an introduction that simply follows the abstract) and interpose prose — a lay-summary box — that no structural rule can tell apart from the section itself; check the warnings for 'may have swallowed an unheaded introduction'. A hint never edits the text, so text_sha256 is unchanged and a hinted parse is the same document; the hinted section carries an empty heading because the paper prints none. Only supply an offset you established by READING the paper, and expect an error rather than silence if the hint cannot be applied.

Returns source-tagged section boundaries, protocol-table and flow-diagram detection over the combined text, supplement_status, and the text hash used to key later calls.

ParametersJSON Schema
NameRequiredDescriptionDefault
citationNo
documentYes
supplementsNo
manuscript_idNo
section_hintsNo
supplement_statusNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
sourceNo
n_pagesNo
citationNo
sectionsNo
warningsNo
documentsNo
full_textNo
text_sha256No
manuscript_idNo
extractor_versionNo
supplement_statusNo
flow_diagram_detectedNo
protocol_table_detectedNo

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure, and it does so thoroughly. It explains server-side file visibility, error-on-missing-path behavior, the effect of hints on text_sha256, the default behavior of supplement_status, warnings about swallowed introductions, and the return payload. This is far beyond what the schema alone conveys.

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 long but front-loaded with its primary purpose and then organized by parameter. Every section earns its place because the tool has six parameters, several subtle failure modes, and important integration caveats. It could be tightened slightly, but the length is justified by the complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers purpose, parameter semantics, error behavior, defaults, alternatives, and return values. It even explains why supplements matter for TTE methods and what happens when citation is omitted. Given the tool's complexity, the absence of annotations, and 0% schema coverage, this description is remarkably complete.

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 description coverage is 0%, so the description must compensate for every parameter, and it does. citation, document, supplements, supplement_status, and section_hints all receive detailed semantic guidance, including formats, defaults, failure modes, and examples. Only manuscript_id is left undocumented, but the critical parameters are thoroughly explained.

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 description opens with a specific verb and deliverable: 'parse a manuscript into a SectionMap with character-offset, source-tagged section spans.' This clearly distinguishes the tool from siblings like get_checklist, render_checklist, and assess_manuscript, and it identifies parse_manuscript as the 'PRIMARY entry point,' making its role in the pipeline unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit when-to-use and when-not-to-use guidance: paste text rather than a server-invisible path, use parse_pmcid for open-access PMCIDs, pass supplements when they exist, and reserve section_hints for last-resort section detection failures. It also names the alternative tool directly, so an agent can route correctly without guessing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

parse_pmcidA

CONVENIENCE / BATCH entry point: retrieve an open-access article from Europe PMC by PMCID and parse it. Reach for this in the corpus/batch case (no file in hand) or to auto-fetch an open-access paper's supplement; for a single manuscript you were given, use parse_manuscript instead. Fetches JATS main text plus (if available) PMC-hosted supplementary files, merged into one source-tagged SectionMap. supplement_status is 'retrieved' when a supplement was obtained, else 'not_retrieved' (a supplement may still exist on the publisher site; absence of retrieval is not proof of absence). Raises if no open-access full text is available. Returns the same summary as parse_manuscript, including the text hash for assess_manuscript. An APA-style citation is auto-built from the article's JATS metadata and displayed on every rendered checklist; pass citation= to override it (e.g. when the auto-built reference is incomplete).

ParametersJSON Schema
NameRequiredDescriptionDefault
pmcidYes
citationNo
include_supplementsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
sourceNo
n_pagesNo
citationNo
sectionsNo
warningsNo
documentsNo
full_textNo
text_sha256No
manuscript_idNo
extractor_versionNo
supplement_statusNo
flow_diagram_detectedNo
protocol_table_detectedNo

TDQS

A4.7/5.0
Behavior5/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 covers fetching behavior (JATS plus supplements), supplement_status interpretation, the error condition (raises if no open-access full text), the return relation to parse_manuscript, and the auto-built citation with override. This is rich, concrete context beyond what the schema shows.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Every sentence in this multi-sentence description adds functional information: batch use, alternative, fetch scope, status semantics, error, return, and citation. No filler or repetition; dense but scannable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite no annotations, the description covers selection criteria, behavior, error handling, return type (same summary as parse_manuscript), and an override option. The presence of an output schema covers structural return details, so the description is effectively complete for an agent deciding whether and how to invoke this tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It clarifies pmcid (by PMCID from Europe PMC) and citation (override auto-built reference), but include_supplements is only implicitly covered by the statement that supplements are fetched if available. The description never explicitly names the parameter or explains the effect of setting it false, leaving partial compensation.

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 description opens with a clear verb-object pair: 'retrieve an open-access article from Europe PMC by PMCID and parse it.' It also explicitly distinguishes itself from parse_manuscript, so an agent can select between siblings without reading the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

States exactly when to choose this tool: 'corpus/batch case (no file in hand)' or 'auto-fetch an open-access paper's supplement' and when not to: 'for a single manuscript you were given, use parse_manuscript instead.' Also ties its output to assess_manuscript via the text hash, strengthening routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

render_checklistA

Render a finalized assessment as the completed TARGET checklist form: the 21 published items (39 leaf rows, in checklist order) with the published item wording and a Location-reported column derived from the resolved evidence spans. The default enriched view adds, per leaf, the instrument's verdict and the verbatim evidence quote that justifies the location; view='official' strips to the published form's columns (Item / Checklist item / Location reported). Returns structured rows, a completeness tally, and a ready-to-display Markdown table. Pass either a full assessment object or the manuscript_id of one assessed earlier this session. This is a pure projection — no re-scoring.

ParametersJSON Schema
NameRequiredDescriptionDefault
viewNoenriched
assessmentNo
manuscript_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
htmlNo
rowsNo
viewNo
citationNo
markdownNo
provenanceNo
attributionNo
completenessNo
spec_versionNo
manuscript_idNo
generated_fromNo
supplement_statusNo

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full behavioral burden. It discloses that the tool is a pure projection, returns structured rows plus a completeness tally and Markdown table, and that views affect columns. It could go further on edge cases like conflicting inputs, but the core behavior is clearly communicated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but efficiently structured: purpose, detailed output/views, return artifacts, input options, and a final behavioral boundary. Every sentence adds value and the front-loading lets an agent quickly identify the tool's purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that an output schema exists and covers return shape, the description appropriately focuses on input selection, view modes, and the pure-projection guarantee. This is enough for an agent to decide when and how to invoke the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, and it does. It explains both view values ('enriched' and 'official') with column-level effects and clarifies the two possible input sources: assessment or manuscript_id. It does not fully document the structure of the assessment object, but all parameters receive meaningful guidance.

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 description begins with a specific verb and resource: 'Render a finalized assessment as the completed TARGET checklist form'. It details the 21 published items, 39 leaf rows, the Location-reported column, and clarifies the output type, clearly distinguishing this from scoring and document-rendering siblings. The explicit 'pure projection — no re-scoring' further disambiguates it from assessment tools.

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 gives clear context for when to use the tool: pass either a full assessment object or a manuscript_id assessed earlier in the session. It also signals that this is not a scoring tool. However, it does not explicitly name alternatives such as render_checklist_docx or render_checklist_html when a different output format is needed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

render_checklist_docxA

Write the completed TARGET checklist to a Word (.docx) file and return it. Same content as render_checklist (published item wording + a Location-reported column from the resolved evidence spans; enriched view adds verdict and evidence), serialized as a submission-ready landscape table, one per manuscript section. Pass a full assessment object or the manuscript_id of one assessed this session. view='official' strips to the published form's three columns.

RETRIEVING THE FILE: the return carries the document bytes as base64 in content_base64 (with content_type and filename) — decode and save these to get the deliverable. The file is ALSO written to path on the server host, but that filesystem is not the caller's: if you are an agent whose files live elsewhere, use content_base64, not path. path defaults to a writable temp dir and is only directly useful for server-local/batch runs.

logo=True heads the document with the published TARGET banner, but ONLY on view='official' (the author's self-report form); on the enriched view it is ignored and the returned logo_applied is False, because the official mark on a machine-generated assessment would imply an endorsement the instrument does not carry. Default off.

ParametersJSON Schema
NameRequiredDescriptionDefault
logoNo
pathNo
viewNoenriched
assessmentNo
manuscript_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
pathNo
viewNo
bytesNo
n_rowsNo
filenameNo
content_typeNo
logo_appliedNo
content_base64No

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden, and it goes well beyond a basic summary. It discloses the base64 return payload, the caveat that the server filesystem path is not the caller's and content_base64 should be used instead, and the nuanced logo behavior where the banner is ignored on the enriched view and logo_applied is False.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but every section earns its place: purpose, content differences, retrieval instructions, path caveat, and logo behavior. It is front-loaded with the main purpose and uses clear paragraph headers to separate retrieval and logo guidance, making it easy for an agent to scan.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the five parameters, zero annotations, and the need to explain file retrieval and view-specific behavior, the description covers everything required to call the tool correctly. It explains how to obtain the deliverable, the effect of each key parameter, and the subtle logo restriction, leaving no critical gap.

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 description coverage is 0%, so the description fully compensates. It explains the alternatives assessment vs. manuscript_id, the meaning and effect of view='official', the semantics of path as a server-local temp location that callers should avoid, and the behavior of logo including its default off state.

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 description opens with a specific verb and resource: 'Write the completed TARGET checklist to a Word (.docx) file and return it.' It clearly distinguishes itself from render_checklist and render_checklist_html by specifying the docx serialization and the added Location-reported column, so an agent can identify which sibling to invoke.

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 gives strong context: it explains when to pass an assessment object vs. manuscript_id, how view='official' changes the output, and what logo=True does. It does not explicitly state 'use this instead of render_checklist_html when you need a Word document,' but the docx naming and 'serialized as a submission-ready landscape table' make that usage context clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

render_checklist_htmlA

Render the completed TARGET checklist as a self-contained HTML page — same content as render_checklist, styled to the Black Swan Causal Labs identity (canvas ground, one aligned table, verdict pills), viewable in any browser on any host. Returns the HTML string in html (show it inline or publish it as an artifact) and the same bytes as base64 in content_base64 (decode and save as an .html file). Carries the provenance stamp. Pass a full assessment object or the manuscript_id of one assessed this session; view='official' strips to the published form's three columns.

ParametersJSON Schema
NameRequiredDescriptionDefault
viewNoenriched
assessmentNo
manuscript_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
htmlNo
viewNo
filenameNo
provenanceNo
content_typeNo
manuscript_idNo
content_base64No

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full behavioral burden. It discloses return values (html string and base64 content), the provenance stamp, the self-contained nature, and view behavior ('view='official' strips to the published form's three columns'). This is strong, though it does not discuss side effects or failure modes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but every clause adds value: purpose, relationship to sibling, output details, input requirements, and view option. It is front-loaded with the primary action and maintains a clear structure despite its length.

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?

The description covers the essential operational needs: inputs, output format, and a view variant. It is slightly incomplete regarding what happens when no input is provided or when both assessment and manuscript_id are supplied, but overall it gives enough context for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the description compensates by explaining that either an assessment object or manuscript_id should be passed, and that view='official' changes the output. It does not fully describe all possible view values or the exact shape of the assessment object, leaving some room for ambiguity.

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 description states a specific action ('Render the completed TARGET checklist as a self-contained HTML page') and clearly identifies the output format. It also distinguishes the tool from its sibling render_checklist by noting 'same content as render_checklist' while adding the HTML/browser context.

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 gives clear guidance on when to use this tool: when an HTML page is needed, viewable in any browser. It also tells the agent what inputs to provide ('Pass a full assessment object or the manuscript_id of one assessed this session'). However, it does not explicitly state when not to use it or compare against render_checklist_docx.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

submit_scaffold_verdictsA

Scaffold-mode completion: validate verdicts produced by the calling agent (leaf coverage, verdict vocabulary, mandatory verbatim evidence quotes resolved to spans) and return the stamped assessment TOGETHER WITH the finished, rendered deliverable. items is the verdict array from the forced tool call — one object per leaf with id, verdict, confidence, rationale, and (for reported/partial) evidence_quotes.

THE ARTIFACT OF RECORD is in the returned report (by default the HTML form), carrying a provenance stamp bound to the ingested text and prompt. That stamped render is the ONLY canonical output — present it as the completed checklist. Need another format? Do NOT hand-assemble one: call render_checklist (markdown) or render_checklist_docx (.docx bytes) to re-render the same stamped artifact, or pass report_formats (any of 'html', 'markdown', 'docx') to include them here. The default is HTML only because every extra format flows through your context window. The items verdicts are an intermediate object; do NOT hand-assemble your own checklist document and present it as the assessment, because it will lack the stamp and cannot be verified. You MAY additionally write an analytic memo (prioritized gaps, an estimand-first reading), but label it as commentary and cite the stamp — never let it stand in for, or inherit the authority of, the stamped form.

Set render=false to skip rendering (verdicts only). The parse cache does not survive a server restart; if text_sha256 is no longer cached, pass document (the same path or text) to re-parse transparently.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemsYes
modelNounspecified
renderNo
documentNo
text_sha256Yes
spec_versionNotarget-0.1.0
report_formatsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
modeNo
itemsNo
modelNo
usageNo
reportNo
citationNo
documentsNo
assessed_atNo
prompt_hashNo
temperatureNo
text_sha256No
spec_versionNo
manuscript_idNo
excluded_leavesNo
section_rollupsNo
extractor_versionNo
supplement_statusNo
full_text_availableNo
prompt_template_versionNo
unresolved_evidence_leavesNo

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral burden and fully discloses consequences: the only canonical output is the stamped report, extra formats increase context usage, parse cache is not persistent, and re-parsing can be triggered transparently via document. It also clarifies intended authority of analytic memos so agents do not substitute commentary for the stamped form.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Long but tightly organized: the opening defines the operation, the middle establishes canonical output and exclusions, and the final paragraph covers rendering and caching edge cases. The emphasis markers and repeated no-hand-assembly warnings are intentional guardrails, not filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity with 7 parameters, no annotations, and an output schema, the description supplies all essential operational context: return value identity, verification semantics, alternative format paths, and failure/recovery scenario for cache misses. Nothing needed to invoke it correctly is omitted.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It does for the important parameters: items structure, text_sha256/document cache behavior, render false, and report_formats allowed values. It leaves model and spec_version semantically unexplained, though their defaults and titles reduce the risk.

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 states a specific action — validate verdicts and return the stamped assessment plus rendered deliverable — with clear scope (scaffold-mode completion). It also distinguishes itself from render_checklist/render_checklist_docx by naming them as the re-rendering route rather than hand-assembly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description makes the when explicit: it is the forced completion call after verdicts are produced, and it gives explicit alternatives for format conversion (render_checklist, render_checklist_docx, report_formats) and for skipping rendering (render=false). It warns against hand-assembling the deliverable, which prevents a common misuse.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_against_goldA

Compute per-leaf agreement between instrument assessments and human gold-standard codings: raw agreement, Cohen's kappa, Gwet's AC1, and binary (reported-vs-rest) sensitivity/specificity with the human coding as the reference standard, plus a span-keyed disagreement list for adjudication. Agreement is reported PER LEAF; the pooled figure is orientation only. Both arguments are arrays of assessment/coding objects sharing manuscript ids and spec version.

ParametersJSON Schema
NameRequiredDescriptionDefault
instrumentYes
human_codingsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
n_papersNo
per_leafNo
spec_versionNo
disagreementsNo
n_disagreementsNo
papers_comparedNo
leaves_with_dataNo
pooled_raw_agreementNo
pooled_binary_reportedNo

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 behavioral burden, and it does so well: it discloses that agreement is computed per leaf, that the pooled figure is orientation-only, that the human coding is the reference standard, and that a span-keyed disagreement list is produced. It does not discuss side effects or error conditions, but 'Compute' implies a read-only analysis and the output schema presumably covers return structure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three dense sentences with no filler: the first states what is computed and the metrics, the second clarifies the per-leaf vs pooled distinction, and the third defines both parameters. Every sentence earns its place and important scope qualifiers are 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 output schema exists, the description is not required to explain return values, and it provides the essential input relationship and reference-standard orientation. Minor gaps remain around exact required fields inside the array objects and potential constraints like same-length or spec-version matching, but the description is sufficiently complete for a generic-object validation tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate. It names both arguments, states they are arrays of objects, identifies their roles ('instrument' vs 'human_codings'), and clarifies that they share manuscript ids and spec version. It does not enumerate individual object fields, but since the schema uses additionalProperties: true, there is no structured field detail to compensate for.

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 description opens with a specific verb ('Compute') and a precise resource ('per-leaf agreement between instrument assessments and human gold-standard codings'), then enumerates the concrete metrics produced. This clearly distinguishes it from the parse/render/assess/aggregate sibling tools, none of which perform gold-standard validation.

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 clearly establishes when this tool is appropriate: when you have instrument assessments and human gold-standard codings to compare. It does not name alternatives or explicit exclusions, but the context is unmistakable given the siblings are all about parsing, rendering, assessing, or aggregating—not validating against gold standards.

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. 11 tool updatesv0.2.0
    • First observedaggregate_corpus
    • First observedassess_manuscript
    • First observedbuild_coding_sheet
    • First observedget_checklist
    • First observedparse_manuscript
    • First observedparse_pmcid
    • First observedrender_checklist
    • First observedrender_checklist_docx
    • First observedrender_checklist_html
    • First observedsubmit_scaffold_verdicts
    • First observedvalidate_against_gold

TDQS

A4.4/5.0

Scored across 11 tools

Disambiguation4/5

Each tool maps to a distinct stage of the TARGET review pipeline: ingest, assessment, rendering, and corpus validation. The only real overlap is the three render_checklist variants, but their output-format suffixes make selection unambiguous.

Naming Consistency4/5

All names use snake_case and start with a verb, mostly following a verb_noun pattern like parse_manuscript and render_checklist. Minor deviations such as validate_against_gold and render_checklist_docx/html add modifiers or suffixes, but the overall convention remains readable and predictable.

Tool Count5/5

Eleven tools is well-scoped for a complete assessment pipeline: parsing, assessing, stamping, rendering in three formats, and corpus-level aggregation/validation. Every tool has a distinct role, and none feels redundant or missing.

Completeness4/5

The tool surface covers the full TARGET workflow from manuscript ingestion through canonical stamped rendering and gold-standard validation, with no dead ends in the primary path. Minor gaps exist around session-scoped data and the lack of an explicit amendment workflow, but agents can work around these.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    Enables scientific due diligence by grading claims against public literature, clinical trials, and filings, with explicit citations and optional attestation.
    4
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables traceable scholarly literature reviews using free APIs, generating reports where every claim links to evidence IDs.
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    An MCP server implementing the ROBINS-I V2 framework for risk-of-bias assessment in non-randomized studies, with deterministic algorithms and full provenance. It enables users to parse study documents, specify target trial results, answer signalling questions with evidence-bound quotes, and compute or override domain judgements.
    9
    Apache 2.0
  • A
    license
    B
    quality
    C
    maintenance
    Enables revision-bound source audits with exact article fingerprinting, claim-to-source mapping, quotation verification, and immutable JSON evidence reports for prepublication review.
    9
    MIT