Skip to main content
Glama
Jack-mi
by Jack-mi

vibelawyer —— 通用化刑事案件阅卷 MCP

本地 FastMCP 阅卷工具箱。给定卷宗 PDF 目录,由 任意 Coding Agent(Cursor / Kimi Code / OpenCode / Codex / Claude Desktop 等)调用工具,产出:

  • 阅卷笔录(Word .docx)—— 七部分结构 + 案件基本信息 + 阅卷结论(结构化数据完整渲染,无截断)

  • 阅卷目录(Excel .xlsx)—— 分卷总览 / 阅卷目录 / 案件信息 / 证据索引

不依赖 Claude Code CLI。 LLM 推理由宿主 Agent 提供;PDF 解析、OCR、Word/Excel 生成均在本机完成,卷宗不经过本服务上传。

事实与证据须标注来源卷宗及页码(如 见《主卷》P55-76),并可机器校验,落实「禁止幻觉、结论可回溯」。

对任意刑事案件通用,不假定具体罪名或当事人。本仓库不收录真实卷宗;运行时将 PDF 放入本地 data/(已 gitignore),产物写入 output/(已 gitignore)。


两种用法(可穿插)

同一 case_id 下,完整流程零散按需共用全部工具,工作区状态共享。

模式

何时用

怎么做

完整阅卷

「把这案件按标准流程阅完」

create_casestart_review 拿 playbook → 按 Skill 八步顺序调工具 → 校验导出

按需调用

「只查某页 / 只补一条供述 / 只出 Word」

create_case 后直接调 read_pages / record_* / write_outputs

可先按 playbook 走完大半,再零散补登;也可先散读若干页,再按 playbook 补齐缺步。服务端强制锁步;顺序约束写在 Skill / playbook 里,由宿主 Agent 遵守。


Related MCP server: document-evidence-mcp

架构

┌──────── 宿主 Coding Agent(Cursor / Kimi / OpenCode / Codex …)────────┐
│  读 skills/vibelawyer-review/SKILL.md;完整流程或按需调 MCP 工具        │
└───────────────────────────────┬───────────────────────────────────────┘
                                │ stdio / http
                                ▼
┌──────── vibelawyer-mcp(FastMCP)─────────────────────────────────────┐
│  create_case / 读卷 / record_* / validate / write_outputs / download   │
│  CaseWorkspace(case_id 隔离)+ 本机 PDF/OCR                            │
└───────────────────────────────┬───────────────────────────────────────┘
                                ▼
               docling → pypdfium2 → tesseract chi_sim
               → 阅卷笔录.docx + 阅卷目录.xlsx

组件

作用

vibelawyer/tools.py + tool_spec.py

