MCP App Store
by KeenEthics
Education
Kuliko AI icon

Kuliko AI

by Kuliko Inc.

Overview

AI made answers easy. Kuliko helps you stay ready. Connect your Kuliko study library to instantly transform your notes, PDFs, slides, and documents into flashcards, quizzes, summaries, and mind maps that help you truly understand what you're learning—not just memorize it. Built on proven learning science like spaced repetition and active recall, Kuliko helps you prepare with confidence for exams, interviews, presentations, certifications, and the moments that matter most. Whether you're reviewing a single chapter or mastering an entire course, Kuliko adapts to your learning, tracks your progress, and helps you focus on what you need to practice next. Everything stays connected to your Kuliko account, so your subjects, study materials, and progress are always available wherever you learn. - Stay Ready with Kuliko - Generate flashcards, quizzes, summaries, and mind maps from your own notes - Study with spaced repetition and active recall - Build real understanding instead of memorizing answers - Organize every subject in one study library - Prepare for exams, interviews, presentations, and more - Learn with confidence using AI designed for mastery—not shortcuts Finding an answer isn't the same as being ready. Stay Ready.

Tools

add_share_group_member

ChatGPT
Add one member to a share group by email address.

create_artifact

ChatGPT
Save a self-contained HTML artifact to the user's library, attached to one document. Use this to persist a rich, standalone HTML document (inline CSS/JS — e.g. an interactive explainer, diagram, or visualization) so the user can revisit it as a learning resource. Available to all users.

create_document

ChatGPT
Save model-authored text as a document in a Kuliko subject. Use this for content you (the model) have written — a study guide, a notes file, a generated summary. Pass the raw text in content; the server UTF-8-encodes it and stores it through the same presigned-URL upload store_documents uses. No base64 needed — that's the whole point of this tool versus store_documents. Content is always stored as markdown — write content as markdown. For binary files (PDFs, images) or files the user supplies, use the upload widget (upload_to_subject) / store_documents instead; those keep their original format. Per-file caps (enforced server-side): 5 MB on the free tier, 20 MB on Kuliko Pro. Split anything larger into multiple documents.

create_flashcards

ChatGPT
Create one or more flashcards in a subject. Keep questions clear and self-contained. Answers should be concise but complete. Match the language the user is studying in.

create_notes

ChatGPT
Create one or more Cornell-style notes in a subject. Match the language the user is studying in.

create_quiz

ChatGPT
Create a quiz in a subject. Quiz difficulty uses Glicko-2 ratings (1300=easy, 1500=medium, 1700=hard). Existing quiz questions can be retrieved with get_quiz_questions for rating calibration. Generate 5-15 questions. Match the source language.

create_share_group

ChatGPT
Create a reusable document share group. Group names must be unique for the current user. Optionally provide initial member email addresses. Sharing to a group later fans out into one pending share row per current group member; users cannot share documents with themselves.

create_subject

ChatGPT
Create a new subject (e.g. "Intro to Economics", "OAuth 2.0").

create_summaries

ChatGPT
Create one or more summaries in a subject. Match the language the user is studying in.

finish_quiz

ChatGPT
Complete a quiz attempt and return the scored results. Called by the quiz widget after the user clicks Submit. The widget waits for this call to return and then renders the score, focus areas, and per-question breakdown inline — do not re-render the results as chat text. If the user later asks for their results separately, use get_quiz_results instead.

generate_resources

ChatGPT
Generate learning resources from an existing document using AI. Returns the generated resources directly. Constraints: - For flashcards, notes, summaries, and mind_maps: each source can only have resources generated once per type. If they already exist, this will fail. - For quizzes: cannot generate a new quiz if there is an active (in-progress) quiz for the same source. Complete it first.

get_document

ChatGPT
Get metadata about a specific document, including title, file size, token count, tags, and timestamps.

get_document_text

ChatGPT
Get the raw extracted text content of an uploaded document. Large documents may return very long text that could fill up the conversation context.

get_flashcard_review_info

ChatGPT
Get info about flashcards scheduled for review, including due counts per subject.

get_learning_resources

ChatGPT
Get the user's learning resources of a given type.

get_mind_map

ChatGPT
Get the full mind map tree for a document. Returns the hierarchical topic structure with labels, descriptions, and relationships between concepts. Can be rendered as a Mermaid diagram, structured visual hierarchy, or interactive format.

get_quiz_questions

ChatGPT
Get all questions for a quiz, including their Glicko-2 difficulty ratings, choices, and any existing answers.

get_quiz_results

ChatGPT
Get the full results of a completed quiz attempt, including score, per-question answers, performance analysis, strong areas, and areas to review.

get_quiz_status

ChatGPT
Get the completion status of a specific quiz (new, in_progress, or completed).

get_share_group

ChatGPT
Get one share group, including its members. Member objects include member_user_id, which is required when removing a member from the group.

get_subscription

ChatGPT
Get the user's current subscription status and tier.

list_documents

ChatGPT
List the user's uploaded documents/sources.

list_outgoing_shares

ChatGPT
List documents the current user has shared. Status meanings: pending means the recipient has not responded; accepted includes copied_source_id; declined, revoked, and expired are terminal states; failed includes an error describing why the accept-copy job failed.

list_quiz_attempts

