scythian

Grounds LLMs in real Scythian: Proto-Scythian lemmas, etymologies, Ossetian/Khotanese descendants.

我该使用它吗

质量与安全性

A
描述质量
100%
模式完整度
95%
命名质量
80%
投毒风险
100%
权限匹配度
100%
协议合规性
100%

基于对工具定义和协议合规性的自动分析。

上下文开销

~4,535token 数(工具定义)
~25.1 KB典型响应大小
对注意力有显著影响(占 128k 上下文窗口的 3.54%)

这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。

安装

一键安装

将以下内容添加到你的 `claude_desktop_config.json` 文件中:

{
  "mcpServers": {
    "scythian": {
      "url": "https://scythian.valksor.com/mcp"
    }
  }
}

远程端点

https://scythian.valksor.com/mcpstreamable-http

它能做什么

工具清单

工具(2)

🟢 只读🟡 写入🔴 删除⚪ 未知
🟢scythian_search(query, search_language, include_forms, max_forms)

Look a Proto-Scythian lemma up on Wiktionary and return its senses plus its full descendants payload — the reconstructed etymology and the reflex tree down to Ossetian and Khotanese, attested scholarship, not invention. Plain ASCII spellings are folded to the reconstruction's diacritics and the result notes the resolution. With search_language='eng' the query is an English word instead: the result lists the lemmas whose glosses match it (the translations block) plus their expanded entries. Returns Markdown plus the same result as structuredContent matching the declared outputSchema. Results are cached server-side; first-time queries reach the live upstream politely and calls are rate limited — on a rate-limit error, wait a few seconds and retry. Content is from en.wiktionary.org (CC BY-SA 4.0 — attribute and share alike if republished).

输入模式

