MCP App Store
by KeenEthics
Productivity
Time Machine icon

Time Machine

by Time Machine

Overview

Time Machine is an AI-powered corporate learning platform for sales enablement, onboarding, and L&D teams. Connect Time Machine to Claude to: - Browse and author courses, modules, topics, lessons, and exercises - Create AI-generated role-play voice and video exercises for practice - Manage users, departments, roles, and demo trainings - Query persona-based AI experts grounded in your company's documents - Track student progress with insights, learning-byte completion, and certificates 119 operations run against your company's data via OAuth 2.1 with PKCE. Claude only sees what your Time Machine account is permitted to access per-user permissions and per-tenant isolation. Best for: - L&D and training teams authoring content at scale - Sales enablement managers running onboarding and role-play practice - Company admins managing users, roles, and content assignments - Managers reviewing team learning progress and completion

Tools

tml_ask_expert

ChatGPT
Ask the expert a question. Synchronous — may take 5–30 seconds. Returns the assembled answer and durationMs.

tml_assign_documents_to_expert

ChatGPT
Link one or more documents to an expert so it can use them for answers. Idempotent — re-linking an already-linked document is a no-op.

tml_assign_roles_to_course

ChatGPT
Assign one or more roles to a course. Additive — already-assigned roles skipped.

tml_assign_roles_to_expert

ChatGPT
Assign roles to an expert. Additive.

tml_assign_user_to_role

ChatGPT
Assign a user to a role within a department. Idempotent.

tml_create_app_training

ChatGPT
Create an application training backed by an already-uploaded video file. Convenience alias for tml_create_demo_training with trainingType=APPLICATION_TRAINING — use this when you specifically want to create an Application Training (vs a Demo Training).

tml_create_course

ChatGPT
Create an empty course shell with the given name. Use other tools to add structure (modules, topics) and AI-generated content (V1.1).

tml_create_demo_training

ChatGPT
Create a demo training backed by an already-uploaded video file. trainingType must be DEMO_TRAINING or APPLICATION_TRAINING.

tml_create_department

ChatGPT
Create a new department with the given name and optional description.

tml_create_department_role

ChatGPT
Create a role within a department. Returns the updated department with the new role.

tml_create_ile_text_exercise

ChatGPT
Add an Interactive Learning Exercise (ILE_TEXT) — a text-based practice exercise built around a sales scenario, answered by typing rather than voice or video. With topicId it lands in that course topic; without it, on the company Exercises page.

tml_create_learning_byte

ChatGPT
Add a learning byte (lesson grouping) to a topic.

tml_create_lesson

ChatGPT
Add a lesson to a learning byte.

tml_create_lesson_question

ChatGPT
Add an in-lesson question. type is one of MULTIPLE_CHOICE (requires options), OPEN_ENDED (optional expectedAnswer), FILL_IN_THE_BLANKS (requires fillInTheBlanks payload) or MATCH_THE_BLOCKS (requires matchTheBlocks payload).

tml_create_module

ChatGPT
Add a module to a course.

tml_create_module_quiz_question

ChatGPT
Add a quiz question to a module. type is one of MULTIPLE_CHOICE (requires options), OPEN_ENDED (optional expectedAnswer), FILL_IN_THE_BLANKS (requires fillInTheBlanks payload) or MATCH_THE_BLOCKS (requires matchTheBlocks payload).

tml_create_rpe_video_exercise

ChatGPT
Add an RPE_VIDEO exercise (video-based role-play). With topicId it lands in that course topic; without it, on the company Exercises page.

tml_create_rpe_voice_exercise

ChatGPT
Add an RPE_VOICE exercise (voice-based role-play). With topicId it lands in that course topic; without it, on the company Exercises page.

tml_create_topic

ChatGPT
Add a topic to a module.

tml_create_topic_quiz_question

ChatGPT
Add a quiz question to a topic. type is one of MULTIPLE_CHOICE (requires options), OPEN_ENDED (optional expectedAnswer), FILL_IN_THE_BLANKS (requires fillInTheBlanks payload) or MATCH_THE_BLOCKS (requires matchTheBlocks payload).

tml_create_user

ChatGPT
Create a new user in the company and trigger the magic-link invitation email. Provide email (required), firstName/lastName (recommended), isAdmin flag, and optional department-role assignments.

tml_deactivate_user

