法律数据库访问服务器

一个提供对CourtListener法律数据库和电子联邦法规(eCFR)的LLM友好访问的服务器,支持法律意见、法院案例、法官、法律文件和联邦法规的搜索与检索,用于精确的法律研究和引用验证。

  • by martyvasquez
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 martyvasquez/CourtListener-FastMCP-Cloud

使用说明

法庭监听MCP服务器

一种模型上下文协议(MCP)服务器,通过官方CourtListener API v4提供对CourtListener法律数据库和联邦法规电子代码(eCFR)的LLM友好访问。该服务器能够搜索和检索法律意见、法庭案件、法官、法律文件和联邦法规,以进行精确的法律研究和引文验证。

🎯 目的

CourtListener MCP服务器提供对以下内容的全面访问 法律案件数据、法院意见和联邦法规 通过广泛的CourtListener和eCFR数据库。CourtListener包含来自联邦和州法院的数百万份法律意见,而eCFR则提供最新的联邦法规。

📋 关键优势

  • 综合法律数据库:
    • 获取数百万份法院意见和法律裁决
    • 联邦和州法院的覆盖范围
    • 来自法院系统的实时更新
  • 全文内容:
    • 完整的引文验证意见文本
    • 结构化法律文件组织
    • 丰富的元数据,包括法官、法院和日期
  • 监管研究:
    • 搜索和检索当前的联邦法规
    • 验证监管引用和参考文献
  • 法律研究:
    • 按法官、法院、案件名称或内容搜索
    • 核实确切的法律语言和先例
    • 验证法律引用和参考文献

🛠️ 可用的MCP工具

CourtListener MCP服务器提供了这些生产就绪工具(参见 app/README.md 有关详细信息和参数):

  • 意见和案例搜索:
    • search_opinions --搜索法律意见和法院判决
    • search_dockets --搜索法院案件和备审案件
    • search_dockets_with_documents --使用嵌套文档搜索日程表
    • search_recap_documents --搜索RECAP文件
    • search_audio --搜索口头辩论音频
    • search_people --搜寻法官和法律专业人士
  • 实体检索:
    • get_opinion, get_docket, get_audio, get_court, get_person, get_cluster
  • 引用和监管工具:
    • lookup_citation, batch_lookup_citations, verify_citation_format, parse_citation_with_citeurl, extract_citations_from_text, enhanced_citation_lookup
    • list_titles, list_agencies, search_regulations, list_all_corrections, list_corrections_by_title, get_search_suggestions, get_search_summary, get_title_search_counts, get_daily_search_counts, get_ancestry, get_title_structure, get_source_xml, get_source_json
  • 系统与健康:
    • status, get_api_status, health_check

看 app/README.md 获取所有工具、参数和使用示例的完整参考。

📦 安装

先决条件

  • Python 3.12+
  • 紫外线 用于依赖关系管理
  • 用于访问CourtListener API的Internet连接

使用uv进行安装

# Clone the repository
 git clone <repository-url>
 cd CourtListener

# Install dependencies
 uv sync

# Activate the environment (optional)
 uv shell

环境配置

创建一个 .env 项目根目录中的文件:

COURTLISTENER_BASE_URL=https://www.courtlistener.com/api/rest/v4/
COURT_LISTENER_TIMEOUT=30
LOG_LEVEL=INFO
RATE_LIMIT_REQUESTS=10
RATE_LIMIT_PERIOD=60
DEBUG=false
MCP_PORT=8765
MCP_DEV_PORT=8766

运行服务器

默认情况下,服务器现在使用可流式传输的http运行:

uv run python -m app.server

这将在以下位置启动服务器:

  • 主机: 0.0.0.0 (可通过外部连接访问)
  • 端口: 8000
  • 端点: http://localhost:8000/mcp/

或者使用VS Code任务: 运行MCP服务器

连接到服务器

使用流式http传输时,客户端可以使用以下方式连接到服务器:

from fastmcp import Client

async with Client("http://localhost:8000/mcp/") as client:
    result = await client.call_tool("status")
    print(result)

💡 使用示例

看 app/README.md 有关详细的工具使用和示例,包括搜索、引用和监管查询。

🐳 Docker设置

# Production
 docker-compose up -d
# Development with hot reload
 docker-compose --profile dev up --build

🧪 测试

uv run pytest
uv run pytest --cov=app --cov-report=term-missing

看 测试/README.md 有关测试套件的详细信息、覆盖范围和故障排除。

🔧 发展

uv run ruff format .
uv run ruff check .
uv run mypy app/
uv run pip-audit

🚨 故障排除

看 app/README.md 和 测试/README.md 用于故障排除和高级使用。

📚 文档


准备使用! CourtListener MCP服务器通过20多种全面的MCP工具提供对联邦法规和法律数据的生产就绪访问。