Skip to main content
Glama

Import a pull

pros_import_rows

Hand over one pulled list: what it was bought or scraped under, and its rows. These are not accounts and never become accounts here. You read the file; this records it. Nothing here parses and nothing here qualifies.

CRITERIA IS MANDATORY AND IT IS THE POINT (PRO-2). Write the brief this pull was actually made under: the size band, the geography, the industries asked for. A pull whose criteria nobody wrote down cannot have its verdicts checked against anything afterwards, and rows judged against a brief that was never stated are judged against your memory of it.

The same hash is refused twice (PRO-1). Rows whose company name is already staged, or already an account, are skipped and listed back — say so to the person. The batch is accepted whole or refused: if the file says a row count and you hand over a different number, re-read it.

Hand over the seller's own description verbatim rather than your summary of it. Your reading of the row belongs in a verdict, where it is attributed to you and can be argued with. Effects: pull recorded with its criteria; rows staged with provenance; duplicates skipped and listed.

Input Schema

NameRequiredDescriptionDefault
hashYesContent hash of the file, or a stable id it carries (vendor + list id + date).
rowsYesEvery row, in the file's order.
labelYesWhat this pull was, in your human's words — "Phoenix metro, 200-1000 staff".
criteriaYesThe brief this pull was made under: size band, geography, industries asked for. Mandatory, and read later by whoever checks the verdicts.
row_countYesHow many rows the file holds.
campaign_idNoThe campaign this pull was made for, if that is already decided. An existing campaign id.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.5/5.0
Behavior5/5

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

Annotations only cover the safety profile, and the description goes well past them: it discloses hash-based duplicate refusal (PRO-1), per-row duplicate skipping with results listed back to the caller, and whole-batch accept-or-refuse atomicity. It closes with an explicit effects summary — pull recorded with criteria, rows staged with provenance, duplicates skipped and listed. The non-idempotent annotation is consistent with the same-hash-refused-twice rule.

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-loaded with the imperative and organized by concern (criteria, duplicates, verbatim text). It is longer than typical and has some rhetorical flourish ('CRITERIA IS MANDATORY AND IT IS THE POINT', 'judged against your memory of it'), but those lines carry real behavioral instruction rather than padding.

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

Completeness4/5

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

For a write tool with no output schema, it supplies dedup behavior, atomicity, and a closing effects statement that effectively stands in for return values. The gap is campaign_id: nothing says whether it is optional, what happens if omitted, or when a pull should be tied to an existing campaign.

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 earns more: it explains why criteria is mandatory and what belongs in it (size band, geography, industries), insists on verbatim seller description over summary, and requires row_count to match the file rather than be an estimate. The only unaddressed parameter is campaign_id, which the description never mentions.

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?

The opening states a specific verb and resource — hand over one pulled list plus the terms it was made under — and immediately draws the boundary that matters: 'These are not accounts and never become accounts here,' which separates it from pros_promote and pros_qualify. An agent knows from sentence one that this records a file, not that it parses or qualifies one.

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?

It gives clear when-conditions (criteria mandatory, verbatim seller description, matching row count) and points elsewhere for the other job: 'Your reading of the row belongs in a verdict, where it is attributed to you.' That routes judgment work away from this tool, though it never names the specific sibling to use instead, so the alternative is implied rather than explicit.

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.