Skip to main content
Glama

Research Toolkit

MIT License Framework checks

English · 简体中文

Turn a research question or existing material into a report with concrete judgments and traceable sources.

Use it for industry research, product comparisons, company analysis and technical research. Start a new study, revise an existing report against its sources, or update conclusions when new material arrives. Your host agents research, write and independently review; Toolkit connects their methods, evidence and deliverables through one research entry and optional task tools.

Choose an entry · Start research · See a research case · Documentation

How does a study get done?

The lead agent maintains the research question, effective requirements and overall judgment. Research agents investigate, compare, calculate and write substantial parts. A designated assembling agent reads their full work and sources, reconciles the argument and develops the main report progressively. Different independent agents review it, audit the findings and accept the final version.

Responsibility

How the work connects

Task and context

Keep the current brief, outline, effective requirements and dependencies together. Satisfied requirements remain visible when they still constrain later work.

Evidence and analysis

Give each researcher a bounded question, relevant original material and related findings. Preserve its evidence, reasoning, conditions and unresolved questions in the handoff.

Writing and revision

Develop meaningful research units, review premises before dependent work, and integrate their complete analysis into one owned main draft. Changes return to affected units and the outline.

Review and delivery

Complete seven separate content-review perspectives, relevant domain review, independent audit and final acceptance against the current report and sources. Resolve necessary corrections before delivery.

These are four connected responsibilities, not four fixed agents or four independent pipelines. Codex, Claude Code and similar hosts run the agents and carry messages; Toolkit provides shared inputs, methods, artifact relationships and completion checks. Host-native collaboration does not require separate API setup. Research steps · Handoff and calls

flowchart LR
  L[Lead: question and outline] --> R[Research agents: evidence and arguments]
  R --> W[Designated assembling agent: progressive main draft]
  R --> U[Independent review at important dependencies]
  U --> R
  W --> V[Seven content perspectives + domain review]
  V --> A[Independent audit]
  A --> F[Independent final acceptance]
  A -->|Necessary correction| R
  F --> D[Complete report]

Related MCP server: Eyes-MCP

Which should I use?

The Skill provides research methods, CLI and MCP expose the same local tools, and the plugin bundles the Skill with MCP. These are not four research methods or separate choices for briefs, long reports or research depth.

Your situation

What to use or install

How to start

You want your existing agent to follow the research methods

Skill: read the repository directly without installation, or install the Skill for repeated use. No Python or MCP required.

Send the request below; the agent reads methods as needed and uses its existing research and writing capabilities.

You want methods and task tools together, and your host supports plugins

Plugin: installs the Skill and MCP together; local tools need Python 3.10+ and MCP dependencies.

Follow the plugin instructions, reopen the session, select Toolkit and describe the research.

You need saved task state, recovery and links between sources and drafts, and your host supports local MCP

MCP: configure the local service and use the same Skill for methods. No separate MCP setup is needed if the plugin already supplies it.

Follow the MCP setup; the agent calls research_* tools.

You work in a terminal or script, or your host has no MCP support

CLI: download the repository and use Python 3.10+; no MCP dependencies needed.

The agent reads the same Skill and invokes the same task tools through the command line.

For a first use, start directly with the Skill. Add task tools when persistent state, tool-managed reviews or delivery checks help the work, not because a report reaches a word count. You do not need to install all four or use them in sequence. Skill-only use supports in-depth long reports without requiring the tools' CSV/JSONL registries or delivery receipts.

Which tasks fit? Industry, company, technology and policy research requiring multiple sources, comparison, explanation or supported recommendations; long reports, revisions and continuing updates. A one-page selection brief can need these methods too. Simple factual questions, routine translation or minor wording edits usually need only your existing agent. Toolkit does not supply a search service or replace the agent's access to and reading of sources.

Research from scratch · Revise or update a report · Install for your host

Quick start

Describe your question or requested revision in your own words to an agent that can read the repository and sources. The example below is a starting point; you do not need to fill in undecided details. The agent uses existing context to propose an approach and clarifies only consequential gaps. No installation is needed to use the methods directly.

Use Research Toolkit: https://github.com/rrrrrredy/research-toolkit
Read SKILL.md and follow the methods needed for this task.

