vocabit-mcp
vocabit-mcp
一个用于 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 块即可在演示模式下运行。
功能举
工具 | 作用 |
| 检查连接,以及服务器处于哪种模式。 |
| 把一个学习集发布到学习者的应用上。返回一个可在设备上打开它的 |
| 按最新优先顺序,显示最近的学习集,并附带上进度的总和。 |
| 查看某个学习集的完整内容,以及助手附带的问题分类和句子。 |
| 反馈的另一半。 每张卡片的 |
| 修改标题、重加标签或追加卡片 —— 通常是读完结果后的后续动作。 |
| 通过 Telegram 发送一条有学习集在等待的通知。 |
| 从应用中移除一个学习集。学习历久会被保留。 |
同时开放了 vocabit://set/{setId} 资源(一个以 JSON 呈现、可列举的学习集)和一个 study-session prompt,它会引导完成整个学习闭环。
卡片状态
进度来自应用内置的间隔重复引擎,而不是来自助手:
|
|
| 从未复习。 |
| 学习者将其标为困难。 |
| 将其标为良好。 |
| 将其标为容易。 |
一整组 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变量 | 用途 |
| 后端基础 URL。 |
| 会作为 |
| 学习者的 Firebase UID。可选;后端有默认值。 |
| 新学习集的默认语言,例如 |
|
|
| 请求超时,默认 |
|
|
不设置 URL/key,服务器会直接以演示模式启动;只设置其中一个,它就会拒绝启动——配置只完成一半是失误,而不是提示。
设计要点
Demo 模式是一等客户端,养的不是一个桩。 HttpVocabitClient 和 DemoVocabitClient 实现了同一个 VocabitClient 接口,所以没有任何工具需要单独区分“我们是不是在假装?”。审查者在拿到凭证之前就能运行环境中看着跑,这套测试套件是在真实的 MCP 传输层面上把真实的工具接口跑一遍,而不是 mock 掉 SDK,才是真的。
错误是可恢复的,不是致命。 失败调用返回 isError,不是原始信息,而是会带上后端自己的消息,要么也带一个指向模型、例如在 列表里看看. 404 的提示是“调用 list_study_sets 看看有哪些学习集”,401 则是“或改用 VOCABIT_DEMO=1 运行”。互相排斥的参数会被拒绝,并说明原因,而不是让你去猜。
输出结构在边缘保持松动。 标识性字段是必要的;其余全部可选,这样后端以后多 Sync 一个字段时,不会让一个本来就是正常运行的工具变成错误。
注解是诚实的。 delete_study_set 被标记为 destructiveHint,只读工具则是 readOnlyHint。notify_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 Inspectorsrc/
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
This server cannot be installed
Maintenance
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
Free: turn your AI chats into spaced-repetition vocabulary. 13 tools, reads and writes.
Voice-led, FSRS-scheduled flashcards from YouTube, PDFs, web, or text. Auto-graded quizzes.
AI-powered YouTube to flashcards with spaced repetition and Anki export
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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