Eldertongue について
Eldertongueは、構造化された引用可能な言語データを必要とするエージェント、編集者、開発者向けの、ホスト型・読み取り専用の古英語辞書サービスです。見出し語、屈折形、語形判定、現代英語からの逆引き、Beowulfの用例を提供し、対応するRESTエンドポイントも備えています。
主な機能
- 01古英語の見出し語検索
- 02屈折表の取得
- 03屈折形の判定
- 04英単語から古英語候補を検索
- 05Beowulf内の語の出現箇所を検索
活用シーン
- 01単語の定義と文法情報の確認
- 02不明な屈折形の分析
- 03英単語に対応する古英語候補の検索
- 04詩行への参照付きでBeowulf内の語を特定
MCP 対応
ホスト型の読み取り専用MCPサーバーは `https://eldertongue.com/mcp` にあり、Streamable HTTP経由で5種類の辞書検索ツールを認証なしで提供します。同等のRESTエンドポイントも利用できます。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://eldertongue.com/mcpclaude mcp add --transport http gowinder-eldertongue https://eldertongue.com/mcp{"mcpServers":{"gowinder-eldertongue":{"type":"http","url":"https://eldertongue.com/mcp"}}}Cursor で開く{"servers":{"gowinder-eldertongue":{"type":"http","url":"https://eldertongue.com/mcp"}}}VS Code で開く{"mcpServers":{"gowinder-eldertongue":{"type":"http","url":"https://eldertongue.com/mcp"}}}{"mcpServers":{"gowinder-eldertongue":{"serverUrl":"https://eldertongue.com/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
eldertongue — 古英語辞書 MCP サーバー
LLM エージェントやエディターが、ウィクショナリーのデータをもとに構築された古英語(アングロ・サクソン語)辞書 eldertongue.com に読み取り専用でアクセスできるリモートのModel Context Protocolサーバーです。
この辞書には約 14,000 件の見出し語ページに加え、逆引きの現代英語 → 古英語検索と、Bēowulfの全行索引が収録されています。このリポジトリには、公開向けドキュメント、クライアント設定のサンプル、ホスト型 MCP エンドポイント用のエージェントスキルがあります。サーバー自体はホスト型のマネージドサービスであり、このリポジトリで実行するコードはありません。
サーバーの概要(5 つのツール、クライアントのセットアップ、制限、ライセンス)を人間が読みやすい形式でまとめたページは、https://eldertongue.com/mcp-server にあります。
対象ユーザー
- 古英語の単語の検索、活用、語義の判別が必要で、安定したページ URL を出典として示したいエージェントやアシスタント。
- MCP に対応し、歴史言語学向けのすぐに使える参照ツールを求めるエディターや IDE(Claude Desktop、Claude Code、Cursor、VS Code)。
- MCP よりもシンプルな REST を好む開発者 — 各ツールには同一オリジンの REST 版があります(以下の表を参照)。
定義を手作業で確認するだけなら、ウェブサイトに直接アクセスするのが最も手早い方法です。このエンドポイントは、プログラムから構造化されたデータを出典付きで取得できるようにするためのものです。
プロジェクト
| ウェブサイト | https://eldertongue.com |
| MCP エンドポイント | https://eldertongue.com/mcp(Streamable HTTP、認証不要) |
| リポジトリ | https://github.com/gowinder/eldertongue-mcp |
| MCP Registry | io.github.gowinder/eldertongue(登録情報) |
| コードライセンス | MIT(このリポジトリ。詳細は LICENSE を参照) |
| データライセンス | CC BY-SA 4.0(辞書コンテンツ) |
| 連絡先 | mailto:[email protected] |
| ロゴ | logo-512.png · logo-1024.png |
パッケージング
このリポジトリは、ポータブルな Agent Plugins パッケージでもあります。plugin.json にマニフェストがあり、mcp.json でホスト型 Streamable HTTP サーバーを宣言し、skills/old-english-lookup/ にエージェントスキルが含まれています。この形式に対応するクライアントは、リポジトリの URL から MCP サーバーとスキルを直接読み込めます。
server.json は、ホスト型エンドポイントの Official MCP Registry マニフェストです。io.github.gowinder/eldertongue(バージョン 1.0.0、streamable-http)として公開されています。
エンドポイント
| 目的 | URL | 備考 |
|---|---|---|
| MCP サーバー | https://eldertongue.com/mcp | Streamable HTTP トランスポート、読み取り専用、認証不要 |
| OpenAPI 3.1 | https://eldertongue.com/openapi.json | REST API の機械可読な説明 |
| REST — 見出し語の検索 | GET /api/lookup?word= | lookup_headword と同じデータ |
| REST — 活用形 | GET /api/inflect?word= | inflect と同じデータ |
| REST — 形式の特定 | GET /api/identify?form= | identify_form と同じデータ |
| REST — 英語 → 古英語 | GET /api/english?word= | english_to_old_english と同じデータ |
| REST — Bēowulf 索引 | GET /api/beowulf?word= | beowulf_occurrences と同じデータ |
| REST — ヘルスチェック | GET /api/health | 稼働確認 |
すべての REST パスのルートは https://eldertongue.com です。
ツール
MCP サーバーは5つのツールを公開しています。どのツールも単一の文字列引数を受け取り、JSONを返します。
成功したtools/callはすべて、2つのtextコンテンツブロックを返します。
- 各ツールの下に示すオブジェクトを、整形済みJSONとして返すツール結果。
- そのまま読者に渡せる固定のソース行。
Source: Eldertongue — Old English Dictionary, https://eldertongue.com (full declension tables, examples and Beowulf context). Please cite https://eldertongue.com when using this data.
"found": falseの結果も成功として扱われるため、同じ2つのブロックを返します。異なるのはエラー(isError: true)の場合のみです。この場合はError: …を含む単一のtextブロックを返し、ソース行はありません。
1. lookup_headword
古英語の見出し語を検索します。入力は{ "word": string }です。マクロンの有無を問わず見出し語を指定できます(cyningまたはcȳning)。見つかったかどうか、正規化された見出し語、正規ページとWiktionaryのURL、品詞、文法上の性、IPA、音節区切り、屈折または動詞のクラス、語源、語義のリストを返します。
入力:
{ "word": "cyning" }
レスポンスJSON(最初のコンテンツブロックの抜粋):
{
"found": true,
"headword": "cyning",
"pageUrl": "https://eldertongue.com/word/cyning",
"wiktionaryUrl": "https://en.wiktionary.org/wiki/cyning#Old_English",
"partOfSpeech": "noun",
"genders": ["masculine"],
"ipa": ["/ˈky.ninɡ/", "[ˈky.niŋɡ]"],
"syllables": ["ˈky", "ninɡ"],
"declension": { "label": "strong a-stem", "href": "/declension/strong-a-stem" },
"verbClass": null,
"etymology": "From Proto-West Germanic *kuning, from Proto-Germanic *kuningaz, ultimately from Proto-Indo-European *ǵenh₁- (\"to procreate\"). Equivalent to cynn + -ing.",
"senses": [
{ "definition": "king", "tags": [] }
],
"senseCount": 1,
"indexable": true
}
senses[]の項目にはdefinitionとtagsがあります。verbClassは動詞の場合に設定され、それ以外の場合はnullです。indexableは、その項目が完全なインデックス対象の見出し語ページかどうかを示します。
2. inflect
単語の屈折表または活用表全体を返します。入力は{ "word": string }です。レスポンスにはトップレベルのfound / hasInflectionフラグとinflection[]配列が含まれます。各項目は、表がある品詞の読みに対応しています。各項目にはpartOfSpeech、paradigmKind、1つ以上のtables、およびフラットなcellsリストが含まれます。すべての屈折形には、https://eldertongue.com/word/<slug>#<cellId>の形式のアンカーURLがあります。
入力:
{ "word": "cyning" }
レスポンスJSON(最初のコンテンツブロックの抜粋):
{
"found": true,
"headword": "cyning",
"pageUrl": "https://eldertongue.com/word/cyning",
"hasInflection": true,
"inflection": [
{
"partOfSpeech": "noun",
"paradigmKind": "noun",
"tables": [
{
"title": "Declension",
"kind": "noun",
"cols": ["Singular", "Plural"],
"groups": [
{
"title": null,
"rows": [
{
"label": "Nominative",
"cells": [
{ "label": "nominative singular", "forms": [{ "form": "cyning", "url": "https://eldertongue.com/word/cyning#nom-sg" }] },
{ "label": "nominative plural", "forms": [{ "form": "cyningas", "url": "https://eldertongue.com/word/cyning#nom-pl" }] }
]
},
{
"label": "Genitive",
"cells": [
{ "label": "genitive singular", "forms": [{ "form": "cyninges", "url": "https://eldertongue.com/word/cyning#gen-sg" }] },
{ "label": "genitive plural", "forms": [{ "form": "cyninga", "url": "https://eldertongue.com/word/cyning#gen-pl" }] }
]
}
]
}
]
}
],
"cells": [
{ "id": "nom-sg", "label": "nominative singular", "forms": [{ "form": "cyning", "url": "https://eldertongue.com/word/cyning#nom-sg" }] },
{ "id": "nom-pl", "label": "nominative plural", "forms": [{ "form": "cyningas", "url": "https://eldertongue.com/word/cyning#nom-pl" }] }
]
}
]
}
構造の概要:inflection[] → tables[] → groups[] → rows[] → cells[]。各行セルは{ label, forms: [{ form, url }] | null }です。フラットなcells[]配列(各項目は{ id, label, forms: [{ form, url }] })は、IDとともにすべての語形を取得したい場合に便利です。
3. identify_form
任意の屈折形(例:cyninges)を特定し、その語形を説明できる解析候補を返します。入力は{ "form": string }です。候補となる解析が複数ある場合があります。
入力:
{ "form": "cyninges" }
レスポンスJSON(最初のコンテンツブロックの抜粋):
{
"analyses": [
{
"lemma": "cyning",
"lemmaPageUrl": "https://eldertongue.com/word/cyning",
"cellId": "gen-sg",
"tag": "genitive singular",
"grammar": {
"case": "genitive",
"number": "singular"
},
"formUrl": "https://eldertongue.com/word/cyning#gen-sg"
}
]
}
grammarには、その語形が実際に示す文法範疇のみが含まれます。ここでは格と数です。該当しない範疇はnullにせず、省略されます。
4. english_to_old_english
逆引き検索:現代英語の単語を指定すると、順位付けされた古英語の候補を返します。入力は{ "word": string }です。候補はデータパイプラインのスコアに基づいて順位付けされます。各候補には短い語義と見出し語ページへのリンクがあり、レスポンスには逆引き検索ページのURLも含まれます。
入力:
{ "word": "king" }
レスポンスJSON(最初のコンテンツブロックの抜粋):
{
"candidates": [
{ "lemma": "cyning", "display": "cyning", "partOfSpeech": "noun", "score": 24, "gloss": "king", "pageUrl": "https://eldertongue.com/word/cyning" },
{ "lemma": "Friscyning", "display": "Friscyning", "partOfSpeech": "noun", "score": 15, "gloss": "king of Frisia", "pageUrl": "https://eldertongue.com/word/~friscyning" },
{ "lemma": "leodcyning", "display": "leodcyning", "partOfSpeech": "noun", "score": 12, "gloss": "king, ruler", "pageUrl": "https://eldertongue.com/word/leodcyning" }
],
"pageUrl": "https://eldertongue.com/english/king"
}
5. beowulf_occurrences
単語が『ベーオウルフ』のどこに現れるかを検索します。入力は{ "word": string }です。その単語が何回、何行に出現するか、綴りごとの内訳、および行番号、詩句のテキスト、該当行へのディープリンク(https://eldertongue.com/beowulf#l<line>)を含む出現箇所のリストを返します。occurrencesTotalは全出現数です。occurrences[]には、件数の上限内の出現箇所が含まれる場合があります。
入力:
{ "word": "cyning" }
レスポンスJSON(最初のコンテンツブロックの抜粋):
{
"times": 51,
"lines": 51,
"forms": [
{ "form": "cyning", "times": 38, "lines": 38 },
{ "form": "cyninges", "times": 7, "lines": 7 },
{ "form": "cyninga", "times": 3, "lines": 3 },
{ "form": "cyninge", "times": 3, "lines": 3 }
],
"occurrences": [
{
"line": 11,
"text": "gomban gyldan: þæt wæs gōd cyning!",
"forms": ["cyning"],
"url": "https://eldertongue.com/beowulf#l11"
}
],
"occurrencesTotal": 51
}
クライアントの設定
エンドポイントはhttps://eldertongue.com/mcpでStreamable HTTP経由のMCPに対応しています。インストールもキーの設定も不要です。configs/からクライアント用のサンプルをコピーするか、以下のスニペットを使用してください。
Claude DesktopとClaude Code
Claude Desktopは、設定ファイル(macOSでは~/Library/Application Support/Claude/claude_desktop_config.json、Windowsでは%APPDATA%\Claude\claude_desktop_config.json)からmcpServersブロックを読み込みます。
{
"mcpServers": {
"eldertongue": {
"url": "https://eldertongue.com/mcp"
}
}
}
Claude Codeでは、コマンドラインから同じリモートサーバーを追加できます。
claude mcp add --transport http eldertongue https://eldertongue.com/mcp
同等の設定は、プロジェクトルートにある.mcp.jsonに記述します。
{
"mcpServers": {
"eldertongue": {
"type": "http",
"url": "https://eldertongue.com/mcp"
}
}
}
Cursor
プロジェクト内の .cursor/mcp.json(または Cursor のグローバル MCP ファイル)にサーバーを追加します。Cursor では mcpServers キーを使用します。
{
"mcpServers": {
"eldertongue": {
"url": "https://eldertongue.com/mcp"
}
}
}
VS Code
VS Code は .vscode/mcp.json から MCP サーバーを読み込みます。このファイルでは servers キーと、http を明示した type を使用します。
{
"servers": {
"eldertongue": {
"type": "http",
"url": "https://eldertongue.com/mcp"
}
}
}
データとライセンス
辞書の内容は Wiktionary(kaikki.org の古英語データ抽出を使用)に由来し、 Creative Commons Attribution-ShareAlike 4.0 International(CC BY-SA 4.0) のライセンスで提供されています。
このデータを回答、アプリ、データセットなどで使用する場合は、次の要件を満たす必要があります。
- Wiktionary と eldertongue.com をクレジット表記してください。
- 使用した個別のエントリーページ(例: eldertongue.com/word/cyning)と、 クレジット表記ページへのリンクを記載してください。
- 派生物は同じライセンス(CC BY-SA 4.0)で共有してください。
このリポジトリ内のコードサンプルと設定は MIT ライセンスで提供されています(LICENSE を参照してください)。MIT ライセンスの対象はコードであり、引き続き CC BY-SA 4.0 の対象となる辞書データは含まれません。
プライバシーとレート制限
- 読み取り専用です。 書き込み、アップロード、アカウント用のエンドポイントはありません。サーバーは検索への応答のみを行います。
- 認証は不要です。 API キー、トークン、アカウントは必要ありません。
- 追跡はありません。 リクエストがユーザーに紐付けて記録されたり、プロフィールの作成に使用されたりすることはありません。
- 妥当なレート制限です。 サービスを誰もが利用できる状態に保つため、妥当なレート制限が適用されます。バッチ処理や大量のリクエストを送るクライアントは、エンドポイントに過剰な負荷をかけず、
429応答に対してキューイングとバックオフを行う必要があります。
エージェント向けの注意事項
- 結果を提示する際は、ツールから返される
pageUrl(または該当するformUrl/詩句のurl)を引用して、読者が eldertongue.com でエントリーを確認できるようにしてください。 - 定義には
lookup_headword、語形変化の完全な一覧にはinflect、屈折形または活用形しか分からない場合はidentify_form、英語から古英語への翻訳にはenglish_to_old_english、テキスト上の用例にはbeowulf_occurrencesを優先してください。 - 古英語の綴りは標準化されていません。検索結果が見つからない場合は、長音記号を外して再試行するか、実際の語形を指定して
identify_formを試してください。 - これらのツールを利用するエージェント用スキルについては、
skills/old-english-lookup/SKILL.mdを参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。