EngrAmo について
EngrAmo MCP は、AI クライアントを間隔反復型フラッシュカードプラットフォーム EngrAmo に接続します。ホスト型 OAuth またはローカル設定に対応し、ローカルで設定するとカード音声のツールも利用できます。
主な機能
- 01間隔反復カードの作成と学習
- 02ホスト型 OAuth またはローカル設定で接続
- 03設定した Gemini キーによるカード音声生成
- 04複数の MCP クライアントに対応
活用シーン
- 01学習内容から復習カードを作成
- 02AI クライアントで既存の EngrAmo カードを学習
- 03ローカル設定でカード音声を生成
MCP 対応
MCP クライアントに EngrAmo のフラッシュカード機能を提供します。ホスト型 HTTP サーバーまたはローカルの stdio で動作し、ローカル設定では音声合成ツールを有効にできます。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://mcp.engramo.app/claude mcp add --transport http app-engramo https://mcp.engramo.app/{"mcpServers":{"app-engramo":{"type":"http","url":"https://mcp.engramo.app/"}}}Cursor で開く{"servers":{"app-engramo":{"type":"http","url":"https://mcp.engramo.app/"}}}VS Code で開く{"mcpServers":{"app-engramo":{"type":"http","url":"https://mcp.engramo.app/"}}}{"mcpServers":{"app-engramo":{"serverUrl":"https://mcp.engramo.app/"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
engramo-mcp
間隔反復型フラッシュカードプラットフォームのEngrAmo向けMCPサーバーです。
ホスト型サーバー
https://mcp.engramo.app/のホスト型サーバーはインストール不要です。Dynamic Client RegistrationによるOAuth 2.0に対応しており、クライアントからEngrAmoのサインインページに移動し、EngrAmoのメールアドレスとパスワードでサインインして承認するだけです。貼り付けるAPIトークンは必要ありません。このページからは新規登録できないため、先にEngrAmoアプリでアカウントを作成してください。EngrAmoはClaude Connectors Directoryに掲載されています。セットアップガイド:ClaudeとChatGPT。公開ドキュメントはhttps://engramo.app/connect/にあります。アクセス権はEngrAmoアプリの「設定」→「接続済みアプリ」からいつでも取り消せます。
前提条件
- EngrAmoアカウント
- EngrAmo APIトークン — アカウントの「設定」→「APIトークン」ページから生成してください。以下のローカル(
stdio)セットアップと、OAuthを使わないリモートクライアントでのみ必要です。ホスト型コネクターでは代わりにOAuthを使用します。
環境
engramo-mcpは環境に依存しません。バイナリ自体に「dev」や「prod」は組み込まれていません。接続先のサーバーは、クライアント設定で指定するENGRAMO_API_URLと、同じ環境で発行されたトークンによって決まります。
| 環境 | ENGRAMO_API_URL | MCPサーバーURL(httpトランスポートのみ) | 対象 |
|---|---|---|---|
| 本番(以下のすべての例でのデフォルト) | https://api.engramo.app | https://mcp.engramo.app | 実際のアカウント — 特別な理由がなければこちらを使用してください |
| 開発 | https://api-engram.volmyr.com | https://mcp-engramo.volmyr.com | EngrAmoチーム/内部テスト専用 |
**開発環境と本番環境は、アカウントも別々のバックエンドです。**一方で発行されたトークンは、もう一方では認証に使えません。ENGRAMO_API_URLを切り替える場合は、必ず切り替え先と同じ環境の「設定」→「APIトークン」ページで生成したトークンも使用してください。
ENGRAMO_API_URLとMCPサーバーURLは別のものです。ENGRAMO_API_URLはEngrAmoの通常のバックエンドであり、クライアントが直接接続することはありません。stdio設定(Claude Desktop、Claude Code、Codex、VS Code、Cursor、Windsurf、Gemini CLI、以下のAntigravity stdio)では、ローカルで起動するバイナリがバックエンドを呼び出すため、クライアントでENGRAMO_API_URLとENGRAMO_API_TOKENを一緒に設定します。http/リモート設定(Antigravity remote、ChatGPT)では、クライアントは代わりにserverUrlとしてMCPサーバー自体のURL(上記のmcp.engramo.app/mcp-engramo.volmyr.com)を指定し、セッションごとに別途認証します。デフォルトではOAuthを使いますが、ログイン画面を省略したい場合は静的なAuthorization: Bearerヘッダーも使用できます。httpモードでもENGRAMO_API_URLは必要ですが、engramo-mcp httpをデプロイする側が環境変数として設定するものであり、クライアントが設定することはありません。
インストール
MCPサーバーをグローバルにインストールすると、システムコマンドとして使用できます。
npm install -g @engramo/mcp
macOS(arm64、x64)、Linux(arm64、x64)、Windows(x64)向けのビルド済みバイナリが提供されています。それ以外のプラットフォームでは、cargo build --releaseでソースからビルドしてください。
インストールを確認します。
engramo-mcp --version
または、インストールを完全に省略し、クライアント設定で
npx -y @engramo/mcpを使用してください。npmが初回起動時にバイナリを自動でダウンロードします。
クライアントの選択
どの MCP クライアントでも使用できます。ローカルのテキスト読み上げにはstdio
(ローカルで起動する)接続が必要なため、リモート専用のクライアントでは利用できません。
| クライアント | モデル | ローカル TTS | セットアップ |
|---|---|---|---|
| Claude(claude.ai、Desktop、モバイル) | Claude | ❌ — ホスト型コネクターのみ。ローカル TTS は意図的に利用できません | Claude(ホスト型コネクター) — 推奨:Connectors Directory からインストールするだけで、ダウンロードは不要です |
| Claude Desktop 拡張機能 | Claude | ✅ | Claude Desktop — カード音声にはこちらを使用します:ワンクリックで拡張機能をインストールでき、Node.js や設定の編集は不要です。無料プランでもローカル拡張機能を利用できます |
| Claude Code | Claude | ✅ | Claude Code |
| Codex(CLI / IDE 拡張機能) | OpenAI のモデル — ChatGPT アカウントでサインイン | ✅ | Codex |
| VS Code(GitHub Copilot) | GPT / Claude / Gemini | ✅ | VS Code |
| Cursor | GPT / Claude / Gemini | ✅ | Cursor |
| Windsurf | GPT / Claude / Gemini | ✅ | Windsurf |
| Gemini CLI | Gemini | ✅ | Gemini CLI |
| Antigravity | Gemini / Claude / GPT | ✅ stdio / ❌ リモート | Antigravity |
| ChatGPT | OpenAI のモデル | ❌ — リモートコネクターのみ(OAuth)。ローカル TTS は意図的に利用できません | ChatGPT |
Claude Desktop
ほとんどの Claude Desktop ユーザーは、代わりに Connectors Directory からホスト型コネクターを追加してください。 ダウンロードもトークンの貼り付けも不要で、claude.ai やモバイルでも使用できます。ローカルサーバーでのみ利用できる カード音声が必要な場合は、以下の拡張機能を使用してください。
ワンクリック拡張機能(カード音声用)
- 最新リリースから
engramo.mcpbをダウンロードします (Intel および Apple Silicon 搭載の macOS、Windows x64、Linux x64 および arm64 に対応)。 - ダブルクリックするか Claude Desktop にドラッグし、Installをクリックします。Claude Desktop には、この拡張機能がコンピューター上のすべてにアクセスできること、および開発者が Anthropic によって検証されていないことを示す赤い警告が表示されます。ファイルからインストールしたすべての拡張機能にこの警告が表示されます。Connectors Directory ではデスクトップ拡張機能が掲載されなくなっており、警告の内容は正確です。この拡張機能はユーザー権限で
engramo-mcpバイナリを実行します。 - EngrAmo API トークンを貼り付けます。必要に応じて、カード音声を有効にするため、Gemini API キーも(カンマ区切りで)入力します。Claude Desktop は両方を OS のキーチェーンに保存します。
Node.js も設定ファイルも不要です。後からトークンやキーを変更するには、Settings → Extensions → EngrAmo →
Configureを開きます。拡張機能は自動更新されないため、新しいengramo.mcpbをインストールしてアップグレードしてください。この拡張機能のツールはChatの会話で利用でき、Claude Desktop の Code モードでは利用できません。このバンドルは、リリースワークフローによってmcpb/manifest.jsonからビルドされます。ダウンロードを確認するには、
gh attestation verify engramo.mcpb -R engramo-developer/engramo-mcp --signer-workflow engramo-developer/engramo-mcp/.github/workflows/release.yml --source-ref refs/tags/vX.Y.Z
(リリースタグに置き換えてください)を実行するか、リリースの
engramo.mcpb.sha256と照合してください。
手動設定
設定 → 開発者 → 設定を編集を開くか、ファイルを直接編集します。
~/Library/Application Support/Claude/claude_desktop_config.json(macOS)または
%APPDATA%\Claude\claude_desktop_config.json(Windows)を編集します。
npx を使用する場合(事前のインストールは不要):
{
"mcpServers": {
"engramo": {
"command": "npx",
"args": ["-y", "@engramo/mcp"],
"env": {
"ENGRAMO_API_URL": "https://api.engramo.app",
"ENGRAMO_API_TOKEN": "your-token",
"ENGRAMO_TTS_GEMINI_API_KEYS": "your-gemini-key"
}
}
}
}
ENGRAMO_TTS_GEMINI_API_KEYS は任意です。ご自身の Gemini クォータを使って list_tts_voices/generate_card_audio を有効にします。無効にするには、この行を省略します。テキスト読み上げを参照してください。
グローバルインストールを使用する場合(npm install -g @engramo/mcp):
{
"mcpServers": {
"engramo": {
"command": "engramo-mcp",
"env": {
"ENGRAMO_API_URL": "https://api.engramo.app",
"ENGRAMO_API_TOKEN": "your-token"
}
}
}
}
編集後、Claude Desktop を完全に終了し(macOS では ⌘Q を押します。ウィンドウを閉じるだけでは不十分です)、再起動してください。
サーバーが表示されない場合は、ログ(macOS では ~/Library/Logs/Claude/mcp-server-engramo.log、Windows では %APPDATA%\Claude\logs\)を確認してください。Gemini キーがログに記録されることはありません。
Claude(ホステッドコネクター)
インストールもトークンも不要で、claude.ai、Claude Desktop、Claude モバイルからホステッドサーバーを使用できます。
- コネクターディレクトリの EngrAmoを開きます(または設定 → コネクター → 閲覧を開き、EngrAmo を検索します)。
- 接続を選択し、EngrAmo アカウントにサインインして、承認します。
これはコミュニティコネクターです。Anthropic は自動レビューを実施していますが、検証はしていないため、Claude では接続前に短い通知が表示されます。ディレクトリを利用できない場合(たとえば、組織によって制限されている場合)は、URL を使って追加します。設定 → コネクター → カスタムコネクターを追加を選択し、https://mcp.engramo.app/ を貼り付けてから、接続を選択します。
ホステッドツールをすべて利用できるようになります。ほかのすべてのリモート接続と同様に、ローカルのテキスト読み上げは利用できません。テキスト読み上げにはClaude Desktop拡張機能を使用してください。
Claude Code
--scope user を指定して、一度登録すればすべてのプロジェクトでサーバーを使用できます。
claude mcp add engramo --scope user \
-e ENGRAMO_API_URL=https://api.engramo.app \
-e ENGRAMO_API_TOKEN=your-token \
-e ENGRAMO_TTS_GEMINI_API_KEYS=your-gemini-key \
-- npx -y @engramo/mcp
ENGRAMO_TTS_GEMINI_API_KEYS は任意です。ご自身の Gemini クォータを使って list_tts_voices/generate_card_audio を有効にします。無効にするには、-e ENGRAMO_TTS_GEMINI_API_KEYS=… の行を省略します。テキスト読み上げを参照してください。
グローバルインストールを使用する場合は、npx -y @engramo/mcp を engramo-mcp に置き換えます。
Codex
OpenAI Codex CLI と Codex IDE 拡張機能は、同じ設定ファイル ~/.codex/config.toml を共有します。これは、ローカルのテキスト読み上げを利用しながらChatGPT アカウントのモデルを使用する方法です(ChatGPT アプリのリモートコネクターではテキスト読み上げを利用できません)。
npx を使用する場合(事前のインストールは不要):
[mcp_servers.engramo]
command = "npx"
args = ["-y", "@engramo/mcp"]
tool_timeout_sec = 300 # default 60s; a 20-card generate_card_audio batch can take longer
env = { ENGRAMO_API_URL = "https://api.engramo.app", ENGRAMO_API_TOKEN = "your-token", ENGRAMO_TTS_GEMINI_API_KEYS = "your-gemini-key" }
ENGRAMO_TTS_GEMINI_API_KEYS は任意です。ご自身の Gemini クォータを使って list_tts_voices/generate_card_audio を有効にします。無効にするには、env から省略します。テキスト読み上げを参照してください。
グローバルインストールを使用する場合(npm install -g @engramo/mcp):
[mcp_servers.engramo]
command = "engramo-mcp"
env = { ENGRAMO_API_URL = "https://api.engramo.app", ENGRAMO_API_TOKEN = "your-token" }
VS Code(GitHub Copilot エージェントモード)
ワークスペースの .vscode/mcp.json に追加するか、コマンドパレットからMCP: ユーザー設定を開くを実行して、ユーザー全体の設定を行います。inputs で "password": true を指定すると、VS Code がシークレットの入力を求めて自身で保存するため、ファイルに直接記述する必要がありません。最上位のキーは mcpServers ではなく servers であることに注意してください。
npx を使用する場合(事前のインストールは不要):
{
"inputs": [
{ "type": "promptString", "id": "engramo-token", "description": "EngrAmo API token", "password": true },
{ "type": "promptString", "id": "gemini-key", "description": "Gemini API key (for TTS)", "password": true }
],
"servers": {
"engramo": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@engramo/mcp"],
"env": {
"ENGRAMO_API_URL": "https://api.engramo.app",
"ENGRAMO_API_TOKEN": "${input:engramo-token}",
"ENGRAMO_TTS_GEMINI_API_KEYS": "${input:gemini-key}"
}
}
}
}
ENGRAMO_TTS_GEMINI_API_KEYS は任意です。ご自身の Gemini クォータを使って list_tts_voices/generate_card_audio を有効にします。無効にするには、この行(および gemini-key の入力)を省略します。テキスト読み上げを参照してください。
グローバルインストールを使用する場合は、"command": "engramo-mcp" を指定し、args を削除します。
Cursor
~/.cursor/mcp.json に追加します。
npx を使用する場合(事前のインストールは不要):
{
"mcpServers": {
"engramo": {
"command": "npx",
"args": ["-y", "@engramo/mcp"],
"env": {
"ENGRAMO_API_URL": "https://api.engramo.app",
"ENGRAMO_API_TOKEN": "your-token",
"ENGRAMO_TTS_GEMINI_API_KEYS": "your-gemini-key"
}
}
}
}
ENGRAMO_TTS_GEMINI_API_KEYS は任意です。ご自身の Gemini クォータを使って list_tts_voices/generate_card_audio を有効にします。無効にするには、この行を省略します。テキスト読み上げを参照してください。
グローバルインストールを使用する場合(npm install -g @engramo/mcp):
{
"mcpServers": {
"engramo": {
"command": "engramo-mcp",
"env": {
"ENGRAMO_API_URL": "https://api.engramo.app",
"ENGRAMO_API_TOKEN": "your-token"
}
}
}
}
Windsurf
~/.codeium/windsurf/mcp_config.json に追加します。
npx を使用する場合(事前のインストールは不要です):
{
"mcpServers": {
"engramo": {
"command": "npx",
"args": ["-y", "@engramo/mcp"],
"env": {
"ENGRAMO_API_URL": "https://api.engramo.app",
"ENGRAMO_API_TOKEN": "your-token",
"ENGRAMO_TTS_GEMINI_API_KEYS": "your-gemini-key"
}
}
}
}
ENGRAMO_TTS_GEMINI_API_KEYS は任意です。設定すると、ご自身の Gemini クォータを使用して list_tts_voices/generate_card_audio を利用できます。無効にするには、この行を省略してください。テキスト読み上げを参照してください。
グローバルインストールを使用する場合(npm install -g @engramo/mcp):
{
"mcpServers": {
"engramo": {
"command": "engramo-mcp",
"env": {
"ENGRAMO_API_URL": "https://api.engramo.app",
"ENGRAMO_API_TOKEN": "your-token"
}
}
}
}
Gemini CLI
~/.gemini/settings.json に追加します。
npx を使用する場合(事前のインストールは不要です):
{
"mcpServers": {
"engramo": {
"command": "npx",
"args": ["-y", "@engramo/mcp"],
"env": {
"ENGRAMO_API_URL": "https://api.engramo.app",
"ENGRAMO_API_TOKEN": "your-token",
"ENGRAMO_TTS_GEMINI_API_KEYS": "your-gemini-key"
}
}
}
}
ENGRAMO_TTS_GEMINI_API_KEYS は任意です。設定すると、ご自身の Gemini クォータを使用して list_tts_voices/generate_card_audio を利用できます。無効にするには、この行を省略してください。テキスト読み上げを参照してください。
グローバルインストールを使用する場合(npm install -g @engramo/mcp):
{
"mcpServers": {
"engramo": {
"command": "engramo-mcp",
"env": {
"ENGRAMO_API_URL": "https://api.engramo.app",
"ENGRAMO_API_TOKEN": "your-token"
}
}
}
}
Antigravity
Antigravity は独自の設定ファイルを使って両方のトランスポートを直接サポートしているため、ChatGPT のような個別のリモートコネクター UI は必要ありません。~/.gemini/config/mcp_config.json(グローバル)または .agents/mcp_config.json(ワークスペースローカル)に追加します。
stdio、npx 経由(事前のインストールは不要です):
{
"mcpServers": {
"engramo": {
"command": "npx",
"args": ["-y", "@engramo/mcp"],
"env": {
"ENGRAMO_API_URL": "https://api.engramo.app",
"ENGRAMO_API_TOKEN": "your-token"
}
}
}
}
Streamable HTTP 経由のリモート接続(稼働中の engramo-mcp http デプロイ先を指定します。下記を参照してください)。
engramo-mcp は OAuth 2.1 の動的クライアント登録をサポートしているため、Antigravity は認証を自動的に処理できます。トークンを貼り付けたり管理したりする必要はありません。
{
"mcpServers": {
"engramo": {
"serverUrl": "https://mcp.engramo.app/"
}
}
}
代わりに静的トークンを使用する場合(OAuth ログインのプロンプトは表示されません)は、headers を手動で追加します。
{
"mcpServers": {
"engramo": {
"serverUrl": "https://mcp.engramo.app/",
"headers": {
"Authorization": "Bearer your-token"
}
}
}
}
リモートトランスポートではテキスト読み上げを利用できません。generate_card_audio を使用する場合は、上記の stdio 設定を使用してください。
ChatGPT での使用(Streamable HTTP 経由のリモート MCP)
engramo-mcp はリモートサーバーとしても動作するため、ローカルに何もインストールせずにカスタムコネクター(開発者モード)として ChatGPT に追加できます。ホストされているサーバー https://mcp.engramo.app/ は、すでにこの方法で動作します。これは同じバイナリで、デフォルトの stdio ではなく http サブコマンドを使います。そのため、1 つのコードベースから、Claude Desktop ユーザー(stdio)と ChatGPT ユーザー(HTTP)の両方にサービスを提供するセルフホスト可能なデプロイを構築できます。
ENGRAMO_API_URL=https://api.engramo.app MCP_BIND_ADDR=0.0.0.0:8080 engramo-mcp http
この設定では、MCP を Streamable HTTP でルートの POST / に提供します。stdio モードとは異なり、グローバルな ENGRAMO_API_TOKEN はありません。各セッションは、それぞれの Authorization: Bearer <token> ヘッダーで認証されるため、1 つのデプロイで複数のユーザーに安全に同時対応できます(EngrAmo API への各セッションの呼び出しでは、そのセッションのトークンのみが使用されます)。形式が正しくない、または空のベアラートークンを含むリクエストは、セッションの作成前に 401 で拒否されます。セッションが作成された後は、そのセッション上のすべての後続リクエストに、セッション開始時と同じトークンを含める必要があります。
http モードでは、認証不要の GET /version も提供されます。このエンドポイントは {"name","version"} を返します(このバイナリのビルドバージョン。コンパイル時に Cargo.toml から読み取られます)。MCP ハンドシェイクなしでデプロイの稼働状況やバージョンを確認するのに便利です。
ChatGPT で開発者モードを有効にし(Settings → Connectors → Advanced → Developer mode)、https://mcp.engramo.app/(またはご自身のデプロイ先の https://<host>/)を指定するアプリを追加します。ChatGPT は OAuth 経由でログインします。EngrAmo アカウントでサインインして承認すれば完了です。API トークンを貼り付ける必要はありません。(OAuth に対応していないクライアントでは、Settings → API Tokens で取得した EngrAmo API トークンを、静的な Authorization: Bearer ヘッダーとして送信できます。)接続後は、*「スペインのレストランで使う10枚のカードデッキを作って」や「この会話をフラッシュカードにして」*といったプロンプトで generate_catalog_with_cards が直接呼び出されます。結果は https://study.engramo.app/catalog/<shortId> で開いて学習できます。
generate_card_audioは ChatGPT コネクターでは利用できません。これはリモート接続であり、ローカルのテキスト読み上げは設計上 stdio 専用です。ローカルのテキスト読み上げで ChatGPT アカウントのモデルを使用する場合は、代わりに Codex を使用してください。
公開 ChatGPT アプリディレクトリへの掲載は近日中に予定されています。それまでは、上記のように開発者モードでアプリを追加してください。
ChatGPT プラグインパッケージ(メンテナー向け)
ディレクトリの一覧は、chatgpt-plugin/ から作成したプラグイン ZIP として platform.openai.com/plugins に提出します。plugin.json には一覧表示用のメタデータが含まれ、mcp.json は動的クライアント登録による OAuth(クライアント ID やシークレットは不要)で https://mcp.engramo.app/ を参照します。次のコマンドでビルドします。
./chatgpt-plugin/build.sh # → target/engramo-chatgpt-plugin.zip
スクリプトは mcpb/ からアイコンをコピーし、Cargo.toml から version を設定します。一覧表示用のメタデータを変更した場合に限り、新しい ZIP をアップロードしてください(Plugins →
EngrAmo → Upload new version)。ツールやサーバーの変更は Rescan で反映されます。/.well-known/openai-apps-challenge で提供されるドメイン検証トークンはポータルから取得し、このリポジトリではなく、本番環境の Cloud Build トリガーの _OPENAI_APPS_CHALLENGE 置換値として設定します。
Bring-your-own-AI
すべてのデプロイは BYOAI(Bring Your Own AI) です。呼び出し元のモデル(Claude、ChatGPT、…)が翻訳、辞書、言い回しなどの生成をすべて行い、engramo-mcp は generate_card / generate_catalog_with_cards / generate_cards を使って結果を保存するだけです。EngrAmo アカウントにかかる費用は通常のストレージ割り当て分のみで、有料の EngrAmo プランも必要ありません。
環境変数
| 変数 | デフォルト | 説明 |
|---|---|---|
ENGRAMO_API_URL | https://api.engramo.app | EngrAmo API のベース URL |
ENGRAMO_API_TOKEN | (stdio では必須) | EngrAmo API トークンです。http モードでは使用されません。各セッションが Authorization: Bearer ヘッダーで独自のトークンを指定します。 |
MCP_BIND_ADDR | 0.0.0.0:8080 | http モードのバインドアドレス |
MCP_PUBLIC_URL | (未設定) | http モードのみ。このデプロイ自体のパブリック URL(パスのないオリジンのみ。エンドポイントは / で提供されます)。例:https://mcp.engramo.app。このホストを受信リクエストの許可リストにも追加します。未設定の場合、すべてのリクエストが拒否されます(MCP_ALLOWED_HOSTS を参照)。 |
MCP_ALLOWED_HOSTS | (未設定) | http モードのみ。MCP_PUBLIC_URL から導出されたホストに加えて、許可するホスト名または host:port の値をカンマ区切りで指定します。追加のエントリーポイントがある場合のみ必要です(例:カスタムドメインと併用する Cloud Run サービス独自の *.run.app フォールバック URL)。 |
ENGRAMO_TTS_GEMINI_API_KEYS | (未設定 → TTS ツールなし) | stdio のみ。 独自の Gemini API キー、またはカンマ区切りのキー一覧です。list_tts_voices / generate_card_audio を有効にします。http モードでは無視され、起動時に警告が表示されます。下記のテキスト読み上げを参照してください。 |
ENGRAMO_TTS_PROVIDER | gemini | stdio のみ。 TTS エンジンの選択項目です。現在サポートされているのは gemini のみです。認識できない値を指定すると、起動に失敗します。 |
ENGRAMO_TTS_MODEL | gemini-3.8-flash-tts | stdio のみ。 Gemini TTS モデル ID です。 |
ENGRAMO_TTS_VOICE | Puck | stdio のみ。 generate_card_audio の呼び出しで音声が指定されていない場合に使われるデフォルトの音声です。 |
利用可能なツール
サーバー情報
| ツール | 説明 |
|---|---|
get_server_version | この MCP サーバー自体のビルドバージョンを取得します(カタログやカードの version フィールドではありません)。 |
get_subscription_usage | ユーザー ID、プランと機能、および各上限の使用量、残量、無制限かプラン対象外か、その期間(有効期間全体または月単位。日次・時間単位のサブ上限を含む)、リセット時刻(UTC)を取得します。「Quota exceeded」または「Not included in your plan」エラーが発生した後に呼び出してください。 |
カタログ
| ツール | 説明 |
|---|---|
list_catalogs | すべてのフラッシュカードカタログを一覧表示します。filter(own または shared)を指定すると、自分が所有するカタログ、または他のユーザーが共有したカタログに絞り込めます。speaking_only を指定すると、シャドーイングが有効なカタログに絞り込めます |
get_catalog | IDで単一のカタログを取得します |
update_catalog | カタログの名前または説明を更新します |
set_catalog_shadowing | カタログのシャドーイング(スピーキング練習)を有効または無効にするか、言語を変更します |
share_catalog | 所有するカタログを、ユーザーID(メールアドレスではなくUUID)で指定した他のユーザーと、viewer(デフォルト)またはeditorとして共有します。再共有すると、そのユーザーの権限が変更されます。共同編集者の一覧全体を返します。相手にユーザーIDを尋ねてください。相手はget_subscription_usageで確認できます |
unshare_catalog | 所有するカタログへのユーザーのアクセス権を削除します。残りの共同編集者を返します |
list_catalog_shares | カタログの共有相手とそのアクセスレベル(ownerまたはeditor)を一覧表示します |
delete_catalog | カタログを削除します |
カード
| ツール | 説明 |
|---|---|
list_cards | カタログ内のカードを一覧表示します |
get_card | IDで単一のカードを取得します |
update_card | カードの内容を更新します |
delete_card | カードを削除します |
学習
| ツール | 説明 |
|---|---|
get_due_cards | 今日復習する期限のカードを取得します |
get_all_learning_cards | 学習キュー内のカードをすべて取得します |
add_card_to_learning | カードを学習キューに追加します |
add_catalog_to_learning | カタログのカードをすべて学習キューに追加します |
学習パス
| ツール | 説明 |
|---|---|
list_learning_paths | すべての学習パスを一覧表示します |
get_learning_path | IDで単一の学習パスを取得します |
create_learning_path | 新しい学習パスを作成します |
activate_learning_path | 学習パスを有効にします |
deactivate_learning_path | 学習パスを無効にします |
検索
| ツール | 説明 |
|---|---|
search_global | すべてのコンテンツを全文検索します |
search_catalogs | 特定のカタログ内を検索します |
メディア
| ツール | 説明 |
|---|---|
list_media | アップロード済みのメディアアセットを一覧表示します |
upload_media | 手元にあるファイル(音声録音や画像)をアップロードし、カードまたはカタログに添付するためのmedia_idを取得します |
AI生成(AIを持ち込む方式)
| ツール | 説明 |
|---|---|
generate_card | フラッシュカードを作成します。翻訳や表現の生成は呼び出し元のモデルが行います |
generate_catalog_with_cards | 1回の呼び出しでカード付きのカタログを作成します。AIを持ち込む方式は同じです |
generate_cards | 既存のカタログに複数のカードを追加します。AIを持ち込む方式は同じです |
テキスト読み上げ(stdio、オプトイン)
ENGRAMO_TTS_GEMINI_API_KEYSが設定されている場合のみ利用できます(stdioモードのみ)。下記の
テキスト読み上げを参照してください。
| ツール | 説明 |
|---|---|
list_tts_voices | 設定済みのTTSエンジン、モデル、デフォルトの音声、および利用可能な音声を一覧表示します。ネットワーク呼び出しは行いません |
generate_card_audio | 最大20枚のカードのFACE側の音声を合成し、自分のメディアにアップロードして添付します。自分のGeminiキーと利用枠を使用します |
リッチカード:辞書、スタイル設定、画像、音声
プレーンテキストのほか、カードの face/back には次の内容を含められます。
| フィールド | 機能 |
|---|---|
dictionary | 単語 → 翻訳のマップ。アプリ内でクリック可能なハイライトとして表示されます |
rich_text | テキスト内のスタイル付き範囲(太字、色、等幅フォント) |
style | 表面または裏面全体のフォント/色/背景/配置 |
audio_id | 独自の音声(録音、自分の TTS で作成したクリップ)。先に upload_media でアップロードするか、generate_card_audio を呼び出して自動設定します(下記の stdio のみ) |
visual_id + visual_type | 独自の画像/動画。audio_id と同じ方法で指定します |
カタログにも、同じ方法で image_id(カバー画像)を設定できます。これらに有料の EngrAmo プランは必要ありません。辞書/翻訳は呼び出し元のモデルが処理し、画像はすべて upload_media を使って独自に用意します(ファイルあたり最大約 10MB)。表面の音声は、同じ方法で独自に用意するか、独自の TTS キーを使って generate_card_audio でローカル生成します。完全なスキーマと、実際に使える 4 つの例については engramo://card-schema を、これらすべての手順を最初から最後まで網羅した、そのまま貼り付けて使えるプロンプトについては docs/prompt-examples.md をご覧ください。
カードやメディアを一度に大量に追加しますか? upload_media は 1 回の呼び出しにつき 1 ファイルです。チャットクライアントから少数のファイルをアップロードする場合には適しています。一括インポート(1 回のリクエストで多数のカードや音声ファイルを追加する場合)については、docs/bulk-import.md をご覧ください。CLI/スクリプトで直接 API を利用する手順(Claude Code、ターミナル、スクリプト向け)であり、チャットを通じて使う MCP ツールではありません。
テキスト読み上げ(独自のキーを使用)
ENGRAMO_TTS_GEMINI_API_KEYS を設定すると、list_tts_voices と
generate_card_audio の2つのツールが追加されます。カードIDのリストを指定すると、
generate_card_audio は各カードの表面のテキストを Gemini TTS で音声合成し、
MP3 にエンコードして、ユーザー自身の EngrAmo メディアにアップロードし、そのカードの
audio_id として添付します。手動で録音した upload_media ファイルが保存されるのと同じ場所に、
代わりに処理して保存します。
意図的に stdio のみです。 キーはユーザー自身のマシンの環境からローカルで一度だけ読み込まれ、
EngrAmo に送信されたり、ログに記録されたりすることはありません。http モードでは、サーバーは複数の
テナントで共有されるため、呼び出し元のマシン上に秘密鍵を保持できるセッションごとの保存場所はありません。
そのため、ENGRAMO_TTS_GEMINI_API_KEYS は stdio でのみ読み込まれます。http モードでは完全に無視され
(値は決して表示せず、起動時の警告には変数名だけを表示します)、どちらのツールも登録されません。
標準の GEMINI_API_KEY ではなく、名前空間付きの変数を使う理由は? GEMINI_API_KEY は
Gemini CLI、Google の各 SDK、多くの開発者のシェル設定で使われている事実上の標準名です。
engramo-mcp もこの変数を読み込むと、無関係なツール用にすでに環境に設定されているキーが、
engramo-mcp stdio の実行時に意図せず使われ、課金が発生する可能性があります。engramo-mcp は
GEMINI_API_KEY を決して読み込みません。明示的に名前空間付きの ENGRAMO_TTS_GEMINI_API_KEYS を
設定した場合にのみ利用されます。
どのクォータが消費されますか? EngrAmo のクォータではなく、ユーザー自身のクォータです。有料の
generate_tts_for_cards ツール(ENGRAMO_ENABLE_PAID_AI)が EngrAmo 自身の従量制 TTS クォータを
消費するのとは異なり、generate_card_audio が消費するのはユーザー自身の Gemini API クォータと料金だけです。
Gemini を直接呼び出した場合と同じです。
複数のキー/ローテーション。 ENGRAMO_TTS_GEMINI_API_KEYS には、カンマ区切りのリストを指定できます。
音声合成を呼び出すたびにキーがランダムな順序で試されます。レート制限に達したキー、拒否されたキー(無効または
失効)、または一時的なエラーが発生したキーはスキップされ、次のキーが試されます。そのため、リスト内に
使えないキーが1つあっても、呼び出し全体が失敗することはありません。
制限。 generate_card_audio の1回の呼び出しにつき、カードは最大20枚、各カードの表面テキストは
最大500文字です(これを超えるカードは切り詰められず、スキップされます)。すでに表面の音声があるカードは、
overwrite: true を指定しない限りスキップされます。この場合、以前の音声は削除されず、
EngrAmo のメディアストレージに残り、list_media に引き続き表示されます。設定されているモデルと
音声カタログを確認するには、まず list_tts_voices を呼び出してください。
キーの取得。 Google AI Studio で無料で作成できます。
キーの設定場所。 上記の各 stdio クライアント設定には、ENGRAMO_TTS_GEMINI_API_KEYS の正確な設定場所が
記載されています。クライアントの選択を参照してください。サーバーの env で
ENGRAMO_API_TOKEN の隣に、もう1つ項目を追加します。
"env": {
"ENGRAMO_API_URL": "https://api.engramo.app",
"ENGRAMO_API_TOKEN": "your-token",
"ENGRAMO_TTS_GEMINI_API_KEYS": "your-gemini-key"
}
簡単な確認方法。 アシスタントに list_tts_voices を呼び出すよう依頼してください。ツールが見つからない場合は、
キーが設定されていない(またはクライアントが再起動されていない)か、クライアントがリモート接続を使用しています。
サードパーティライセンス
npm 経由で配布されるビルド済みバイナリは、generate_card_audio が使用する MP3 エンコード用に
LAME(LGPL-2.0)を静的リンクしています。完全な通知とソースの提供条件については、
THIRD_PARTY_LICENSES を参照してください。
リソースとプロンプト
サーバーはMCP リソース(コンテキストとして読み取れるライブデータ)も公開します。
| URI | 説明 |
|---|---|
engramo://card-schema | 検証ルールと例を含む CardContent JSON スキーマ |
engramo://catalogs | すべてのカタログ(id、name、card_count) |
engramo://learning/due | 今日レビュー期限のカード |
engramo://learning/stats | 学習統計(due_count、total_count) |
engramo://learning-paths | すべての学習パス(id、name) |
engramo://subscription | ユーザーの userId、プラン、上限、使用状況(get_subscription_usage と同じ表示) |
また、MCP プロンプト(ガイド付きワークフロー)も公開します。
| プロンプト | 説明 |
|---|---|
review_session | ガイド付きの間隔反復レビューセッションを開始します |
create_flashcard | トピックに関する高品質なフラッシュカードを作成します |
create_language_deck | スタイル設定、翻訳、辞書注釈を含む語学学習デッキを作成します — docs/prompt-examples.md を参照してください |
explain_card | フラッシュカードを例を交えて詳しく説明します |
study_plan | カタログをもとに体系的な学習計画を作成します |
npm への公開
git tag vx.y.z
git push origin vx.y.z
リリースワークフローでは、GitHub リリースと npm パッケージの作成後、server.json も公式の
MCP Registry に app.engramo/mcp として公開します。初回セットアップ、キーのローテーション、固定された mcp-publisher の更新については、
docs/mcp-registry.md を参照してください。
コントリビューション
バグ報告やプルリクエストは、 github.com/engramo-developer/engramo-mcp/issues で歓迎します。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。