VibeLawyer
PYPI · VIBELAWYER · SCANNED SEP 20
Local MCP for Chinese criminal dossier review; Word notes + Excel catalogs stay on-device.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →
Supply Chain Security99
- No malware found by supply-chain analysis.Pass
- No known CVEs affecting this package version or its production dependencies.Pass
- Runs hatchling.build at install time, a recognised native-build step with no shell scripting around it. View diagnostics → Pass
- 2 of 22 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency32
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- License check failed: no license is declared. See how to fix → Fail
- Actively maintained (last published 49 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability77
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 2796 tokens (~111/item across 25 items; 25 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management87
- Stability observed for 26 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage71
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 0% of tool parameters carry a description.Fail
- Structured output schemas are declared (96% of tools); any adoption earns full credit.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 25 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 26 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
How do I install the VibeLawyer MCP server?
VibeLawyer runs locally as a PyPI package, launched with uvx vibelawyer. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
pypi · vibelawyer
claude mcp add jack-mi-vibelawyer -- uvx vibelawyer
{
"mcpServers": {
"jack-mi-vibelawyer": {
"command": "uvx",
"args": [
"vibelawyer"
]
}
}
} {
"servers": {
"jack-mi-vibelawyer": {
"command": "uvx",
"args": [
"vibelawyer"
]
}
}
} codex mcp add jack-mi-vibelawyer -- uvx vibelawyer
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"jack-mi-vibelawyer": {
"type": "local",
"command": [
"uvx",
"vibelawyer"
],
"enabled": true
}
}
} openclaw mcp add jack-mi-vibelawyer --command uvx --arg vibelawyer
mcp_servers:
jack-mi-vibelawyer:
command: "uvx"
args: ["vibelawyer"] {
"McpServers": {
"jack-mi-vibelawyer": {
"Transport": "stdio",
"Command": "uvx",
"Arguments": [
"vibelawyer"
]
}
}
} assistant mcp add jack-mi-vibelawyer -t stdio -c uvx -a vibelawyer
{
"mcpServers": {
"jack-mi-vibelawyer": {
"command": "uvx",
"args": [
"vibelawyer"
]
}
}
} Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 20 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.
- 18 Sept 26 +12
- Malware scan: unverified → pass ▲ security
- Stability: pass → 0.80 functional
- 17 Sept 26 +1
- Stability: 0.97 → pass security
- 15 Sept 26 −14
- Malware scan: pass → unverified ▼ security
- 14 Sept 26 +15
- Malware scan: unverified → pass ▲ security
- 13 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.
- 11 Sept 26 −3
- Stability: pass → 0.80 functional
- 10 Sept 26 +1
- Stability: 0.97 → pass security
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 20 Sept 2026 · Analysed pypi/vibelawyer@0.1.3
Provenance No attestation
The registry publishes no build provenance for this version, so there is nothing to verify.
| Result | No attestation |
|---|---|
| Ecosystem | pypi |
Background: How many MCP packages publish verified provenance →
Install scripts 1 script
| Hook | Tier | Command |
|---|---|---|
| build_backend | allowlisted | hatchling.build |
Background: Why install scripts are a supply-chain risk →
Dependencies 22 packages
| Packages resolved | 22 |
|---|---|
| Stale | 2 |
| Tree resolution | Complete |
Background: SBOMs and build attestations, explained →
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
add_catalog_entry ~107
登记阅卷目录(卷宗目录)一条:卷宗名称、页码、所含文件、笔录时间等。 参数结构(args 字段): {volume_name(必填): 卷宗名称; file_name(必填): 本卷所含文件名称; page_range(必填); doc_type(必填); record_time(必填); note(必填)}
| Name | Type | Req | Description |
|---|---|---|---|
| args | – | – | – |
| case_id | string | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
add_charged_fact ~131
登记起诉书指控的单笔事实(第三/四部分的整理依据)。 参数结构(args 字段): {index(必填): 第几笔事实(从1开始); description(必填): 该笔事实概述:时间/地点/人物/行为/金额; volume(必填): 来源卷宗; page_start(必填): 来源起始页; page_end(必填): 来源结束页; amount(必填); time_period(必填)}
| Name | Type | Req | Description |
|---|---|---|---|
| args | – | – | – |
| case_id | string | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
add_transaction ~185
为已登记的书证逐笔登记资金流水(转账记录/回款/返利/工资提成等)。银行流水类书证必须逐笔登记,不得只写汇总——逐笔流水是金额勾稽与辩护核账的基础。 参数结构(args 字段): {evidence_name(必填): 所属书证名称(须与 record_documentary_evidence 登记的 name 完全一致); date(必填): 交易日期; payer(必填): 付款方; payee(必填): 收款方; amount(必填): 金额(保留原文表述,如 人民币45万元); account(必填); note(必填); page(必填)}
| Name | Type | Req | Description |
|---|---|---|---|
| args | – | – | – |
| case_id | string | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
create_case ~94
创建案件会话:发现 case_dir 下卷宗 PDF,登记页数。返回 case_id 与卷宗清单. 随后可 start_review 获取宿主执行 playbook,或直接调用读卷/登记工具。
| Name | Type | Req | Description |
|---|---|---|---|
| case_dir | string | yes | – |
| charge_hint | string | – | – |
| defendant_hint | string | – | – |
| output_dir | string | – | – |
| vision_available | boolean | – | – |
Structured output declared, but exposes no named fields.
No examples provided.
download_output ~69
下载已生成的阅卷笔录(docx)或阅卷目录(xlsx);若文件未生成则按当前工作区即时渲染兜底. fmt: 'docx' | 'xlsx'.
| Name | Type | Req | Description |
|---|---|---|---|
| case_id | string | yes | – |
| fmt | string | – | – |
No output schema declared.
No examples provided.
get_case_status ~32
查询案件会话当前状态(含工作区登记计数).
| Name | Type | Req | Description |
|---|---|---|---|
| case_id | string | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
get_page_image ~97
将指定页渲染为图片返回(用于扫描件无文本层时的视觉识别)。模型应直接‘看图’提取文字与结构信息,再通过对应 record_* 工具登记。 参数结构(args 字段): {volume(必填): 卷宗名称; page(必填): 页码(1-based)}
| Name | Type | Req | Description |
|---|---|---|---|
| args | – | – | – |
| case_id | string | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
get_review_progress ~42
查询阅卷进度:无后台 job;请结合 get_case_status 的 section_counts 判断宿主执行进度.
| Name | Type | Req | Description |
|---|---|---|---|
| case_id | string | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
get_volume_outline ~85
获取某卷的逐页概览(每页字数 + 首行内容),用于在大卷中快速定位文书边界,再决定 read_pages 精读哪些页。 参数结构(args 字段): {volume(必填): 卷宗名称; max_pages(必填)}
| Name | Type | Req | Description |
|---|---|---|---|
| args | – | – | – |
| case_id | string | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
get_workspace_summary ~51
查看当前阅卷工作区进度:各部分已登记记录数与案件基本信息。 参数结构(args 字段): {}
| Name | Type | Req | Description |
|---|---|---|---|
| args | – | – | – |
| case_id | string | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
list_cases ~18
列出全部案件会话及状态.
Input schema present but exposes no named parameters.
Structured output declared, but exposes no named fields.
No examples provided.
list_volumes ~67
列出本案全部卷宗:卷宗名称、文件名、总页数。阅卷第一步应先调用此工具掌握卷宗全貌。 参数结构(args 字段): {}
| Name | Type | Req | Description |
|---|---|---|---|
| args | – | – | – |
| case_id | string | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
read_pages ~212
读取指定卷宗的某一页码区间文本,每页标注页码。扫描件/乱码页会自动经本地中文OCR提取文字,故大多数页面可直接拿到可读文本。仅当某页仍提示 needs_ocr(OCR失败/空白页)时,才需改用 get_page_image 视觉识别(若环境支持视觉)或如实标注内容无法识别。所有引用须以 见《卷名》P起-止 的格式回溯到此处读取的页码。 参数结构(args 字段): {volume(必填): 卷宗名称(见 list_volumes 的名称,如:刑事侦查案卷); start_page(必填): 起始页码(1-based,含); end_page(必填): 结束页码(1-based,含)}
| Name | Type | Req | Description |
|---|---|---|---|
| args | – | – | – |
| case_id | string | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
record_conclusions ~89
登记阅卷结论:核心事实、证据链条、矛盾点、待核查疑点。供后续辩护意见参考。 参数结构(args 字段): {core_facts(必填); evidence_chain(必填); contradictions(必填); doubts(必填)}
| Name | Type | Req | Description |
|---|---|---|---|
| args | – | – | – |
| case_id | string | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
record_documentary_evidence ~160
登记书证(第七部分,客观证据)。须列明时间、文件名称、卷宗页码、主要内容,并按待证事实分组(fact_group);含转账/流水内容的书证登记后再用 add_transaction 逐笔登记资金流水。 参数结构(args 字段): {name(必填): 文件名称; volume(必填): 卷宗; page_start(必填): 起始页; page_end(必填): 结束页; doc_no(必填); time(必填); source(必填); fact_group(必填); content_summary(必填)}
| Name | Type | Req | Description |
|---|---|---|---|
| args | – | – | – |
| case_id | string | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
record_funds_summary ~141
登记资金勾稽摘要(辩护关键数字):报案合计/合同合计/指控金额/已返还/违法所得/已退赔。由结论员在综合全部书证与笔录后计算登记;各口径不一致时必须在 note 中说明差异。 参数结构(args 字段): {reported_amount(必填); contract_amount(必填); charged_amount(必填); returned_amount(必填); illegal_income(必填); restitution(必填); note(必填)}
| Name | Type | Req | Description |
|---|---|---|---|
| args | – | – | – |
| case_id | string | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
record_indictment ~160
登记起诉书/起诉意见书内容(第二部分)。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(必填)}
| Name | Type | Req | Description |
|---|---|---|---|
| args | – | – | – |
| case_id | string | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
record_party ~143
登记当事人基本情况(第一部分)。职务犯罪须填 position 与 appointment_history。 参数结构(args 字段): {name(必填): 姓名; volume(必填): 来源卷宗; page_start(必填): 来源起始页; page_end(必填): 来源结束页; gender(必填); ethnicity(必填); birth(必填); native_place(必填); id_no(必填); education(必填); occupation(必填); position(必填); appointment_history(必填); address(必填)}
| Name | Type | Req | Description |
|---|---|---|---|
| args | – | – | – |
| case_id | string | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
record_procedural_doc ~171
登记程序性文书(第六部分)。包含从被调查至当前的全部程序性文书,需含文号、时间、地点。 参数结构(args 字段): {doc_type(必填): 文书类型:立案决定书/拘留/逮捕/取保候审/监视居住/搜查/扣押/鉴定意见/移送起诉等; volume(必填): 卷宗; page_start(必填): 起始页; page_end(必填): 结束页; doc_no(必填); time(必填); location(必填); fact_group(必填); content_summary(必填)}
| Name | Type | Req | Description |
|---|---|---|---|
| args | – | – | – |
| case_id | string | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
record_statement ~225
登记供述/辩解或证言。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(必填)}
| Name | Type | Req | Description |
|---|---|---|---|
| args | – | – | – |
| case_id | string | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
search_volumes ~92
在卷宗中检索关键词,返回命中卷宗/页码与上下文片段。用于快速定位某事实、某人的所有出现位置。 参数结构(args 字段): {query(必填): 检索关键词(如人名、金额、罪名、日期); volume(必填)}
| Name | Type | Req | Description |
|---|---|---|---|
| args | – | – | – |
| case_id | string | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
set_case_basic ~80
登记案件基本信息表:主体、涉嫌罪名、涉案金额、卷宗数量。 参数结构(args 字段): {case_name(必填); defendant(必填); charge(必填); total_amount(必填); volume_count(必填)}
| Name | Type | Req | Description |
|---|---|---|---|
| args | – | – | – |
| case_id | string | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
start_review ~121
下发标准阅卷 playbook,由宿主 Agent 按 steps 顺序调用 MCP 工具完成阅卷. 不再启动后台 Claude/LLM job(不依赖 Claude Code CLI)。 model / effort / max_turns 由宿主自行决定,本参数仅保留兼容、写入提示。 进度请用 get_case_status / get_workspace_summary 查看登记计数。
| Name | Type | Req | Description |
|---|---|---|---|
| case_id | string | yes | – |
| effort | string | – | – |
| max_turns | integer | – | – |
| model | string | – | – |
Structured output declared, but exposes no named fields.
No examples provided.
validate_citations ~65
校验所有已登记记录的来源引用是否落在真实卷宗页码区间内,返回不合规项。阅卷结束前必跑。 参数结构(args 字段): {}
| Name | Type | Req | Description |
|---|---|---|---|
| args | – | – | – |
| case_id | string | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
write_outputs ~64
生成阅卷笔录(Word)与阅卷目录(Excel)(含案件信息表与结论),返回文件路径。 参数结构(args 字段): {fmt(必填)}
| Name | Type | Req | Description |
|---|---|---|---|
| args | – | – | – |
| case_id | string | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
What is the VibeLawyer MCP server?
VibeLawyer is an MCP server listed in the public MCP registry as io.github.Jack-mi/vibelawyer. Local MCP for Chinese criminal dossier review; Word notes + Excel catalogs stay on-device. This page covers its PyPI package (vibelawyer).
Is the VibeLawyer MCP server safe to use?
VibeLawyer scores 78 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 20 September 2026. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the VibeLawyer MCP server expose?
VibeLawyer exposes 25 tools: list_volumes, get_volume_outline, read_pages, search_volumes, get_page_image, and 20 more. Their descriptions and schemas cost roughly 2,701 tokens of context every time the server is loaded.
Is the VibeLawyer MCP server still maintained?
VibeLawyer is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.