{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_myeypaux2mj9","handle":"lingard-vocab","url":"https://wellknown.network/agents/lingard-vocab","links":{"self":"https://wellknown.network/agents/lingard-vocab/record.json","html":"https://wellknown.network/agents/lingard-vocab","markdown":"https://wellknown.network/agents/lingard-vocab/record.md","api":"https://wellknown.network/api/v1/agents/lingard-vocab","status":"https://wellknown.network/api/v1/agents/lingard-vocab/status","claim":"https://wellknown.network/agents/lingard-vocab/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/lingard-vocab/claim.json","badge":"https://wellknown.network/agents/lingard-vocab/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/lingard-vocab/history","tools":"https://wellknown.network/api/v1/agents/lingard-vocab/tools"},"ard":{"identifier":"urn:air:lingard.app:server:lingard-vocab","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"Lingard Vocab","summary":"Build and enrich your Lingard vocabulary: topic collections, flashcards, translations, examples.","description":"Build and enrich your Lingard vocabulary: topic collections, flashcards, translations, examples.","publisher":{"name":"app.lingard","url":null},"homepage":"https://lingard.app/instruction_mcp","repository":null,"version":"0.5.8","license":null,"protocols":["mcp"],"tags":[],"pricing":null,"endpoints":[{"url":"https://lingard.app/mcp","type":"mcp_streamable_http","auth":null,"probeable":true}],"skills":null,"tools":null,"extra":{"updatedAt":"2026-10-30T15:31:28.984084Z","publishedAt":"2026-10-30T15:31:28.984084Z","registryName":"app.lingard/vocab"},"attribution":{"kind":"mcp_registry","name":"mcp_registry","summary":"mcp_registry","version":"mcp_registry","description":"mcp_registry","homepageUrl":"mcp_registry","publisherName":"mcp_registry"}},"derived":{"capabilities":[{"slug":"content.translation","name":"Translation","confidence":1,"provenance":"derived"},{"slug":"content.writing","name":"Writing & Editing","confidence":1,"provenance":"derived"},{"slug":"media.image-generation","name":"Image Generation","confidence":0.583,"provenance":"derived"}],"categories":["content","media"],"language":"en"},"observed":{"status":"live","statusReason":"Responded 1h ago.","lastOkAt":"2026-11-02T21:36:07.630Z","lastProbedAt":"2026-11-02T21:36:07.630Z","statusComputedAt":"2026-11-02T21:40:41.037Z","reliability30d":{"probes":7,"successRate":1,"p50Ms":156,"basis":"service","measures":{"availability":"availability","latency":"response time","tools":"tool surface observed","summary":"Checks reached the service itself."},"checks":{"total":7,"ok":7,"authBoundaryOk":0,"serviceOk":7,"note":"Counted from the observation rows for the window, checks of the server only (HTTP, A2A card, MCP initialize). ok = authBoundaryOk + serviceOk. `probes` is the sum of daily rollups and includes registry checks, so it can differ from `total`."}},"latestObservations":[{"at":"2026-11-02T21:36:07.630Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":187,"error":null,"detail":{"tools":[{"name":"search","description":"Searches the user's live Lingard account: vocabulary, learning context, English profile, totals, collection titles, saved words, flashcards, and missing vocabul"},{"name":"fetch","description":"Fetches the full live Lingard JSON record for a search-result id (e.g. \"learning-context:en\") or a Lingard resource URI such as lingard://learning-context/en."},{"name":"lingard_get_learning_context","description":"Returns the user's current Lingard learning context, read live from their account: English profile, vocabulary totals, saved collections and their titles, card "},{"name":"lingard_get_vocab_collection","description":"Returns live cards from one Lingard vocabulary collection by UUID or title, including curated Lingard collections and the \"Words not in a collection\" bucket of "},{"name":"lingard_get_collection_gaps","description":"Returns live Lingard cards in a collection that are missing requested fields such as translation, POS, pronunciation, examples, or image. A curated Lingard coll"},{"name":"lingard_get_word_suggestion_context","description":"Returns live Lingard profile level, topic, collection context, and the words the user already has: the context for suggesting level-appropriate new cards that a"},{"name":"lingard_preview_vocab_changes","description":"Previews a Lingard vocabulary collection/card change without writing to Firestore. Cards are checked as on commit. Unless allowIncompleteCards is true, a new ca"},{"name":"lingard_commit_vocab_changes","description":"Commits a previously previewed or freshly supplied Lingard vocabulary change. Unless allowIncompleteCards is true, a new card needs title, translate, pos, pron/"},{"name":"lingard_create_vocab_collection","description":"Creates a Lingard vocabulary collection, optionally with initial cards; commit=true writes it. Unless allowIncompleteCards is true, a new card needs title, tran"},{"name":"lingard_add_words_to_collection","description":"Adds cards to an existing Lingard collection, deduplicating by normalized word title; commit=true writes them. Only collections with writable=\"full\" accept new "},{"name":"lingard_fill_missing_card_fields","description":"Fills empty fields on existing Lingard cards. It never overwrites or clears a field that already has a value. Works on the user's own collections and on the \"Wo"},{"name":"lingard_update_example_translations","description":"Rewrites only the translation line of examples that already exist on Lingard cards; the example sentence, its {} highlights and its audio/typing markers are lef"},{"name":"lingard_attach_card_images","description":"Attaches supplied images to existing Lingard cards. It does not generate images: each entry carries the image itself as imageBase64 or dataUri, or an imageUrl t"},{"name":"lingard_get_learning_pauses","description":"Lists, for one language, the user's collections and sources (books, the news) and which of them are on pause. A collection or source on pause gives the automati"},{"name":"lingard_set_learning_pauses","description":"Puts collections and sources on pause or takes them off it, for one language — e.g. \"study only my Travel collection this week\", \"pause the news words\", \"resume"}],"toolCount":15,"toolsHash":"5e3b2cf157e0769fc29cdab50473645c58ab3c44ece522e2a225ad7bebbb0b90","serverName":"lingard-vocab","capabilities":["tools","resources"],"serverVersion":"0.5.9","protocolVersion":"2025-06-18"}},{"at":"2026-11-02T13:26:55.758Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":165,"error":null,"detail":{"tools":[{"name":"search","description":"Searches the user's live Lingard account: vocabulary, learning context, English profile, totals, collection titles, saved words, flashcards, and missing vocabul"},{"name":"fetch","description":"Fetches the full live Lingard JSON record for a search-result id (e.g. \"learning-context:en\") or a Lingard resource URI such as lingard://learning-context/en."},{"name":"lingard_get_learning_context","description":"Returns the user's current Lingard learning context, read live from their account: English profile, vocabulary totals, saved collections and their titles, card "},{"name":"lingard_get_vocab_collection","description":"Returns live cards from one Lingard vocabulary collection by UUID or title, including curated Lingard collections and the \"Words not in a collection\" bucket of "},{"name":"lingard_get_collection_gaps","description":"Returns live Lingard cards in a collection that are missing requested fields such as translation, POS, pronunciation, examples, or image. A curated Lingard coll"},{"name":"lingard_get_word_suggestion_context","description":"Returns live Lingard profile level, topic, collection context, and the words the user already has: the context for suggesting level-appropriate new cards that a"},{"name":"lingard_preview_vocab_changes","description":"Previews a Lingard vocabulary collection/card change without writing to Firestore. Cards are checked as on commit. Unless allowIncompleteCards is true, a new ca"},{"name":"lingard_commit_vocab_changes","description":"Commits a previously previewed or freshly supplied Lingard vocabulary change. Unless allowIncompleteCards is true, a new card needs title, translate, pos, pron/"},{"name":"lingard_create_vocab_collection","description":"Creates a Lingard vocabulary collection, optionally with initial cards; commit=true writes it. Unless allowIncompleteCards is true, a new card needs title, tran"},{"name":"lingard_add_words_to_collection","description":"Adds cards to an existing Lingard collection, deduplicating by normalized word title; commit=true writes them. Only collections with writable=\"full\" accept new "},{"name":"lingard_fill_missing_card_fields","description":"Fills empty fields on existing Lingard cards. It never overwrites or clears a field that already has a value. Works on the user's own collections and on the \"Wo"},{"name":"lingard_update_example_translations","description":"Rewrites only the translation line of examples that already exist on Lingard cards; the example sentence, its {} highlights and its audio/typing markers are lef"},{"name":"lingard_attach_card_images","description":"Attaches supplied images to existing Lingard cards. It does not generate images: each entry carries the image itself as imageBase64 or dataUri, or an imageUrl t"},{"name":"lingard_get_learning_pauses","description":"Lists, for one language, the user's collections and sources (books, the news) and which of them are on pause. A collection or source on pause gives the automati"},{"name":"lingard_set_learning_pauses","description":"Puts collections and sources on pause or takes them off it, for one language — e.g. \"study only my Travel collection this week\", \"pause the news words\", \"resume"}],"toolCount":15,"toolsHash":"5e3b2cf157e0769fc29cdab50473645c58ab3c44ece522e2a225ad7bebbb0b90","serverName":"lingard-vocab","capabilities":["tools","resources"],"serverVersion":"0.5.9","protocolVersion":"2025-06-18"}},{"at":"2026-11-02T05:28:36.402Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":154,"error":null,"detail":{"tools":[{"name":"search","description":"Searches the user's live Lingard account: vocabulary, learning context, English profile, totals, collection titles, saved words, flashcards, and missing vocabul"},{"name":"fetch","description":"Fetches the full live Lingard JSON record for a search-result id (e.g. \"learning-context:en\") or a Lingard resource URI such as lingard://learning-context/en."},{"name":"lingard_get_learning_context","description":"Returns the user's current Lingard learning context, read live from their account: English profile, vocabulary totals, saved collections and their titles, card "},{"name":"lingard_get_vocab_collection","description":"Returns live cards from one Lingard vocabulary collection by UUID or title, including curated Lingard collections and the \"Words not in a collection\" bucket of "},{"name":"lingard_get_collection_gaps","description":"Returns live Lingard cards in a collection that are missing requested fields such as translation, POS, pronunciation, examples, or image. A curated Lingard coll"},{"name":"lingard_get_word_suggestion_context","description":"Returns live Lingard profile level, topic, collection context, and the words the user already has: the context for suggesting level-appropriate new cards that a"},{"name":"lingard_preview_vocab_changes","description":"Previews a Lingard vocabulary collection/card change without writing to Firestore. Cards are checked as on commit. Unless allowIncompleteCards is true, a new ca"},{"name":"lingard_commit_vocab_changes","description":"Commits a previously previewed or freshly supplied Lingard vocabulary change. Unless allowIncompleteCards is true, a new card needs title, translate, pos, pron/"},{"name":"lingard_create_vocab_collection","description":"Creates a Lingard vocabulary collection, optionally with initial cards; commit=true writes it. Unless allowIncompleteCards is true, a new card needs title, tran"},{"name":"lingard_add_words_to_collection","description":"Adds cards to an existing Lingard collection, deduplicating by normalized word title; commit=true writes them. Only collections with writable=\"full\" accept new "},{"name":"lingard_fill_missing_card_fields","description":"Fills empty fields on existing Lingard cards. It never overwrites or clears a field that already has a value. Works on the user's own collections and on the \"Wo"},{"name":"lingard_update_example_translations","description":"Rewrites only the translation line of examples that already exist on Lingard cards; the example sentence, its {} highlights and its audio/typing markers are lef"},{"name":"lingard_attach_card_images","description":"Attaches supplied images to existing Lingard cards. It does not generate images: each entry carries the image itself as imageBase64 or dataUri, or an imageUrl t"},{"name":"lingard_get_learning_pauses","description":"Lists, for one language, the user's collections and sources (books, the news) and which of them are on pause. A collection or source on pause gives the automati"},{"name":"lingard_set_learning_pauses","description":"Puts collections and sources on pause or takes them off it, for one language — e.g. \"study only my Travel collection this week\", \"pause the news words\", \"resume"}],"toolCount":15,"toolsHash":"5e3b2cf157e0769fc29cdab50473645c58ab3c44ece522e2a225ad7bebbb0b90","serverName":"lingard-vocab","capabilities":["tools","resources"],"serverVersion":"0.5.9","protocolVersion":"2025-06-18"}},{"at":"2026-11-01T21:28:44.925Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":163,"error":null,"detail":{"tools":[{"name":"search","description":"Searches the user's live Lingard account: vocabulary, learning context, English profile, totals, collection titles, saved words, flashcards, and missing vocabul"},{"name":"fetch","description":"Fetches the full live Lingard JSON record for a search-result id (e.g. \"learning-context:en\") or a Lingard resource URI such as lingard://learning-context/en."},{"name":"lingard_get_learning_context","description":"Returns the user's current Lingard learning context, read live from their account: English profile, vocabulary totals, saved collections and their titles, card "},{"name":"lingard_get_vocab_collection","description":"Returns live cards from one Lingard vocabulary collection by UUID or title, including curated Lingard collections and the \"Words not in a collection\" bucket of "},{"name":"lingard_get_collection_gaps","description":"Returns live Lingard cards in a collection that are missing requested fields such as translation, POS, pronunciation, examples, or image. A curated Lingard coll"},{"name":"lingard_get_word_suggestion_context","description":"Returns live Lingard profile level, topic, collection context, and the words the user already has: the context for suggesting level-appropriate new cards that a"},{"name":"lingard_preview_vocab_changes","description":"Previews a Lingard vocabulary collection/card change without writing to Firestore. Cards are checked as on commit. Unless allowIncompleteCards is true, a new ca"},{"name":"lingard_commit_vocab_changes","description":"Commits a previously previewed or freshly supplied Lingard vocabulary change. Unless allowIncompleteCards is true, a new card needs title, translate, pos, pron/"},{"name":"lingard_create_vocab_collection","description":"Creates a Lingard vocabulary collection, optionally with initial cards; commit=true writes it. Unless allowIncompleteCards is true, a new card needs title, tran"},{"name":"lingard_add_words_to_collection","description":"Adds cards to an existing Lingard collection, deduplicating by normalized word title; commit=true writes them. Only collections with writable=\"full\" accept new "},{"name":"lingard_fill_missing_card_fields","description":"Fills empty fields on existing Lingard cards. It never overwrites or clears a field that already has a value. Works on the user's own collections and on the \"Wo"},{"name":"lingard_update_example_translations","description":"Rewrites only the translation line of examples that already exist on Lingard cards; the example sentence, its {} highlights and its audio/typing markers are lef"},{"name":"lingard_attach_card_images","description":"Attaches supplied images to existing Lingard cards. It does not generate images: each entry carries the image itself as imageBase64 or dataUri, or an imageUrl t"},{"name":"lingard_get_learning_pauses","description":"Lists, for one language, the user's collections and sources (books, the news) and which of them are on pause. A collection or source on pause gives the automati"},{"name":"lingard_set_learning_pauses","description":"Puts collections and sources on pause or takes them off it, for one language — e.g. \"study only my Travel collection this week\", \"pause the news words\", \"resume"}],"toolCount":15,"toolsHash":"5e3b2cf157e0769fc29cdab50473645c58ab3c44ece522e2a225ad7bebbb0b90","serverName":"lingard-vocab","capabilities":["tools","resources"],"serverVersion":"0.5.9","protocolVersion":"2025-06-18"}},{"at":"2026-11-01T13:28:19.874Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":149,"error":null,"detail":{"tools":[{"name":"search","description":"Searches the user's live Lingard account: vocabulary, learning context, English profile, totals, collection titles, saved words, flashcards, and missing vocabul"},{"name":"fetch","description":"Fetches the full live Lingard JSON record for a search-result id (e.g. \"learning-context:en\") or a Lingard resource URI such as lingard://learning-context/en."},{"name":"lingard_get_learning_context","description":"Returns the user's current Lingard learning context, read live from their account: English profile, vocabulary totals, saved collections and their titles, card "},{"name":"lingard_get_vocab_collection","description":"Returns live cards from one Lingard vocabulary collection by UUID or title, including curated Lingard collections and the \"Words not in a collection\" bucket of "},{"name":"lingard_get_collection_gaps","description":"Returns live Lingard cards in a collection that are missing requested fields such as translation, POS, pronunciation, examples, or image. A curated Lingard coll"},{"name":"lingard_get_word_suggestion_context","description":"Returns live Lingard profile level, topic, collection context, and the words the user already has: the context for suggesting level-appropriate new cards that a"},{"name":"lingard_preview_vocab_changes","description":"Previews a Lingard vocabulary collection/card change without writing to Firestore. Cards are checked as on commit. Unless allowIncompleteCards is true, a new ca"},{"name":"lingard_commit_vocab_changes","description":"Commits a previously previewed or freshly supplied Lingard vocabulary change. Unless allowIncompleteCards is true, a new card needs title, translate, pos, pron/"},{"name":"lingard_create_vocab_collection","description":"Creates a Lingard vocabulary collection, optionally with initial cards; commit=true writes it. Unless allowIncompleteCards is true, a new card needs title, tran"},{"name":"lingard_add_words_to_collection","description":"Adds cards to an existing Lingard collection, deduplicating by normalized word title; commit=true writes them. Only collections with writable=\"full\" accept new "},{"name":"lingard_fill_missing_card_fields","description":"Fills empty fields on existing Lingard cards. It never overwrites or clears a field that already has a value. Works on the user's own collections and on the \"Wo"},{"name":"lingard_update_example_translations","description":"Rewrites only the translation line of examples that already exist on Lingard cards; the example sentence, its {} highlights and its audio/typing markers are lef"},{"name":"lingard_attach_card_images","description":"Attaches supplied images to existing Lingard cards. It does not generate images: each entry carries the image itself as imageBase64 or dataUri, or an imageUrl t"},{"name":"lingard_get_learning_pauses","description":"Lists, for one language, the user's collections and sources (books, the news) and which of them are on pause. A collection or source on pause gives the automati"},{"name":"lingard_set_learning_pauses","description":"Puts collections and sources on pause or takes them off it, for one language — e.g. \"study only my Travel collection this week\", \"pause the news words\", \"resume"}],"toolCount":15,"toolsHash":"5e3b2cf157e0769fc29cdab50473645c58ab3c44ece522e2a225ad7bebbb0b90","serverName":"lingard-vocab","capabilities":["tools","resources"],"serverVersion":"0.5.9","protocolVersion":"2025-06-18"}},{"at":"2026-11-01T05:32:34.985Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":149,"error":null,"detail":{"tools":[{"name":"search","description":"Searches the user's live Lingard account: vocabulary, learning context, English profile, totals, collection titles, saved words, flashcards, and missing vocabul"},{"name":"fetch","description":"Fetches the full live Lingard JSON record for a search-result id (e.g. \"learning-context:en\") or a Lingard resource URI such as lingard://learning-context/en."},{"name":"lingard_get_learning_context","description":"Returns the user's current Lingard learning context, read live from their account: English profile, vocabulary totals, saved collections and their titles, card "},{"name":"lingard_get_vocab_collection","description":"Returns live cards from one Lingard vocabulary collection by UUID or title, including curated Lingard collections and the \"Words not in a collection\" bucket of "},{"name":"lingard_get_collection_gaps","description":"Returns live Lingard cards in a collection that are missing requested fields such as translation, POS, pronunciation, examples, or image. A curated Lingard coll"},{"name":"lingard_get_word_suggestion_context","description":"Returns live Lingard profile level, topic, collection context, and the words the user already has: the context for suggesting level-appropriate new cards that a"},{"name":"lingard_preview_vocab_changes","description":"Previews a Lingard vocabulary collection/card change without writing to Firestore. Cards are checked as on commit. Unless allowIncompleteCards is true, a new ca"},{"name":"lingard_commit_vocab_changes","description":"Commits a previously previewed or freshly supplied Lingard vocabulary change. Unless allowIncompleteCards is true, a new card needs title, translate, pos, pron/"},{"name":"lingard_create_vocab_collection","description":"Creates a Lingard vocabulary collection, optionally with initial cards; commit=true writes it. Unless allowIncompleteCards is true, a new card needs title, tran"},{"name":"lingard_add_words_to_collection","description":"Adds cards to an existing Lingard collection, deduplicating by normalized word title; commit=true writes them. Only collections with writable=\"full\" accept new "},{"name":"lingard_fill_missing_card_fields","description":"Fills empty fields on existing Lingard cards. It never overwrites or clears a field that already has a value. Works on the user's own collections and on the \"Wo"},{"name":"lingard_update_example_translations","description":"Rewrites only the translation line of examples that already exist on Lingard cards; the example sentence, its {} highlights and its audio/typing markers are lef"},{"name":"lingard_attach_card_images","description":"Attaches supplied images to existing Lingard cards. It does not generate images: each entry carries the image itself as imageBase64 or dataUri, or an imageUrl t"},{"name":"lingard_get_learning_pauses","description":"Lists, for one language, the user's collections and sources (books, the news) and which of them are on pause. A collection or source on pause gives the automati"},{"name":"lingard_set_learning_pauses","description":"Puts collections and sources on pause or takes them off it, for one language — e.g. \"study only my Travel collection this week\", \"pause the news words\", \"resume"}],"toolCount":15,"toolsHash":"5e3b2cf157e0769fc29cdab50473645c58ab3c44ece522e2a225ad7bebbb0b90","serverName":"lingard-vocab","capabilities":["tools","resources"],"serverVersion":"0.5.9","protocolVersion":"2025-06-18"}},{"at":"2026-10-31T21:26:58.982Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":153,"error":null,"detail":{"tools":[{"name":"search","description":"Searches the user's live Lingard account: vocabulary, learning context, English profile, totals, collection titles, saved words, flashcards, and missing vocabul"},{"name":"fetch","description":"Fetches the full live Lingard JSON record for a search-result id (e.g. \"learning-context:en\") or a Lingard resource URI such as lingard://learning-context/en."},{"name":"lingard_get_learning_context","description":"Returns the user's current Lingard learning context, read live from their account: English profile, vocabulary totals, saved collections and their titles, card "},{"name":"lingard_get_vocab_collection","description":"Returns live cards from one Lingard vocabulary collection by UUID or title, including curated Lingard collections and the \"Words not in a collection\" bucket of "},{"name":"lingard_get_collection_gaps","description":"Returns live Lingard cards in a collection that are missing requested fields such as translation, POS, pronunciation, examples, or image. A curated Lingard coll"},{"name":"lingard_get_word_suggestion_context","description":"Returns live Lingard profile level, topic, collection context, and the words the user already has: the context for suggesting level-appropriate new cards that a"},{"name":"lingard_preview_vocab_changes","description":"Previews a Lingard vocabulary collection/card change without writing to Firestore. Cards are checked as on commit. Unless allowIncompleteCards is true, a new ca"},{"name":"lingard_commit_vocab_changes","description":"Commits a previously previewed or freshly supplied Lingard vocabulary change. Unless allowIncompleteCards is true, a new card needs title, translate, pos, pron/"},{"name":"lingard_create_vocab_collection","description":"Creates a Lingard vocabulary collection, optionally with initial cards; commit=true writes it. Unless allowIncompleteCards is true, a new card needs title, tran"},{"name":"lingard_add_words_to_collection","description":"Adds cards to an existing Lingard collection, deduplicating by normalized word title; commit=true writes them. Only collections with writable=\"full\" accept new "},{"name":"lingard_fill_missing_card_fields","description":"Fills empty fields on existing Lingard cards. It never overwrites or clears a field that already has a value. Works on the user's own collections and on the \"Wo"},{"name":"lingard_update_example_translations","description":"Rewrites only the translation line of examples that already exist on Lingard cards; the example sentence, its {} highlights and its audio/typing markers are lef"},{"name":"lingard_attach_card_images","description":"Attaches supplied images to existing Lingard cards. It does not generate images: each entry carries the image itself as imageBase64 or dataUri, or an imageUrl t"},{"name":"lingard_get_learning_pauses","description":"Lists, for one language, the user's collections and sources (books, the news) and which of them are on pause. A collection or source on pause gives the automati"},{"name":"lingard_set_learning_pauses","description":"Puts collections and sources on pause or takes them off it, for one language — e.g. \"study only my Travel collection this week\", \"pause the news words\", \"resume"}],"toolCount":15,"toolsHash":"5e3b2cf157e0769fc29cdab50473645c58ab3c44ece522e2a225ad7bebbb0b90","serverName":"lingard-vocab","capabilities":["tools","resources"],"serverVersion":"0.5.9","protocolVersion":"2025-06-18"}}],"tools":[{"name":"search","description":"Searches the user's live Lingard account: vocabulary, learning context, English profile, totals, collection titles, saved words, flashcards, and missing vocabul"},{"name":"fetch","description":"Fetches the full live Lingard JSON record for a search-result id (e.g. \"learning-context:en\") or a Lingard resource URI such as lingard://learning-context/en."},{"name":"lingard_get_learning_context","description":"Returns the user's current Lingard learning context, read live from their account: English profile, vocabulary totals, saved collections and their titles, card "},{"name":"lingard_get_vocab_collection","description":"Returns live cards from one Lingard vocabulary collection by UUID or title, including curated Lingard collections and the \"Words not in a collection\" bucket of "},{"name":"lingard_get_collection_gaps","description":"Returns live Lingard cards in a collection that are missing requested fields such as translation, POS, pronunciation, examples, or image. A curated Lingard coll"},{"name":"lingard_get_word_suggestion_context","description":"Returns live Lingard profile level, topic, collection context, and the words the user already has: the context for suggesting level-appropriate new cards that a"},{"name":"lingard_preview_vocab_changes","description":"Previews a Lingard vocabulary collection/card change without writing to Firestore. Cards are checked as on commit. Unless allowIncompleteCards is true, a new ca"},{"name":"lingard_commit_vocab_changes","description":"Commits a previously previewed or freshly supplied Lingard vocabulary change. Unless allowIncompleteCards is true, a new card needs title, translate, pos, pron/"},{"name":"lingard_create_vocab_collection","description":"Creates a Lingard vocabulary collection, optionally with initial cards; commit=true writes it. Unless allowIncompleteCards is true, a new card needs title, tran"},{"name":"lingard_add_words_to_collection","description":"Adds cards to an existing Lingard collection, deduplicating by normalized word title; commit=true writes them. Only collections with writable=\"full\" accept new "},{"name":"lingard_fill_missing_card_fields","description":"Fills empty fields on existing Lingard cards. It never overwrites or clears a field that already has a value. Works on the user's own collections and on the \"Wo"},{"name":"lingard_update_example_translations","description":"Rewrites only the translation line of examples that already exist on Lingard cards; the example sentence, its {} highlights and its audio/typing markers are lef"},{"name":"lingard_attach_card_images","description":"Attaches supplied images to existing Lingard cards. It does not generate images: each entry carries the image itself as imageBase64 or dataUri, or an imageUrl t"},{"name":"lingard_get_learning_pauses","description":"Lists, for one language, the user's collections and sources (books, the news) and which of them are on pause. A collection or source on pause gives the automati"},{"name":"lingard_set_learning_pauses","description":"Puts collections and sources on pause or takes them off it, for one language — e.g. \"study only my Travel collection this week\", \"pause the news words\", \"resume"}],"package":null,"toolSurface":{"id":"ts_rfbctzk7ymth","endpointId":"ep_ncfturtdajxu","hash":"5e3b2cf157e0769fc29cdab50473645c58ab3c44ece522e2a225ad7bebbb0b90","toolCount":15,"serverName":"lingard-vocab","serverVersion":"0.5.9","protocolVersion":"2025-06-18","firstSeenAt":"2026-10-31T21:26:58.986Z","lastSeenAt":"2026-11-02T21:36:07.646Z","observations":7,"toolNames":["search","fetch","lingard_get_learning_context","lingard_get_vocab_collection","lingard_get_collection_gaps","lingard_get_word_suggestion_context","lingard_preview_vocab_changes","lingard_commit_vocab_changes","lingard_create_vocab_collection","lingard_add_words_to_collection","lingard_fill_missing_card_fields","lingard_update_example_translations","lingard_attach_card_images","lingard_get_learning_pauses","lingard_set_learning_pauses"],"distinctSurfaces":1},"endpointFacts":[]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"mcp_registry","key":"app.lingard/vocab","url":"https://registry.modelcontextprotocol.io/v0/servers/app.lingard%2Fvocab","firstSeenAt":"2026-10-31T19:18:45.203Z","fetchedAt":"2026-10-31T19:18:45.203Z","normalizedAt":"2026-10-31T19:18:45.203Z"}]},"firstSeenAt":"2026-10-31T19:18:45.203Z","updatedAt":"2026-11-02T21:41:34.087Z"}