Skip to main content
Glama
slapash

JurisCassation MCP Server

by slapash

JurisCassation API

GraphQL + REST обертка для juriscassation.cspj.ma — портала решений Кассационного суда Марокко.

Возможности

  • Живой поиск — проксирование запросов в реальном времени к арабскому поисковому эндпоинту

  • Локальный поиск — полнотекстовый поиск SQLite FTS5 по скачанным решениям

  • GraphQL API — типизированные запросы и мутации

  • PDF-прокси — кэширование и выдача PDF-файлов решений по зашифрованному ID

  • Фоновый парсер — индексация всех решений в локальную базу SQLite

Related MCP server: Entscheidsuche MCP Server

Быстрый старт

# 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

API эндпоинты

Эндпоинт

Описание

GET /graphql

GraphQL-песочница (интерактивная)

POST /graphql

GraphQL API

GET /api/pdf/{encrypted_id}

Скачивание PDF решения (проксировано + кэшировано)

GET /api/stats

Статистика локального индекса

GraphQL схема

Запросы (Queries)

# 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 }
  }
}

Мутации (Mutations)

# 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)
}

Палаты

ID

Арабский

Французский

Английский

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

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

Заметки по архитектуре

  • Арабский эндпоинт (/Decisions/RechercheDecisionsRes) возвращает зашифрованные атрибуты data-id, необходимые для скачивания PDF

  • Французский эндпоинт (/Decisions/RechercheDecisionsResFr) возвращает числовые ID idArretCassation, но не возвращает зашифрованные ID

  • PDF скачиваются через /Decisions/GetArret?encryptedId=... — аутентификация не требуется

  • Пустой параметр Sujet в арабском поиске возвращает 0 результатов; мы используем ا (алиф) в качестве универсального символа подстановки

  • SSL-сертификат на исходном сайте неисправен; требуется verify=False

Переменные окружения

Переменная

По умолчанию

Описание

JURIS_DB

/data/decisions.db

Путь к базе данных SQLite

JURIS_PDF_CACHE

/data/pdfs

Директория кэша PDF

JURIS_CONCURRENCY

3

Макс. количество одновременных запросов парсинга

JURIS_DELAY

0.5

Задержка между страницами парсинга (в секундах)

MCP-сервер

Сервер MCP (Model Context Protocol) предоставляет все функции API в качестве инструментов для ИИ-агентов через SSE на порту 5098.

MCP-эндпоинт: http://localhost:5098/sse

Инструменты

Инструмент

Описание

search_decisions

Живой поиск по juriscassation.cspj.ma

search_local

Поиск FTS5 по локальному индексу SQLite

get_decision_pdf

Проверка/скачивание PDF решения по зашифрованному ID

list_chambers

Список всех 7 палат с количеством записей

scrape_chamber

Индексация решений палаты

get_stats

Статистика локального индекса

Ресурсы

URI

Описание

juriscassation://chambers

Справочник палат (AR/FR/EN)

juriscassation://stats

Текущая статистика индекса

Переменные окружения MCP

Переменная

По умолчанию

Описание

JURIS_API_BASE

http://localhost:5091

Базовый URL GraphQL API

JURIS_DB

/mnt/data/juriscassation/decisions.db

Путь к SQLite (для прямого поиска)

MCP_PORT

5098

Порт MCP-сервера

MCP_HOST

0.0.0.0

Хост привязки MCP-сервера

MCP_TRANSPORT

sse

Тип транспорта (sse или streamable-http)

Тестирование с помощью 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

Развертывание

Приложение контейнеризировано и работает на порту 8000 внутри контейнера, который проброшен на порт 5091 хоста.

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