MCP App Store
by KeenEthics
Education & Research
WordByWord – Learn Languages icon

WordByWord – Learn Languages

by Vladimir Dolnikov

Overview

Using Claude to learn a language? Then you’ve probably lost a useful word list somewhere in your chat history. WordByWord gives Claude one place to save every new word, along with its translation and an example sentence. From then on, every new chat knows exactly which words you already know, which ones you’re still learning, and which ones are completely new to you. Claude can quiz you on them and level up the ones you get right. Preparing for an upcoming trip, a job interview, or just translating a text you don’t understand? Ask Claude to create a collection of words for you, and WordByWord will save it too, so you can learn it later. WordByWord supports 50+ languages and keeps all your vocabulary organized in one place.

Tools

add_terms

ChatGPT
Add new terms (words or phrases with their translations) to one of the user's collections. Typical use: saving the unfamiliar words of a text the user reads or translates in a language they are learning. Call this tool only after the user agrees. For each term pass the meaning in the user's language and an example sentence taken from the same text. Use list_collections to pick the collection first. Language codes are short codes like 'en', 'de', 'ru'. If the user has no suitable collection yet, call create_collection first, then use its returned collection_id here. Pass source_title (and source_url when the words come from a page) so the user later sees where each word came from. A term may optionally carry image_url — a public https link to a JPEG, PNG or WebP picture illustrating it; the server downloads and stores a copy. Recommended picture format: aspect ratio 7:4, ideally 1344×768, with the main subject in the centre (phones crop the frame to 4:3). At most 20 pictures per call: with more, split the terms into several calls. Terms without pictures have no such limit. A picture that fails is listed in image_errors with the term_id of the already saved term; it can be retried with update_terms for that term_id (calling add_terms again would add the term twice). Returns the url of the collection — show it to the user so they can open it. Example: {"collection_id": "874445486856081408", "term_language_code": "de", "meaning_language_code": "ru", "terms": [{"term": "Vorfahrt", "meaning": "приоритет"}]}. Pictures from this chat (generated or uploaded) go in images, with image_term_indexes listing the position in terms for each of them, e.g. images: [file1, file2], image_term_indexes: [0, 3]; they count towards the same 20 pictures per call.

change_terms_status

ChatGPT
Change the learning status of one or more terms at once, e.g. mark them as known. Learning statuses, from least to best known: new (added, not studied yet), recognize (recognised in context, first correct answers), familiar (recalled, but not reliably yet), learned (recalled reliably, shown for review less often), known (fully learned; only this status counts toward the collection's learned-words total). Terms move up and down automatically as the user trains; setting a status by hand overrides that. Example: {"collection_id": "874445486856081408", "term_ids": ["920000000000000001"], "status": "known"}.

create_collection

ChatGPT
Create a new vocabulary collection for the language the user is learning. Use get_languages to find the language code. The new collection is private. Returns the collection id and its url — show the url to the user so they can open the collection. Example: {"name": "German basics", "language_code": "de"}.

delete_collection

ChatGPT
Permanently delete one of the user's collections with all its terms. Destructive and irreversible: always confirm with the user before calling this. Example: {"collection_id": "874445486856081408"}.

delete_terms

ChatGPT
Delete terms from one of the user's collections by their ids (get them from get_vocabulary). Destructive: confirm with the user before calling this. Example: {"collection_id": "874445486856081408", "term_ids": ["920000000000000001"]}.

fetch

ChatGPT
Fetch the full content of a search result by its id (format 'collection:<id>'): collection details and all its terms with meanings, learning statuses and picture links. Example: {"id": "collection:874445486856081408"}.

get_languages

ChatGPT
List languages supported by WordByWord with their short codes. Use these codes in create_collection and add_terms. Example: no arguments.

get_learning_stats

ChatGPT
Get the user's learning statistics: current and longest daily streak, term counts and status distribution. Pass collection_id to scope to one collection. Example: {} for all collections or {"collection_id": "874445486856081408"}.

get_vocabulary

ChatGPT
Get the user's vocabulary terms grouped by collection: term, meaning, example, picture (image_url, null if none) and learning status. Learning statuses, from least to best known: new (added, not studied yet), recognize (recognised in context, first correct answers), familiar (recalled, but not reliably yet), learned (recalled reliably, shown for review less often), known (fully learned; only this status counts toward the collection's learned-words total). Terms move up and down automatically as the user trains; setting a status by hand overrides that. Pass collection_id to fetch a single collection, omit it for the whole vocabulary. Example: {"collection_id": "874445486856081408"} or {} for everything.

list_collections

ChatGPT
List the user's vocabulary collections with term counts, learning progress and the url of each collection. Call this first to find the collection_id for other tools. Example: no arguments.

request_feature

ChatGPT
Report a missing capability to the WordByWord team. Call this when the user asks for something that cannot be done with the available tools (missing tool, missing field, unsupported action). Tell the user you are sending the request. Call at most once per conversation for the same request. Example: {"summary": "Export vocabulary to Anki", "missing_capability": "no export tool"}.

update_terms

ChatGPT
Edit existing terms: fix the word, its translation, the example sentence or the picture. Only the fields you pass are changed, omitted fields stay as they are; an empty string clears the example or the picture. image_url is a public https link to a JPEG, PNG or WebP picture — the server stores a copy; at most 20 pictures per call. Recommended picture format: aspect ratio 7:4, ideally 1344×768, with the main subject in the centre (phones crop the frame to 4:3). Term ids come from get_vocabulary or add_terms. Either all terms are updated or none: an unknown or foreign id rejects the whole call. To change the learning status use change_terms_status instead. Example: {"terms": [{"term_id": "920000000000000001", "example": "Wir haben Vorfahrt."}]}. A picture from this chat (generated or uploaded) goes in image; then terms must contain exactly the one term it belongs to.

add_terms

Claude

change_terms_status

Claude

create_collection

Claude

delete_collection

Claude

delete_terms

Claude

fetch

Claude

get_languages

Claude

get_learning_stats

Claude

get_vocabulary

Claude

list_collections

Claude

request_feature

Claude

update_terms

Claude

Capabilities

Writes

Example Prompts

Click any prompt to copy it.

App Stats

26

Tools

3

Prompts

ChatGPT, Claude

Platforms

Works with

ChatGPT
Claude

Data refreshed daily