Run plagiarism checks from Claude, Cursor or any MCP client
Hand your assistant a batch of submissions and ask what matched. It uploads them to Codequiry, runs the check, waits for it, and comes back with the pairs worth a look and the lines they share.
https://codequiry.com/mcp
Add it as a custom connector and approve the sign-in once. No API key. Setup for your client
- Works with
- Claude.ai
- Claude Desktop
- Claude Code
- Cursor
- VS Code
- Windsurf
- Zed
Set it up
Both ways give the assistant the same 26 tools. Signing in is quicker; running it locally lets it read folders on your disk.
- Give your client the connector URL, as shown below.
- A Codequiry sign-in opens in your browser. Press Allow. No account yet? Start a trial first.
Name: Codequiry
URL: https://codequiry.com/mcp
Press Add, then Connect, and the sign-in opens in a new tab. Custom connectors need a paid Claude plan. Once added on the web it works in the Claude mobile apps too.
Name: Codequiry
URL: https://codequiry.com/mcp
A connector added on claude.ai shows up in Claude Desktop as well, under the same account.
claude mcp add --transport http codequiry https://codequiry.com/mcp
Then type /mcp in Claude Code, pick codequiry, and choose Authenticate. Add --scope user to have it in every project.
{
"mcpServers": {
"codequiry": {
"url": "https://codequiry.com/mcp"
}
}
}
Cursor shows a Needs login badge next to the server in Settings, MCP. Click it and the sign-in opens.
code --add-mcp '{"name":"codequiry","type":"http","url":"https://codequiry.com/mcp"}'
VS Code asks to allow the sign-in the first time the server starts. Or use the Command Palette: MCP: Add Server, then HTTP.
{
"mcpServers": {
"codequiry": {
"serverUrl": "https://codequiry.com/mcp"
}
}
}
Refresh the server list in the Cascade panel afterwards and follow the login prompt.
Files. The signed-in server runs on codequiry.com, so it cannot see your disk. Give it public links instead: a GitHub repository link works as it is, or any link that serves a .zip. To check folders on your disk, run it locally.
Read only. If your client lets you pick scopes, choose read alone. It can then read every result but never start or delete anything. Disconnect any time from API keys.
- Copy your key from the API keys page. No account yet? Start a trial first.
- Swap
your_keybelow for the real one and restart the client. Most of them only read the config on launch. Needs Node 18 or newer.
claude mcp add codequiry --env CODEQUIRY_API_KEY=your_key -- npx -y codequiry-mcp
Add --scope user to have it in every project. Check with claude mcp list.
{
"mcpServers": {
"codequiry": {
"command": "npx",
"args": ["-y", "codequiry-mcp"],
"env": {
"CODEQUIRY_API_KEY": "your_key"
}
}
}
}
Open it from Settings, Developer, Edit Config. Restart Claude Desktop after saving.
{
"mcpServers": {
"codequiry": {
"command": "npx",
"args": ["-y", "codequiry-mcp"],
"env": {
"CODEQUIRY_API_KEY": "your_key"
}
}
}
}
Put the same file at .cursor/mcp.json inside a project to keep it to that project.
code --add-mcp '{"name":"codequiry","command":"npx","args":["-y","codequiry-mcp"],"env":{"CODEQUIRY_API_KEY":"your_key"}}'
Or open the Command Palette, run MCP: Add Server, and pick Command (stdio).
{
"mcpServers": {
"codequiry": {
"command": "npx",
"args": ["-y", "codequiry-mcp"],
"env": {
"CODEQUIRY_API_KEY": "your_key"
}
}
}
}
The Manage MCP servers button in the Cascade panel opens this file for you. Refresh the list after saving.
{
"context_servers": {
"codequiry": {
"command": {
"path": "npx",
"args": ["-y", "codequiry-mcp"],
"env": {
"CODEQUIRY_API_KEY": "your_key"
}
}
}
}
}
Zed calls them context servers. Open settings with zed: open settings from the command palette.
Windows. If the client says it cannot start npx, use "command": "cmd" with "args": ["/c", "npx", "-y", "codequiry-mcp"].
Did it work? Ask the assistant to run codequiry_validate_key. It answers with the account the key belongs to, or says what is wrong.
What happens when you ask
The assistant picks the tools itself. This is the order it usually takes them in.
-
01
Upload
Each submission goes up as one zip, up to 10 MB, all in one check. GitHub repos and other public links on the signed-in server, folders on your disk with the local one.
quick_check -
02
Run
The same engines as the dashboard: student against student, the web and public repositories, our database, and AI detection.
list_test_types -
03
Wait
It checks in at a steady pace and stops when the check finishes, usually within a few minutes. A long check is simply a few waits in a row.
wait_for_check -
04
Read
A score per submission, then the matching lines from both sides, so it can lay the two pieces of code next to each other.
get_overviewview_submissionget_match_counterpart
One check per run. Reading is free.
Starting a check costs one check, the same as starting it from the dashboard. Reading results, listing old checks and pulling up matching lines costs nothing, however often the assistant does it. No tool can spend more than one check per call.
The tools that spend and the tools that delete are marked as such in the protocol, so your client asks you before it runs them.
codequiry_quick_checkCreate, upload and start in one call1 checkcodequiry_start_checkStart a check you built step by step1 checkread scope, or set CODEQUIRY_MCP_READONLY=1 on the local server. Eighteen tools remain and none of them can start or delete anything.All 26 tools
One per API operation, plus one that waits. You will rarely name them; the assistant reads this list and picks.
Run a check
codequiry_quick_check1 checkCreates the check, uploads the zips and starts it, in one call. The one it reaches for most.
codequiry_wait_for_checkWaits for the check to finish without hammering the API.
codequiry_create_checkAn empty check, for uploading in steps or to set a completion webhook.
codequiry_upload_submissionOne zip into an existing check. Up to 10 MB.
codequiry_upload_submissionsUp to 50 zips into an existing check at once.
codequiry_start_check1 checkStarts analysis on a check that already has submissions.
Manage checks
codequiry_list_checksPast checks, newest first, with scores beside each if asked.
codequiry_get_checkOne check with its settings, status and submissions.
codequiry_get_check_statusStatus and progress of one check.
codequiry_update_checkRename a check or change its language.
codequiry_delete_checkdeletesDeletes a check and everything in it. Not on trial accounts.
codequiry_delete_submissiondeletesDeletes one submission from a check. Not on trial accounts.
Read results
codequiry_get_check_summaryThe headline numbers: average, maximum, AI scores, how many are flagged.
codequiry_get_overviewOne score per submission, with a link to the same page on the dashboard.
codequiry_get_resultsMatched files and line ranges for one submission.
codequiry_get_ai_resultsAI-generated-code scores per submission and per file.
codequiry_export_resultsOne row per submission, as JSON or CSV.
codequiry_view_submissionEverything the results page shows for one submission.
codequiry_get_submission_fileThe text of one file inside a submission.
codequiry_get_match_counterpartThe code on the other side of a match, with line ranges on both sides.
codequiry_get_matched_web_sourceThe stored copy of a web page a submission matched.
Account and reference
codequiry_accountThe account behind the connection, including checks remaining.
codequiry_validate_keyConfirms the connection works. First thing to try when setup fails.
codequiry_service_statusEngine health and current queue depth.
codequiry_list_languagesLanguage ids. 999 is auto-detect.
codequiry_list_test_typesEngine ids accepted when creating or starting a check.
No tool matches that. Try a shorter word.
Questions
Something not covered here? Write to us, or read the API docs the server is built on.
What is the Codequiry MCP server?
MCP is an open standard that lets AI assistants call outside tools. This server is ours: connect it by signing in from your assistant, or run it locally with an API key, and the assistant can start a check, wait for it, and read back what matched, without you leaving the chat.
Which AI assistants does it work with?
Any MCP client. The setup above covers Claude.ai, Claude Desktop, Claude Code, Cursor, VS Code, Windsurf and Zed.
Does it use my checks?
Starting a check costs one check, the same as running it from the dashboard. Everything else is free to call. Only the two tools that spend and the two that delete are flagged, so your client asks before those, and the read scope or CODEQUIRY_MCP_READONLY=1 leaves only the eighteen tools that read.
Do I need an API key?
Not if you sign in: add codequiry.com/mcp as a connector and approve it once. The local server, which can read folders on your disk, takes an API key from the API keys page of your dashboard as CODEQUIRY_API_KEY.
Can it show me the matching code?
Yes. It fetches both sides of any match with line ranges, so the assistant can put the two pieces of code next to each other in the chat.
How big can a submission be?
10 MB per zip, one zip per submission, up to 50 per upload. The size is checked before anything is sent, so you get a clear message instead of a request that fails halfway.
The tools fail. What now?
Ask it to run codequiry_validate_key. Signed in, the usual cause is a lapsed connection: disconnect and connect again. Locally, it is a wrong or missing key; fix it and restart the client.
Where does my code go?
To Codequiry, the same as uploading through the dashboard. The server itself keeps nothing. See the privacy policy.
Does this replace the API or the CLI?
No, it sits on top of the same API. For scripts and anything on a schedule, use the API or the CLI. Use this when you would rather just ask.
Is it open source?
The local server is, under MIT. It is on npm as codequiry-mcp.
Paste one URL and ask it to check something.
Sign in from your assistant, or run it locally with a key. Either way the first check takes about a minute to set up.
https://codequiry.com/mcp