Memly
For ChatGPT, Claude, and MCP-compatible AI clients

Manage Memly cards without leaving your AI chat

Connect Memly to ChatGPT or Claude and create, find, and edit cards without breaking the flow of the conversation. The connection uses MCP, a shared standard that lets an AI client work with outside services. Ask as soon as something worth remembering comes up, instead of reopening the app later. Free users can search and read; Plus and Pro users can create and edit.

  1. 01

    Add the URL to your AI client

  2. 02

    Approve it in Memly

  3. 03

    Manage cards from chat

Remote MCP · Endpoint
https://app.memly.ai/mcp

URL to enter

In the ChatGPT or Claude settings, enter https://app.memly.ai/mcp in the field for the server address. Claude labels that field Remote MCP server URL; ChatGPT labels it Server URL.

Free reads, paid writes

Free users can search and view Memly content. Creating, editing, deleting, or restoring decks and cards requires Memly Plus or Pro.

Only your account

The connector can only access the Memly account you authorize. It cannot read or change another user's decks or cards.

01Setup

Setup, step by step

Choose the client you use and only its steps stay on screen. You do not need to set up both Claude and ChatGPT. Each step names what to click and what you should see afterwards.

Get Memly ready first

To connect, you sign in to your own Memly account and approve the request on Memly's screen; that is what OAuth means here. You never generate or paste an API key. The preparation is the same whether you use Claude or ChatGPT.

  • Sign in to Memly. Use an account with an active Plus or Pro plan if you want to save or edit cards.
  • If you plan to save into an existing deck, check its name in Memly first.
  • The server address is https://app.memly.ai/mcp. Copy and paste it rather than typing it, and leave off the trailing slash.

Add Memly as a custom connector

What you needclaude.ai on the web. You only fill in a name and a URL. Free plans can add one custom connector. On Team and Enterprise, an admin adds it in the organization settings and each member connects to it afterwards.

  1. 1Step 1 / 6

    Open Connectors under Customize

    Open Customize in the left sidebar, or open Settings from your account menu and pick Connectors inside Customize. Opening the old connector settings page directly only shows a notice that connectors moved to Customize, and you cannot add one from that screen.

    You should seeThe list of connectors you have already added, with an Add button at the top right.

    claude.ai
    Claude settings showing the connector list under Customize
    1. 1Connectors, inside Customize
    2. 2Add, at the top right
  2. 2Step 2 / 6

    Choose Add custom connector

    The button is at the top right of the list, not at the bottom of the page. Add custom connector is the second item in the menu that opens.

    You should seeA dialog with two fields: Name and Remote MCP server URL.

    claude.ai
    The menu opened from the Add button
    1. 1Add custom connector
  3. 3Step 3 / 6

    Check the fields in the dialog

    You only fill in the top two fields, Name and Remote MCP server URL. The OAuth Client ID and Client Secret under Advanced settings are optional, so leave them empty.

    You should seeBoth fields sitting empty, ready for input.

    claude.ai
    The Add custom connector dialog
    1. 1Name
    2. 2Remote MCP server URL
    3. 3Add, once both are filled in
  4. 4Step 4 / 6

    Fill in the name and URL, then add it

    Name it something recognizable, such as Memly. Paste the value below into the URL field and click Add.

    Paste this value
    https://app.memly.ai/mcp

    You should seeMemly appears in the list. It is not connected yet, so click Connect on its row to start the authorization.

    claude.ai
    The dialog with the name and URL filled in
    1. 1Name it Memly
    2. 2Paste the URL
    3. 3Click Add
  5. 5Step 5 / 6

    Approve it on the Memly screen

    Connect opens Memly's authorization screen. Check three things before you approve: the app asking for access is Claude, the Memly account shown is yours, and the only permissions requested are to check your email address and your profile.

    You should seeBack in Claude, with Memly listed as connected.

    claude.ai
    Memly's authorization screen showing which app is asking and what it may access
    1. 1Check the app asking for access and the account
    2. 2What it will be allowed to do
    3. 3Allow connection
  6. 6Step 6 / 6

    Confirm the tools are there

    Open Memly in the connector list to see the tools Claude can call. Once the connection works, the read-only tools are listed separately from the write and delete tools. To use it in a chat, open Connectors from the + button next to the message box and switch Memly on.

    You should seeTools for browsing decks and for adding, editing, deleting, and restoring cards.

    claude.ai
    The connected Memly connector with its tool list
    1. 1Connected, with a Disconnect button
    2. 2The tools Claude can call

These are the real settings screens in Claude and ChatGPT. Anything personal has been masked.

If something goes wrong

Almost every failure is one of these. Work down the list in order.

"Authorization with the MCP server failed" appears

A connector you added earlier can still be holding old sign-in details. Delete the Memly connector and add it again with the same URL.

Nothing happens when you click Create in ChatGPT