{
  "type": "object",
  "properties": {
    "query": {
      "description": "The word to look up, in the language search_language names. Scythian (default): a SINGLE Proto-Scythian lemma — plain ASCII works ('tigri' finds *tiɣri: macrons and carons are folded, and ɣ→g, δ→d, β→b, ə→e, θ→t or th), with or without the reconstruction asterisk. English (search_language='eng'): the English word whose Proto-Scythian equivalents you want — matched against every entry's glosses.",
      "maxLength": 80,
      "minLength": 1,
      "title": "Query",
      "type": "string"
    },
    "search_language": {
      "$ref": "#/$defs/SearchLanguage",
      "default": "xsc",
      "description": "Language the query word is in: 'xsc' (default) looks the Proto-Scythian lemma up directly; 'eng' finds the lemmas whose English glosses match the query (the local gloss index — reconstructed languages have no translation tables) and returns their full entries. Glosses are in English either way."
    },
    "include_forms": {
      "default": true,
      "description": "When true (default), each match's full descendants payload — etymology, glosses and the reflex tree down to Ossetian and Khotanese — is returned INLINE in ONE call, no follow-up scythian_get_descendants. Set false for a cheap screen of which entries exist. Bounded by a per-search cap — use max_forms to adjust per call. For eng queries this governs the expanded entries; the matched-lemmas list itself is always returned.",
      "title": "Include Forms",
      "type": "boolean"
    },
    "max_forms": {
      "anyOf": [
        {
          "maximum": 12,
          "minimum": 0,
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Optional override for how many descendants payloads to expand this call (0–12). On an uncached query each payload is one politely paced upstream fetch, so high values on cold queries are slow. Omit for the server default.",
      "title": "Max Forms"
    }
  },
  "required": [
    "query"
  ],
  "$defs": {
    "SearchLanguage": {
      "description": "The query language. ``xsc`` (ISO 639-3 Scythian; Wiktionary's entry code is\n``xsc-pro``) looks a Proto-Scythian lemma up directly — ASCII spellings are\nfolded (``tigri`` finds ``*tiɣri``) via the reverse index. ``eng`` searches in\nreverse: the English query is matched against the indexed glosses of all\nlemmas, and each match is then looked up normally.",
      "enum": [
        "xsc",
        "eng"
      ],
      "title": "SearchLanguage",
      "type": "string"
    }
  },
  "title": "scythian_searchArguments"
}

输出模式

{
  "type": "object",
  "properties": {
    "query": {
      "title": "Query",
      "type": "string"
    },
    "language": {
      "$ref": "#/$defs/SearchLanguage"
    },
    "found": {
      "description": "False when nothing matched. For an eng query, True means the gloss index named Proto-Scythian lemmas — entries may still be empty when none of them could be expanded (see translations).",
      "title": "Found",
      "type": "boolean"
    },
    "handles": {
      "items": {
        "$ref": "#/$defs/DescendantsHandle"
      },
      "title": "Handles",
      "type": "array"
    },
    "entries": {
      "items": {
        "$ref": "#/$defs/Entry"
      },
      "title": "Entries",
      "type": "array"
    },
    "forms_truncated": {
      "default": 0,
      "description": "How many handles did NOT get an inline descendants payload because the per-search cap was reached.",
      "title": "Forms Truncated",
      "type": "integer"
    },
    "translations": {
      "description": "Populated only for eng queries (always [] for xsc): the Proto-Scythian lemmas whose glosses match the query. Entries/handles below are the expanded dictionary entries of those lemmas.",
      "items": {
        "$ref": "#/$defs/TranslationSense"
      },
      "title": "Translations",
      "type": "array"
    },
    "translations_truncated": {
      "default": 0,
      "description": "How many distinct matched lemmas were NOT expanded into entries because the per-search expansion cap was reached (they still appear under translations).",
      "title": "Translations Truncated",
      "type": "integer"
    },
    "search_method": {
      "default": "direct",
      "description": "How the match was found: 'direct' = the query itself matched; 'lemma_index' = an ASCII/diacritic-folded spelling resolved via the reverse index; 'translations' = an English query resolved via the local gloss index.",
      "enum": [
        "direct",
        "lemma_index",
        "translations"
      ],
      "title": "Search Method",
      "type": "string"
    },
    "resolved_from": {
      "default": "",
      "description": "The original query when resolved via the index; else empty. xsc queries only — always empty for eng results.",
      "title": "Resolved From",
      "type": "string"
    },
    "resolved_lemma": {
      "default": "",
      "description": "The lemma actually searched when resolved; else empty. xsc queries only — always empty for eng results.",
      "title": "Resolved Lemma",
      "type": "string"
    },
    "source": {
      "default": "Wiktionary, the free dictionary (en.wiktionary.org), Proto-Scythian reconstruction entries. Wikimedia Foundation. Text available under CC BY-SA 4.0; attribution and share-alike required when republishing. (CC BY-SA 4.0)",
      "title": "Source",
      "type": "string"
    }
  },
  "required": [
    "query",
    "language",
    "found"
  ],
  "$defs": {
    "DescendantNode": {
      "description": "One node of a descendants tree: a reflex of the Proto-Scythian lemma in a\ndescendant (or borrowing) language, with its own descendants nested below.\n``form`` keeps the asterisk on reconstructed reflexes (``*ćirɣ``) and may be\nempty for a branch header (``Ossetian`` above its dialect lines) or a term\nWiktionary records only in transliteration (\"script needed\").",
      "properties": {
        "language": {
          "description": "Language name as printed, e.g. 'Alanic'.",
          "title": "Language",
          "type": "string"
        },
        "form": {
          "default": "",
          "description": "The reflex as printed (asterisk kept on reconstructions); may be empty for a branch header or a transliteration-only term.",
          "title": "Form",
          "type": "string"
        },
        "transliteration": {
          "default": "",
          "description": "Romanization as printed beside the form, e.g. 'cirǧ'.",
          "title": "Transliteration",
          "type": "string"
        },
        "qualifier": {
          "default": "",
          "description": "How the word travelled or which variety carries it, e.g. 'borrowed', 'Digor'; empty for plain inheritance.",
          "title": "Qualifier",
          "type": "string"
        },
        "children": {
          "items": {
            "$ref": "#/$defs/DescendantNode"
          },
          "title": "Children",
          "type": "array"
        }
      },
      "required": [
        "language"
      ],
      "title": "DescendantNode",
      "type": "object"
    },
    "DescendantsHandle": {
      "description": "A structured anchor for fetching one entry's descendants: feed ``entry_id``\n(the bare lemma) + ``word_class`` (the POS section) to\n``scythian_get_descendants`` — or ask ``search`` to include the tree inline\n(``forms``).",
      "properties": {
        "entry_id": {
          "description": "The bare lemma — the page-title tail, no asterisk.",
          "title": "Entry Id",
          "type": "string"
        },
        "word_class": {
          "description": "Part-of-speech section, e.g. 'noun', 'adjective'.",
          "title": "Word Class",
          "type": "string"
        },
        "context": {
          "default": "",
          "description": "Nearby headword / hint.",
          "title": "Context",
          "type": "string"
        },
        "pos_hint": {
          "default": "",
          "description": "Part-of-speech hint.",
          "title": "Pos Hint",
          "type": "string"
        },
        "forms": {
          "anyOf": [
            {
              "discriminator": {
                "mapping": {
                  "descendants": "#/$defs/ScythianDescendants",
                  "not_found": "#/$defs/DescendantsNotFound"
                },
                "propertyName": "category"
              },
              "oneOf": [
                {
                  "$ref": "#/$defs/ScythianDescendants"
                },
                {
                  "$ref": "#/$defs/DescendantsNotFound"
                }
              ]
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The full descendants payload, populated when a search is asked to include it; None when not requested or beyond the cap. (Proto-Scythian has no inflection tables — this 'forms' slot carries descendants.)",
          "title": "Forms"
        }
      },
      "required": [
        "entry_id",
        "word_class"
      ],
      "title": "DescendantsHandle",
      "type": "object"
    },
    "DescendantsNotFound": {
      "description": "No Proto-Scythian entry for this page/POS (no such page, no Proto-Scythian\nsection, or nothing parseable in it). ``found`` is False and there is no body.",
      "properties": {
        "category": {
          "const": "not_found",
          "default": "not_found",
          "title": "Category",
          "type": "string"
        },
        "entry_id": {
          "title": "Entry Id",
          "type": "string"
        },
        "word_class": {
          "title": "Word Class",
          "type": "string"
        },
        "found": {
          "const": false,
          "default": false,
          "title": "Found",
          "type": "boolean"
        },
        "source": {
          "default": "Wiktionary, the free dictionary (en.wiktionary.org), Proto-Scythian reconstruction entries. Wikimedia Foundation. Text available under CC BY-SA 4.0; attribution and share-alike required when republishing. (CC BY-SA 4.0)",
          "title": "Source",
          "type": "string"
        }
      },
      "required": [
        "entry_id",
        "word_class"
      ],
      "title": "DescendantsNotFound",
      "type": "object"
    },
    "Entry": {
      "description": "One Proto-Scythian entry on the page: the reconstructed headword (asterisk\nincluded) with one part-of-speech section's senses.",
      "properties": {
        "headword": {
          "description": "The reconstructed headword, asterisk included.",
          "title": "Headword",
          "type": "string"
        },
        "part_of_speech": {
          "default": "",
          "title": "Part Of Speech",
          "type": "string"
        },
        "entry_id": {
          "default": "",
          "description": "Bare lemma — feed to scythian_get_descendants.",
          "title": "Entry Id",
          "type": "string"
        },
        "word_class": {
          "default": "",
          "description": "POS section — feed to scythian_get_descendants.",
          "title": "Word Class",
          "type": "string"
        },
        "senses": {
          "items": {
            "$ref": "#/$defs/Sense"
          },
          "title": "Senses",
          "type": "array"
        }
      },
      "required": [
        "headword"
      ],
      "title": "Entry",
      "type": "object"
    },
    "ScythianDescendants": {
      "description": "One entry's descendants payload: the headword, its English glosses and the\nreflex tree. ``tree`` MAY be empty — the entry exists but Wiktionary records no\nreflexes — while ``glosses`` still feed the English-query reverse index.\n``category`` discriminates this from the not-found shape — switch on it before\nreading the body.",
      "properties": {
        "category": {
          "const": "descendants",
          "default": "descendants",
          "title": "Category",
          "type": "string"
        },
        "entry_id": {
          "description": "The bare lemma (page-title tail, no asterisk).",
          "title": "Entry Id",
          "type": "string"
        },
        "word_class": {
          "description": "The part-of-speech section, e.g. 'noun'.",
          "title": "Word Class",
          "type": "string"
        },
        "found": {
          "const": true,
          "default": true,
          "title": "Found",
          "type": "boolean"
        },
        "headword": {
          "default": "",
          "description": "The headword as printed, asterisk included: '*tiɣri'.",
          "title": "Headword",
          "type": "string"
        },
        "etymology": {
          "default": "",
          "description": "The entry's etymology line, plain text; may be empty.",
          "title": "Etymology",
          "type": "string"
        },
        "glosses": {
          "description": "The entry's English glosses — also what an eng search matches.",
          "items": {
            "type": "string"
          },
          "title": "Glosses",
          "type": "array"
        },
        "tree": {
          "description": "The descendants tree in page order; empty when the entry records no reflexes.",
          "items": {
            "$ref": "#/$defs/DescendantNode"
          },
          "title": "Tree",
          "type": "array"
        },
        "source": {
          "default": "Wiktionary, the free dictionary (en.wiktionary.org), Proto-Scythian reconstruction entries. Wikimedia Foundation. Text available under CC BY-SA 4.0; attribution and share-alike required when republishing. (CC BY-SA 4.0)",
          "title": "Source",
          "type": "string"
        }
      },
      "required": [
        "entry_id",
        "word_class"
      ],
      "title": "ScythianDescendants",
      "type": "object"
    },
    "SearchLanguage": {
      "description": "The query language. ``xsc`` (ISO 639-3 Scythian; Wiktionary's entry code is\n``xsc-pro``) looks a Proto-Scythian lemma up directly — ASCII spellings are\nfolded (``tigri`` finds ``*tiɣri``) via the reverse index. ``eng`` searches in\nreverse: the English query is matched against the indexed glosses of all\nlemmas, and each match is then looked up normally.",
      "enum": [
        "xsc",
        "eng"
      ],
      "title": "SearchLanguage",
      "type": "string"
    },
    "Sense": {
      "description": "One sense of an entry: the (HTML-stripped) Wiktionary definition line.",
      "properties": {
        "label": {
          "default": "",
          "title": "Label",
          "type": "string"
        },
        "gloss": {
          "title": "Gloss",
          "type": "string"
        },
        "examples": {
          "items": {
            "type": "string"
          },
          "title": "Examples",
          "type": "array"
        }
      },
      "required": [
        "gloss"
      ],
      "title": "Sense",
      "type": "object"
    },
    "TranslationSense": {
      "description": "One English query sense and the Proto-Scythian lemmas whose glosses match\nit. Matching is by the local gloss index (built from every entry's glosses) —\nWiktionary's translation tables exclude reconstructed languages, so there is no\nper-sense table to mine; the single sense carries the query itself.",
      "properties": {
        "sense": {
          "description": "The matched English gloss key — the query.",
          "title": "Sense",
          "type": "string"
        },
        "terms": {
          "items": {
            "$ref": "#/$defs/TranslationTerm"
          },
          "title": "Terms",
          "type": "array"
        }
      },
      "required": [
        "sense"
      ],
      "title": "TranslationSense",
      "type": "object"
    },
    "TranslationTerm": {
      "description": "One Proto-Scythian lemma the gloss index offers for an English query.\n``word`` is the bare lemma (what an ``eng`` search re-searches and what\n``scythian_get_descendants`` needs).",
      "properties": {
        "word": {
          "description": "The bare Proto-Scythian lemma, e.g. 'tiɣri'.",
          "title": "Word",
          "type": "string"
        },
        "word_class": {
          "default": "",
          "description": "The lemma's part-of-speech section, e.g. 'adjective'.",
          "title": "Word Class",
          "type": "string"
        }
      },
      "required": [
        "word"
      ],
      "title": "TranslationTerm",
      "type": "object"
    }
  },
  "description": "The result of a dictionary search.",
  "title": "SearchResult"
}
🟢scythian_get_descendants(entry_id, word_class)

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).

输入模式

{
  "type": "object",
  "properties": {
    "entry_id": {
      "description": "The bare lemma (no asterisk) from a search result's descendant handle, e.g. 'tiɣri', 'baga' — a typed leading asterisk is tolerated.",
      "maxLength": 80,
      "minLength": 1,
      "title": "Entry Id",
      "type": "string"
    },
    "word_class": {
      "description": "The part-of-speech section from a search result's descendant handle, e.g. 'noun', 'adjective', 'proper noun'.",
      "maxLength": 24,
      "minLength": 1,
      "pattern": "^[a-z ]+$",
      "title": "Word Class",
      "type": "string"
    }
  },
  "required": [
    "entry_id",
    "word_class"
  ],
  "title": "scythian_get_descendantsArguments"
}

输出模式

{
  "type": "object",
  "properties": {
    "result": {
      "discriminator": {
        "mapping": {
          "descendants": "#/$defs/ScythianDescendants",
          "not_found": "#/$defs/DescendantsNotFound"
        },
        "propertyName": "category"
      },
      "oneOf": [
        {
          "$ref": "#/$defs/ScythianDescendants"
        },
        {
          "$ref": "#/$defs/DescendantsNotFound"
        }
      ],
      "title": "Result"
    }
  },
  "required": [
    "result"
  ],
  "$defs": {
    "DescendantNode": {
      "description": "One node of a descendants tree: a reflex of the Proto-Scythian lemma in a\ndescendant (or borrowing) language, with its own descendants nested below.\n``form`` keeps the asterisk on reconstructed reflexes (``*ćirɣ``) and may be\nempty for a branch header (``Ossetian`` above its dialect lines) or a term\nWiktionary records only in transliteration (\"script needed\").",
      "properties": {
        "language": {
          "description": "Language name as printed, e.g. 'Alanic'.",
          "title": "Language",
          "type": "string"
        },
        "form": {
          "default": "",
          "description": "The reflex as printed (asterisk kept on reconstructions); may be empty for a branch header or a transliteration-only term.",
          "title": "Form",
          "type": "string"
        },
        "transliteration": {
          "default": "",
          "description": "Romanization as printed beside the form, e.g. 'cirǧ'.",
          "title": "Transliteration",
          "type": "string"
        },
        "qualifier": {
          "default": "",
          "description": "How the word travelled or which variety carries it, e.g. 'borrowed', 'Digor'; empty for plain inheritance.",
          "title": "Qualifier",
          "type": "string"
        },
        "children": {
          "items": {
            "$ref": "#/$defs/DescendantNode"
          },
          "title": "Children",
          "type": "array"
        }
      },
      "required": [
        "language"
      ],
      "title": "DescendantNode",
      "type": "object"
    },
    "DescendantsNotFound": {
      "description": "No Proto-Scythian entry for this page/POS (no such page, no Proto-Scythian\nsection, or nothing parseable in it). ``found`` is False and there is no body.",
      "properties": {
        "category": {
          "const": "not_found",
          "default": "not_found",
          "title": "Category",
          "type": "string"
        },
        "entry_id": {
          "title": "Entry Id",
          "type": "string"
        },
        "word_class": {
          "title": "Word Class",
          "type": "string"
        },
        "found": {
          "const": false,
          "default": false,
          "title": "Found",
          "type": "boolean"
        },
        "source": {
          "default": "Wiktionary, the free dictionary (en.wiktionary.org), Proto-Scythian reconstruction entries. Wikimedia Foundation. Text available under CC BY-SA 4.0; attribution and share-alike required when republishing. (CC BY-SA 4.0)",
          "title": "Source",
          "type": "string"
        }
      },
      "required": [
        "entry_id",
        "word_class"
      ],
      "title": "DescendantsNotFound",
      "type": "object"
    },
    "ScythianDescendants": {
      "description": "One entry's descendants payload: the headword, its English glosses and the\nreflex tree. ``tree`` MAY be empty — the entry exists but Wiktionary records no\nreflexes — while ``glosses`` still feed the English-query reverse index.\n``category`` discriminates this from the not-found shape — switch on it before\nreading the body.",
      "properties": {
        "category": {
          "const": "descendants",
          "default": "descendants",
          "title": "Category",
          "type": "string"
        },
        "entry_id": {
          "description": "The bare lemma (page-title tail, no asterisk).",
          "title": "Entry Id",
          "type": "string"
        },
        "word_class": {
          "description": "The part-of-speech section, e.g. 'noun'.",
          "title": "Word Class",
          "type": "string"
        },
        "found": {
          "const": true,
          "default": true,
          "title": "Found",
          "type": "boolean"
        },
        "headword": {
          "default": "",
          "description": "The headword as printed, asterisk included: '*tiɣri'.",
          "title": "Headword",
          "type": "string"
        },
        "etymology": {
          "default": "",
          "description": "The entry's etymology line, plain text; may be empty.",
          "title": "Etymology",
          "type": "string"
        },
        "glosses": {
          "description": "The entry's English glosses — also what an eng search matches.",
          "items": {
            "type": "string"
          },
          "title": "Glosses",
          "type": "array"
        },
        "tree": {
          "description": "The descendants tree in page order; empty when the entry records no reflexes.",
          "items": {
            "$ref": "#/$defs/DescendantNode"
          },
          "title": "Tree",
          "type": "array"
        },
        "source": {
          "default": "Wiktionary, the free dictionary (en.wiktionary.org), Proto-Scythian reconstruction entries. Wikimedia Foundation. Text available under CC BY-SA 4.0; attribution and share-alike required when republishing. (CC BY-SA 4.0)",
          "title": "Source",
          "type": "string"
        }
      },
      "required": [
        "entry_id",
        "word_class"
      ],
      "title": "ScythianDescendants",
      "type": "object"
    }
  },
  "title": "scythian_get_descendantsOutput"
}

社区

评价此服务器

证据

最近观测

已验证未记录版本2 个工具
已验证未记录版本2 个工具