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です。学習者がhardとマークしたカードはどれか、一度も到達しなかったカードはどれか、各カードに何回のレビューを要したか。次のセットは、推測ではなくこの情報をもとに作られます。
30秒で試す
バックエンドもアカウントもAPIキーも不要です:
npx -y vocabit-mcp --demoデモモードでは、シード済みセットを2つ持つインメモリのVocabitに対して、同じサーバーを実行します。セットを作成して結果を求めると、決定的な代役学習者がそのセットを学習し終えた状態になっています。レスポンスにはシミュレーション結果であることが明示されるため、実データと誤認されることはありません。
UIで触って試すには:
npx @modelcontextprotocol/inspector npx -y vocabit-mcp --demoインストール
MCP Registry に io.github.JohnBilousov/vocabit-mcp として掲載されているため、レジストリを参照するクライアントは自分で見つけることができます。
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ブロックを削除してください。
ツール
Tool 列 | 機能 |
| 接続状態と、サーバーがどのモードで動いているかを確認します。 |
| 学習者のアプリにセットを公開します。デバイス上で開くディープリンクを返します。 |
| 直近のセットを新しい順に一覧表示し、各セットの進捗サマリーを表示します。 |
| セット1件の全内容と、アシスタントが添付したトピックおよびノートを返します。 |
| **フィードバック部分。**カードごとのステータス、 |
| タイトルの変更、タグの付け替え、カードの追加など。通常は結果を読んだ後のフォローアップです。 |
| セットが届いていることをTelegramで通知します。 |
| アプリからセットを削除します。学習履歴は保持されます。 |
また、vocabit://set/{setId}リソース(JSON形式のセットを一覧可能)と、ループ全体を進めるstudy-sessionプロンプトも公開しています。
カードの状態
進捗はアシスタントではなく、アプリの間隔反復エンジンから得られます。
ステータス | 意味 |
| 一度も復習されていない。 |
| 学習者がhardとマークした。 |
| goodとマークされた。 |
| easyとマークされた。 |
newのカードがなくなると、そのセットはcompleted: trueを報告します。
ライブモード
エージェント API が有効になった 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もキーも設定しなければ、サーバーはデモモードで起動します。どちらか一方だけ設定すると、起動を拒否します。中途半端な設定はヒントではなく、誤りです。
設計ノート
デモモードはスタブのおとしではなく、一級のクライアントです。
HttpVocabitClientとDemoVocabitClientは同じVocabitClientインターフェースを実装しているため、どのツールにも「いまは仮の実装か?」という分岐がありません。レビューアは認証情報を取得する前からサーバーを試すことができ、テストスイートはSDKをモックするのではなく、実際のMCPトランスポート上で実際のツール表面を検証します。
**エラーは致命的ではなく、回復可能です。**失敗した呼び出しは、バックエンド自身のメッセージと、モデル向けのヒントを添えてisErrorとして返ります。404なら「list_study_setsを呼び出してどのセットが存在するか確認してください」、401なら「VOCABIT_DEMO=1で実行してください」と返します。互いに排他になる引数は、推測ではなく説明付きで拒否されます。
**出力スキーマは端の部分を緩やかに保ちます。**識別用のフィールドは必須、それ以外はすべて任意扱いです。そのため、バックエンドのフィールドが後から増えたとしても、動いているツールが検証エラーになったりしません。
注釈(アノテーション)は誠実です。 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ロードマップ
stdio に加えて、ストリーム可能なHTTPトランスポートを実装する
バックエンドの既定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