面向LLM的智能巴西法院通知系统
这是一个生产就绪的MCP(模型上下文协议)服务器,标准化了对巴西电子司法日记(DJEN)数据的访问,适用于LLM代理和AI应用程序。
此服务器支持**Intimação Pro系统,在测试期间处理了566个通知**,具有以下特点:
巴西法律市场 = 280亿美元机会(IBGE 2025年)。 我们的协议解决了司法数据访问问题:
国际用例:
最终目标是使律师能够通过WhatsApp使用自然语言查询他们的法院通知:
"我今天的传票是什么?" → LLM → MCP服务器 → 结构化回复
这个MCP服务器是实现这一愿景的基础架构层。

流程:


# 克隆仓库
git clone https://github.com/PdroBrandao/mcp-djen-server.git
cd mcp-djen-server
# 创建虚拟环境
python3 -m venv venv
source venv/bin/activate # 在Windows上:venv\Scripts\activate
# 安装依赖
pip install -r requirements.txt
# 设置环境变量
cp .env.example .env
# 编辑.env以进行您的配置
# 运行服务器
python3 -m uvicorn app.main:app --reload --host 0.0.0.0 --port 8000
# 使用Docker构建和运行
docker-compose up --build
# 或手动构建
docker build -t mcp-djen-server .
docker run -p 8000:8000 mcp-djen-server
# 服务器配置
PORT=8000
HOST=0.0.0.0
DEBUG=false
# DJEN API配置
DJEN_API_BASE_URL=https://comunicaapi.pje.jus.br/api/v1/comunicacao
DJEN_API_TIMEOUT=30
# 速率限制
RATE_LIMIT_PER_MINUTE=100
RATE_LIMIT_PER_HOUR=1000
# 日志
LOG_LEVEL=INFO
LOG_FILE=logs/app.log
# 安全
CORS_ORIGINS=*
API_KEY_REQUIRED=false
# 运行所有测试
python3 test_server.py
# 测试特定端点
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"
# 健康检查
curl http://localhost:8000/health
# 获取通知
curl "http://localhost:8000/intimations?name=PEDRO%20BRAND%C3%83O&date_start=2025-08-01&date_end=2025-08-06"
# 获取案件详情
curl http://localhost:8000/intimations/1234567-89.2024.8.13.0001
# 获取可用法院
curl http://localhost:8000/courts
目前,API对开发开放。生产部署应实现:
健康检查端点。
响应:
{
"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": "关于2025年8月5日发布的裁决的通知",
"url": "https://www.tjmg.jus.br/djen/123",
"deadline": "15天",
"actions": ["MANIFESTAR_SE", "CALCULAR_PRAZO"]
}
]
获取特定案件的详细信息。
获取可用法院列表。
import openai
import requests
# 配置OpenAI
openai.api_key = "your-api-key"
# 定义函数
functions = [
{
"name": "get_court_notifications",
"description": "获取律师的法院通知",
"parameters": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "律师全名"
},
"date_start": {
"type": "string",
"description": "起始日期(YYYY-MM-DD)"
},
"date_end": {
"type": "string",
"description": "结束日期(YYYY-MM-DD)"
}
},
"required": ["name", "date_start", "date_end"]
}
}
]
# 用户查询
user_query = "PEDRO BRANDÃO今天有哪些传票?"
# 调用OpenAI
response = openai.ChatCompletion.create(
model="gpt-4",
messages=[{"role": "user", "content": user_query}],
functions=functions,
function_call="auto"
)
# 提取函数调用
if response.choices[0].message.function_call:
function_call = response.choices[0].message.function_call
# 调用MCP服务器
mcp_response = requests.get(
"https://your-mcp-server.railway.app/intimations",
params=json.loads(function_call.arguments)
)
notifications = mcp_response.json()
print(f"找到{len(notifications)}条PEDRO BRANDÃO的通知")
import anthropic
import requests
client = anthropic.Anthropic(api_key="your-api-key")
# 定义工具
tools = [
{
"name": "get_court_notifications",
"description": "获取律师的法院通知",
"input_schema": {
"type": "object",
"properties": {
"name": {"type": "string"},
"date_start": {"type": "string"},
"date_end": {"type": "string"}
},
"required": ["name", "date_start", "date_end"]
}
}
]
# 调用Claude
response = client.messages.create(
model="claude-3-sonnet-20240229",
max_tokens=1000,
messages=[{"role": "user", "content": "PEDRO BRANDÃO今天有哪些传票?"}],
tools=tools
)
{
"siglaTribunal": "TJMG",
"texto": "PEDRO BRANDÃO",
"dataDisponibilizacaoInicio": "2025-08-01",
"dataDisponibilizacaoFim": "2025-08-06"
}
[
{
"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": "关于2025年8月5日发布的裁决的通知",
"url": "https://www.tjmg.jus.br/djen/123",
"deadline": "15天",
"actions": ["MANIFESTAR_SE", "CALCULAR_PRAZO"]
}
]

中期目标是将该系统转变为巴西领先的法律智能平台,律师可以通过WhatsApp使用自然语言访问其案件的全部状态、期限和详细信息。愿景是发展成一个自主法律代理,具备RAG集成和自我评估能力,能够在无需人工验证的情况下以98%以上的准确性处理标准通知。
这个MCP服务器是实现这一愿景的基础架构,通过标准化访问巴西法院数据来支持LLM代理。
我们欢迎贡献!请参阅我们的贡献指南了解详情。
# 分叉并克隆
git clone https://github.com/your-username/mcp-djen-server.git
cd mcp-djen-server
# 安装开发依赖
pip install -r requirements-dev.txt
# 运行测试
pytest
# 运行代码检查
flake8 app/
black app/
| 指标 | 数值 | 时期 |
|---|---|---|
| 平均律师成本 | $0.45/月 | 最近30天 |
| 总分析次数 | 566 | 测试期 |
| 每律师平均令牌数 | 5,217 | 每律师 |
| 每次分析成本 | $0.0029 | 平均 |
本项目采用MIT许可 - 详见LICENSE文件。
为巴西法律界打造的爱心之作