Skip to main content
Glama

Customers and first messages

customers_and_openers

Runs once, in the background: lists the businesses of a kind in a place with their phone, email and website, and drafts a short first message for each one about what the person sells (offer), for the person to review and send themselves. Puley sends nothing to the businesses. The list is saved in the person's Puley history and emailed to the person. business: the kind of business (dentists). place: a city or area with its country. The same request again returns its progress or the finished list.

Input Schema

NameRequiredDescriptionDefault
offerNo
placeYes
businessYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A3.8/5.0
Behavior4/5

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

With readOnlyHint=false and openWorldHint=true already declared, the description adds the crucial reassurance that 'Puley sends nothing to the businesses' — the drafting is for human review, not automated outreach — and that results persist in history and are emailed. It also discloses the async pattern and the repeat-call polling behavior, which annotations alone would not convey. There is a mild tension with idempotentHint=false (a repeated identical request is described as returning existing progress rather than starting a new job), but it is a nuance about job reuse rather than a claim that the tool is read-only.

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?

The first sentence front-loads the whole flow (list, then draft, for the person to review), and the delivery facts ('saved in history', 'emailed') and polling rule follow in a sensible order. It is dense and slightly run-on, with the parameter glosses appended inline rather than separated, but almost every clause carries information an agent needs.

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 3-parameter background job with no output schema, the description covers what it produces (a list with contact details plus drafted messages), where results land (history and email), and how to retrieve them (re-issue the request). What is missing is scope or cost expectations — rough runtime, breadth limits on the business list, or credit implications — which an agent would want before firing an open-world job.

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 description coverage is 0%, so the description carries the full burden, and it does: business is glossed as 'the kind of business (dentists)', place as 'a city or area with its country', and offer as 'what the person sells'. That resolves the two genuinely ambiguous inputs and the formatting expectation for place. It still leaves offer's default empty-string behavior and length/format expectations unstated.

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

Purpose4/5

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

The description names a concrete verb chain and resource: list businesses of a kind in a place with phone/email/website, then draft a short first message per business from the user's offer. That is far more specific than the title 'Customers and first messages' and an agent can picture the output. It does not, however, distinguish itself from close siblings such as find_leads or find_contact, which an agent would plausibly weigh against it.

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

Usage Guidelines3/5

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

Usage is only implied: 'Runs once, in the background' plus 'The same request again returns its progress or the finished list' tells the agent how to poll, which is real guidance for an async job. But there is no explicit when-to-use or when-not-to-use statement, and no pointer to an alternative tool for a narrower lookup (e.g. a single contact or plain lead search).

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.

Resources