Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
LINGOCHUNK_TOKENYesYour personal access token (lcp_...). Required.
LINGOCHUNK_BASE_URLNoAPI origin override (for self-host/testing). Default: https://lingochunk.comhttps://lingochunk.com
LINGOCHUNK_CLIP_DIRNoWhere get_audio_clip writes clip files. Default: ~/.cache/lingochunk-mcp~/.cache/lingochunk-mcp

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
get_vocabularyA

List the user's vocabulary, aggregated per word with FSRS maturity (state/stability/due/reps). Grounded in the user's real listening history. Filter by language, status (known|learning|new|due), or CEFR; use 'since' (an ISO 8601 time from a prior 'updated_at') plus 'cursor' for incremental sync. Sync is additive-only, so full-resync periodically. The list is cursor-paginated (limit up to 200); follow next_cursor until it is null to read the complete set.

lookup_wordA

Look up one word: the user's own context (translation, gender, CEFR, FSRS state) if they have cards for it, backed by the shared enrichment lexicon as a gender/CEFR fallback. Use this to ground an LLM's guesses about a word rather than inventing them.

list_libraryA

List the user's ready-to-study episodes (their own submissions plus collections they follow), newest first. Cursor-paginated. Use the returned submission ids with get_transcript / get_audio_url / get_audio_clip.

get_transcriptA

Fetch a submission's transcript: timestamped sentences with translations. Sliceable by sentence-position range (from_sentence/to_sentence) or time range in seconds (from_time/to_time) so you can pull an excerpt instead of a whole episode. transcript_state tells you if it is ready, still processing, or unavailable.

get_audio_urlA

Get a short-lived presigned URL to a submission's full native audio (supports HTTP Range). Use for streaming; for a durable snippet to embed in a lesson, use get_audio_clip instead.

search_examplesA

Search the user's readable library for sentences. 'lemma' returns the curated example sentences for that word; 'q' does a case-insensitive substring match on sentence text. At least one is required, and 'lemma' takes precedence when both are given. Results are a capped sample, not exhaustive.

get_audio_clipA

Cut a native-audio snippet [start, end] (seconds, max 60s) from a submission and SAVE IT to a local file, returning the file path. Use these small clips to embed audio in a self-contained HTML lesson (e.g. as a data URI). Rate limited.

list_decksA

List the user's study decks so you can pick a deck_id before adding cards (add_card) or exporting (export_anki_deck). Each deck reports its language and card counts (total / new / due). Requires the cards:write or decks:export scope.

add_cardA

Add a card to the user's LingoChunk review queue (FSRS; it starts as 'new'). kind=vocab adds a word the user ALREADY has in their vocabulary, resolved by lemma against their own content (404 if the lemma is not in their vocabulary; 409 code=ambiguous_lemma if it occurs in several episodes or under several parts of speech, so pass submission_id or pos as the message names). kind=custom adds a freeform card and REQUIRES front, back and submission_id (the episode it anchors to); pass sentence_position to anchor its example to a specific transcript sentence. Omit deck_id and the card goes to the deck for its own submission (the same deck the app builds, reviews and exports that episode from, so it is immediately visible and exportable); an explicit deck_id must belong to that submission (400 otherwise). A 409 code=duplicate_card means the card already exists: expected, not worth retrying. NOTE: deleting the anchoring episode deletes the card (cascade), and a card added while the app's Words tab is open on that episode may be overwritten by the app's own save, so add cards when the app is not actively editing that deck. Requires the cards:write scope.

export_anki_deckA

Export one of the user's decks to an Anki .apkg and return a download URL. Running it costs nothing (no LLM). This starts the export and polls status for up to ~60s, absorbing rate limits with a Retry-After backoff and never starting a second job while one is already in flight. It returns {status:'ready', download_url} when the file is ready, {status:'pending'} (call again shortly to keep checking) while it generates, {status:'failed'} to retry, or {status:'none'} (nothing to download; call again to trigger a fresh export). A deck with no linked source episode cannot be exported (400). Use list_decks to find a deck_id. Requires the decks:export scope.

save_lessonA

Save a single self-contained HTML lesson to the user's private LingoChunk library (10 MB max, up to 100 lessons, private by default). Returns the lesson metadata plus a short-lived view URL to open it now; its durable home is the app's library, where it opens on any device. Use this to keep a lesson the lingochunk-lesson skill produced. Requires the lessons:write scope.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/lingochunk/lingochunk-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server