I want to understand or resolve: [The question, or what to change in an existing report.]
Audience and purpose: [Who will read it and why, if known.]
Material and explicit requirements: [Sources, scope, cutoff, format or length, if available.]

Deliver a complete report that answers these questions with usable citations;
include a short change note when revising.

Start research: one usage guide

One method set supports long-form and in-depth research, revisions and updates. The request determines scope, length and depth; the agents load methods for their current work and complete independent review, audit and acceptance.

Only need to review an existing report? Use the standalone Research Review Skill. Toolkit already includes these review capabilities; existing users do not need a second installation.

Have a draft or new material? Revise or update existing research, reusing completed research and its sources.

Research case

APIs or browsers for AI agents. An English report drawing on 11 primary sources to compare API calls, DOM automation and visual interaction through completion, recovery and cost.

Read the report · Initial draft · Sources · Reviews and revisions

Before:

There is no benefit in preserving this split if the API later covers document generation with adequate permissions and result checking.

After:

If the API later covers document generation with adequate permissions and result checking, the original coverage gap disappears. Retiring the browser step then depends on whether the expected maintenance and recovery savings justify migration and revalidation costs.

The review identified a missing counterexample: replacing a working browser step may cost more than the expected savings. The revision makes that trade-off part of the recommendation.

Explore the revision

Public-source analysis dated 10 October 2026, not a deployment test. Also read the Chinese office-agent comparison and its source and revision archive.

Agent setup

How you want to use it

Entry

Read the methods directly

Send the request above; for files or text-only chats, see agent setup.

Install a Skill or plugin

Choose your agent · Plugin installation

Save progress and call workflow tools

MCP installation and client configuration · CLI

Try the local tools

Runnable MCP example and captured responses; synthetic examples explain the interface, while real execution records retain their actual review scope.

Nine local tools provide shared task context, on-demand methods, source and analysis saving, registered release-log queries, reviews and delivery checks. CLI and MCP use the same implementation. MCP requires Python 3.10+ and a client that can launch local processes; setup covers Windows, macOS and Linux.

Independent review uses fresh host contexts. Each required perspective has its own reviewer; authors and assembling agents do not review their own work. Audit and final acceptance have separate assignments. CLI/MCP retains the original host responses and input versions through the same research_review operation. Review and acceptance

Evidence and evaluations

Public records include complete reports, original failures, reviews and repairs. They show concrete report corrections and tested workflow behavior; they do not yet establish a general quality or efficiency advantage over a native agent. Case studies, model comparisons and software checks answer different questions.

Current evidence and limits · Complete-report version comparison (Chinese) · Datasets and checks · Historical data archive

Documentation

Need

Entry

Research and writing methods

Research guide · Skill instructions

Delegate research and integrate results

Collaboration and requests · Research production and handoff

Existing reports and source updates

Continue existing research

Installation and configuration

Agent setup · Usage guide

Development and changes

Contributing · Changelog

All documentation · Website · Submit a failure case

Available Tools

9 tools
research_check_draftA

Check draft records and declared whole-artifact length before review or finish, without model calls. Returns actual counts, explicit range checks and errors. No limit is inferred from prose. Does not change progress, reports, reviews or receipts; uses the shared local task lock. ok describes these mechanical checks only, never semantic quality or delivery approval. Correct ordinary drafts and recheck; preserve frozen evaluation originals.

NameRequiredDescriptionDefault
taskYes
artifactNofinal.md

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.7/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 so well: no model calls, no inference of limits from prose, no mutation of progress/reports/reviews/receipts, and use of a shared local task lock. It also scopes the 'ok' signal explicitly to mechanical checks rather than semantic quality or delivery approval, which prevents misuse. Remaining gap: it does not characterize failure/error modes beyond 'returns errors'.

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?

Front-loaded with the core action in the first clause, and each following line adds a distinct constraint (no model calls, no mutation, ok semantics) with no filler. The telegraphic fragments and undefined shorthand like 'ok' cost some readability but do not waste space.

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?

An output schema exists, so return values need not be fully explained; the description still signals that counts, range-check results and errors come back. Combined with the non-mutation and locking disclosures, this is nearly complete for a 2-parameter, low-risk check tool, with parameter meaning as the main omission.

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

Parameters2/5

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

