# Resources

Graded passages, works and sections as MCP resources, listed with resources/list and read with resources/read.

Canonical: https://interlinea.aeterna-institute.org/docs/mcp/resources

Besides its tools, the server offers the library as resources. A client can list the graded passages and the best-known works, and read any work or section by its URI. A resource holds the same JSON as the matching tool answer.

## Templates

| URI template | Holds |
|---|---|
| `interlinea://read/{lang}/{slug}` | Graded passage: A graded passage's text, citation and credit as JSON. |
| `interlinea://library/{lang}/{author}/{work}` | Work: A work's editions, credit and contents (the first 200 sections) as JSON. |
| `interlinea://library/{lang}/{author}/{work}/{ref}` | Section: A section's text, citation and credit as JSON. |

`{lang}` is `latin` or `greek`, and the other parts are the slugs in Interlinea's URLs, so `/library/latin/virgil/aeneid/1.46` is `interlinea://library/latin/virgil/aeneid/1.46`.

## Listing

`resources/list` returns the graded passages and the works on the library shelf:

```sh
curl https://interlinea.aeterna-institute.org/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"resources/list","params":{}}'
```

Response:

```json
{
  "result": {
    "resources": [
      {
        "title": "Let There Be Light (Vulgate (Jerome), Genesis 1.1–5)",
        "description": "Graded passage, level 1. Creation’s first day in plain, rhythmic Church Latin.",
        "mimeType": "application/json",
        "uri": "interlinea://read/latin/genesis-creation",
        "name": "genesis-creation"
      },
      {
        "title": "The Ark on the Sea (Francis Ritchie, Fabulae Faciles, Perseus 1)",
        "description": "Graded passage, level 1. A baby hero, a fearful grandfather, a chest cast adrift.",
        "mimeType": "application/json",
        "uri": "interlinea://read/latin/ritchie-perseus-ark",
        "name": "ritchie-perseus-ark"
      },
      {
        "title": "The Wolf and the Lamb (Phaedrus, Fabulae 1.1)",
        "description": "Graded passage, level 2. Aesop’s grimmest fable. The strong always find an excuse.",
        "mimeType": "application/json",
        "uri": "interlinea://read/latin/phaedrus-wolf-lamb",
        "name": "phaedrus-wolf-lamb"
      },
      // 56 more
    ]
  },
  "jsonrpc": "2.0",
  "id": 1
}
```

## Reading

```sh
curl https://interlinea.aeterna-institute.org/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"resources/read","params":{"uri":"interlinea://read/latin/virgil-aeneid"}}'
```

Response:

```json
{
  "result": {
    "contents": [
      {
        "uri": "interlinea://read/latin/virgil-aeneid",
        "mimeType": "application/json",
        "text": "{\"kind\":\"passage\",\"lang\":\"la\",\"language\":\"Latin\",\"title\":\"Arms and the Man\",\"citation\":\"Virgil, Aeneid 1.1–11\",\"ref\":null,\"level\":4,\"urn\":\"u…"
      }
    ]
  },
  "jsonrpc": "2.0",
  "id": 1
}
```

The text of each item is JSON: here, the same object [`get_text`](https://interlinea.aeterna-institute.org/docs/mcp/get_text.md) returns.

---

Previous: [The graded path](https://interlinea.aeterna-institute.org/docs/mcp/list_passages.md)
Next: [REST API](https://interlinea.aeterna-institute.org/docs/api.md)
