Skip to content

com.valksor/hub

by valksor.com · remote · no sign-in to list tools · v2.0.0 · published by com.valksor

One MCP endpoint over every Valksor dictionary: namespaced tools plus a JSON passthrough.

Changes · 6

27 tools: 6 change things and 21 only read.

Scanned Oct 21, 2026

No check matched anything in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http hub https://mcp.valksor.com/mcp

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

27 tools

Changes things 6Claude Code: ask
  • anglo_romanizeReduce Old English orthography to its primary ASCII spelling (þing→thing, wæter→waeter; macrons and the dotted ġ/ċ dropped) for an ASCII-keyboard downstream.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Reduce Old English orthography to its primary ASCII spelling (þing→thing, wæter→waeter; macrons and the dotted ġ/ċ dropped) for an ASCII-keyboard downstream. Pure local transform: no dictionary lookup, no network, always ASCII.

    Annotations the server declares

    • title: Romanize Old English to clean ASCII
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • dictionariesIndex of every Valksor dictionary reachable through this hub and its CURRENT tool and prompt names (each named <language>_<verb>).No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Index of every Valksor dictionary reachable through this hub and its CURRENT tool and prompt names (each named <language>_<verb>). Call this to discover or re-check names — e.g. after an 'unknown tool'/'unknown prompt' error. The optional `language` argument narrows the result to one dictionary by its id (the prefix before the first underscore). Each entry's `host` is that dictionary's public site, for reference only — you still reach its tools through this hub by their listed names, not via that host.

    Annotations the server declares

    • title: Dictionaries
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • interslavic_transliterateTransliterate ONE Interslavic word between Latin and Cyrillic.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Transliterate ONE Interslavic word between Latin and Cyrillic. This is bidirectional: it auto-detects the input's script and returns the attested spelling in the OTHER script — Latin input yields Cyrillic, Cyrillic input yields Latin (or pass `target` to force it). Unlike the lossy deromanize tools, this is an EXACT dataset lookup (both spellings are stored per entry): it never guesses — a word not in the dataset returns empty candidates.

    Annotations the server declares

    • title: Transliterate one Interslavic word between Latin and Cyrillic
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • latgalian_romanizeStrip Latgalian orthography down to clean, pronounceable ASCII for an English-trained downstream (a voice/TTS, a search box).No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Strip Latgalian orthography down to clean, pronounceable ASCII for an English-trained downstream (a voice/TTS, a search box). See the `text` parameter doc for the exact letter mappings. Returns Markdown plus the romanized output as structuredContent matching the declared outputSchema. Pure local transform: no dictionary lookup, no network, and the output is always ASCII.

    Annotations the server declares

    • title: Romanize Latgalian to clean ASCII
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • livonian_romanizeStrip Livonian orthography down to clean, pronounceable ASCII for an English-trained downstream (a voice/TTS, a search box).No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Strip Livonian orthography down to clean, pronounceable ASCII for an English-trained downstream (a voice/TTS, a search box). See the `text` parameter doc for the exact letter mappings. Returns Markdown plus the romanized output as structuredContent matching the declared outputSchema. Pure local transform: no dictionary lookup, no network, and the output is always ASCII.

    Annotations the server declares

    • title: Romanize Livonian to clean ASCII
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • slavonic_transliterateRender Church Slavonic — Cyrillic or Glagolitic — in the scientific Latin transliteration Wiktionary uses (богъ → bogŭ, ⰱⱁⰳⱏ → bogŭ).No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Render Church Slavonic — Cyrillic or Glagolitic — in the scientific Latin transliteration Wiktionary uses (богъ → bogŭ, ⰱⱁⰳⱏ → bogŭ). Liturgical reading marks (titlos, accents) are dropped and late Church Slavonic spellings folded, so copied liturgical text works as-is. Returns Markdown plus the transliterated output as structuredContent matching the declared outputSchema. Pure local transform: no dictionary lookup and no network.

    Annotations the server declares

    • title: Transliterate Church Slavonic to scientific Latin
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
Only reads 21Claude Code: allow
  • anglo_deromanizeFind the real Old English word(s) whose ASCII spelling matches this input — the inverse of `anglo_romanize`.No findings

    Why it is in this group

    • The description's first verb is "find": a word for reading.
    Description, as the server wrote it
    Find the real Old English word(s) whose ASCII spelling matches this input — the inverse of `anglo_romanize`. romanize is deeply lossy (th←þ or ð, dropped macrons), so this is a LOOKUP against words already cached: attested spellings come back as source=dictionary. If none match, a single best-effort reconstruction (source=reconstruction, approximate=true) — a guess, not attested. Coverage grows as words are cached.

    Annotations the server declares

    • title: Find the Old English word(s) matching an ASCII spelling
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • anglo_get_inflectionsFetch the full declension (nominals, including the pronouns' dual) or conjugation (verbs) table for a lemma identified by a search result's inflection handle (entry_id + word_class…No findings

    Why it is in this group

    • The name "anglo_get_inflections" says "get": a word for reading.
    Description, as the server wrote it
    Fetch the full declension (nominals, including the pronouns' dual) or conjugation (verbs) table for a lemma identified by a search result's inflection handle (entry_id + word_class). Use this only when a search ran without inline forms or left a match un-expanded — a default search already returns each match's table inline. Returns Markdown plus the table as structuredContent with the shape {"result": <paradigm>} per the declared outputSchema — switch on result.category ('nominal' | 'verbal' | 'not_found') before reading the body. Content from en.wiktionary.org (CC BY-SA 4.0).

    Annotations the server declares

    • title: Get an Old English inflection table
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • interslavic_get_inflectionsFetch the full declension (noun/adjective) or conjugation (verb) table for a word identified by a search result's inflection handle (entry_id + word_class).No findings

    Why it is in this group

    • The name "interslavic_get_inflections" says "get": a word for reading.
    Description, as the server wrote it
    Fetch the full declension (noun/adjective) or conjugation (verb) table for a word identified by a search result's inflection handle (entry_id + word_class). Use this only when a search ran without inline forms or left a match un-expanded — a default search already returns each match's table inline. Returns Markdown plus the table as structuredContent with the shape {"result": <paradigm>} — switch on result.category ('noun' | 'adjective' | 'verb' | 'not_found') before reading the body. Tables are generated by the official Interslavic morphology engine, not attested.

    Annotations the server declares

    • title: Get an Interslavic inflection table
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • latgalian_deromanizeFind the real Latgalian word(s) whose pronunciation-romanization matches this clean-ASCII input — the inverse direction of `latgalian_romanize`.No findings

    Why it is in this group

    • The description's first verb is "find": a word for reading.
    Description, as the server wrote it
    Find the real Latgalian word(s) whose pronunciation-romanization matches this clean-ASCII input — the inverse direction of `latgalian_romanize`. Because romanize is lossy, this is a LOOKUP against the words already in the dictionary cache: attested spellings come back as source=dictionary. If none match, a single best-effort reconstruction is returned (source=reconstruction, approximate=true) — a guess, not attested. Coverage grows as words are cached, so an identical query may return a reconstruction now and a dictionary hit later.

    Annotations the server declares

    • title: Find the Latgalian word(s) matching a romanized spelling
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • latgalian_get_inflectionsFetch the full declension (nominals) or conjugation (verbs — positive AND negative) tables for a lemma identified by a search result's inflection handle (entry_id + word_class).No findings

    Why it is in this group

    • The name "latgalian_get_inflections" says "get": a word for reading.
    Description, as the server wrote it
    Fetch the full declension (nominals) or conjugation (verbs — positive AND negative) tables for a lemma identified by a search result's inflection handle (entry_id + word_class). Use this only when a search ran without inline forms or left a match un-expanded — a default search already returns each match's table inline. Returns Markdown plus the table as structuredContent with the shape {"result": <paradigm>} per the declared outputSchema — switch on result.category ('nominal' | 'verbal' | 'not_found') before reading the body. Content from en.wiktionary.org (CC BY-SA 4.0).

    Annotations the server declares

    • title: Get a Latgalian inflection table
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • latin_get_inflectionsFetch the full declension (nominals) or conjugation (verbs) table for a lemma identified by a search result's inflection handle (entry_id + word_class).No findings

    Why it is in this group

    • The name "latin_get_inflections" says "get": a word for reading.
    Description, as the server wrote it
    Fetch the full declension (nominals) or conjugation (verbs) table for a lemma identified by a search result's inflection handle (entry_id + word_class). Use this only when a search ran without inline forms or left a match un-expanded — a default search already returns each match's table inline. Returns Markdown plus the table as structuredContent with the shape {"result": <paradigm>} per the declared outputSchema — switch on result.category ('nominal' | 'verbal' | 'not_found') before reading the body. Content from en.wiktionary.org (CC BY-SA 4.0).

    Annotations the server declares

    • title: Get a Latin inflection table
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • latin_lemmatizeAnalyze one inflected Latin form with the Morpheus morphological analyzer: its lemma(s) plus the grammatical reading (person, number, tense, mood, voice, case…).No findings

    Why it is in this group

    • The description's first verb is "analyze": a word for reading.
    Description, as the server wrote it
    Analyze one inflected Latin form with the Morpheus morphological analyzer: its lemma(s) plus the grammatical reading (person, number, tense, mood, voice, case…). Useful when you want the morphology itself — for the dictionary entry, latin_search already resolves inflected queries on its own. Returns Markdown plus the analysis as structuredContent matching the declared outputSchema. Results are cached server-side. Analyses via the Perseids Morpheus service.

    Annotations the server declares

    • title: Morphologically analyze a Latin form
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • livonian_deromanizeFind the real Livonian word(s) whose pronunciation-romanization matches this clean-ASCII input — the inverse direction of `livonian_romanize`.No findings

    Why it is in this group

    • The description's first verb is "find": a word for reading.
    Description, as the server wrote it
    Find the real Livonian word(s) whose pronunciation-romanization matches this clean-ASCII input — the inverse direction of `livonian_romanize`. Because romanize is lossy, this is a LOOKUP against the words already in the dictionary cache: attested spellings come back as source=dictionary. If none match, a single best-effort reconstruction is returned (source=reconstruction, approximate=true) — a guess, not attested. Coverage grows as words are cached, so an identical query may return a reconstruction now and a dictionary hit later.

    Annotations the server declares

    • title: Find the Livonian word(s) matching a romanized spelling
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • livonian_get_inflectionsFetch the full declension (nouns) or conjugation (verbs) table for a word identified by a search result's inflection handle (entry_id + word_class) — the exact case, number, tense,…No findings

    Why it is in this group

    • The name "livonian_get_inflections" says "get": a word for reading.
    Description, as the server wrote it
    Fetch the full declension (nouns) or conjugation (verbs) table for a word identified by a search result's inflection handle (entry_id + word_class) — the exact case, number, tense, not a guessed ending. Use this only when a search ran without inline forms, or to fetch a match a broad search left un-expanded. Never a first call — the handle values only come from livonian_search results, and a default search already returns each match's table inline, so calling this afterwards just re-fetches what you have. Returns Markdown — a nominal gets one case × {singular, plural} table; a verb gets a table per mood/tense (person × {affirmative, negative}, the negation auxiliary folded into the negative) plus its principal-parts and participle lists — or a clean not-found message. (Grammatical labels are normalised to English; Livonian forms stay verbatim.) The same table rides along as structuredContent with the shape {"result": <paradigm>} per the declared outputSchema — switch on result.category ('nominal' | 'verbal' | 'not_found') before reading the body. Results are cached server-side (repeats are instant) and calls are rate limited — on a rate-limit error, wait a few seconds and retry. Table content is from livonian.tech (CC BY-SA 4.0 — attribute if republished).

    Annotations the server declares

    • title: Get Livonian inflection table
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • norse_get_inflectionsFetch the full declension (nominals) or conjugation (verbs — active AND mediopassive) tables for a lemma identified by a search result's inflection handle (entry_id + word_class).No findings

    Why it is in this group

    • The name "norse_get_inflections" says "get": a word for reading.
    Description, as the server wrote it
    Fetch the full declension (nominals) or conjugation (verbs — active AND mediopassive) tables for a lemma identified by a search result's inflection handle (entry_id + word_class). Use this only when a search ran without inline forms or left a match un-expanded — a default search already returns each match's table inline. Returns Markdown plus the table as structuredContent with the shape {"result": <paradigm>} per the declared outputSchema — switch on result.category ('nominal' | 'verbal' | 'not_found') before reading the body. Content from en.wiktionary.org (CC BY-SA 4.0).

    Annotations the server declares

    • title: Get an Old Norse inflection table
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • scythian_get_descendantsFetch the full descendants payload — etymology, glosses and the reflex tree (Sarmatian→Alanic→Ossetian, Saka→Khotanese) — for a lemma identified by a search result's descendant han…No findings

    Why it is in this group

    • The name "scythian_get_descendants" says "get": a word for reading.
    Description, as the server wrote it
    Fetch the full descendants payload — etymology, glosses and the reflex tree (Sarmatian→Alanic→Ossetian, Saka→Khotanese) — for a lemma identified by a search result's descendant handle (entry_id + word_class). Use this only when a search ran without inline payloads or left a match un-expanded — a default search already returns each match's payload inline. Returns Markdown plus the payload as structuredContent with the shape {"result": <payload>} per the declared outputSchema — switch on result.category ('descendants' | 'not_found') before reading the body. Content from en.wiktionary.org (CC BY-SA 4.0).

    Annotations the server declares

    • title: Get a Proto-Scythian entry's descendants
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • slavonic_detransliterateFind the real Church Slavonic word(s) whose scientific-Latin transliteration matches this input — the inverse direction of `slavonic_transliterate`.No findings

    Why it is in this group

    • The description's first verb is "find": a word for reading.
    Description, as the server wrote it
    Find the real Church Slavonic word(s) whose scientific-Latin transliteration matches this input — the inverse direction of `slavonic_transliterate`. Because transliterate is lossy, this is a LOOKUP against the words already in the dictionary cache: attested spellings (normalized OCS Cyrillic) come back as source=dictionary. If none match, a single best-effort reconstruction is returned (source=reconstruction, approximate=true) — a guess in normalized OCS Cyrillic, not attested, with no Glagolitic or liturgical marks. Coverage grows as words are cached, so an identical query may return a reconstruction now and a dictionary hit later.

    Annotations the server declares

    • title: Find the Church Slavonic word(s) matching a Latin transliteration
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • slavonic_get_inflectionsFetch the full declension (nominals) or conjugation (verbs) table for a lemma identified by a search result's inflection handle (entry_id + word_class).No findings

    Why it is in this group

    • The name "slavonic_get_inflections" says "get": a word for reading.
    Description, as the server wrote it
    Fetch the full declension (nominals) or conjugation (verbs) table for a lemma identified by a search result's inflection handle (entry_id + word_class). Use this only when a search ran without inline forms or left a match un-expanded — a default search already returns each match's table inline. Returns Markdown plus the table as structuredContent with the shape {"result": <paradigm>} per the declared outputSchema — switch on result.category ('nominal' | 'verbal' | 'not_found') before reading the body. Content from en.wiktionary.org (CC BY-SA 4.0).

    Annotations the server declares

    • title: Get a Church Slavonic inflection table
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 2.0.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http hub https://mcp.valksor.com/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__hub__livonian_search",
      "mcp__hub__livonian_get_inflections",
      "mcp__hub__livonian_deromanize",
      "mcp__hub__latin_search",
      "mcp__hub__latin_get_inflections",
      "mcp__hub__latin_lemmatize",
      "mcp__hub__slavonic_search",
      "mcp__hub__slavonic_get_inflections",
      "mcp__hub__slavonic_detransliterate",
      "mcp__hub__scythian_search",
      "mcp__hub__scythian_get_descendants",
      "mcp__hub__norse_search",
      "mcp__hub__norse_get_inflections",
      "mcp__hub__latgalian_search",
      "mcp__hub__latgalian_get_inflections",
      "mcp__hub__latgalian_deromanize",
      "mcp__hub__anglo_search",
      "mcp__hub__anglo_get_inflections",
      "mcp__hub__anglo_deromanize",
      "mcp__hub__interslavic_search",
      "mcp__hub__interslavic_get_inflections"
    ],
    "ask": [
      "mcp__hub__dictionaries",
      "mcp__hub__livonian_romanize",
      "mcp__hub__slavonic_transliterate",
      "mcp__hub__latgalian_romanize",
      "mcp__hub__anglo_romanize",
      "mcp__hub__interslavic_transliterate"
    ],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as hub. Review it before you use it.