Schema description coverage is 0% and the description never names or explains the two parameters ('task' and 'artifact', the latter defaulting to final.md). 'Whole-artifact length' hints at the artifact parameter but does not state its format, path semantics, or what 'task' must identify.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and object (check draft records and declared whole-artifact length) and pins a scope boundary (no model calls, mechanical only). It is distinguishable from research_check_reviewer and research_review, though the phrase 'declared whole-artifact length' is jargon that takes a second read.

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 names the workflow point at which to call it ('before review or finish') and gives a directional rule for which drafts to apply it to ('Correct ordinary drafts and recheck; preserve frozen evaluation originals'). It does not name the sibling check tool it is an alternative to, but the usage context is clear.

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

research_check_reviewerA

Check trusted reviewer configuration locally, without sending report data or paid model calls.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior4/5

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

No annotations are provided, so the description carries the full behavioral burden, and it does disclose the two traits that matter most: no report data leaves the machine and no paid model calls are made. What it does not disclose is whether it mutates anything or what a failed check looks like, though the output schema covers the return value.

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?

A single front-loaded sentence that communicates action, resource, and the two most decision-relevant constraints. No filler.

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?

With no parameters and an output schema present, the description needs only to convey purpose and behavioral constraints, which it does. It is slightly thin on what 'trusted reviewer configuration' actually consists of, but that is a minor gap for a zero-arg, schema-backed 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?

The tool takes zero parameters, so there is nothing for the description to disambiguate. Baseline 4 applies for a parameterless tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Check') and resource ('trusted reviewer configuration'), plus a scope qualifier ('locally'). It is distinguishable from the sibling research_review because it explicitly frames itself as a local, no-cost verification rather than an actual review. It stops short of naming a sibling, so 4 rather than 5.

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

Usage Guidelines3/5

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

The phrase 'without sending report data or paid model calls' implies this is the cheap pre-flight check to run before invoking the paid review path, but the guidance is implied rather than stated. No alternative tool is named and no explicit when-not condition is given.

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

research_check_updatesA

Read one registered public release log and compare its latest saved date and newer entries. Return added/removed content, source dates and existing claim/report locations; unchanged ends the check. Requires official_release/release_notes/changelog and saved evidence with dated version entries. Read failures are explicit. Does not follow links, change evidence/reading status, or revise reports.

NameRequiredDescriptionDefault
taskYes
source_idYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior4/5

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

With no annotations, the description carries the load and does so well: it discloses that failures are explicit, that the tool is purely read-only and will not mutate evidence or reports, and what the return content consists of (added/removed content, source dates, existing claim/report locations). Missing only edge-case behavior such as what happens when the registered source has no dated evidence.

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?

Front-loaded with the core action, then preconditions, then exclusions. Sentences are dense but each carries distinct information; no filler or restatement of the name.

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 output schema covers return values, and the description still summarizes return content and explicitly disclaims side effects and link-following, which is the important part for a read tool. The remaining hole is parameter meaning, which is a real gap for a two-required-parameter tool but not disqualifying.

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

Parameters2/5

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

Schema coverage is 0%, so the description must explain 'task' and 'source_id' and it does not. 'One registered public release log' faintly implies source_id is a registered source identifier, but 'task' is never mentioned and neither parameter's format, valid values, or constraints are given.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb chain (read a registered release log, compare latest saved date against newer entries) and names the resource precisely, which is distinguishable from the research_* siblings that save, review, or report. It stops short of naming which sibling to use instead, but the operation is unambiguous.

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?

Gives concrete preconditions ('Requires official_release/release_notes/changelog and saved evidence with dated version entries') and a termination rule ('unchanged ends the check'). It also lists what it will not do (follow links, change evidence/reading status, revise reports), which effectively routes the agent elsewhere, though no sibling is named explicitly.

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

research_finishB

Verify report delivery and publish its receipt/terminal state only when checks pass. Current work requires completed independent perspectives, audit and acceptance bound to the current full artifact. Historical checklist receipts remain readable; checklist cannot replace current independent work. Explicit length_constraint rows in state/requirements.jsonl are measured; no limit is inferred from prose. message is the intended user-visible delivery text. This does not send messages or publish externally. Independent audit adjudicates no-change decisions; an author's appended disposition cannot clear required findings. Evaluation tasks end with evaluation_complete from research_review, without repairing samples.