A red banner saying the connector name already exists can appear and disappear before you notice it. Only the name is checked for duplicates, so a different name goes through.

ChatGPT keeps refusing a name you no longer use

Uninstalling from the list does not release the name. To remove it for good, open the plugin's … menu, choose Manage, then use the … at the top right of the details and pick Delete.

The URL is not accepted

Check that you entered https://app.memly.ai/mcp and that no stray whitespace was pasted with it. A trailing slash still works, so that is not the cause.

Connected, but cards will not save

The free plan is read-only. Writing needs Plus or Pro, so confirm you authorized with an account that has an active subscription.

The AI never uses the Memly tools

Check that Memly is switched on in ChatGPT or Claude and that tool use is allowed in that conversation. Naming Memly outright, such as "list my Memly decks," usually settles it.

None of the above helped

The error screen shows an identifier starting with ofid. Send it to support along with the time of the failed attempt, and we can match it against the server logs.

02Plans

Free versus Plus and Pro

Looking things up works on the free plan. Only the actions that change your Memly data need Plus or Pro.

Free versus Plus and ProWhat you can do / Free / Plus / Pro
What you can doTools involvedFreePlus / Pro
List your decks and their IDslist_decksIncludedIncluded
Search across your cardssearch_flashcardssearchIncludedIncluded
Read a card's front, back, and tagsget_flashcardfetchIncludedIncluded
Check whether your plan allows writingget_account_statusIncludedIncluded
Create or rename a deckcreate_deckupdate_deckNot includedIncluded
Add cards written by the AIimport_flashcardsNot includedIncluded
Rewrite an existing cardupdate_flashcardNot includedIncluded
Delete cards or decksdelete_flashcardsdelete_deckNot includedIncluded
Restore something you deletedrestore_flashcardsrestore_deckNot includedIncluded

03Tools

The tools your AI client can call

Once connected, your AI client sees the tools below. You never have to name them yourself, but this is the map if you want to know what just happened.

Reading

Free

Available on the free plan. Nothing in Memly changes.

  • list_decks

    Returns your decks and their IDs, usually as the step before saving into an existing deck.

  • search_flashcards

    Searches across your cards by text, optionally narrowed to one deck.

  • get_flashcard

    Returns the front, back, and tags of a single card.

  • search

    The fixed tool name that ChatGPT deep research looks for. Clients that expect it can search your cards through this.

  • fetch

    The counterpart to search, which returns the content behind a search hit.

  • get_account_status

    Reports whether the authorized account is allowed to write.

Creating and updating

Plus / Pro

Requires Plus or Pro. Most AI clients show the action and ask you to confirm before it runs.

  • create_deck

    Creates a new deck.

  • update_deck

    Updates a deck, such as renaming it.

  • import_flashcards

    Adds a batch of AI-written cards, up to 100 per call.

  • update_flashcard

    Rewrites an existing card's front, back, tags, or deck.

Deleting and restoring

Plus / Pro

Requires Plus or Pro. Deleting does not erase the data straight away, so anything with a known ID can be restored.

  • delete_deck

    Soft-deletes a deck together with the active cards inside it.

  • delete_flashcards

    Soft-deletes the cards you name.

  • restore_deck

    Restores a deleted deck by ID.

  • restore_flashcards

    Restores deleted cards by ID.

04Flow

How you use it

Use it like a normal conversation. Memly still checks authentication, plan access, ownership, and content safety before changing anything.

  1. Connect Memly

    Add Memly's Remote MCP URL in ChatGPT, Claude, or another MCP-compatible AI client.

  2. Approve your account

    Confirm the Memly account shown on the consent screen and approve the connection.

  3. Ask in plain language

    Say things like, 'turn this into five flashcards' or 'add this to my Edo period deck.'

  4. Memly applies the change

    The AI client calls the Memly tool, and Memly saves, updates, deletes, or restores content after server-side checks.

05How to ask

Ways to ask your AI client

You can ask in normal language. Behind the scenes, the AI client calls a Memly tool and reports the result back.

Create new cards

Turn this explanation into five flashcards and add them to my Edo period deck.

Tool call: import_flashcards

Saved 5 cards to the Edo period deck.

Edit an existing card

Find the Tokugawa Ienari card in my Edo period deck and make the answer shorter.

Tool call: update_flashcard

Updated the back of the card with a shorter answer.

Remove test content

Delete the Test deck and the cards inside it too.

Tool call: delete_deck

Deleted the Test deck. It can be restored later if needed.

06Safety

Safety and limits

Even when an AI client sends the request, Memly treats it as untrusted input and checks who is acting, what they can change, and whether the content is safe.

  • Auth and authorization

    Memly checks the OAuth 2.1 bearer token, Plus/Pro subscription, and deck ownership.

  • Input checks

    Memly checks required fields, text length, card count, tag count, and basic card shape before saving.

  • HTML sanitization

    Rich HTML keeps only the 12 allowed tags and strips every attribute, including href and class. Links and images are not preserved.

  • Consent before writing

    Creating cards is a write operation, so the guide tells AI clients to show the action and ask for user confirmation before invoking the tool.

