输入检索需求或案件材料,AI 自动拆解法律议题,覆盖式召回相关法律法规、司法解释的条文原文及出处。
Model Context Protocol · 2026-07-28
一个端点,五种法律工具,复制即用
MCP Streamable HTTP 端点:粘贴配置即可让 Cursor、Claude Code、Codex、VS Code 等 AI 工具 调用法律问答、法条检索、合同审查与文书生成。无需写集成代码,AI 会在需要时自动调用对应工具, 并引用真实法条原文。
{
// 粘贴到 Cursor / Claude Code / VS Code 等客户端的 MCP 配置
"mcpServers": {
"accurlex": {
"type": "http",
"url": "https://accurlex.com/mcp/stream",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
}
# 推荐:Key 保存在环境变量中,不写入配置文件
# 终端执行: export ACCURLEX_API_KEY=ak_live_YOUR_API_KEY
[mcp_servers.accurlex]
url = "https://accurlex.com/mcp/stream"
bearer_token_env_var = "ACCURLEX_API_KEY"
enabled = true
* Key 在控制台创建后仅展示一次,请妥善保存;不要把它提交到公开仓库或写入前端代码。Codex 也支持改用 http_headers 直接写 Authorization 头。
端点与协议
| 项目 | 说明 |
|---|---|
| 端点 | POST https://accurlex.com/mcp/stream |
| 协议 | MCP 2026-07-28,Streamable HTTP 传输(无状态,不需要会话 ID) |
| 认证 | 请求头 Authorization: Bearer ak_live_... |
| 流式 | 支持 SSE 流式返回与进度通知;客户端只接受 JSON 时返回单个 JSON 结果 |
| Accept 头 | 建议同时携带 application/json 与 text/event-stream;服务端对缺失/不完整的 Accept 做宽松处理:不带 text/event-stream 时统一返回单条 JSON 结果,不强制 406 |
| 计费口径 | 与 REST v1 完全一致:每日免费额度、点数计费、促销活动均按 API Key 记账。服务端无状态、不缓存结果、不提供请求级去重;客户端重复发送同一请求会按新请求重复计费,请避免自动重试付费调用 |
| 请求体上限 | 单次请求不超过 2MB,超限返回 HTTP 413 + JSON-RPC -32000 |
| 取消语义 | 客户端断开 SSE 连接即取消任务:计费后断连会自动退款,计费前断连不扣费;JSON 响应模式下断连同样会取消 |
| 兼容性 | 仅支持 2026-07-28 及之后的协议版本;旧版 initialize 握手(2024/2025)不兼容 |
可用工具
5 个 MCP Tool,对应开放平台全部能力
接入后一次性获得全部工具。AI 会根据你的问题自动选择合适的工具;工具的计费与额度规则和 REST API 完全一致。
isError,并在错误详情中给出缺少的 scope 名称;前往控制台修改 Key 权限即可。
提交法律问题(可附带背景材料与多轮历史),AI 基于 Neo-RAG 引擎检索相关法条后生成分析回答。
提交合同全文并指定审查立场(例如“我是买方,重点审查付款与违约条款”),AI 逐条分析风险、引用相关法条并生成审查意见。
根据文书类型和案件事实,生成起诉状、答辩状、代理词等法律文书草稿,可直接作为初稿继续修改。
查询当前 API Key 的用量、剩余点数和近 30 天调用统计,不消耗点数,任意有效 Key 均可调用。
接入指南
常用客户端怎么配
Cursor / VS Code
- 打开 MCP / 连接器设置(Cursor 用
.mcp.json) - 添加 Server,类型选择
HTTP - 粘贴 JSON 配置,替换 API Key
- 重启编辑器会话
Claude Code / Codex CLI
- Claude Code 在项目根目录创建
.mcp.json - Codex 在
~/.codex/config.toml粘贴 TOML - 重启会话,直接提问法律问题
- 可用
/mcp(Claude Code)或codex mcp list检查连接
Trae / 其他桌面客户端
- 设置中找到 MCP / 连接器管理
- 添加自定义 MCP Server,类型选
HTTP(Streamable) - 填入 URL 与
AuthorizationBearer 头 - 保存后刷新工具列表
Dify / 低代码平台
- 在插件 / 工具市场中添加 MCP 连接
- 配置 URL 与 Authorization Header
- 在工作流或 Agent 节点中调用 accurLex 工具
- 注意把 Key 放在平台的安全凭据中
开始使用
还没有 API Key?先创建一个
登录 accurLex 账号,在控制台创建 API Key 并勾选所需权限,然后复制上方配置到你的 AI 工具即可。从创建到能用,通常不超过两分钟。
常见问题
接入前最常问的几个问题
支持哪些 MCP 客户端?
所有支持 Streamable HTTP 传输的现代 MCP 客户端都可以接入,例如 Cursor、Claude Code、Codex、VS Code、Trae、Dify 等。我们只支持 2026-07-28 及之后的协议版本;只支持旧版 initialize 握手(2024/2025)的客户端无法连接。
配置后工具报错 / 不可用怎么办?
MCP 怎么计费?和 REST API 一样吗?
完全一样。MCP 工具复用 REST v1 的额度与计费链路:deep 模式的问答与法条检索消耗每日免费额度,expert / 合同审查 / 文书生成按点数计费(法条检索 expert 目前限时免费),所有调用按 API Key 记录在用量页。MCP 本身不额外收费。
旧版 npx stdio 包还能用吗?
不能。旧的 accurlex-mcp-server(stdio 方式)已退役下线,请使用本页的 Streamable HTTP 方式接入。新接入的客户端请直接复制上方配置。
协议参考
Streamable HTTP 接口规范
以下即线上 POST https://accurlex.com/mcp/stream 的实际行为:
支持的方法、请求头、响应格式、错误码与限流规则。
支持的方法
| 方法 | 说明 | 响应 |
|---|---|---|
server/discover |
协议协商:返回支持的版本、能力、服务说明 | supportedVersions、capabilities、instructions、ttlMs、cacheScope |
tools/list |
列出 5 个可用工具及 JSON Schema | tools 数组、ttlMs、cacheScope |
tools/call |
调用工具;需 Mcp-Name 头;可选 progressToken(放在 params._meta) |
resultType、content、structuredContent、isError;携带进度令牌时先发 notifications/progress |
通知(无 id,如 notifications/initialized) |
纯通知,不期待响应 | HTTP 202 空 body,不返回 JSON-RPC 响应 |
每个 POST 只接受一条 JSON-RPC 2.0 消息;批量数组返回 400 -32600。
请求头
| 头 | 必填 | 说明 |
|---|---|---|
MCP-Protocol-Version | 是 | 当前唯一支持 2026-07-28;缺失或不受支持返回 -32022 |
Mcp-Method | 是 | 必须与 body 的 method 一致,如 tools/call;不一致返回 -32020 |
Mcp-Name | tools/call 必填 | 必须与 body.params.name 一致;含非 ASCII 字符时按官方规则编码为 =?base64?<base64>?= |
Authorization | 是 | Bearer ak_live_...,与 REST v1 同一套开放平台 API Key |
Content-Type | 是 | application/json |
Accept | 建议 | application/json, text/event-stream;服务端宽松处理:不带 text/event-stream 时返回单条 JSON 结果 |
请求体与版本协商
- 请求体是单条 JSON-RPC 2.0 消息;批量数组不受支持,返回
400 -32600。 - 协议版本放在
body.params._meta['io.modelcontextprotocol/protocolVersion'](顶层_meta作为宽松回退也接受);与MCP-Protocol-Version头不一致时返回-32020。 - 请求体上限
2MB;超限返回 HTTP413+ JSON-RPC-32000,不会断连。
最小请求体示例(server/discover)
{
"jsonrpc": "2.0",
"id": 1,
"method": "server/discover",
"params": {
"_meta": {
"io.modelcontextprotocol/protocolVersion": "2026-07-28"
}
}
}
响应格式
- SSE(
Accept含text/event-stream):连接建立后先发: connected;每条消息为event: message+data: <JSON-RPC>;tools/call带progressToken时先发notifications/progress(≥250ms 节流,progress为当前已生成字符数),空闲时每 15 秒发: ping注释帧保活,最后发送最终响应并关闭流。 - JSON(
Accept不含text/event-stream):返回单条 JSON-RPC 响应。 - 通知(无
id):HTTP202空 body。
tools/call 成功结果字段
| 字段 | 说明 |
|---|---|
resultType | "complete" |
content | [{type:"text", text}],最终回答文本 |
structuredContent | 结构化结果:answer(回答)、original_content(参考法条原文)、citations(法条引用)、warnings(提示)、mode、generation_id、request_id |
isError | false 为成功;true 为工具级失败(HTTP 仍为 200) |
调用示例
server/discover(JSON 模式)
curl -sS -X POST "https://accurlex.com/mcp/stream" \
-H "Authorization: Bearer ak_live_YOUR_API_KEY" \
-H "MCP-Protocol-Version: 2026-07-28" \
-H "Mcp-Method: server/discover" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"server/discover","params":{"_meta":{"io.modelcontextprotocol/protocolVersion":"2026-07-28"}}}'
tools/call(SSE 流式)
curl -sS -N -X POST "https://accurlex.com/mcp/stream" \
-H "Authorization: Bearer ak_live_YOUR_API_KEY" \
-H "MCP-Protocol-Version: 2026-07-28" \
-H "Mcp-Method: tools/call" \
-H "Mcp-Name: accurlex_legal_qa" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"accurlex_legal_qa","arguments":{"question":"合同约定的违约金过高时,可以请求法院调整吗?","mode":"deep"},"_meta":{"io.modelcontextprotocol/protocolVersion":"2026-07-28","progressToken":123}}}'
SSE 响应(先进度通知,后最终结果)
: connected
event: message
data: {"jsonrpc":"2.0","method":"notifications/progress","params":{"progressToken":123,"progress":42,"message":"生成中…"}}
event: message
data: {"jsonrpc":"2.0","id":1,"result":{"resultType":"complete","content":[{"type":"text","text":"..."}],"structuredContent":{"answer":"...","original_content":"...","citations":[],"warnings":[],"mode":"deep","generation_id":"...","request_id":"..."},"isError":false}}
工具级失败(HTTP 仍为 200,靠 isError 判断)
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"resultType": "complete",
"content": [{ "type": "text", "text": "API Key 无效或未启用对应 scope" }],
"structuredContent": {
"error": "scope_denied",
"message": "API Key 无效或未启用对应 scope",
"hint": "请在开放平台控制台确认 API Key 已启用 scope: qa_expert"
},
"isError": true
}
}
工具参数
accurlex_legal_qa 法律问答
| 字段 | 类型 | 必填 | 规则 |
|---|---|---|---|
question | string | 是 | 法律问题 |
mode | string | 否 | deep(默认,免费)或 expert(付费) |
context_text | string | 否 | 背景材料/案件事实,拼接在问题之前并计入字符数 |
history | array | 否 | 多轮历史:[{role:"user"|"assistant", content}] |
accurlex_law_search 法条检索
| 字段 | 类型 | 必填 | 规则 |
|---|---|---|---|
prompt | string | 是 | 检索需求或案件材料 |
mode | string | 否 | deep(默认,免费)或 expert(专家模式,限时免费) |
accurlex_contract_review 合同审查
| 字段 | 类型 | 必填 | 规则 |
|---|---|---|---|
contract_text | string | 是 | 待审查的合同全文 |
standpoint | string | 是 | 审查立场与要求,例如“我是甲方(买方),请重点审查付款条款和违约责任” |
accurlex_document_draft 文书生成
| 字段 | 类型 | 必填 | 规则 |
|---|---|---|---|
document_type | string | 是 | 文书类型,如“民事起诉状”“答辩状”“代理词” |
facts | string | 是 | 案件关键事实与诉求 |
followup_prompt | string | 否 | 补充要求或特别说明 |
accurlex_account_usage 用量自查
无参数。返回当前 API Key 的用量、剩余点数和近 30 天调用统计。
错误码
错误分两层:协议/传输层错误返回 JSON-RPC error 字段 + 4xx/413;工具级错误HTTP 仍为 200,
通过 result.isError === true 和 structuredContent.error 表达。
协议层 JSON-RPC 错误码
| 错误码 | HTTP | 触发条件 | 处理建议 |
|---|---|---|---|
-32022 | 400 | 缺 MCP-Protocol-Version 头,或 header/body 协议版本不受支持(data.supported / data.requested) | 使用 2026-07-28;只支持旧版 initialize 握手(2024/2025)的客户端无法接入 |
-32020 | 400 | MCP-Protocol-Version / Mcp-Method / Mcp-Name 头与 body 不一致(data.header / data.expected / data.actual) | 检查请求头与 body 是否一致 |
-32000 | 413 | 请求体超过 2MB | 精简输入或拆分调用 |
-32700 | 400 | 请求体不是合法 JSON | 修正 JSON 格式 |
-32600 | 400 | 批量数组、空 body、缺 method | 每次 POST 只发一条 JSON-RPC 消息 |
-32601 | 404 | 方法不存在 | 检查方法名(server/discover、tools/list、tools/call) |
-32021 | — | 官方保留码 MissingRequiredClientCapability;本服务不要求客户端能力,不会产生 | 无需处理 |
HTTP 状态码
| HTTP | 场景 |
|---|---|
| 200 | 成功或工具级错误(isError) |
| 202 | 通知(无 id),空 body |
| 400 / 404 / 413 | 协议层错误,见上表 |
| 429 | IP 层限流,返回 {"error":"too_many_requests"}(普通 JSON,非 JSON-RPC) |
工具级错误码(structuredContent.error)
| error | 含义 | 处理建议 |
|---|---|---|
api_key_invalid | API Key 无效或未启用 | 到控制台检查 Key 状态 |
scope_denied | Key 缺少对应 scope(hint 会给出缺少的 scope) | 到控制台修改 Key 权限 |
too_many_requests | 触发工具级限流 | 按下方限流表等待后重试 |
daily_quota_exceeded | 每日免费/促销额度已用尽(hint 区分) | 明日恢复,或切换付费模式 |
question_required / prompt_required / contract_text_and_standpoint_required / document_type_and_facts_required | 缺少必填参数 | 补齐必填字段 |
exceed_char_limit | 输入超过字符上限(limit 字段给出上限) | 按返回的 limit 缩短输入 |
unknown_tool | 工具不存在 | 检查 params.name |
server_not_configured | 服务端上游未配置 | 稍后重试,必要时联系支持 |
idempotent_replay | 检测到重复请求(首笔仍在执行,未二次计费) | 等待首笔完成;不要盲目重试付费调用 |
billing_failed 等计费结果码 | 点数不足或计费失败(statusCode 给出对应 HTTP 语义) | 到控制台查看点数/稍后重试 |
upstream_error / upstream_http_error / upstream_response_error / upstream_request_failed / proxy_timeout / empty_original_content | 上游调用失败(statusCode / refunded 给出详情) | 已退款(refunded: true)可稍后重试 |
generation_absolute_timeout | 超过 20 分钟硬截止(statusCode: 504) | 精简输入后重试 |
cancelled | 客户端断连/取消(statusCode: 499) | 正常取消语义;付费调用会自动退款 |
usage_query_failed | 用量查询失败 | 稍后重试 |
result.isError;
不要仅凭 HTTP 200 判定调用成功。
额度、计费与限流
| 工具 | 模式 | 计费 | 字符上限 |
|---|---|---|---|
accurlex_legal_qa | deep | 免费(每日 100 次) | 10,000 |
accurlex_legal_qa | expert | 付费 5 点起 | 30,000 |
accurlex_law_search | deep | 免费(每日 100 次) | 10,000 |
accurlex_law_search | expert | 限时免费至 2026-10-15,到期恢复付费 5 点起 | 30,000 |
accurlex_contract_review | — | 付费 10 点起 | 30,000(合同 + 立场合计) |
accurlex_document_draft | — | 付费 10 点起 | 30,000(全部字段合计) |
accurlex_account_usage | — | 免费,不消耗点数 | 无 |
计费阶梯与 REST v1 一致:输入超过 10,000 字符按 2 倍、超过 20,000 字符按 3 倍计点(以 PHP 计费策略版本为准)。
取消与幂等
- SSE 连接关闭即取消:计费前断连不扣费;计费后断连自动退款,并在用量台账记为
cancelled。JSON 响应模式同样监听断连并取消。 - 服务端无状态、不缓存结果:首笔任务未完成时按 payload 指纹去重(
idempotent_replay),不会二次扣费;首笔已完成时重发会作为新调用再次计费(at-least-once)。
限流
| 维度 | 窗口 | 上限 |
|---|---|---|
IP(mcp_stream) | 1 秒 | 20 |
工具级 mcp_stream_qa | 3 秒 | 6 |
工具级 mcp_stream_law_search | 3 秒 | 6 |
工具级 mcp_stream_contract_review | 5 秒 | 3 |
工具级 mcp_stream_draft | 5 秒 | 3 |
工具级 mcp_stream_usage | 5 秒 | 12 |
IP 层限流返回 HTTP 429 普通 JSON;工具级限流返回 isError: true + too_many_requests。