NameRequiredDescriptionDefault
taskYes
messageYes
artifactNofinal.md
checklistNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior4/5

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

With no annotations, the description carries real weight: it discloses that publishing is conditional on checks passing, that it does not send messages or publish externally, that historical checklist receipts stay readable but cannot substitute for current work, and that an author's own disposition cannot clear audit findings. These are genuine behavioral constraints an agent could not get from the schema.

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

Conciseness3/5

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

Length is appropriate and the gating condition is front-loaded, but several sentences are compressed into near-opaque noun stacks ('audit and acceptance bound to the current full artifact'), which costs comprehension without saving much space.

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?

The output schema means return values need not be described, and the preconditions are covered. But for a 4-parameter, zero-coverage schema with no annotations, leaving `task` and `artifact` undefined and the checklist contract only alluded to is a meaningful gap.

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

Parameters2/5

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

Schema coverage is 0% across 4 parameters, so the description must compensate and only partly does. It defines `message` ('intended user-visible delivery text') and gestures at `checklist` via receipt language, but `task` is never explained and `artifact` is only obliquely referenced through 'current full artifact', with its default of final.md unmentioned.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence gives a specific verb pair ('verify report delivery and publish its receipt/terminal state'), which tells an agent this is a completion/gate tool. But 'publish' is later negated ('does not send messages or publish externally'), so the core action is muddied, and nothing distinguishes it explicitly from research_review or research_save beyond a passing reference to evaluation_complete.

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

Usage Guidelines3/5

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

It implies preconditions for success ('requires completed independent perspectives, audit and acceptance bound to the current full artifact') and names research_review as the source of evaluation_complete for evaluation tasks. However, it never states plainly when to call this instead of research_review or research_save, leaving the routing decision to inference.

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

research_guideA

Read brief/collect/analyze/draft/review/revise/final methods without a task. language accepts "en" (English), "zh" or "zh-CN" (the same Chinese methods). All tasks receive the same complete methods for this stage; omit the legacy profile argument. For an existing task use research_status to preserve its recorded completion requirements. Optional methods selects named capabilities (e.g. compare/explain/assemble/delegate) for the current question. Omit methods to keep stage defaults; available_methods lists choices. No additional step is required.

NameRequiredDescriptionDefault
stageYes
methodsNo
profileNofull
languageNoen

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description carries the full behavioral burden. "Read" implies non-mutating and "No additional step is required" implies idempotence, but it never explicitly states there are no side effects, no auth requirements, or what happens on repeated calls. The note that profile is "legacy" is a useful deprecation signal that goes beyond structured fields.

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

Conciseness3/5

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

Sentence count is reasonable, but the prose is run-on and loosely ordered: the stage list, language, profile deprecation, task contrast, and methods all interleave. "No additional step is required." is filler, and "available_methods lists choices" points to a tool not present among the named siblings, which adds noise.

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?

An output schema exists, so return values need no explanation, and the description does cover all four parameters at least implicitly. Still, for a tool with zero annotation coverage and zero schema descriptions, it should state explicitly whether the call is read-only and confirm the full set of legal stage values rather than embedding them in a slash-separated phrase.

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 largely does: it enumerates accepted language codes ('en', 'zh'/'zh-CN'), explains methods as named capabilities with examples, tells the caller to omit the legacy profile argument, and effectively lists the stage values. Only the stage parameter's meaning is conveyed indirectly rather than stated outright.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening states a specific verb and resource ("Read ... methods") scoped to a stage, and later implicitly contrasts itself with research_status for existing tasks. The purpose is discernible but the phrase "Read brief/collect/analyze/draft/review/revise/final methods" is dense enough that an agent must parse a stage list to get at the actual action.

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 names the alternative for an existing task ("use research_status to preserve its recorded completion requirements") and gives conditional guidance for the optional parameter ("Omit methods to keep stage defaults"). It does not, however, say when this tool is preferable to research_start or research_check_updates beyond that single contrast.

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

research_reviewA

