Crawdar Business Research
Server Details
Evidence-backed public business research for agents with compact, pageable output.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
Available Tools
9 toolscancel_lead_searchCancel a lead searchADestructiveIdempotentInspect
Cancel a queued or running search job. Completed and failed jobs remain immutable.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Queued or running job id. | |
| jobToken | Yes | Private token belonging to the job. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| status | Yes | |
| canceledAt | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=true, so the safety profile is covered and the bar is lower. The description adds domain-level value by explaining that cancelling a completed or failed job is a no-op, operationalizing the idempotency hint. No contradiction with annotations.
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?
Two sentences and roughly 14 words with the core action front-loaded. The boundary condition sentence earns its place because it prevents erroneous calls on ineligible jobs; there is no filler or redundancy.
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 two-parameter destructive-but-idempotent cancel operation, the description plus schema, annotations, and output schema cover the agent's key needs: what it acts on, what it won't affect, and its safety profile. A minor gap is the absence of operational detail such as whether cancellation is immediate or asynchronous, but that is not critical for correct invocation.
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%: both id ('Queued or running job id') and jobToken ('Private token belonging to the job') are already well documented. The description mentions neither parameter, adding no semantic value beyond the schema, 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 verb ('Cancel') and resource ('queued or running search job'), with a scope constraint that distinguishes it from lifecycle siblings like start_lead_search, get_lead_search, and retry_lead_search. The second sentence removes ambiguity by clarifying which job states are affected.
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?
'Queued or running' tells the agent when the tool applies, and 'Completed and failed jobs remain immutable' provides an explicit when-not condition. However, it does not name sibling alternatives or contrast them, so the routing guidance is clear in context but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
explain_crawdarExplain Crawdar searchARead-onlyIdempotentInspect
Get result semantics, limits, interface URLs, and safe operating guidance. This tool does not consume a search.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| guidance | Yes | |
| interfaces | Yes | |
| resultLanes | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare read-only, idempotent, and non-destructive behavior, and the description adds a behavioral note about not consuming a search. Together, these provide complete transparency about side effects and input handling.
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?
The description is two sentences, each conveying essential information without fluff. It is well-structured and directly states the tool's purpose and a key constraint.
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?
The description specifies the types of information provided (result semantics, limits, interface URLs, safe operating guidance), which gives a complete picture of what the tool returns. Combined with the annotations, the tool's context is fully covered.
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?
The tool has zero parameters, so the schema coverage is complete. The baseline for no parameters is 4, and the description does not need to elaborate on any parameter semantics since there are none.
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 clearly states the tool provides result semantics, limits, interface URLs, and safe operating guidance, which is specific and distinguishes it from the sibling search tools. It is concise and unambiguous.
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?
The description explicitly notes that the tool does not consume a search, which clarifies it is not for search operations and guides when to use it (for explanations) versus the search-focused siblings. This is a clear usage hint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_lead_searchGet a lead search pageARead-onlyIdempotentInspect
Read job status or one cursor-paginated result page. Keep jobToken private and pass nextCursor back unchanged.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Job id returned by start_lead_search, refine_lead_search, or retry_lead_search. | |
| view | No | Compact minimizes tokens. Full retains detailed evidence fields. | compact |
| limit | No | Maximum prospects in this result page. | |
| cursor | No | Opaque nextCursor from the previous response. | |
| jobToken | Yes | Private token returned with the job. Do not log or share it. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| error | No | |
| status | Yes | |
| results | No | |
| progress | No | |
| returned | No | |
| warnings | No | |
| createdAt | No | |
| errorCode | No | |
| nextCursor | No | |
| retryAfter | No | |
| completedAt | No | |
| diagnostics | No | |
| resultCount | No | |
| searchedSources | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only and idempotent behavior. The description adds useful behavioral context with cursor-paginated pagination, the requirement to pass nextCursor back unchanged, and the instruction to keep jobToken private. No contradiction with annotations.
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?
Two short, front-loaded sentences with no filler. Every clause earns its place: purpose first, then critical pagination and token-handling instructions.
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 read-only paginated retrieval tool with full input schema, annotations, and an output schema, the description covers purpose, pagination protocol, and security handling. Nothing essential 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 coverage is 100%, so the schema already fully documents all five parameters. The description adds only marginal operational guidance ('pass nextCursor back unchanged') beyond what the schema says, so 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 ('Read') and resource ('job status or one cursor-paginated result page'). This clearly identifies the tool as the read/poll operation for a lead search job and distinguishes it from sibling lifecycle tools like start_lead_search, refine_lead_search, retry_lead_search, and cancel_lead_search.
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?
The description clearly implies use after a lead search job has been created, for reading status or paging through results. It gives operational context through 'pass nextCursor back unchanged,' though it does not explicitly name alternatives or state when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
refine_lead_searchRefine a lead searchAInspect
Create a new private search job by changing the brief or criteria of a completed job. The original job stays unchanged.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Completed source job id returned by an earlier durable search call. | |
| brief | No | Replacement natural-language brief for the new job. | |
| limit | No | Maximum prospects retained by the new job. | |
| fields | No | Business fields to retain. Website and source evidence remain available for verification. | |
| target | No | Replacement business target for the new job. | |
| jobToken | Yes | Private token belonging to the source job. | |
| geography | No | Replacement city, region, country, or Worldwide. | |
| qualifier | No | Replacement public requirements and exclusions. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | Stable job identifier. Use it with jobToken in every lifecycle call. |
| status | Yes | Current durable job state. |
| cacheHit | No | |
| jobToken | No | Private bearer token required to read, refine, or export this job. |
| retryUrl | Yes | Authenticated REST URL for creating a replacement after retryable failure. |
| cancelUrl | Yes | Authenticated REST URL for canceling queued or running work. |
| exportUrl | Yes | Authenticated CSV export URL. Add format=json for JSON. |
| statusUrl | Yes | Authenticated REST URL for job status and result pages. |
| resultCount | No | |
| expiresInSeconds | Yes | Seconds until the private job and token expire. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations already indicating a non-read-only, non-idempotent, non-destructive operation, the description adds useful specifics: it creates a new job and leaves the original untouched. This meaningfully supplements the annotation flags without contradicting them.
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?
Two short sentences, with the core action in the first and the non-destructive guarantee in the second. No filler or repetition of schema or annotation 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?
Given the rich input schema, annotations, and output schema, the description covers the essential behavior and the non-destructive guarantee needed to call the tool correctly. It only lacks explicit guidance about choosing it over sibling search/retry tools.
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?
All eight parameters have schema descriptions (100% coverage), so the description does not need to re-document them. The phrase 'brief or criteria' loosely groups the parameters, but it adds no parameter-level meaning beyond the schema's existing descriptions.
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 uses a specific verb ('Create') and resource ('private search job'), and clarifies that this is a refinement of a completed job rather than a brand-new search. The statement that 'the original job stays unchanged' further distinguishes it from sibling tools like retry_lead_search or start_lead_search.
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?
It clearly describes the scenario: use this tool when you want a new private search job whose brief or criteria differ from a completed job. It does not explicitly name alternatives or state when not to use it, so it falls just short of full exclusion guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
research_businessesResearch businesses from a briefARead-onlyInspect
Use for a quick synchronous search when the user supplies one natural-language brief and can wait for results in the current tool call. For durable progress, retry, export, or large agent workflows, use start_lead_search instead.
| Name | Required | Description | Default |
|---|---|---|---|
| brief | Yes | Example: Independent veterinary clinics in Berlin with an active first-party website. Exclude directories and chains. | |
| limit | No | Maximum businesses in this response page. | |
| fields | No | Business fields to retain. Website and source evidence remain available for verification. | |
| offset | No | Zero-based result offset for this response page. | |
| output | No | Compact minimizes tokens. Full preserves every returned field. | compact |
| geography | No | Optional explicit geography. Use when the brief does not make location clear. | |
| includeDiagnostics | No | Include source status and explained exclusions. |
Output Schema
| Name | Required | Description |
|---|---|---|
| limit | Yes | Maximum prospects requested for this page. |
| offset | Yes | Zero-based offset of this page. |
| hasMore | Yes | Whether another result page is available. |
| results | Yes | |
| warnings | Yes | Limitations the agent should retain with downstream data. |
| requestId | Yes | Request identifier for support and diagnostics. |
| durationMs | No | |
| nextOffset | No | Offset for the next synchronous result page, or null when complete. |
| diagnostics | No | Source status and explained candidate exclusions. |
| resultCount | Yes | Total accepted prospects before response pagination. |
| returnedCount | Yes | Prospects returned in this response page. |
| schemaVersion | Yes | Version of the result contract. |
| searchedSources | Yes | Discovery and first-party source types consulted. |
| remainingFreeSearches | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, and destructiveHint=false, covering the safety profile. The description adds useful behavioral context beyond these flags: the tool is synchronous, returns in the current call, and is not built for durable progress or retry. This supplements the annotations without contradicting them.
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?
Two sentences with zero filler. The core usage condition is front-loaded, and the alternative routing is given immediately after. Every word contributes to tool selection.
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?
Given the rich input schema and an output schema, the description adequately covers the key selection criteria: synchronous execution, one-shot nature, natural-language brief, and the durable alternative. The only gap is not explicitly differentiating from search_businesses, but the 'natural-language brief' qualifier partially covers that.
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 100% with detailed descriptions for all seven parameters including the brief format, pagination, output modes, and diagnostics. The description adds no parameter-level meaning beyond what the schema already provides, so the baseline score of 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?
The description clearly states the tool performs a quick synchronous search from a natural-language brief, which is a specific verb+resource pairing. It explicitly names start_lead_search as the alternative for durable workflows, but does not distinguish from the similarly named sibling search_businesses, which could leave some ambiguity.
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?
The description gives explicit when-to-use guidance ('quick synchronous search when the user supplies one natural-language brief and can wait for results in the current tool call') and explicit when-not-to-use guidance with a named alternative ('For durable progress, retry, export, or large agent workflows, use start_lead_search instead'). This leaves little to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
retry_lead_searchRetry a stopped lead searchAInspect
Create a replacement job when a prior job failed or exceeded its execution window. The original job stays available for audit.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Failed or timed-out source job id. | |
| jobToken | Yes | Private token belonging to the source job. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | Stable job identifier. Use it with jobToken in every lifecycle call. |
| status | Yes | Current durable job state. |
| cacheHit | No | |
| jobToken | No | Private bearer token required to read, refine, or export this job. |
| retryUrl | Yes | Authenticated REST URL for creating a replacement after retryable failure. |
| cancelUrl | Yes | Authenticated REST URL for canceling queued or running work. |
| exportUrl | Yes | Authenticated CSV export URL. Add format=json for JSON. |
| statusUrl | Yes | Authenticated REST URL for job status and result pages. |
| resultCount | No | |
| expiresInSeconds | Yes | Seconds until the private job and token expire. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, the description discloses that the operation creates a new replacement job and that the original job is preserved for audit purposes. This adds meaningful non-destructive side-effect context, though it does not detail every consequence of non-idempotent calls.
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?
Two sentences, front-loaded with the core action and trigger condition, with zero filler. The audit note is a single clause that 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 two-parameter tool with a fully documented schema and an output schema, the description covers why to call it, what happens, and what is preserved. No critical information needed for correct invocation 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%: both id and jobToken are already explained in the input schema. The description adds no new parameter-level meaning, which is acceptable under the baseline for fully documented schemas.
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 uses a specific verb-resource pair ('Create a replacement job') and gives the exact trigger condition (failed or exceeded execution window). This clearly distinguishes the tool from siblings like start_lead_search or get_lead_search, while the title reinforces the retry action.
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?
The description states a clear when-to-use condition: a prior job failed or exceeded its execution window. It does not explicitly name alternatives or when-not-to-use cases, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sandbox_businessesTest the Crawdar contractARead-onlyIdempotentInspect
Return deterministic fictional businesses without consuming provider capacity. Use this to test schemas, clients, and agent loops.
| Name | Required | Description | Default |
|---|---|---|---|
| target | No | Fictional business type echoed into deterministic test results. | |
| geography | No | Fictional location echoed into deterministic test results. |
Output Schema
| Name | Required | Description |
|---|---|---|
| limit | Yes | Maximum prospects requested for this page. |
| offset | Yes | Zero-based offset of this page. |
| hasMore | Yes | Whether another result page is available. |
| results | Yes | |
| warnings | Yes | Limitations the agent should retain with downstream data. |
| requestId | Yes | Request identifier for support and diagnostics. |
| durationMs | No | |
| nextOffset | No | Offset for the next synchronous result page, or null when complete. |
| diagnostics | No | Source status and explained candidate exclusions. |
| resultCount | Yes | Total accepted prospects before response pagination. |
| returnedCount | Yes | Prospects returned in this response page. |
| schemaVersion | Yes | Version of the result contract. |
| searchedSources | Yes | Discovery and first-party source types consulted. |
| remainingFreeSearches | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds meaningful behavioral context beyond annotations by disclosing that results are deterministic, fictional, and do not consume provider capacity. This complements the readOnlyHint and idempotentHint annotations without contradicting them.
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?
Two efficient sentences convey the core behavior and intended use immediately. There is no filler, and the most important distinguishing information is front-loaded.
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?
With a rich output schema, clear annotations, simple optional parameters, and a purpose-specific description, everything needed for correct use is present. The tool's scope is intentionally narrow and the description fully covers it.
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 parameters are already fully documented in the schema. The description does not add new parameter-specific meaning beyond reinforcing that the parameters echo into deterministic results, which the schema already states.
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 clearly states a specific action ('Return deterministic fictional businesses') and identifies the tool's purpose as testing schemas, clients, and agent loops. It distinguishes itself from sibling tools like research_businesses and search_businesses by emphasizing deterministic fictional data and no provider capacity consumption.
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?
The description explicitly says 'Use this to test schemas, clients, and agent loops,' providing clear context for when to use the tool. It implies the tool is for sandbox testing rather than production lookups, though it does not explicitly name alternative tools or state exclusion conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_businessesSearch businesses with structured criteriaARead-onlyInspect
Use for a quick synchronous search when target, geography, and qualification fields are already structured. Use research_businesses for a plain-language brief, or start_lead_search for durable asynchronous work.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum businesses in this response page. | |
| fields | No | Business fields to retain. Website and source evidence remain available for verification. | |
| offset | No | Zero-based result offset for this response page. | |
| output | No | Compact minimizes tokens. Full preserves every returned field. | compact |
| target | Yes | Business type or concise target. | |
| geography | Yes | City, region, country, or Worldwide. | |
| qualifier | No | Optional required signals and exclusions that can be checked in public evidence. | |
| includeDiagnostics | No | Include source status and explained exclusions. |
Output Schema
| Name | Required | Description |
|---|---|---|
| limit | Yes | Maximum prospects requested for this page. |
| offset | Yes | Zero-based offset of this page. |
| hasMore | Yes | Whether another result page is available. |
| results | Yes | |
| warnings | Yes | Limitations the agent should retain with downstream data. |
| requestId | Yes | Request identifier for support and diagnostics. |
| durationMs | No | |
| nextOffset | No | Offset for the next synchronous result page, or null when complete. |
| diagnostics | No | Source status and explained candidate exclusions. |
| resultCount | Yes | Total accepted prospects before response pagination. |
| returnedCount | Yes | Prospects returned in this response page. |
| schemaVersion | Yes | Version of the result contract. |
| searchedSources | Yes | Discovery and first-party source types consulted. |
| remainingFreeSearches | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, and destructiveHint=false. The description adds behavioral context: it is synchronous, returns a page of results, supports pagination through offset/limit, and states that Website and source evidence remain available for verification. This adds practical understanding beyond the annotations.
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?
The description is two sentences, front-loaded with the primary use case and immediately routing to alternatives. Every clause carries useful information; there is no filler or redundant restating of the title.
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?
Given the rich annotations (readOnlyHint, openWorldHint), a fully documented input schema, an output schema, and explicit sibling routing, the description covers everything an agent needs to decide whether to call this tool and how to invoke it correctly. 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 schema fully documents every parameter and the description does not need to repeat them. The description alludes to structured criteria (target, geography, qualification fields) but adds no deeper meaning beyond the schema. With complete schema descriptions and an output schema, a 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?
The description clearly states the tool's purpose: 'quick synchronous search' for businesses using structured criteria. It explicitly names the resource (businesses) and the mode (structured criteria), and distinguishes it from siblings by naming alternatives and their different use cases.
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?
The description explicitly says when to use this tool (when target, geography, and qualification fields are already structured) and when to use alternatives: 'Use research_businesses for a plain-language brief, or start_lead_search for durable asynchronous work.' This is an explicit routing guide with no ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
start_lead_searchStart a durable lead searchAInspect
Use for the recommended durable asynchronous workflow. Creates a private queued search job and returns a job id plus jobToken for progress polling, cursor paging, refinement, retry, cancellation, and CSV or JSON export.
| Name | Required | Description | Default |
|---|---|---|---|
| brief | No | Natural-language business, geography, required signals, and exclusions. Use this instead of separate target and geography. | |
| limit | No | Maximum accepted prospects retained by the job. | |
| fields | No | Business fields to retain. Website and source evidence remain available for verification. | |
| target | No | Business type or concise ideal-customer target. Pair with geography when brief is omitted. | |
| geography | No | City, region, country, or Worldwide. Required with target when brief is omitted. | |
| qualifier | No | Publicly verifiable requirements and exclusions. | |
| idempotencyKey | No | Stable key for safely retrying the same job creation request. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | Stable job identifier. Use it with jobToken in every lifecycle call. |
| status | Yes | Current durable job state. |
| cacheHit | No | |
| jobToken | No | Private bearer token required to read, refine, or export this job. |
| retryUrl | Yes | Authenticated REST URL for creating a replacement after retryable failure. |
| cancelUrl | Yes | Authenticated REST URL for canceling queued or running work. |
| exportUrl | Yes | Authenticated CSV export URL. Add format=json for JSON. |
| statusUrl | Yes | Authenticated REST URL for job status and result pages. |
| resultCount | No | |
| expiresInSeconds | Yes | Seconds until the private job and token expire. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes well beyond the sparse annotations by disclosing that the tool creates a job, that the job is private and queued, and that it returns both a job id and jobToken enabling polling, paging, refinement, retry, cancellation, and export. This gives the agent a realistic model of the tool's side effects and follow-up capabilities. No contradiction with annotations exists.
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?
The entire description is one focused sentence that front-loads the usage recommendation before stating the core behavior and return value. Every phrase earns its place, and there is no redundant restating of parameter names or schema details.
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?
Given that an output schema exists and all parameters are fully documented in the input schema, the description is complete for an agent to understand when and how to invoke the tool. It supplies the essential workflow context—durable asynchronous job creation, uniqueness of the job id/jobToken, and the available follow-up operations—without needing additional detail.
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%, and every parameter already has a meaningful description in the input schema. The tool description intentionally avoids repeating parameter details, which is appropriate, but it also adds no extra semantic value beyond what the schema already provides.
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 uses a specific verb-resource pair, 'creates a private queued search job', and clearly frames this as the durable asynchronous workflow. It distinguishes itself from sibling tools like search_businesses and research_businesses by emphasizing that it returns a job id and jobToken for later polling, paging, refinement, retry, cancellation, and export.
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?
The opening phrase 'Use for the recommended durable asynchronous workflow' gives clear usage context and implies this tool is preferred when an asynchronous job is desired. It does not explicitly name alternatives or state when not to use it, but the guidance is sufficient to route an agent appropriately among the siblings.
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. Dates show when Glama detected each change.
8 tool updates
- Changed
cancel_lead_search2 fields changed- added
Input schema / properties / id / descriptionAdded value: +"Queued or running job id." - added
Input schema / properties / jobToken / descriptionAdded value: +"Private token belonging to the job."
- Changed
get_lead_search4 fields changed- added
Input schema / properties / id / descriptionAdded value: +"Job id returned by start_lead_search, refine_lead_search, or retry_lead_search." - added
Input schema / properties / jobToken / descriptionAdded value: +"Private token returned with the job. Do not log or share it." - added
Input schema / properties / limit / descriptionAdded value: +"Maximum prospects in this result page." - added
Input schema / properties / view / descriptionAdded value: +"Compact minimizes tokens. Full retains detailed evidence fields."
- Changed
refine_lead_search15 fields changed- added
Input schema / properties / brief / descriptionAdded value: +"Replacement natural-language brief for the new job." - added
Input schema / properties / fields / descriptionAdded value: +"Business fields to retain. Website and source evidence remain available for verification." - added
Input schema / properties / geography / descriptionAdded value: +"Replacement city, region, country, or Worldwide." - added
Input schema / properties / id / descriptionAdded value: +"Completed source job id returned by an earlier durable search call." - added
Input schema / properties / jobToken / descriptionAdded value: +"Private token belonging to the source job." - added
Input schema / properties / limit / descriptionAdded value: +"Maximum prospects retained by the new job." - added
Input schema / properties / qualifier / descriptionAdded value: +"Replacement public requirements and exclusions." - added
Input schema / properties / target / descriptionAdded value: +"Replacement business target for the new job." - added
Output schema / properties / cancelUrl / descriptionAdded value: +"Authenticated REST URL for canceling queued or running work." - added
Output schema / properties / expiresInSeconds / descriptionAdded value: +"Seconds until the private job and token expire." - added
Output schema / properties / exportUrl / descriptionAdded value: +"Authenticated CSV export URL. Add format=json for JSON." - added
Output schema / properties / id / descriptionAdded value: +"Stable job identifier. Use it with jobToken in every lifecycle call." - added
Output schema / properties / retryUrl / descriptionAdded value: +"Authenticated REST URL for creating a replacement after retryable failure." - added
Output schema / properties / status / descriptionAdded value: +"Current durable job state." - added
Output schema / properties / statusUrl / descriptionAdded value: +"Authenticated REST URL for job status and result pages."
- Changed
research_businesses12 fields changed- added
Input schema / properties / fields / descriptionAdded value: +"Business fields to retain. Website and source evidence remain available for verification." - added
Output schema / properties / diagnostics / descriptionAdded value: +"Source status and explained candidate exclusions." - added
Output schema / properties / hasMore / descriptionAdded value: +"Whether another result page is available." - added
Output schema / properties / limit / descriptionAdded value: +"Maximum prospects requested for this page." - added
Output schema / properties / nextOffset / descriptionAdded value: +"Offset for the next synchronous result page, or null when complete." - added
Output schema / properties / offset / descriptionAdded value: +"Zero-based offset of this page." - added
Output schema / properties / requestId / descriptionAdded value: +"Request identifier for support and diagnostics." - added
Output schema / properties / resultCount / descriptionAdded value: +"Total accepted prospects before response pagination." - added
Output schema / properties / returnedCount / descriptionAdded value: +"Prospects returned in this response page." - added
Output schema / properties / schemaVersion / descriptionAdded value: +"Version of the result contract." - added
Output schema / properties / searchedSources / descriptionAdded value: +"Discovery and first-party source types consulted." - added
Output schema / properties / warnings / descriptionAdded value: +"Limitations the agent should retain with downstream data."
- Changed
retry_lead_search9 fields changed- added
Input schema / properties / id / descriptionAdded value: +"Failed or timed-out source job id." - added
Input schema / properties / jobToken / descriptionAdded value: +"Private token belonging to the source job." - added
Output schema / properties / cancelUrl / descriptionAdded value: +"Authenticated REST URL for canceling queued or running work." - added
Output schema / properties / expiresInSeconds / descriptionAdded value: +"Seconds until the private job and token expire." - added
Output schema / properties / exportUrl / descriptionAdded value: +"Authenticated CSV export URL. Add format=json for JSON." - added
Output schema / properties / id / descriptionAdded value: +"Stable job identifier. Use it with jobToken in every lifecycle call." - added
Output schema / properties / retryUrl / descriptionAdded value: +"Authenticated REST URL for creating a replacement after retryable failure." - added
Output schema / properties / status / descriptionAdded value: +"Current durable job state." - added
Output schema / properties / statusUrl / descriptionAdded value: +"Authenticated REST URL for job status and result pages."
- Changed
sandbox_businesses13 fields changed- added
Input schema / properties / geography / descriptionAdded value: +"Fictional location echoed into deterministic test results." - added
Input schema / properties / target / descriptionAdded value: +"Fictional business type echoed into deterministic test results." - added
Output schema / properties / diagnostics / descriptionAdded value: +"Source status and explained candidate exclusions." - added
Output schema / properties / hasMore / descriptionAdded value: +"Whether another result page is available." - added
Output schema / properties / limit / descriptionAdded value: +"Maximum prospects requested for this page." - added
Output schema / properties / nextOffset / descriptionAdded value: +"Offset for the next synchronous result page, or null when complete." - added
Output schema / properties / offset / descriptionAdded value: +"Zero-based offset of this page." - added
Output schema / properties / requestId / descriptionAdded value: +"Request identifier for support and diagnostics." - added
Output schema / properties / resultCount / descriptionAdded value: +"Total accepted prospects before response pagination." - added
Output schema / properties / returnedCount / descriptionAdded value: +"Prospects returned in this response page." - added
Output schema / properties / schemaVersion / descriptionAdded value: +"Version of the result contract." - added
Output schema / properties / searchedSources / descriptionAdded value: +"Discovery and first-party source types consulted." - added
Output schema / properties / warnings / descriptionAdded value: +"Limitations the agent should retain with downstream data."
- Changed
search_businesses12 fields changed- added
Input schema / properties / fields / descriptionAdded value: +"Business fields to retain. Website and source evidence remain available for verification." - added
Output schema / properties / diagnostics / descriptionAdded value: +"Source status and explained candidate exclusions." - added
Output schema / properties / hasMore / descriptionAdded value: +"Whether another result page is available." - added
Output schema / properties / limit / descriptionAdded value: +"Maximum prospects requested for this page." - added
Output schema / properties / nextOffset / descriptionAdded value: +"Offset for the next synchronous result page, or null when complete." - added
Output schema / properties / offset / descriptionAdded value: +"Zero-based offset of this page." - added
Output schema / properties / requestId / descriptionAdded value: +"Request identifier for support and diagnostics." - added
Output schema / properties / resultCount / descriptionAdded value: +"Total accepted prospects before response pagination." - added
Output schema / properties / returnedCount / descriptionAdded value: +"Prospects returned in this response page." - added
Output schema / properties / schemaVersion / descriptionAdded value: +"Version of the result contract." - added
Output schema / properties / searchedSources / descriptionAdded value: +"Discovery and first-party source types consulted." - added
Output schema / properties / warnings / descriptionAdded value: +"Limitations the agent should retain with downstream data."
- Changed
start_lead_search13 fields changed- added
Input schema / properties / brief / descriptionAdded value: +"Natural-language business, geography, required signals, and exclusions. Use this instead of separate target and geography." - added
Input schema / properties / fields / descriptionAdded value: +"Business fields to retain. Website and source evidence remain available for verification." - added
Input schema / properties / geography / descriptionAdded value: +"City, region, country, or Worldwide. Required with target when brief is omitted." - added
Input schema / properties / limit / descriptionAdded value: +"Maximum accepted prospects retained by the job." - added
Input schema / properties / qualifier / descriptionAdded value: +"Publicly verifiable requirements and exclusions." - added
Input schema / properties / target / descriptionAdded value: +"Business type or concise ideal-customer target. Pair with geography when brief is omitted." - added
Output schema / properties / cancelUrl / descriptionAdded value: +"Authenticated REST URL for canceling queued or running work." - added
Output schema / properties / expiresInSeconds / descriptionAdded value: +"Seconds until the private job and token expire." - added
Output schema / properties / exportUrl / descriptionAdded value: +"Authenticated CSV export URL. Add format=json for JSON." - added
Output schema / properties / id / descriptionAdded value: +"Stable job identifier. Use it with jobToken in every lifecycle call." - added
Output schema / properties / retryUrl / descriptionAdded value: +"Authenticated REST URL for creating a replacement after retryable failure." - added
Output schema / properties / status / descriptionAdded value: +"Current durable job state." - added
Output schema / properties / statusUrl / descriptionAdded value: +"Authenticated REST URL for job status and result pages."
4 tool updates
- Changed
get_lead_search5 fields changed- added
Output schema / properties / results / items / properties / contactRouteAdded value: +{ + "additionalProperties": true, + "type": "object" +} - added
Output schema / properties / results / items / properties / criteriaAdded value: +{ + "items": { + "additionalProperties": true, + "type": "object" + }, + "type": "array" +} - added
Output schema / properties / results / items / properties / prospectStatusAdded value: +{ + "enum": [ + "qualified", + "possible" + ] +} - added
Output schema / properties / results / items / properties / whyMatchAdded value: +{ + "items": { + "type": "string" + }, + "type": "array" +} - changed
Output schema / properties / results / items / requiredPrevious value: -[ - "name" -]New value: +[ + "name", + "prospectStatus", + "whyMatch", + "criteria", + "contactRoute" +]
- Changed
research_businesses5 fields changed- added
Output schema / properties / results / items / properties / contactRouteAdded value: +{ + "additionalProperties": true, + "type": "object" +} - added
Output schema / properties / results / items / properties / criteriaAdded value: +{ + "items": { + "additionalProperties": true, + "type": "object" + }, + "type": "array" +} - added
Output schema / properties / results / items / properties / prospectStatusAdded value: +{ + "enum": [ + "qualified", + "possible" + ] +} - added
Output schema / properties / results / items / properties / whyMatchAdded value: +{ + "items": { + "type": "string" + }, + "type": "array" +} - changed
Output schema / properties / results / items / requiredPrevious value: -[ - "name" -]New value: +[ + "name", + "prospectStatus", + "whyMatch", + "criteria", + "contactRoute" +]
- Changed
sandbox_businesses5 fields changed- added
Output schema / properties / results / items / properties / contactRouteAdded value: +{ + "additionalProperties": true, + "type": "object" +} - added
Output schema / properties / results / items / properties / criteriaAdded value: +{ + "items": { + "additionalProperties": true, + "type": "object" + }, + "type": "array" +} - added
Output schema / properties / results / items / properties / prospectStatusAdded value: +{ + "enum": [ + "qualified", + "possible" + ] +} - added
Output schema / properties / results / items / properties / whyMatchAdded value: +{ + "items": { + "type": "string" + }, + "type": "array" +} - changed
Output schema / properties / results / items / requiredPrevious value: -[ - "name" -]New value: +[ + "name", + "prospectStatus", + "whyMatch", + "criteria", + "contactRoute" +]
- Changed
search_businesses5 fields changed- added
Output schema / properties / results / items / properties / contactRouteAdded value: +{ + "additionalProperties": true, + "type": "object" +} - added
Output schema / properties / results / items / properties / criteriaAdded value: +{ + "items": { + "additionalProperties": true, + "type": "object" + }, + "type": "array" +} - added
Output schema / properties / results / items / properties / prospectStatusAdded value: +{ + "enum": [ + "qualified", + "possible" + ] +} - added
Output schema / properties / results / items / properties / whyMatchAdded value: +{ + "items": { + "type": "string" + }, + "type": "array" +} - changed
Output schema / properties / results / items / requiredPrevious value: -[ - "name" -]New value: +[ + "name", + "prospectStatus", + "whyMatch", + "criteria", + "contactRoute" +]
6 tool updates
- Added
cancel_lead_search - Changed
get_lead_search2 fields changed- added
Output schema / properties / progressAdded value: +{ + "additionalProperties": true, + "type": "object" +} - changed
Output schema / properties / status / enumPrevious value: -[ - "queued", - "running", - "completed", - "failed" -]New value: +[ + "queued", + "running", + "completed", + "failed", + "canceled" +]
- Changed
refine_lead_search3 fields changed- added
Output schema / properties / cancelUrlAdded value: +{ + "type": "string" +} - changed
Output schema / properties / status / enumPrevious value: -[ - "queued", - "running", - "completed", - "failed" -]New value: +[ + "queued", + "running", + "completed", + "failed", + "canceled" +] - changed
Output schema / requiredPrevious value: -[ - "id", - "status", - "jobToken", - "statusUrl", - "exportUrl", - "retryUrl", - "expiresInSeconds" -]New value: +[ + "id", + "status", + "statusUrl", + "exportUrl", + "retryUrl", + "cancelUrl", + "expiresInSeconds" +]
- Changed
retry_lead_search3 fields changed- added
Output schema / properties / cancelUrlAdded value: +{ + "type": "string" +} - changed
Output schema / properties / status / enumPrevious value: -[ - "queued", - "running", - "completed", - "failed" -]New value: +[ + "queued", + "running", + "completed", + "failed", + "canceled" +] - changed
Output schema / requiredPrevious value: -[ - "id", - "status", - "jobToken", - "statusUrl", - "exportUrl", - "retryUrl", - "expiresInSeconds" -]New value: +[ + "id", + "status", + "statusUrl", + "exportUrl", + "retryUrl", + "cancelUrl", + "expiresInSeconds" +]
- Added
sandbox_businesses - Changed
start_lead_search4 fields changed- added
Input schema / properties / idempotencyKeyAdded value: +{ + "description": "Stable key for safely retrying the same job creation request.", + "maxLength": 128, + "minLength": 8, + "type": "string" +} - added
Output schema / properties / cancelUrlAdded value: +{ + "type": "string" +} - changed
Output schema / properties / status / enumPrevious value: -[ - "queued", - "running", - "completed", - "failed" -]New value: +[ + "queued", + "running", + "completed", + "failed", + "canceled" +] - changed
Output schema / requiredPrevious value: -[ - "id", - "status", - "jobToken", - "statusUrl", - "exportUrl", - "retryUrl", - "expiresInSeconds" -]New value: +[ + "id", + "status", + "statusUrl", + "exportUrl", + "retryUrl", + "cancelUrl", + "expiresInSeconds" +]
3 tool updates
- Changed
refine_lead_search2 fields changed- added
Output schema / properties / retryUrlAdded value: +{ + "type": "string" +} - changed
Output schema / requiredPrevious value: -[ - "id", - "status", - "jobToken", - "statusUrl", - "exportUrl", - "expiresInSeconds" -]New value: +[ + "id", + "status", + "jobToken", + "statusUrl", + "exportUrl", + "retryUrl", + "expiresInSeconds" +]
- Added
retry_lead_search - Changed
start_lead_search2 fields changed- added
Output schema / properties / retryUrlAdded value: +{ + "type": "string" +} - changed
Output schema / requiredPrevious value: -[ - "id", - "status", - "jobToken", - "statusUrl", - "exportUrl", - "expiresInSeconds" -]New value: +[ + "id", + "status", + "jobToken", + "statusUrl", + "exportUrl", + "retryUrl", + "expiresInSeconds" +]
6 tool updates
- Changed
explain_crawdar1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "additionalProperties": false, + "properties": { + "guidance": { + "items": { + "type": "string" + }, + "type": "array" + }, + "interfaces": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "resultLanes": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + } + }, + "required": [ + "resultLanes", + "guidance", + "interfaces" + ], + "type": "object" +}
- Added
get_lead_search - Added
refine_lead_search - Added
research_businesses - Changed
search_businesses7 fields changed- added
Input schema / properties / includeDiagnosticsAdded value: +{ + "default": true, + "description": "Include source status and explained exclusions.", + "type": "boolean" +} - added
Input schema / properties / limitAdded value: +{ + "default": 10, + "description": "Maximum businesses in this response page.", + "maximum": 50, + "minimum": 1, + "type": "integer" +} - added
Input schema / properties / offsetAdded value: +{ + "default": 0, + "description": "Zero-based result offset for this response page.", + "minimum": 0, + "type": "integer" +} - added
Input schema / properties / outputAdded value: +{ + "default": "compact", + "description": "Compact minimizes tokens. Full preserves every returned field.", + "enum": [ + "compact", + "full" + ] +} - changed
Input schema / properties / qualifier / descriptionPrevious value: -"Optional public-evidence requirements."New value: +"Optional required signals and exclusions that can be checked in public evidence." - changed
Input schema / properties / target / descriptionPrevious value: -"Business type or plain-language target."New value: +"Business type or concise target." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "additionalProperties": true, + "properties": { + "diagnostics": { + "additionalProperties": true, + "type": "object" + }, + "durationMs": { + "type": "integer" + }, + "hasMore": { + "type": "boolean" + }, + "limit": { + "type": "integer" + }, + "nextOffset": { + "type": [ + "integer", + "null" + ] + }, + "offset": { + "type": "integer" + }, + "remainingFreeSearches": { + "type": "integer" + }, + "requestId": { + "type": "string" + }, + "resultCount": { + "type": "integer" + }, + "results": { + "items": { + "additionalProperties": true, + "properties": { + "city": { + "type": "string" + }, + "confidence": { + "type": "number" + }, + "email": { + "type": "string" + }, + "entityConfidence": { + "type": "number" + }, + "evidence": { + "items": { + "additionalProperties": true, + "properties": { + "kind": { + "type": "string" + }, + "label": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "evidenceQuality": { + "enum": [ + "strong", + "moderate", + "weak" + ] + }, + "fitStatus": { + "enum": [ + "verified", + "likely" + ] + }, + "name": { + "type": "string" + }, + "phone": { + "type": "string" + }, + "qualificationChecks": { + "items": { + "additionalProperties": true, + "type": "object" + }, + "type": "array" + }, + "qualificationConfidence": { + "type": "number" + }, + "sourceUrls": { + "items": { + "type": "string" + }, + "type": "array" + }, + "website": { + "type": "string" + }, + "websiteUrl": { + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + }, + "type": "array" + }, + "returnedCount": { + "type": "integer" + }, + "schemaVersion": { + "type": "string" + }, + "searchedSources": { + "items": { + "type": "string" + }, + "type": "array" + }, + "warnings": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "schemaVersion", + "requestId", + "resultCount", + "returnedCount", + "offset", + "limit", + "hasMore", + "results", + "searchedSources", + "warnings" + ], + "type": "object" +}
- Added
start_lead_search
2 tool updates
- First observed
explain_crawdar - First observed
search_businesses
Frequently Asked Questions
Claiming proves that you control a remote MCP connector. It does not move, proxy, or interrupt the server.
Open the connector listing, choose Claim ownership, and sign in to Glama.
Complete one verification method:
GitHub identity — fastest for official registry listings. For a namespace such as
io.github.alice/server, link the matching GitHub user, then choose Claim with GitHub. An organization namespace such asio.github.acme/serveralso needs that organization to have installed the Glama AI GitHub App and approved its permissions, because GitHub discloses organization membership only to apps it has installed. Use HTTP or DNS when it has not.HTTP challenge — works when you can deploy a public file. Generate a token, publish the exact JSON Glama shows at
/.well-known/glama.jsonon the same origin as the connector, then choose Check HTTP challenge.DNS challenge — works when you control DNS but cannot change the server. Generate a token, create the exact TXT record Glama shows, wait for it to propagate, then choose Check DNS challenge.
After verification, Glama sends a confirmation email and gives you access to listing details, thumbnails, health checks, and analytics. Keep the HTTP file or DNS record in place: Glama periodically checks it and ownership remains verified while the token is discoverable.
The HTTP ownership file has this structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"claim": "glama_claim_..."
}Claim tokens are opaque, stable, and bound to the signed-in Glama account. They contain no email address or other personal information. If Glama can no longer discover a verified HTTP or DNS token, it starts a seven-day grace period before removing claim-based access. Restore the same token during that period to keep ownership verified. Never publish an email address, Glama session token, GitHub token, or connector credential as ownership proof.
If verification fails, confirm that you copied the current token exactly. The HTTP file must be public, return valid JSON with a successful HTTP response, and stay on the connector's origin. DNS changes may need more time to propagate. A claim cannot transfer to a different origin or hostname: if the connector target changes, Glama starts the grace period and the new target must be claimed separately after the previous claim is released.
For a connector linked to the official MCP Registry, registry updates continue to replace its name, description, and URL by default. After claiming, open Manage connector and enable Use Glama listing details as the source of truth if edits made on Glama should be preserved. Categories and thumbnails are always managed on Glama; registry linkage and technical connection settings continue to sync.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
To improve your MCP server's ranking:
Claim ownership of the server listing
Complete the server profile with an accurate description and thumbnail
Provide a test profile so Glama can connect to and evaluate the server
Keep tool definitions clear and complete to earn a high Tool Definition Quality Score (TDQS)
Route real usage through the Glama Gateway; more recorded successful server uses also improve the ranking
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Connectors
Web research for agents: quality-scored Google search, webpage extraction, and deep research.
Web search, fetch, extract, and research for AI agents. Markdown output + AI-synthesized answers.
Source-traced evidence research for AI agents. We organise the evidence; you decide.
Compact, citation-verifiable public web context for AI agents, paid per use with x402.
Related MCP Servers
- FlicenseNot gradedqualityBmaintenanceEnables agents to search SEC filings, earnings transcripts, and EU regulations with ready-to-cite evidence, including exact passages and source links.-
- AlicenseNot gradedqualityCmaintenanceEnables AI chat clients to perform market research and competitive intelligence by gathering company overviews, competitor lists, product portfolios, pricing snapshots, and recent news via live Tavily search.MIT
- AlicenseAqualityAmaintenanceEvidence-backed web research for AI agents. Real-time search with cited claims, confidence scores, and compare mode showing raw LLM hallucination vs evidence-backed answers.520Apache 2.0
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to research U.S. companies and associated people using official state registries and free regulatory datasets, with normalized evidence and optional browser automation.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.
TDQS
Most tools map to distinct lifecycle actions (start/get/cancel/refine/retry), and the descriptions make those boundaries clear. The only real overlap is between research_businesses and search_businesses, which both perform synchronous lookups but are separated by natural-language vs structured input.
All tools follow a consistent verb_noun snake_case pattern, with lead_search reused across lifecycle operations. Even explain_crawdar and sandbox_businesses fit the naming convention well.
Nine tools is well within the appropriate range for a business-research MCP server. The count balances synchronous search, a durable async job lifecycle, sandbox testing, and self-documentation without feeling bloated.
The async lead-search lifecycle is well covered with start, get, cancel, refine, and retry, and the synchronous and sandbox search tools cover adjacent needs. However, export is mentioned in start_lead_search but not exposed as a tool, and there is no way to list existing jobs, leaving minor gaps.