Skip to content
Get startedQuickstartDocs menu

Quickstart

Connect an assistant over MCP, call the JSON API, or fetch Markdown. Each takes one step and no key.

Pick the way in that suits you. All three read the same library and return the same citations and credits.

MCP

The MCP server speaks the Model Context Protocol over Streamable HTTP. It needs no sign-in and keeps no session. Its address:

Server URL: https://interlinea.aeterna-institute.org/mcp

Add it to your client

claude mcp add --transport http interlinea https://interlinea.aeterna-institute.org/mcp
  • Claude Code: run the command once. /mcp inside Claude Code then lists the server and its tools.
  • Claude Desktop and Claude on the web: open Settings, then Connectors, choose Add custom connector and paste the server URL. On a plan without custom connectors, the config file above runs the server through mcp-remote instead.
  • ChatGPT: turn on developer mode in the connector settings, then create a connector with the server URL and no authentication.
  • Cursor: put the entry in ~/.cursor/mcp.json, or in .cursor/mcp.json for one project.
  • VS Code: put the entry in .vscode/mcp.json, or run MCP: Add Server from the command palette.

Then ask, for example, “Read me the opening of the Aeneid and parse the first line.” The assistant finds the work with search_library, reads it with get_text and parses it with get_analysis.

One real call

Under the hood a client sends JSON-RPC. This is the tools/call for get_text that a client sends, as plain HTTP:

curl
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":"tools/call","params":{"name":"get_text","arguments":{"ref":"Virgil, Aeneid 1.46"}}}'
Response
{
  "result": {
    "content": [
      {
        "type": "text",
        "text": "{\"kind\":\"section\",\"lang\":\"la\",\"language\":\"Latin\",\"title\":\"Aeneid 1.46-86\",\"citation\":\"Virgil, Aeneid 1.46-86\",\"ref\":\"1.46\",\"level\":null,\"urn…"
      }
    ],
    "structuredContent": {
      "kind": "section",
      "lang": "la",
      "language": "Latin",
      "title": "Aeneid 1.46-86",
      "citation": "Virgil, Aeneid 1.46-86",
      "ref": "1.46",
      "level": null,
      "urn": "urn:cts:latinLit:phi0690.phi003.perseus-lat2:1.46-1.86",
      "url": "https://interlinea.aeterna-institute.org/library/latin/virgil/aeneid/1.46",
      "api": "https://interlinea.aeterna-institute.org/api/v1/library/latin/virgil/aeneid/1.46",
      "markdown": "https://interlinea.aeterna-institute.org/library/latin/virgil/aeneid/1.46.md",
      "author": {
        "name": "Virgil",
        "url": "https://interlinea.aeterna-institute.org/library/latin/virgil"
      },
      "work": {
        "title": "Aeneid",
        "url": "https://interlinea.aeterna-institute.org/library/latin/virgil/aeneid",
        "urn": "urn:cts:latinLit:phi0690.phi003"
      },
      "verse": true,
      "words": 276,
      "text": "Ast ego, quae divom incedo regina, Iovisque\net soror et coniunx, una cum gente tot annos\nbella gero! Et quisquam numen Iunonis adoret\npraete…",
      "prev": {
        "citation": "Aeneid 1.1-45",
        "label": "Lines 1.1-1.45",
        "url": "https://interlinea.aeterna-institute.org/library/latin/virgil/aeneid/1.1",
        "api": "https://interlinea.aeterna-institute.org/api/v1/library/latin/virgil/aeneid/1.1"
      },
      "next": {
        "citation": "Aeneid 1.87-130",
        "label": "Lines 1.87-1.130",
        "url": "https://interlinea.aeterna-institute.org/library/latin/virgil/aeneid/1.87",
        "api": "https://interlinea.aeterna-institute.org/api/v1/library/latin/virgil/aeneid/1.87"
      },
      "credit": {
        "text": "Virgil, Aeneid, ed. J. B. Greenough. Text: the Perseus Digital Library, canonical-latinLit, CC BY-SA 4.0. Changes: apostrophes normalised an…",
        "license": "CC BY-SA 4.0",
        "licenseUrl": "https://creativecommons.org/licenses/by-sa/4.0/",
        "source": "https://github.com/PerseusDL/canonical-latinLit/blob/master/data/phi0690/phi003/phi0690.phi003.perseus-lat2.xml",
        "quality": "proofread"
      }
    }
  },
  "jsonrpc": "2.0",
  "id": 1
}

The answer arrives as one server-sent event whose data line is this message. structuredContent holds the result, and content repeats it as text for clients that only read text. The MCP reference has every tool.

REST

