返回市场
mcp-cerebra-法律服务器

mcp-cerebra-法律服务器

作者:yoda-digital20 星标更新:2025-03-24

项目介绍

Cerebra 法律 MCP 服务器

基于 Anthropic 工程博客 中的“思考”工具概念,Cerebra 法律是一款面向企业的 MCP 服务器,用于法律推理和分析。

概述

Cerebra 法律提供了三种强大的法律推理和分析工具:

  1. legal_think - 一种结构化的法律推理工具,帮助分析复杂的法律问题,并提供特定领域的指导和模板。
  2. legal_ask_followup_question - 一种专门用于在法律环境中提出后续问题的工具,具有特定领域的选项。
  3. legal_attempt_completion - 一种展示法律分析结果的工具,具有适当的结构和引用格式。

该服务器会自动检测法律领域(如ANSC争议、消费者保护、合同分析),并提供特定领域的指导、模板和反馈。

特性

  • 领域检测:自动识别分析的法律领域
  • 特定领域指导:为不同的法律领域提供定制化指导
  • 结构化模板:提供特定领域的模板以进行法律分析
  • 引用格式化:正确格式化法律引用
  • 思维质量分析:提供关于法律推理质量的反馈
  • 修订支持:允许修订之前的思维

安装

# 克隆仓库
git clone https://github.com/yoda-digital/mcp-cerebra-legal-server.git
cd mcp-cerebra-legal-server

# 安装依赖
npm install

# 构建项目
npm run build

使用

运行服务器

npm start

测试服务器

仓库中包括一个测试客户端,演示如何与服务器交互:

# 将测试客户端设置为可执行
chmod +x test-client.js

# 运行测试客户端
./test-client.js

测试客户端将:

  1. 启动服务器
  2. 发送一个 tools/list 请求以获取可用工具
  3. 发送一个带有示例思维的 legal_think 请求
  4. 显示服务器的响应

添加到 Claude

要将服务器添加到 Claude,请更新您的 MCP 设置文件,如下所示配置:

对于 VSCode 扩展

编辑位于 ~/.config/Code/User/globalStorage/rooveterinaryinc.roo-cline/settings/cline_mcp_settings.json 的文件:

{
  "mcpServers": {
    "cerebra-legal": {
      "command": "node",
      "args": ["/path/to/mcp-cerebra-legal-server/build/index.js"],
      "disabled": false,
      "alwaysAllow": []
    }
  }
}

对于 Claude 桌面应用

编辑位于 ~/Library/Application Support/Claude/claude_desktop_config.json(macOS)或相应平台上的文件:

{
  "mcpServers": {
    "cerebra-legal": {
      "command": "node",
      "args": ["/path/to/mcp-cerebra-legal-server/build/index.js"],
      "disabled": false,
      "alwaysAllow": []
    }
  }
}

在 Claude 中使用工具

一旦服务器被添加到 Claude,您就可以在对话中使用这些工具:

系统提示集成

为了使 AI 能够有效地与这些法律工具互动,必须在系统提示中包含适当的指导。这些工具遵循与标准 Cline 工具相同的 AI → 人类互动模型,但具有特定领域的增强功能。

系统提示应包含每个工具的详细文档:

## legal_think
描述:一种结构化的法律推理工具,帮助分析复杂的法律问题,并提供特定领域的指导和模板。此工具能够逐步进行法律分析,并提供关于推理质量的反馈。

参数:
- thought: (必需) 当前法律推理步骤
- thoughtNumber: (必需) 序列中的当前思维编号
- totalThoughts: (必需) 预计需要的总思维数
- nextThoughtNeeded: (必需) 是否需要另一个思维步骤
- category: (可选) 法律领域类别(如果没有提供则自动检测)
- references: (可选) 引用数组
- isRevision: (可选) 是否修订之前的思维
- revisesThoughtNumber: (可选) 正在重新考虑的思维编号
- requestGuidance: (可选) 是否请求特定领域的指导
- requestTemplate: (可选) 是否请求特定领域的模板

用法:
<legal_think>
<thought>您的法律推理步骤在这里</thought>
<thoughtNumber>当前思维编号</thoughtNumber>
<totalThoughts>预计总思维数</totalThoughts>
<nextThoughtNeeded>true 或 false</nextThoughtNeeded>
<category>法律领域(可选)</category>
<references>引用数组(可选)</references>
<isRevision>true 或 false(可选)</isRevision>
<revisesThoughtNumber>正在修订的思维编号(可选)</revisesThoughtNumber>
<requestGuidance>true 或 false(可选)</requestGuidance>
<requestTemplate>true 或 false(可选)</requestTemplate>
</legal_think>

## legal_ask_followup_question
描述:向用户询问特定领域的法律问题,以收集完成任务所需的额外信息。此工具增强了标准的 ask_followup_question 功能,增加了法律领域的检测、术语格式化以及特定领域的建议选项。

参数:
- question: (必需) 向用户询问的问题。这将自动增强以包含适当的法律术语。
- options: (可选) 用户可以选择的 2 到 5 个选项的数组。如果没有提供,则会自动建议特定领域的选项。
- context: (可选) 帮助进行领域检测和问题格式化的附加上下文。

