Memly
ChatGPT・ClaudeなどのMCP対応AI向け

チャットで頼むだけで、Memlyのカードが整う

ChatGPTやClaudeにMemlyをつなぐと、会話の流れのままカードを作ったり、探したり、編集したりできます。つなぐのに使うMCPは、AIから外部サービスを操作するための共通の仕組みです。覚えたい内容が出てきたその場で頼めるので、あとでアプリを開き直す必要がありません。無料ユーザーは検索と表示まで、Plus / Proユーザーは作成と編集まで使えます。

  1. 01

    AIにURLを登録する

  2. 02

    Memlyで承認する

  3. 03

    会話からカードを操作する

Remote MCP · エンドポイント
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ステップ 1 / 6

    設定の「カスタマイズ」からコネクタを開く

    左のサイドバーで「カスタマイズ」を開くか、アカウントメニューの「設定」から「カスタマイズ」の中の「コネクタ」を選びます。以前のコネクタ設定ページを直接開いても、「コネクタはカスタマイズに移動しました」という案内が出るだけで、その画面からは追加できません。

    こうなれば成功これまでに追加したコネクタの一覧と、右上の「追加」ボタンが表示されます。

    claude.ai
    Claudeの設定画面。カスタマイズの中のコネクタ一覧
    1. 1「カスタマイズ」の中の「コネクタ」
    2. 2右上の「追加」
  2. 2ステップ 2 / 6

    「追加」から「カスタムコネクタを追加」を選ぶ

    画面の下ではなく、一覧の右上にある「追加」を押します。開いたメニューの2つ目が「カスタムコネクタを追加」です。

    こうなれば成功「名前」と「リモートMCPサーバーURL」の入力欄があるダイアログが開きます。

    claude.ai
    「追加」を押して開いたメニュー
    1. 1「カスタムコネクタを追加」
  3. 3ステップ 3 / 6

    ダイアログの入力欄を確認する

    入力するのは上の2つ、「名前」と「リモートMCPサーバーURL」だけです。その下の「詳細設定」にあるOAuthクライアントIDとシークレットは任意項目なので、空のままで構いません。

    こうなれば成功2つの入力欄が空のまま並んでいる状態です。

    claude.ai
    カスタムコネクタを追加するダイアログ
    1. 1名前
    2. 2リモートMCPサーバーURL
    3. 3入力し終えたら「追加」
  4. 4ステップ 4 / 6

    名前とURLを入れて追加する

    名前は「Memly」など分かるものにします。URLの欄には下の値をそのまま貼り付けてから「追加」を押します。

    この値を貼り付け
    https://app.memly.ai/mcp

    こうなれば成功コネクタ一覧にMemlyが増えます。まだ未接続なので、その行の「連携」を押すと認証画面に進みます。

    claude.ai
    名前とURLを入力し終えたダイアログ
    1. 1名前に「Memly」
    2. 2URLを貼り付ける
    3. 3「追加」を押す
  5. 5ステップ 5 / 6

    Memlyの画面で承認する

    「連携」を押すとMemlyの認証画面に移ります。承認する前に3点を確かめてください。接続を求めているのがClaudeであること、表示されているMemlyアカウントが自分のものであること、要求されている権限が「メール確認」「プロフィール確認」だけであること。この3つが合っていれば承認します。

    こうなれば成功Claudeに戻り、Memlyが接続済みとして表示されます。

    claude.ai
    Memlyの認証画面。接続を求めているアプリと権限が表示されている
    1. 1接続を求めているアプリとアカウントを確認
    2. 2許可される操作
    3. 3「許可して接続」
  6. 6ステップ 6 / 6

    ツールが並んでいれば完了

    コネクタ一覧からMemlyを開くと、AIが呼び出せるツールの一覧が出ます。読み取り専用のツールと、書き込み・削除のツールが分かれて並んでいれば接続できています。会話で使うときは、入力欄の「+」からコネクタを開き、Memlyをオンにしてください。

    こうなれば成功デッキの参照からカードの追加・編集・削除・復元までのツールが一覧に並びます。

    claude.ai
    接続後のMemlyコネクタ。呼び出せるツールが一覧表示されている
    1. 1接続済み(「切断する」が出ている)
    2. 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