ChatGPT
Deactivate a user. Idempotent — returns the user even if already deactivated.

tml_delete_course

ChatGPT
Soft-delete a course. Idempotent.

tml_delete_demo_training

ChatGPT
Soft-delete a demo training. Idempotent.

tml_delete_department

ChatGPT
Soft-delete a department (cascades to roles and role assignments). Idempotent.

tml_delete_document

ChatGPT
Soft-delete a document. Idempotent — returns success even if the document is already deleted or does not exist in the caller's company.

tml_delete_exercise

ChatGPT
Soft-delete an exercise. Idempotent.

tml_delete_learning_byte

ChatGPT
Soft-delete a learning byte. Idempotent.

tml_delete_lesson

ChatGPT
Soft-delete a lesson. Idempotent.

tml_delete_lesson_question

ChatGPT
Delete one in-lesson question. Idempotent.

tml_delete_media

ChatGPT
Soft-delete a media item. Idempotent.

tml_delete_module

ChatGPT
Soft-delete a module. Idempotent.

tml_delete_module_intro

ChatGPT
Remove a module's intro. Idempotent.

tml_delete_module_quiz_question

ChatGPT
Delete a module quiz question. Idempotent.

tml_delete_topic

ChatGPT
Soft-delete a topic. Idempotent.

tml_delete_topic_intro

ChatGPT
Remove a topic's intro. Idempotent.

tml_delete_topic_quiz_question

ChatGPT
Delete a topic quiz question. Idempotent.

tml_duplicate_company_exercise

ChatGPT
Copy a company exercise, returning the new one.

tml_generate_course

ChatGPT
Create a full course with AI-generated content from a structured plan. Creates the course shell, every module, every topic, and enqueues AI content generation for every topic. Generation runs asynchronously (typically 5-10 minutes). Returns courseId and generationRequestId — poll tml_get_course_generation_status with the courseId until all requests are completed before considering the course ready.

tml_generate_course_content

ChatGPT
Trigger AI content generation for specified topics inside an existing course. Use this when the course shell + structure already exist and you want lessons/questions/exercises generated for a subset of topics. Generation runs asynchronously — poll tml_get_course_generation_status.

tml_get_certificate

ChatGPT
Fetch a single certificate's details by id. 404 if not in caller's company.

tml_get_company_insights

ChatGPT
Company-level KPIs — totalStudents, averageProgressPercent, activeThisWeekCount, completedCount, completionRatePercent.

tml_get_course

ChatGPT
Fetch a single course with module + topic structure.

tml_get_course_generation_status

ChatGPT
Get the current status of all in-flight AI generation requests for a course. Returns activeRequests with id, status (PENDING / IN_PROGRESS / COMPLETED / FAILED), progress counts, target type, and error string if any. Use to poll progress after tml_generate_course, tml_generate_course_content, or tml_regenerate_item.

tml_get_course_version_snapshot

ChatGPT
Get the full snapshot of a specific course version (modules/topics/lessons/exercises/questions tree).

tml_get_demo_training

ChatGPT
Get demo-training detail (includes segments + assigned roles).

tml_get_document

ChatGPT
Fetch detail for a single document by id. Returns metadata plus a download URL.

tml_get_exercise

ChatGPT
Get exercise detail.

tml_get_expert

ChatGPT
Fetch a single expert detail along with linked documents.

tml_get_learning_byte

ChatGPT
Get learning-byte detail with nested lessons.

tml_get_lesson

ChatGPT
Get lesson detail (content + media + questions).

tml_get_lesson_question

ChatGPT
Get one in-lesson question detail.

tml_get_media

ChatGPT
Fetch detail for a single media item. Returns metadata plus a download URL.

tml_get_module

ChatGPT
Get module detail (including topics).

tml_get_module_intro

ChatGPT
Get a module's intro text. 404 if none set.

tml_get_module_quiz_question

ChatGPT
Get one module quiz question.

tml_get_student_events

ChatGPT
Paginated stream of activity events for a single student (lessons completed, courses started, exercises completed, etc.).

tml_get_student_insights

ChatGPT
Per-student aggregated insights for a time window. Returns hoursSpent breakdown by day and course plus per-enrollment progress.

tml_get_topic

ChatGPT
Get topic detail.

tml_get_topic_intro

ChatGPT
Get a topic's intro text. 404 if none set.

tml_get_topic_knowledge_base

