mcpField
E
Eldertongue

Eldertongue

远程服务
eldertongue.com科研与教育01 周前更新

关于 Eldertongue

Eldertongue 是托管式、只读的古英语词典服务,面向需要结构化且可引用语言数据的 Agent、编辑和开发者。它提供词头、屈折形式、词形识别、现代英语反向查询及《贝奥武夫》词语检索,也提供对应的 REST 接口。

主要功能

  1. 01查询古英语词头
  2. 02获取屈折变化表
  3. 03识别屈折词形
  4. 04按英语词查询古英语对应词
  5. 05检索《贝奥武夫》中的词语

适用场景

  1. 01查询词义和语法信息
  2. 02分析不熟悉的屈折词形
  3. 03查找英语词对应的古英语候选词
  4. 04根据诗行引用定位《贝奥武夫》中的词语

MCP 相关

托管的只读 MCP 服务位于 `https://eldertongue.com/mcp`,通过 Streamable HTTP 提供五种词典查询工具,无需身份验证。另有对应的 REST 接口。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://eldertongue.com/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

工具

详细介绍

eldertongue — 古英语词典 MCP 服务

一个远程 模型上下文协议 服务,为 LLM Agent 和编辑器提供对 eldertongue.com 的只读访问。该网站是一部基于 Wiktionary 数据构建的古英语(盎格鲁-撒克逊语)词典。

词典收录约 14,000 个词条页面,还支持反向查询 现代英语 → 古英语,并提供完整的 《贝奥武甫》 诗行索引。本仓库包含面向公众的文档、客户端配置示例,以及适用于托管 MCP 端点的 Agent 技能。服务本身是托管式管理服务——这里没有可供运行的代码。

Eldertongue MCP connector — tool definition quality and endpoint health on Glama

服务器的人类可读概览——包括五个工具、客户端设置、使用限制和许可——请见 https://eldertongue.com/mcp-server。

适用对象

  • Agent 和助手:需要查询、变形或消歧古英语单词,并希望获取指向稳定页面 URL 的引文。
  • 编辑器和 IDE(Claude Desktop、Claude Code、Cursor、VS Code):支持 MCP,并需要现成的历史语言学参考工具。
  • 开发者:更倾向于使用纯 REST,而非 MCP——每个工具都有同源 REST 对应接口(见下表)。

如果只需手动查看释义,直接访问网站最快。此端点旨在让程序获取结构化且可引用的数据。

项目

网站https://eldertongue.com
MCP 端点https://eldertongue.com/mcp(Streamable HTTP,无需身份验证)
仓库https://github.com/gowinder/eldertongue-mcp
MCP 注册表io.github.gowinder/eldertongue(条目)
代码许可MIT(本仓库,见 LICENSE)
数据许可CC BY-SA 4.0(词典内容)
联系方式mailto:[email protected]
Logologo-512.png · logo-1024.png

打包

本仓库也是一个可移植的 Agent Plugins 软件包:plugin.json 存放清单,mcp.json 声明托管的 Streamable HTTP 服务,skills/old-english-lookup/ 包含 Agent 技能。实现了该格式的客户端可以直接从仓库 URL 加载 MCP 服务和技能。

server.json 是托管端点的 官方 MCP 注册表 清单;它以 io.github.gowinder/eldertongue 发布(版本 1.0.0,streamable-http)。

端点

用途URL备注
MCP 服务https://eldertongue.com/mcpStreamable HTTP 传输,只读,无需身份验证
OpenAPI 3.1https://eldertongue.com/openapi.jsonREST 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 — 《贝奥武甫》索引GET /api/beowulf?word=与 beowulf_occurrences 返回相同数据
REST — 健康检查GET /api/health存活状态检查

所有 REST 路径的根地址均为 https://eldertongue.com。

工具

该 MCP 服务提供五个工具。每个工具都接受一个字符串参数,并返回 JSON。

每次成功的 tools/call 都会返回两个 text 内容块:

  1. 工具结果,以格式化的 JSON 表示——即下方各工具中展示的对象;
  2. 固定的来源行,可直接传递给读者:
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 的结果仍然是成功,因此同样会包含这两个内容块。只有错误(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、一个或多个 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 会从其配置文件中读取 mcpServers 配置块(macOS 上的 ~/Library/Application Support/Claude/claude_desktop_config.json,Windows 上的 %APPDATA%\Claude\claude_desktop_config.json):

{
  "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 键,并显式设置 type 为 http:

{
  "servers": {
    "eldertongue": {
      "type": "http",
      "url": "https://eldertongue.com/mcp"
    }
  }
}

数据与许可

词典内容源自 Wiktionary(通过 kaikki.org 的古英语提取数据),并依据 知识共享署名—相同方式共享 4.0 国际许可协议(CC BY-SA 4.0)授权。

如果你使用这些数据——无论是在回答、应用还是数据集中——都必须:

  1. 注明来源:Wiktionary 和 eldertongue.com。
  2. 提供回链:链接到你所用的具体词条页面,例如 eldertongue.com/word/cyning,并链接到 署名页面。
  3. 以相同许可协议分享衍生内容(CC BY-SA 4.0)。

本仓库中的代码示例和配置依据 MIT 许可协议授权(见 LICENSE)。MIT 许可协议适用于代码,不适用于词典数据;词典数据仍依据 CC BY-SA 4.0 授权。

隐私与速率限制

  • 只读。 没有写入、上传或账户相关端点。服务仅响应查询。
  • 无需身份验证。 无需 API 密钥、令牌或账户。
  • 不跟踪。 请求不会关联到用户,也不会用于建立用户画像。
  • 合理的速率限制。 服务会应用合理的速率限制,以确保所有人都能使用。批量或高流量客户端应预期需要对 429 响应进行排队和退避,而不是持续轰击端点。

给 Agent 的说明

  • 展示结果时,请引用工具返回的 pageUrl(或相关的 formUrl / 诗句 url),以便读者在 eldertongue.com 上核实词条。
  • 查询定义时优先使用 lookup_headword,查询完整变格表时使用 inflect,仅有屈折变化形式时使用 identify_form,进行英语 → 古英语翻译时使用 english_to_old_english,查找文本见证时使用 beowulf_occurrences。
  • 古英语拼写并未标准化。如果查询无结果,请尝试去掉长音符号后重试,或对你实际拥有的形式使用 identify_form。
  • 请参阅 skills/old-english-lookup/SKILL.md,了解可直接使用、封装这些工具的 Agent 技能。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。