Skip to content

Releases: fedec65/BetterCallClaudeMCP_Italy

BetterCallClaude Italia MCP v1.1.2

Choose a tag to compare

@fedec65 fedec65 released this 24 Aug 15:49
7e538e7

Corretto

  • Throttle vault solo sulle miss — Il controllo anti brute-force ora scatta solo quando la session_key non esiste: chi possiede una chiave valida non viene più bloccato quando il limite (20 miss/min) è raggiunto, eliminando il vettore di DoS verso gli altri utenti segnalato in review.

BetterCallClaude Italia MCP v1.1.1

Choose a tag to compare

@fedec65 fedec65 released this 24 Aug 15:15
3519cfc

Patch di sicurezza e robustezza a seguito della review automatizzata della 1.1.0.

Corretto

  • Keep-alive conforme alla regola 8 — La query Solr del keep-alive ora passa da fetchWithRetry (rate limiter condiviso) con retries: 1: i 4xx non vengono ritentati e il rilevamento 401/403 resta invariato.
  • Versione endpoint / — Non più hardcoded: letta dal package.json del package mcp-servers-http.

Sicurezza

  • Salt scrypt per-entry — La chiave AES-256-GCM è ora derivata da SESSION_STORE_SECRET + salt casuale per entry (le entry legacy senza salt restano leggibili via fallback al salt storico).
  • Passphrase min 16 caratterisession_key minima portata da 8 a 16 caratteri negli schemi dei tool session_*.
  • Throttle anti brute-force — Le miss del vault (session_key inesistenti) sono limitate a 20/min process-wide con errore esplicito.

BetterCallClaude Italia MCP v1.1.0

Choose a tag to compare

@fedec65 fedec65 released this 24 Aug 12:53
70e4a70

Aggiunto

  • Session vault ItalGiure (server cassazione) — Nuovi tool cassazione_session_set / cassazione_session_status / cassazione_session_delete: ogni utente registra il proprio cookie una volta sola associandolo a una session_key (passphrase). Cookie cifrato AES-256-GCM a riposo, passphrase salvata solo come hash SHA-256. I tool cassazione_search_massime e cassazione_get_sentenza accettano il nuovo parametro opzionale session_key (priorità: cookie > session_key > ITALGIURE_COOKIE > file).
  • Keep-alive sessioni — Ogni 6 ore una query Solr leggera per ciascun cookie registrato: mantiene vive le sessioni (sliding expiration) e marca scaduta su 401/403. Richiede SESSION_STORE_SECRET (e consigliato SESSION_STORE_PATH su volume Railway).

Corretto

  • Rate limiter condiviso tra tutti gli utenti (mcp-servers-http) — Mancava app.set('trust proxy', 1): dietro il proxy Railway req.ip era sempre l'IP dell'edge e il bucket 30 req/15min era globale, causando 429 sistematici e il fallimento dell'handshake dei connettori Claude.ai (errore ofid_...). Ora il limite MCP è 300 req/15min per IP utente, i metodi di handshake/discovery (initialize, tools/list, ping, notifications/*) non consumano quota, e la rotta MCP è esclusa dal limiter generale. Limiti configurabili via GENERAL_RATE_LIMIT_MAX / MCP_RATE_LIMIT_MAX.
  • CORS — Aggiunta https://claude.ai alla whitelist delle origini.

Migliorato

  • Fallback scraper robusti per i 3 server con accesso limitato:
    • corte-costituzionale — descrizione tool aggiornata con avviso anti-bot; fallback a URL diretti ECLI
    • giustizia-amministrativa — timeout fetch aumentato a 25s; fallback a URL DeJure open-access
    • cassazione — rilevamento rapido HTTP 403; fallback a ItalGiure + DeJure con URL completi nella risposta
  • DocumentazioneAGENTS.md aggiornato con tabella affidabilità fonti e strategia fallback

BetterCallClaude Italia v1.0.0

Choose a tag to compare

@fedec65 fedec65 released this 20 May 07:45

🚀 BetterCallClaude Italia — MCP Servers for Italian Legal Research

Release Date: 2026-05-19

What is this?

A suite of 7 Model Context Protocol (MCP) servers that let AI assistants (Claude, Cursor, etc.) search and interact with Italian legal databases directly.


📦 Included Servers

Server Source Capabilities
normattiva api.normattiva.it Open Data Search legislation, get act details, list typologies
eur-lex-ita EUR-Lex CELLAR SPARQL Search EU acts in Italian by CELEX, type, date range, EuroVoc
corte-costituzionale cortecostituzionale.it Search Constitutional Court decisions (with URL fallback for anti-bot protection)
giustizia-amministrativa giustizia-amministrativa.it Search administrative justice decisions
cassazione cortedicassazione.it Search Court of Cassation decisions (public portion + ItalGiure fallback)
legal-citations-ita Local logic Validate, parse, and format Italian legal citations
legal-persona-ita Templates Draft legal documents with structured templates

🏗️ Architecture

  • HTTP Aggregator: Single Express app mounts all 7 servers via StreamableHTTPServerTransport (MCP protocol 2025-06-18)
  • Shared utilities: LRU cache, rate limiting, HTTP retry client
  • Health endpoint: GET /health returns all registered servers
  • Docker: Multi-stage build on node:20-alpine
  • Deployment: Ready for Railway via railway.toml

🧪 Quality

  • 29 tests passing across 11 test files (Vitest 4.1.6)
  • TypeScript 5.5+ strict mode
  • CI/CD with GitHub Actions (Node 20.x + 22.x, lint, Docker build + healthcheck)

📚 Documentation


🐳 Quick Start

Clone, install, test, build, run:

git clone https://github.com/fedec65/BetterCallClaudeMCP_Italy.git
cd BetterCallClaudeMCP_Italy
npm ci
npm run test:run
npm run build --workspaces
docker build -f mcp-servers-http/Dockerfile -t bettercallclaude-italy .
docker run -p 8080:8080 bettercallclaude-italy

⚖️ License

AGPL-3.0-or-later

🔗 Links