# Classmarker — MCP server on mcp.ai > Connect your Classmarker account and use 28 tools for education straight from your AI agent. Connect with your own API key. ClassMarker is a professional, flexible, and easy-to-use online quiz maker for business and education, offering customizable exams, instant grading, and detailed reporting. By: mcp.ai · official Page: https://mcp.ai/classmarker ## Connect (MCP protocol) Remote MCP endpoint (HTTP, streamable): https://api.mcp.ai/p_classmarker?ms=1787293740000 Add it as a custom/remote MCP connector, then authenticate when prompted. ## REST API (no MCP client required) Every tool is also a REST endpoint, authed with a workspace API key. Discover: GET https://api.mcp.ai/api/classmarker/_endpoints # public; lists every endpoint Call: POST https://api.mcp.ai/api/classmarker/ Authorization: Bearer sk_live_… # create one at https://mcp.ai/settings/api-keys Content-Type: application/json Body: { …args } → { "ok": true, "tool": "", "result": { … } } ## Developer docs How to use (MCP or REST), markdown: https://mcp.ai/classmarker/skill.md Postman collection (v2.1): https://mcp.ai/classmarker/postman.json ## Tools - classmarker_create_access_list_item(codes: string[], access_list_id: integer) — Tool to add one or more access codes to an access list. Use after obtaining a valid access_list_id to grant exam access. - classmarker_create_category(category_name: string, parent_category_id: integer) — Tool to create a new question category. Use after confirming the parent category ID. - classmarker_create_group(name: string, description?: string) — Tool to create a new group. Use when you need to organize users into a specific group after planning your user structure. - classmarker_create_question(points: integer, options?: object, question: string, category_id: integer, grade_style?: string, question_type: string, random_answers: boolean, correct_options?: string[], correct_feedback?: string, incorrect_feedback?: string) — Tool to create a new question with specified text, type, and category in ClassMarker. Supports multiplechoice, multipleresponse, truefalse, and essay question types. - classmarker_create_user(email: string, is_admin?: boolean, password: string, group_ids?: integer[], last_name: string, first_name: string) — Tool to create a new user in ClassMarker. Use after gathering user details to provision accounts. Provide user info and optional group assignments. Returns the complete API response. - classmarker_delete_access_list_item(codes: string[], access_list_id: integer) — Removes one or more access codes from a ClassMarker access list. Access lists are used to control exam access by requiring users to provide unique identifiers (e.g., email addresses, employee IDs, stu - classmarker_delete_api_key(api_key_id: integer) — Tool to delete an API key by its ID. Use when you need to revoke an API key immediately. - classmarker_delete_group(group_id: string) — Tool to delete a group by its ID. Use when you need to remove a group from ClassMarker. - classmarker_delete_test_link(link_id: integer, test_id: integer) — Deletes a specific link assignment from a test/exam in ClassMarker. Links are unique URLs that provide access to tests. This action is idempotent - deleting a non-existent link returns success. Use th - classmarker_delete_user(user_id: string) — Tool to delete a specific user by ID. Use when you need to remove a user from ClassMarker after verifying the user's identity. - classmarker_delete_webhook(webhook_id: string) — Deletes a webhook listener from your ClassMarker account. This action removes a webhook configuration that was previously set up to receive real-time exam results. The ClassMarker API is idempotent - - classmarker_get_group_details(group_id: integer) — Retrieve detailed information about a specific group by ID. Returns group name and assigned tests. Note: This fetches all accessible groups and filters for the specified group_id, as ClassMarker API d - classmarker_get_initial_finished_after_timestamp() — Compute the initial finishedAfterTimestamp for paginating ClassMarker test results. Use this action when you need to retrieve recent test results for the first time and don't have a previous 'next_fin - classmarker_get_question(question_id: integer) — Tool to retrieve a specific question by its ID. Use when you need detailed information of a question after confirming the question_id. - classmarker_get_recent_results_group_exam(limit?: integer, test_id: integer, group_id: integer, finishedAfterTimestamp?: integer) — Tool to fetch recent test results for a specific group and exam. Use after determining a UNIX timestamp to retrieve only results finished after that time for the group and exam. - classmarker_get_recent_results_link_exam(limit?: integer, link_id: integer, test_id: integer, finishedAfterTimestamp?: integer) — Fetch recent exam results for a specific link and test combination. Use CLASSMARKER_GET_ALL_GROUPS_LINKS_EXAMS first to obtain valid link_id and test_id values. This endpoint returns paginated results - classmarker_get_test_details(test_id: integer) — Retrieves detailed information for a specific test (exam) including its name and all assignment contexts. Returns a list of groups and/or links where the test is assigned, with their IDs, names, and U - classmarker_get_user_details(user_id: integer) — Tool to retrieve detailed information about a specific user. Use after you have the user's ID and need the full user profile. - classmarker_list_categories() — Retrieves all question categories organized in a hierarchical structure. Returns parent categories with their nested sub-categories. Use this to browse available categories before creating questions o - classmarker_list_certificates() — Tool to list all certificates. Use when you need to retrieve all certificates available in the account. - classmarker_list_questions(page?: integer) — Retrieve a paginated list of questions from your question bank. Returns up to 200 questions per page. Use the optional 'page' parameter to navigate through multiple pages. Each question includes type, - classmarker_list_recent_results_for_groups(limit?: integer, finishedAfterTimestamp?: integer) — Retrieve recent exam results for all groups in your ClassMarker account. Returns results from the last 2 weeks by default, or from a specified timestamp (must be within 3 months). Use this to fetch us - classmarker_list_recent_results_for_links(limit?: integer, finishedAfterTimestamp?: integer) — Retrieves recent test results from ALL links accessible to your API key. Returns results completed after a specified timestamp (defaults to 2 weeks ago). Supports pagination for large result sets (max - classmarker_list_users() — Tool to list all users. Use when you need to retrieve every user in your account after confirming authentication. - classmarker_list_webhooks() — Tool to retrieve all configured webhooks. Use when you need to programmatically list your webhook configurations. - classmarker_put_category(category_id: integer, category_name: string, parent_category_id: integer) — Tool to update an existing sub-category. Use when you need to rename or move a sub-category after confirming its IDs. - classmarker_put_parent_category(verify_only?: boolean, parent_category_id: integer, parent_category_name: string) — Tool to update an existing parent category. Use after confirming the parent category ID. - classmarker_put_question(points: integer, options?: object, question: string, category_id: integer, grade_style?: string, question_id: integer, verify_only?: boolean, question_type: string, random_answers?: boolean, correct_options?: string[], correct_feedback?: string, incorrect_feedback?: string) — Updates an existing question in the ClassMarker question bank. IMPORTANT CONSTRAINTS: - Cannot change the question_type of an existing question (must match original) - random_answers is only valid for ## Example prompts - "What can I do in Classmarker?" - "Show me a summary of my Classmarker account" ## Links Docs: https://mcp.ai/docs/mcps/classmarker Website: https://mcp.ai/mcps/classmarker