Old Norse dictionary access
An MCP server and JSON API over the English Wiktionary's Old Norse entries — so LLMs read and write the language of the sagas and the Eddas with attested words and grammatical forms, not invented ones. Entries use the normalized classical orthography, with full paradigms: the nouns' definite forms, the adjectives' strong/weak/degree family, and the verbs' active and mediopassive voices. Read-only.
MCP JSON API politely cached rate limited
Connect an MCP client
Remote streamable-HTTP endpoint — no auth, read-only:
https://norse.valksor.com/mcp
Claude Code — CLI
claude mcp add --transport http norse https://norse.valksor.com/mcp
Cursor · Cline
— remote url (~/.cursor/mcp.json)
{
"mcpServers": {
"norse": { "url": "https://norse.valksor.com/mcp" }
}
}
VS Code — .vscode/mcp.json
{
"servers": {
"norse": { "type": "http", "url": "https://norse.valksor.com/mcp" }
}
}
Claude Desktop · Windsurf · other stdio clients
— bridge via
mcp-remote
(claude_desktop_config.json)
{
"mcpServers": {
"norse": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://norse.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://norse.valksor.com/mcp.
Codex CLI — ~/.codex/config.toml
[mcp_servers.norse] command = "npx" args = ["-y", "mcp-remote", "https://norse.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://norse.valksor.com/mcp.
Two tools
query — Old Norse: 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 —
madr and mathr both find
maðr (once the lemma's paradigm is cached). With
search_language=eng the query is an English word and the
result lists its per-sense Old Norse 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 indefinite/definite or strong/weak splits, or
verbal mood·tense·person with the mediopassive), Markdown over MCP.
Or call the JSON API
curl "https://norse.valksor.com/api/search?query=maðr" curl "https://norse.valksor.com/api/search?query=water&search_language=eng" curl "https://norse.valksor.com/api/inflections?entry_id=kasta&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 Norse headwords in normalized orthography), and
the result says which way it was found (search_method =
direct · lemma_index ·
translations). Diacritics are optional once a paradigm is
cached: marks fold away (monnum finds
mǫnnum) and the special letters fold two ways —
madr AND mathr find maðr,
thing AND ting find þing.
English→Old Norse works too: with search_language=eng the
query is an English word, and its per-sense Old Norse equivalents come
from Wiktionary's translation tables. Because Icelandic and Faroese
descend directly from Old Norse, much of their inherited word stock can
be traced here in its classical form.