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.
- 01
Add the URL to your AI client
- 02
Approve it in Memly
- 03
Manage cards from chat
https://app.memly.ai/mcpURL 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.
- 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
- 1Connectors, inside Customize
- 2Add, at the top right
- 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
- 1Add custom connector
- 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
- 1Name
- 2Remote MCP server URL
- 3Add, once both are filled in
- 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 valuehttps://app.memly.ai/mcpYou should seeMemly appears in the list. It is not connected yet, so click Connect on its row to start the authorization.
claude.ai
- 1Name it Memly
- 2Paste the URL
- 3Click Add
- 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
- 1Check the app asking for access and the account
- 2What it will be allowed to do
- 3Allow connection
- 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
- 1Connected, with a Disconnect button
- 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.
| What you can do | Tools involved | Free | Plus / Pro |
|---|---|---|---|
| List your decks and their IDs | list_decks | Included | Included |
| Search across your cards | search_flashcardssearch | Included | Included |
| Read a card's front, back, and tags | get_flashcardfetch | Included | Included |
| Check whether your plan allows writing | get_account_status | Included | Included |
| Create or rename a deck | create_deckupdate_deck | Not included | Included |
| Add cards written by the AI | import_flashcards | Not included | Included |
| Rewrite an existing card | update_flashcard | Not included | Included |
| Delete cards or decks | delete_flashcardsdelete_deck | Not included | Included |
| Restore something you deleted | restore_flashcardsrestore_deck | Not included | Included |
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
FreeAvailable on the free plan. Nothing in Memly changes.
list_decksReturns your decks and their IDs, usually as the step before saving into an existing deck.
search_flashcardsSearches across your cards by text, optionally narrowed to one deck.
get_flashcardReturns the front, back, and tags of a single card.
searchThe fixed tool name that ChatGPT deep research looks for. Clients that expect it can search your cards through this.
fetchThe counterpart to search, which returns the content behind a search hit.
get_account_statusReports whether the authorized account is allowed to write.
Creating and updating
Plus / ProRequires Plus or Pro. Most AI clients show the action and ask you to confirm before it runs.
create_deckCreates a new deck.
update_deckUpdates a deck, such as renaming it.
import_flashcardsAdds a batch of AI-written cards, up to 100 per call.
update_flashcardRewrites an existing card's front, back, tags, or deck.
Deleting and restoring
Plus / ProRequires Plus or Pro. Deleting does not erase the data straight away, so anything with a known ID can be restored.
delete_deckSoft-deletes a deck together with the active cards inside it.
delete_flashcardsSoft-deletes the cards you name.
restore_deckRestores a deleted deck by ID.
restore_flashcardsRestores 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.
Connect Memly
Add Memly's Remote MCP URL in ChatGPT, Claude, or another MCP-compatible AI client.
Approve your account
Confirm the Memly account shown on the consent screen and approve the connection.
Ask in plain language
Say things like, 'turn this into five flashcards' or 'add this to my Edo period deck.'
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 UnauthorizedAuthentication 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 RequestMalformed 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 ForbiddenRejected Origin
- The request carried an Origin header that is not allowed. This is unrelated to plans or permissions.
HTTP 429 / 413Rate 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 / -32603Protocol 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.
Specification references
Implementers should also check these primary references because MCP and client support can evolve.
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.