Prepare independent assignments or receive the host's actual completed result; no API setup is needed. The host dispatches distinct non-author agents: seven whole-report perspectives and domain review, then an independent audit with independently selected samples, then independent final acceptance. host_result uses slot_id, host_task (actual session handle), response_path and execution_path (task-relative original UTF-8 response and completed host capture). Original responses quote input_version and assignment_version. execution_path records host_task, status=completed and assignment_version. Do not fabricate responses or identities. evidence_paths may be empty when registered original evidence suffices; required sources are included automatically. Each pending assignment includes reading_ref: open its readable input and full-text links when dispatching the host agent. On revision, resume_host_task identifies the earlier independent context to continue when available; revision_context compares the current input with that role's actual reviewed version and retains its original work. Omitted perspectives/domains continue the saved unit selection; explicit values change the selection. assignment_ref remains the original frozen JSON; include_assignment=False avoids repeating it inline. Versions are unchanged. For progressive work set scope to a saved unit_id and artifact to its draft; perspectives selects relevant unit reviews. New units default to no domain review; domains supplies needed specialist perspectives. audit=True adds independent unit adjudication when needed, retaining existing content results. An enabled audit cannot be removed; full reports always require audit and final acceptance. Main drafts must have their actual producer registered via save draft.host_task. Revision assignments reference earlier reviews, frozen inputs and changed locations; these are reading aids, not current PASS. A completed negative review is retained. Correct the draft, then use revision=True; do not reroll for a pass. reviewer=self and self_review remain recognizable legacy parameters but cannot complete current independent review. Explicitly configured external backends execute the same assignments; ordinary use stays in the host.

NameRequiredDescriptionDefault
taskYes
auditNo
scopeNofull_report
domainsNo
purposeNoreport_delivery
artifactNofinal.md
reviewerNo
revisionNo
host_resultNo
self_reviewNo
perspectivesNo
evidence_pathsYes
include_assignmentNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.9/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 add substantial behavioral context: no API setup needed, host dispatches distinct non-author agents, an enabled audit cannot be removed, main drafts must have a registered producer, negative reviews are retained, and reviewer=self is a legacy path that cannot complete current review. Gaps remain around return/error behavior, but the operational profile is unusually detailed.

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

Conciseness3/5

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

The content is dense and largely earns its place, but it arrives as an unstructured block with no front-loaded summary and several cryptic sentences (e.g., 'these are reading aids, not current PASS'). Size is defensible given complexity, but readability and ordering suffer.

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 13-parameter, annotation-free orchestration tool with an output schema, the description covers the dispatch/audit/revision/reviewer behavior and most parameters adequately. The main omissions are the meaning of 'task' and 'purpose', though return values are covered by the output schema.

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 largely does, explaining host_result fields, assignment_ref, include_assignment, scope, artifact, perspectives, domains, audit, revision, reviewer, self_review, and evidence_paths. The required 'task' and 'purpose' parameters are never explained, and the mappings are scattered rather than systematic.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies the resource and pipeline clearly: it prepares independent review assignments (seven whole-report perspectives, domain review, independent audit, final acceptance) or receives the host's completed result. The dual verb ('prepare ... or receive') muddies the one-line purpose, but the subject matter is specific and distinct from siblings like research_check_reviewer or research_finish.

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?

Strong conditional guidance is present: when to use revision=True (after correcting a draft, not to reroll for a pass), when audit becomes required, and how omitted vs explicit perspectives/domains change selection. It stops short of explicitly contrasting this tool against siblings, leaving some inference required.

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

research_saveA

