classifier.dev
Server Details
Sort up to 1,000 texts into your own labels with a calibrated confidence per answer. No API key.
- Status
- Healthy
- Uptime
- 100.0% over 23 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- mrmps/classifier-dev
- GitHub Stars
- 423
TDQS
Scored across 5 tools
Four of the five tools (classify_texts, classify_multi_label, classify_dimensions, count_labels) all classify up to 1,000 texts, so the boundaries are genuinely subtle, but the descriptions give explicit 'use this when' guidance distinguishing single-label, multi-label, multi-dimension, and histogram output shapes. review_uncertain is clearly distinct as a follow-up filter. Only minor confusion is possible between classify_texts and classify_dimensions.
All names are snake_case and follow a verb_noun pattern (classify_texts, count_labels, review_uncertain). The repeated classify_ prefix with slightly inconsistent noun types (texts vs multi_label vs dimensions) is a minor deviation but overall readable and predictable.
Five tools is well-scoped for a text classification service: three classification modes, an aggregation view, and a review step. Each tool earns its place with no redundancy in count.
The surface covers the core classification lifecycle: single-label, multi-label, multi-dimension, aggregate counts, and uncertainty review, which is strong coverage. Minor gaps include no job/batch status handling or model listing, but agents can work around these.
Available Tools
5 toolsclassify_dimensionsClassify several dimensions per textAInspect
Classify each text by several named dimensions, such as team, urgency and kind, in one request. Returns a label, confidence, scores and model for each field. At most 1,000 item × dimension decisions; every field counts toward the quota. Use per-dimension instructions to define ambiguous categories.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Scrape one public URL instead of inputs/items. Requires funded workspace access. Context.dev costs $0.0022 per billed attempt plus classification; long articles need Fast. Errors disclose retained charges. No automatic scrape retries. | |
| tier | No | fast (default) or smart, which re-asks answers under 0.7 confidence of a reasoning model (slower, single-label only). Independent of the Laya processing lane. | |
| items | No | 1 to 1,000 texts to classify. Results come back in the same order. | |
| model | No | ||
| include | No | With url: return article.markdown and/or article.html at no extra scrape cost. Omit for compact output. | |
| dimensions | Yes | Named dimensions. Each is a label array or {labels, instructions}. At most 1,000 item × dimension decisions; definitions at most 16,000 characters combined. | |
| processing | No | Optional. Implies Laya if model is omitted; has no effect with explicit Jev. Omit for automatic fast/bulk selection based on item × dimension decisions. | |
| share_data | No | Synchronous classification request text, labels, instructions and model results are retained for model training and operator review in private Cloudflare storage by default. Shared requests receive double per-minute and daily classification quotas. Set share_data: false or X-Classifier-Share-Data: false to opt out and use standard limits. Share only data you have permission to contribute; do not include confidential or personal information. Redaction is best effort. Billing, spending caps and input-size limits still apply. | |
| instructions | No | Optional extra criteria, e.g. "judge only the service, ignore the food". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations (readOnly=false, openWorld=true, idempotent=false, destructive=false) cover the safety profile, and the description adds real value beyond them: the per-field return shape (label, confidence, scores, model) and the hard quota that every field counts toward. It does not cover tier cost/retry behavior, but the schema's own parameter descriptions carry those details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three front-loaded sentences: purpose, return shape, then quota and the instructions tip. No filler, though the quota constraint is somewhat wedged between the return description and the guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description legitimately compensates by naming the returned fields (label, confidence, scores, model) and the batch quota. With 89% param coverage and annotations present, the remaining gap (model/tier tradeoffs) is handled by the schema itself.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 89%, so the schema already documents url, tier, items, include, share_data, etc. The description only reinforces the dimensions concept ('use per-dimension instructions'), adding marginal meaning beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (classify) and resource (each text across several named dimensions) and gives concrete examples (team, urgency, kind). It implies the multi-dimension batching that separates it from single-label siblings, though it never explicitly names classify_multi_label or classify_texts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Use per-dimension instructions to define ambiguous categories' gives one concrete usage tip, and the quota rule ('at most 1,000 item × dimension decisions') constrains sizing. However there is no explicit when-to-use guidance or the conditions under which a sibling such as classify_multi_label should be preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
classify_multi_labelTag texts with every label that appliesAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Scrape one public URL instead of inputs/items. Requires funded workspace access. Context.dev costs $0.0022 per billed attempt plus classification; long articles need Fast. Errors disclose retained charges. No automatic scrape retries. | |
| model | No | ||
| inputs | No | 1 to 1,000 texts to classify. Results come back in the same order. | |
| labels | Yes | 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. | |
| include | No | With url: return article.markdown and/or article.html at no extra scrape cost. Omit for compact output. | |
| max_labels | No | At most this many labels per text, most likely first. | |
| processing | No | Optional. Implies Laya if model is omitted; has no effect with explicit Jev. Omit to select fast for up to four labels on one text, or bulk for larger work automatically. | |
| share_data | No | Synchronous classification request text, labels, instructions and model results are retained for model training and operator review in private Cloudflare storage by default. Shared requests receive double per-minute and daily classification quotas. Set share_data: false or X-Classifier-Share-Data: false to opt out and use standard limits. Share only data you have permission to contribute; do not include confidential or personal information. Redaction is best effort. Billing, spending caps and input-size limits still apply. | |
| instructions | No | Optional extra criteria, e.g. "judge only the service, ignore the food". |
Output Schema
| Name | Required | Description |
|---|---|---|
| usage | No | |
| results | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover the safety profile (readOnlyHint=false, destructiveHint=false, openWorldHint=true), and the description adds real behavioral detail beyond them: a 0.7 score cutoff, the possibility of zero labels, and max_labels capping the returned set. It doesn't discuss cost, quotas, or the share_data retention default, but those live in the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four tight sentences with the contrast against classify_texts front-loaded and the threshold rule last. No filler, though the opening 'Like classify_texts, but' requires the reader to know the sibling.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need not be explained, and annotations carry the safety profile. For a 9-parameter tool with 89% coverage, the description supplies the scoring/threshold semantics that matter most, leaving only cost and quota behavior to the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 89%, so the baseline is 3, but the description adds meaning the schema lacks: the >= 0.7 keep threshold and the independent-scoring model that governs how labels are returned. max_labels is described as a cap on returned labels, which slightly reframes the schema's 'most likely first' wording.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a direct contrast against the sibling classify_texts and states the distinguishing behavior: every applicable label per text, each with an independent 0-1 score. An agent can tell this apart from classify_texts and classify_dimensions without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete when-to-use scenarios (topics of an article, components touched by a ticket) and the selecting condition ('where one answer is not enough'), with classify_texts named as the alternative. It stops short of explicitly stating when to prefer classify_texts instead, so the routing is implied rather than spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
classify_textsClassify texts into one label eachAInspect
Sort up to 1,000 texts into exactly one of your own labels each, with 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. For default Jev, confidence is calibrated (answers >= 0.9 are right ~82-92% of the time; < 0.5 about 30-60%); these measurements do not apply to experimental Laya. 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.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Scrape one public URL instead of inputs/items. Requires funded workspace access. Context.dev costs $0.0022 per billed attempt plus classification; long articles need Fast. Errors disclose retained charges. No automatic scrape retries. | |
| tier | No | fast (default) or smart, which re-asks answers under 0.7 confidence of a reasoning model (slower, single-label only). Independent of the Laya processing lane. | |
| model | No | Jev is default. Default/explicit jev inputs over 32,000 characters use paid Fast-only long context: up to 250,000 original cl100k_base context tokens total, 20 documents, 32 decisions and a 1 MB body. Requires paid workspace balance or active paid subscription, not signup credit. $0.084/M original context tokens counted once across inputs, independent of dimensions. Final Jev uses selected evidence; eligible chunks may be omitted, disclosed in usage.long_context. No evidence returns 422 long_context_no_evidence without charge. Explicit 'chunklaya' retains legacy opt-in (4,000,000 characters/input, 20 inputs, subject to body limit). 'laya' (512-token context) and 'kev' (8K context) remain experimental alternatives. | |
| inputs | No | 1 to 1,000 texts to classify. Results come back in the same order. | |
| labels | Yes | 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. | |
| include | No | With url: return article.markdown and/or article.html at no extra scrape cost. Omit for compact output. | |
| processing | No | Optional. Implies Laya if model is omitted; has no effect with explicit Jev. With Laya, omit to select fast for one decision or bulk for batches automatically. Explicit fast accepts one decision. Shared capacity limits can return 429. | |
| share_data | No | Synchronous classification request text, labels, instructions and model results are retained for model training and operator review in private Cloudflare storage by default. Shared requests receive double per-minute and daily classification quotas. Set share_data: false or X-Classifier-Share-Data: false to opt out and use standard limits. Share only data you have permission to contribute; do not include confidential or personal information. Redaction is best effort. Billing, spending caps and input-size limits still apply. | |
| instructions | No | Optional extra criteria, e.g. "judge only the service, ignore the food". |
Output Schema
| Name | Required | Description |
|---|---|---|
| tier | No | |
| model | No | |
| usage | No | |
| results | Yes | One per input, in input order. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds substantial behavior beyond the annotations: calibrated confidence bands for the default model (>=0.9 right ~82-92%, <0.5 about 30-60%), the caveat that these do not apply to Laya, and the 'smart' tier re-asking low-confidence answers. Annotations only say openWorld/not-idempotent/not-destructive, so the calibration and routing guidance is genuinely new information.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose and scope are front-loaded in the first clause, and most sentences carry load-bearing content. The final sentence is a long run-on beginning with lowercase 'so' and mixes calibration, action advice, and tier behavior, which slightly hurts readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 9-parameter, single-label classifier with an output schema, the description covers the decision-relevant essentials: batching limits, confidence interpretation, tier/model implications, and the share_data training caveat. Return values are already covered by the output schema, so nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3, but the description adds actionable meaning: it explains what to do with the confidence values ('act on the sure ones... or pass tier "smart"'), which complements rather than repeats the schema's per-parameter text.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (sort/classify), the resource (texts), and the exact cardinality constraint: up to 1,000 texts into exactly one label each with confidence. The 'exactly one' phrasing implicitly distinguishes it from the multi-label and dimensions siblings, so an agent can select it without consulting them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete use cases (triage, route, filter, bucket; search results, tickets, log lines, changed files, feedback) and an explicit exclusion threshold ('do not use it for fewer than about five items you can already see'). It never names a sibling tool as the alternative for those cases, which is the only gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
count_labelsCount how many texts fall under each labelAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| inputs | Yes | 1 to 1,000 texts to classify. Results come back in the same order. | |
| labels | Yes | 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. | |
| share_data | No | Synchronous classification request text, labels, instructions and model results are retained for model training and operator review in private Cloudflare storage by default. Shared requests receive double per-minute and daily classification quotas. Set share_data: false or X-Classifier-Share-Data: false to opt out and use standard limits. Share only data you have permission to contribute; do not include confidential or personal information. Redaction is best effort. Billing, spending caps and input-size limits still apply. | |
| instructions | No | Optional extra criteria, e.g. "judge only the service, ignore the food". | |
| unsure_below | No | Answers with confidence under this count as unsure. |
Output Schema
| Name | Required | Description |
|---|---|---|
| total | Yes | |
| counts | Yes | Label -> how many texts, every label present. |
| unsure | Yes | How many answers fell under unsure_below. |
| unsure_below | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare this is a mutating, open-world, non-idempotent call, so the safety profile is already covered. The description adds genuinely useful behavior beyond that: a 1,000-item cap, histogram-only output (no per-item answers land in context), and an 'unsure' bucket. It does not discuss data retention or quota behavior, but that is disclosed in the share_data schema parameter.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the core capability, then the use case, then the routing alternative. No filler, no repetition of the title, and each sentence carries new information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values needn't be explained. The description covers scope, limits, the aggregation-only nature of the result, and the alternative tool — everything an agent needs to call this correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all five parameters — including instructions, share_data and unsure_below — are already documented in the schema. The description mentions the 1,000 cap and the unsure bucket but adds no syntax or format detail beyond what the schema provides, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Classify up to 1,000 texts and return only a histogram') plus the exact shape of the result. It explicitly sets itself apart from the sibling classify_texts, which returns per-item answers, so an agent can pick between them without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit when-to-use framing ('when you want the shape of a corpus — what share of feedback is bugs vs praise') and names the alternative with its selecting condition ('Use classify_texts when you need the answer per item'). Both the trigger and the exclusion are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
review_uncertainFind the texts the classifier was unsure aboutAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| below | No | Return items with confidence under this. | |
| inputs | Yes | 1 to 1,000 texts to classify. Results come back in the same order. | |
| labels | Yes | 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. | |
| share_data | No | Synchronous classification request text, labels, instructions and model results are retained for model training and operator review in private Cloudflare storage by default. Shared requests receive double per-minute and daily classification quotas. Set share_data: false or X-Classifier-Share-Data: false to opt out and use standard limits. Share only data you have permission to contribute; do not include confidential or personal information. Redaction is best effort. Billing, spending caps and input-size limits still apply. | |
| instructions | No | Optional extra criteria, e.g. "judge only the service, ignore the food". |
Output Schema
| Name | Required | Description |
|---|---|---|
| below | No | |
| total | Yes | |
| uncertain | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=false and openWorldHint=true, so the safety profile is covered, and the description adds no contradiction. It contributes useful interpretation semantics (which results to trust) but says nothing about the default data-retention behavior that the non-readOnly annotation implies, so it only partially extends the structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the action and filter, then two sentences of guidance and return-shape; nothing is padded. The middle sentence is slightly verbose but its routing advice earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-parameter tool with full schema coverage and an output schema, the description covers purpose, workflow placement and the index-mapping return behavior. The only real gap is the silent absence of any note on the data-retention/cost implications of a non-readOnly classification call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all five parameters (including the default 0.7 threshold and the share_data retention tradeoff) are already documented in the schema. The description restates the threshold default but adds no syntax or format detail beyond it, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action (classify up to 1,000 texts) plus the filtering behavior that defines the tool (return only items under a confidence threshold, each with its top two labels). This implicitly separates it from sibling bulk-classification tools by its uncertainty-only output, though it never names those siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Use this after a bulk classification to decide which items deserve your own attention" gives clear workflow context and even supplies an interpretive rule ("the confident answers can be trusted, these are the ones to read"). It stops short of explicitly naming classify_texts as the prerequisite call or stating when-not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
5 tool updates
- Changed
classify_dimensions2 fields changed- changed
Input schema / properties / share_data / defaultPrevious value: -falseNew value: +true - changed
Input schema / properties / share_data / descriptionPrevious value: -"Opt in to retaining this request's text, labels, instructions and model results for model training and operator review in private Cloudflare storage. Doubles per-minute and daily classification quotas. Off by default. Share only data you have permission to contribute; do not include confidential or personal information. Redaction is best effort. Billing, spending caps and input-size limits still apply."New value: +"Synchronous classification request text, labels, instructions and model results are retained for model training and operator review in private Cloudflare storage by default. Shared requests receive double per-minute and daily classification quotas. Set share_data: false or X-Classifier-Share-Data: false to opt out and use standard limits. Share only data you have permission to contribute; do not include confidential or personal information. Redaction is best effort. Billing, spending caps and input-size limits still apply."
- Changed
classify_multi_label2 fields changed- changed
Input schema / properties / share_data / defaultPrevious value: -falseNew value: +true - changed
Input schema / properties / share_data / descriptionPrevious value: -"Opt in to retaining this request's text, labels, instructions and model results for model training and operator review in private Cloudflare storage. Doubles per-minute and daily classification quotas. Off by default. Share only data you have permission to contribute; do not include confidential or personal information. Redaction is best effort. Billing, spending caps and input-size limits still apply."New value: +"Synchronous classification request text, labels, instructions and model results are retained for model training and operator review in private Cloudflare storage by default. Shared requests receive double per-minute and daily classification quotas. Set share_data: false or X-Classifier-Share-Data: false to opt out and use standard limits. Share only data you have permission to contribute; do not include confidential or personal information. Redaction is best effort. Billing, spending caps and input-size limits still apply."
- Changed
classify_texts2 fields changed- changed
Input schema / properties / share_data / defaultPrevious value: -falseNew value: +true - changed
Input schema / properties / share_data / descriptionPrevious value: -"Opt in to retaining this request's text, labels, instructions and model results for model training and operator review in private Cloudflare storage. Doubles per-minute and daily classification quotas. Off by default. Share only data you have permission to contribute; do not include confidential or personal information. Redaction is best effort. Billing, spending caps and input-size limits still apply."New value: +"Synchronous classification request text, labels, instructions and model results are retained for model training and operator review in private Cloudflare storage by default. Shared requests receive double per-minute and daily classification quotas. Set share_data: false or X-Classifier-Share-Data: false to opt out and use standard limits. Share only data you have permission to contribute; do not include confidential or personal information. Redaction is best effort. Billing, spending caps and input-size limits still apply."
- Changed
count_labels2 fields changed- changed
Input schema / properties / share_data / defaultPrevious value: -falseNew value: +true - changed
Input schema / properties / share_data / descriptionPrevious value: -"Opt in to retaining this request's text, labels, instructions and model results for model training and operator review in private Cloudflare storage. Doubles per-minute and daily classification quotas. Off by default. Share only data you have permission to contribute; do not include confidential or personal information. Redaction is best effort. Billing, spending caps and input-size limits still apply."New value: +"Synchronous classification request text, labels, instructions and model results are retained for model training and operator review in private Cloudflare storage by default. Shared requests receive double per-minute and daily classification quotas. Set share_data: false or X-Classifier-Share-Data: false to opt out and use standard limits. Share only data you have permission to contribute; do not include confidential or personal information. Redaction is best effort. Billing, spending caps and input-size limits still apply."
- Changed
review_uncertain2 fields changed- changed
Input schema / properties / share_data / defaultPrevious value: -falseNew value: +true - changed
Input schema / properties / share_data / descriptionPrevious value: -"Opt in to retaining this request's text, labels, instructions and model results for model training and operator review in private Cloudflare storage. Doubles per-minute and daily classification quotas. Off by default. Share only data you have permission to contribute; do not include confidential or personal information. Redaction is best effort. Billing, spending caps and input-size limits still apply."New value: +"Synchronous classification request text, labels, instructions and model results are retained for model training and operator review in private Cloudflare storage by default. Shared requests receive double per-minute and daily classification quotas. Set share_data: false or X-Classifier-Share-Data: false to opt out and use standard limits. Share only data you have permission to contribute; do not include confidential or personal information. Redaction is best effort. Billing, spending caps and input-size limits still apply."
5 tool updates
- Changed
classify_dimensions1 field changed- added
Input schema / properties / share_dataAdded value: +{ + "default": false, + "description": "Opt in to retaining this request's text, labels, instructions and model results for model training and operator review in private Cloudflare storage. Doubles per-minute and daily classification quotas. Off by default. Share only data you have permission to contribute; do not include confidential or personal information. Redaction is best effort. Billing, spending caps and input-size limits still apply.", + "type": "boolean" +}
- Changed
classify_multi_label1 field changed- added
Input schema / properties / share_dataAdded value: +{ + "default": false, + "description": "Opt in to retaining this request's text, labels, instructions and model results for model training and operator review in private Cloudflare storage. Doubles per-minute and daily classification quotas. Off by default. Share only data you have permission to contribute; do not include confidential or personal information. Redaction is best effort. Billing, spending caps and input-size limits still apply.", + "type": "boolean" +}
- Changed
classify_texts1 field changed- added
Input schema / properties / share_dataAdded value: +{ + "default": false, + "description": "Opt in to retaining this request's text, labels, instructions and model results for model training and operator review in private Cloudflare storage. Doubles per-minute and daily classification quotas. Off by default. Share only data you have permission to contribute; do not include confidential or personal information. Redaction is best effort. Billing, spending caps and input-size limits still apply.", + "type": "boolean" +}
- Changed
count_labels1 field changed- added
Input schema / properties / share_dataAdded value: +{ + "default": false, + "description": "Opt in to retaining this request's text, labels, instructions and model results for model training and operator review in private Cloudflare storage. Doubles per-minute and daily classification quotas. Off by default. Share only data you have permission to contribute; do not include confidential or personal information. Redaction is best effort. Billing, spending caps and input-size limits still apply.", + "type": "boolean" +}
- Changed
review_uncertain1 field changed- added
Input schema / properties / share_dataAdded value: +{ + "default": false, + "description": "Opt in to retaining this request's text, labels, instructions and model results for model training and operator review in private Cloudflare storage. Doubles per-minute and daily classification quotas. Off by default. Share only data you have permission to contribute; do not include confidential or personal information. Redaction is best effort. Billing, spending caps and input-size limits still apply.", + "type": "boolean" +}
3 tool updates
- Changed
classify_dimensions4 fields changed- added
Input schema / oneOfAdded value: +[ + { + "not": { + "required": [ + "url" + ] + }, + "required": [ + "items" + ] + }, + { + "not": { + "required": [ + "items" + ] + }, + "required": [ + "url" + ] + } +] - added
Input schema / properties / includeAdded value: +{ + "description": "With url: return article.markdown and/or article.html at no extra scrape cost. Omit for compact output.", + "items": { + "enum": [ + "markdown", + "html" + ], + "type": "string" + }, + "type": "array" +} - added
Input schema / properties / urlAdded value: +{ + "description": "Scrape one public URL instead of inputs/items. Requires funded workspace access. Context.dev costs $0.0022 per billed attempt plus classification; long articles need Fast. Errors disclose retained charges. No automatic scrape retries.", + "maxLength": 8192, + "pattern": "^https?://", + "type": "string" +} - changed
Input schema / requiredPrevious value: -[ - "items", - "dimensions" -]New value: +[ + "dimensions" +]
- Changed
classify_multi_label4 fields changed- added
Input schema / oneOfAdded value: +[ + { + "not": { + "required": [ + "url" + ] + }, + "required": [ + "inputs" + ] + }, + { + "not": { + "required": [ + "inputs" + ] + }, + "required": [ + "url" + ] + } +] - added
Input schema / properties / includeAdded value: +{ + "description": "With url: return article.markdown and/or article.html at no extra scrape cost. Omit for compact output.", + "items": { + "enum": [ + "markdown", + "html" + ], + "type": "string" + }, + "type": "array" +} - added
Input schema / properties / urlAdded value: +{ + "description": "Scrape one public URL instead of inputs/items. Requires funded workspace access. Context.dev costs $0.0022 per billed attempt plus classification; long articles need Fast. Errors disclose retained charges. No automatic scrape retries.", + "maxLength": 8192, + "pattern": "^https?://", + "type": "string" +} - changed
Input schema / requiredPrevious value: -[ - "inputs", - "labels" -]New value: +[ + "labels" +]
- Changed
classify_texts4 fields changed- added
Input schema / oneOfAdded value: +[ + { + "not": { + "required": [ + "url" + ] + }, + "required": [ + "inputs" + ] + }, + { + "not": { + "required": [ + "inputs" + ] + }, + "required": [ + "url" + ] + } +] - added
Input schema / properties / includeAdded value: +{ + "description": "With url: return article.markdown and/or article.html at no extra scrape cost. Omit for compact output.", + "items": { + "enum": [ + "markdown", + "html" + ], + "type": "string" + }, + "type": "array" +} - added
Input schema / properties / urlAdded value: +{ + "description": "Scrape one public URL instead of inputs/items. Requires funded workspace access. Context.dev costs $0.0022 per billed attempt plus classification; long articles need Fast. Errors disclose retained charges. No automatic scrape retries.", + "maxLength": 8192, + "pattern": "^https?://", + "type": "string" +} - changed
Input schema / requiredPrevious value: -[ - "inputs", - "labels" -]New value: +[ + "labels" +]
1 tool update
- Changed
classify_texts1 field changed- changed
Input schema / properties / model / descriptionPrevious value: -"Optional models: 'laya' (ModernBERT-large, 512-token context) or 'kev' (Qwen2.5-0.5B with a pointer head, 8K context), or 'chunklaya', our long-document model (up to 4,000,000 characters, 20 inputs per request), which is also chosen automatically for any input over 32,000 characters. Jev remains the default."New value: +"Jev is default. Default/explicit jev inputs over 32,000 characters use paid Fast-only long context: up to 250,000 original cl100k_base context tokens total, 20 documents, 32 decisions and a 1 MB body. Requires paid workspace balance or active paid subscription, not signup credit. $0.084/M original context tokens counted once across inputs, independent of dimensions. Final Jev uses selected evidence; eligible chunks may be omitted, disclosed in usage.long_context. No evidence returns 422 long_context_no_evidence without charge. Explicit 'chunklaya' retains legacy opt-in (4,000,000 characters/input, 20 inputs, subject to body limit). 'laya' (512-token context) and 'kev' (8K context) remain experimental alternatives."
3 tool updates
- Changed
classify_dimensions1 field changed- changed
Input schema / properties / model / enumPrevious value: -[ - "jev", - "laya", - "kev" -]New value: +[ + "jev", + "laya", + "kev", + "chunklaya" +]
- Changed
classify_multi_label1 field changed- changed
Input schema / properties / model / enumPrevious value: -[ - "jev", - "laya", - "kev" -]New value: +[ + "jev", + "laya", + "kev", + "chunklaya" +]
- Changed
classify_texts2 fields changed- changed
Input schema / properties / model / descriptionPrevious value: -"Optional Beam-hosted models: 'laya' (ModernBERT-large, 512-token context) or 'kev' (Qwen2.5-0.5B with a pointer head, 8K context). Jev remains the default."New value: +"Optional models: 'laya' (ModernBERT-large, 512-token context) or 'kev' (Qwen2.5-0.5B with a pointer head, 8K context), or 'chunklaya', our long-document model (up to 4,000,000 characters, 20 inputs per request), which is also chosen automatically for any input over 32,000 characters. Jev remains the default." - changed
Input schema / properties / model / enumPrevious value: -[ - "jev", - "laya", - "kev" -]New value: +[ + "jev", + "laya", + "kev", + "chunklaya" +]
3 tool updates
- Changed
classify_dimensions1 field changed- changed
Input schema / properties / model / enumPrevious value: -[ - "jev", - "laya" -]New value: +[ + "jev", + "laya", + "kev" +]
- Changed
classify_multi_label1 field changed- changed
Input schema / properties / model / enumPrevious value: -[ - "jev", - "laya" -]New value: +[ + "jev", + "laya", + "kev" +]
- Changed
classify_texts2 fields changed- changed
Input schema / properties / model / descriptionPrevious value: -"Optional Laya trial with automatic English/multilingual checkpoint routing; Jev remains the default."New value: +"Optional Beam-hosted models: 'laya' (ModernBERT-large, 512-token context) or 'kev' (Qwen2.5-0.5B with a pointer head, 8K context). Jev remains the default." - changed
Input schema / properties / model / enumPrevious value: -[ - "jev", - "laya" -]New value: +[ + "jev", + "laya", + "kev" +]
3 tool updates
- Changed
classify_dimensions1 field changed- changed
Input schema / properties / processing / descriptionPrevious value: -"Use bulk for multiple Laya decisions."New value: +"Optional. Implies Laya if model is omitted; has no effect with explicit Jev. Omit for automatic fast/bulk selection based on item × dimension decisions."
- Changed
classify_multi_label1 field changed- changed
Input schema / properties / processing / descriptionPrevious value: -"Laya fast accepts up to four labels on one text; bulk handles more."New value: +"Optional. Implies Laya if model is omitted; has no effect with explicit Jev. Omit to select fast for up to four labels on one text, or bulk for larger work automatically."
- Changed
classify_texts1 field changed- changed
Input schema / properties / processing / descriptionPrevious value: -"Laya only: fast accepts one decision; bulk handles batches. Shared capacity limits can return 429."New value: +"Optional. Implies Laya if model is omitted; has no effect with explicit Jev. With Laya, omit to select fast for one decision or bulk for batches automatically. Explicit fast accepts one decision. Shared capacity limits can return 429."
1 tool update
- Changed
classify_texts1 field changed- changed
Input schema / properties / model / descriptionPrevious value: -"Optional English Laya trial; Jev remains the default."New value: +"Optional Laya trial with automatic English/multilingual checkpoint routing; Jev remains the default."
3 tool updates
- Changed
classify_dimensions3 fields changed- added
Input schema / properties / modelAdded value: +{ + "enum": [ + "jev", + "laya" + ], + "type": "string" +} - added
Input schema / properties / processingAdded value: +{ + "description": "Use bulk for multiple Laya decisions.", + "enum": [ + "fast", + "bulk" + ], + "type": "string" +} - changed
Input schema / properties / tier / descriptionPrevious value: -"fast (default, ~1s per 1,000) or smart, which re-asks answers under 0.7 confidence of a reasoning model (slower, single-label only)."New value: +"fast (default) or smart, which re-asks answers under 0.7 confidence of a reasoning model (slower, single-label only). Independent of the Laya processing lane."
- Changed
classify_multi_label2 fields changed- added
Input schema / properties / modelAdded value: +{ + "enum": [ + "jev", + "laya" + ], + "type": "string" +} - added
Input schema / properties / processingAdded value: +{ + "description": "Laya fast accepts up to four labels on one text; bulk handles more.", + "enum": [ + "fast", + "bulk" + ], + "type": "string" +}
- Changed
classify_texts4 fields changed- added
Input schema / properties / modelAdded value: +{ + "description": "Optional English Laya trial; Jev remains the default.", + "enum": [ + "jev", + "laya" + ], + "type": "string" +} - added
Input schema / properties / processingAdded value: +{ + "description": "Laya only: fast accepts one decision; bulk handles batches. Shared capacity limits can return 429.", + "enum": [ + "fast", + "bulk" + ], + "type": "string" +} - changed
Input schema / properties / tier / descriptionPrevious value: -"fast (default, ~1s per 1,000) or smart, which re-asks answers under 0.7 confidence of a reasoning model (slower, single-label only)."New value: +"fast (default) or smart, which re-asks answers under 0.7 confidence of a reasoning model (slower, single-label only). Independent of the Laya processing lane." - changed
Output schema / properties / results / items / properties / confidence / descriptionPrevious value: -"0-1, calibrated. Null when the provider returns no score or the smart tier replaces the scored answer."New value: +"0-1; calibration measurements cover Jev, not experimental Laya. Null when the provider returns no score or the smart tier replaces the scored answer."
2 tool updates
- Changed
classify_multi_label1 field changed- changed
Output schema / properties / results / items / properties / scores / descriptionPrevious value: -"Independent probability per label."New value: +"Independent model preference per supplied label. Does not validate the input or guarantee correctness."
- Changed
classify_texts2 fields changed- changed
Output schema / properties / results / items / properties / confidence / descriptionPrevious value: -"0-1, calibrated. Null for unreadable inputs or smart-escalated answers without comparable probabilities."New value: +"0-1, calibrated. Null when the provider returns no score or the smart tier replaces the scored answer." - changed
Output schema / properties / results / items / properties / scores / descriptionPrevious value: -"Probability per label; sums to 1."New value: +"Model preference per supplied label; sums to 1. Does not validate the input or guarantee correctness."
1 tool update
- Changed
classify_texts1 field changed- changed
Output schema / properties / results / items / properties / confidence / descriptionPrevious value: -"0-1, calibrated. Null when the input does not read as natural language."New value: +"0-1, calibrated. Null for unreadable inputs or smart-escalated answers without comparable probabilities."
1 tool update
- Added
classify_dimensions
4 tool updates
- First observed
classify_multi_label - First observed
classify_texts - First observed
count_labels - First observed
review_uncertain
Related MCP Connectors
Calibrated judgments for text: yes/no probabilities, picks from your options, or scores.
Sentiment, toxicity, entity extraction, PII, translation, summary, QA, fraud scoring, safety audit.
Explainable ambiguity signals for text. Submitted text is processed but never retained.
Classifies products into HS/HTS customs codes for import/export workflows. $0.10/call via x402.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to obtain calibrated probabilities, option picks, scale scores, and multi-question judgments for batches of short text, returning numeric results for sorting, filtering, and counting.MIT
- FlicenseNot gradedqualityCmaintenanceClassify raw text into structured triage objects with intent, urgency, category, and sentiment. Zero-config MCP tool for support intake, lead routing, and ticket automation-
- AlicenseNot gradedqualityCmaintenanceClassifies text into topic categories with confidence scores, readability metrics, and content type detection, using x402 micropayments for pay-per-call access.MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to perform typed decisions (choice, score, noul) over text, emails, tickets, or JSON documents, with automatic language routing and source ranking across 100+ languages via a single forward pass.Apache 2.0
Glama MCP Gateway
Add one secure layer between your agents and this server.