Scythian dictionary access
An MCP server and JSON API over the
English Wiktionary's Proto-Scythian entries — the reconstructed Eastern Iranian language
of the steppe nomads (Scythians, Sarmatians, Saka), ancestor of
Ossetian and Khotanese. Scythian left no texts: every lemma is a
scholarly reconstruction (asterisked, e.g.
*tiɣri 'bitter'), and the corpus is a few dozen words —
this service exists so LLMs cite those real reconstructions, their
etymologies and their descendant trees instead of
inventing "Scythian". Read-only.
MCP JSON API politely cached rate limited
Connect an MCP client
Remote streamable-HTTP endpoint — no auth, read-only:
https://scythian.valksor.com/mcp
Claude Code — CLI
claude mcp add --transport http scythian https://scythian.valksor.com/mcp
Cursor · Cline
— remote url (~/.cursor/mcp.json)
{
"mcpServers": {
"scythian": { "url": "https://scythian.valksor.com/mcp" }
}
}
VS Code — .vscode/mcp.json
{
"servers": {
"scythian": { "type": "http", "url": "https://scythian.valksor.com/mcp" }
}
}
Claude Desktop · Windsurf · other stdio clients
— bridge via
mcp-remote
(claude_desktop_config.json)
{
"mcpServers": {
"scythian": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://scythian.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://scythian.valksor.com/mcp.
Codex CLI — ~/.codex/config.toml
[mcp_servers.scythian] command = "npx" args = ["-y", "mcp-remote", "https://scythian.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://scythian.valksor.com/mcp.
Two tools
query — Scythian: the lemma in any spelling (plain
ASCII works: tigri finds *tiɣri; θ may be
typed t or th); English: the word itself.Returns senses + descendant handles (full payloads inline by default). With
search_language=eng the query is an
English word, matched against every entry's glosses, and the result
lists the matching lemmas plus their entries.
entry_id (the bare lemma), word_class (the
part of speech) from a handle.Returns the full descendants payload — the reconstructed headword, etymology, English glosses and the reflex tree through Sarmatian→Alanic→Ossetian and Saka→Khotanese. Proto-Scythian has no inflection tables; descendants are this dictionary's depth.
Or call the JSON API
curl "https://scythian.valksor.com/api/search?query=tigri" curl "https://scythian.valksor.com/api/search?query=bitter&search_language=eng" curl "https://scythian.valksor.com/api/descendants?entry_id=tiɣri&word_class=adjective"
Interactive docs: /api/docs · OpenAPI schema: /api/openapi.json · LLM usage: /llms.txt
How lookup works
Plain ASCII works as a query — the reconstructed lemmas carry
diacritics and special letters (ɣ θ δ β ə, macrons,
carons), and every lemma is indexed under its folded spellings
(tigri → *tiɣri; hatti or
haththi → *haθθi; erzatu →
*ərzatu), with the result saying which way it was found
(search_method = direct ·
lemma_index · translations). The
reconstruction asterisk is optional. English→Scythian works from the
same index: with search_language=eng the query is matched
against every entry's English glosses — reconstructed languages have
no Wiktionary translation tables, so the service sweeps the whole
corpus once at startup and answers from its own index. Most English
words match nothing: the reconstructed corpus is a few dozen lemmas —
try simple concrete words ('horse', 'gold', 'bitter').