法律研究MCP工具
一个由两部分组成的用于法律研究的Python应用程序,从第一原则演示了模型上下文协议(MCP)。
🎯 项目概述
该项目包括:
- MCP服务器 -一个基于Flask的服务器,它公开了一个谷歌搜索工具
- 客户端应用 -一个使用MCP服务器研究法律问题并使用OpenAI的GPT-4o-mini生成结构化摘要的脚本
📋 研究问题
该应用程序旨在回答:
“安大略省房东发出N12驱逐通知供‘房东自用’的关键要求是什么?恶意发出驱逐通知的潜在处罚是什么?”
🚀 安装说明
先决条件
- Python 3.8或更高版本
- pip(Python包管理器)
- OpenAI API密钥
安装
- 创建项目文件夹
mkdir legal-research-mcp
cd legal-research-mcp- 将所有文件复制到此文件夹中
- mcp_server.py - 客户端.py - 需求.txt - README.md
- 安装依赖项
pip install -r requirements.txt- 设置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客户将:
- 向MCP服务器发送搜索查询
- 接收原始搜索结果
- 创建一个结合问题和结果的提示
- 将其发送给OpenAI进行分析
- 显示结构化摘要
📁 项目结构
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)
客户端遵循以下工作流程:
- 定义法律问题 -硬编码N12驱逐问题
- 调用MCP工具 -将HTTP POST发送到
/tools/call使用搜索查询 - 接收结果 -获取已格式化的搜索结果
- 创建LLM提示 -将问题+结果组合成结构化提示
- 查询OpenAI -向GPT-4o-mini发送提示
- 显示输出 -打印结构化法律摘要
🐛 故障排除
“连接被拒绝”错误
- 确保MCP服务器在端口5000上运行
- 检查是否有其他应用程序正在使用端口5000
“OpenAI API密钥未设置”警告
- 设置OPENAI_API_KEY环境变量
- 确保在运行client.py的同一终端中导出/设置它
没有搜索结果
- 当前的实现将模拟数据用于教育目的
- 对于生产,与Google Custom Search API集成
🎓 学习目标
该项目教授:
- MCP协议基础 -了解MCP如何在HTTP/JSON级别工作
- 关注点分离 -区分工具执行(搜索)和解释(LLM)
- API集成 -同时使用自定义API(MCP)和第三方API(OpenAI)
- 结构化提示 -创建结合上下文和问题的有效提示
📝 许可证
这是一个教育项目。您可以根据需要自由使用和修改。
______________________________________________________________________
备注:本项目有意避免使用预构建的MCP库来从第一原则理解协议。
