法律研究工具

一个基于Python的两部分应用程序,用于法律研究,展示模型上下文协议(MCP)的基本原理。

  • by zuhairabbas1
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 zuhairabbas1/legal-research-mcp

使用说明

法律研究MCP工具

一个由两部分组成的用于法律研究的Python应用程序,从第一原则演示了模型上下文协议(MCP)。

🎯 项目概述

该项目包括:

  1. MCP服务器 -一个基于Flask的服务器,它公开了一个谷歌搜索工具
  2. 客户端应用 -一个使用MCP服务器研究法律问题并使用OpenAI的GPT-4o-mini生成结构化摘要的脚本

📋 研究问题

该应用程序旨在回答:

“安大略省房东发出N12驱逐通知供‘房东自用’的关键要求是什么?恶意发出驱逐通知的潜在处罚是什么?”

🚀 安装说明

先决条件

  • Python 3.8或更高版本
  • pip(Python包管理器)
  • OpenAI API密钥

安装

  1. 创建项目文件夹

    mkdir legal-research-mcp
    cd legal-research-mcp
    
  2. 将所有文件复制到此文件夹中

    • mcp_server.py
    • 客户端.py
    • 需求.txt
    • README.md
  3. 安装依赖项

    pip install -r requirements.txt
    
  4. 设置OpenAI API密钥

    export OPENAI_API_KEY='your-api-key-here'
    

    或者在Windows上:

    set OPENAI_API_KEY=your-api-key-here
    

🎮 用法

步骤1:启动MCP服务器

打开终端并运行:

python mcp_server.py

您应该看到:

🚀 MCP Server starting on http://localhost:5000
📋 Available endpoints:
   - POST /tools/list - List available tools
   - POST /tools/call - Invoke a tool
   - GET /health - Health check

让这个终端继续运行!

步骤2:运行客户端应用程序

打开A 新终端 (在第一个服务器中保持服务器运行)并运行:

python client.py

客户将:

  1. 向MCP服务器发送搜索查询
  2. 接收原始搜索结果
  3. 创建一个结合问题和结果的提示
  4. 将其发送给OpenAI进行分析
  5. 显示结构化摘要

📁 项目结构

legal-research-mcp/
├── mcp_server.py       # Flask MCP server exposing Google Search tool
├── client.py           # Client application for legal research
├── requirements.txt    # Python dependencies
└── README.md          # This file

🔧 运作原理

MCP服务器(MCP_Server.py)

服务器从头开始实现MCP端点:

  • POST /tools/list -返回可用工具(google_search)
  • POST /tools/call -使用给定的参数执行工具

服务器接受以下格式的JSON请求:

{
  "name": "google_search",
  "arguments": {
    "query": "your search query"
  }
}

客户端应用程序(Client.py)

客户端遵循以下工作流程:

  1. 定义法律问题 -硬编码N12驱逐问题
  2. 调用MCP工具 -将HTTP POST发送到 /tools/call 使用搜索查询
  3. 接收结果 -获取已格式化的搜索结果
  4. 创建LLM提示 -将问题+结果组合成结构化提示
  5. 查询OpenAI -向GPT-4o-mini发送提示
  6. 显示输出 -打印结构化法律摘要

🐛 故障排除

“连接被拒绝”错误

  • 确保MCP服务器在端口5000上运行
  • 检查是否有其他应用程序正在使用端口5000

“OpenAI API密钥未设置”警告

  • 设置OPENAI_API_KEY环境变量
  • 确保在运行client.py的同一终端中导出/设置它

没有搜索结果

  • 当前的实现将模拟数据用于教育目的
  • 对于生产,与Google Custom Search API集成

🎓 学习目标

该项目教授:

  1. MCP协议基础 -了解MCP如何在HTTP/JSON级别工作
  2. 关注点分离 -区分工具执行(搜索)和解释(LLM)
  3. API集成 -同时使用自定义API(MCP)和第三方API(OpenAI)
  4. 结构化提示 -创建结合上下文和问题的有效提示

📝 许可证

这是一个教育项目。您可以根据需要自由使用和修改。


备注:本项目有意避免使用预构建的MCP库来从第一原则理解协议。