{"guide_version":2,"name":"Anchrs MCP","description":"Create flashcards, review what is due, and explore your Anchrs learning progress through a connection you approve.","documentation_url":"https://anchrs.com/integrations/mcp","configuration_status":"configured","status_description":"Configuration on this deployment only; does not assert live client verification or a directory listing.","endpoint":"https://anchrs.com/mcp","transport":"streamable_http","read_only":false,"authentication":{"type":"oauth2","flow":"authorization_code","pkce_method":"S256","client_registration":"pre_registered","scopes":["flashcards:read","typing:read","flashcards:write","reviews:write"],"resource_metadata_url":"https://anchrs.com/.well-known/oauth-protected-resource/mcp","authorization_server_metadata_url":"https://anchrs.com/.well-known/oauth-authorization-server"},"data_boundaries":{"account":"Only records owned by the user who grants access.","flashcards":"Owned decks and cards, canonical due schedule, and bounded verified review counts. Legacy unclassified history is reported separately; retention and mastery are not estimated.","profile":"A stable opaque account identifier and optional display name; no email address.","typing":"Completed chunks and aggregate performance; counts are chunks, not unique practice runs.","excluded":["typing source code","keystroke logs","typing review payloads","run tokens","OAuth credentials"],"writes":"Separate permissions allow creating private decks and cards, editing cards, and saving chosen review ratings. Previews do not save cards. No delete tool or typing-write tool is exposed."},"tools":[{"name":"list_flashcard_decks","title":"List flashcard decks","description":"List the connected user’s flashcard decks, card counts, and unfiled card count. Use next_after_id to request the next page.","inputSchema":{"type":"object","properties":{"limit":{"type":"integer","minimum":1,"maximum":100,"default":20},"after_id":{"type":"integer","minimum":1,"maximum":9007199254740991}},"required":[],"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"securitySchemes":[{"type":"oauth2","scopes":["flashcards:read"]}],"outputSchema":{"type":"object","properties":{"decks":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer"},"title":{"type":["string","null"]},"flashcard_count":{"type":"integer"},"web_url":{"type":"string"}},"required":["id","title","flashcard_count","web_url"],"additionalProperties":false}},"unfiled_flashcard_count":{"type":"integer"},"next_after_id":{"type":["integer","null"]}},"required":["decks","unfiled_flashcard_count","next_after_id"],"additionalProperties":false}},{"name":"list_flashcards","title":"Find flashcards","description":"Read the connected user’s flashcards. Optionally filter by deck, text in the question or answer, or cards due for review. Text fields may be truncated at 12000 characters. Use next_after_id for pagination.","inputSchema":{"type":"object","properties":{"limit":{"type":"integer","minimum":1,"maximum":100,"default":20},"after_id":{"type":"integer","minimum":1,"maximum":9007199254740991},"deck_id":{"type":"integer","minimum":1,"maximum":9007199254740991},"query":{"type":"string","minLength":1,"maxLength":200},"due_only":{"type":"boolean","default":false}},"required":[],"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"securitySchemes":[{"type":"oauth2","scopes":["flashcards:read"]}],"outputSchema":{"type":"object","properties":{"flashcards":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer"},"question":{"type":["string","null"]},"answer":{"type":["string","null"]},"mnemonic":{"type":["string","null"]},"truncated_fields":{"type":"array","items":{"type":"string"}},"deck":{"type":["object","null"],"properties":{"id":{"type":"integer"},"title":{"type":["string","null"]}},"required":["id","title"],"additionalProperties":false},"due_for_review":{"type":"boolean"},"latest_review":{"type":["object","null"],"properties":{"reviewed_at":{"type":["string","null"]},"initial_review":{"type":"boolean"},"quality":{"type":["integer","null"]},"repetitions":{"type":["integer","null"]},"next_repetition":{"type":["string","null"]},"snoozed_until":{"type":["string","null"]}},"required":["reviewed_at","initial_review","quality","repetitions","next_repetition","snoozed_until"],"additionalProperties":false},"created_at":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","question","answer","mnemonic","truncated_fields","deck","due_for_review","latest_review","created_at","updated_at","web_url"],"additionalProperties":false}},"next_after_id":{"type":["integer","null"]}},"required":["flashcards","next_after_id"],"additionalProperties":false}},{"name":"get_flashcard","title":"Get a flashcard","description":"Read a connected user’s flashcard question, answer, mnemonic, and latest review schedule by ID. Text fields may be truncated at 12000 characters.","inputSchema":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991}},"required":["id"],"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"securitySchemes":[{"type":"oauth2","scopes":["flashcards:read"]}],"outputSchema":{"type":"object","properties":{"flashcard":{"type":"object","properties":{"id":{"type":"integer"},"question":{"type":["string","null"]},"answer":{"type":["string","null"]},"mnemonic":{"type":["string","null"]},"truncated_fields":{"type":"array","items":{"type":"string"}},"deck":{"type":["object","null"],"properties":{"id":{"type":"integer"},"title":{"type":["string","null"]}},"required":["id","title"],"additionalProperties":false},"due_for_review":{"type":"boolean"},"latest_review":{"type":["object","null"],"properties":{"reviewed_at":{"type":["string","null"]},"initial_review":{"type":"boolean"},"quality":{"type":["integer","null"]},"repetitions":{"type":["integer","null"]},"next_repetition":{"type":["string","null"]},"snoozed_until":{"type":["string","null"]}},"required":["reviewed_at","initial_review","quality","repetitions","next_repetition","snoozed_until"],"additionalProperties":false},"created_at":{"type":"string"},"updated_at":{"type":"string"},"web_url":{"type":"string"},"review_version":{"type":"string"}},"required":["id","question","answer","mnemonic","truncated_fields","deck","due_for_review","latest_review","created_at","updated_at","web_url","review_version"],"additionalProperties":false}},"required":["flashcard"],"additionalProperties":false}},{"name":"list_typing_sessions","title":"Read typing sessions","description":"Read the connected user’s completed typing chunks and performance metrics, newest first, over a bounded UTC calendar-day window including today. Each row is one completed chunk, not a full source file. Source code and keystroke logs are excluded. Use next_before_id for pagination.","inputSchema":{"type":"object","properties":{"limit":{"type":"integer","minimum":1,"maximum":100,"default":20},"before_id":{"type":"integer","minimum":1,"maximum":9007199254740991},"days":{"type":"integer","minimum":1,"maximum":365,"default":30},"language":{"type":"string","enum":["ruby","python","javascript","typescript","java","c","cpp","go","rust","swift","kotlin","php","html","css","sql","bash","shell"]}},"required":[],"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"securitySchemes":[{"type":"oauth2","scopes":["typing:read"]}],"outputSchema":{"type":"object","properties":{"start_date":{"type":"string"},"end_date":{"type":"string"},"time_zone":{"type":"string"},"session_count_unit":{"type":"string"},"next_before_id":{"type":["integer","null"]},"sessions":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer"},"language":{"type":"string"},"source_name":{"type":["string","null"]},"chunk_index":{"type":["integer","null"]},"total_chunks":{"type":["integer","null"]},"total_keystrokes":{"type":"integer"},"correct_keystrokes":{"type":"integer"},"incorrect_keystrokes":{"type":"integer"},"accuracy":{"type":"number"},"wpm":{"type":"number"},"duration_seconds":{"type":["number","null"]},"completed_at":{"type":"string"},"web_url":{"type":"string"}},"required":["id","language","source_name","chunk_index","total_chunks","total_keystrokes","correct_keystrokes","incorrect_keystrokes","accuracy","wpm","duration_seconds","completed_at","web_url"],"additionalProperties":false}}},"required":["start_date","end_date","time_zone","session_count_unit","next_before_id","sessions"],"additionalProperties":false}},{"name":"get_typing_stats","title":"Get typing statistics","description":"Summarize the connected user’s completed typing chunks over a UTC calendar-day window including today, with daily and per-language metrics. Accuracy is weighted by keystrokes; average WPM is weighted by completed chunks.","inputSchema":{"type":"object","properties":{"days":{"type":"integer","minimum":1,"maximum":365,"default":30},"language":{"type":"string","enum":["ruby","python","javascript","typescript","java","c","cpp","go","rust","swift","kotlin","php","html","css","sql","bash","shell"]}},"required":[],"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"securitySchemes":[{"type":"oauth2","scopes":["typing:read"]}],"outputSchema":{"type":"object","properties":{"start_date":{"type":"string"},"end_date":{"type":"string"},"time_zone":{"type":"string"},"language":{"type":["string","null"]},"session_count_unit":{"type":"string"},"summary":{"type":"object","properties":{"completed_chunks":{"type":"integer"},"total_keystrokes":{"type":"integer"},"correct_keystrokes":{"type":"integer"},"incorrect_keystrokes":{"type":"integer"},"accuracy":{"type":"number"},"avg_wpm":{"type":"number"},"total_duration_seconds":{"type":"integer"}},"required":["completed_chunks","total_keystrokes","correct_keystrokes","incorrect_keystrokes","accuracy","avg_wpm","total_duration_seconds"],"additionalProperties":false},"daily":{"type":"array","items":{"type":"object","properties":{"completed_chunks":{"type":"integer"},"total_keystrokes":{"type":"integer"},"correct_keystrokes":{"type":"integer"},"incorrect_keystrokes":{"type":"integer"},"accuracy":{"type":"number"},"avg_wpm":{"type":"number"},"total_duration_seconds":{"type":"integer"},"date":{"type":"string"}},"required":["completed_chunks","total_keystrokes","correct_keystrokes","incorrect_keystrokes","accuracy","avg_wpm","total_duration_seconds","date"],"additionalProperties":false}},"by_language":{"type":"array","items":{"type":"object","properties":{"completed_chunks":{"type":"integer"},"total_keystrokes":{"type":"integer"},"correct_keystrokes":{"type":"integer"},"incorrect_keystrokes":{"type":"integer"},"accuracy":{"type":"number"},"avg_wpm":{"type":"number"},"total_duration_seconds":{"type":"integer"},"language":{"type":"string"}},"required":["completed_chunks","total_keystrokes","correct_keystrokes","incorrect_keystrokes","accuracy","avg_wpm","total_duration_seconds","language"],"additionalProperties":false}},"web_url":{"type":"string"}},"required":["start_date","end_date","time_zone","language","session_count_unit","summary","daily","by_language","web_url"],"additionalProperties":false}},{"name":"get_account","title":"Connected Anchrs account","description":"Identify the account selected by this connection. Returns a stable profile identifier and display label; takes no account selector.","inputSchema":{"type":"object","properties":{},"required":[],"additionalProperties":false},"outputSchema":{"type":"object","properties":{"id":{"type":"string","minLength":1,"pattern":"\\S"},"name":{"type":"string"}},"required":["id"],"additionalProperties":false},"securitySchemes":[{"type":"oauth2","scopes":[]}],"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"_meta":{"openai/profile":true}},{"name":"list_decks","title":"List Anchrs decks","description":"List owned decks, including empty decks, with card counts. Use next_after_id for another page.","inputSchema":{"type":"object","properties":{"limit":{"type":"integer","minimum":1,"maximum":100,"default":20},"after_id":{"type":"integer","minimum":1,"maximum":9007199254740991}},"required":[],"additionalProperties":false},"outputSchema":{"type":"object","properties":{"decks":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer"},"name":{"type":["string","null"]},"card_count":{"type":"integer"},"web_url":{"type":"string"}},"required":["id","name","card_count","web_url"],"additionalProperties":false}},"next_after_id":{"type":["integer","null"]}},"required":["decks","next_after_id"],"additionalProperties":false},"securitySchemes":[{"type":"oauth2","scopes":["flashcards:read"]}],"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"get_due_cards","title":"Review due flashcards","description":"Get owned flashcards due now, using Anchrs’ canonical oldest-card-first queue. Reveal answers only when the learner is ready. Submit the returned review_version with a rating to save progress.","inputSchema":{"type":"object","properties":{"deck_id":{"type":"integer","minimum":1,"maximum":9007199254740991},"limit":{"type":"integer","minimum":1,"maximum":100,"default":20}},"required":[],"additionalProperties":false},"outputSchema":{"type":"object","properties":{"cards":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer"},"deck_id":{"type":["integer","null"]},"front":{"type":["string","null"]},"back":{"type":["string","null"]},"review_version":{"type":"string"},"due_at":{"type":["string","null"]},"web_url":{"type":"string"}},"required":["id","deck_id","front","back","review_version","due_at","web_url"],"additionalProperties":false}},"has_more":{"type":"boolean"},"scheduler":{"type":"string"}},"required":["cards","has_more","scheduler"],"additionalProperties":false},"securitySchemes":[{"type":"oauth2","scopes":["flashcards:read"]}],"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"_meta":{"ui":{"resourceUri":"ui://anchrs/review-flashcards-v1.html"}}},{"name":"get_study_progress","title":"Study progress","description":"Count owned cards and due cards and verified review events in a bounded UTC window. No retention or mastery estimate is available. Legacy unclassified events are reported separately. Deck rows paginate.","inputSchema":{"type":"object","properties":{"deck_id":{"type":"integer","minimum":1,"maximum":9007199254740991},"days":{"type":"integer","minimum":1,"maximum":365,"default":30},"limit":{"type":"integer","minimum":1,"maximum":100,"default":20},"after_id":{"type":"integer","minimum":1,"maximum":9007199254740991}},"required":[],"additionalProperties":false},"outputSchema":{"type":"object","properties":{"total_cards":{"type":"integer"},"cards_due":{"type":"integer"},"review_events":{"type":"integer"},"cards_reviewed_today":{"type":"integer"},"start_date":{"type":"string"},"end_date":{"type":"string"},"time_zone":{"type":"string"},"scheduler":{"type":"string"},"legacy_unclassified_events":{"type":"integer"},"history_coverage":{"type":"string"},"retention":{"type":"null"},"mastery":{"type":"null"},"next_after_id":{"type":["integer","null"]},"decks":{"type":"array","items":{"type":"object","properties":{"total_cards":{"type":"integer"},"cards_due":{"type":"integer"},"review_events":{"type":"integer"},"cards_reviewed_today":{"type":"integer"},"id":{"type":"integer"},"name":{"type":["string","null"]}},"required":["total_cards","cards_due","review_events","cards_reviewed_today","id","name"],"additionalProperties":false}}},"required":["total_cards","cards_due","review_events","cards_reviewed_today","start_date","end_date","time_zone","scheduler","legacy_unclassified_events","history_coverage","retention","mastery","next_after_id","decks"],"additionalProperties":false},"securitySchemes":[{"type":"oauth2","scopes":["flashcards:read"]}],"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"preview_flashcards","title":"Preview cards before saving","description":"Prepare a bounded set of front/back cards for an owned deck without persisting them. Display the destination and proposed content. Saving requires create_flashcards and an explicit user decision.","inputSchema":{"type":"object","properties":{"deck_id":{"type":"integer","minimum":1,"maximum":9007199254740991},"cards":{"type":"array","minItems":1,"maxItems":20,"items":{"type":"object","properties":{"front":{"type":"string","minLength":1,"maxLength":12000,"pattern":"\\S"},"back":{"type":"string","minLength":1,"maxLength":12000,"pattern":"\\S"}},"required":["front","back"],"additionalProperties":false},"description":"Combined JSON encoding of this array must not exceed 24576 UTF-8 bytes; split larger batches."}},"required":["deck_id","cards"],"additionalProperties":false},"outputSchema":{"type":"object","properties":{"prepared":{"type":"boolean"},"saved":{"type":"boolean"},"deck":{"type":"object","properties":{"id":{"type":"integer"},"name":{"type":["string","null"]},"web_url":{"type":"string"}},"required":["id","name","web_url"],"additionalProperties":false},"cards":{"type":"array","items":{"type":"object","properties":{"front":{"type":"string"},"back":{"type":"string"}},"required":["front","back"],"additionalProperties":false}},"count":{"type":"integer"},"idempotency_key":{"type":"string","minLength":1,"maxLength":128,"pattern":"\\S"}},"required":["prepared","saved","deck","cards","count","idempotency_key"],"additionalProperties":false},"securitySchemes":[{"type":"oauth2","scopes":["flashcards:write"]}],"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"_meta":{"ui":{"resourceUri":"ui://anchrs/create-flashcards-v2.html"}}},{"name":"create_deck","title":"Create an Anchrs deck","description":"Create an empty private deck with a user-chosen name. Reuse the same idempotency_key for retries; a changed payload requires a new key.","inputSchema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200,"pattern":"\\S"},"idempotency_key":{"type":"string","minLength":1,"maxLength":128,"pattern":"\\S"}},"required":["name","idempotency_key"],"additionalProperties":false},"outputSchema":{"type":"object","properties":{"deck":{"type":"object","properties":{"id":{"type":"integer"},"name":{"type":["string","null"]},"card_count":{"type":"integer"},"web_url":{"type":"string"}},"required":["id","name","card_count","web_url"],"additionalProperties":false}},"required":["deck"],"additionalProperties":false},"securitySchemes":[{"type":"oauth2","scopes":["flashcards:write"]}],"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"create_flashcards","title":"Save flashcards to Anchrs","description":"Save 1–20 explicitly requested front/back cards in an owned deck and initialize their canonical review schedules. Confirm the intended content and destination before saving. When using preview_flashcards, use its returned idempotency_key. Reuse the key on retries and when reopening that preview; equal requests replay the receipt, conflicting reuse fails.","inputSchema":{"type":"object","properties":{"deck_id":{"type":"integer","minimum":1,"maximum":9007199254740991},"cards":{"type":"array","minItems":1,"maxItems":20,"items":{"type":"object","properties":{"front":{"type":"string","minLength":1,"maxLength":12000,"pattern":"\\S"},"back":{"type":"string","minLength":1,"maxLength":12000,"pattern":"\\S"}},"required":["front","back"],"additionalProperties":false},"description":"Combined JSON encoding of this array must not exceed 24576 UTF-8 bytes; split larger batches."},"idempotency_key":{"type":"string","minLength":1,"maxLength":128,"pattern":"\\S"}},"required":["deck_id","cards","idempotency_key"],"additionalProperties":false},"outputSchema":{"type":"object","properties":{"created_count":{"type":"integer"},"deck_id":{"type":"integer"},"cards":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer"},"front":{"type":"string"},"back":{"type":"string"},"web_url":{"type":"string"}},"required":["id","front","back","web_url"],"additionalProperties":false}},"web_url":{"type":"string"}},"required":["created_count","deck_id","cards","web_url"],"additionalProperties":false},"securitySchemes":[{"type":"oauth2","scopes":["flashcards:write"]}],"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"update_flashcard","title":"Edit a flashcard","description":"Replace the front and back of an owned card after the user approves the change. Requires its current review_version from get_flashcard or get_due_cards, preventing stale edits. Preserves scheduling history; retries use the same idempotency_key.","inputSchema":{"type":"object","properties":{"card_id":{"type":"integer","minimum":1,"maximum":9007199254740991},"front":{"type":"string","minLength":1,"maxLength":12000,"pattern":"\\S"},"back":{"type":"string","minLength":1,"maxLength":12000,"pattern":"\\S"},"review_version":{"type":"string","pattern":"^[0-9a-f]{64}$","minLength":64,"maxLength":64},"idempotency_key":{"type":"string","minLength":1,"maxLength":128,"pattern":"\\S"}},"required":["card_id","front","back","review_version","idempotency_key"],"additionalProperties":false},"outputSchema":{"type":"object","properties":{"card":{"type":"object","properties":{"id":{"type":"integer"},"deck_id":{"type":["integer","null"]},"front":{"type":["string","null"]},"back":{"type":["string","null"]},"review_version":{"type":"string"},"due_at":{"type":["string","null"]},"web_url":{"type":"string"}},"required":["id","deck_id","front","back","review_version","due_at","web_url"],"additionalProperties":false}},"required":["card"],"additionalProperties":false},"securitySchemes":[{"type":"oauth2","scopes":["flashcards:write"]}],"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false}},{"name":"submit_review","title":"Save a flashcard review","description":"Record the learner’s rating using Anchrs’ existing SM-2-style scheduler: 0–1 incorrect, 2 hard, 3 recalled, 4 good, 5 easy. Use the version returned with the card; stale versions fail. Never infer a rating without the learner’s answer. Reuse the same idempotency_key on retry. Internal scheduling fields are not accepted.","inputSchema":{"type":"object","properties":{"card_id":{"type":"integer","minimum":1,"maximum":9007199254740991},"rating":{"type":"integer","minimum":0,"maximum":5},"review_version":{"type":"string","pattern":"^[0-9a-f]{64}$","minLength":64,"maxLength":64},"idempotency_key":{"type":"string","minLength":1,"maxLength":128,"pattern":"\\S"}},"required":["card_id","rating","review_version","idempotency_key"],"additionalProperties":false},"outputSchema":{"type":"object","properties":{"card_id":{"type":"integer"},"review_id":{"type":"integer"},"due_at":{"type":"string"},"review_version":{"type":"string"},"quality":{"type":"integer"},"repetitions":{"type":"integer"},"interval_days":{"type":"number"},"scheduler":{"type":"string"}},"required":["card_id","review_id","due_at","review_version","quality","repetitions","interval_days","scheduler"],"additionalProperties":false},"securitySchemes":[{"type":"oauth2","scopes":["reviews:write"]}],"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"complete_review_session","title":"Finish a review session","description":"Acknowledge completion using only the review IDs successfully saved in this session. Validates owned review events and records content-free completion analytics once for this set. Does not change schedules.","inputSchema":{"type":"object","properties":{"review_ids":{"type":"array","minItems":1,"maxItems":100,"items":{"type":"integer","minimum":1,"maximum":9007199254740991}}},"required":["review_ids"],"additionalProperties":false},"outputSchema":{"type":"object","properties":{"completed":{"type":"boolean"},"reviewed_count":{"type":"integer"}},"required":["completed","reviewed_count"],"additionalProperties":false},"securitySchemes":[{"type":"oauth2","scopes":["reviews:write"]}],"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}}],"example_prompts":["Prepare five flashcards about recursion in my Algorithms deck. Show me before saving.","Help me review my due flashcards, one at a time, and save the ratings I choose.","Show my Anchrs study progress for the last 30 days.","How did my typing speed and accuracy change over the last 30 days?"],"setup":["Use a remote MCP client with Streamable HTTP and OAuth authorization code with PKCE S256.","Obtain client configuration from Anchrs; client registration is required before connecting.","Add the configured endpoint in your client, sign in to Anchrs, and approve the requested read or write permissions.","Enable the connection in a conversation and try an example prompt."],"ui":{"standard":"MCP Apps","optional":true,"resources":[{"uri":"ui://anchrs/create-flashcards-v2.html","name":"Prepare and save flashcards","mimeType":"text/html;profile=mcp-app"},{"uri":"ui://anchrs/review-flashcards-v1.html","name":"Review due flashcards","mimeType":"text/html;profile=mcp-app"}],"behavior":"Creation requires an explicit save. Reviews advance only after a persisted rating. Text-only tools remain available; actual host support must be tested."},"disconnect_url":"https://anchrs.com/settings/connections","privacy_policy_url":"https://anchrs.com/privacy_policy","support_url":"mailto:torrey@anchrs.com"}