できること使われるツール無料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枚の表面・裏面・タグを取り出します。

  • search

    ChatGPTのdeep researchなどが使う、決まった名前の検索ツールです。対応するクライアントからの検索要求を受け付けます。

  • fetch

    searchと対になる取得用のツールです。検索でヒットした対象の中身を返します。

  • get_account_status

    認証中のアカウントで書き込み操作ができるかを返します。

作成と更新

Plus / Pro

Plus / Proが必要です。多くのAIクライアントは、実行前に内容を表示して確認を求めます。

  • create_deck

    新しいデッキを作ります。

  • update_deck

    デッキ名などを更新します。

  • import_flashcards

    AIが作ったカードをまとめて追加します。1回の呼び出しで最大100枚です。

  • update_flashcard

    既存カードの表面・裏面・タグ・所属デッキを書き換えます。

削除と復元

Plus / Pro

Plus / Proが必要です。削除してもデータはすぐには消えない(論理削除)ので、IDが分かれば元に戻せます。

  • delete_deck

    デッキと中の有効なカードをまとめて論理削除します。

  • delete_flashcards

    指定したカードを論理削除します。

  • restore_deck

    削除したデッキをIDで復元します。

  • restore_flashcards

    削除したカードをIDで復元します。

04流れ

使い方の流れ

普段の会話の延長で、AIにカード整理を任せられます。Memly側では認証、プラン確認、所有者確認、保存前のチェックを行います。

  1. Memlyを接続

    ChatGPT、Claude、その他のMCP対応AIにMemlyの接続URLを追加します。

  2. 自分のMemlyで承認

    表示されたMemlyアカウントを確認し、AIクライアントからの接続を承認します。

  3. AIにやりたいことを頼む

    「この説明を5枚のカードにして」「江戸時代デッキに追加して」のように、普段の言葉で頼みます。

  4. 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 Forbidden

Originの拒否

許可されていない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は返しません。理由は結果のテキストに入ります。

08FAQ

よくある質問

Memly MCPの利用にあたって、よくいただく質問をまとめました。

無料プランでも使えますか?

接続と参照は使えます。デッキやカードの検索・表示は無料ユーザーでも利用でき、追加・編集・削除・復元などの書き込み操作はPlus/Pro限定です。

どのAIクライアントに対応していますか?

Remote MCPに対応したAIであれば接続できます。ChatGPT(開発者モード)とClaude(カスタムコネクタ)で動作を確認しています。

AIとの会話内容はMemlyに保存されますか?

いいえ。Memlyに届くのは、AIクライアントが呼び出したツールの入力(カードの内容や検索語など)だけです。会話全体が送信されることはありません。

誤ってカードやデッキを削除してしまったら?

削除してもデータはすぐには消えないので、元に戻せます。ただしAIは削除済みのデッキやカードを一覧できないため、復元にはIDが必要です。同じ会話の中なら削除したときのIDが残っているので、「さっき消したデッキを戻して」と頼めば復元できます。会話が変わるとIDが分からなくなるので、その場合はMemlyの画面から復元してください。

他人のデッキにアクセスされる心配はありませんか?

ありません。OAuthで認証した本人のアカウントのデッキとカードだけが操作対象で、リクエストごとにサーバー側で所有権を確認します。

接続がうまくいかないときは?

「うまくいかないとき」の項目を上から確認し、コネクタの削除と再追加を試してください。解決しない場合は、エラー画面に表示される「ofid」で始まる識別子と発生時刻を添えてお問い合わせください。

MCP接続の準備を進める

まずはMemlyをAIに接続してください。無料ユーザーは参照、有料ユーザーはカードとデッキの整理まで使えます。