Save/update source, claim and requirement objects by stable ID; the tool writes CSV/JSONL. Omitted IDs are assigned or matched by URL/claim/summary. Partial updates retain other fields and rows. requirements.unit_ids optionally assigns a requirement to named research units; omit it or use [] for global scope. work.requirement_ids selects records to read, not their applicability. All effective requirements remain accessible. sources.read_scope records actual reading; requirements.reading_requirement specifies required reading, not read_scope. For an active mandatory-reading requirement, the merged row needs reading_requirement="full_text" or "relevant_sections" and required_source_ids, a nonempty list of distinct source IDs, e.g. ["S1"]. Other requirements can omit both. IDs refer to source records; partial updates may omit fields already saved on the requirement. For local read_evidence, prefer a task-relative path to an existing nonempty file, e.g. "sources/S1.md"; put reading locations and notes in locator, e.g. "pp. 2-4; relevant sections only", not appended to the path. URL/page locators and supported local-reference forms remain valid; optional evidence_path locates local UTF-8 source text. draft uses path, optional content and complete=true for a complete draft; omit content to register an existing file. draft.main=true explicitly selects the current work; optional kind is report/comparison/review/analysis. For a contribution use kind=analysis, unit_id and the actual producing host_task; question states its research question. depends_on lists actual upstream unit IDs. complete=true records a finished unit, not an independent review or delivery; a dependent unit cannot complete before its declared upstream versions are finished and independently reviewed. Saving a prepared unit automatically retains its input versions, question and dependencies from status.work. Explicit based_on overrides that selection and copies work_context.inputs unchanged: file paths and record:sources:S1 / record:claims:C1 / record:requirements:effective or effective@unit IDs map to SHA256; copy the returned keys rather than constructing them. handoff uses summary, optional pending/decisions text lists and to (the receiving host task/session). The registered main writer transfers ownership through handoff.to; another host cannot silently replace the main draft. Saved unit originals and prior versions are retained in existing record-backups; summaries do not replace original analysis. current_work.research_outputs returns contributions, owners, current dependencies and changed inputs for research judgment. Chapter/reference drafts do not change the main selection. brief updates only supplied brief fields and task_spec together. Returns assigned IDs and field errors for the agent to resolve, without asking users to manage records. replace names complete collections to repair from recovered rows; original bytes are backed up automatically. Records reading/verification claims as supplied, never infers truth or closes requirements automatically. Saves retain event timestamps and original failures for task continuity. changes summarizes the latest record-save batch and candidate claim/report locations; identical bytes are not rewritten. Saving a source ID also compares local evidence against its previous save observation. First observations are explicit.

NameRequiredDescriptionDefault
taskYes
briefNo
draftNo
claimsNo
replaceNo
sourcesNo
requirementsNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.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 and does so extensively: it discloses file writes, partial-update retention, automatic backups, ownership transfer through handoff.to, retention of timestamps and failures, and that claims are recorded as supplied without inferring truth. It also clarifies that requirements are not closed automatically and that identical bytes are not rewritten.

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

Conciseness3/5

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

The purpose is front-loaded and many sentences convey non-obvious operational rules, but the description is a dense wall of text with no headings, grouping, or examples beyond one bracketed ID example. It is information-rich rather than padded, yet the lack of structure makes it harder than necessary to scan.

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 tool is complex, has no annotations, zero schema description coverage, and only a partial output schema, so the description needs to be rich; it covers most high-risk semantics around updates, ownership, dependencies, backups, and evidence handling. It still leaves gaps around the required task field, claims object structure, and brief fields, preventing a perfect score.

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 provides substantial meaning for nested fields such as requirements.reading_requirement, sources.read_scope, read_evidence, draft.main, based_on, depends_on, handoff, and replace. However, the required top-level task parameter is never explained, and the claims object semantics are only mentioned in passing.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence clearly states a specific verb and set of resources: save/update sources, claims, and requirements by stable ID, and writes CSV/JSONL. It is broad because it also handles drafts, briefs, handoffs, and contributions, and it does not explicitly differentiate itself from siblings such as research_review or research_finish.

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

Usage Guidelines3/5

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

Usage is implied throughout by detailed conditions such as 'For an active mandatory-reading requirement...' and 'For a contribution use kind=analysis...', but these are field-level rules rather than tool-selection guidance. There is no explicit statement of when to use research_save versus research_review, research_finish, or other siblings, and no when-not guidance.

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

research_startA

Create a research task or complete its missing brief. Returns its directory and stage guidance. language accepts "en" (English), "zh" or "zh-CN" (the same Chinese methods); checked before task records are written. Assemble concrete coverage and expected results from context; brief uses question, audience, scope, output, depth and evidence_standard. Returned clarification_questions guide the agent; do not forward them as a questionnaire. Explain consequential alternatives and resolve critical choices with the user. Use the complete shared research methods. Omit profile; it is retained only for older clients and saved tasks. Resume saved materials through research_status; historical receipts remain unchanged. New work uses independent host review, audit and acceptance. review_readiness defaults to host_native.