ChatGPT
List all quiz attempts by the user, showing scores and completion status.

list_share_groups

ChatGPT
List reusable document share groups owned by the current user.

list_subjects

ChatGPT
List the user's subjects with names and document counts.

rate_flashcard

ChatGPT
Submit a spaced-repetition rating for a flashcard. Called by the flashcard widget after the user picks Again / Hard / Good / Easy.

remove_share_group_member

ChatGPT
Remove one member from a share group. Use get_share_group to find the member's member_user_id. This affects future group shares only; existing share rows remain visible and revocable according to their own status.

review_flashcards

ChatGPT
Start an interactive flashcard review session. Shows due flashcards one at a time with spaced-repetition rating buttons (Again, Hard, Good, Easy). Optionally filter by source or subject.

revoke_share

ChatGPT
Revoke a pending outgoing share. Only pending shares can be revoked. Accepted, declined, revoked, expired, or failed shares remain in outgoing history and cannot be revoked.

search_documents

ChatGPT
Search across the user's uploaded documents using semantic search. Returns relevant text passages matching the query.

share_source

ChatGPT
Share a document with one user by email or with a share group. Provide exactly one of recipient_email or group_id. Group shares fan out into one share row per current group member. Duplicate pending shares for the same document and recipient are skipped, so a duplicate-only group share returns a note instead of an error. Users cannot share documents with themselves. Optional messages are limited to 1000 characters.

start_quiz_attempt

ChatGPT
Begin a new attempt on a quiz. Called by the quiz widget when the user clicks Start. Returns the full quiz state with questions ready to answer. If an in-progress attempt already exists, resumes that one instead of creating a duplicate.

store_documents

ChatGPT
Upload one or more documents to a Kuliko subject. Two main use cases: 1. Widget upload — the document-upload widget calls this with the file bytes the user dropped in. You normally don't call this directly for user-supplied files; use upload_to_subject to open the widget. 2. Model-authored content — you've drafted study material (a notes file, a summary, a markdown document) and want to save it as a Kuliko document. Base64-encode the UTF-8 bytes of your text and pass it as a single file with a .md or .txt name.

submit_quiz_answers

ChatGPT
Save the user's quiz answers in bulk. Called by the quiz widget on Save & Exit or when the user submits the quiz — matches the frontend pattern of persisting answers only on save, not on every selection.

take_quiz

ChatGPT
Open a quiz inline. Read-only — shows whichever state the quiz is in: completed results, an in-progress attempt the user can resume, or a Start button when no attempt exists yet. Doesn't create or modify anything; the widget calls start_quiz_attempt when the user clicks Start.

update_artifact

ChatGPT
Update an artifact's fields, or move it under a different document.

update_document

ChatGPT
Replace the full text of a markdown or plain-text document. Overwrites the document's content in place (the previous text is lost). Only documents with a .md, .markdown, or .txt filename are editable — other types (PDF, DOCX, images, web pages) cannot be edited and will return an error. Call get_document_text first to read the current content, then send the complete new body. Partial edits are not supported: whatever you pass fully replaces the document.

update_flashcard

ChatGPT
Update a flashcard's question or answer text.

update_mind_map

ChatGPT
Update a mind map's title/tree, or move it under a different document.

update_note

ChatGPT
Update a note's fields, or move it under a different document.

update_share_group

ChatGPT
Rename a share group. Group names must be non-empty and unique for the current user. Renaming a group does not change its members or any existing share rows.

update_subject

ChatGPT
Rename an existing subject.

update_summary

ChatGPT
Update a summary's fields, or move it under a different document.

upload_to_subject

ChatGPT
Open a drag-and-drop upload widget for a Kuliko subject. The widget collects a file from the user and uploads it via the store_documents tool. Call this whenever the user wants to add a new study material (PDF, notes, etc.) to one of their subjects. The widget includes a subject picker pre-loaded with the user's subjects, plus an inline "create new subject" option — so passing subject_id is optional. When provided, the picker is pre-filled with that subject and the user can still change it.

view_mind_map

ChatGPT
View a mind map as an interactive visual diagram. Shows the hierarchical structure of topics from a document as a zoomable, pannable graph powered by React Flow.

add_share_group_member

Claude

create_share_group

Claude

create_subject

Claude

create_text_document

Claude

generate_learning_resources

Claude

get_document

Claude

get_document_text

Claude

get_flashcard_due_counts

Claude

get_quiz_questions

Claude

get_quiz_results

Claude

get_quiz_status

Claude

get_share_group

Claude

get_subscription

Claude

list_documents

Claude

list_learning_resources

Claude

list_outgoing_shares

Claude

list_quiz_attempts

Claude

list_share_groups

Claude

list_subjects

Claude

remove_share_group_member

Claude

revoke_share

Claude

save_flashcards

Claude

save_html_artifact

Claude

save_notes

Claude

save_summaries

Claude

search_documents

Claude

share_document

Claude

update_document

Claude

update_flashcard

Claude

update_html_artifact

Claude

update_note

Claude

update_share_group

Claude

update_subject

Claude

update_summary

Claude

upload_document

Claude

upload_document_bytes

Claude

App Stats

82

Tools

3

Prompts

ChatGPT, Claude

Platforms

Works with

ChatGPT
Claude

Data refreshed daily