The same data as JSON over GET at https://interlinea.aeterna-institute.org/api/v1. There is no key, and CORS is open, so a page on any site can call it from the browser.

curl -G "https://interlinea.aeterna-institute.org/api/v1/text" \
  --data-urlencode "ref=Virgil, Aeneid 1.46"
Response200 OK
{
  "kind": "section",
  "lang": "la",
  "language": "Latin",
  "title": "Aeneid 1.46-86",
  "citation": "Virgil, Aeneid 1.46-86",
  "ref": "1.46",
  "level": null,
  "urn": "urn:cts:latinLit:phi0690.phi003.perseus-lat2:1.46-1.86",
  "url": "https://interlinea.aeterna-institute.org/library/latin/virgil/aeneid/1.46",
  "api": "https://interlinea.aeterna-institute.org/api/v1/library/latin/virgil/aeneid/1.46",
  "markdown": "https://interlinea.aeterna-institute.org/library/latin/virgil/aeneid/1.46.md",
  "author": {
    "name": "Virgil",
    "url": "https://interlinea.aeterna-institute.org/library/latin/virgil"
  },
  "work": {
    "title": "Aeneid",
    "url": "https://interlinea.aeterna-institute.org/library/latin/virgil/aeneid",
    "urn": "urn:cts:latinLit:phi0690.phi003"
  },
  "verse": true,
  "words": 276,
  "text": "Ast ego, quae divom incedo regina, Iovisque\net soror et coniunx, una cum gente tot annos\nbella gero! Et quisquam numen Iunonis adoret\npraete…",
  "prev": {
    "citation": "Aeneid 1.1-45",
    "label": "Lines 1.1-1.45",
    "url": "https://interlinea.aeterna-institute.org/library/latin/virgil/aeneid/1.1",
    "api": "https://interlinea.aeterna-institute.org/api/v1/library/latin/virgil/aeneid/1.1"
  },
  "next": {
    "citation": "Aeneid 1.87-130",
    "label": "Lines 1.87-1.130",
    "url": "https://interlinea.aeterna-institute.org/library/latin/virgil/aeneid/1.87",
    "api": "https://interlinea.aeterna-institute.org/api/v1/library/latin/virgil/aeneid/1.87"
  },
  "credit": {
    "text": "Virgil, Aeneid, ed. J. B. Greenough. Text: the Perseus Digital Library, canonical-latinLit, CC BY-SA 4.0. Changes: apostrophes normalised an…",
    "license": "CC BY-SA 4.0",
    "licenseUrl": "https://creativecommons.org/licenses/by-sa/4.0/",
    "source": "https://github.com/PerseusDL/canonical-latinLit/blob/master/data/phi0690/phi003/phi0690.phi003.perseus-lat2.xml",
    "quality": "proofread"
  }
}
Cache-Control: public, max-age=3600, s-maxage=86400, stale-while-revalidate=604800

Follow next.api to read on. The REST reference has every endpoint with an example you can run, and the OpenAPI document describes them for code generators.

Markdown

Every author, work and section page also answers as Markdown: add .md to its URL, or send Accept: text/markdown.

curl https://interlinea.aeterna-institute.org/library/latin/virgil/aeneid/1.46.md
Response200 OK
# Aeneid 1.46-86

Virgil, Aeneid, Lines 1.46-1.86. Latin.

Canonical: https://interlinea.aeterna-institute.org/library/latin/virgil/aeneid/1.46
JSON: https://interlinea.aeterna-institute.org/api/v1/library/latin/virgil/aeneid/1.46
CTS URN: urn:cts:latinLit:phi0690.phi003.perseus-lat2:1.46-1.86

Ast ego, quae divom incedo regina, Iovisque
et soror et coniunx, una cum gente tot annos
bella gero! Et quisquam numen Iunonis adoret
praeterea, aut supplex aris imponet honorem?
Talia flammato secum dea corde volutans
nimborum in patriam, loca feta furentibus austris,
Aeoliam venit. Hic vasto rex Aeolus antro
luctantes ventos tempestatesque sonoras
[…]

---

Virgil, Aeneid, ed. J. B. Greenough. Text: the Perseus Digital Library, canonical-latinLit, CC BY-SA 4.0. Changes: apostrophes normalised and the text divided into reading sections by Interlinea.
License: CC BY-SA 4.0 (https://creativecommons.org/licenses/by-sa/4.0/). Source: https://github.com/PerseusDL/canonical-latinLit/blob/master/data/phi0690/phi003/phi0690.phi003.perseus-lat2.xml.
Content-Type: text/markdown; charset=utf-8

llms.txt sums the site up for agents. These docs are Markdown too: add .md to any docs URL.