# classifier.dev MCP

Connect classifier.dev to Claude, ChatGPT, Codex, Cursor or any MCP client, step by step.

Use classifier.dev as a tool inside Claude, ChatGPT, Codex, Cursor or any other MCP client. Two stateless Streamable HTTP servers are available for public, keyless use:

https://classifier.dev/mcp         tools: classify_texts, classify_dimensions, classify_multi_label,
                                   count_labels, review_uncertain
https://classifier.dev/mcp/docs    tools: list_docs, read_doc, search_docs,
                                   get_examples

To attribute classification requests to your workspace, use a workspace API key in the Authorization: Bearer header on /mcp. The Default key and named keys work with both the API and MCP. Manage them at /app/keys; client-specific setup is at /app/agents. The keyless examples below use public limits and do not appear in your workspace's activity or usage.

For workspace setup in Claude Code:

claude mcp add --transport http classifier https://classifier.dev/mcp --header "Authorization: Bearer YOUR_API_KEY"

For Codex, set CLASSIFIER_API_KEY securely in the environment, then run:

codex mcp add classifier --url https://classifier.dev/mcp --bearer-token-env-var CLASSIFIER_API_KEY

For Cursor, set CLASSIFIER_API_KEY in the environment inherited by Cursor:

{"mcpServers": {"classifier": {"url": "https://classifier.dev/mcp", "headers": {"Authorization": "Bearer ${env:CLASSIFIER_API_KEY}"}}}}

Hosted OAuth connections to your workspace are not available yet. The ChatGPT and Claude app instructions below connect to the public service.

Server card: https://classifier.dev/.well-known/mcp/server-card.json (also at https://classifier.dev/mcp/server-card; the docs server's at https://classifier.dev/mcp/docs/server-card) Registry: listed in the official MCP registry as dev.classifier/classifier — https://registry.modelcontextprotocol.io/v0/servers?search=dev.classifier

## Claude app and claude desktop

Pro and Max: Customize > Connectors > "+" > Add custom connector. Paste https://classifier.dev/mcp as the remote MCP server URL, leave the OAuth fields empty, click Add. Then in any chat open the "+" menu > Connectors and switch classifier.dev on.

Team and Enterprise: an Owner adds it first under Organization settings > Connectors > Add > Custom > Web, same URL; members then find it under Customize > Connectors and click Connect.

The docs server works the same way with https://classifier.dev/mcp/docs.

## Claude Code

claude mcp add --transport http classifier https://classifier.dev/mcp
claude mcp add --transport http classifier-docs https://classifier.dev/mcp/docs

Or in .mcp.json at the root of a project, so the whole team gets it:

{"mcpServers": {"classifier": {"type": "http", "url": "https://classifier.dev/mcp"}}}

Or as a plugin, which adds both servers and the bulk-classify skill at once:

claude plugin marketplace add mrmps/classifier-dev
claude plugin install classifier@classifier-dev

## ChatGPT

Turn on developer mode: Settings > Security and login > Developer mode. Then Settings > Apps & Connectors (or the "+" in the composer) > Create, name it classifier, URL https://classifier.dev/mcp, authentication "No Authentication", and create. It appears under Drafts; toggle its tools on. In a chat pick Developer mode from the "+" menu and select the app.

Every tool here carries readOnlyHint, so ChatGPT will not ask you to confirm each call. Deep research connectors need search and fetch tools; this is a tool server for chat and developer mode, not a deep-research source.

## Codex

codex mcp add classifier --url https://classifier.dev/mcp

Or as a plugin, with the skill included:

codex plugin marketplace add https://github.com/mrmps/classifier-dev
codex plugin add classifier

Or in ~/.codex/config.toml:

[mcp_servers.classifier]
url = "https://classifier.dev/mcp"

## Cursor, VS Code, windsurf, goose, anything else

Any client that takes a remote MCP URL takes this one. The usual JSON:

{"mcpServers": {"classifier": {"url": "https://classifier.dev/mcp"}}}

Cursor: Settings > MCP > Add new global MCP server, or .cursor/mcp.json. VS Code: .vscode/mcp.json with {"servers": {"classifier": {"type": "http", "url": "https://classifier.dev/mcp"}}}.

## Try it by hand

curl https://classifier.dev/mcp -H 'content-type: application/json' \
  -H 'accept: application/json, text/event-stream' \
  -d '{"jsonrpc": "2.0", "id": 1, "method": "tools/list"}'

curl https://classifier.dev/mcp -H 'content-type: application/json' \
  -H 'accept: application/json, text/event-stream' \
  -d '{
    "jsonrpc": "2.0", "id": 2, "method": "tools/call",
    "params": {
      "name": "classify_texts",
      "arguments": {
        "inputs": ["Win a free iPhone", "Lunch at 1?"],
        "labels": ["spam", "not spam"]
      }
    }
  }'

Or with the official inspector: npx @modelcontextprotocol/inspector --cli https://classifier.dev/mcp --method tools/list

## What the tools do

classify_texts        one label per text, with a calibrated confidence; up to 1,000 texts
classify_dimensions   one decision per named dimension, with per-field confidence
classify_multi_label  every label that applies per text, a score per label
count_labels          just the histogram — how many texts landed on each label
review_uncertain      only the texts the model was unsure about, with the runner-up label

All four are read-only and idempotent (readOnlyHint, idempotentHint) and return both text and structuredContent. Errors from the API come back as a tool result with isError, so the model can read the message and try again; malformed arguments are JSON-RPC -32602 with the problem spelled out.

## Protocol notes

Streamable HTTP per the 2025-11-25 specification, negotiating down to 2025-03-26. Stateless: no Mcp-Session-Id, every POST stands alone, GET answers 405 because there is no server-initiated stream. Batched JSON-RPC arrays are accepted. Same per-IP limits as the REST API; a 429 carries Retry-After. Source: https://github.com/mrmps/classifier-dev/blob/main/src/mcp.ts