Skip to main content
Glama

Findymail

Classify Row

classify_row
Read-onlyIdempotent

Cheap categorization: given a company and a list of candidate labels, decide which labels apply — the most common GTM/AI usage shape (tagging a list by industry, ICP fit, etc.), one small model call. Same evidence contract as research_row: each label comes back {label, applies, evidence_url, quote, status: found|inferred|not_established} — "found" only when the model's quote is independently verified as a verbatim substring of the text used. Pass text directly (cheapest — no fetch) or entity.domain to fetch the homepage once as a fallback. No text and no domain means every label is not_established with no model call made.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
textNoText to classify directly (a description, a page you already fetched, etc.) — cheapest path, skips any fetch.
entityYesThe row/company to classify. At least one of name/domain required.
labelsYesCandidate labels to test, 2-30 strings, e.g. ["healthcare","fintech","logistics"].

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover readOnly/idempotent/openWorld/non-destructive, and the description adds substantial context on top: cost profile ('cheap', one small model call), the verification rule that 'found' requires the quote to be an independently verified verbatim substring, the fetch fallback, and the no-call degenerate behavior. This goes well beyond what the structured fields disclose.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads purpose, then the return contract, then parameter routing. Dense but each sentence carries information (cost, evidence semantics, fallback, degenerate case). Slightly long, but no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description supplies the return shape ({label, applies, evidence_url, quote, status}) and the status semantics, plus cost and fallback behavior. An agent has everything needed to call it correctly and interpret results.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds real meaning: text is the cheapest path that skips fetching, domain is used ONLY when text is absent, and text+domain both missing yields not_established with no model call. This clarifies the interaction between parameters that the schema alone doesn't spell out.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('decide which labels apply' for a given company against candidate labels) and frames the GTM/AI use case. It explicitly contrasts itself with research_row as the cheap, single-model-call alternative, so an agent can separate it from siblings on intent alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete routing conditions for the parameters: pass text directly as the cheapest path, use entity.domain to fetch the homepage as a fallback, and the degenerate case of neither. It also references research_row's evidence contract implicitly. It does not explicitly state when to prefer research_row or other research siblings over this one, so not a full 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.