MCP App Store
by KeenEthics

Overview

Liu Cards is a flashcards app with spaced repetition. This plugin connects your assistant to your own Liu Cards deck, so you can build cards and study without leaving the conversation. WHAT YOU CAN DO - Turn a conversation into cards. Ask for flashcards on whatever you have just been discussing. Candidates are checked against your deck first, so you do not pile up duplicates. - Learn vocabulary properly. The server lays out a vocabulary card for you: the word with its pronunciation and part of speech on the front, and the meaning, an example sentence and its translation on the back. The word and the example are spoken aloud. - Review out loud. Ask to be quizzed, answer from memory, and every result is recorded. An FSRS scheduler decides when each card comes back, just before you would forget it. - See what you already know. Ask what you know about a subject and get back the related cards, each with a mastery label: new, learning, shaky or known. - Add pictures. Put a photo from the chat, or an image from the web, on either side of a card. A side with a picture needs no text, which suits "who or what is this?" cards. - Follow channels. Browse public collections of ready-made cards, save the ones you want into your own deck, or post to a channel you own. WHAT YOU NEED A Liu Cards account. You sign in and approve the connection on liucards.app, and you can disconnect it whenever you like. Cards you create are private to you unless you post them to a public channel. Liu Cards runs in any browser at liucards.app and as an app on iPhone and Android, so everything you make here is waiting for you wherever you study.

Tools

add_image

ChatGPT
Show a picture on one side of a card the user created, replacing the picture that side had. Pass a photo from this chat in image, or a public https link to an image in image_url. crop cuts out part of the picture, for example one character from a group photo.

add_pronunciation

ChatGPT
Generate spoken pronunciation for a card the user created and attach it, replacing any audio that side already had. Pass text to read something exact, for example only the example sentence on the back of a language card; otherwise the side's first line is read. Use it for existing cards, or after update_card changed a face's text.

check_cards

ChatGPT
Before creating cards, check each candidate against the user's deck. verdict is in_deck (the same card is already there), similar (worth a look first: the same headline with a different answer, or a card close in meaning) or new. matches lists those cards with card_id, headlines and the user's mastery (new, learning, shaky, known), and a similarity from 0 to 1 when the match came from meaning. Create the new ones. For a similar one, decide from the match: a different meaning deserves its own card, the same meaning worded differently does not, and for a shaky match consider an extra example or a variation.

create_card

ChatGPT
Create a flashcard that is not vocabulary; for a word or phrase in a language the user is learning, use create_vocabulary_card. Personal and private by default, added to the user's review deck. With channel_id it is posted publicly to that channel instead (the user must own the channel). Write plain text without labels, for example front "What does git rebase do?", back "Replays your commits on top of another branch", back_details "Keeps the history linear, unlike a merge". Either side can show a picture, from a photo in this chat (front_image, back_image) or a public https image link (front_image_url, back_image_url); a side with a picture may have no text, e.g. a picture of a character on the front and the name on the back. A personal card whose front and back headlines match a card already in the deck is not created again: the result is that card, with already_in_deck true.

create_vocabulary_card

ChatGPT
Create a card for a word or phrase in a language the user is learning. Give each part in its own field as plain text, with no labels; the server lays out the card: the word with its pronunciation and part of speech on the front; the meaning, the example sentence and its translation on the back. By default it also voices the word and the example sentence in the language being learned. The card is private and goes into the user's review deck, or is posted to a channel the user owns with channel_id. The result shows the laid-out front and back. If the deck already has a card with the same word and meaning, none is created: the result is that card, with already_in_deck true.

delete_card

ChatGPT
Delete a card the user created. It leaves the user's deck and, for a channel card, everyone else's.

get_cards_for_review

ChatGPT
Cards due for review right now, most overdue first, with the total number waiting (count). Review them one at a time: show the front, let the user answer, reveal the back, then call submit_review.

get_channel_cards

ChatGPT
Cards in a channel, newest first, each flagged is_saved for the user.

get_feed

ChatGPT
The home feed: recent cards from channels the user follows plus discovery from other public channels. Each card has card_id, channel_id, channel_name, is_saved and is_following.

get_knowledge

ChatGPT
The cards in the user's deck most related in meaning to a topic, each with the user's mastery (new, learning, shaky, known), plus counts per mastery and the deck size. Use it to judge the user's level and gaps before creating cards or practising; combine it with what you hear from the user. Name the topic with a few example items, for example "Dutch food words like de rekening, het menu, lekker" rather than just "Dutch": matching is by meaning, and examples make it much more precise. Cards created in the last minute may be missing.

list_channels

ChatGPT
Public channels to discover (default), or the user's own channels with owned = true. Each has id, name, description, subscriber_count, is_owner and is_subscribed.

list_my_cards

ChatGPT
The user's review deck: cards they created plus channel cards they saved, newest first. Each item has saved_card_id (for submit_review), card_id (for update_card, delete_card, add_pronunciation, save_card), front, back, mastery, state, due_at, is_owner (only those cards can be changed) and channel_name for channel cards. When the result has a next value there are more: pass it as before.

save_card

ChatGPT
Add a public channel card to the user's review deck.

search_my_cards

ChatGPT
Find cards in the user's whole deck with this text on the front or the back, ignoring case, newest first. Items have the same fields as list_my_cards, mastery included. When the result has a next value there are more: pass it as before.

submit_review

ChatGPT
Record how the user did on one card and reschedule it with spaced repetition. Call once per card, after the user has answered.

subscribe_channel

ChatGPT
Follow a public channel so its cards appear in the user's feed.

unsave_card

ChatGPT
Remove a saved channel card from the user's review deck. The card itself stays in its channel.

unsubscribe_channel

ChatGPT
Stop following a channel.

update_card

ChatGPT
Replace the text of a card the user created. Give the complete new content for a face; details left out are removed. A face you leave out is left alone, which is how to change one side of a card whose other side is a picture with no text. Pictures and audio are kept, so after changing a face's text, call add_pronunciation to refresh that side's audio.

Capabilities

Writes

Example Prompts

Click any prompt to copy it.

Similar Apps