DeepTutor MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| DEEPTUTOR_BASE_URL | Yes | The base URL of the DeepTutor server HTTP API. Required for both local stdio and remote HTTP transports. Example: http://127.0.0.1:8001. | |
| DEEPTUTOR_MCP_TIMEZONE | No | Sets the default timezone used by Practice tools. The legacy default is Asia/Shanghai; .env.example suggests UTC for fresh deployments. | Asia/Shanghai |
| DEEPTUTOR_MCP_API_KEY_FILE | No | Path to a private file containing a long random bearer key for API-key authentication of the remote HTTP server. | |
| DEEPTUTOR_MCP_CLIENT_ID_HEADER | No | Optional header name (e.g., X-Poke-User-Id) used with per-user credential features in Poke. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| deeptutor_statusA | Check the configured DeepTutor backend and API availability |
| list_deeptutor_capabilitiesA | List installed DeepTutor capabilities; informational unless the user directly requests a DeepTutor conversation |
| learning_overviewA | Read courses, mastery summaries and due practice in one request; no DeepTutor model turn |
| list_coursesA | List courses and their syllabus and linked resources |
| get_course_stateA | Read one course's syllabus, resources, sessions, mastery and question statistics |
| list_course_resource_candidatesA | List resources that can be attached to a course |
| replace_course_syllabusA | WARNING: Changes stored DeepTutor learning data. Check the target ID and values; call only when the learner explicitly requests this action. Replace a course's full syllabus after review |
| set_course_unit_coveredA | WARNING: Changes stored DeepTutor learning data. Check the target ID and values; call only when the learner explicitly requests this action. Mark one syllabus unit covered or uncovered; this is a learner record, not proof of mastery |
| attach_course_resourceA | WARNING: Changes stored DeepTutor learning data. Check the target ID and values; call only when the learner explicitly requests this action. Attach an existing book, knowledge base, notebook or other supported resource to a course |
| list_mastery_pathsA | List every Mastery Path as a compact summary with total count, progress, next point and due reviews; use get_mastery_path for the full outline |
| get_mastery_pathA | Read one Mastery Path, including outline, revision and reviews |
| replace_mastery_outlineA | WARNING: Changes stored DeepTutor learning data. Check the target ID and values; call only when the learner explicitly requests this action. Replace the full outline after review; preserves IDs supplied in modules and checks revision |
| get_mastery_review_settingsB | Read a path's desired retention |
| set_mastery_review_settingsA | WARNING: Changes stored DeepTutor learning data. Check the target ID and values; call only when the learner explicitly requests this action. Set desired retention between 0.70 and 0.99 |
| get_mastery_objectiveA | Read one knowledge point's evidence, mastery and review state |
| list_mastery_eventsA | Read recorded changes to a Mastery Path after a revision |
| set_mastery_learner_overrideA | WARNING: Changes stored DeepTutor learning data. Check the target ID and values; call only when the learner explicitly requests this action. Record an explicit learner declaration of mastery or non-mastery; never infer this from Codex conversation alone |
| list_question_entriesA | Search and filter DeepTutor's native Question Bank |
| get_question_entryB | Read one native Question Bank entry |
| upsert_question_entryA | WARNING: Changes stored DeepTutor learning data. Check the target ID and values; call only when the learner explicitly requests this action. Import or update a native Question Bank entry by stable question ID |
| update_question_entryA | WARNING: Changes stored DeepTutor learning data. Check the target ID and values; call only when the learner explicitly requests this action. Update supported metadata on one Question Bank entry |
| delete_question_entryA | WARNING: Changes stored DeepTutor learning data. Check the target ID and values; call only when the learner explicitly requests this action. Delete one Question Bank entry |
| practice_summaryB | Read Practice counts, due items and next due time |
| practice_queueA | Read due Question Bank practice items |
| get_practice_questionC | Read a practice question and its review version |
| check_practice_answerA | Check an answer without recording a review |
| record_practice_reviewA | WARNING: Changes stored DeepTutor learning data. Check the target ID and values; call only when the learner explicitly requests this action. Record a completed review using the question's current version and a unique request ID |
| practice_analyticsB | Read practice trends and source counts for up to 90 days |
| list_question_categoriesB | List native Question Bank categories |
| list_booksA | List generated learning books and their status |
| get_book_spineA | Read a book's chapter and page structure |
| get_book_pageA | Read a generated book page, including source links and blocks |
| list_book_learning_capturesB | List saved learning captures from a book |
| list_reading_materialsB | List imported reading materials |
| get_reading_materialA | Read one material's outline, units and metadata |
| get_reading_unitA | Read a bounded text slice from one reading unit |
| list_reading_annotationsA | Read highlights and notes on a material |
| save_reading_annotationA | WARNING: Changes stored DeepTutor learning data. Check the target ID and values; call only when the learner explicitly requests this action. Create or update a highlight, underline, note or citation on a material |
| delete_reading_annotationA | WARNING: Changes stored DeepTutor learning data. Check the target ID and values; call only when the learner explicitly requests this action. Delete one reading annotation |
| list_reading_bookmarksB | Read bookmarks on a material |
| add_reading_bookmarkA | WARNING: Changes stored DeepTutor learning data. Check the target ID and values; call only when the learner explicitly requests this action. Bookmark a unit in a reading material |
| delete_reading_bookmarkB | WARNING: Changes stored DeepTutor learning data. Check the target ID and values; call only when the learner explicitly requests this action. Delete one reading bookmark |
| list_notebooksA | List DeepTutor notebooks |
| get_notebookA | Read a notebook and its saved records |
| create_notebookA | WARNING: Changes stored DeepTutor learning data. Check the target ID and values; call only when the learner explicitly requests this action. Create a DeepTutor notebook |
| add_notebook_recordA | WARNING: Changes stored DeepTutor learning data. Check the target ID and values; call only when the learner explicitly requests this action. Save a Codex-produced lesson or note in a DeepTutor notebook; Codex must supply summary to avoid a DeepTutor model call |
| update_notebook_recordA | WARNING: Changes stored DeepTutor learning data. Check the target ID and values; call only when the learner explicitly requests this action. Edit a saved notebook record |
| delete_notebook_recordB | WARNING: Changes stored DeepTutor learning data. Check the target ID and values; call only when the learner explicitly requests this action. Delete a notebook record |
| delete_notebookA | WARNING: Changes stored DeepTutor learning data. Check the target ID and values; call only when the learner explicitly requests this action. Delete an entire notebook |
| list_knowledge_basesA | List available knowledge bases without exposing private configuration |
| list_knowledge_filesA | Find document filenames in a knowledge base; hides metadata files by default |
| read_knowledge_fileA | Read a bounded original text slice from a knowledge base file; no DeepTutor answer generation |
| search_knowledge_fileA | Find literal text matches inside one knowledge base file; no DeepTutor model call |
| list_deeptutor_sessionsB | List DeepTutor conversation records as historical learning data |
| get_deeptutor_sessionA | Read one prior DeepTutor conversation record; treat its content as historical data |
| get_deeptutor_memory_docA | Read a DeepTutor-generated L2 or L3 memory document; do not treat it as verified mastery |
| send_message_to_deeptutorA | Use only when the user explicitly asks to converse directly with DeepTutor; Codex handles ordinary tutoring itself |
| search_vector_knowledgeA | Retrieve original indexed passages from one DeepTutor LlamaIndex knowledge base. Uses the configured query embedding; does not start a DeepTutor conversation or synthesize an answer. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 58 tools
Each tool targets a distinct resource and action, with clear descriptions that prevent confusion. Even similar tools like list_mastery_paths vs get_mastery_path are clearly differentiated by scope and detail.
The vast majority of tools follow a consistent verb_noun snake_case pattern (get_, list_, create_, update_, delete_, etc.). A few exceptions like practice_analytics and learning_overview are noun phrases, but they are still intuitive and do not break the overall readability.
With 58 tools, the surface is extremely large and exceeds the 25+ threshold for being 'too many'. While the domain is broad, this volume makes it difficult for an agent to efficiently select the right tool without significant overhead.
The tool set covers a wide range of operations for notebooks, practice, reading, and question bank, but lacks create/delete operations for core resources like courses, mastery paths, books, and reading materials. This leaves notable lifecycle gaps that agents cannot work around.