# 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_KEYFor 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/docsOr 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/mcpOr as a plugin, with the skill included:
codex plugin marketplace add https://github.com/mrmps/classifier-dev
codex plugin add classifierOr 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