Skip to content

MCP server

The MCP server lets an AI assistant such as Claude Desktop, Claude Code or Cursor check text for you. Paste the text into the chat and ask for a check, without opening a browser tab.

Install

The server runs over stdio and needs Node 18 or later. It is not on npm yet, so it runs from a local copy of the code, and every snippet below points at the built file. The snippets will change to a package name once it is published. Build it once, then point any client at it. The last line starts the server in your terminal and waits for input, which is what a client does; press Ctrl-C to stop it.

cd /path/to/academic/mcp
npm install
npm run build
node /path/to/academic/mcp/dist/index.js

Claude Desktop

Add this to your Claude Desktop configuration file, then restart the app.

{
  "mcpServers": {
    "human": {
      "command": "node",
      "args": ["/path/to/academic/mcp/dist/index.js"],
      "env": {
        "HUMAN_API_KEY": "your-key-here"
      }
    }
  }
}

Claude Code

Add the server with one command, from any directory.

claude mcp add human --env HUMAN_API_KEY=your-key-here -- node /path/to/academic/mcp/dist/index.js

Cursor

Add this to .cursor/mcp.json in your project, or to Cursor's global MCP settings.

{
  "mcpServers": {
    "human": {
      "command": "node",
      "args": ["/path/to/academic/mcp/dist/index.js"],
      "env": {
        "HUMAN_API_KEY": "your-key-here"
      }
    }
  }
}

An API key

The server needs HUMAN_API_KEY, which you create from the dashboard. API access comes with the Education plan today, and with paid plans once billing starts. A key lasts 90 days and cannot be revoked before then. If one leaks, create a new one and stop using the old one.

The two tools

detect_ai_text takes the text to check and an optional sensitivity. Leave sensitivity out and it uses standard, which flags a paper when more than 6% of it reads as AI-written. accusation-safe flags above 15% and misses more AI-edited text. sensitive flags above 2% and flagged 2 of 1,928 human-written documents in testing.

The reply gives the verdict (Human, Mixed, AI or Unknown), the word count, the name of the detector run, and each sentence labelled AI, shortened to its first twelve words. The full response also comes back as structured data, for a client that wants every field.

detector_status takes no input. It reports whether the detector can be reached and which run is live.

Under 50 words

Text under 50 words is not scored. detect_ai_text says so and does not call the detector. From 50 to 149 words, a reading is weak.

When a check fails

The server calls one endpoint. If a request fails for any reason, such as a refused key or a detector that cannot be reached, the tool answers "Not scored" and says why. It never uses a different scorer and never retries. To try again, ask again.

What a verdict means

A flag from our detector is a reason to look closer. It is not proof that anyone cheated. The detector reads English academic and student writing only.