ChatGPT
Return the aggregated knowledge base for a topic — content, aiContent, manual-edit flag, source-document merge state, and verification warnings.

tml_get_topic_quiz_question

ChatGPT
Get one topic quiz question.

tml_get_user

ChatGPT
Fetch detail for a single user (team member).

tml_list_avatar_presets

ChatGPT
The personas a role play exercise can use. Pass a name as avatarName when creating one. Left empty, one of these is assigned automatically.

tml_list_certificates_for_student

ChatGPT
List certificates earned by a student inside the caller's company. Returns metadata (course name, serial, completion + issued dates, pdfFileId).

tml_list_course_knowledge_bases

ChatGPT
Return the knowledge base for every topic in the course.

tml_list_course_modules

ChatGPT
List modules in a course (ordered by ordinalNumber).

tml_list_course_versions

ChatGPT
List published versions of a course.

tml_list_courses

ChatGPT
List courses in the caller's company. Paginated. Filter by search text or by assigned department-role ids.

tml_list_demo_trainings

ChatGPT
List demo / application training videos in the caller's company.

tml_list_departments

ChatGPT
List all departments in the caller's company. No pagination — set is small. Each department includes its roles.

tml_list_documents

ChatGPT
List documents in the caller's company. Use when the user asks about uploaded files, knowledge-base contents, or wants to search documents. Returns a paginated list of document metadata (no file contents).

tml_list_exercise_scenarios

ChatGPT
The values accepted by salesPhase and scenarioKey. Phase keys go into salesPhase, scenario keys into scenarioKey.

tml_list_experts

ChatGPT
List AI experts in the caller's company. Paginated. Use search to filter by name.

tml_list_learning_bytes

ChatGPT
List learning bytes (groupings of lessons) inside a topic.

tml_list_lesson_questions

ChatGPT
List in-lesson questions for a lesson.

tml_list_lessons_in_learning_byte

ChatGPT
List lessons inside a learning byte.

tml_list_media

ChatGPT
List media items (images, videos, audio) in the caller's company. Paginated. Use search to narrow by name.

tml_list_module_quiz_questions

ChatGPT
List quiz questions attached to a module.

tml_list_module_topics

ChatGPT
List topics in a module (ordered by ordinalNumber).

tml_list_topic_exercises

ChatGPT
List exercises (ILE_TEXT / RPE_VOICE / RPE_VIDEO). With topicId, the exercises in that course topic. Without it, the company exercises from the Exercises page.

tml_list_topic_linked_documents

ChatGPT
List documents linked to a topic. Paginated, optional name search.

tml_list_topic_quiz_questions

ChatGPT
List quiz questions attached to a topic.

tml_list_users

ChatGPT
List users (team members) in the caller's company. Paginated. Filter by name/email via search, or by department/role assignments.

tml_move_topic

ChatGPT
Move a topic to another module (and optional ordinalNumber).

tml_publish_course

ChatGPT
Publish a course (make it available to students). Fails if the course has no publishable content (modules + lessons).

tml_put_module_intro

ChatGPT
Set or replace a module's intro text (upsert).

tml_put_topic_intro

ChatGPT
Set or replace a topic's intro text (upsert).

tml_reactivate_user

ChatGPT
Reactivate a previously deactivated user. Idempotent.

tml_regenerate_company_exercise

ChatGPT
Start generation for a company exercise. generationStatus moves to PENDING.

tml_regenerate_item

ChatGPT
Regenerate a single AI-generated item (lesson, lesson questions, quiz, intro, or exercise). Useful when the existing content needs a refresh but the rest of the topic/module is fine. parentType is required when target is INTRO or QUIZ (specifies whether the parent is a MODULE or a TOPIC); not needed for LESSON / LESSON_QUESTIONS / EXERCISE.

tml_regenerate_topic_knowledge_base

ChatGPT
Enqueue an AI regeneration of the topic knowledge base from its current source documents. Returns the request id and initial status (PENDING / IN_PROGRESS / COMPLETED / FAILED). Poll tml_get_topic_knowledge_base to observe requestStatus.

tml_remove_all_roles_from_course

ChatGPT
Remove all role assignments from a course. Idempotent.

tml_remove_all_roles_from_expert

ChatGPT
Remove all role assignments from an expert. Idempotent.

tml_remove_role_from_course

ChatGPT
Remove one role assignment from a course. Idempotent.

