Skip to main content
Glama
slapash

JurisCassation MCP Server

by slapash

API de JurisCassation

Wrapper de GraphQL + REST para juriscassation.cspj.ma — el portal de decisiones del Tribunal de Casación de Marruecos.

Características

  • Búsqueda en vivo — paso directo en tiempo real al endpoint de búsqueda en árabe

  • Búsqueda local — búsqueda de texto completo FTS5 en SQLite sobre las decisiones extraídas

  • API GraphQL — consultas y mutaciones con seguridad de tipos

  • Proxy de PDF — almacena en caché y sirve los PDF de las decisiones mediante un ID cifrado

  • Scraper en segundo plano — indexa todas las decisiones en una base de datos SQLite local

Related MCP server: Entscheidsuche MCP Server

Inicio rápido

# Docker (GraphQL API on port 5091)
docker compose up -d

# Or direct
pip install -r requirements.txt
python app.py serve --port 8000

# MCP Server (port 5098, SSE transport)
# Via systemd:
sudo systemctl start juriscassation-mcp

# Or direct:
JURIS_API_BASE=http://localhost:5091 python mcp_server.py

Endpoints de la API

Endpoint

Descripción

GET /graphql

Entorno de pruebas de GraphQL (interactivo)

POST /graphql

API GraphQL

GET /api/pdf/{encrypted_id}

Descargar PDF de la decisión (proxy + caché)

GET /api/stats

Estadísticas del índice local

Esquema GraphQL

Consultas

# Live search against the Moroccan portal (real-time)
query {
  searchLive(chamberId: 1, sujet: "طلاق", lang: "ar", page: 1) {
    total
    page
    perPage
    items {
      encryptedId
      dossierNumber
      decisionNumber
      decisionDate
      keywordsAr
      pdfUrl
    }
  }
}

# Search the local SQLite index
query {
  searchLocal(query: "طلاق", chamberId: 1, page: 1, perPage: 20) {
    total
    page
    perPage
    items {
      id
      encryptedId
      dossierNumber
      decisionNumber
      decisionDate
      keywordsAr
      pdfUrl
    }
  }
}

# List chambers with decision counts
query {
  chambers {
    id
    nameAr
    nameFr
    nameEn
    decisionCount
  }
}

# Scraper/indexer status
query {
  scraperStatus {
    totalDecisions
    lastScrape
    chambers { id nameFr decisionCount }
  }
}

Mutaciones

# Scrape decisions from a chamber (Arabic endpoint with alef wildcard)
mutation {
  scrapeChamber(chamberId: 1, maxPages: 5)
}

# Scrape all pages
mutation {
  scrapeChamber(chamberId: 1, maxPages: 0)
}

Salas

ID

Árabe

Francés

Inglés

1

الغرفة المدنية

Chambre Civile

Civil

2

غرفة الأحوال الشخصية و الميراث

Statut Personnel & Successions

Personal Status & Inheritance

3

الغرفة التجارية

Chambre Commerciale

Commercial

4

الغرفة الإدارية

Chambre Administrative

Administrative

5

الغرفة الاجتماعية

Chambre Sociale

Social

6

الغرفة الجنائية

Chambre Pénale

Criminal

7

الغرفة العقارية

Chambre Immobilière

Real Estate

Scraper CLI

# Scrape chamber 1 (all pages)
python app.py scrape --chamber 1

# Scrape all chambers, max 50 pages each
python app.py scrape --chamber 0 --max-pages 50

# Scrape from page 100 onwards
python app.py scrape --chamber 6 --since-page 100

Notas de arquitectura

  • El endpoint en árabe (/Decisions/RechercheDecisionsRes) devuelve atributos data-id cifrados necesarios para la descarga de PDF

  • El endpoint en francés (/Decisions/RechercheDecisionsResFr) devuelve IDs numéricos idArretCassation pero no IDs cifrados

  • Los PDF se descargan a través de /Decisions/GetArret?encryptedId=... — no se requiere autenticación

  • Un Sujet vacío en la búsqueda en árabe devuelve 0 resultados; usamos ا (alef) como comodín general

  • El certificado SSL en el sitio upstream está roto; se requiere verify=False

Variables de entorno

Variable

Predeterminado

Descripción

JURIS_DB

/data/decisions.db

Ruta de la base de datos SQLite

JURIS_PDF_CACHE

/data/pdfs

Directorio de caché de PDF

JURIS_CONCURRENCY

3

Máximo de solicitudes de scraping concurrentes

JURIS_DELAY

0.5

Retraso entre páginas de scraping (segundos)

Servidor MCP

Un servidor MCP (Model Context Protocol) expone todas las funciones de la API como herramientas para agentes de IA a través de SSE en el puerto 5098.

Endpoint MCP: http://localhost:5098/sse

Herramientas

Herramienta

Descripción

search_decisions

Búsqueda en vivo en juriscassation.cspj.ma

search_local

Búsqueda FTS5 sobre el índice SQLite local

get_decision_pdf

Comprobar/descargar un PDF de decisión por ID cifrado

list_chambers

Listar las 7 salas con recuentos de índice

scrape_chamber

Indexar decisiones de una sala

get_stats

Estadísticas del índice local

Recursos

URI

Descripción

juriscassation://chambers

Lista de referencia de salas (AR/FR/EN)

juriscassation://stats

Estadísticas actuales del índice

Variables de entorno MCP

Variable

Predeterminado

Descripción

JURIS_API_BASE

http://localhost:5091

URL base de la API GraphQL

JURIS_DB

/mnt/data/juriscassation/decisions.db

Ruta de SQLite (para búsqueda directa)

MCP_PORT

5098

Puerto del servidor MCP

MCP_HOST

0.0.0.0

Host de enlace del servidor MCP

MCP_TRANSPORT

sse

Tipo de transporte (sse o streamable-http)

Probar con mcporter

# List tools
npx mcporter list --http-url http://localhost:5098/sse --allow-http --schema

# Search
npx mcporter call search_decisions sujet=طلاق chamber_id=1 --allow-http --http-url http://localhost:5098/sse

Despliegue

La aplicación está contenerizada y se ejecuta en el puerto 8000 internamente, mapeado al puerto 5091 del host.

F
license - not found
Not graded
quality - not tested
D
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • Real-time Amazon, WIPO & PACER data for AI agents — 19 tools via the MCP protocol.

  • The best web search for your AI Agent

  • Web search, page extraction and structured commerce, social and business data for AI agents

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/slapash/juriscassation-api'

If you have feedback or need assistance with the MCP directory API, please join our Discord server