ClassMarker MCP server
29 operations0 webhooks
Online exam platform. Manage tests, users, groups, question banks, categories, and access lists, and read results, certificates, and webhooks.
Try ClassMarker with your agent
Connect ClassMarker, then paste this into Claude, ChatGPT or Cursor. For ideas from other apps, see the use cases.
Using Corsair, show me what you can do in ClassMarker on my account, then run one read-only example and show me the result.
ClassMarker tools and triggers
Tools are what your agent can do in ClassMarker through Corsair's MCP server. Triggers are the ClassMarker events a routine can start from.
Categories
- CreateWrite
Create a category under a parent category.
categories.create
- ListRead-only
List parent categories and sub-categories.
categories.list
- UpdateWrite
Update a category and optionally re-parent it.
categories.update
- Update ParentWrite
Update a parent category in the question bank.
categories.updateParent
Questions
- CreateWrite
Create a new question in the question bank.
questions.create
- GetRead-only
Get one question from the question bank.
questions.get
- ListRead-only
List question-bank questions (200 per page).
questions.list
- UpdateWrite
Update an existing question in the question bank.
questions.update
Recent Results
- For All GroupsRead-only
Fetch recent results across all groups with timestamp pagination.
recentResults.forAllGroups
- For All LinksRead-only
Fetch recent results across all links with timestamp pagination.
recentResults.forAllLinks
- For Group ExamRead-only
Fetch recent results for one group/test pair.
recentResults.forGroupExam
- For Link ExamRead-only
Fetch recent results for one link/test pair.
recentResults.forLinkExam
Users
- CreateWrite
Create a new ClassMarker user.
users.create
- DeleteDestructive
Delete an existing ClassMarker user.
users.delete
- GetRead-only
Get details for one ClassMarker user.
users.get
- ListRead-only
List users in your ClassMarker account.
users.list
Groups
- CreateWrite
Create a new ClassMarker group.
groups.create
- DeleteDestructive
Delete a ClassMarker group.
groups.delete
- GetRead-only
Get details for a specific ClassMarker group.
groups.get
Tests
- Delete LinkDestructive
Delete one link assignment from a test.
tests.deleteLink
- GetRead-only
Get details for a specific ClassMarker test.
tests.get
- ListRead-only
List all tests available to the API key.
tests.list
Access Lists
- Add CodesWrite
Add access-list codes for a link exam.
accessLists.addCodes
- Delete CodesDestructive
Delete access-list codes for a link exam.
accessLists.deleteCodes
Webhooks
- DeleteDestructive
Delete a ClassMarker webhook.
webhooks.delete
- ListRead-only
List configured ClassMarker webhooks.
webhooks.list
Api Keys
- DeleteDestructive
Delete a ClassMarker API key by id.
apiKeys.delete
Certificates
- ListRead-only
List all ClassMarker certificates.
certificates.list
Utility
- Get Initial Finished After TimestampRead-only
Compute the initial finishedAfterTimestamp cursor for recent-results pagination.
utility.getInitialFinishedAfterTimestamp
Connect ClassMarker to Claude, ChatGPT or Cursor
- 1
Connect ClassMarker in Corsair
Add your ClassMarker API key once in Corsair. Corsair stores the credential encrypted and makes the ClassMarker API calls for your agent, so it never goes into a prompt or a config file. Connect ClassMarker
If your link lets the agent add apps, you can skip this: it gives you a sign-in link the first time it needs ClassMarker. On a ChatGPT personal plan, connect ClassMarker here first.
- 2
Add Corsair's MCP server to your agent
Every client uses the same address:
https://mcp.corsair.dev/mcpOpen Customize → Connectors → Add custom connector, paste the address, then select Connect.Add a custom MCP server with the address and choose OAuth. Personal plans get read tools only.Add to CursorOr add this to~/.cursor/mcp.json. Cursor opens Corsair to sign in the first time it connects.{ "mcpServers": { "corsair": { "url": "https://mcp.corsair.dev/mcp" } } }Run this, then run/mcpin Claude Code to sign in.claude mcp add --transport http corsair https://mcp.corsair.dev/mcpCodex, Gemini CLI, VS Code, Zed and other clients with OAuth sign-in work the same way. Clients without it, such as GitHub Copilot's coding agent, use a link's own address and an API key. Setup for every client
- 3
Sign in and choose what needs your approval
Your client opens Corsair to sign in. Pick a link: the apps your agent can use and a mode that decides what it may do without asking. In the default Cautious mode, ClassMarker's read and write operations run right away and its 6 destructive operations wait for your approval. Strict mode asks before every write and refuses destructive operations, and Read mode allows reads only.
FAQ
Install corsair and @corsair-dev/classmarker, add the ClassMarker plugin, and connect with an API key. Then call methods like corsair.classmarker.api.accessLists.addCodes() from your app. Corsair syncs data per tenant.
Yes. ClassMarker requires an API key from your ClassMarker account or developer dashboard. Create credentials with access that matches what you automate, then paste them into Corsair or connect through managed auth in Hub.
Yes. One Corsair client can hit ClassMarker, GitHub, Notion, Stripe, and the rest. Trigger ClassMarker from a webhook, push updates to Slack, or chain actions across plugins. Same tenant context across integrations, plain TypeScript.
Teams use Corsair for online exam platform. manage tests, users, groups, question banks, categories, and access lists, and read results, certificates, and webhooks. Common builds include sync jobs, admin tooling, and agents that call ClassMarker APIs from your backend. Local DB entities let you query synced ClassMarker records without hitting the API on every read.
The SDK is open source. Self-host and you pay Corsair nothing for the integration layer. Hub bills for hosted auth and execution, not per ClassMarker API call. Hub has a generous free tier. For hobby projects you can probably run the whole thing on free. Paid plans start to matter with more tenants or heavier traffic.
We maintain @corsair-dev/classmarker in the open repo. When ClassMarker ships API changes, upgrade the package. Your call sites stay typed. You should not need to rewrite the integration layer each time.
No. Corsair does not read your ClassMarker data or hold individual access credentials. Credentials stay in your database. API calls run on your instance. We do not store ClassMarker data on your behalf.
Yes. Add https://mcp.corsair.dev/mcp as a custom connector or MCP server in Claude, ChatGPT, Cursor, VS Code, Claude Code, Codex or any client that supports remote MCP servers with OAuth sign-in, then sign in to Corsair. On ChatGPT personal plans, custom servers currently get read tools only.
Yes. Put ClassMarker on a link in Strict mode and every write waits for your approval, while destructive actions are refused. The default Cautious mode asks only before the 6 destructive ClassMarker operations. You can change a link's mode at hub.corsair.dev/me.