チャットで頼むだけで、Memlyのカードが整う
ChatGPTやClaudeにMemlyをつなぐと、会話の流れのままカードを作ったり、探したり、編集したりできます。つなぐのに使うMCPは、AIから外部サービスを操作するための共通の仕組みです。覚えたい内容が出てきたその場で頼めるので、あとでアプリを開き直す必要がありません。無料ユーザーは検索と表示まで、Plus / Proユーザーは作成と編集まで使えます。
- 01
AIにURLを登録する
- 02
Memlyで承認する
- 03
会話からカードを操作する
https://app.memly.ai/mcp入力するURL
ChatGPTやClaudeの設定画面で、接続先サーバーのURLを入れる欄に「https://app.memly.ai/mcp」と入力します。欄の名前は、Claudeでは「リモートMCPサーバーURL」、ChatGPTでは「サーバーのURL」です。
無料は参照、有料は編集
デッキやカードを見るだけなら無料ユーザーでも使えます。作成・編集・削除・復元などMemlyを変更する操作はPlus / Pro限定です。
自分のアカウントだけ
認証したMemlyアカウントのデッキとカードだけを扱います。他の人のデータを見たり変更したりすることはできません。
01接続手順
1ステップずつたどる接続手順
使うAIを選ぶと、その手順だけを表示します。ClaudeとChatGPTの両方を設定する必要はありません。どこを押して、どうなれば成功かを1ステップずつ確認できます。
先にMemly側を整える
接続するときは、Memlyの画面で自分のアカウントにログインし、許可を出します(OAuthという仕組みです)。APIキーのような文字列を自分で発行したり貼り付けたりする必要はありません。ClaudeでもChatGPTでも、始める前の準備は同じです。
- Memlyにログインしておきます。カードを保存・編集したい場合は、PlusまたはProが有効なアカウントで入ります。
- 既存デッキに入れたい場合は、Memly内でデッキ名を確認しておきます。
- 接続先URLは「https://app.memly.ai/mcp」です。末尾にスラッシュは付けず、そのままコピーして貼り付けてください。
カスタムコネクタとして追加する
必要な環境claude.aiのWeb版。入力するのは名前とURLの2項目だけです。無料プランでもカスタムコネクタを1つまで追加できます。TeamやEnterpriseでは、管理者が組織設定から追加し、そのあとで各メンバーが接続します。
- 1ステップ 1 / 6
設定の「カスタマイズ」からコネクタを開く
左のサイドバーで「カスタマイズ」を開くか、アカウントメニューの「設定」から「カスタマイズ」の中の「コネクタ」を選びます。以前のコネクタ設定ページを直接開いても、「コネクタはカスタマイズに移動しました」という案内が出るだけで、その画面からは追加できません。
こうなれば成功これまでに追加したコネクタの一覧と、右上の「追加」ボタンが表示されます。
claude.ai
- 1「カスタマイズ」の中の「コネクタ」
- 2右上の「追加」
- 2ステップ 2 / 6
「追加」から「カスタムコネクタを追加」を選ぶ
画面の下ではなく、一覧の右上にある「追加」を押します。開いたメニューの2つ目が「カスタムコネクタを追加」です。
こうなれば成功「名前」と「リモートMCPサーバーURL」の入力欄があるダイアログが開きます。
claude.ai
- 1「カスタムコネクタを追加」
- 3ステップ 3 / 6
ダイアログの入力欄を確認する
入力するのは上の2つ、「名前」と「リモートMCPサーバーURL」だけです。その下の「詳細設定」にあるOAuthクライアントIDとシークレットは任意項目なので、空のままで構いません。
こうなれば成功2つの入力欄が空のまま並んでいる状態です。
claude.ai
- 1名前
- 2リモートMCPサーバーURL
- 3入力し終えたら「追加」
- 4ステップ 4 / 6
名前とURLを入れて追加する
名前は「Memly」など分かるものにします。URLの欄には下の値をそのまま貼り付けてから「追加」を押します。
この値を貼り付けhttps://app.memly.ai/mcpこうなれば成功コネクタ一覧にMemlyが増えます。まだ未接続なので、その行の「連携」を押すと認証画面に進みます。
claude.ai
- 1名前に「Memly」
- 2URLを貼り付ける
- 3「追加」を押す
- 5ステップ 5 / 6
Memlyの画面で承認する
「連携」を押すとMemlyの認証画面に移ります。承認する前に3点を確かめてください。接続を求めているのがClaudeであること、表示されているMemlyアカウントが自分のものであること、要求されている権限が「メール確認」「プロフィール確認」だけであること。この3つが合っていれば承認します。
こうなれば成功Claudeに戻り、Memlyが接続済みとして表示されます。
claude.ai
- 1接続を求めているアプリとアカウントを確認
- 2許可される操作
- 3「許可して接続」
- 6ステップ 6 / 6
ツールが並んでいれば完了
コネクタ一覧からMemlyを開くと、AIが呼び出せるツールの一覧が出ます。読み取り専用のツールと、書き込み・削除のツールが分かれて並んでいれば接続できています。会話で使うときは、入力欄の「+」からコネクタを開き、Memlyをオンにしてください。
こうなれば成功デッキの参照からカードの追加・編集・削除・復元までのツールが一覧に並びます。
claude.ai
- 1接続済み(「切断する」が出ている)
- 2AIが呼び出せるツールの一覧
画面はClaudeとChatGPTの実際の設定画面です。個人情報にあたる部分は伏せています。
うまくいかないとき
つまずくところはだいたい決まっています。上から順に確認してください。
「Authorization with the MCP server failed」(認証に失敗しました)が出る
前に追加したコネクタに、古い認証情報が残っていることがあります。Memlyのコネクタをいったん削除し、同じURLで追加し直してください。
ChatGPTで「作成する」を押しても何も起きない
赤い帯で「コネクター名は既に存在します」と一瞬だけ表示され、すぐ消えていることがあります。重複を見ているのは名前だけなので、別の名前にすれば作成できます。
ChatGPTで同じ名前が使えないまま消せない
一覧の「…」からのアンインストールでは名前が解放されません。完全に消すには、そのプラグインの「…」→「管理」で詳細を開き、右上の「…」から「削除する」を選びます。
URLを入れても認識されない
「https://app.memly.ai/mcp」が正しく入っているか、前後に空白が混ざっていないかを確認してください。末尾にスラッシュが付いていても動くので、そこは原因ではありません。
接続できたのにカードを保存できない
無料プランは参照までです。書き込みにはPlusまたはProが必要なので、その契約があるアカウントで認証しているか確認してください。
AIがMemlyのツールを使ってくれない
ChatGPTやClaudeの画面でMemlyがオンになっているか、その会話でツールの使用が許可されているかを確認してください。「Memlyのデッキ一覧を見せて」のように、Memlyの名前を出して頼むと確実です。
どれを試しても直らない
エラー画面には「ofid」で始まる識別子が表示されます。この識別子と、うまくいかなかった時刻を添えてお問い合わせください。サーバー側のログと突き合わせて確認します。
02プラン別
無料でできること、有料でできること
参照は無料プランでも使えます。Memlyの中身を変える操作だけがPlus / Pro限定です。
| できること | 使われるツール | 無料 | Plus / Pro |
|---|---|---|---|
| デッキの一覧とIDを調べる | list_decks | 使える | 使える |
| カードを横断検索する | search_flashcardssearch | 使える | 使える |
| カードの表面・裏面・タグを見る | get_flashcardfetch | 使える | 使える |
| 今のプランで書き込みできるか確認する | get_account_status | 使える | 使える |
| デッキを作る・名前を変える | create_deckupdate_deck | 使えない | 使える |
| AIが作ったカードを追加する | import_flashcards | 使えない | 使える |
| 既存カードを書き換える | update_flashcard | 使えない | 使える |
| カードやデッキを削除する | delete_flashcardsdelete_deck | 使えない | 使える |
| 削除したものを復元する | restore_flashcardsrestore_deck | 使えない | 使える |
03ツール
AIが呼び出せるツール
接続すると、AIクライアントには次のツールが見えます。名前を覚える必要はありませんが、何が起きているかを知りたいときの対応表として使えます。
参照
無料無料プランでも使えます。Memlyの中身は変わりません。
list_decks自分のデッキ一覧とIDを返します。既存デッキに保存する前段でよく使われます。
search_flashcards語句でカードを横断検索します。デッキを絞り込むこともできます。
get_flashcardカード1枚の表面・裏面・タグを取り出します。
searchChatGPTのdeep researchなどが使う、決まった名前の検索ツールです。対応するクライアントからの検索要求を受け付けます。
fetchsearchと対になる取得用のツールです。検索でヒットした対象の中身を返します。
get_account_status認証中のアカウントで書き込み操作ができるかを返します。
作成と更新
Plus / ProPlus / Proが必要です。多くのAIクライアントは、実行前に内容を表示して確認を求めます。
create_deck新しいデッキを作ります。
update_deckデッキ名などを更新します。
import_flashcardsAIが作ったカードをまとめて追加します。1回の呼び出しで最大100枚です。
update_flashcard既存カードの表面・裏面・タグ・所属デッキを書き換えます。
削除と復元
Plus / ProPlus / Proが必要です。削除してもデータはすぐには消えない(論理削除)ので、IDが分かれば元に戻せます。
delete_deckデッキと中の有効なカードをまとめて論理削除します。
delete_flashcards指定したカードを論理削除します。
restore_deck削除したデッキをIDで復元します。
restore_flashcards削除したカードをIDで復元します。
04流れ
使い方の流れ
普段の会話の延長で、AIにカード整理を任せられます。Memly側では認証、プラン確認、所有者確認、保存前のチェックを行います。
Memlyを接続
ChatGPT、Claude、その他のMCP対応AIにMemlyの接続URLを追加します。
自分のMemlyで承認
表示されたMemlyアカウントを確認し、AIクライアントからの接続を承認します。
AIにやりたいことを頼む
「この説明を5枚のカードにして」「江戸時代デッキに追加して」のように、普段の言葉で頼みます。
Memlyに反映
AIがMemlyのツールを呼び出し、Memlyが安全性を確認してから保存・更新・削除を行います。
05頼み方の例
AIへの頼み方
専門用語を使わなくても、普段の会話のまま依頼できます。裏側では、AIがMemlyのツールを呼び出して結果を返します。
新しいカードを作る
この説明を5枚の暗記カードにして、江戸時代デッキに追加して
ツール呼び出し: import_flashcards
5枚のカードを「江戸時代」デッキに保存しました
既存カードを直す
江戸時代デッキの徳川家斉のカードを探して、答えを少し短くして
ツール呼び出し: update_flashcard
カードの裏面を短い説明に更新しました
不要なものを消す
Testデッキを削除して。中のカードも一緒に消して
ツール呼び出し: delete_deck
「Test」デッキを削除しました。あとから復元もできます
06安全性
安全性と制限
AIクライアントからのリクエストでも、Memlyは信頼できない入力として扱います。誰が操作しているか、何を変更できるか、内容が安全かを、毎回サーバー側で確認します。
認証と権限
OAuth 2.1のBearer token、Plus/Pro購読、デッキ所有権を確認します。
入力内容の確認
必須項目、文字数、カード上限、タグ数などを確認し、壊れたカードが入らないようにします。
HTMLサニタイズ
rich HTMLは許可された12タグだけを残し、hrefやclassを含むすべての属性を除去します。リンクや画像は保存されません。
実行前の同意
カード作成は書き込み操作のため、AIクライアント側で実行内容を表示し、ユーザー確認を挟む前提で案内します。
よいMemlyカードのルール
- 1枚のカードでは1つの概念、定義、判断基準、手順、比較だけを問います。
- 答えは短くても自立して理解できるようにし、元資料を見ないと意味が分からない表現は避けます。
- 丸暗記だけでなく、理由、使い分け、例、誤解しやすい点もカード化します。
- 同じ事実を言い換えただけの重複カードは作りません。
- 専門用語や固有名詞は正確に残し、説明は指定言語で書きます。
07開発者向け
AIクライアント向けの詳しい仕様
通常の利用ではここを読む必要はありません。AIクライアントや開発者が、Memlyにカードを追加する時の細かい形式を確認するための詳細です。
MCP tool schema
カード追加
AIが新しいカードをMemlyへ追加する時はimport_flashcardsを使います。
保存先
既存デッキを指定するか、デッキ名から新しく作成・再利用できます。
結果の返却
保存先デッキ、作成枚数、スキップ枚数、注意事項をAIクライアントへ返します。
安全性
認証、Plus/Pro確認、所有者確認、HTMLサニタイズをMemly側で毎回行います。
完全なJSON Schemaを開く
{
"name": "import_flashcards",
"title": "Import flashcards",
"description": "Import flashcards generated by an MCP-capable AI client into a Memly deck. Use this write tool only after the user asks to save cards to Memly. The client must provide either deckId or deckTitle and 1-100 front/back cards. If the user refers to an existing deck by name and does not know the ID, call list_decks first and pass the matching deckId. Memly requires Plus or Pro for write actions, validates the payload, sanitizes rich HTML, and saves the cards.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"properties": {
"deckId": {
"type": "integer",
"minimum": 1,
"description": "Existing Memly deck ID owned by the authenticated user. Provide exactly one of deckId or deckTitle (not both, not neither)."
},
"deckTitle": {
"type": "string",
"minLength": 1,
"maxLength": 120,
"description": "Deck title to create or reuse when deckId is not provided. Provide exactly one of deckId or deckTitle. If the user names an existing deck but does not know the ID, prefer calling list_decks first and pass the exact deckId when found."
},
"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"]
},
"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,
"idempotentHint": false,
"openWorldHint": false
},
"securitySchemes": [
{ "type": "oauth2", "scopes": ["email", "profile"] }
],
"_meta": {
"securitySchemes": [
{ "type": "oauth2", "scopes": ["email", "profile"] }
]
}
}フィールド定義
deckIddeckIdまたはdeckTitle- 保存先の既存MemlyデッキID。認証済みユーザーが所有している必要があります。
deckTitledeckId または deckTitle- deckIdがない場合に作成または再利用するデッキ名。120文字以内。
sourceTitle任意- 元資料名、URLタイトル、会話トピックなど。監査や後からの確認に使います。
language任意- カード説明の主言語。ja、en、koのいずれかを使います。
cards[].front必須- 質問面のプレーンテキスト。1つの明確な想起対象だけを聞きます。
cards[].back必須- 回答面のプレーンテキスト。短くても自立して理解できる内容にします。
cards[].frontRich / backRich任意- HTML版。許可タグのみ使用し、Memly側でサニタイズされます。
cards[].tags任意- 検索や整理に使う短いタグ。1枚あたり最大12個、各タグ40文字以内です。超えるとリクエスト全体が拒否されます。
structuredContent.deckId / deckTitle成功時- 保存先デッキをAIクライアントが把握できるよう、ツール結果で返します。
structuredContent.importedCount / skippedCount成功時- 作成枚数とスキップ枚数を返し、部分成功を会話内で説明できるようにします。
structuredContent.warnings任意- HTMLサニタイズや重複スキップなど、致命的ではない注意を返します。
主なエラー
HTTP 401 Unauthorized認証が必要
- アクセストークンが無い、期限切れ、またはMemly MCP向けに発行されたものではありません。JSON-RPCボディのコードは-32001です。WWW-Authenticateヘッダーのresource_metadataからOAuthをやり直してください。
HTTP 400 Bad Requestリクエスト不正
- JSONが壊れている、JSON-RPC 2.0の形式でない、JSON-RPCバッチ(配列)を送っている、MCP-Protocol-Versionヘッダーが非対応バージョン、のいずれかです。バッチは1リクエスト1POSTに分割してください。
HTTP 403 ForbiddenOriginの拒否
- 許可されていないOriginヘッダー付きのリクエストです。プランや権限の問題ではありません。
HTTP 429 / 413レート制限/サイズ超過
- 429は短時間のリクエスト過多で、Retry-After秒後に再試行します。413はリクエストボディが1MBを超えた場合で、カードを分割して送ってください。
JSON-RPC error -32601 / -32602 / -32603プロトコルエラー
- 未知のメソッド名、未知のツール名、params.nameの欠落、Memly側の想定外エラー(-32603)など、MCPリクエスト自体を処理できない場合に、HTTP 200のボディ内で返します。
Tool result isError: true (HTTP 200)ツール実行エラー
- Plus/Proが必要、入力検証エラー、デッキやカードが見つからない、他の編集との競合といった業務上のエラーはすべてこの形で返します。HTTP 403やHTTP 404は返しません。理由は結果のテキストに入ります。
仕様参照
MCP接続の実装者は、以下の一次情報も確認してください。サービス側の仕様が更新される可能性があります。
08FAQ
よくある質問
Memly MCPの利用にあたって、よくいただく質問をまとめました。
無料プランでも使えますか?
接続と参照は使えます。デッキやカードの検索・表示は無料ユーザーでも利用でき、追加・編集・削除・復元などの書き込み操作はPlus/Pro限定です。
どのAIクライアントに対応していますか?
Remote MCPに対応したAIであれば接続できます。ChatGPT(開発者モード)とClaude(カスタムコネクタ)で動作を確認しています。
AIとの会話内容はMemlyに保存されますか?
いいえ。Memlyに届くのは、AIクライアントが呼び出したツールの入力(カードの内容や検索語など)だけです。会話全体が送信されることはありません。
誤ってカードやデッキを削除してしまったら?
削除してもデータはすぐには消えないので、元に戻せます。ただしAIは削除済みのデッキやカードを一覧できないため、復元にはIDが必要です。同じ会話の中なら削除したときのIDが残っているので、「さっき消したデッキを戻して」と頼めば復元できます。会話が変わるとIDが分からなくなるので、その場合はMemlyの画面から復元してください。
他人のデッキにアクセスされる心配はありませんか?
ありません。OAuthで認証した本人のアカウントのデッキとカードだけが操作対象で、リクエストごとにサーバー側で所有権を確認します。
接続がうまくいかないときは?
「うまくいかないとき」の項目を上から確認し、コネクタの削除と再追加を試してください。解決しない場合は、エラー画面に表示される「ofid」で始まる識別子と発生時刻を添えてお問い合わせください。