mcpField
U
UK Break Clause Analyzer

UK Break Clause Analyzer

本地服务
github.com/Ankur-stockheads法律与政务018 周前更新

关于 UK Break Clause Analyzer

UK Break Clause Analyzer 是用于判断租户能否行使英国商业租约解约条款的决策支持型 MCP 服务,依据明确清单进行检查。它以原文片段作为证据,遇到歧义时交由人工核验,并附带评估框架;不构成法律建议。

主要功能

  1. 01解约条款四项条件清单
  2. 02原文证据核验与引用
  3. 03歧义情况转交人工核验
  4. 04确定性日期与结论检查
  5. 05准确度和幻觉率评估

适用场景

  1. 01检查通知期限及送达条件
  2. 02核查租金欠款和腾空交付要求
  3. 03用标注案例比较分析结果

MCP 相关

提供四个 MCP 工具:`extract_break_clause`、`check_conditions`、`find_citation` 和 `assess_validity`。响应包含决策支持免责声明和人工核验要求。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"ankur-stockheads-rubo": {
"command": "uvx",
"args": [
"uk-break-clause-analyzer-mcp"
],
"env": {
"ANTHROPIC_API_KEY": "<ANTHROPIC_API_KEY>"
}
}
}
}
启动命令uvx uk-break-clause-analyzer-mcp
需要配置的环境变量
ANTHROPIC_API_KEY密钥Anthropic API key for live LLM extraction/reasoning. Without it the server runs in a heuristic-only fallback mode.

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypiuk-break-clause-analyzer-mcp0.1.1

工具

4

收录的工具列表 · 更新于 2 周前

参数类型必填说明
lease_textstring是

详细介绍

UK 解约条款分析器(MCP)

CI

一个可自我评估的 MCP 服务,用于判断英国商业租约的租户是否真的能够 行使解约条款,并公布自身测得的幻觉率。

⚖️ 仅用于辅助决策,非法律建议。 本工具基于合成数据,采用刻意 简化且非专有的规则集。任何实际决策都必须由具备资质的律师审核。


200 万英镑的句号

2012 年,一名租户及时送达了有效的解约通知,准备解除租约——但在解约日,他们 尚未支付几周前到期的一季度租金。解约失败了。他们因此被租约及其租金 绑定了多年。没有戏剧性场面,也没有恶意——只是有一项先决条件未满足,直到为时已晚才被所有人发现。

解约条款就是如此无情。租户能否真的离开,取决于一份简短的检查清单——是否及时送达通知、通知送达方式是否正确、是否拖欠租金、是否交付空置占有——其中任何一项出错都可能造成灾难性后果。这正是你可能会交给大模型处理的任务……前提是你能相信它不会信誓旦旦地编造答案。

本项目旨在赢得这种信任,并对其进行衡量。 它不是一个巧妙的解析器,而是一个可靠性测试框架:每项主张都必须有逐字引用的原文支撑,否则就不会作出;真正含糊不清的案例会交由人工处理,而不是靠猜测;项目还附带一套评估机制,用于公布它说谎的频率。

优势

  • 有据可依——每项断言的条件都有逐字引用的原文片段作为依据。如果系统找不到对应文本,就会返回 NOT_FOUND;它绝不会编造引文。确定性关卡会从原文中截取该片段,因此系统不可能回显幻觉生成的文本。
  • 经过校准——当租约确实无法明确某个问题时,答案是 AMBIGUOUS — human verify,而不是抛硬币式地猜测。坦诚弃答是一项功能。
  • 可自我评估——pytest 测试框架会基于 24 个已标注案例评估抽取准确率、引文忠实度、幻觉率和校准情况。
  • 负责推理与验证——大模型只负责提出建议;确定性代码负责作出判断(核验每条引文、计算日期、应用空置占有法律测试,并汇总结论)。

核心数据

完整评估见 report/report.md(包含全部四项指标、 模型间对比、混淆矩阵和已捕获幻觉的示例)。

仓库中提交的报告是启发式基线(无需 API 密钥即可运行)——它已经揭示了核心结论:依据核验关卡将无依据(捏造的)幻觉降至零,而非推理基线仍会错误归因,并且在真正含糊的案例中从不弃答。这正是经过校准的大模型应当弥合的差距:

uv run python scripts/run_eval.py --record   # measure claude-haiku-4-5 vs claude-sonnet-4-6

工作原理

flowchart LR
    A["Lease + Background Facts"] --> T["MCP tools"]
    T --> L["LLM adapter<br/>extract + reason · temperature 0"]
    L -- "proposes verbatim quotes<br/>+ findings" --> G{"Grounding gate<br/>verbatim? else NOT_FOUND"}
    G -- "spans sliced from source" --> C["Deterministic core<br/>checklist · UK date math · VP legal test"]
    C --> R["Strict-precedence aggregate<br/>fail→INVALID · uncertain→AMBIGUOUS · else VALID"]
    R --> O["Assessment<br/>verdict + calibration + human-verify gates"]
    subgraph EVAL["Eval (the point)"]
      D["24 labelled cases"] --> H["harness"] --> M["4 metrics"] --> P["report.md + SVG"]
    end