tml_remove_role_from_expert

ChatGPT
Remove one role assignment from an expert. Idempotent.

tml_reorder_lesson_media

ChatGPT
Set the display order of a lesson's media assets. fileIds must cover every asset currently linked to the lesson exactly once; order drives gallery playback.

tml_reorder_lesson_questions

ChatGPT
Reorder in-lesson questions.

tml_reorder_module_quiz_questions

ChatGPT
Reorder module quiz questions.

tml_reorder_modules

ChatGPT
Reorder modules in a course. moduleIds must include all active modules.

tml_reorder_topic_quiz_questions

ChatGPT
Reorder topic quiz questions.

tml_reorder_topics

ChatGPT
Reorder topics in a module.

tml_reprocess_demo_training

ChatGPT
Re-run AI processing on the video (optional new processingPrompt).

tml_set_demo_training_availability

ChatGPT
Toggle student access (true = available, false = hidden).

tml_set_exercise_active

ChatGPT
Make a company exercise available to learners, or hide it. Idempotent.

tml_set_exercise_roles

ChatGPT
Replace the department roles a company exercise is assigned to. An empty list clears it.

tml_unassign_document_from_expert

ChatGPT
Unlink a single document from an expert. Idempotent.

tml_unassign_user_from_role

ChatGPT
Unassign a user from a role. Idempotent.

tml_update_course

ChatGPT
Update a course's name. Partial update — omitted fields preserved.

tml_update_demo_training

ChatGPT
Partial update of demo-training metadata.

tml_update_demo_training_segment

ChatGPT
Partial update of one segment's content and timing. Only the properties you send are changed; sending description, transcript or notes as null clears them. Required Visuals can never be left empty, and Key Talking Points can never be left empty on a Demo Training. Links must be http(s) — a bare host is promoted to https://. Times are MM:SS and must stay inside the video and in order; a neighbour only moves when the new range would overlap it. The Full Run row cannot be edited.

tml_update_department

ChatGPT
Update department name and/or description. Partial update.

tml_update_document

ChatGPT
Update document metadata (name and/or description). Partial update — omitted fields are preserved.

tml_update_exercise

ChatGPT
Type-aware update — ILE_TEXT uses prompt + generatedContent.scenario; RPE_* uses all RPE fields. Omitted fields preserve current values.

tml_update_learning_byte

ChatGPT
Partial update of name/description.

tml_update_lesson

ChatGPT
Replace lesson content.

tml_update_lesson_question

ChatGPT
Update an in-lesson question. Fields are type-aware — provide options for MULTIPLE_CHOICE, expectedAnswer for OPEN_ENDED, fillInTheBlanks for FILL_IN_THE_BLANKS, matchTheBlocks for MATCH_THE_BLOCKS; unrelated fields are ignored.

tml_update_media

ChatGPT
Update media item metadata (name and/or description). Partial update.

tml_update_module

ChatGPT
Partial update — name and/or description. Omitted fields preserved.

tml_update_module_quiz_question

ChatGPT
Update a module quiz question. Fields are type-aware — provide options for MULTIPLE_CHOICE, expectedAnswer for OPEN_ENDED, fillInTheBlanks for FILL_IN_THE_BLANKS, matchTheBlocks for MATCH_THE_BLOCKS; unrelated fields are ignored.

tml_update_module_quiz_settings

ChatGPT
Set the count of one questionType for a module's quiz. Other types' counts preserved.

tml_update_topic

ChatGPT
Partial update — name and/or description. Omitted fields preserved.

tml_update_topic_knowledge_base

ChatGPT
Replace the topic knowledge base content with a manually-edited version. Sets isManuallyEdited=true and returns the updated knowledge base.

tml_update_topic_quiz_question

ChatGPT
Update a topic quiz question. Fields are type-aware — provide options for MULTIPLE_CHOICE, expectedAnswer for OPEN_ENDED, fillInTheBlanks for FILL_IN_THE_BLANKS, matchTheBlocks for MATCH_THE_BLOCKS; unrelated fields are ignored.

tml_update_topic_quiz_settings

ChatGPT
Set the count of one questionType for a topic's quiz. Other types' counts preserved.

tml_update_user

ChatGPT
Update an existing user's first/last name, admin flag, and/or department-role assignments. Partial update — omitted fields are preserved. Email is not editable.

tml_ask_expert

Claude

