{"name":"dev.classifier/classifier","slug":"classifier","title":"classifier.dev","description":"Sort up to 1,000 texts into your own labels with a calibrated confidence per answer. No API key.","url":"https://mcp.market/server/classifier","rating":null,"grade":"A","score":89,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":38,"stars":34,"forks":2,"downloads_week":null,"last_push_at":"2026-09-19T09:50:22.000Z","license":"MIT"},"claimed":false,"transport":"remote","callable_via_gateway":true,"default_price_micros":0,"repository":"https://github.com/mrmps/classifier-dev","website":"https://classifier.dev","version":"1.0.0","remotes":[{"type":"streamable-http","url":"https://classifier.dev/mcp"}],"packages":[],"tools":[{"name":"classify_multi_label","description":"Like classify_texts, but each text gets every label that applies (possibly none), with an independent 0-1 score per label. Use this for tagging — topics of an article, components touched by a ticket — where one answer is not enough. Set max_labels to cap how many come back per text. Labels scoring >= 0.7 are kept.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"inputs":{"type":"array","items":{"type":"string"},"minItems":1,"maxItems":1000,"description":"1 to 1,000 texts to classify. Results come back in the same order."},"labels":{"type":"array","items":{"type":"string"},"minItems":2,"maxItems":100,"description":"2 to 100 category names. Descriptive names classify better: \"urgent bug\" beats \"p0\". Add a label like \"none of these\" when none-of-the-above is a real outcome."},"instructions":{"type":"string","description":"Optional extra criteria, e.g. \"judge only the service, ignore the food\"."},"max_labels":{"type":"integer","minimum":1,"maximum":100,"description":"At most this many labels per text, most likely first."}},"required":["inputs","labels"],"additionalProperties":false}},{"name":"classify_texts","description":"Sort up to 1,000 texts into exactly one of your own labels each, with a calibrated confidence per answer. Use this when you have many items to triage, route, filter or bucket and do not want to read them all: search results before opening them, tickets, log lines, changed files, feedback. Do not use it for fewer than about five items you can already see — just decide. Confidence is calibrated (answers >= 0.9 are right ~82-92% of the time; < 0.5 about 30-60%), so act on the sure ones and look at the rest yourself, or pass tier \"smart\" to have the unsure ones re-asked of a reasoning model.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"inputs":{"type":"array","items":{"type":"string"},"minItems":1,"maxItems":1000,"description":"1 to 1,000 texts to classify. Results come back in the same order."},"labels":{"type":"array","items":{"type":"string"},"minItems":2,"maxItems":100,"description":"2 to 100 category names. Descriptive names classify better: \"urgent bug\" beats \"p0\". Add a label like \"none of these\" when none-of-the-above is a real outcome."},"instructions":{"type":"string","description":"Optional extra criteria, e.g. \"judge only the service, ignore the food\"."},"tier":{"type":"string","enum":["fast","smart"],"description":"fast (default, ~1s per 1,000) or smart, which re-asks answers under 0.7 confidence of a reasoning model (slower, single-label only)."}},"required":["inputs","labels"],"additionalProperties":false}},{"name":"count_labels","description":"Classify up to 1,000 texts and return only a histogram: how many landed on each label, and how many the model was unsure about. Use this when you want the shape of a corpus — what share of feedback is bugs vs praise, how many search results are relevant — without pulling a thousand individual answers into context. Use classify_texts when you need the answer per item.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"inputs":{"type":"array","items":{"type":"string"},"minItems":1,"maxItems":1000,"description":"1 to 1,000 texts to classify. Results come back in the same order."},"labels":{"type":"array","items":{"type":"string"},"minItems":2,"maxItems":100,"description":"2 to 100 category names. Descriptive names classify better: \"urgent bug\" beats \"p0\". Add a label like \"none of these\" when none-of-the-above is a real outcome."},"instructions":{"type":"string","description":"Optional extra criteria, e.g. \"judge only the service, ignore the food\"."},"unsure_below":{"type":"number","minimum":0,"maximum":1,"default":0.7,"description":"Answers with confidence under this count as unsure."}},"required":["inputs","labels"],"additionalProperties":false}},{"name":"review_uncertain","description":"Classify up to 1,000 texts and return only the ones whose confidence fell under a threshold (default 0.7), each with its two most likely labels. Use this after a bulk classification to decide which items deserve your own attention: the confident answers can be trusted, these are the ones to read. Returns the index of each item so you can map back to your list.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"inputs":{"type":"array","items":{"type":"string"},"minItems":1,"maxItems":1000,"description":"1 to 1,000 texts to classify. Results come back in the same order."},"labels":{"type":"array","items":{"type":"string"},"minItems":2,"maxItems":100,"description":"2 to 100 category names. Descriptive names classify better: \"urgent bug\" beats \"p0\". Add a label like \"none of these\" when none-of-the-above is a real outcome."},"instructions":{"type":"string","description":"Optional extra criteria, e.g. \"judge only the service, ignore the food\"."},"below":{"type":"number","minimum":0,"maximum":1,"default":0.7,"description":"Return items with confidence under this."}},"required":["inputs","labels"],"additionalProperties":false}}],"scan":{"score":89,"grade":"A","scanned_at":"2026-09-19T09:52:37.827Z","report":{"scannerVersion":"0.1.3","scannedAt":"2026-09-19T09:52:37.765Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 162ms"]},"poisoning":{"score":15,"max":15,"notes":["4 tool descriptions checked"]},"auth":{"score":10,"max":15,"notes":["open endpoint, read-only tools"]},"maintenance":{"score":15,"max":15,"notes":["last push 0 days ago"]},"identity":{"score":7,"max":10,"notes":["namespace and repository owner differ","GitHub account older than a year","website matches verified namespace"]}},"findings":[],"inputs":{"probes":[{"url":"https://classifier.dev/mcp","reachable":true,"authRequired":false,"latencyMs":162,"serverInfo":{"name":"classifier.dev","version":"1.0.0"}}],"packages":[],"repo":{"found":true,"owner":"mrmps","repo":"classifier-dev","archived":false,"pushedAt":"2026-09-19T09:50:22Z","stars":34,"forks":2,"openIssues":0,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/41216139?v=4","ownerCreatedAt":"2018-07-13T23:51:19Z","license":"MIT"},"icon":{"url":"https://classifier.dev/favicon.svg","source":"site"},"presence":{"stars":34,"forks":2,"downloadsWeek":null,"license":"MIT","lastPushAt":"2026-09-19T09:50:22.000Z","score":38}}}},"grade_history":[],"reviews":[]}