信任边界是结构性的:确定性 core/ 包在物理上无法导入 llm/ 包(由测试强制执行)。“大模型提出建议,确定性代码作出判断”是代码库本身的特性,而不是一项行为准则。

四个 MCP 工具(各司其职)
工具功能
extract_break_clause返回解约条款及其逐字原文片段
check_conditions四项条件检查清单:逐项标记通过/不通过/不确定,并提供有据可依的证据
find_citation返回支持某项主张的准确逐字原文,或返回 NOT_FOUND
assess_validity编排后的结论、校准说明,以及必须由人工核验的关卡

快速开始(从克隆到运行,不到 2 分钟)

# 1. Install uv (skip if you have it)
curl -LsSf https://astral.sh/uv/install.sh | sh

# 2. Install deps (uv fetches its own Python 3.12)
uv sync

# 3. Run the test suite — proves the eval apparatus is correct
uv run pytest -q

# 4. Check the dataset (every gold span verbatim, every label coherent)
uv run python scripts/validate_dataset.py

# 5. Regenerate the eval report
uv run python scripts/run_eval.py        # heuristic baseline, no key needed

以上所有操作都不需要 ANTHROPIC_API_KEY——评估会回退到启发式基线,并且可以完全复现。设置该密钥(并使用 --record)即可评估实际的 Claude 模型。

你的 Anthropic API 密钥

只有在进行实时 LLM 提取时(eval 的 --record 步骤和服务的真实模式)才需要此密钥。其他所有操作都无需密钥。

  • 切勿提交此密钥。 .env 已加入 Git 忽略列表,录制文件会对 x-api-key 标头进行脱敏。
  • 运行本地命令时,可以导出密钥,也可以使用 .env 文件:
    export ANTHROPIC_API_KEY=sk-ant-…           # option 1: shell
    # or
    cp .env.example .env && $EDITOR .env          # option 2: .env, then:
    uv run --env-file .env python scripts/run_eval.py --record
    
  • 使用 MCP 客户端时,将密钥填入服务配置的 env 区块(见下文)。

运行 MCP 服务

# Inspect it interactively (the official MCP Inspector)
npx @modelcontextprotocol/inspector uv run break-clause-analyzer

Claude Desktop — 添加到 claude_desktop_config.json(使用克隆仓库的绝对路径, 以便从项目目录运行):

{
  "mcpServers": {
    "break-clause-analyzer": {
      "command": "uv",
      "args": ["run", "--directory", "/absolute/path/to/rubo-mcp", "break-clause-analyzer"],
      "env": { "ANTHROPIC_API_KEY": "sk-ant-…" }
    }
  }
}

Claude Code — 运行一条命令:

claude mcp add break-clause-analyzer -e ANTHROPIC_API_KEY=sk-ant-… \
  -- uv run --directory /absolute/path/to/rubo-mcp break-clause-analyzer

即使没有密钥,服务仍会运行并作出响应——它会使用启发式基线,并明确说明这一点。每条工具响应都会附带决策支持免责声明。

可复现的评估(录制文件)

temperature=0 并不保证 API 输出具有确定性,因此,可复现性依赖于录制文件(VCR.py)。scripts/run_eval.py --record 会为每个模型录制一组录制文件,并对 x-api-key 标头进行脱敏;之后无需密钥即可在数秒内重新运行并回放。如需了解详情,请参阅 eval/cassettes/README.md。

目录结构

src/break_clause_analyzer/
  core/       # deterministic trust boundary (no network; cannot import llm/)
    grounding.py  dates.py  checklist.py  aggregate.py
  llm/        # the only network egress (Anthropic + heuristic fallback)
  pipeline.py # propose → gate → dispose orchestration
  server.py   # FastMCP server: the four tools
data/cases/   # 24 labelled synthetic case files (+ dataset README)
eval/         # harness, metrics, report generator, cassettes
docs/METHODOLOGY.md  # pre-registered metric definitions
report/       # generated eval report + SVG
.planning/    # the eval-first roadmap, requirements, and decision log

方法与诚实性

指标定义已在运行任何模型之前预先注册于 docs/METHODOLOGY.md,因此无法事后定义关键数字来美化结果。幻觉率统计错误依据和过度自信,而不只是捏造内容——因为设置依据核验关卡后,捏造内容很容易降为零。评分器不使用 LLM 评审;它通过金标准预言机和刻意破坏的系统进行验证,详情见 tests/test_harness.py。

范围(刻意限定)

仅涉及租户解约条款 · 四项先决条件 · 仅使用合成数据/公开数据 · 用于决策支持,而非法律建议。其他租赁条款、房东解约权、真实客户端数据和生产引擎均明确不在范围内。


作为可靠性工程成果构建。评估才是重点。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。