Skip to main content
Glama
README.md
# Scroll MCP Server v0.2

🎯 **Vesuvius Challenge submission** β€” Automated quality audit & corpus navigation for the Herculaneum scrolls.

MCP Server for the Vesuvius Challenge papyrological corpus & open data.

Exposes scroll metadata, transcriptions, CT volumes, ML models, and documentation via the [Model Context Protocol](https://modelcontextprotocol.io).

## Quick Start

```bash
pip install scroll-mcp-server
scroll-mcp-server
```

Or with Claude Desktop β€” add to your `claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "scroll": {
      "command": "scroll-mcp-server"
    }
  }
}
```

## URI Scheme

```
scroll://                    β†’ Root
β”œβ”€β”€ catalog/scrolls          β†’ Scroll inventory
β”œβ”€β”€ catalog/vocabulary       β†’ Papyrological glossary
β”œβ”€β”€ scroll/{id}/metadata     β†’ Scroll metadata
β”œβ”€β”€ scroll/{id}/transcriptions β†’ Deciphered text
β”œβ”€β”€ scroll/{id}/volumes      β†’ CT scan info
β”œβ”€β”€ model/ink-detection      β†’ ML models
β”œβ”€β”€ docs/tutorials           β†’ Tutorials
β”œβ”€β”€ docs/formats/tifxyz      β†’ Format specs
└── docs/open-problems       β†’ Research challenges
```

## Tools

| Tool | Description |
|---|---|
| `search_corpus` | Search transcriptions & metadata |
| `get_scroll_catalog` | Filtered scroll inventory |
| `get_segment_data` | Segment metadata + download links |
| `get_tutorial` | Tutorial content |
| `get_format_spec` | Technical format specification |
| `get_model_info` | ML model metadata |
| `list_available_models` | Filtered model list |

## Prompts

| Prompt | Purpose |
|---|---|
| `explain_papyrus_context` | Historical/philosophical context of a passage |
| `suggest_research_direction` | Research recommendations from corpus state |

## Architecture

```
Client β†’ FastMCP β†’ ScrollDataLayer β†’ Catalog (JSON) + Vesuvius (streaming) + Cache (LRU)
```

- **Catalogue JSON** β€” Lightweight index (~50 KB) for instant metadata responses
- **Data Layer** β€” Orchestrator with LRU cache, routes to the right source
- **Vesuvius Client** β€” Streaming proxy for CT volumes (no local storage)

## Development

```bash
git clone https://github.com/zengdard/scroll-mcp-server
cd scroll-mcp-server
pip install -e .
pytest tests/ -v
```

## Real Example β€” Scroll 1 Segment Audit

Un exemple complet avec donnΓ©es rΓ©elles du Scroll 1 (PHerc. Paris 4) est dans [`examples/`](./examples/) :

```bash
# Audit du mesh noisy (84k vertices) contre le volume CT
python examples/audit_demo.py --quick
```

RΓ©sultat :

```
Quality score:    0.431  ← mesh bruitΓ©, besoin de raffinement
Mean confidence:  0.942  ← bonne qualitΓ© CT
Mean distance:    3.88 voxels
πŸ”΄ CRITIQUE β€” 55650 vertices en drift
🟒 ANCRE β€” 6418 vertices stables
```

Voir le rapport complet : [`examples/AUDIT_REPORT.md`](./examples/AUDIT_REPORT.md)

## Submission

Ce projet est soumis au Scroll Prize. Voir [`SUBMISSION.md`](./SUBMISSION.md) pour les dΓ©tails.

- **Team**: Individual β€” zengdard
- **Repo 1**: https://github.com/zengdard/scroll-mcp-server
- **Repo 2**: https://github.com/zengdard/scroll-label-refiner

## License

MIT