Skip to main content
Glama

Check companies

check_companies
Destructive

Answer one yes/no question about each of up to 10 companies from its own website, e.g. "Do they let their users book appointments inside their product?" or "Do they publish a public API?". For angles, what's changed, how to approach, or why now on one company or person, use research_company (a company) or prospect_picture (a person, their company, or both) instead. Ask about what the company offers or does, as a seller would. Each answer is yes (with the passage from the company's own site that states it, quoted word for word, and its page URL), not_found (every passage of the pages listed in pages_read was checked and none touches it; that is not proof it's absent) or unclear (the pages hint at it but no single passage states it). A yes always comes with a passage that states it on its own. 3.5 credits per company answered yes or not_found; unclear answers and unreadable sites are free. An unreadable company's site blocked our reader; it's free and you can ask again with different words or skip it. A call answers within about a minute; a company it could not reach in that time comes back unclear (free), so send it again. Use it after a broad company search to keep only companies with the need, before paying for people or emails. budget_credits is a spend ceiling, never permission to use a dearer source: above it, the call is refused before anything is reserved, and no company you sent is dropped to fit. dry_run: true returns the plan instead (the most the call can cost, how many sources could answer, and each limit it would trip) with nothing looked up, reserved or charged. Example: {"question":"Do they let their users book appointments inside their product?","company_domains":["acme.com","example.io"]}

Input Schema

NameRequiredDescriptionDefault
dry_runNoReturn this call's plan instead of running it, as of evaluated_at: the most it can cost, how many sources could answer, what budget_credits changes, and every limit the real call would trip. Nothing is looked up, reserved or charged, and a later call may differ. Where previews aren't available to this key yet, a request that sets it is refused with the reason.
questionYesOne yes/no question about each company's own offering, as a seller would ask it (10–300 characters), e.g. "Do they let their users book appointments inside their product?". Answered only from the company's own website.
budget_creditsNoSpend ceiling for this call, in credits. If the most the call can cost is above it, the call is refused before anything is reserved or charged. No company you sent is dropped to fit. It is a ceiling only: it never lets the call use a dearer source. Where spend ceilings aren't available to this key yet, a request that sets it is refused with the reason.
company_domainsYes
idempotency_keyNoA payment_required refusal means services are stopped for unpaid billing; direct the owner to the billing link in the error. Campaigns stay paused after payment until restarted. Optional for search and enrichment tools: supply one so a retry returns the original result without paying again; if that call failed with provider_unavailable, rate_limited or insufficient_credits (after a top-up), a retry runs it once more after its cooldown (30 s, or a longer retry_after_seconds; insufficient_credits as soon as the balance covers it), unless its provider may already have done the work. Required for tools that create an external side effect; reuse the same value after a timeout or an approval. A stored failure comes back with details.replayed: true; with retry_after_seconds, retry the same value after that.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / idempotency_key / description
      Previous value: -"Optional for search and enrichment tools: supply one so a retry returns the original result without paying again; if that call failed with provider_unavailable, rate_limited or insufficient_credits (after a top-up), a retry runs it once more after its cooldown (30 s, or a longer retry_after_seconds; insufficient_credits as soon as the balance covers it), unless its provider may already have done the work. Required for tools that create an external side effect; reuse the same value after a timeout or an approval. A stored failure comes back with details.replayed: true; with retry_after_seconds, retry the same value after that."New value: +"A payment_required refusal means services are stopped for unpaid billing; direct the owner to the billing link in the error. Campaigns stay paused after payment until restarted. Optional for search and enrichment tools: supply one so a retry returns the original result without paying again; if that call failed with provider_unavailable, rate_limited or insufficient_credits (after a top-up), a retry runs it once more after its cooldown (30 s, or a longer retry_after_seconds; insufficient_credits as soon as the balance covers it), unless its provider may already have done the work. Required for tools that create an external side effect; reuse the same value after a timeout or an approval. A stored failure comes back with details.replayed: true; with retry_after_seconds, retry the same value after that."
  2. Added

TDQS

A4.5/5.0
Behavior5/5

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

Goes well beyond the annotations: it discloses per-company pricing (3.5 credits for yes/not_found, unclear and unreadable free), the ~1 minute latency and what happens on timeout, retry guidance, budget_credits refusal-before-reservation semantics, and what dry_run returns. The annotations' destructiveHint=true is explained by the spend behavior it does describe, so there is no contradiction.

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?

Purpose and the answer-state model are front-loaded in the first sentences, and no sentence is pure filler — pricing, retry and dry_run details each carry decision value. It is still a single dense block of semicolon-chained clauses whose length makes the credit rules harder to scan than they need to be.

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 paid, open-world lookup with no output schema, the description supplies what matters: answer states, cost model, latency, timeout behavior and the dry_run escape hatch. The main remaining gap is the 10-vs-20 batch ceiling, which is exactly the kind of detail an agent needs before composing a call.

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

Parameters3/5

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

Question, budget_credits and dry_run all get meaningful elaboration beyond the schema. However the description caps the batch at 'up to 10 companies' while the schema allows maxItems 20, leaving the agent unsure which limit governs, and idempotency_key is not addressed in the description at all. With 80% schema coverage the baseline is 3, and the batch-size conflict keeps it there rather than higher.

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 and resource — answer one yes/no question per company from its own website — plus the exact scope (one question, up to 10 domains) and the shape of the answer (yes with quoted passage + URL, not_found, unclear). It explicitly demarcates itself from research_company and prospect_picture by the kind of question asked, so an agent can route 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.

Usage Guidelines5/5

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

Names the alternatives and the condition selecting each ('For angles, what's changed, how to approach, or why now ... use research_company ... or prospect_picture'), and gives a positive placement recommendation ('after a broad company search to keep only companies with the need, before paying for people or emails'). Both when-to-use and when-not-to-use are 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.

Resources