Rules for good Memly cards

  • Ask about one concept, definition, decision rule, process step, or comparison per card.
  • Make answers self-contained enough to understand without reopening the source.
  • Cover reasons, distinctions, examples, and common mistakes, not only terms.
  • Avoid duplicates that merely rephrase the same fact.
  • Preserve exact terms and proper nouns; write explanations in the requested language.

07For developers

Technical details for AI clients

Most users do not need this section. It exists so MCP clients and developers can inspect the exact shape used when new cards are added to Memly.

MCP tool schema

Adding cards

New cards are added through import_flashcards.

Destination

The AI client can target an existing deck or create/reuse a deck by title.

Result

Memly returns the destination deck, imported count, skipped count, and non-fatal warnings.

Safety

Memly checks authentication, Plus/Pro access, ownership, and HTML sanitization server-side every time.

Open full 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"] }
    ]
  }
}

Field reference

deckIddeckId or deckTitle
Existing Memly deck ID owned by the authenticated user.
deckTitledeckId or deckTitle
Deck name to create or reuse when deckId is absent. Up to 120 characters.
sourceTitleOptional
Source document name, URL title, or conversation topic for later traceability.
languageOptional
Main explanation language. Use ja, en, or ko.
cards[].frontRequired
Plain-text prompt side. Ask for one clear recall target.
cards[].backRequired
Plain-text answer side. Keep it compact but self-contained.
cards[].frontRich / backRichOptional
HTML version. Use only allowed tags; Memly sanitizes it server-side.
cards[].tagsOptional
Short tags for search and organization. Hard limit of 12 per card, 40 characters each; exceeding it rejects the whole call.
structuredContent.deckId / deckTitleOn success
Returned so the AI client can identify which Memly deck received the import.
structuredContent.importedCount / skippedCountOn success
Returned so the conversation can explain how many cards were created and how many were skipped.
structuredContent.warningsOptional
Non-fatal notes such as sanitized HTML or duplicate cards skipped during import.

Common errors

HTTP 401 Unauthorized

Authentication required

The access token is missing, expired, or was not issued for Memly MCP. The JSON-RPC body carries code -32001. Restart OAuth from the resource_metadata pointer in the WWW-Authenticate header.
HTTP 400 Bad Request

Malformed request

The body is not valid JSON, is not a JSON-RPC 2.0 request, is a JSON-RPC batch array, or the MCP-Protocol-Version header names a version Memly does not support. Split batches into one request per POST.
HTTP 403 Forbidden

Rejected Origin

The request carried an Origin header that is not allowed. This is unrelated to plans or permissions.
HTTP 429 / 413

Rate limit / payload size

429 means too many requests in a short window; retry after the Retry-After seconds. 413 means the body exceeded 1 MB, so split the cards across calls.
JSON-RPC error -32601 / -32602 / -32603

Protocol error

Returned inside an HTTP 200 body when the MCP request itself cannot be processed: an unknown method, an unknown tool name, a missing params.name, or an unexpected server-side failure (-32603).
Tool result isError: true (HTTP 200)

Tool execution error

Every business-level failure arrives this way: Plus/Pro required, input validation, a deck or card that does not exist, or a conflicting concurrent edit. Memly does not return HTTP 403 or HTTP 404 for these; the reason is in the result text.

08FAQ

Frequently asked questions

Common questions about using Memly MCP.

Does it work on the free plan?

Partly. Free users can connect and read: searching and viewing decks and cards both work without a subscription. Write operations such as creating, editing, deleting, and restoring require Plus or Pro.

Which AI clients are supported?

Any client that supports Remote MCP can connect. We have verified the connection with ChatGPT (Developer mode) and Claude (custom connectors).

Is my AI conversation stored in Memly?

No. Memly only receives the tool inputs the AI client sends, such as card text or search terms. The full conversation is never transmitted.

What if I delete a card or deck by mistake?

Deleting does not erase the data straight away, so it can be undone. But no tool can list deleted content, which means restoring needs an ID. Within the same conversation the ID is still there, so "restore the deck I just deleted" works. In a new conversation the ID is gone, so restore it from the Memly app instead.

Can it access another user's decks?

No. The connector only operates on the account you authorized via OAuth, and Memly verifies ownership on the server for every request.

The connection keeps failing. What should I check?

Work through the "If something goes wrong" list: remove the connector and add it again with the same URL. If it still fails, contact support with the ofid identifier shown on the error screen and the time of the attempt.

Set up your Memly MCP connection

Connect Memly to your AI client. Free users can look things up, and Plus/Pro users can organize decks and cards directly from chat.