NameRequiredDescriptionDefault
taskYes
briefYes
profileNofull
languageNoen

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior4/5

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

With no annotations, the description carries the burden well: it notes language is checked before records are written, that clarification_questions should guide the agent rather than be forwarded, that profile is ignored, and that review_readiness defaults to host_native. Some phrasing ('complete shared research methods', 'historical receipts remain unchanged') is opaque rather than informative.

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

Conciseness3/5

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

The core purpose is front-loaded, but the body is a series of terse fragments with uneven flow; several sentences ('Use the complete shared research methods') are cryptic rather than economical. Moderate cleanup would improve it.

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?

An output schema exists, so return values needn't be described. Given a nested brief object and 4 params, the description covers the brief structure, language, profile deprecation and reviewer behavior reasonably; the only real gap is the undocumented 'task' param.

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 coverage is 0%, so the description must compensate. It does well for language (en/zh/zh-CN) and the nested brief fields (question, audience, scope, output, depth, evidence_standard) and deprecates profile, but the required 'task' parameter gets no explanation at all.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence gives a specific verb and resource ('Create a research task or complete its missing brief') and adds a return-value note ('Returns its directory and stage guidance'). It is distinguishable from research_status for resuming, though it doesn't sharply differentiate from research_save or research_guide.

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

Usage Guidelines3/5

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

It routes one clear case ('Resume saved materials through research_status') and deprecates profile, but most sibling relationships (research_review, research_save, research_finish) are left implicit. The agent must infer which tool handles mid-task steps.

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

research_statusB

Read progress and stage methods. Optional stage advances to collect/analyze/draft/revise only after prerequisite records exist. When work selects a branch, check its sources/claims and declared upstream inputs; unrelated pending branches do not block it. Whole-report review and final completion retain complete task checks. language accepts "en" (English), "zh" or "zh-CN" (the same Chinese methods); checked before any stage change. Explicit analyze/draft entry includes saved requirements as JSONL text when present, preserving statuses and evidence. changes reuses the latest successful record-save batch and locates related claims in the latest registered draft. Literal matches guide reading, not semantic verdicts; not_located requires inspection, not a new acceptance gate. current_work locates the main artifact, requirements and historical receipt separately. runtime identifies this implementation, not the Skill actually read by the host. Status does not discover arbitrary unregistered files. current_work includes effective_requirements (including satisfied), scope_decisions and research_outputs. Optional methods selects named methods from research_guide.available_methods instead of the stage defaults. Optional work prepares readable input for research, delegation or revision: question, unit_id, depends_on, requirement_ids, claim_ids, source_ids and paths (all optional). unit_id resumes saved work; depends_on selects upstream units for a new assignment. Their full artifacts and bound originals are included, not just handoff summaries. Selected claims include supporting and counter-evidence sources. Dependency results distinguish incomplete work, changed inputs/versions and pending independent review. Fulfilled requirements remain effective unless superseded. work_context includes originals, effective requirements, references and inputs hashes (files plus selected record bindings). reading_ref opens a readable view of that same work input, with full text in linked files instead of escaped JSON strings. Pass this entry and task_directory to the host worker; work_context and its input hashes remain unchanged. Preparing a unit records its selection in existing activity history for the next save; ordinary status remains read-only. current_work.production_contexts retains recorded production identities for independent assignments. Choose scope yourself; send the input through the host's existing agent tools, preserving its actual task handle for follow-up. No host agent is launched by this read. Omit stage to prepare independent work without changing global progress.

NameRequiredDescriptionDefault
taskYes
workNo
stageNo
methodsNo
languageNoen

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.1/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 so well: it states 'ordinary status remains read-only', 'No host agent is launched by this read', that stage changes are gated on prerequisite records, and that language is validated before any stage change. These are substantive behavioral facts an agent could not get elsewhere, though the delivery is buried in jargon.

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

Conciseness2/5

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

Roughly 300 dense words of run-on, jargon-heavy sentences that hop between topics (status reads, stage gating, work preparation, host delegation, file discovery) with no headings or front-loading. Key operational facts are buried mid-paragraph, and many clauses could be trimmed or reordered for scanability.

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?