tml_assign_documents_to_expert

Claude

tml_assign_roles_to_course

Claude

tml_assign_roles_to_expert

Claude

tml_assign_user_to_role

Claude

tml_create_app_training

Claude

tml_create_course

Claude

tml_create_demo_training

Claude

tml_create_department

Claude

tml_create_department_role

Claude

tml_create_ile_text_exercise

Claude

tml_create_learning_byte

Claude

tml_create_lesson

Claude

tml_create_lesson_question

Claude

tml_create_module

Claude

tml_create_module_quiz_question

Claude

tml_create_rpe_video_exercise

Claude

tml_create_rpe_voice_exercise

Claude

tml_create_topic

Claude

tml_create_topic_quiz_question

Claude

tml_create_user

Claude

tml_deactivate_user

Claude

tml_delete_course

Claude

tml_delete_demo_training

Claude

tml_delete_department

Claude

tml_delete_document

Claude

tml_delete_exercise

Claude

tml_delete_learning_byte

Claude

tml_delete_lesson

Claude

tml_delete_lesson_question

Claude

tml_delete_media

Claude

tml_delete_module

Claude

tml_delete_module_intro

Claude

tml_delete_module_quiz_question

Claude

tml_delete_topic

Claude

tml_delete_topic_intro

Claude

tml_delete_topic_quiz_question

Claude

tml_generate_course

Claude

tml_generate_course_content

Claude

tml_get_certificate

Claude

tml_get_company_insights

Claude

tml_get_course

Claude

tml_get_course_generation_status

Claude

tml_get_course_version_snapshot

Claude

tml_get_demo_training

Claude

tml_get_document

Claude

tml_get_exercise

Claude

tml_get_expert

Claude

tml_get_learning_byte

Claude

tml_get_lesson

Claude

tml_get_lesson_question

Claude

tml_get_media

Claude

tml_get_module

Claude

tml_get_module_intro

Claude

tml_get_module_quiz_question

Claude

tml_get_student_events

Claude

tml_get_student_insights

Claude

tml_get_topic

Claude

tml_get_topic_intro

Claude

tml_get_topic_quiz_question

Claude

tml_get_user

Claude

tml_list_certificates_for_student

Claude

tml_list_course_modules

Claude

tml_list_course_versions

Claude

tml_list_courses

Claude

tml_list_demo_trainings

Claude

tml_list_departments

Claude

tml_list_documents

Claude

tml_list_experts

Claude

tml_list_learning_bytes

Claude

tml_list_lesson_questions

Claude

tml_list_lessons_in_learning_byte

Claude

tml_list_media

Claude

tml_list_module_quiz_questions

Claude

tml_list_module_topics

Claude

tml_list_topic_exercises

Claude

tml_list_topic_linked_documents

Claude

tml_list_topic_quiz_questions

Claude

tml_list_users

Claude

tml_move_topic

Claude

tml_publish_course

Claude

tml_put_module_intro

Claude

tml_put_topic_intro

Claude

tml_reactivate_user

Claude

tml_regenerate_item

Claude

tml_remove_all_roles_from_course

Claude

tml_remove_all_roles_from_expert

Claude

tml_remove_role_from_course

Claude

tml_remove_role_from_expert

Claude

tml_reorder_lesson_media

Claude

tml_reorder_lesson_questions

Claude

tml_reorder_module_quiz_questions

Claude

tml_reorder_modules

Claude

tml_reorder_topic_quiz_questions

Claude

tml_reorder_topics

Claude

tml_reprocess_demo_training

Claude

tml_set_demo_training_availability

Claude

tml_unassign_document_from_expert

Claude

tml_unassign_user_from_role

Claude

tml_update_course

Claude

tml_update_demo_training

Claude

tml_update_department

Claude

tml_update_document

Claude

tml_update_exercise

Claude

tml_update_learning_byte

Claude

tml_update_lesson

Claude

tml_update_lesson_question

Claude

tml_update_media

Claude

tml_update_module

Claude

tml_update_module_quiz_question

Claude

tml_update_module_quiz_settings

Claude

tml_update_topic

Claude

tml_update_topic_quiz_question

Claude

tml_update_topic_quiz_settings

Claude

tml_update_user

Claude

App Stats

251

Tools

3

Prompts

ChatGPT, Claude

Platforms

Works with

ChatGPT
Claude

Data refreshed daily