Old English MCP server
An MCP server and JSON API over the English Wiktionary's Old English entries — so LLMs read and write the language of Beowulf and the Anglo-Saxon Chronicle (Ænglisc, c. 450–1150) with attested words and grammatical forms, not invented ones — and not modern English. Full paradigms: the nouns' four cases (with the instrumental), the adjectives' strong/weak family, the verbs' indicative, subjunctive and imperative moods, and the personal pronouns' dual number. Read-only.
MCP JSON API politely cached rate limited
Connect an MCP client
Remote streamable-HTTP endpoint — no auth, read-only:
https://anglo.valksor.com/mcp
Claude Code — CLI
claude mcp add --transport http anglo https://anglo.valksor.com/mcp
Cursor · Cline
— remote url (~/.cursor/mcp.json)
{
"mcpServers": {
"anglo": { "url": "https://anglo.valksor.com/mcp" }
}
}
VS Code — .vscode/mcp.json
{
"servers": {
"anglo": { "type": "http", "url": "https://anglo.valksor.com/mcp" }
}
}
Claude Desktop · Windsurf · other stdio clients
— bridge via
mcp-remote
(claude_desktop_config.json)
{
"mcpServers": {
"anglo": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://anglo.valksor.com/mcp"]
}
}
}
Claude Desktop only accepts command-based (stdio) servers
in its config, so a bare url is rejected — the bridge above
wraps the remote endpoint. On Pro/Team/Enterprise you can instead add it
under Settings → Connectors → Add custom connector and paste
https://anglo.valksor.com/mcp.
Codex CLI — ~/.codex/config.toml
[mcp_servers.anglo] command = "npx" args = ["-y", "mcp-remote", "https://anglo.valksor.com/mcp"]
Rule of thumb: clients with native streamable-HTTP/SSE support take the
url directly (Claude Code, Cursor, Cline, VS Code);
stdio-only desktop apps wrap it with
npx -y mcp-remote https://anglo.valksor.com/mcp.
Two tools
query — Old English: any form of the word; English: the
word itself.Returns senses + inflection handles (full tables inline by default). An inflected query resolves to its lemma automatically, and ASCII spellings work —
thing finds þing and
waeter finds wæter (once the lemma's
paradigm is cached). With search_language=eng the query
is a modern English word and the result lists its per-sense Old
English equivalents plus their entries.
entry_id (the lemma), word_class (the
part of speech) from a handle.Returns the full paradigm — JSON grouped by
category
(nominal cases with the adjectives' strong/weak split and the
pronouns' dual, or verbal mood·tense·person), Markdown over MCP.
Or call the JSON API
curl "https://anglo.valksor.com/api/search?query=cyning" curl "https://anglo.valksor.com/api/search?query=water&search_language=eng" curl "https://anglo.valksor.com/api/inflections?entry_id=bindan&word_class=verb"
Interactive docs: /api/docs · OpenAPI schema: /api/openapi.json · LLM usage: /llms.txt
How lookup works
Any form of a word works as a query — an inflected form is
resolved to its lemma via paradigms already cached (the dictionary
itself is keyed by Old English headwords), and the result says which way
it was found (search_method = direct ·
lemma_index · translations). The special
letters are optional once a paradigm is cached: macrons and the dotted
ġ/ċ fold away, and þ/ð/æ fold to
ASCII — thing finds þing and
waeter finds wæter. Modern English→Old English
works too: with search_language=eng the query is a modern
English word, and its per-sense Old English equivalents come from
Wiktionary's translation tables. Because modern English descends
directly from Old English, much of its core word stock can be traced
here in its attested early form.