An output schema exists so return-value explanation is not required, and the description covers the read-only nature and stage-change prerequisites. But for a 5-parameter tool with 0% schema coverage, the unexplained required 'task' parameter and the tangled work/delegation semantics leave the agent under-equipped to invoke it confidently.

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 coverage is 0%, so the description must compensate, and it does describe stage values (collect/analyze/draft/revise), language codes ('en', 'zh'/'zh-CN'), methods (selecting from research_guide.available_methods), and work's subfields (question, unit_id, depends_on, requirement_ids, claim_ids, source_ids, paths). The required 'task' parameter is never explained at all, leaving a notable gap for the one mandatory argument.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening 'Read progress and stage methods' states a specific verb+resource, but the description then extends into advancing stages, preparing work input, and opening reading views without ever reconciling these apparently different functions into a single purpose statement. An agent can grasp it's a status/read entry point but must reconstruct the overall job from scattered clauses.

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

Usage Guidelines3/5

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

There is real conditional guidance ('Omit stage to prepare independent work without changing global progress', 'stage advances ... only after prerequisite records exist'), which implies when to use it. However, no sibling is named or contrasted (research_guide, research_save, research_review all overlap conceptually), so the agent must infer routing itself.

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 updatev2.0.1
    • Changedresearch_review6 fields changed
      • addedInput schema / properties / audit
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "boolean"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Audit"
        +}
      • addedInput schema / properties / domains
        Added value: +{
        +  "anyOf": [
        +    {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Domains"
        +}
      • addedInput schema / properties / host_result
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Host Result"
        +}
      • changedInput schema / properties / include_assignment / default
        Previous value: -trueNew value: +false
      • addedInput schema / properties / perspectives
        Added value: +{
        +  "anyOf": [
        +    {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Perspectives"
        +}
      • addedInput schema / properties / scope
        Added value: +{
        +  "default": "full_report",
        +  "title": "Scope",
        +  "type": "string"
        +}
  2. 2 tool updatesv1.5.0
    • Changedresearch_guide1 field changed
      • addedInput schema / properties / methods
        Added value: +{
        +  "anyOf": [
        +    {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Methods"
        +}
    • Changedresearch_status2 fields changed
      • addedInput schema / properties / methods
        Added value: +{
        +  "anyOf": [
        +    {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Methods"
        +}
      • addedInput schema / properties / work
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Work"
        +}
  3. 4 tool updates
    • Addedresearch_check_updates
    • Changedresearch_guide1 field changed
      • removedInput schema / properties / profile / enum
        Removed value: -[
        -  "lite",
        -  "full"
        -]
    • Changedresearch_save1 field changed
      • addedInput schema / properties / brief
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": {
        +        "type": "string"
        +      },
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Brief"
        +}
    • Changedresearch_start1 field changed
      • removedInput schema / properties / profile / enum
        Removed value: -[
        -  "lite",
        -  "full"
        -]
  4. 8 tool updatesv1.1.0
    • First observedresearch_check_draft
    • First observedresearch_check_reviewer
    • First observedresearch_finish
    • First observedresearch_guide
    • First observedresearch_review
    • First observedresearch_save
    • First observedresearch_start
    • First observedresearch_status

TDQS

A3.6/5.0

Scored across 9 tools

Disambiguation3/5

Most tools map to distinct lifecycle stages such as start, status, save, review, and finish, but research_status also reads methods, prepares work, and opens reading views, overlapping research_guide and parts of research_save. The research_check_* tools are distinguishable, while the review-versus-finish boundary requires careful reading of very long descriptions.

Naming Consistency4/5

All tools share the same research_ prefix, making the set predictable. The suffixes mix verbs and nouns, e.g. research_check_updates and research_check_draft versus research_status and research_guide, but this is readable and not confusing enough to break consistency.

Tool Count5/5

Nine tools is well within the appropriate range for a multi-stage research workflow. Each tool corresponds to a recognizable lifecycle operation or mechanical check rather than an arbitrary extra.

Completeness4/5

The surface covers task creation, guidance/status, record saving, update checks, draft checks, reviewer configuration, independent review, and final delivery. Only minor lifecycle gaps exist, such as explicit task listing or deletion/archiving operations.

Maintenance

ActivityActive
ResponsivenessResponsive

Related MCP Connectors

Related MCP Servers