以色列法律数据API

提供以色列法律的搜索、章节获取和引用URL生成功能的REST和MCP服务。

  • by nadavshalev
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 nadavshalev/israel-law-api-mcp

使用说明

以色列法律数据API和MCP

REST和MCP服务,用于在希伯来语维基文库上搜索以色列法律、列出章节、获取章节文本和构建引用URL。


数据源和许可

免责声明

这是一个非官方的、由社区驱动的工具。 它的建立是为了改善公共法律数据的可访问性,但它不是官方的政府服务。

  1. 非法律建议: 本API提供的信息仅供参考,不构成法律意见。
  2. 不保证准确性: 虽然我们努力提供准确的数据,但法律文本可能不完整、未经审查或过时。

在本地运行

uvicorn api:app --reload

REST基本URL: http://127.0.0.1:8000/api

REST端点

  • GET /api/health
  • GET /api/laws/search?phrase=...&limit=10
  • GET /api/laws/{page_id}/sections
  • POST /api/laws/{page_id}/sections/text
  • POST /api/citations

搜索备注:

  • 法律搜索结果被过滤到法律主页上列出的标题(page_id=247)。该页面在本地缓存在 data/cache/page_247.json;如果无法获取并且不存在缓存,则搜索将返回错误。

例子:

curl --get \
  --data-urlencode "phrase=איסור עישון" \
  --data-urlencode "limit=5" \
  "http://127.0.0.1:8000/api/laws/search"

要请求全文,请传递 full: true 在JSON正文中:

curl -X POST "http://127.0.0.1:8000/api/laws/279238/sections/text" \
  -H "Content-Type: application/json" \
  -d '{"sections":["1","2"],"full":true}'

MCP(HTTP)

MCP端点: http://127.0.0.1:8000/mcp/

如果部署在公共域后面,请设置 MCP_ALLOWED_HOSTS 包括它。 例子:

MCP_ALLOWED_HOSTS=localhost:*,127.0.0.1:*,israel-law-api-mcp.sliplane.app:*

要允许所有主机(不建议用于公共部署),请禁用DNS重新绑定保护:

MCP_DNS_REBINDING_PROTECTION=false

MCP客户端配置示例:

{
  "mcpServers": {
    "israel-law": {
      "url": "http://127.0.0.1:8000/mcp/"
    }
  }
}

测试MCP客户端:

python3 scripts/test_mcp_client.py --server "http://127.0.0.1:8000/mcp/"

API检查助手:

BASE_URL=http://127.0.0.1:8000/api python3 scripts/check_api.py

码头工人

构建并运行(默认情况下为VPS本地访问):

docker compose up -d --build

容器读取 HOST 和 PORT 从 .env.

限制和安全

默认限制通过以下方式配置 .env 并按IP应用。您可以调整:

  • RATE_LIMIT_PER_IP 请求费率
  • MAX_SECTIONS_PER_REQUEST
  • MAX_SECTION_TEXT_CHARS
  • MAX_SEARCH_PHRASE_LEN
  • MAX_SEARCH_LIMIT
  • CONCURRENT_LIMIT_TOTAL 用于并发上限