使用说明
MCP DJEN服务器
面向法学硕士的巴西智能法庭通知
一个生产就绪的MCP(模型上下文协议)服务器,用于标准化LLM代理和AI应用程序对巴西电子司法日记(DJEN)数据的访问。
🎯 现实世界影响
此服务器为 亲密 Pro 系统,处理 566条通知 (测试期)包括:
- 准确率86.7% 在综合回归测试(v1.5)中
- <4秒 平均响应时间
- 非常积极的投资回报率 法律团队
- 99.5%API成功率 生产中
- $0.45律师/月 运营成本
🌍 为什么国际公司关心
巴西的法律市场=28B美元的机会(IBGE 2025)。 我们的协议解决了以下司法数据访问问题:
- LegalTechs扩展到拉丁美洲 -用于区域扩展的标准化API
- 人工智能团队自动化合规 -生产就绪的法律数据集成
- 全球法律自动化 -其他司法管辖区的参考实施
国际用例:
- 墨西哥:AMLO法庭整合
- 葡萄牙:STJ里斯本数据管道
- 阿根廷:波德司法联邦一体化
📱 WhatsApp集成愿景
最终目标是让律师能够使用自然语言通过WhatsApp查询他们的法庭通知:
“今天的传票是什么?” → LLM → MCP服务器→ 结构化响应
这个MCP服务器是实现这一愿景的基础设施层。
🏗️ 建筑
流量:
- 法学硕士代理人要求法院通知
- MCP服务器查询DJEN API
- 数据被解析和标准化
- 结构化JSON返回LLM
🚀 快速开始
先决条件
- Python 3.11+
- Docker(可选)
- Git
地方发展设置
# Clone repository
git clone https://github.com/PdroBrandao/mcp-djen-server.git
cd mcp-djen-server
# Create virtual environment
python3 -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
# Set environment variables
cp .env.example .env
# Edit .env with your configuration
# Run server
python3 -m uvicorn app.main:app --reload --host 0.0.0.0 --port 8000
Docker设置
# Build and run with Docker
docker-compose up --build
# Or build manually
docker build -t mcp-djen-server .
docker run -p 8000:8000 mcp-djen-server
环境变量
# Server Configuration
PORT=8000
HOST=0.0.0.0
DEBUG=false
# DJEN API Configuration
DJEN_API_BASE_URL=https://comunicaapi.pje.jus.br/api/v1/comunicacao
DJEN_API_TIMEOUT=30
# Rate Limiting
RATE_LIMIT_PER_MINUTE=100
RATE_LIMIT_PER_HOUR=1000
# Logging
LOG_LEVEL=INFO
LOG_FILE=logs/app.log
# Security
CORS_ORIGINS=*
API_KEY_REQUIRED=false
🧪 测试
自动化测试
# Run all tests
python3 test_server.py
# Test specific endpoints
curl -X GET "http://localhost:8000/health"
curl -X GET "http://localhost:8000/intimations?name=PEDRO%20BRAND%C3%83O&date_start=2025-08-01&date_end=2025-08-06"
手动测试
# Health check
curl http://localhost:8000/health
# Get notifications
curl "http://localhost:8000/intimations?name=PEDRO%20BRAND%C3%83O&date_start=2025-08-01&date_end=2025-08-06"
# Get case details
curl http://localhost:8000/intimations/1234567-89.2024.8.13.0001
# Get available courts
curl http://localhost:8000/courts
📚 api参考
认证
目前,API已开放供开发。生产部署应实施:
- API密钥验证
- 每位客户的费率限制
- 请求日志记录和监控
端点
GET/健康
健康检查端点。
答复:
{
"status": "healthy",
"timestamp": "2025-08-06T17:48:25.231962",
"service": "mcp-djen-server"
}
获取/提示
为律师检索法庭通知。
参数:
name(必填):律师全名date_start(必填):开始日期(YYYY-MM-DD)date_end(必填):结束日期(YYYY-MM-DD)oab(可选):OAB注册号
答复:
[
{
"date": "2025-08-06",
"court": "TJMG",
"lawyer_name": "PEDRO BRANDÃO",
"oab": "123456/MG",
"case_number": "1234567-89.2024.8.13.0001",
"type": "TOMAR_CIÊNCIA",
"summary": "Intimação para ciência de despacho proferido em 05/08/2025",
"url": "https://www.tjmg.jus.br/djen/123",
"deadline": "15 days",
"actions": ["MANIFESTAR_SE", "CALCULAR_PRAZO"]
}
]
获取/通知/{case_number}
获取特定案例的详细信息。
GET/法院
获取可用法院列表。
🤖 LLM集成示例
OpenAI函数调用
import openai
import requests
# Configure OpenAI
openai.api_key = "your-api-key"
# Define the function
functions = [
{
"name": "get_court_notifications",
"description": "Get court notifications for a lawyer",
"parameters": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Lawyer's full name"
},
"date_start": {
"type": "string",
"description": "Start date (YYYY-MM-DD)"
},
"date_end": {
"type": "string",
"description": "End date (YYYY-MM-DD)"
}
},
"required": ["name", "date_start", "date_end"]
}
}
]
# User query
user_query = "Quais são as intimações do PEDRO BRANDÃO para hoje?"
# Call OpenAI
response = openai.ChatCompletion.create(
model="gpt-4",
messages=[{"role": "user", "content": user_query}],
functions=functions,
function_call="auto"
)
# Extract function call
if response.choices[0].message.function_call:
function_call = response.choices[0].message.function_call
# Call MCP Server
mcp_response = requests.get(
"https://your-mcp-server.railway.app/intimations",
params=json.loads(function_call.arguments)
)
notifications = mcp_response.json()
print(f"Found {len(notifications)} notifications for PEDRO BRANDÃO")
克劳德集成
import anthropic
import requests
client = anthropic.Anthropic(api_key="your-api-key")
# Define tool
tools = [
{
"name": "get_court_notifications",
"description": "Get court notifications for a lawyer",
"input_schema": {
"type": "object",
"properties": {
"name": {"type": "string"},
"date_start": {"type": "string"},
"date_end": {"type": "string"}
},
"required": ["name", "date_start", "date_end"]
}
}
]
# Call Claude
response = client.messages.create(
model="claude-3-sonnet-20240229",
max_tokens=1000,
messages=[{"role": "user", "content": "Quais são as intimações do PEDRO BRANDÃO para hoje?"}],
tools=tools
)
📊 数据结构
输入(DJEN API)
{
"siglaTribunal": "TJMG",
"texto": "PEDRO BRANDÃO",
"dataDisponibilizacaoInicio": "2025-08-01",
"dataDisponibilizacaoFim": "2025-08-06"
}
输出(MCP服务器)
[
{
"date": "2025-08-06",
"court": "TJMG",
"lawyer_name": "PEDRO BRANDÃO",
"oab": "123456/MG",
"case_number": "1234567-89.2024.8.13.0001",
"type": "TOMAR_CIÊNCIA",
"summary": "Intimação para ciência de despacho proferido em 05/08/2025",
"url": "https://www.tjmg.jus.br/djen/123",
"deadline": "15 days",
"actions": ["MANIFESTAR_SE", "CALCULAR_PRAZO"]
}
]
🔧 技术细节
性能指标
- 响应时间: 平均<4秒
- 吞吐量: 100个请求/分钟
- 正常运行时间: 99.9%(产量)
- 错误率: 0.5%(基于API实际性能)
应对DJEN特定挑战
1.API不稳定性
- 实际性能: 99.5%的成功率(5287/5288个请求)
- 响应时间: 平均95ms,99.30%<500ms
- 回退数据: 模拟发展响应
2.数据格式不一致
- 稳健解析: 处理各种DJEN格式
- 数据标准化: 标准化输出结构
- 错误恢复: 妥善处理格式错误的数据
3.利率限制
- 智能缓存: 减少API调用
- 请求批处理: 优化吞吐量
- 队列管理: 防止压倒性的DJEN
生产注意事项
安全
- API密钥验证: 生产所需
- 请求日志记录: 合规性审计跟踪
- 数据加密: TLS 1.3适用于所有通信
- 输入消毒: 防止注射攻击
监控
- 健康检查: 自动化监控
- 指标收集: 性能跟踪
- 警报系统: 主动问题检测
- 日志聚合: 集中化的日志
可扩展性和容错性
- 水平缩放: 无状态设计支持多个实例
- 负载平衡: 每天可接收10000多条通知
- 断路器: DJEN API故障的自动回退
- 缓存策略: Redis集成实现高吞吐量
- 数据库扩展: PostgreSQL用于生产工作负载
- CDN集成: 面向国际用户的全球内容交付
🗺️ Roadmap
第一阶段:核心功能(当前)
- ✅ 基本DJEN集成
- ✅ LLM函数调用
- ✅ 速率限制
- ✅ 健康检查
第二阶段:生产准备就绪(2025年第四季度)
- 🔄 真正的DJEN API集成
- 🔄 高级错误处理
- 🔄 综合测试
- 🔄 安全强化
第三阶段:高级功能(2026年第一季度)
- 📋 多法庭支持
- 📋 通知过滤
- 📋 截止日期计算
- 📋 文档生成
第四阶段:WhatsApp集成(2026年第二季度)
- 📱 通过WhatsApp进行自然语言查询
- 🤖 自主法律代理能力
- 📊 实时通知警报
- 🔗 CRM和日历集成
第五阶段:生态系统(2026年第三季度)
- 📋 插件系统
- 📋 第三方集成
- 📋 社区贡献
- 📋 企业特性
🧑💼 对未来的展望
中期目标是将该系统转变为巴西领先的法律情报平台,律师可以通过WhatsApp使用自然语言访问案件的全部状态、截止日期和细节。其愿景是发展成为一个自主的法律代理人,具有集成的RAG和自我评估功能,能够在没有人为验证标准通知的情况下以98%以上的准确率运行。
该MCP服务器是实现这一愿景的基础设施,通过标准化LLM代理人对巴西法院数据的访问。
🤝 贡献
我们欢迎捐款!请查看我们的 贡献指南 了解详情。
开发设置
# Fork and clone
git clone https://github.com/your-username/mcp-djen-server.git
cd mcp-djen-server
# Install development dependencies
pip install -r requirements-dev.txt
# Run tests
pytest
# Run linting
flake8 app/
black app/
代码规范
- 类型提示: 所有功能都需要
- 文档字符串 : 谷歌风格
- 测验: 90%+覆盖率
- Linting: 零警告
💼 业务影响
法律团队
- 节省时间: 将人工检查从每天30分钟减少到每天3分钟
- 准确度: 综合回归测试中为86.7%
- 顺从: 自动化审计跟踪
- 成本: 仅需0.45美元/律师/月(非常积极的投资回报率)
实际生产数据(2025年6月至7月)
| 度量 | 值 | 周期 |
|---|---|---|
| 平均成本/律师 | 每月0.45美元 | 过去30天 |
| 总分析 | 566 | 测试期 |
| 平均代币/分析 | 5217 | 每位律师 |
| 每次分析成本 | $0.0029 | 平均值 |
面向AI开发人员
- 标准化接口: 一致的API设计
- 生产就绪: 久经考验的可靠性
- 文档: 综合指南
- 技术支持: 活跃社区
对于LegalTech公司
- 集成: 易于LLM集成
- 定制: 灵活的体系结构
- 技术支持: 专业咨询
- 合作伙伴关系: 收入分享机会
📞 联系
- 作者 佩德罗 布兰登
- 电子邮件: hi@pdrobrandao.com
- 网站: https://www.pdrobrandao.com
- 领英: 佩德罗 布兰登
- github: @PdroBrandoo
- 亲密Pro: 仓库
📄 许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
内置于❤️ 巴西法律界