feat: production MCP server with Israeli legislation (multi-source)

Complete production implementation with shell+adapter architecture,
13 MCP tools, SQLite FTS5 search, and multi-source ingestion pipeline.

Ingestion fetches from UCI mirror, UNODC SHERLOC PDFs, and Knesset
mobile PDFs (135 provisions, 33 definitions). 3 acts with full text,
7 acts metadata-only due to gov.il/nevo.co.il access restrictions.
Knesset OData API used for metadata enrichment.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Mortalus
2026-02-19 20:40:01 +01:00
parent 21aa81d2b0
commit 1e28f8a6b1
41 changed files with 9136 additions and 51 deletions

View File

@@ -1,17 +1,20 @@
{
"$schema": "https://openapi.vercel.sh/vercel.json",
"buildCommand": "bash scripts/download-db.sh && npm run build",
"crons": [
{ "path": "/health", "schedule": "*/5 * * * *" }
],
"buildCommand": "npm run build",
"outputDirectory": ".",
"functions": {
"api/mcp.ts": {
"maxDuration": 30,
"memory": 1024,
"includeFiles": "{data/database.db,node_modules/node-sqlite3-wasm/dist/node-sqlite3-wasm.wasm}"
"includeFiles": "{data/database.db,node_modules/node-sqlite3-wasm/dist/node-sqlite3-wasm.wasm,node_modules/.pnpm/node-sqlite3-wasm*/node_modules/node-sqlite3-wasm/dist/node-sqlite3-wasm.wasm}"
}
},
"crons": [
{
"path": "/api/health",
"schedule": "*/5 * * * *"
}
"rewrites": [
{ "source": "/mcp", "destination": "/api/mcp" },
{ "source": "/health", "destination": "/api/health" },
{ "source": "/version", "destination": "/api/health?version=1" }
]
}