Skip to main content
Glama

vocabit-mcp

npm license

一个用于 Vocabit(闪卡应用)的 MCP 服务器。 它让 AI 助手 能把学习集写入真实手机上的真实应用,然后还能读回学习者真正用它学得怎么样

大多数 MCP 服务器都只是从 API 读取数据。这个则形成了一个闭环:

flowchart LR
    A["Assistant<br/>teaches a topic"] --> B["create_study_set"]
    B --> C["Set appears in the<br/>Vocabit app"]
    C --> D["Learner works<br/>through it"]
    D --> E["get_set_results"]
    E -->|weak cards| A

有意思的工具并不是 create_study_set —— 随便什么都能生成闪卡。 真正有意义的是 get_set_results:学习者把哪些卡片标成了 困难,哪些卡片从未摸到, 每张卡片复习了多少次。下一组学习集应该基于这些来构建,而不是靠猜。

30 秒上手

无需后端、无需账户、无需 API 密钥:

npx -y vocabit-mcp --demo

演示模式会让同一个服务器连接到一个内存中的 Vocab,里面预置了学习集。 创建一个学习集、向它要结果,一个确定性的替身学习者就会把它完整过一遍——响应中会标记为 simulated,因此绝不会被误认为真实数据。

想拿一个 UI 来把玩一下:

npx @modelcontextprotocol/inspector npx -y vocabit-mcp --demo

安装

已在 MCP Registry 中登记为 io.github.JohnBilousov/vocabit,所以能读取该注册表的客户端都能自己找到它。

claude mcp add vocabit -- npx -y vocabit-mcp
{
  "mcpServers": {
    "vocabit": {
      "command": "npx",
      "args": ["-y", "vocabit-mcp"],
      "env": {
        "VOCABIT_BASE_URL": "https://your-vocabit-backend.example.com",
        "VOCABIT_AGENT_KEY": "your-agent-key"
      }
    }
  }
}

去掉 env 块即可在演示模式下运行。

功能举

工具

作用

vocabit_health

检查连接,以及服务器处于哪种模式。

create_study_set

把一个学习集发布到学习者的应用上。返回一个可在设备上打开它的 deeplink

list_study_sets

按最新优先顺序,显示最近的学习集,并附带上进度的总和。

get_study_set

查看某个学习集的完整内容,以及助手附带的问题分类和句子。

get_set_results

反馈的另一半。 每张卡片的 weakCardsuntouchedCards、到期卡片,以及状态。

update_study_set

修改标题、重加标签或追加卡片 —— 通常是读完结果后的后续动作。

notify_learner

通过 Telegram 发送一条有学习集在等待的通知。

delete_study_set

从应用中移除一个学习集。学习历久会被保留。

同时开放了 vocabit://set/{setId} 资源(一个以 JSON 呈现、可列举的学习集)和一个 study-session prompt,它会引导完成整个学习闭环。

卡片状态

进度来自应用内置的间隔重复引擎,而不是来自助手:

Status

Meaning

new

从未复习。

struggling

学习者将其标为困难

learning

将其标为良好

mastered

将其标为容易

一整组 completed: true 意味着所有卡片不再是 new

落地模式

把服务器指向一个已经前置可用后端提供商的 Vocabit 后端:

export VOCABIT_BASE_URL=https://your-vocabit-backend.example.com
export VOCABIT_AGENT_KEY=...   # must match one of AGENT_API_KEYS on the backend
npx -y vocabit-mcp

变量

用途

VOCABIT_BASE_URL

后端基础 URL。

VOCABIT_AGENT_KEY

会作为 X-Agent-Key 发送。

VOCABIT_USER_ID

学习者的 Firebase UID。可选;后端有默认值。

VOCABIT_TERM_LANGUAGE / VOCABIT_DEFINITION_LANGUAGE

新学习集的默认语言,例如 de / en

VOCABIT_TELEGRAM_ID

notify_learner 的接收人。

VOCABIT_TIMEOUT_MS

请求超时,默认 20000

VOCABIT_DEMO

1 表示强制走演示模式。

不设置 URL/key,服务器会直接以演示模式启动;只设置其中一个,它就会拒绝启动——配置只完成一半是失误,而不是提示。

设计要点

Demo 模式是一等客户端,养的不是一个桩。 HttpVocabitClientDemoVocabitClient 实现了同一个 VocabitClient 接口,所以没有任何工具需要单独区分“我们是不是在假装?”。审查者在拿到凭证之前就能运行环境中看着跑,这套测试套件是在真实的 MCP 传输层面上把真实的工具接口跑一遍,而不是 mock 掉 SDK,才是真的。

错误是可恢复的,不是致命。 失败调用返回 isError,不是原始信息,而是会带上后端自己的消息,要么也带一个指向模型、例如在 列表里看看. 404 的提示是“调用 list_study_sets 看看有哪些学习集”,401 则是“或改用 VOCABIT_DEMO=1 运行”。互相排斥的参数会被拒绝,并说明原因,而不是让你去猜。

输出结构在边缘保持松动。 标识性字段是必要的;其余全部可选,这样后端以后多 Sync 一个字段时,不会让一个本来就是正常运行的工具变成错误。

注解是诚实的。 delete_study_set 被标记为 destructiveHint,只读工具则是 readOnlyHintnotify_learner 会去通知一个真实的人,而他的说明也写的是“请节制使用”。

开发

git clone https://github.com/JohnBilousov/vocabit-mcp && cd vocabit-mcp
npm install
npm run build
npm test          # tool surface + full loop over an in-memory MCP transport
npm run inspect   # demo mode in the MCP Inspector
src/
  index.ts        CLI entry, stdio transport
  config.ts       env → Config, demo-mode resolution
  server.ts       tool / resource / prompt registration
  schemas.ts      zod input and output shapes
  format.ts       human-readable summaries next to structuredContent
  client/
    types.ts      wire types + VocabitClient contract
    http.ts       live backend
    mock.ts       in-memory backend for demo mode

路线图

  • Streamable HTTP 传输,并兼容 stdio

  • 在没有后端默认 UID 的情况下支持多学习者

  • 音频发音卡片

  • 发布到 MCP Registry

许可证

MIT © Ivan Bilousov

-
license - not tested
Not graded
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/JohnBilousov/vocabit-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server