AIとの会話から、Memlyのカードを直接整理AIとの会話から、Memlyのカードを直接整理
Memly MCPをつなぐと、AIとの会話でカードやデッキを整理できます。無料ユーザーは検索と表示まで。有料ユーザーは追加・編集・削除・復元まで使えます。
エンドポイント
https://app.memly.ai/mcp入力するURL
ChatGPTやClaudeなどのURL入力欄には https://app.memly.ai/mcp を入力します。
無料は参照、有料は編集
デッキやカードを見るだけなら無料ユーザーでも使えます。作成・編集・削除などMemlyを変更する操作は有料プラン限定です。
自分のアカウントだけ
認証したMemlyアカウントのデッキとカードだけを扱います。他の人のデータを見たり変更したりすることはできません。
接続手順
接続手順
使うAIを選ぶと、その手順だけを表示します。ClaudeとChatGPTの両方を設定する必要はありません。
共通準備
Memly側を準備する
MCP接続はMemlyアカウントごとのOAuth認証で行います。共有キーや固定ユーザーは使いません。
- MemlyでPlusまたはProが有効なアカウントにログインします。
- 既存デッキへ入れたい場合は、Memly内でデッキ名を確認しておきます。
- ChatGPTやClaudeなどにはURLとして https://app.memly.ai/mcp を入力します。
選択中
Claudeに追加する
Claudeのカスタムコネクタでは、名前とリモートMCPサーバーURLだけを入力します。
- 1Claudeの「設定」または「カスタマイズ」から「コネクタ」を開きます。
- 2「カスタムコネクタを追加」を選び、名前に「Memly」と入力します。
- 3リモートMCPサーバーURLに https://app.memly.ai/mcp を入力します。
- 4OAuth Client IDとOAuthクライアントシークレットは空欄のまま追加します。
- 5Memlyの同意画面で、表示された自分のMemlyアカウントを確認して承認します。
接続後に list_decks と import_flashcards が表示されれば成功です。
困ったとき: 失敗したときに見る場所
古い接続情報が残っていると、修正後も同じ認証エラーが出ることがあります。
- 1Memlyコネクタをいったん削除し、同じURLで追加し直します。
- 2URL末尾は基本的にスラッシュなしの https://app.memly.ai/mcp を使います。
- 3承認画面のOAuth scopesが「メール確認」「プロフィール確認」だけになっているか確認します。
- 4承認後に「Connected to Memly」またはツール一覧が表示されるか確認します。
Authorization with the MCP server failed が続く場合は、表示された ofid と発生時刻を添えてサポートに共有してください。
流れ
使い方の流れ
普段の会話の延長で、AIにカード整理を任せられます。Memly側では認証、プラン確認、所有者確認、保存前のチェックを行います。
- 01
1. Memlyを接続
ChatGPT、Claude、その他のMCP対応AIにMemlyの接続URLを追加します。
- 02
2. 自分のMemlyで承認
表示されたMemlyアカウントを確認し、AIクライアントからの接続を承認します。
- 03
3. AIにやりたいことを頼む
「この説明を3枚のカードにして」「江戸時代デッキに追加して」のように自然文で依頼します。
- 04
4. Memlyに反映
AIがMemlyのツールを呼び出し、Memlyが安全性を確認してから保存・更新・削除を行います。
MCP
Memly MCPでできること
今回の実装で、カード追加だけでなく、デッキやカードの検索・編集・削除・復元まで扱えるようになりました。
デッキを探す・見る
AIがMemly内のデッキ一覧を確認し、デッキ名から保存先を探せます。既存デッキへの追加が迷いにくくなります。
カードを探す・表示する
デッキ内のカードを検索し、表面・裏面・タグを確認できます。無料ユーザーでも参照できます。
カードを追加・編集する
Plus/Proユーザーは、AIが作ったカードを追加したり、既存カードの文面・タグ・保存先デッキを更新できます。
削除・復元する
Plus/Proユーザーはカードやデッキを削除できます。誤操作に備えて、削除済みのカードやデッキを復元するツールも用意しています。
安全性
安全性と制限
AIからの操作でも、Memlyは毎回サーバー側で権限と内容を確認します。自分のデータだけに限定し、書き込みはPlus/Proに制限します。
認証と権限
OAuth 2.1のBearer token、Plus/Pro購読、デッキ所有権を確認します。
入力内容の確認
必須項目、文字数、カード上限、タグ数などを確認し、壊れたカードが入らないようにします。
HTMLサニタイズ
rich HTMLは許可タグだけを残します。script、iframe、style、イベント属性は保存しません。
実行前の同意
カード作成は書き込み操作のため、AIクライアント側で実行内容を表示し、ユーザー確認を挟む前提で案内します。
頼み方の例
AIへの頼み方
専門用語を使わなくても、普段の会話のまま依頼できます。保存前に内容を確認したい時は、そのように頼んでください。
新しいカードを作る
「この説明を5枚の暗記カードにして、江戸時代デッキに追加して」
既存カードを直す
「江戸時代デッキの徳川家斉のカードを探して、答えを少し短くして」
不要なものを消す
「Testデッキを削除して。中のカードも一緒に消して」
よいMemlyカードのルール
- 1枚のカードでは1つの概念、定義、判断基準、手順、比較だけを問う。
- 答えは短くても自立して理解できるようにし、元資料を見ないと意味が分からない表現を避ける。
- 丸暗記だけでなく、理由、使い分け、例、誤解しやすい点もカード化する。
- 同じ事実を言い換えただけの重複カードは作らない。
- 専門用語や固有名詞は正確に残し、説明は指定言語で書く。
主なエラー
401 Unauthorized認証が必要
MemlyにログインしてMCP接続を承認してください。
403 Subscription requiredPlus/Pro限定
有効なPlusまたはPro購読が必要です。
400 Invalid cards形式エラー
cardsが空、必須フィールド不足、文字数超過、許可されないHTMLなどを修正してください。
404 Deck not foundデッキ不一致
deckIdが存在しないか、認証済みユーザーのデッキではありません。
JSON-RPC protocol error接続/認証エラー
認証不足、scope不足、セッション不備などMCPリクエスト自体を処理できない場合に返します。
Tool result isError: trueツール実行エラー
入力検証やデッキ不一致など、ツール呼び出しは届いたがインポートに失敗した場合に返します。
開発者向け詳細
AIクライアント向けの詳しい仕様
通常の利用ではここを読む必要はありません。AIクライアントや開発者が、Memlyにカードを追加する時の細かい形式を確認するための詳細です。
{}MCP tool schema
カード追加
AIが新しいカードをMemlyへ追加する時はimport_flashcardsを使います。
保存先
既存デッキを指定するか、デッキ名から新しく作成・再利用できます。
結果の返却
保存先デッキ、作成枚数、スキップ枚数、注意事項をAIクライアントへ返します。
安全性
認証、Plus/Pro確認、所有者確認、HTMLサニタイズをMemly側で毎回行います。
完全なJSON Schemaを開く
{
"name": "import_flashcards",
"description": "Import flashcards generated by the AI client into a Memly deck. Use this only after the user asks to save cards to Memly.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"properties": {
"deckId": {
"type": "integer",
"description": "Existing Memly deck ID owned by the authenticated user."
},
"deckTitle": {
"type": "string",
"minLength": 1,
"maxLength": 120,
"description": "Deck title to create or reuse when deckId is not provided."
},
"sourceTitle": {
"type": "string",
"maxLength": 160,
"description": "Optional source title, document name, URL title, or conversation topic."
},
"language": {
"type": "string",
"enum": ["ja", "en", "ko"],
"description": "Main language used for the card explanations."
},
"cards": {
"type": "array",
"minItems": 1,
"maxItems": 100,
"items": {
"type": "object",
"additionalProperties": false,
"required": ["front", "back"],
"properties": {
"front": {
"type": "string",
"minLength": 1,
"maxLength": 1000,
"description": "Question or prompt side of the flashcard. Ask one clear recall target; do not send FSRS, user_id, due, stability, or difficulty fields."
},
"back": {
"type": "string",
"minLength": 1,
"maxLength": 4000,
"description": "Answer or explanation side of the flashcard. Keep it compact but self-contained."
},
"frontRich": {
"type": "string",
"maxLength": 4000,
"description": "Optional sanitized HTML. Allowed tags: p, strong, em, mark, ul, ol, li, blockquote, h4, h5, br, code."
},
"backRich": {
"type": "string",
"maxLength": 8000,
"description": "Optional sanitized HTML using the same allowed tag set."
},
"tags": {
"type": "array",
"description": "Short organization labels created by the AI client. Do not include private account identifiers.",
"maxItems": 12,
"items": {
"type": "string",
"minLength": 1,
"maxLength": 40
}
}
}
}
}
},
"required": ["cards"],
"oneOf": [
{ "required": ["deckId"] },
{ "required": ["deckTitle"] }
]
},
"outputSchema": {
"type": "object",
"additionalProperties": false,
"properties": {
"deckId": {
"type": "integer",
"description": "Memly deck ID used for the import."
},
"deckTitle": {
"type": "string",
"description": "Memly deck title used for the import."
},
"importedCount": {
"type": "integer",
"minimum": 0,
"description": "Number of cards created."
},
"skippedCount": {
"type": "integer",
"minimum": 0,
"description": "Number of cards skipped as duplicates or invalid after validation."
},
"warnings": {
"type": "array",
"description": "Non-fatal import notes, such as sanitized HTML or duplicate tags.",
"items": {
"type": "string"
}
}
},
"required": ["deckId", "deckTitle", "importedCount"]
},
"annotations": {
"readOnlyHint": false,
"destructiveHint": false,
"openWorldHint": false
}
}参照
仕様参照
MCP接続の実装者は、以下の一次情報も確認してください。サービス側の仕様が更新される可能性があります。