Fluid Recall
What this MCP does
Manages spaced-repetition flashcards with decks, due schedules, reviews, deadline planning, notes, exports, and optional mailbox functionality.
Tools
Input schema
{'type': 'object', 'required': ['deckId', 'prompt', 'answer'], 'properties': {'answer': {'type': 'string', 'maxLength': 8000, 'minLength': 1}, 'deckId': {'type': 'string', 'format': 'uuid'}, 'prompt': {'type': 'string', 'maxLength': 8000, 'minLength': 1}, 'cardNote': {'type': ['string', 'null'], 'maxLength': 4000}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'properties': {'dueAt': {'type': 'string', 'description': 'UTC ISO-8601 timestamp ending in Z'}, 'cardId': {'type': 'string', 'format': 'uuid'}, 'deckId': {'type': 'string', 'format': 'uuid'}, 'prompt': {'type': 'string'}, 'answerIncluded': {'enum': [False], 'type': 'boolean'}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'required': ['deckId', 'cards'], 'properties': {'cards': {'type': 'array', 'items': {'type': 'object', 'required': ['prompt', 'answer'], 'properties': {'answer': {'type': 'string', 'maxLength': 8000, 'minLength': 1}, 'prompt': {'type': 'string', 'maxLength': 8000, 'minLength': 1}}, 'additionalProperties': False}, 'maxItems': 100, 'minItems': 1}, 'deckId': {'type': 'string', 'format': 'uuid'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'properties': {'cards': {'type': 'array', 'items': {'type': 'object', 'properties': {'dueAt': {'type': 'string', 'description': 'UTC ISO-8601 timestamp ending in Z'}, 'cardId': {'type': 'string', 'format': 'uuid'}, 'prompt': {'type': 'string'}}, 'additionalProperties': False}}, 'count': {'type': 'integer'}, 'deckId': {'type': 'string', 'format': 'uuid'}, 'answerIncluded': {'enum': [False], 'type': 'boolean'}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'required': ['deadline', 'deckId'], 'properties': {'asOf': {'type': 'string', 'description': 'UTC ISO-8601 timestamp ending in Z'}, 'deckId': {'type': 'string', 'format': 'uuid'}, 'deadline': {'type': 'string', 'description': 'YYYY-MM-DD or a UTC ISO-8601 timestamp ending in Z.'}, 'timezone': {'type': 'string', 'description': 'IANA timezone such as UTC or America/Denver.'}, 'totalCards': {'type': 'integer', 'minimum': 0}, 'skipWeekends': {'type': 'boolean'}, 'alreadyLearned': {'type': 'integer', 'minimum': 0}, 'bufferStudyDays': {'type': 'integer', 'maximum': 3650, 'minimum': 0}, 'dayBoundaryHour': {'type': 'integer', 'maximum': 23, 'minimum': 0}, 'studyDaysPerWeek': {'type': 'integer', 'maximum': 7, 'minimum': 1}, 'remainingNewCards': {'type': 'integer', 'minimum': 0}, 'currentNewCardsPerDay': {'type': ['integer', 'null'], 'maximum': 9999, 'minimum': 0}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'required': ['deckId'], 'properties': {'deckId': {'type': 'string', 'format': 'uuid'}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'properties': {'label': {'type': ['string', 'null'], 'maxLength': 80}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['userId', 'tokenId', 'token'], 'properties': {'note': {'type': 'string'}, 'token': {'type': 'string', 'description': 'Save this as the tenant for Authorization: Bearer calls.'}, 'userId': {'type': 'string', 'format': 'uuid'}, 'tokenId': {'type': 'string', 'format': 'uuid'}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'properties': {'label': {'type': ['string', 'null'], 'maxLength': 80}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['userId', 'tokenId', 'token'], 'properties': {'note': {'type': 'string'}, 'token': {'type': 'string', 'description': 'Save this as the tenant for Authorization: Bearer calls.'}, 'userId': {'type': 'string', 'format': 'uuid'}, 'tokenId': {'type': 'string', 'format': 'uuid'}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'required': ['name', 'newCardsPerDay'], 'properties': {'name': {'type': 'string', 'maxLength': 120, 'minLength': 1}, 'deckNote': {'type': ['string', 'null'], 'maxLength': 4000, 'description': 'Coaching instructions for every card in this deck. Null clears. Not the answer.'}, 'description': {'type': ['string', 'null'], 'maxLength': 2000}, 'newCardsPerDay': {'type': 'integer', 'maximum': 9999, 'minimum': 0}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'properties': {'id': {'type': 'string', 'format': 'uuid'}, 'name': {'type': 'string'}, 'deckNote': {'type': ['string', 'null']}, 'createdAt': {'type': 'string', 'description': 'UTC ISO-8601 timestamp ending in Z'}, 'updatedAt': {'type': 'string', 'description': 'UTC ISO-8601 timestamp ending in Z'}, 'archivedAt': {'type': ['string', 'null'], 'format': 'date-time'}, 'description': {'type': ['string', 'null']}, 'newCardsPerDay': {'type': ['integer', 'null']}, 'effectiveNewCardsPerDay': {'type': 'integer'}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'required': ['address'], 'properties': {'address': {'type': 'string', 'maxLength': 254, 'minLength': 1}, 'displayName': {'type': ['string', 'null'], 'maxLength': 80}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'properties': {}, 'additionalProperties': False}
Output schema
{'type': 'object', 'properties': {'format': {'type': 'string'}, 'account': {'type': 'object', 'properties': {'label': {'type': ['string', 'null']}, 'userId': {'type': 'string', 'format': 'uuid'}}, 'additionalProperties': False}, 'resources': {'type': 'array', 'items': {'type': 'object', 'properties': {'name': {'type': 'string'}, 'count': {'type': 'integer'}}, 'additionalProperties': False}}, 'generatedAt': {'type': 'string', 'description': 'UTC ISO-8601 timestamp ending in Z'}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'maximum': 500, 'minimum': 1}, 'cursor': {'type': 'string'}, 'resource': {'enum': ['cards', 'reviews'], 'type': 'string'}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'required': ['cardId'], 'properties': {'cardId': {'type': 'string', 'format': 'uuid'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'properties': {'dueAt': {'type': 'string', 'description': 'UTC ISO-8601 timestamp ending in Z'}, 'queue': {'enum': ['learning', 'review', 'new'], 'type': 'string'}, 'cardId': {'type': 'string', 'format': 'uuid'}, 'deckId': {'type': 'string', 'format': 'uuid'}, 'prompt': {'type': 'string'}, 'cardNote': {'type': ['string', 'null']}, 'deckNote': {'type': ['string', 'null']}, 'retiredAt': {'type': ['string', 'null'], 'format': 'date-time'}, 'answerIncluded': {'enum': [False], 'type': 'boolean'}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'required': ['messageId'], 'properties': {'messageId': {'type': 'string', 'format': 'uuid'}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'properties': {}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['sub'], 'properties': {'sub': {'type': 'string', 'format': 'uuid', 'description': 'Stable Fluid Recall user id.'}, 'name': {'type': 'string', 'description': 'Account label, when the account has one.'}, 'email': {'type': 'string', 'format': 'email', 'description': 'Present only when the account exposes an email.'}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'properties': {}, 'additionalProperties': False}
Output schema
{'type': 'object', 'properties': {'timezone': {'type': 'string'}, 'newCardsPerDay': {'type': 'integer', 'minimum': 0}, 'dayBoundaryHour': {'type': 'integer', 'maximum': 23, 'minimum': 0}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'required': ['cardId', 'rating', 'idempotencyKey'], 'properties': {'asOf': {'type': 'string', 'description': 'Queue instant. Omit to use now.'}, 'limit': {'type': 'integer', 'maximum': 25, 'minimum': 1, 'description': 'Page size, not the daily new-card cap.'}, 'cardId': {'type': 'string', 'format': 'uuid'}, 'deckId': {'type': 'string', 'format': 'uuid', 'description': 'Optional deck filter.'}, 'rating': {'enum': ['again', 'hard', 'good', 'easy'], 'type': 'string'}, 'extraNew': {'type': 'integer', 'maximum': 50, 'minimum': 1, 'description': 'Required when newCardMode is extra.'}, 'reviewedAt': {'type': 'string', 'description': 'UTC ISO-8601 timestamp ending in Z'}, 'newCardMode': {'enum': ['daily', 'extra'], 'type': 'string'}, 'idempotencyKey': {'type': 'string', 'maxLength': 200, 'minLength': 8}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'properties': {'due': {'type': 'array', 'items': {'type': 'object', 'properties': {'dueAt': {'type': 'string', 'description': 'UTC ISO-8601 timestamp ending in Z'}, 'queue': {'enum': ['learning', 'review', 'new'], 'type': 'string'}, 'cardId': {'type': 'string', 'format': 'uuid'}, 'deckId': {'type': 'string', 'format': 'uuid'}, 'prompt': {'type': 'string', 'description': 'The quiz prompt. The answer is never in this response.'}, 'cardNote': {'type': ['string', 'null']}, 'deckName': {'type': 'string'}, 'deckNote': {'type': ['string', 'null']}, 'answerIncluded': {'enum': [False], 'type': 'boolean'}}, 'additionalProperties': False}}, 'asOf': {'type': 'string', 'description': 'UTC ISO-8601 timestamp ending in Z'}, 'first': {'anyOf': [{'type': 'object', 'properties': {'dueAt': {'type': 'string', 'description': 'UTC ISO-8601 timestamp ending in Z'}, 'queue': {'enum': ['learning', 'review', 'new'], 'type': 'string'}, 'cardId': {'type': 'string', 'format': 'uuid'}, 'deckId': {'type': 'string', 'format': 'uuid'}, 'prompt': {'type': 'string', 'description': 'The quiz prompt. The answer is never in this response.'}, 'cardNote': {'type': ['string', 'null']}, 'deckName': {'type': 'string'}, 'deckNote': {'type': ['string', 'null']}, 'answerIncluded': {'enum': [False], 'type': 'boolean'}}, 'additionalProperties': False}, {'type': 'null'}]}, 'review': {'type': 'object', 'properties': {'reps': {'type': 'integer'}, 'dueAt': {'type': 'string', 'description': 'UTC ISO-8601 timestamp ending in Z'}, 'cardId': {'type': 'string', 'format': 'uuid'}, 'lapses': {'type': 'integer'}, 'rating': {'enum': ['again', 'hard', 'good', 'easy'], 'type': 'string'}, 'reviewId': {'type': 'string', 'format': 'uuid'}, 'reviewedAt': {'type': 'string', 'description': 'UTC ISO-8601 timestamp ending in Z'}, 'intervalMinutes': {'type': 'number'}, 'idempotentReplay': {'type': 'boolean'}}, 'additionalProperties': False}, 'newCards': {'type': 'object', 'properties': {'waiting': {'type': 'integer'}, 'dayStart': {'type': 'string', 'description': 'UTC ISO-8601 timestamp ending in Z'}, 'nextDayStart': {'type': 'string', 'description': 'UTC ISO-8601 timestamp ending in Z'}, 'remainingToday': {'type': 'integer'}}, 'additionalProperties': False}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'required': ['deckId'], 'properties': {'limit': {'type': 'integer', 'maximum': 200, 'minimum': 1}, 'cursor': {'type': 'string'}, 'deckId': {'type': 'string', 'format': 'uuid'}, 'includeRetired': {'type': 'boolean'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'properties': {'cards': {'type': 'array', 'items': {'type': 'object', 'properties': {'dueAt': {'type': 'string', 'description': 'UTC ISO-8601 timestamp ending in Z'}, 'queue': {'enum': ['learning', 'review', 'new'], 'type': 'string'}, 'cardId': {'type': 'string', 'format': 'uuid'}, 'deckId': {'type': 'string', 'format': 'uuid'}, 'prompt': {'type': 'string'}, 'cardNote': {'type': ['string', 'null']}, 'deckNote': {'type': ['string', 'null']}, 'retiredAt': {'type': ['string', 'null'], 'format': 'date-time'}, 'answerIncluded': {'enum': [False], 'type': 'boolean'}}, 'additionalProperties': False}}, 'nextCursor': {'type': ['string', 'null']}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'required': ['deckId'], 'properties': {'limit': {'type': 'integer', 'maximum': 200, 'minimum': 1}, 'cursor': {'type': 'string'}, 'deckId': {'type': 'string', 'format': 'uuid'}, 'includeRetired': {'type': 'boolean'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'properties': {'cards': {'type': 'array', 'items': {'type': 'object', 'properties': {'dueAt': {'type': 'string', 'description': 'UTC ISO-8601 timestamp ending in Z'}, 'queue': {'enum': ['learning', 'review', 'new'], 'type': 'string'}, 'cardId': {'type': 'string', 'format': 'uuid'}, 'deckId': {'type': 'string', 'format': 'uuid'}, 'prompt': {'type': 'string'}, 'cardNote': {'type': ['string', 'null']}, 'deckNote': {'type': ['string', 'null']}, 'retiredAt': {'type': ['string', 'null'], 'format': 'date-time'}, 'answerIncluded': {'enum': [False], 'type': 'boolean'}}, 'additionalProperties': False}}, 'nextCursor': {'type': ['string', 'null']}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'properties': {'includeArchived': {'type': 'boolean'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'properties': {'decks': {'type': 'array', 'items': {'type': 'object', 'properties': {'id': {'type': 'string', 'format': 'uuid'}, 'name': {'type': 'string'}, 'deckNote': {'type': ['string', 'null']}, 'createdAt': {'type': 'string', 'description': 'UTC ISO-8601 timestamp ending in Z'}, 'updatedAt': {'type': 'string', 'description': 'UTC ISO-8601 timestamp ending in Z'}, 'archivedAt': {'type': ['string', 'null'], 'format': 'date-time'}, 'description': {'type': ['string', 'null']}, 'newCardsPerDay': {'type': ['integer', 'null']}, 'effectiveNewCardsPerDay': {'type': 'integer'}}, 'additionalProperties': False}}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'properties': {'asOf': {'type': 'string', 'description': 'Queue instant. Omit to use now.'}, 'limit': {'type': 'integer', 'maximum': 25, 'minimum': 1, 'description': 'Page size, not the daily new-card cap.'}, 'deckId': {'type': 'string', 'format': 'uuid', 'description': 'Optional deck filter.'}, 'extraNew': {'type': 'integer', 'maximum': 50, 'minimum': 1, 'description': 'Required when newCardMode is extra.'}, 'newCardMode': {'enum': ['daily', 'extra'], 'type': 'string'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'properties': {'due': {'type': 'array', 'items': {'type': 'object', 'properties': {'dueAt': {'type': 'string', 'description': 'UTC ISO-8601 timestamp ending in Z'}, 'queue': {'enum': ['learning', 'review', 'new'], 'type': 'string'}, 'cardId': {'type': 'string', 'format': 'uuid'}, 'deckId': {'type': 'string', 'format': 'uuid'}, 'prompt': {'type': 'string', 'description': 'The quiz prompt. The answer is never in this response.'}, 'cardNote': {'type': ['string', 'null']}, 'deckName': {'type': 'string'}, 'deckNote': {'type': ['string', 'null']}, 'answerIncluded': {'enum': [False], 'type': 'boolean'}}, 'additionalProperties': False}}, 'asOf': {'type': 'string', 'description': 'UTC ISO-8601 timestamp ending in Z'}, 'first': {'anyOf': [{'type': 'object', 'properties': {'dueAt': {'type': 'string', 'description': 'UTC ISO-8601 timestamp ending in Z'}, 'queue': {'enum': ['learning', 'review', 'new'], 'type': 'string'}, 'cardId': {'type': 'string', 'format': 'uuid'}, 'deckId': {'type': 'string', 'format': 'uuid'}, 'prompt': {'type': 'string', 'description': 'The quiz prompt. The answer is never in this response.'}, 'cardNote': {'type': ['string', 'null']}, 'deckName': {'type': 'string'}, 'deckNote': {'type': ['string', 'null']}, 'answerIncluded': {'enum': [False], 'type': 'boolean'}}, 'additionalProperties': False}, {'type': 'null'}]}, 'newCards': {'type': 'object', 'properties': {'waiting': {'type': 'integer'}, 'dayStart': {'type': 'string', 'description': 'UTC ISO-8601 timestamp ending in Z'}, 'nextDayStart': {'type': 'string', 'description': 'UTC ISO-8601 timestamp ending in Z'}, 'remainingToday': {'type': 'integer'}}, 'additionalProperties': False}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'properties': {}, 'additionalProperties': False}
Output schema
{'type': 'object', 'properties': {'mailboxes': {'type': 'array', 'items': {'type': 'object', 'properties': {'id': {'type': 'string', 'format': 'uuid'}, 'address': {'type': 'string'}, 'displayName': {'type': ['string', 'null']}}, 'additionalProperties': False}}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'required': ['mailboxId'], 'properties': {'limit': {'type': 'integer', 'maximum': 50, 'minimum': 1}, 'cursor': {'type': 'string'}, 'mailboxId': {'type': 'string', 'format': 'uuid'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'properties': {'messages': {'type': 'array', 'items': {'type': 'object', 'properties': {'id': {'type': 'string', 'format': 'uuid'}, 'to': {'type': 'array', 'items': {'type': 'string'}}, 'from': {'type': 'string'}, 'sentAt': {'type': ['string', 'null'], 'format': 'date-time'}, 'subject': {'type': 'string'}, 'fromName': {'type': ['string', 'null']}, 'threadId': {'type': 'string'}, 'receivedAt': {'type': ['string', 'null'], 'format': 'date-time'}}, 'additionalProperties': False}}, 'mailboxId': {'type': 'string', 'format': 'uuid'}, 'nextCursor': {'type': ['string', 'null']}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'properties': {'asOf': {'type': 'string', 'description': 'UTC ISO-8601 timestamp ending in Z'}, 'limit': {'type': 'integer', 'maximum': 50, 'minimum': 1}, 'deckId': {'type': 'string', 'format': 'uuid'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'properties': {'asOf': {'type': 'string', 'description': 'UTC ISO-8601 timestamp ending in Z'}, 'cards': {'type': 'array', 'items': {'type': 'object', 'properties': {'dueAt': {'type': 'string', 'description': 'UTC ISO-8601 timestamp ending in Z'}, 'queue': {'enum': ['learning', 'review', 'new'], 'type': 'string'}, 'cardId': {'type': 'string', 'format': 'uuid'}, 'deckId': {'type': 'string', 'format': 'uuid'}, 'prompt': {'type': 'string', 'description': 'The quiz prompt. The answer is never in this response.'}, 'cardNote': {'type': ['string', 'null']}, 'deckName': {'type': 'string'}, 'deckNote': {'type': ['string', 'null']}, 'answerIncluded': {'enum': [False], 'type': 'boolean'}}, 'additionalProperties': False}}, 'waiting': {'type': 'integer'}, 'dayStart': {'type': 'string', 'description': 'UTC ISO-8601 timestamp ending in Z'}, 'timezone': {'type': 'string'}, 'nextDayStart': {'type': 'string', 'description': 'UTC ISO-8601 timestamp ending in Z'}, 'dayBoundaryHour': {'type': 'integer'}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'required': ['cardId', 'deckId'], 'properties': {'cardId': {'type': 'string', 'format': 'uuid'}, 'deckId': {'type': 'string', 'format': 'uuid'}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'properties': {'asOf': {'type': 'string', 'description': 'Queue instant. Omit to use now.'}, 'limit': {'type': 'integer', 'maximum': 25, 'minimum': 1, 'description': 'Page size, not the daily new-card cap.'}, 'deckId': {'type': 'string', 'format': 'uuid', 'description': 'Optional deck filter.'}, 'extraNew': {'type': 'integer', 'maximum': 50, 'minimum': 1, 'description': 'Required when newCardMode is extra.'}, 'newCardMode': {'enum': ['daily', 'extra'], 'type': 'string'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'properties': {'due': {'type': 'array', 'items': {'type': 'object', 'properties': {'dueAt': {'type': 'string', 'description': 'UTC ISO-8601 timestamp ending in Z'}, 'queue': {'enum': ['learning', 'review', 'new'], 'type': 'string'}, 'cardId': {'type': 'string', 'format': 'uuid'}, 'deckId': {'type': 'string', 'format': 'uuid'}, 'prompt': {'type': 'string', 'description': 'The quiz prompt. The answer is never in this response.'}, 'cardNote': {'type': ['string', 'null']}, 'deckName': {'type': 'string'}, 'deckNote': {'type': ['string', 'null']}, 'answerIncluded': {'enum': [False], 'type': 'boolean'}}, 'additionalProperties': False}}, 'asOf': {'type': 'string', 'description': 'UTC ISO-8601 timestamp ending in Z'}, 'first': {'anyOf': [{'type': 'object', 'properties': {'dueAt': {'type': 'string', 'description': 'UTC ISO-8601 timestamp ending in Z'}, 'queue': {'enum': ['learning', 'review', 'new'], 'type': 'string'}, 'cardId': {'type': 'string', 'format': 'uuid'}, 'deckId': {'type': 'string', 'format': 'uuid'}, 'prompt': {'type': 'string', 'description': 'The quiz prompt. The answer is never in this response.'}, 'cardNote': {'type': ['string', 'null']}, 'deckName': {'type': 'string'}, 'deckNote': {'type': ['string', 'null']}, 'answerIncluded': {'enum': [False], 'type': 'boolean'}}, 'additionalProperties': False}, {'type': 'null'}]}, 'newCards': {'type': 'object', 'properties': {'waiting': {'type': 'integer'}, 'dayStart': {'type': 'string', 'description': 'UTC ISO-8601 timestamp ending in Z'}, 'nextDayStart': {'type': 'string', 'description': 'UTC ISO-8601 timestamp ending in Z'}, 'remainingToday': {'type': 'integer'}}, 'additionalProperties': False}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'required': ['deadline'], 'properties': {'asOf': {'type': 'string', 'description': 'UTC ISO-8601 timestamp ending in Z'}, 'deckId': {'type': 'string', 'format': 'uuid'}, 'deadline': {'type': 'string', 'description': 'YYYY-MM-DD or a UTC ISO-8601 timestamp ending in Z.'}, 'timezone': {'type': 'string', 'description': 'IANA timezone such as UTC or America/Denver.'}, 'totalCards': {'type': 'integer', 'minimum': 0}, 'skipWeekends': {'type': 'boolean'}, 'alreadyLearned': {'type': 'integer', 'minimum': 0}, 'bufferStudyDays': {'type': 'integer', 'maximum': 3650, 'minimum': 0}, 'dayBoundaryHour': {'type': 'integer', 'maximum': 23, 'minimum': 0}, 'studyDaysPerWeek': {'type': 'integer', 'maximum': 7, 'minimum': 1}, 'remainingNewCards': {'type': 'integer', 'minimum': 0}, 'currentNewCardsPerDay': {'type': ['integer', 'null'], 'maximum': 9999, 'minimum': 0}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'required': ['cardId', 'rating', 'idempotencyKey'], 'properties': {'cardId': {'type': 'string', 'format': 'uuid'}, 'rating': {'enum': ['again', 'hard', 'good', 'easy'], 'type': 'string'}, 'reviewedAt': {'type': 'string', 'description': 'UTC ISO-8601 timestamp ending in Z'}, 'idempotencyKey': {'type': 'string', 'maxLength': 200, 'minLength': 8}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'properties': {'reps': {'type': 'integer'}, 'dueAt': {'type': 'string', 'description': 'UTC ISO-8601 timestamp ending in Z'}, 'cardId': {'type': 'string', 'format': 'uuid'}, 'lapses': {'type': 'integer'}, 'rating': {'enum': ['again', 'hard', 'good', 'easy'], 'type': 'string'}, 'reviewId': {'type': 'string', 'format': 'uuid'}, 'reviewedAt': {'type': 'string', 'description': 'UTC ISO-8601 timestamp ending in Z'}, 'intervalMinutes': {'type': 'number'}, 'idempotentReplay': {'type': 'boolean'}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'required': ['messageId'], 'properties': {'html': {'type': 'string', 'maxLength': 128000}, 'text': {'type': 'string', 'maxLength': 64000}, 'subject': {'type': 'string', 'maxLength': 998, 'minLength': 1}, 'messageId': {'type': 'string', 'format': 'uuid'}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'required': ['cardId'], 'properties': {'cardId': {'type': 'string', 'format': 'uuid'}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'required': ['cardId'], 'properties': {'cardId': {'type': 'string', 'format': 'uuid'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'properties': {'answer': {'type': 'string'}, 'cardId': {'type': 'string', 'format': 'uuid'}, 'prompt': {'type': 'string'}, 'cardNote': {'type': ['string', 'null']}, 'deckNote': {'type': ['string', 'null']}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'required': ['mailboxId', 'to', 'subject'], 'properties': {'cc': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 50}, 'to': {'oneOf': [{'type': 'string'}, {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 50, 'minItems': 1}]}, 'html': {'type': 'string', 'maxLength': 128000}, 'text': {'type': 'string', 'maxLength': 64000}, 'subject': {'type': 'string', 'maxLength': 998, 'minLength': 1}, 'inReplyTo': {'type': 'string'}, 'mailboxId': {'type': 'string', 'format': 'uuid'}, 'references': {'type': 'string'}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'required': ['cardId', 'cardNote'], 'properties': {'cardId': {'type': 'string', 'format': 'uuid'}, 'cardNote': {'type': ['string', 'null'], 'maxLength': 4000}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'required': ['deckId', 'deckNote'], 'properties': {'deckId': {'type': 'string', 'format': 'uuid'}, 'deckNote': {'type': ['string', 'null'], 'maxLength': 4000}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'properties': {'asOf': {'type': 'string', 'description': 'Queue instant. Omit to use now.'}, 'label': {'type': ['string', 'null'], 'maxLength': 80}, 'limit': {'type': 'integer', 'maximum': 25, 'minimum': 1, 'description': 'Page size, not the daily new-card cap.'}, 'deckId': {'type': 'string', 'format': 'uuid', 'description': 'Optional deck filter.'}, 'extraNew': {'type': 'integer', 'maximum': 50, 'minimum': 1, 'description': 'Required when newCardMode is extra.'}, 'newCardMode': {'enum': ['daily', 'extra'], 'type': 'string'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'properties': {'due': {'type': 'array', 'items': {'type': 'object', 'properties': {'dueAt': {'type': 'string', 'description': 'UTC ISO-8601 timestamp ending in Z'}, 'queue': {'enum': ['learning', 'review', 'new'], 'type': 'string'}, 'cardId': {'type': 'string', 'format': 'uuid'}, 'deckId': {'type': 'string', 'format': 'uuid'}, 'prompt': {'type': 'string', 'description': 'The quiz prompt. The answer is never in this response.'}, 'cardNote': {'type': ['string', 'null']}, 'deckName': {'type': 'string'}, 'deckNote': {'type': ['string', 'null']}, 'answerIncluded': {'enum': [False], 'type': 'boolean'}}, 'additionalProperties': False}}, 'asOf': {'type': 'string', 'description': 'UTC ISO-8601 timestamp ending in Z'}, 'first': {'anyOf': [{'type': 'object', 'properties': {'dueAt': {'type': 'string', 'description': 'UTC ISO-8601 timestamp ending in Z'}, 'queue': {'enum': ['learning', 'review', 'new'], 'type': 'string'}, 'cardId': {'type': 'string', 'format': 'uuid'}, 'deckId': {'type': 'string', 'format': 'uuid'}, 'prompt': {'type': 'string', 'description': 'The quiz prompt. The answer is never in this response.'}, 'cardNote': {'type': ['string', 'null']}, 'deckName': {'type': 'string'}, 'deckNote': {'type': ['string', 'null']}, 'answerIncluded': {'enum': [False], 'type': 'boolean'}}, 'additionalProperties': False}, {'type': 'null'}]}, 'account': {'anyOf': [{'type': 'object', 'required': ['userId', 'tokenId', 'token'], 'properties': {'note': {'type': 'string'}, 'token': {'type': 'string', 'description': 'Save this as the tenant for Authorization: Bearer calls.'}, 'userId': {'type': 'string', 'format': 'uuid'}, 'tokenId': {'type': 'string', 'format': 'uuid'}}, 'additionalProperties': False}, {'type': 'null'}]}, 'newCards': {'type': 'object', 'properties': {'waiting': {'type': 'integer'}, 'dayStart': {'type': 'string', 'description': 'UTC ISO-8601 timestamp ending in Z'}, 'nextDayStart': {'type': 'string', 'description': 'UTC ISO-8601 timestamp ending in Z'}, 'remainingToday': {'type': 'integer'}}, 'additionalProperties': False}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'required': ['description', 'steps'], 'properties': {'note': {'type': 'string', 'maxLength': 4000, 'minLength': 1}, 'steps': {'type': 'array', 'items': {'type': 'string', 'maxLength': 2000, 'minLength': 1}, 'maxItems': 50, 'minItems': 1}, 'description': {'type': 'string', 'maxLength': 500, 'minLength': 1}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'required': ['deckId'], 'properties': {'deckId': {'type': 'string', 'format': 'uuid'}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'required': ['cardId'], 'properties': {'cardId': {'type': 'string', 'format': 'uuid'}, 'reviewId': {'type': 'string', 'format': 'uuid'}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'required': ['cardId'], 'properties': {'cardId': {'type': 'string', 'format': 'uuid'}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'required': ['cardId'], 'properties': {'answer': {'type': 'string', 'maxLength': 8000, 'minLength': 1}, 'cardId': {'type': 'string', 'format': 'uuid'}, 'prompt': {'type': 'string', 'maxLength': 8000, 'minLength': 1}, 'cardNote': {'type': ['string', 'null'], 'maxLength': 4000}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'required': ['deckId'], 'properties': {'name': {'type': 'string', 'maxLength': 120, 'minLength': 1}, 'deckId': {'type': 'string', 'format': 'uuid'}, 'deckNote': {'type': ['string', 'null'], 'maxLength': 4000}, 'description': {'type': ['string', 'null'], 'maxLength': 2000}, 'newCardsPerDay': {'type': ['integer', 'null'], 'maximum': 9999, 'minimum': 0}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'properties': {'id': {'type': 'string', 'format': 'uuid'}, 'name': {'type': 'string'}, 'deckNote': {'type': ['string', 'null']}, 'createdAt': {'type': 'string', 'description': 'UTC ISO-8601 timestamp ending in Z'}, 'updatedAt': {'type': 'string', 'description': 'UTC ISO-8601 timestamp ending in Z'}, 'archivedAt': {'type': ['string', 'null'], 'format': 'date-time'}, 'description': {'type': ['string', 'null']}, 'newCardsPerDay': {'type': ['integer', 'null']}, 'effectiveNewCardsPerDay': {'type': 'integer'}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'properties': {'timezone': {'type': 'string'}, 'newCardsPerDay': {'type': 'integer', 'maximum': 9999, 'minimum': 0}, 'dayBoundaryHour': {'type': 'integer', 'maximum': 23, 'minimum': 0}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'properties': {'timezone': {'type': 'string'}, 'newCardsPerDay': {'type': 'integer', 'minimum': 0}, 'dayBoundaryHour': {'type': 'integer', 'maximum': 23, 'minimum': 0}}, 'additionalProperties': False}
Recent tool changes
Similar MCP servers
ClusterHack
Supports hackathon operations including events, registrations, teams, submissions, judging, schedules, companies and leaderboards.
getjobzi-mcp
Searches UK jobs and supports resume analysis, job matching, cover letters, career planning, skill-gap analysis, and salary bench…
FoxForm
Creates, publishes, and analyzes scored forms and quizzes with branching screen logic, response collection, and CSV export.
ScholarNet — Study Plan & Thesis Tools
Creates study plans, thesis statements, citations, flashcards, quizzes, and tutor explanations for students.
Career Command
Provides paid interview practice and career preparation, including question generation, answer evaluation, story recovery, and in…
AnkiMCP Server
Exposes a local Anki flashcard collection to AI assistants.
Anki MCP Server
Manages Anki flashcards, notes, media, decks, and adaptive review through AnkiConnect.
MaCalculatriceEnLigne
Provides calculators for French and Belgian taxes, salaries, pensions, VAT, loans, health metrics, education scores, fitness, and…