用法:
<legal_ask_followup_question>
<question>您的问题在这里</question>
<options>
选项数组(可选),例如 ["选项 1", "选项 2", "选项 3"]
</options>
<context>帮助进行领域检测的附加上下文(可选)</context>
</legal_ask_followup_question>

## legal_attempt_completion
描述:以适当的法律结构和格式向用户展示您的工作结果。此工具增强了标准的 attempt_completion 功能,增加了法律领域的检测、文档结构化和引用格式化。

参数:
- result: (必需) 任务的结果。这将自动格式化为适当的法律结构。
- command: (可选) 用于显示结果的 CLI 命令。
- context: (可选) 帮助进行领域检测和结果格式化的附加上下文。

用法:
<legal_attempt_completion>
<result>
您的最终结果描述在这里
</result>
<command>用于演示结果的命令(可选)</command>
<context>帮助进行领域检测的附加上下文(可选)</context>
</legal_attempt_completion>

这些指导确保 AI 理解:

  1. 这些是标准工具的专用版本
  2. 它们维持相同的 AI → 人类互动流程
  3. 它们具有额外的功能和参数
  4. 如何正确地调用这些工具

没有这些指导,AI 可能无法充分利用这些工具内置的特定领域能力。

1. 使用 legal_think

legal_think 工具帮助您分析复杂的法律问题,采用结构化思考方式:

我需要分析一个 ANSC 争议案件,其中申诉人认为招标中的技术规格过于严格。

Claude 将使用 legal_think 工具来:

  • 检测法律领域(ANSC 争议)
  • 提供特定领域的指导
  • 提供结构化的分析模板
  • 提供关于法律推理质量的反馈
  • 支持对之前思维的修订

2. 使用 legal_ask_followup_question

当 Claude 需要更多信息来完成法律分析时:

具体哪些技术规格条款被挑战?

Claude 将使用 legal_ask_followup_question 工具来:

  • 格式化问题以包含适当的法律术语
  • 提供特定领域的选项供用户选择
  • 检测法律领域以进行上下文感知提问

3. 使用 legal_attempt_completion

当 Claude 准备展示最终的法律分析时:

根据我的分析,要求“至少 5 年经验”的技术规格似乎不合理,并可能违反《公共采购法》第 131/2015 条第 33(2)款。

Claude 将使用 legal_attempt_completion 工具来:

  • 以适当的法律结构格式化结论
  • 提取并格式化法律引用
  • 将分析组织成清晰的部分
  • 提供专业法律文档格式

工具输入模式

legal_think

{
  "thought": "分析 ANSC 争议案件,其中申诉人认为技术规格过于严格。",
  "thoughtNumber": 1,
  "totalThoughts": 5,
  "nextThoughtNeeded": true,
  "category": "ansc_contestation",  // 可选,未提供时自动检测
  "references": ["法律 131/2015", "ANSC 决定 #12345"],  // 可选
  "isRevision": false,  // 可选
  "revisesThoughtNumber": null,  // 可选
  "requestGuidance": true,  // 可选
  "requestTemplate": true  // 可选
}

legal_ask_followup_question

{
  "question": "具体哪些技术规格条款被挑战?",
  "options": [  // 可选,未提供时自动生成
    "您是否质疑经验要求?",
    "您是否质疑技术能力要求?",
    "您是否质疑财务要求?",
    "您是否质疑认证要求?"
  ],
  "context": "关于 IT 设备采购的 ANSC 争议"  // 可选
}

legal_attempt_completion

{
  "result": "根据对 ANSC 争议 #12345 的分析,要求‘至少 5 年经验’的技术规格似乎不合理,并可能违反《公共采购法》第 131/2015 条第 33(2)款。",
  "command": null,  // 可选
  "context": "ANSC 争议分析"  // 可选
}

架构

服务器采用模块化架构构建:

  • 领域检测器:识别分析的法律领域
  • 法律知识库:提供特定领域的指导和模板
  • 引用格式化器:正确格式化法律引用
  • 工具实现:处理每个工具的逻辑

开发

项目结构

mcp-cerebra-legal-server/
├── src/
│   ├── shared/           # 共享组件
│   │   ├── DomainDetector.ts
│   │   ├── LegalKnowledgeBase.ts
│   │   ├── CitationFormatter.ts
│   │   └── types.ts
│   ├── tools/            # 工具实现
│   │   ├── LegalThinkTool.ts
│   │   ├── LegalAskFollowupQuestionTool.ts
│   │   └── LegalAttemptCompletionTool.ts
│   ├── utils/            # 实用工具
│   │   └── logger.ts
│   └── index.ts          # 主服务器入口点
├── build/                # 编译后的 JavaScript
├── test-client.js        # 测试客户端
├── package.json
└── tsconfig.json

构建

npm run build

测试

# 运行测试客户端
./test-client.js

仓库

该项目可在 GitHub 上找到: https://github.com/yoda-digital/mcp-cerebra-legal-server

参考资料

许可证

MIT