原子工具(本地 ToolSpec,无 claude-agent-sdk

vibelawyer/mcp_server.py

FastMCP 对外暴露;passthrough 复用 handler

vibelawyer/playbook.py

标准步骤与铁律;与 Skill / start_review 同源

skills/vibelawyer-review/SKILL.md

宿主可加载的阅卷 Skill

vibelawyer/sessions.py

多案件 case_id 隔离

start_review 只下发 playbook,不启动后台 LLM job。

可选遗留:pip install 'vibelawyer[legacy-agent]' + python -m vibelawyer.run --legacy(需本机 Claude Code CLI,非默认路径)。


安装

pip install vibelawyer
# 开发安装
pip install -e .
  • Python ≥ 3.11

  • 无需 Claude Code CLI

  • 可选(推荐):本地 docling venv(~/.local/share/docling-venv)提升扫描件 OCR

  • 可选:tesseract + chi_sim 作为 OCR 回退


接入宿主 Agent(推荐)

uvx vibelawyer
# 等价别名:
# uvx --from vibelawyer vibelawyer-mcp
# 已 pip install 时:vibelawyer 或 vibelawyer-mcp

Cursor / 通用 mcp.json

{
  "mcpServers": {
    "vibelawyer": {
      "command": "uvx",
      "args": ["vibelawyer"]
    }
  }
}

Claude Desktop(claude_desktop_config.json

{
  "mcpServers": {
    "vibelawyer": {
      "command": "uvx",
      "args": ["vibelawyer"]
    }
  }
}

Kimi Code / OpenCode / Codex

在各自 MCP 配置中填入同一 command / args。已安装包时可将 command 改为 vibelawyer(或别名 vibelawyer-mcp)、args 留空。本地 CLI 指引用 vibelawyer-cli

配置完成后,让 Agent 阅读并遵循:

skills/vibelawyer-review/SKILL.md

(或调用 start_review 获取与 Skill 同源的结构化 playbook。)


典型流程

A. 完整阅卷

  1. create_case(case_dir="/绝对路径/到卷宗目录")case_id
    (可选 defendant_hint / charge_hint / output_dir

  2. start_review(case_id) → 拿到 steps / 铁律 / 调用约定

  3. 按步:编目录 → 起诉书/当事人 → 被告供述 → 同案 → 证人 → 程序性文书 → 书证/流水 → 结论
    每步用 get_case_statusget_workspace_summary 核实登记计数(勿信口头「已完成」)

  4. validate_citationswrite_outputsdownload_output(fmt="docx"|"xlsx")

B. 按需单次调用

create_case(...)
list_volumes / search_volumes / read_pages / get_volume_outline   # 只读
record_* / add_*                                                   # 补登记
write_outputs / download_output                                    # 仅导出

CLI 辅助

python -m vibelawyer.run                # 打印 MCP 接入指引
python -m vibelawyer.run --print-playbook   # 打印完整 playbook(Markdown)

# 诊断 / 渲染冒烟(不调用 LLM)
python scripts/diag.py
python scripts/smoke_render.py

HTTP(可选)

VIBELAWYER_MCP_TRANSPORT=http VIBELAWYER_MCP_PORT=8000 vibelawyer
# 或别名:vibelawyer-mcp
# 可选鉴权:VIBELAWYER_MCP_TOKEN=<secret>

工具一览(约 25 个)

Passthrough 读/写/校验工具签名:tool_name(case_id, args={...})

生命周期与工作流

工具

作用

create_case

发现 PDF、建会话,返回 case_id

list_cases / get_case_status

会话列表与各部分登记计数

start_review

下发 playbook(宿主执行;无后台 job)

get_review_progress

说明无后台 job,并再次附上 playbook

download_output

取回 docx / xlsx

读卷

工具

作用

list_volumes

卷宗名 / 文件 / 页数

get_volume_outline

逐页概览(定位文书边界)

read_pages

页码区间文本(含本地 OCR)

search_volumes

跨卷关键词检索

get_page_image

渲染页面图像(视觉)

登记(强制带来源卷宗名 + 页码)

工具

笔录部分

set_case_basic

案件基本信息

record_party

一、当事人(仅本案被告人)

record_indictment / add_charged_fact

二、起诉书 / 指控事实

record_statement(role=defendant|codefendant|witness)

三~五、供述与证言(宜含 full_text

record_procedural_doc

六、程序性文书(含文号)

record_documentary_evidence / add_transaction

七、书证与资金流水

add_catalog_entry

阅卷目录条目

record_conclusions / record_funds_summary

结论与资金勾稽

校验与导出

工具

作用

get_workspace_summary

各部分登记进度

validate_citations

校验引用页码合法性

write_outputs

生成 Word 笔录 + Excel 目录


标准阅卷步骤(playbook)

playbook.py / Skill 一致:

  1. 编制阅卷目录add_catalog_entry,定位起诉书页

  2. 起诉书与当事人set_case_basic / record_party / record_indictment / add_charged_fact

  3. 被告人供述record_statement(role=defendant),含逐字 full_text

  4. 同案人供述 — 无则跳过;有则 role=codefendant

  5. 证人证言role=witness

  6. 程序性文书record_procedural_doc(尽量含文号)

  7. 书证与流水record_documentary_evidence + 流水类 add_transaction

  8. 阅卷结论record_conclusions / record_funds_summary(不做正式辩护策略)

  9. 校验导出validate_citationswrite_outputsdownload_output

铁律(摘要)

  1. 只能依据 read_pages 实际读到的内容登记,严禁编造

  2. 每条记录必须带来源卷宗名与页码

  3. 交付物 = 工具调用,不是口头报告

  4. get_volume_outline 再精读;用 search_volumes 防遗漏

  5. 每步结束用 get_workspace_summary / get_case_status 核实计数


阅卷笔录结构

  1. 当事人基本情况(职务犯罪含任职情况)

  2. 起诉书、起诉意见书内容

  3. 被告人的供述和辩解

  4. 同案人员的供述和辩解

  5. 证人证言

  6. 程序性文书

  7. 书证

附:阅卷目录、阅卷结论(核心事实 / 证据链条 / 矛盾点 / 待核查疑点)。


在新案件上使用

  1. 新建本地目录,放入卷宗 PDF(文件名即卷宗名;会清理 (2) 等后缀)

  2. 宿主 Agent:create_case(case_dir="<绝对路径>")

  3. 完整流程走 Skill,或按需调工具后 write_outputs

无需改代码即可用于受贿、贪污、诈骗、非法吸收公众存款等;职务犯罪会提取任职情况。


约束与边界

  • 仅本地工具面:解析 / OCR / 生成在本机;不把卷宗上传到 vibelawyer 服务(宿主模型调用由其厂商负责)

  • 可回溯:事实须带来源页码;validate_citations 防幻觉页码

  • 范围:只做阅卷目录与笔录梳理,不生成正式辩护策略或出庭意见

  • 仓库不含案卷data/output/tessdata/ 已 gitignore,勿提交真实卷宗或当事人信息


目录结构

vibelawyer/
  tool_spec.py       本地 @tool / ToolSpec
  tools.py           原子工具 handler
  playbook.py        宿主步骤与铁律(与 Skill 同源)
  mcp_server.py      FastMCP Server
  sessions.py        case_id 会话
  workspace.py       CaseWorkspace + 引用校验
  pdf_volume.py      docling / pypdfium2 / tesseract
  config.py          案件发现与配置
  orchestrator.py    可选 legacy(Claude Code)
  agents.py          分步提示别名
  run.py             CLI 指引 / --print-playbook / --legacy
  generators/        docx + xlsx
skills/vibelawyer-review/SKILL.md
scripts/diag.py
scripts/smoke_render.py

License

MIT

Available Tools

25 tools
add_catalog_entryB

登记阅卷目录(卷宗目录)一条:卷宗名称、页码、所含文件、笔录时间等。

参数结构(args 字段): {volume_name(必填): 卷宗名称; file_name(必填): 本卷所含文件名称; page_range(必填); doc_type(必填); record_time(必填); note(必填)}

ParametersJSON Schema
NameRequiredDescriptionDefault
argsNo
case_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the full burden. It conveys a create/insert side effect and lists required fields, but does not disclose persistence, validation, duplicate behavior, permissions, or failure behavior. For a mutation tool with zero annotation coverage, this is insufficient.

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?

Two compact sentences: purpose first, parameter map second. No fluff, front-loaded, and easy to scan.

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

Completeness2/5

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

Output schema exists so return-value documentation is not needed, but the description ignores the schema-required case_id, gives no relationship to existing volumes/cases, and provides no usage conditions or error expectations. With no annotations and an opaque args schema, this leaves too much to inference.

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%, and the description partially compensates by enumerating the six required args fields and translating volume_name/file_name into Chinese. However, page_range, doc_type, record_time, and note lack format or allowed-value semantics, and the schema-required case_id is omitted entirely.

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?

States a specific verb '登记' (register/add) and resource '阅卷目录(卷宗目录)一条', listing the key attributes needed. This clearly distinguishes it from sibling record_* tools by focusing on the volume catalog entry specifically.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives. It does not mention prerequisites such as an existing case_id or volume, nor does it contrast with related tools like list_volumes/get_volume_outline. Usage context is only implied by the verb.

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

add_charged_factA

登记起诉书指控的单笔事实(第三/四部分的整理依据)。

参数结构(args 字段): {index(必填): 第几笔事实(从1开始); description(必填): 该笔事实概述:时间/地点/人物/行为/金额; volume(必填): 来源卷宗; page_start(必填): 来源起始页; page_end(必填): 来源结束页; amount(必填); time_period(必填)}

ParametersJSON Schema
NameRequiredDescriptionDefault
argsNo
case_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior3/5

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

With no annotations, the description carries the behavioral burden. '登记' conveys that this is a write/add operation and the parameter list conveys input expectations. However, it does not disclose side effects, validation, idempotency, prerequisites such as an existing case, or update/replace semantics, so behavior remains partly implied.

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 purpose is front-loaded and the inline args documentation is compact. It is dense but not bloated; a clearer visual separation between the purpose and the parameter spec would polish it, but no words are wasted.

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 data-entry tool with a generic args schema, the description provides enough detail to construct a valid call: it names all required fields and their meanings. It omits explicit guidance on how args relates to case_id and any validation expectations, so it is not fully complete.

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 coverage for args is effectively 0%, so the description is the main source of parameter meaning. It compensates by enumerating index, description, volume, page_start, page_end, amount, and time_period with requiredness and brief semantics. A few fields like amount and time_period are left to inference, and the formal schema still treats args as an arbitrary object, so it is not a 5.

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 verb and resource: 登记起诉书指控的单笔事实 (record a single fact charged in the indictment). It also adds the organizational context 第三/四部分的整理依据, which helps distinguish it from sibling tools like record_indictment or add_transaction.

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 clear usage context: this tool is for entering individual charged facts as the basis for Parts 3/4, and it lists the expected source fields. It does not explicitly name alternative sibling tools or state when not to use it, so it stops short of a full 5.

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

add_transactionA

为已登记的书证逐笔登记资金流水(转账记录/回款/返利/工资提成等)。银行流水类书证必须逐笔登记,不得只写汇总——逐笔流水是金额勾稽与辩护核账的基础。

参数结构(args 字段): {evidence_name(必填): 所属书证名称(须与 record_documentary_evidence 登记的 name 完全一致); date(必填): 交易日期; payer(必填): 付款方; payee(必填): 收款方; amount(必填): 金额(保留原文表述,如 人民币45万元); account(必填); note(必填); page(必填)}

ParametersJSON Schema
NameRequiredDescriptionDefault
argsNo
case_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior3/5

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

没有 annotations,描述需承担行为披露责任。它揭示了严格一致性要求(evidence_name 完全一致)、金额需保留原文表述,以及逐笔而非汇总的登记方式。但未说明证据不存在时的错误行为、是否允许重复登记或追加、以及写入后的副作用,行为透明性仍有限。

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?

第一句直接点明用途,第二句强调核心业务规则,随后以紧凑的参数结构列出字段及必填要求。每句话都有实际价值,没有冗余内容,信息层级清晰,适合 agent 快速解析。

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?

在 0% 覆盖率且无 annotations 的情况下,描述覆盖了所有业务字段、必填性、与既有书证的关联,以及金额格式要求,整体足够支撑正确调用。不过 account、note、page 的语义仅靠字段名推测,缺少更明确解释,略微影响完整性。

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 对 args 内部字段覆盖率为 0%,描述以参数结构完整列出 evidence_name、date、payer、payee、amount、account、note、page 及必填性,并对 evidence_name 和 amount 提供额外语义约束(完全一致、保留原文表述)。这充分弥补了 schema 的空白。

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?

描述使用明确动词“逐笔登记资金流水”,限定资源为“已登记的书证”,并列举转账记录、回款、返利、工资提成等具体类型。这与 record_documentary_evidence、record_funds_summary 等兄弟工具形成清晰区分,用途明确且具体。

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?

描述明确说明银行流水类书证必须逐笔登记、不得只写汇总,划定了与汇总登记工具的使用边界;同时要求 evidence_name 与 record_documentary_evidence 登记的 name 完全一致,给出了前置条件。但未直接点名替代工具或明确“何时不要使用本工具”,因此未达满分。

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

create_caseA

创建案件会话:发现 case_dir 下卷宗 PDF,登记页数。返回 case_id 与卷宗清单. 随后可 start_review 获取宿主执行 playbook,或直接调用读卷/登记工具。

ParametersJSON Schema
NameRequiredDescriptionDefault
case_dirYes
output_dirNo
charge_hintNo
defendant_hintNo
vision_availableNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/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 burden. It discloses the discovery/registration behavior and return shape, but omits side effects (e.g., directory creation, persistence), prerequisites, idempotency, and what the optional hint/vision parameters do. It is more informative than a bare mutation note, but incomplete.

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 concise sentences with purpose front-loaded. The second sentence adds useful workflow context without unnecessary detail. Every part earns its place.

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

Completeness2/5

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

Given 5 parameters, no annotations, and no schema-level descriptions, the description leaves major gaps: optional parameter semantics and behavioral side effects are missing. It is sufficient for a default call with case_dir only, but not complete enough for reliable invocation in varied scenarios.

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%, so the description must compensate. It only clarifies case_dir ('发现 case_dir 下卷宗 PDF'); the other four parameters (output_dir, charge_hint, defendant_hint, vision_available) are entirely unexplained.

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 clearly states the specific action—'创建案件会话' (create case session)—and explains the core behavior: discover PDFs in case_dir, register page counts, and return a case_id with the volume list. This differentiates it from sibling tools like list_cases and start_review.

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 clearly positions create_case as the entry point for a new case session and explicitly names follow-up options ('随后可 start_review ... 或直接调用读卷/登记工具'). It does not explicitly state when not to use it (e.g., for existing cases), 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.

download_outputB

下载已生成的阅卷笔录(docx)或阅卷目录(xlsx);若文件未生成则按当前工作区即时渲染兜底. fmt: 'docx' | 'xlsx'.

ParametersJSON Schema
NameRequiredDescriptionDefault
fmtNodocx
case_idYes

TDQS

B3.1/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It usefully discloses the fallback rendering behavior when the file is not yet generated and lists the supported formats. However, it does not reveal side effects, permissions, or whether the fallback rendering may be expensive or trigger writes.

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?

Two terse, purposeful sentences. The main purpose and the fallback trait are front-loaded, followed immediately by the format specification. No wasted words.

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?

Given the tool's simplicity, the core purpose and formats are covered. Yet there is no explanation of the return payload, the meaning of case_id, or relationship to the generation workflow, so the definition is workable but not fully complete.

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%. The description documents the fmt parameter with its two allowed values, but says nothing about case_id, which is the only required parameter. This leaves a key argument semantically underdefined.

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?

Diplies a clear action — download generated outputs — and specifies the two formats (docx/xlsx) plus a fallback rendering behavior. It clearly distinguishes the resource from siblings like write_outputs, though it does not explicitly name an alternative.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus siblings such as write_outputs or get_workspace_summary. The use case is implied by the verb 'download' but alternatives and exclusion conditions are not stated.

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

get_case_statusB

查询案件会话当前状态(含工作区登记计数).

ParametersJSON Schema
NameRequiredDescriptionDefault
case_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/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 burden. The verb '查询' signals a read-only operation, and '含工作区登记计数' discloses part of what the status includes. It does not cover auth needs, failure behavior, or side effects, but for a simple status-query tool the core behavior is 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 a single front-loaded sentence with no filler. Every word contributes either the operation, the target resource, or the included count, and nothing needs restructuring.

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 one-parameter read tool with an output schema present, the description plus schema is nearly sufficient to invoke correctly. It only lacks explicit guidance on when to choose this over list_cases and any safety or permission caveats, which are minor for a query-style 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. The phrase '案件会话' gives semantic context that case_id identifies the case session whose status is read, but the description does not explicitly define the parameter format or its relation to the workspace count. With one self-descriptive required parameter, this is adequate but not rich.

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 clearly names a specific operation (query) and resource (current status of a case session), and adds a concrete included data point: workspace registration count. It does not explicitly differentiate from siblings like list_cases, but the status-of-a-session wording makes the tool's target clear.

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

Usage Guidelines2/5

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

The description gives no guidance about when to use this tool instead of list_cases or other case-related siblings, and mentions no exclusions or alternatives. An agent must infer the usage boundary from the tool name and the one-line description.

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

get_page_imageA

将指定页渲染为图片返回(用于扫描件无文本层时的视觉识别)。模型应直接‘看图’提取文字与结构信息,再通过对应 record_* 工具登记。

参数结构(args 字段): {volume(必填): 卷宗名称; page(必填): 页码(1-based)}

ParametersJSON Schema
NameRequiredDescriptionDefault
argsNo
case_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It discloses that the tool renders a page to an image and is intended for visual extraction, but it does not describe response format, size limits, or whether any persistent state changes. The read-only nature is implied rather than explicit.

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?

Three compact sentences: one for purpose, one for downstream workflow, and one for parameter structure. It is front-loaded and contains minimal fluff, though the parameter block could be more tightly integrated with the schema.

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 its intended visual-recognition purpose, the description covers the core information: what the tool does, when to use it, and how to follow up. It falls short by not mentioning case_id, not explicitly contrasting with read_pages, and leaving the exact output image format to the output schema rather than giving any guidance here.

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?

The description adds meaningful parameter semantics by defining volume and page with required flags and specifying page is 1-based, which the input schema does not document. However, it omits case_id, the only top-level required parameter in the schema, and the schema's args object is unconstrained, creating a mismatch that could cause incorrect invocation.

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 verb and resource: render a specified page as an image and return it for visual recognition when scanned documents lack a text layer. It clearly distinguishes its purpose from text-based reading tools by emphasizing the 'see the image' workflow and subsequent record_* registration.

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 an explicit use case: scanned documents without a text layer, and instructs the model to visually extract information then register it via record_* tools. It does not name an alternative like read_pages or state when not to use this tool, but the context is clear enough.

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

get_review_progressA

查询阅卷进度:无后台 job;请结合 get_case_status 的 section_counts 判断宿主执行进度.

ParametersJSON Schema
NameRequiredDescriptionDefault
case_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It usefully discloses a key behavioral trait: there is no background job. However, it does not describe whether the call is read-only, how progress is represented, or what the response contains beyond what the output schema already provides. The disclosure is helpful but thin.

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 compact, front-loaded with the primary purpose, and every clause carries useful information: what the tool queries, that there is no background job, and how to relate it to get_case_status. There is no filler or repetition.

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 simple one-parameter query tool with an output schema, the description is mostly sufficient. It identifies the purpose, the key behavior, and the relevant sibling. The main gap is that it does not clearly define what get_review_progress itself returns versus what get_case_status provides, but the output schema and explicit pointer to get_case_status mitigate this.

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?

The schema has one required parameter, case_id, but schema description coverage is 0% and the description adds no explanation of the parameter. The name is somewhat self-explanatory in context, but the description does not compensate for the low schema coverage by explaining how case_id is used or any constraints on it.

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 clear verb ('查询' / query) and resource ('阅卷进度' / review progress), and explicitly distinguishes itself from the sibling get_case_status by stating that there is no background job and that host execution progress should be judged via get_case_status's section_counts. This gives an agent a precise idea of what the tool does and what it does not do.

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 explicitly mentions an alternative, get_case_status, and explains that its section_counts field should be used to determine host execution progress. It also warns that there is no background job. It could be stronger by stating exact conditions for when to prefer get_review_progress over get_case_status, but the guidance is clear and actionable.

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

get_volume_outlineA

获取某卷的逐页概览(每页字数 + 首行内容),用于在大卷中快速定位文书边界,再决定 read_pages 精读哪些页。

参数结构(args 字段): {volume(必填): 卷宗名称; max_pages(必填)}

ParametersJSON Schema
NameRequiredDescriptionDefault
argsNo
case_idYes

Output Schema

ParametersJSON 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 present, so the description must disclose behavior itself. It does so by describing the read-only nature ('获取', '概览') and the exact return content (word count and first line per page). It does not discuss rate limits or error cases, but those are secondary for a simple read-only outline tool.

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 compact and front-loaded with the purpose; the parameter-structure note is necessary given the empty schema. It earns its place, though embedding the param block in prose makes it slightly dense.

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

Completeness2/5

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

Although an output schema exists and need not be described, the input contract is incomplete: the required case_id top-level parameter is never mentioned, and max_pages semantics are underspecified. An agent would need to reconcile the description with the schema and still guess at max_pages behavior.

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?

The schema provides no descriptions for case_id or args, so the description's definition of the args object ({volume, max_pages}) adds real value. However, it omits case_id, which is required by the schema, and does not explain the meaning of max_pages beyond its name.

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 and output: '获取某卷的逐页概览(每页字数 + 首行内容)'. It clearly distinguishes this from siblings by naming read_pages as the subsequent detailed-reading step, so an agent can tell which tool to pick.

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 explicit workflow context: use it in large volumes to locate document boundaries, then decide which pages to read with read_pages. It lacks explicit conditions for when not to use alternatives, but the intended use case is clear.

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

get_workspace_summaryC

查看当前阅卷工作区进度:各部分已登记记录数与案件基本信息。

参数结构(args 字段): {}

ParametersJSON Schema
NameRequiredDescriptionDefault
argsNo
case_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.7/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 behavioral burden. The verb '查看' (view) clearly indicates a read-only operation, and it specifies the returned content: counts of registered records and basic case information. It does not mention auth requirements or rate limits, but for a low-risk summary query this is reasonably transparent.

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?

The description is terse and front-loaded, but the second sentence contains misleading parameter information that does not earn its place. The content is not verbose, but the inaccurate structural note detracts from the usefulness.

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

Completeness2/5

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

Even though an output schema exists, the description omits the required case_id parameter and provides no usage guidance relative to get_review_progress. An agent could still invoke the tool correctly by inspecting the schema, but the description alone is incomplete and partially misleading.

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

Parameters1/5

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

The only parameter-related text, '参数结构(args 字段): {}', is misleading or inaccurate because the input schema requires a top-level case_id string and schema description coverage is 0%. The description fails to compensate for the schema gap and actually obscures the single required parameter.

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 clearly states the tool's verb and resource: it views progress for the current grading workspace, including registered record counts per section and basic case information. It is specific enough to be understood, but it does not differentiate itself from the sibling get_review_progress, whose name suggests overlapping functionality.

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

Usage Guidelines2/5

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

The description gives no guidance on when to use this tool versus alternatives such as get_review_progress or get_case_status. There is no mention of preferred conditions, exclusions, or which sibling to choose instead.

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

list_casesA

列出全部案件会话及状态.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are present, so the description carries the full burden. '列出全部案件会话及状态' conveys that this is a read-only listing action and that the scope is all sessions with their statuses, but it does not disclose pagination, auth requirements, rate limits, or performance implications of returning all cases.

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 a single sentence with no filler. The verb and resource are front-loaded, so an agent can grasp the tool's function at a glance.

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 simple zero-parameter list tool with an output schema available, the description is sufficiently complete: it states what is returned (all case sessions and their statuses) without needing to document parameters. The only notable gap is usage guidance, which is minor for a low-risk read-only 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 has zero parameters and schema description coverage is 100%, so there is no parameter meaning for the description to clarify. The phrase '全部' reinforces the no-filter/no-parameter behavior, meeting the baseline for a 0-parameter tool.

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 (列出/list) and a specific resource (全部案件会话及状态/all case sessions and status). It clearly distinguishes list_cases from siblings like list_volumes and get_case_status by naming case sessions and their statuses rather than volumes or individual case status.

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

Usage Guidelines2/5

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

No when-to-use or when-not-to-use information is provided. There is no mention of alternatives such as list_volumes, get_case_status, or search_volumes, and no condition under which the agent should prefer another sibling.

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

list_volumesC

列出本案全部卷宗:卷宗名称、文件名、总页数。阅卷第一步应先调用此工具掌握卷宗全貌。

参数结构(args 字段): {}

ParametersJSON Schema
NameRequiredDescriptionDefault
argsNo
case_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/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 burden. It clarifies that the tool is a read-only listing operation and the kind of data returned, but it does not mention potential size limits, ordering, empty-case behavior, or whether it simply summarizes all volumes. Basic transparency is present, but behavioral depth is limited.

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 description is concise and front-loaded. However, the third sentence about arg structure adds no value, obscures the real required parameter, and could mislead an agent. Overall length is appropriate but the structure is weakened by that misleading parameter note.

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

Completeness2/5

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

The description explains the purpose well but is incomplete for invocation: it omits the required case_id parameter entirely. While an output schema exists and the tool is conceptually simple, lacking mention of the one required input means the agent cannot reliably call it.

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

Parameters1/5

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

The schema requires a case_id, but the description does not mention it at all. The only parameter-related text says '参数结构(args 字段): {}', which is misleading because args is optional and can be any object or null, while case_id is the actual required input. With 0% schema description coverage, this is a critical gap.

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 states a specific action and resource: listing all volumes in the case, with the exact fields returned (volume name, file name, total pages). It does not explicitly differentiate from siblings like get_volume_outline, but the scope '全部卷宗' and the listed output fields make the purpose clear.

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 description explicitly says this should be called first when reviewing a case, which is clear usage guidance. However, it does not mention when not to use it or how to choose between it and related tools like search_volumes or get_volume_outline.

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

read_pagesA

读取指定卷宗的某一页码区间文本,每页标注页码。扫描件/乱码页会自动经本地中文OCR提取文字,故大多数页面可直接拿到可读文本。仅当某页仍提示 needs_ocr(OCR失败/空白页)时,才需改用 get_page_image 视觉识别(若环境支持视觉)或如实标注内容无法识别。所有引用须以 见《卷名》P起-止 的格式回溯到此处读取的页码。

参数结构(args 字段): {volume(必填): 卷宗名称(见 list_volumes 的名称,如:刑事侦查案卷); start_page(必填): 起始页码(1-based,含); end_page(必填): 结束页码(1-based,含)}

ParametersJSON Schema
NameRequiredDescriptionDefault
argsNo
case_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.6/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 behavioral burden. It discloses automatic OCR handling for scans/garbled pages, the needs_ocr sentinel, and the fallback options. It stops short of confirming read-only/no-side-effects behavior or error handling for invalid volumes/ranges, but the main behavioral surprises are covered.

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 carries operational value: main action, OCR behavior, explicit fallback condition, citation rule, and a clear parameter block. The structure is dense but well-organized and not padded.

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 read tool with no annotations, this covers purpose, OCR behavior, fallback routing, citation requirements, and parameter constraints; the presence of an output schema covers return-format details. The missing case_id mention and lack of invalid-input/error behavior keep it from being fully complete.

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 description adds rich meaning to volme, start_page, and end_page: requiredness, 1-based inclusive semantics, and where valid volume names come from. However, it omits the top-level required case_id that appears in the input schema, and the schema's args is free-form, so the exact mapping between description and invocation structure is not fully seamless.

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?

States a specific verb and resource: read a page-range from a named volume, with each page labeled by page number. It also differentiates from get_page_image by framing that tool as the OCR-failure fallback, and from list_volumes/search_volumes as the source and search prequels.

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?

Explicitly says when to use read_pages (whenever text from a volume page range is needed) and when not to: only switch to get_page_image when a page still shows needs_ocr. It also references list_volumes for valid volume names and gives a required citation format.

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

record_conclusionsB

登记阅卷结论:核心事实、证据链条、矛盾点、待核查疑点。供后续辩护意见参考。

参数结构(args 字段): {core_facts(必填); evidence_chain(必填); contradictions(必填); doubts(必填)}

ParametersJSON Schema
NameRequiredDescriptionDefault
argsNo
case_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3/5.0
Behavior2/5

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

注释中没有任何行为提示,描述本身只列出了要登记的内容字段,未说明该操作是新增、覆盖还是更新,也未说明是否依赖 case_id、是否校验数据或产生副作用。对于无注释的写入类工具,行为透明度明显不足。

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?

描述仅用两句话完成:第一句说明用途和内容,第二句说明参数结构,没有任何冗余信息,信息密度高且结构清晰。

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

Completeness2/5

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

工具位于包含多个 record_* 工具的大兄弟集合中,且无注释辅助;描述未说明 case_id 的必填性、调用时机、写入行为或与现有案件的关联方式。对于这类有多个相似工具的记录类操作,描述不够完整。

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 描述覆盖率为 0%,描述虽然补充了 args 字段结构及必填标记,但忽略了 schema 中必填的 case_id,并且描述声称 args 内字段“必填”而 schema 将 args 本身设为可选,造成理解上的不一致。参数语义部分补偿不足且存在误导风险。

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?

描述以明确的动词“登记”和对象“阅卷结论”开头,并列出核心事实、证据链条、矛盾点、待核查疑点四项具体内容,使工具用途清晰可辨。虽然没有明确与同组 record_* 工具作区分,但内容本身足以让代理识别其用途。

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?

“供后续辩护意见参考”暗示了该工具用于阅卷后整理结论,但并未说明何时应使用它而不是其他 record_* 工具,也没有给出替代工具或排除条件。使用场景属于隐含而非明确说明。

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

record_documentary_evidenceA

登记书证(第七部分,客观证据)。须列明时间、文件名称、卷宗页码、主要内容,并按待证事实分组(fact_group);含转账/流水内容的书证登记后再用 add_transaction 逐笔登记资金流水。

参数结构(args 字段): {name(必填): 文件名称; volume(必填): 卷宗; page_start(必填): 起始页; page_end(必填): 结束页; doc_no(必填); time(必填); source(必填); fact_group(必填); content_summary(必填)}

ParametersJSON Schema
NameRequiredDescriptionDefault
argsNo
case_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

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

There are no annotations, so the description must carry the behavioral burden. It does disclose required fields, fact_group grouping, and the add_transaction follow-up. However, it does not state whether this creates a new record or updates an existing one, what permissions are needed, or how fact_group is validated.

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 compact and front-loaded: purpose first, workflow condition second, parameter list last. The param list is dense but readable enough; a bullet structure would be slightly better for scanning.

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-value details need not be repeated. The description covers the main arguments and the most relevant sibling interaction. The missing case_id mention and the ambiguity around args being optional/nullable are the main gaps.

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's args is an open object with 0% schema coverage, and the description compensates well by listing every expected args field and marking them as required. It still omits the top-level case_id parameter and does not clarify that args is nullable with a default in the schema.

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 clearly states the action and object: “登记书证(第七部分,客观证据)”, so an agent knows this tool registers documentary evidence. It also differentiates its scope from add_transaction for financial-flow details, though it does not explicitly contrast with every sibling record_* tool.

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 an explicit usage rule: register documentary evidence first, then use add_transaction for each transfer/流水 item when present. That is a concrete routing condition to an alternative tool, though it does not discuss when to avoid this tool in favor of other record_* siblings.

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

record_funds_summaryA

登记资金勾稽摘要(辩护关键数字):报案合计/合同合计/指控金额/已返还/违法所得/已退赔。由结论员在综合全部书证与笔录后计算登记;各口径不一致时必须在 note 中说明差异。

参数结构(args 字段): {reported_amount(必填); contract_amount(必填); charged_amount(必填); returned_amount(必填); illegal_income(必填); restitution(必填); note(必填)}

ParametersJSON Schema
NameRequiredDescriptionDefault
argsNo
case_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior3/5

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

No annotations are present, so the description carries the full burden. It adds useful behavioral detail about who computes the numbers and the mandatory note for discrepancies, but it does not disclose whether repeated calls overwrite existing summaries, what side effects occur, or any permission requirements for this write operation.

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 concises paragraphs: purpose and context first, then the args structure. Every sentence contributes useful information, and there is no filler or redundant repetition of the schema.

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-value description is unnecessary. The description provides the missing inner args structure and the procedural context around evidence synthesis. The main gap is a slight mismatch with the formal schema, which allows args to be null while the description implies all inner fields are mandatory, plus no idempotency guidance.

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 0% description coverage and defines args only as an open object, so the description compensates strongly by listing the exact keys and marking each as required. It also maps the keys to their business meanings (报案合计, 合同合计, etc.). It stops short of a 5 by not giving explicit types or edge-case handling for these amounts.

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 states a specific action — recording the funds reconciliation summary — and lists the six key monetary figures it captures, so the resource is unambiguous. It distinguishes itself from sibling record_* tools by focusing uniquely on this summary, though it does not explicitly name an alternative.

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 a clear precondition: the conclusionist must call it after synthesizing all documentary evidence and transcripts, and must explain any inconsistency across figures in the note. This is solid context but it does not explicitly address when not to use this tool or name alternatives.

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

record_indictmentA

登记起诉书/起诉意见书内容(第二部分)。full_text_summary 应原样复制涉及被告人的指控事实。

参数结构(args 字段): {doc_type(必填): 文书类型:起诉书 / 起诉意见书; volume(必填): 来源卷宗; page_start(必填): 来源起始页; page_end(必填): 来源结束页; defendant(必填); charge(必填); total_amount(必填); issuer(必填); issue_date(必填); legal_basis(必填); sentencing_circumstances(必填); full_text_summary(必填)}

ParametersJSON Schema
NameRequiredDescriptionDefault
argsNo
case_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior3/5

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

There are no annotations, so the description carries the full burden. It discloses the important behavioral rule that full_text_summary must copy the alleged facts verbatim and hints at a multi-part workflow. However, it does not explain whether the tool creates, appends, or overwrites records, or whether an existing case context is required, leaving some behavioral ambiguity.

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 purpose and the key full_text_summary instruction, followed by an organized parameter list. The parameter list is long but necessary given the empty schema; there is no filler or redundancy that could be removed without losing value.

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

Completeness2/5

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

While the args fields are thoroughly documented, the description omits any mention of the top-level required case_id property shown in the schema. It also does not clarify what '第二部分' refers to or which sibling tool performs the first part. An agent following the description alone might not construct a valid invocation, making the description incomplete for reliable use.

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?

The input schema provides essentially no parameter descriptions (0% coverage; only a generic args object and a required case_id). The description's parameter structure block fully documents every args field with requiredness and semantic meaning (doc_type, volume, page ranges, defendant, charge, etc.), completely compensating for the schema's lack of detail.

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 '登记' with a specific resource '起诉书/起诉意见书内容(第二部分)', and further clarifies a special requirement for full_text_summary. This clearly distinguishes it from sibling tools like record_party, record_statement, and add_charged_fact, which target different entity types.

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 identifies the scenario: registering indictment/prosecution opinion content, specifically the second part. It does not explicitly name alternative tools or exclusions, but the resource specificity and the '第二部分' marker provide sufficient context for when this tool should be used.

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

record_partyA

登记当事人基本情况(第一部分)。职务犯罪须填 position 与 appointment_history。

参数结构(args 字段): {name(必填): 姓名; volume(必填): 来源卷宗; page_start(必填): 来源起始页; page_end(必填): 来源结束页; gender(必填); ethnicity(必填); birth(必填); native_place(必填); id_no(必填); education(必填); occupation(必填); position(必填); appointment_history(必填); address(必填)}

ParametersJSON Schema
NameRequiredDescriptionDefault
argsNo
case_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior2/5

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

No annotations are present, so the description must carry the full burden of explaining behavior. '登记' signals a write operation, and the field list names what data is captured, but the description does not disclose whether this creates or updates a party record, what validation happens, whether duplicates are rejected, or what side effects occur. This is under-disclosed for a mutation tool.

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 purpose is front-loaded, and the long parameter block earns its place because the schema provides no parameter descriptions. The inline brace-list is slightly dense and repeats 必填 many times, but there is no fluff or irrelevant content.

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 description gives the data shape and one key business rule, and an output schema reportedly exists, so return-value details are not required here. But it leaves gaps: what '第一部分' means, whether all fields are truly required for non-duty-crime cases, and how this tool fits into the larger workflow with so many sibling record_* tools.

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?

The formal input schema leaves 'args' as an untyped object with additionalProperties allowed and zero description coverage. The description fully compensates by enumerating all 14 expected fields with Chinese labels, marking each as 必填, and adding the duty-crime special requirement. This is exactly the parameter guidance the agent needs.

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 phrase '登记当事人基本情况' names a concrete action (登记/record) and a concrete resource (当事人基本情况/party basic information). This makes the tool's purpose immediately clear and naturally distinguishes it from sibling tools like record_indictment, record_statement, or set_case_basic.

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 description gives a conditional usage rule for duty-crime cases ('职务犯罪须填 position 与 appointment_history'), which helps the agent know when those extra fields are needed. However, it does not explicitly say when to choose this tool over the many sibling record_* tools, leaving tool-selection guidance mostly implicit.

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

record_procedural_docA

登记程序性文书(第六部分)。包含从被调查至当前的全部程序性文书,需含文号、时间、地点。

参数结构(args 字段): {doc_type(必填): 文书类型:立案决定书/拘留/逮捕/取保候审/监视居住/搜查/扣押/鉴定意见/移送起诉等; volume(必填): 卷宗; page_start(必填): 起始页; page_end(必填): 结束页; doc_no(必填); time(必填); location(必填); fact_group(必填); content_summary(必填)}

ParametersJSON Schema
NameRequiredDescriptionDefault
argsNo
case_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior2/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. It explains what data to include but not how the tool behaves on invocation, such as whether it appends, overwites, validates, or has side effects. As a write operation, this is a significant gap.

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 organized into purpose and parameter structure, with no wasteful filler. The long enumerations are justified because the schema does not document the nested args. It could be tighter, but it is dense and scannable.

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 tool with an opaque args schema, the description gives enough information to construct a correct call: case_id comes from the schema, args structure comes from the description, and an output schema is present. It lacks some workflow/order context, but the essential invocation details are covered.

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?

The input schema leaves args as an opaque free-form object with no property documentation. The description fully compensates by enumerating every expected field, marking required ones, listing doc_type options, and explaining the semantic content of the args object.

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 clearly states the verb '登记' and the resource '程序性文书', with a defined scope ('从被调查至当前'). It is specific enough to distinguish it from evidentiary or indictment tools, though it does not explicitly name any sibling for contrast.

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 scope statement implies this tool is for registering procedural documents across the case timeline, but it gives no explicit when-to-use versus when-not-to-use instructions. With many record_* siblings available, explicit alternative routing would be valuable.

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

record_statementA

登记供述/辩解或证言。role=defendant(被告人)/codefendant(同案人)/witness(证人)。须提取笔录时间、办案人员、办案地点、是否同步录音录像、笔录内容;full_text 必须逐字转录全部问答(辩护引用原话是刚需,仅登记摘要视为未完成)。

参数结构(args 字段): {person(必填): 供述/证言人姓名; role(必填): defendant / codefendant / witness 之一; volume(必填): 卷宗; page_start(必填): 起始页; page_end(必填): 结束页; record_time(必填); investigators(必填); location(必填); has_av_recording(必填); occasion(必填); charged_fact_ref(必填); content_summary(必填); full_text(必填)}

ParametersJSON Schema
NameRequiredDescriptionDefault
argsNo
case_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/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 burden of behavioral disclosure. It clearly states mandatory extraction fields (record time, investigators, location, AV-recording flag, content) and the hard requirement that full_text be a verbatim transcript, marking summary-only registration as incomplete. This is substantial behavioral context, though it stops short of describing response behavior or side effects.

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 dense and well-structured: a one-sentence purpose, a requirements sentence, and a compact parameter block. Every sentence carries necessary information with no filler. Slightly long, but justified by the number of required fields and the verbatim rule.

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

Completeness4/5

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

Given the tool's complexity (13 required parameters, no annotations, no visible output schema details), the description provides the core operational requirements, parameter list, and a critical completion criterion. It does not mention invocation mechanics (case_id/args nesting) or error conditions, but those are partly covered by the input schema, so the description is largely complete for an agent to invoke correctly.

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%, but the description compensates by listing all 13 args fields with required flags, including the role enum values and explanations for person and role. It lacks explicit types or formats (e.g., date format for record_time, boolean for has_av_recording, meaning of occasion), but is far richer than the near-empty input schema.

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 '登记供述/辩解或证言' (record statements/defenses or testimony), naming a specific verb and resource. It further distinguishes itself from siblings by enumerating roles (defendant/codefendant/witness) and requiring verbatim Q&A transcription, which clearly separates it from record_party, record_indictment, and record_documentary_evidence.

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 description implies when to use the tool (whenever a statement, defense, or testimony must be registered) and emphasizes that full_text must contain verbatim Q&A, with summary-only entries considered incomplete. However, it does not explicitly mention alternatives or exclusions, leaving the agent to infer the boundary versus sibling recording tools.

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

search_volumesB

在卷宗中检索关键词,返回命中卷宗/页码与上下文片段。用于快速定位某事实、某人的所有出现位置。

参数结构(args 字段): {query(必填): 检索关键词(如人名、金额、罪名、日期); volume(必填)}

ParametersJSON Schema
NameRequiredDescriptionDefault
argsNo
case_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior3/5

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

With no annotations, the description carries the burden of explaining behavior. It does disclose that results include hit volume/page numbers and context snippets, which is helpful. Yet it does not mention matching semantics, case sensitivity, pagination, limits, or whether the search is scoped to a specific case, leaving important behavioral details unspecified.

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 short and front-loaded with the core function before the parameter structure. It wastes few words, though the parameter section is incomplete and inaccurate, which slightly reduces its effectiveness.

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

Completeness2/5

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

The description is not complete enough for reliable invocation. It fails to mention the required case_id parameter, contradicts the actual schema regarding required fields, and does not clarify how the args object should be composed. These are significant gaps for an agent trying to call the tool correctly.

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%, so the description must compensate. It does document the intended args shape with query and volume, including examples. However, it omits the top-level required case_id field and claims volume is required even though the schema marks args as optional/nullable, creating a direct contradiction with the input schema that can mislead an agent.

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 clearly states the tool searches within case files and returns matching volumes, page numbers, and context snippets, with a concrete use case of locating all occurrences of a fact or person. It is distinguishable from siblings like list_volumes and read_pages, though it does not explicitly name them as alternatives.

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 description gives a clear intended use ('用于快速定位某事实、某人的所有出现位置') and indicates it is for keyword-based searching. However, it does not state when not to use it or explicitly contrast it with related tools such as read_pages or list_volumes, so usage routing is left partly to inference.

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

set_case_basicC

登记案件基本信息表:主体、涉嫌罪名、涉案金额、卷宗数量。

参数结构(args 字段): {case_name(必填); defendant(必填); charge(必填); total_amount(必填); volume_count(必填)}

ParametersJSON Schema
NameRequiredDescriptionDefault
argsNo
case_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

There are no annotations, so the description must fully convey behavioral expectations. '登记' implies a write operation, but the description does not disclose whether this creates or updates a record, whether existing values are overwritten, whether the operation is idempotent, or what side effects occur.

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?

Two short sentences: first gives purpose, second gives parameter structure. No fluff, and the parameter block is justified because the schema provides no field-level documentation.

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

Completeness2/5

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

Though an output schema exists, the description lacks needed invocation context: it doesn't connect to create_case, doesn't explain whether args itself is optional, and doesn't say how this relates to the record_* sibling tools. An agent would be under-supported when deciding the correct sequence of calls.

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?

The input schema exposes only case_id and an opaque args object, with 0% coverage of the args fields. The description usefully enumerates the five required args fields, which is essential for invocation. However, it provides no types or formats for total_amount or volume_count and omits role of case_id entirely.

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 clearly says the tool registers the case basic information table and lists the key fields (case_name, defendant, charge, total_amount, volume_count). The '基本信息' wording helps distinguish it from more specialized record_* siblings, though it doesn't explicitly name any alternative.

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

Usage Guidelines2/5

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

No guidance is given about when to use this tool versus siblings like create_case, record_party, or record_indictment. It does not state prerequisites such as whether a case must already exist or whether this tool should be called before the more specific record tools.

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

start_reviewA

下发标准阅卷 playbook,由宿主 Agent 按 steps 顺序调用 MCP 工具完成阅卷.

不再启动后台 Claude/LLM job(不依赖 Claude Code CLI)。 model / effort / max_turns 由宿主自行决定,本参数仅保留兼容、写入提示。 进度请用 get_case_status / get_workspace_summary 查看登记计数。

ParametersJSON Schema
NameRequiredDescriptionDefault
modelNo
effortNohigh
case_idYes
max_turnsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/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. It usefully discloses that no background Claude/LLM job is started and that there is no Claude Code CLI dependency. However, it does not describe side effects such as repeated calls, registration counters, or what happens internally after invocation, leaving some behavioral uncertainty for an orchestration tool.

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 very concise and well-structured, with the primary action stated first, followed by key behavioral notes and monitoring pointers. Every sentence earns its place, and there is no filler or redundant restatement of the tool 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?

For an orchestration tool, the description covers what to do, what not to do, parameter roles, and where to check progress. It relies on the output schema for playbook steps and does not mention prerequisites or repeated-call behavior, which is a minor gap for an agent that needs to invoke it correctly.

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%, but the description adds meaning for model, effort, and max_turns by stating they are compatibility hints and host-decided. It does not add semantic guidance for the required case_id parameter, such as requiring an existing case. This partially compensates for low schema coverage but not completely.

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 states a specific action: 下发标准阅卷 playbook and instructs the host agent to follow the steps. It also clearly distinguishes itself from the legacy background-job behavior by stating 不再启动后台 Claude/LLM job, which clarifies the tool's orchestration role. However, it does not explicitly differentiate from sibling tools like get_review_progress, though the orchestration purpose is fairly apparent.

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 explicitly directs progress monitoring to get_case_status / get_workspace_summary, so the agent knows start_review is not for checking progress. It also clarifies that model/effort/max_turns are host-decided and only retained as compatibility hints, preventing misuse. An explicit 'when not to use' beyond progress monitoring is absent, but the context is otherwise clear.

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

validate_citationsB

校验所有已登记记录的来源引用是否落在真实卷宗页码区间内,返回不合规项。阅卷结束前必跑。

参数结构(args 字段): {}

ParametersJSON Schema
NameRequiredDescriptionDefault
argsNo
case_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

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

No annotations exist, so the description carries the behavioral burden. It implies a read-only validation and explicitly says it returns non-compliant items. However, it does not clarify whether it writes results, whether any state changes occur, or what happens when everything is compliant.

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 first sentence is concise and front-loaded, but the second sentence about args adds no real information and is partially inconsistent with the schema. It is short, but not every sentence earns its place.

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 description gives the purpose, the return type, and the required timing, which makes it minimally viable. It lacks explanation of case_id, preconditions such as records needing to be registered, and output details, especially since no output schema is provided.

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

Parameters1/5

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

Schema description coverage is 0% and the description does not explain the required case_id parameter. The '参数结构(args 字段): {}' line is not semantically meaningful and is misleading because the schema actually requires case_id and allows args to be an object with additional properties.

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 a concrete resource/check scope: all registered records' source citations against real volume page ranges. It also states the result ('返回不合规项'), which distinguishes it from recording and writing siblings.

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 a clear workflow trigger: '阅卷结束前必跑' (must run before ending the review). It does not name alternatives or exclusions, but the mandatory-before-end context is clear enough for a validation gate.

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

write_outputsC

生成阅卷笔录(Word)与阅卷目录(Excel)(含案件信息表与结论),返回文件路径。

参数结构(args 字段): {fmt(必填)}

ParametersJSON Schema
NameRequiredDescriptionDefault
argsNo
case_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations provided, the description carries full responsibility for behavioral disclosure. It does state that the tool generates files and returns paths, but it does not disclose overwrite behavior, storage side effects, permission requirements, or whether the operation is long-running or dependent on prior review steps. This is a significant gap for a write-type tool.

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 compact, front-loads the main behavior and output artifacts, and includes parameter structure in a concise way. It avoids filler, though the parameter note could be more accurate and better separated.

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

Completeness2/5

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

For a tool with no annotations and a schema with essentially unconstrained args, the description leaves out critical context: case_id semantics, allowed fmt values, preconditions, postconditions, and the relationship to download_output. The output schema exists but is not shown, so the description alone is insufficient for reliable invocation.

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?

The description adds a fmt field inside args, but declares it required while the schema marks args as optional/default null. It also fails to explain case_id, even though case_id is the only schema-required parameter. With 0% schema description coverage, the description was expected to compensate, but it is partially misleading and incomplete.

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 clearly states a specific action and resource: it generates 阅卷笔录 (Word) and 阅卷目录 (Excel), including case information and conclusions, and returns file paths. This is action-oriented and informative. However, it does not explicitly distinguish itself from sibling tools like download_output, so it stops short of full differentiation.

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

Usage Guidelines2/5

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

The description provides no guidance about when to use this tool versus alternatives, nor does it mention prerequisites such as whether a case review must be completed first. An agent gets no contextual cues about the proper calling sequence or exclusions.

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. 25 tool updatesv0.1.3
    • First observedadd_catalog_entry
    • First observedadd_charged_fact
    • First observedadd_transaction
    • First observedcreate_case
    • First observeddownload_output
    • First observedget_case_status
    • First observedget_page_image
    • First observedget_review_progress
    • First observedget_volume_outline
    • First observedget_workspace_summary
    • First observedlist_cases
    • First observedlist_volumes
    • First observedread_pages
    • First observedrecord_conclusions
    • First observedrecord_documentary_evidence
    • First observedrecord_funds_summary
    • First observedrecord_indictment
    • First observedrecord_party
    • First observedrecord_procedural_doc
    • First observedrecord_statement
    • First observedsearch_volumes
    • First observedset_case_basic
    • First observedstart_review
    • First observedvalidate_citations
    • First observedwrite_outputs

TDQS

B3.3/5.0

Scored across 25 tools

Disambiguation3/5

Most tools are clearly separated by document type, but get_case_status, get_workspace_summary, and get_review_progress all report overlapping progress/count information, creating real ambiguity. get_page_image and read_pages are well-distinguished, so the confusion is limited mainly to the status/progress cluster.

Naming Consistency4/5

Naming is predominantly verb_noun snake_case, e.g. list_volumes, record_party, validate_citations. Minor inconsistencies exist: set_case_basic vs. the record_* family, add_* vs. record_*, and a somewhat mixed use of list_/get_ for retrieval.

Tool Count3/5

25 tools is at the heavy end and includes at least three near-redundant status/progress tools. The many record_* tools are defensible because they map to distinct evidence and document categories, but the set would feel tighter with the status cluster consolidated.

Completeness4/5

The toolset covers the full review workflow: locating and reading volumes, registering parties/evidence/statements/transactions, validating citations, and exporting outputs. The main gaps are the absence of update/delete tools for correcting mis-registered records and no way to retrieve individual registered records, but these are workable gaps rather than blocking ones.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    A local document evidence layer for MCP clients that ingests documents (PDF, Office, images) with optional OCR, indexes them in SQLite FTS, and provides retrieval tools with source coordinates.
    7
    MIT
  • A
    license
    C
    quality
    B
    maintenance
    Exposes 55 forensic tools over the Model Context Protocol so agents can query Chilean statutes, jurisprudence, administrative dicta and doctrine from official state sources such as BCN, PJUD, CGR and DT, while running locally for confidential casework. It also supports citation-validated drafting, deadline and docket monitoring, judgment deconstruction, OCR dossier compilation and legal knowledge-graph analysis for civil-law practice, teaching and research.
    69
    243 PyPI
    4
    Apache 2.0