New Breakthrough Catch AI-written code before you grade it. Our most accurate model yet. It finds 90% of AI and GPT code with only 1.3% false flags. 90% caught, 1.3% false flags. Start checking Start checking
New: MCP integration. Run plagiarism scans from Claude, Cursor or any AI assistant. Run scans from Claude or Cursor. Set it up
Remote server is live. Nothing to install.

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.

Connector URL 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
What a session looks like. The students are made up.

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.

  1. Give your client the connector URL, as shown below.
  2. A Codequiry sign-in opens in your browser. Press Allow. No account yet? Start a trial first.
Settings, Connectors, Add custom connector
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.

Settings, Connectors, Add custom connector
Name:  Codequiry
URL:   https://codequiry.com/mcp

A connector added on claude.ai shows up in Claude Desktop as well, under the same account.

Terminal
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.

~/.cursor/mcp.json
{
  "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.

Terminal
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.

~/.codeium/windsurf/mcp_config.json
{
  "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.

  1. Copy your key from the API keys page. No account yet? Start a trial first.
  2. Swap your_key below for the real one and restart the client. Most of them only read the config on launch. Needs Node 18 or newer.
Terminal
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.

claude_desktop_config.json
{
  "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.

~/.cursor/mcp.json
{
  "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.

Terminal
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).

~/.codeium/windsurf/mcp_config.json
{
  "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.

settings.json
{
  "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.

  1. 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
  2. 02

    Run

    The same engines as the dashboard: student against student, the web and public repositories, our database, and AI detection.

    list_test_types
  3. 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
  4. 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.

ToolCost
codequiry_quick_checkCreate, upload and start in one call1 check
codequiry_start_checkStart a check you built step by step1 check
Delete a check or a submissionAsks first, cannot be undone, refunds nothingfree
The other 22 toolsResults, matches, files, history, accountfree
Rather not rely on a prompt? Sign in with the read 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 check

Creates the check, uploads the zips and starts it, in one call. The one it reaches for most.

codequiry_wait_for_check

Waits for the check to finish without hammering the API.

codequiry_create_check

An empty check, for uploading in steps or to set a completion webhook.

codequiry_upload_submission

One zip into an existing check. Up to 10 MB.

codequiry_upload_submissions

Up to 50 zips into an existing check at once.

codequiry_start_check1 check

Starts analysis on a check that already has submissions.

Manage checks

codequiry_list_checks

Past checks, newest first, with scores beside each if asked.

codequiry_get_check

One check with its settings, status and submissions.

codequiry_get_check_status

Status and progress of one check.

codequiry_update_check

Rename a check or change its language.

codequiry_delete_checkdeletes

Deletes a check and everything in it. Not on trial accounts.

codequiry_delete_submissiondeletes

Deletes one submission from a check. Not on trial accounts.

Read results

codequiry_get_check_summary

The headline numbers: average, maximum, AI scores, how many are flagged.

codequiry_get_overview

One score per submission, with a link to the same page on the dashboard.

codequiry_get_results

Matched files and line ranges for one submission.

codequiry_get_ai_results

AI-generated-code scores per submission and per file.

codequiry_export_results

One row per submission, as JSON or CSV.

codequiry_view_submission

Everything the results page shows for one submission.

codequiry_get_submission_file

The text of one file inside a submission.

codequiry_get_match_counterpart

The code on the other side of a match, with line ranges on both sides.

codequiry_get_matched_web_source

The stored copy of a web page a submission matched.

Account and reference

codequiry_account

The account behind the connection, including checks remaining.

codequiry_validate_key

Confirms the connection works. First thing to try when setup fails.

codequiry_service_status

Engine health and current queue depth.

codequiry_list_languages

Language ids. 999 is auto-detect.

codequiry_list_test_types

Engine 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.

Connector URL https://codequiry.com/mcp