Skip to main content
Glama

Server Details

Funding rounds, AI startup and investor search, email discovery, agent-readiness. No API key.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
99.7% over 22 days
Last Tested
Transport
Streamable HTTP · MCP 2025-06-18
URL

TDQS

B3.2/5.0

Scored across 81 tools

Disambiguation2/5

Many tools overlap heavily: search_startups vs generate_startup_list vs find_stealth_startups, enrich_email vs get_person_by_email vs validate_email vs discover_email, and call_api vs run_agent_task vs get_api_task. Descriptions help in places, but an agent could easily choose the wrong search, enrichment, or market-map helper. Broad names like deep_intelligence, my_apis, and spend_limits add further ambiguity.

Naming Consistency3/5

Most names are snake_case, but the set mixes clear verb_noun patterns (search_startups, submit_news, update_person) with noun-only or vague names (my_apis, spend_limits, deep_intelligence, find_logo). The conventions are readable but not predictable enough to guide selection reliably.

Tool Count1/5

81 tools is far too many for a single MCP server, spanning startups, investors, people, market maps, YouTube, content generation, domains, monitoring, credits, and ads. The surface is an aggregator catalogue rather than a well-scoped tool set, forcing agents to navigate excessive choice.

Completeness3/5

Breadth is high, but several lifecycle areas are incomplete: startups, investors, people, and products support submit/update but no delete, and market maps support create/get/edit/style/publish but no list or delete. Monitoring and credit flows are reasonably covered, but dead ends remain.

Available Tools

81 tools
call_apicall apiA
Read-only
Inspect

Call any API, MCP server, chat endpoint or agent listed on StartupHub (find one with find_apis), billed to your StartupHub credits. REST: operation "METHOD /path" plus path, query, body. MCP: operation = tool name plus arguments. Chat: operation = model id plus messages. Agent: task; a long agent task answers with a task_id, follow it with get_api_task. label names what the call is for in your console. Add provider_key only when the listing needs your own key for that service. Needs a free StartupHub.ai account.

NameRequiredDescriptionDefault
bodyNo
pathNo
taskNo
labelNoWhat this call is for, e.g. "book the reservation". Shown in your console.
queryNo
messagesNo
argumentsNo
operationNo
listing_idYesThe id from find_apis
provider_keyNoYour key for that service, used for this call only

TDQS

A3.7/5.0
Behavior1/5

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

Annotations declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, but the description advertises calling arbitrary third-party APIs with 'METHOD /path' plus body and gives the example 'book the reservation' — plainly state-mutating and open-world. The description directly undercuts the safety annotations an agent would otherwise rely on for approval decisions.

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 is front-loaded and every clause adds information (mode formats, follow-up tool, credits, account requirement). It is telegraphic and run-on ('REST: ... MCP: ... Chat: ... Agent: ...'), which costs a little readability but not content value.

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 10-parameter generic proxy with no output schema, it covers billing, the free-account prerequisite, the task_id follow-up path and optional provider key. It does not cover error behavior, rate limits, or whether methods like GET vs DELETE behave differently — relevant given the destructive potential.

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 only 30%, but the description compensates by explaining the operation string per mode (REST 'METHOD /path', MCP tool name + arguments, chat model id + messages, agent task), how path/query/body and label apply, and when provider_key is needed. Remaining gaps are structural detail of the free-form body/query objects, which the schema types only loosely.

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 (call any API, MCP server, chat endpoint or agent listed on StartupHub) and enumerates the four invocation modes with their operation formats. An agent can distinguish this from find_apis (discovery) and get_api_task (follow-up) without opening the schema.

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?

Explicitly routes discovery to find_apis, long agent tasks to get_api_task, and constrains provider_key to 'only when the listing needs your own key'. Lacks an explicit statement of when not to use it or what happens for unsupported listing types, 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.

cancel_monitor_watchCancel monitor watchA
Destructive
Inspect

Stop a company watch. Pass id from list_monitor_watches. Needs a free StartupHub.ai account.

NameRequiredDescriptionDefault
idYes

TDQS

A4.2/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, so the agent knows this mutates state. The description adds one useful non-annotation fact, the free-account requirement, but says nothing about irreversibility or what happens to the watch after cancellation. It clears the lower annotated bar without adding much.

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

Conciseness5/5

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

Three short sentences, action first, prerequisite input second, account requirement last. Nothing is padded or repeated from structured fields.

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 one-parameter destructive cancel with no output schema, the definition covers purpose, input provenance, and auth. What remains — confirmation semantics, behavior on a bad id — is nice-to-have rather than essential.

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 0%, so the description must carry the burden — and it does, specifying that 'id' is the watch identifier and that it comes from list_monitor_watches. That is meaningful semantics beyond the bare string type, though it omits format expectations.

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 ('Stop') and resource ('company watch'), which cleanly separates it from create_monitor_watch and list_monitor_watches. An agent can identify the operation without opening the schema.

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 names the sibling that supplies the required input ('Pass id from list_monitor_watches') and states the account prerequisite, which is genuine routing guidance. It does not describe when *not* to cancel, but there is no obvious alternative tool, so the gap is minor.

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

check_domain_ratingCheck domain ratingA
Read-only
Inspect

Ahrefs Domain Rating, 0 to 100, for a domain. Requires an API key. Needs a free StartupHub.ai account.

NameRequiredDescriptionDefault
domainYesDomain or URL, e.g. example.com

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already establish readOnly/openWorld/non-destructive, so the bar is lower. The description adds real prerequisite context beyond the annotations: an API key is required and a free StartupHub.ai account is needed, warning the agent about auth/credential failure modes. It stops short of noting rate limits, credit consumption, or third-party (Ahrefs) data latency.

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?

Three short fragments, front-loaded with the returned metric. Very little waste, though the final two sentences both convey 'you need credentials,' a mild redundancy.

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 single-parameter read tool with no output schema, the essentials are covered: what the value is, its scale, and the credential requirements. The one substantive gap is sibling disambiguation against check_effective_domain_rating.

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?

Only one parameter, and schema coverage is 100% — the schema already documents it in more detail ('Domain or URL, e.g. example.com') than the description's bare 'for a domain'. Baseline 3 applies since the description adds no syntax or normalization rules.

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?

States a specific verb+resource+return metric: 'Ahrefs Domain Rating, 0 to 100, for a domain.' An agent knows exactly what comes back. It does not, however, distinguish itself from the near-identical sibling check_effective_domain_rating, which is the main ambiguity here.

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

Usage Guidelines2/5

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

There is no guidance on when to use this rather than check_effective_domain_rating, check_trust_reputation, or scan_company_technology. The only 'guidance' offered is prerequisite-related (API key, account), not situational.

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

check_effective_domain_ratingCheck effective domain ratingA
Read-only
Inspect

Effective Domain Rating: a 0 to 100 read of visibility that is actually realized, set next to Ahrefs Domain Rating. Often takes 30 to 60 seconds. Requires an API key. Needs a free StartupHub.ai account.

NameRequiredDescriptionDefault
domainYesDomain or URL.
keywordNoOptional query to score against. Otherwise one is taken from the homepage title.

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnlyHint, destructiveHint: false, openWorldHint), so the bar is lower. The description nonetheless adds genuinely useful operational context: a 30-60 second latency expectation, an API-key requirement, and a free StartupHub.ai account prerequisite.

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 definition is compact and front-loads the core metric definition before latency and auth prerequisites. Every clause carries information; no redundancy.

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 read-only tool with full schema coverage and annotations declaring safety, the description supplies what the structured fields cannot: latency, auth, and account prerequisites. Only the missing sibling routing against check_domain_rating keeps it from being complete.

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?

Schema description coverage is 100%, so the schema already documents both 'domain' and 'keyword' (including the default-from-homepage-title behavior). The description adds no parameter-level meaning beyond the schema, which is the baseline-3 case.

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 states a specific resource and metric: a 0-100 'effective' domain rating measuring realized visibility, positioned against Ahrefs Domain Rating. It is clear what the tool returns, but the differentiation from the near-identically named sibling check_domain_rating is only implied by 'set next to Ahrefs Domain Rating' rather than stated.

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

Usage Guidelines2/5

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

There is no explicit when-to-use, when-not-to-use, or alternative routing, despite the sibling check_domain_rating being easily confused with this tool. The phrase 'set next to Ahrefs Domain Rating' hints at a complementary relationship but never tells the agent which of the two tools to pick or why.

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

check_site_speedCheck site speedA
Read-only
Inspect

Website Speed Test. PageSpeed scores and Core Web Vitals for a public URL. strategy is mobile or desktop. Often takes 30 to 70 seconds. Requires an API key. Needs a free StartupHub.ai account.

NameRequiredDescriptionDefault
urlYesPage URL or domain.
strategyNoDefault mobile.

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds genuinely useful behavior beyond that: a latency expectation ('Often takes 30 to 70 seconds') and auth requirements (API key, StartupHub.ai account). These are the kind of traits an agent needs for planning.

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?

Very short and front-loaded: purpose first, then parameter/latency/auth facts. Every fragment carries information. The telegraphic style is slightly abrupt but wastes nothing.

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?

With no output schema, the description usefully names the return content (PageSpeed scores and Core Web Vitals) and covers latency and auth prerequisites. For a simple 2-parameter read-only tool this is nearly complete, though it never confirms what the response shape or units look like.

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?

Schema description coverage is 100%, so both parameters are already documented. 'strategy is mobile or desktop' merely restates the enum, and 'for a public URL' adds only a small constraint (URL must be public). Baseline 3 is appropriate when the schema carries the parameter detail.

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?

States a specific verb (speed test/check) and resource (PageSpeed scores and Core Web Vitals) and scopes it to 'a public URL,' so an agent immediately knows what it returns. No sibling in the list offers a competing speed test, so sibling differentiation isn't required. Clear but not as sharp as a 5 would demand.

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 implied: testing the speed of a public URL. Prerequisites ('Requires an API key. Needs a free StartupHub.ai account') are given, which helps an agent know if it can call the tool. However, there is no explicit when-to-use/when-not guidance or named alternatives, so this is minimum-viable.

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

check_trust_reputationCheck trust and reputationA
Read-only
Inspect

Trust and Reputation. A 0 to 100 score from security, privacy, and public record for a domain. Requires an API key. Needs a free StartupHub.ai account.

NameRequiredDescriptionDefault
domainYesDomain or URL.
companyNoOptional company name, used when the domain alone is ambiguous.

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true and destructiveHint=false, so safety is covered. The description adds meaningful context beyond that: the auth requirement (API key plus account) and the composition of the score (security, privacy, public record), which is what the agent gets back.

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?

Three short, front-loaded sentences with no filler; the output semantics lead and the prerequisites follow. Slightly telegraphic ('Trust and Reputation.' as a header fragment), but nothing wasted.

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?

With no output schema, the description carries the return-value burden and does state what the score is and its range. Params and safety are covered by schema and annotations; the only real omission is how this differs from the sibling domain-rating tools.

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?

Schema coverage is 100% with only two parameters, so the schema already documents 'domain' and 'company' fully. The description adds no format, syntax, or disambiguation guidance beyond the schema, which is the expected baseline when the schema does the work.

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?

States the resource (a domain) and the output ('A 0 to 100 score from security, privacy, and public record'), which is more specific than a bare 'check trust'. However, it never distinguishes itself from the closely named siblings check_domain_rating and check_effective_domain_rating, so an agent can't tell from the description which score tool to pick.

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

Usage Guidelines2/5

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

The description supplies prerequisites ('Requires an API key', 'Needs a free StartupHub.ai account') but no when-to-use guidance and no routing away from the near-identical sibling rating tools. It tells the agent how to be allowed to call it, not when to choose it.

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

create_market_mapCreate a market mapAInspect

Build a startup market map from a plain-language request, e.g. 'fintech startups in London' or 'AI coding assistants split by use case'. The map splits the market into segments and fills each with real companies from StartupHub.ai's database of startup profiles, with their logos. Returns image_url (a PNG of the finished map: show it to the user), editor_url (open the map in Market Map Maker to edit it by hand or by chat), the segments with every company and its profile link, and the full map spec as JSON. Set publish: true to also get a public link. Uses one market map credit from the account's monthly allowance. Answers within about 15 seconds: when status is 'building' the map is saved and still filling, section by section, so follow it with get_market_map (map_id) every few seconds until status is 'done', not with another create_market_map (the interactive map view in Claude does this itself and shows each section as it fills). Same result as POST /api/v1/market-maps. Needs a free StartupHub.ai account.

NameRequiredDescriptionDefault
promptYesWhat to map, in plain words: a sector, theme, region, or a list of companies and their competitors.
publishNoAlso publish the map at a public link. Default false (private to the account).

TDQS

A4.8/5.0
Behavior5/5

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

Goes well beyond the annotations (which only say non-readOnly, non-destructive, closed-world): it discloses the credit cost per call, the ~15 second latency, the async 'building' status semantics, the account requirement, and the equivalent REST endpoint. That is exactly the operational context an agent needs before invoking.

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 outcome, return values and polling instructions are front-loaded and every sentence carries operational weight. It is dense and a little run-on in the middle polling sentence, but there is 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?

No output schema exists, and the description fully enumerates the return shape (image_url, editor_url, segments with companies and profile links, map spec JSON, optional public link). Combined with latency, async status and auth requirements, an agent has everything needed to call and follow up correctly.

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 schema already documents both params; the baseline is 3. The description still adds value by giving example prompt phrasings ('fintech startups in London', 'AI coding assistants split by use case') and restating the publish:true behavior in terms of a public link.

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 ('Build a startup market map from a plain-language request') and immediately gives concrete example prompts. It is clearly distinguishable from siblings like get_market_map, edit_market_map, style_market_map and publish_market_map, which are all referenced or implied as separate steps.

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?

Explicitly routes the agent: when status is 'building', follow with get_market_map (map_id) every few seconds until 'done', and explicitly warns NOT to call create_market_map again. It also states the account prerequisite and that the interactive Claude view polls on its own.

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

create_monitor_watchCreate monitor watchAInspect

Monitor. Watch a company site and get alerts when public signals change. Pass a domain. Optional frequency: weekly, daily, 12h, or 4h, clamped to the plan. Optional signals. Optional webhook_url (https). Requires an API key. Needs a free StartupHub.ai account.

NameRequiredDescriptionDefault
domainYesCompany domain or URL.
signalsNoSubset of: news, funding, jobs, tech_stack, pricing, status, leadership, customers, product_launches.
frequencyNo
webhook_urlNohttps URL that receives an alert when something changes.

TDQS

A4/5.0
Behavior4/5

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

Annotations already flag readOnlyHint=false, openWorldHint=true, destructiveHint=false. The description adds genuinely useful behavior beyond that: API key requirement, free-account prerequisite, and that frequency is clamped to the plan. It stops short of describing what happens on creation (e.g., returned watch identifier).

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 fragments that each carry information, no filler. The telegraphic style ('Monitor. Watch...') is terse but readable and efficient.

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

Completeness3/5

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

For a 4-parameter mutation with no output schema, the description covers inputs and prerequisites well, but says nothing about the result of creating a watch (ID, confirmation, error behavior). Adequate but with a clear gap for a creation tool.

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 75%, and the description compensates by naming the enum values (weekly/daily/12h/4h), specifying the https-only constraint on webhook_url, and clarifying that signals is optional. 'Clamped to the plan' adds a constraint absent from the schema.

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 ('Watch a company site and get alerts when public signals change') and clearly positions itself against siblings like cancel_monitor_watch and list_monitor_watches. An agent can identify it without opening the schema.

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?

Gives prerequisites ('Requires an API key', 'Needs a free StartupHub.ai account') which imply when it can be called, but never states when to use it versus alternatives such as list_monitor_watches or conditions for creating a watch. Usage 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.

deep_intelligenceDeep intelligence lookupA
Read-only
Inspect

Run a deep-intelligence lookup on any entity across our graph of 25,000+ AI startups, 14,000+ investors and 75,000+ people. Give a name, company, domain, LinkedIn URL, or email and get a consolidated dossier: company facts, funding, people, technographics, social + web presence, and AI-summarized signals. This is the widest single call in the catalogue, resolving hundreds of enrichment data points per entity. Same result as GET /api/v1/intel/lookup. Needs a free StartupHub.ai account.

NameRequiredDescriptionDefault
qYesThe entity to look up: a name, company, domain, LinkedIn URL, or email.

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, and destructiveHint=false, so the safety profile is covered. The description adds genuinely useful context beyond that: the auth requirement ('Needs a free StartupHub.ai account') and an equivalent REST endpoint. It omits rate limits and cost, but adds real value on top of 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.

Conciseness4/5

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

Front-loaded with the core action and efficient throughout, with each sentence carrying distinct information (scope, accepted inputs, dossier contents, breadth, endpoint, auth). Slightly verbose in enumerating dossier components, but no filler.

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?

There is no output schema, and the description compensates by enumerating the dossier contents (company facts, funding, people, technographics, social/web presence, AI signals). Combined with annotations and the auth note, an agent has enough to invoke it correctly.

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?

Schema coverage is 100% and the single parameter is fully self-documented; the description's list of accepted input types simply restates the schema. Baseline 3 is appropriate since it adds no syntax or format detail beyond the schema.

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 ('run a deep-intelligence lookup on any entity') and explicitly positions it as 'the widest single call in the catalogue,' which cleanly distinguishes it from focused siblings like enrich_company, get_startup, or search_people.

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?

It gives clear input context (name, company, domain, LinkedIn URL, or email) and hints at breadth via 'widest single call,' but never explicitly says when to prefer this over the many narrower siblings such as enrich_company or get_company_funding. Usage is implied rather than routed.

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

discover_emailDiscover a professional emailA
Read-only
Inspect

Find a real, deliverable professional email for a person at a company. Pass first name + last name + the company domain; get back the verified address, a confidence score, and a short note about who it likely reaches. Charges 1 credit only when an address is found. May take a moment on first call — if the response comes back with no matches, call this tool again with the same args and the answer typically returns instantly. Pairs naturally with scan_agent_readiness for outbound prospecting: scan a prospect's site for a 0-100 AI-readiness score, find the owner via web search, then call this tool for the verified email — the readiness gaps become the outreach hook.

NameRequiredDescriptionDefault
roleNoOptional: the person's role, e.g. CEO or co-founder. A confirmed first-name address for a founder or CEO is rated high confidence.
domainYes
lastNameYes
firstNameYes

TDQS

A4.3/5.0
Behavior5/5

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

Annotations cover the safety profile (readOnly, non-destructive, openWorld), and the description adds rich context on top: billing is triggered only when an address is found, first call may be slow with a documented retry pattern, and it previews the return shape (verified address, confidence score, reach note). That is exactly the behavioral disclosure annotations cannot supply.

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 purpose, then inputs/outputs, cost, and retry behavior — each sentence earns its place. The closing pairing sentence is longer and more narrative than the rest, but it does route an agent toward a real workflow.

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 still explains what comes back (address, confidence score, reach note), the cost model, the latency/retry quirk, and the inputs. An agent has everything needed to invoke it correctly and interpret the result.

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 only 25% (only 'role' documented), so the description carries most of the burden and does describe the three required inputs semantically. It also adds nuance for 'role' (founder/CEO first-name matches rated high confidence), though it omits format details like whether the domain should include scheme/www.

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?

States a specific verb+resource with scope: 'Find a real, deliverable professional email for a person at a company' and specifies the required inputs (first name, last name, company domain). It implicitly separates discovery from adjacent siblings like validate_email and enrich_email, but never names them, so the differentiation is left to inference.

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 usage context: pass first + last name + domain, charges 1 credit only on success, retry with identical args if no matches come back, and a pairing workflow with scan_agent_readiness. Strong guidance, but no explicit when-NOT-to-use or an alternative for the same task (e.g. validate_email for an address already in hand).

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

edit_market_mapEdit a market mapA
Destructive
Inspect

Change a market map the account owns or co-authors, in plain words, the way the chat in Market Map Maker does: 'move Cyera to Growth Stage', 'add a section of voice AI', 'remove Acme', 'make it dark', 'sort by funding', or a pasted list of companies with an instruction above it. Takes map_id from create_market_map or get_market_map. The change is saved to the same map, so the editor and any public page show it. Returns the same fields as create_market_map, including status: when it is 'building', call get_market_map until it is 'done'. Uses one market map credit only when the edit adds companies; style and layout edits are free. Needs a free StartupHub.ai account.

NameRequiredDescriptionDefault
map_idYesThe map to change (map_id from create_market_map or get_market_map).
instructionYesWhat to change, in plain words. A long pasted list is fine: put the instruction above it.

TDQS

A4.4/5.0
Behavior5/5

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

Goes well beyond annotations: changes are saved in place and surface on the public page, the return shape mirrors create_market_map with a status field requiring polling, and billing is disclosed (one credit only when companies are added; style/layout edits free). It also names a concrete removal example ("remove Acme"), which is consistent with destructiveHint=true and makes the destructive surface tangible.

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 opening clause front-loads the capability and the example instructions are the highest-value content. It drifts into a long run-on with billing and account requirements appended, but each sentence carries non-redundant information.

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 compensates by describing the return shape (same fields as create_market_map, including status) and the async polling requirement. Auth, cost, and persistence are all covered, leaving nothing an agent needs before calling.

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?

Schema coverage is 100% and the schema already states where map_id comes from and that long pasted lists are fine with the instruction above them. The description's example instructions add flavor but no constraints or format rules beyond the schema, so it sits at the baseline.

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 ("Change a market map the account owns or co-authors, in plain words") and immediately distinguishes itself from create_market_map and get_market_map by naming both as the source of map_id. The example instructions make the nature of the operation unmistakable.

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?

Explicitly routes the agent: map_id comes from create_market_map or get_market_map, and when status is 'building' the agent should poll get_market_map until 'done'. It lacks an explicit exclusion statement (e.g. don't use this to create a new map or to reorder outside style/layout), so it falls just 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.

enrich_companyAI-enrich a companyAInspect

Build a company profile from a name and optional website or LinkedIn URL. Returns the description, sector, headquarters, founding year, and public links that were found. Needs a free StartupHub.ai account.

NameRequiredDescriptionDefault
nameYes
websiteNo
linkedin_urlNo

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false, openWorldHint=true, destructiveHint=false, and 'build a profile' is consistent with a non-read, open-world operation. The description adds value annotations do not carry: the account prerequisite and the concrete set of returned attributes.

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

Conciseness5/5

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

Three short sentences, front-loaded with the core action, then the return shape, then the prerequisite. Every sentence carries information an agent needs; no filler.

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?

With no output schema, the description correctly enumerates the returned fields; with annotations covering safety, the remaining burden is auth/cost context, and the free-account note covers the main part. It does not mention credit consumption or latency, which neighboring usage/credit tools suggest is relevant.

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?

Schema coverage is 0%, so the description is the only source of parameter meaning. It correctly identifies 'name' as required and website/LinkedIn as optional, but adds no format, encoding, or URL-shape guidance and does not explain how the two optional identifiers are combined or prioritized.

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?

Specific verb+resource: 'Build a company profile' with named inputs (name, website, LinkedIn URL) and named outputs (description, sector, HQ, founding year, links). It is distinguishable from most siblings, but the description never explicitly contrasts itself with the nearby get_company_by_linkedin / get_startup_by_domain tools, which an agent could plausibly confuse it with.

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 implied by the name/output-fields framing, and one prerequisite is stated ('Needs a free StartupHub.ai account'). However, there is no explicit when-to-use vs when-not guidance and no routing to alternatives such as get_company_by_linkedin or enrich_email, so the agent must infer selection.

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

enrich_emailEnrich an email addressA
Read-only
Inspect

One-call CRM/inbox enrichment. Pass an email, get back: the best available name and its source, the person's public Gravatar profile when they have one (name, title, company, location, verified social accounts), the domain's mail provider, matched person record (if known), the email's domain matched against startups + investors (with funding intel for VC-backed scoring), a heuristic name guess from the local part if person is unknown, and a flag for free email providers (gmail/outlook/etc) so you can skip company matching on consumer addresses. The killer endpoint for HubSpot/Salesforce auto-enrichment, Gmail/Outlook plugins, and lead-scoring pipelines. 1 profile credit (cheaper than chaining get_person_by_email + get_startup_by_domain + get_investor_by_domain separately). Needs a free StartupHub.ai account.

NameRequiredDescriptionDefault
emailYes

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnlyHint=true, destructiveHint=false), so the description adds the operational context that matters: cost of 1 profile credit, the requirement of a free StartupHub.ai account, and the full return payload. It stops short of describing failure/fallback behavior when Gravatar or person matching misses, though the 'best available' and 'if person is unknown' phrasing partially covers this.

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 core contract ('Pass an email, get back: ...') followed by return fields, then use cases, then cost/auth. The colon-delimited return list is efficient, but marketing phrasing ('The killer endpoint for...') and the credit-comparison sentence are slightly padded relative to the informational payload.

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?

No output schema exists, and the description compensates by enumerating the returned fields in order of importance, plus auth requirement and per-call cost. For a single-parameter read-only enrichment tool, an agent has everything needed to call it and interpret the result.

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?

One parameter with 0% schema description coverage, so the description carries the burden: 'Pass an email' identifies the input, and the free-provider/local-part discussion implies the expected format (a real address whose domain and local part are parsed). It never spells out format constraints or invalid-input behavior, so it is not fully compensating, but it adds real meaning beyond the bare 'email: string'.

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 (enrich) plus resource (email address) and enumerates exactly what comes back, including name/source, Gravatar profile, mail provider, matched person, startup/investor domain match, name heuristic, and free-provider flag. It explicitly distinguishes itself from the sibling chain get_person_by_email + get_startup_by_domain + get_investor_by_domain, so an agent can pick it without opening other schemas.

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 concrete usage contexts (HubSpot/Salesforce auto-enrichment, Gmail/Outlook plugins, lead-scoring pipelines) and explicitly positions itself against the alternative of chaining three sibling tools, with the cost tradeoff stated (1 credit, cheaper than chaining). It even gives a when-not condition: skip company matching when the free-provider flag fires on consumer addresses.

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

find_apisfind apisA
Read-only
Inspect

Find APIs, MCP servers and AI agents listed on StartupHub by the companies that run them. Returns each one's endpoint, spec URL, auth type, price per call and operations, tools, models or skills, plus call_through_startuphub: a URL that runs the call with your StartupHub key and credits.

NameRequiredDescriptionDefault
kindNoopenapi = REST APIs, mcp = MCP servers, chat = OpenAI-compatible endpoints, agent = A2A agents, app = apps without an API, agents = chat + agent + app
limitNoMax results, default 20
queryNoWhat the API should do, or a company name

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered; the description adds meaningful context beyond that, notably that call_through_startuphub consumes your StartupHub key and credits, which is a cost/billing trait not expressed in the schema or annotations.

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

Conciseness5/5

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

Two tight sentences with zero filler: the first states scope, the second enumerates return fields and highlights the actionable call_through_startuphub URL. Front-loaded and dense, with every clause carrying information.

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?

There is no output schema, and the description compensates by enumerating exactly what each result contains (endpoint, spec URL, auth type, price per call, operations/tools/models/skills, call_through_startuphub). Combined with a fully documented 3-parameter schema and read-only annotations, an agent has everything needed to call it and interpret the response.

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?

Schema description coverage is 100%, including an enum explanation for every kind value and a default for limit, so the schema carries the parameter burden. The description adds nothing about how query is matched (semantic vs keyword vs company name) or how kind interacts with the returned corpus, so baseline 3 applies.

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 pairs the verb 'Find' with specific resources (APIs, MCP servers, AI agents) and names the source (StartupHub), plus enumerates return fields. It implicitly separates itself from call_api by describing call_through_startuphub as the execution path, though it never names that sibling directly.

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?

Use is only implied — an agent can infer this is the discovery step before call_api, but the description never states when to use it versus search_startups, find_matches, or other lookup siblings, nor does it give any when-not guidance.

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

find_matchesFind matchesA
Read-only
Inspect

Find Matches. Given a startup slug or id, return investors that fit, each with a reason. Given an investor slug or id, return startups that fit. Requires an API key. Needs a free StartupHub.ai account.

NameRequiredDescriptionDefault
idNoProfile UUID of the startup or investor to match from. Pass slug or id.
slugNoProfile slug of the startup or investor to match from. Pass slug or id.
typeYes

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds non-obvious operational context: an API key is required and a free StartupHub.ai account is needed, plus the result shape includes a 'reason' per match. It stops short of describing pagination, limits, or failure modes.

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

Conciseness5/5

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

Three short sentences, front-loaded with the core behavior and then the two input directions. Every clause carries information; there is no restatement of the title beyond the opening label.

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?

With no output schema, the description usefully notes that each match carries a reason, and it covers auth requirements and the bidirectional input rule for a tool whose required enum is undocumented in the schema. It is essentially complete for invocation, missing only volume/limit expectations.

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 67% and the schema documents id/slug as 'slug or id', but the required 'type' parameter carries no description in the schema. The description supplies exactly that missing semantics: type selects the direction of the match, so the agent knows 'type' is not merely a filter but the determinant of the result set.

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 states a specific verb ('find') and spells out both directions of the operation: startup id/slug in, investors out, and vice versa. This clearly separates it from plain lookup siblings like get_startup or get_investor_by_domain, though it never explicitly names an alternative.

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 implied through the input-direction rule ('Given a startup slug or id...' / 'Given an investor slug or id...'), which tells the agent how to drive the tool. There is no guidance on when to prefer this over search_investors or match_companies_by_domain, and no exclusions or prerequisites beyond the account note.

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

find_stealth_startupsFind stealth startupsA
Read-only
Inspect

Convenience wrapper around search_startups pre-tuned for fresh-stealth deal-flow. Always sends stealth=true and sort=founded_date.desc; those two cannot be changed here. Returns stealth startups with their detected tech stack (CDN, email provider, analytics), RDAP domain registration date, and a has_known_emails flag indicating whether at least one founder/team email has been verified. Inputs: domain_tld (default 'ai,io,so,xyz,security'), with_emails (default true, which sends has_known_emails=true; pass false to drop that filter), founded_after, country, cdn, email_provider, limit (default 20, max 100). There is no offset; use search_startups with stealth=true to page further. Pro Lite tier and higher only (Free tier 403s). Pro Lite sees redacted emails; Pro tier sees full. Combine with list_startup_team and discover_email to surface the actual addresses. Needs a free StartupHub.ai account.

NameRequiredDescriptionDefault
cdnNoOptional comma-separated CDN filter (e.g. 'cloudflare').
limitNoDefault 20, max 100.
countryNoOptional comma-separated HQ countries, names or ISO codes.
domain_tldNoComma-separated TLDs. Defaults to 'ai,io,so,xyz,security' (the high-signal AI-native TLDs).
with_emailsNoWhen true (default), only return startups with at least one verified founder/team email (has_known_emails=true). False drops that filter.
founded_afterNoOnly stealth startups founded on or after this date: YYYY, YYYY-MM or YYYY-MM-DD.
email_providerNoOptional comma-separated email_provider filter (e.g. 'm365,self_hosted' to find non-Google-Workspace stealth shops).

TDQS

A4.8/5.0
Behavior5/5

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

Annotations only cover the safety profile (readOnly, non-destructive, closed-world). The description adds the operationally critical facts an agent cannot get elsewhere: two parameters are locked and cannot be overridden, there is no offset, results are tier-gated with a 403 on Free, and email visibility is redacted on Pro Lite but full on Pro. It also discloses the return fields (tech stack, RDAP registration date, has_known_emails) with no output schema present.

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?

Well front-loaded: purpose and locked parameters come before the return description and the tier caveats. The 'Inputs: ...' enumeration, however, repeats schema descriptions almost verbatim and is the one block that does not fully earn its space.

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?

For a 7-parameter, output-schema-less tool, everything an agent needs is present: what is returned, that the tool is a filtered view of search_startups, how to paginate past it, the auth/tier requirement, and the sibling tools that complete the workflow.

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 already 100%, so the baseline is 3, but the description adds meaning the schema cannot express (the fixed stealth/sort behavior and the no-offset constraint). The per-parameter restatement largely duplicates schema text (defaults, TLD list, with_emails consequence), so it does not fully earn a 5.

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?

Opens with a precise framing: a 'convenience wrapper around search_startups pre-tuned for fresh-stealth deal-flow,' immediately telling the agent both the verb/resource and the exact relationship to the sibling it wraps. It then states the two hard-coded parameters (stealth=true, sort=founded_date.desc) that differentiate this tool from search_startups.

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?

Explicit routing: 'There is no offset; use search_startups with stealth=true to page further' names the alternative and the condition that selects it. It also prescribes a workflow ('Combine with list_startup_team and discover_email to surface the actual addresses') and states the tier gate (Pro Lite+, Free tier 403s) that determines whether the call is even usable.

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

generate_article_videoArticle to YouTubeAInspect

Article to YouTube. Turn an article URL, or a block of text, into a narrated video with captions. Returns a job id right away. Call get_article_video with that job_id until status is done, then use mp4_url. Requires an API key and charges video credits when the job is queued. Needs a free StartupHub.ai account.

NameRequiredDescriptionDefault
urlNoArticle URL to turn into a video.
textNoArticle text, when there is no URL.
titleNoOptional title override.
voiceNoOptional voice id.
formatNoFrame. Default is vertical 9:16.
subtitlesNoBurn in captions. Default true.
visual_styleNoVisual style id. Defaults to the standard explainer.

TDQS

A4.7/5.0
Behavior5/5

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

Annotations cover safety (readOnlyHint=false, destructiveHint=false, openWorldHint=true), and the description layers on what they don't say: it is asynchronous (returns a job id immediately), it costs video credits billed at queue time, it needs an API key, and it requires a StartupHub.ai account. Cost and auth disclosure beyond annotations is exactly the value-add expected here.

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

Conciseness5/5

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

Five short sentences, each carrying distinct information (capability, inputs, async return, follow-up, cost/auth). Front-loaded with the outcome and free of 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?

No output schema exists, and the description compensates by explaining the return contract (job id, then mp4_url via get_article_video) plus the billing/auth preconditions. Nothing an agent needs to invoke and follow through correctly is missing.

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?

Schema description coverage is 100%, so every parameter including the format enum and defaults is already documented structurally. The description only echoes the url/text mutual exclusivity that the schema already states, adding no new parameter detail. Baseline 3 applies.

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 dual resource ('Turn an article URL, or a block of text, into a narrated video with captions'), so the agent knows exactly what comes out. It also implicitly separates itself from the sibling get_article_video, which it names as the polling counterpart.

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?

Gives an explicit end-to-end workflow: call this, capture the job id, then poll get_article_video until status is done, then use mp4_url. The condition selecting the follow-up tool is spelled out rather than left to inference.

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

generate_rss_feedGenerate RSS feedA
Read-only
Inspect

RSS Feed Generator. Build a feed for a site, including one that never published a feed. Pass the site url. Returns feed_xml and a feed_url. Free, rate-limited.

NameRequiredDescriptionDefault
urlYesSite URL, e.g. https://example.com

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true, and destructiveHint=false, so safety is covered. The description adds real value beyond them: it discloses the rate limit ('Free, rate-limited'), the return payload (feed_xml and feed_url), and the notable capability of generating feeds for sites that never had one.

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?

Four short, front-loaded sentences with no filler; the resource and capability come first, return values and constraints follow. Efficient, though the staccato phrasing leaves little room for nuance.

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 one-parameter read tool with no output schema, the description supplies the missing return-value information (feed_xml, feed_url) and the rate-limit caveat. An agent has what it needs to call and interpret the tool correctly.

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?

Only one parameter, and schema description coverage is 100% (the schema already gives the 'Site URL, e.g. https://example.com' example). 'Pass the site url' adds no syntax or format detail beyond the schema, so the baseline of 3 applies.

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?

States a concrete verb+resource ('Build a feed for a site') and adds a distinguishing capability note ('including one that never published a feed'). Sibling tools are all in unrelated domains (email, logo, trends), so no sibling differentiation is needed; the purpose is unambiguous.

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?

'Pass the site url' implies the single required input but gives no when-to-use context, prerequisites, or when-not guidance. Adequate but lacking explicit routing or exclusion criteria.

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

generate_startup_listGenerate a startup listAInspect

Prompt → curated startup list. Pass a natural-language brief like 'stealth AI agent startups in Israel founded after 2024' and the engine runs a Google-grounded search, parses results, finds-or-creates the matching startup rows in StartupHub.ai's database, and returns up to 50 startup IDs. Caller can then hand those IDs to a separate /lists/submit call to publish the list as a public, indexed page. Useful workflows: (1) build a portfolio-style page from a prompt without manual curation, (2) extract a list of companies from raw text (paste a YC batch page, a16z portfolio, CSV: set 'pasted_list' instead of 'prompt'), (3) regularly refresh a 'who's new in X sector' list via cron. Each call costs 5 credits (Pro Lite=15/day, Pro=50/day). Returns the matched startups (id/name/slug/logo) plus a 'created' count showing how many were brand new in our DB. Needs a free StartupHub.ai account.

NameRequiredDescriptionDefault
limitNoMaximum companies to return (1-50). Default 20.
promptNoNatural-language brief, e.g. 'AI coding agents that raised seed funding in 2026' or 'European fintech-AI startups with ex-Stripe founders'. Required unless 'pasted_list' is provided.
pasted_listNoRaw text containing company names (YC batch page, portfolio listing, article, CSV). Names + context will be extracted automatically. Use this instead of 'prompt' when you already know the companies and want them structured.

TDQS

A4.6/5.0
Behavior5/5

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

Annotations declare readOnlyHint=false and openWorldHint=true, and the description goes well beyond them: it discloses a 5-credit cost with per-tier daily quotas, that rows are found-or-created in the database (a real side effect), the free-account requirement, and the return payload. That is rich behavioral context not derivable from structured fields.

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 the core mechanic ('Prompt → curated startup list') and keeps each subsequent sentence purposeful (workflows, cost, returns, auth). It is dense and slightly long, but nearly every clause earns its place.

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 still explains the return shape (id/name/slug/logo plus a 'created' count), the credit/quota model, and the account prerequisite. Nothing material an agent needs to call it correctly is missing.

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?

Schema description coverage is 100%, so the schema already documents limit, prompt, and pasted_list with examples. The description reinforces the prompt-vs-pasted_list choice but adds little syntax or format detail beyond what the schema provides, so the baseline of 3 applies.

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 ('generate a curated startup list') and explains the mechanism: a prompt runs a Google-grounded search, parses results, and finds-or-creates matching rows. It distinguishes itself from sibling search_startups by emphasizing list generation and DB row creation, and names the downstream /lists/submit step.

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?

Enumerates three concrete workflows (portfolio page from prompt, extract companies from raw text via pasted_list, scheduled refresh via cron) and explicitly states when to use 'pasted_list' instead of 'prompt'. This is the when-to-use routing an agent needs.

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

generate_visual_tldrVisual TL;DRAInspect

Visual TL;DR. Build a diagram and a short summary from an article. Pass title and content_html (HTML or the article text). Returns markdown and image_url. Requires an API key. Needs a free StartupHub.ai account.

NameRequiredDescriptionDefault
titleYes
excerptNo
source_urlNoCanonical URL of the article, if you have it.
content_htmlYesArticle HTML, or the article text.

TDQS

A3.7/5.0
Behavior4/5

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

Annotations declare readOnlyHint=false with destructiveHint=false and openWorldHint=false, so the description usefully adds the non-obvious prerequisites: an API key and a free StartupHub.ai account. It also discloses the return shape (markdown and image_url), which the absent output schema leaves undocumented. It does not mention credit cost or rate limits, so not a full 5.

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?

Five short sentences, front-loaded with the core action and then the required inputs, return values, and prerequisites. Tight and scannable. The two trailing auth sentences ('Requires an API key. Needs a free account.') are slightly redundant with each other.

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?

With no output schema, the description correctly covers return values (markdown, image_url) and prerequisites, which are the main things an agent would otherwise lack. Two optional parameters go unmentioned, but they are self-explanatory enough that this is close to complete.

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?

Schema coverage is 50%, and the description adds real value by clarifying content_html accepts 'HTML or the article text' rather than just HTML. However, it names only title and content_html, leaving excerpt and source_url unaddressed in both description and schema. Baseline 3 fits.

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?

States a specific verb and resource: 'Build a diagram and a short summary from an article.' An agent immediately knows this generates visual+text summary output. It does not explicitly distinguish itself from siblings like generate_article_video or humanize_text, which also transform text, so it stops short of a 5.

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 implied by the input requirement ('from an article'), but there is no explicit when-to-use, when-not, or named alternative among the many generate_* siblings. The agent is left to infer that this is the tool for turning an article into a diagram plus summary.

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

generate_youtube_articleGenerate YouTube articleAInspect

Turn a YouTube URL into an article with a title, excerpt, HTML, and Markdown. Costs one YouTube-to-Article credit. If the call is slow, call get_youtube_transcript first, then call this tool again with url and transcript. Needs a free StartupHub.ai account.

NameRequiredDescriptionDefault
urlYesA YouTube URL (watch / youtu.be / shorts / mobile) or a raw 11-char video ID.
toneNoVoice. Default neutral.
lengthNoTarget length. auto lets the model size to the source.
transcriptNoOptional caption text from get_youtube_transcript so this call skips the caption fetch.
include_embedNoPin the original YouTube embed at the top. Default true.

TDQS

A4.5/5.0
Behavior4/5

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

Annotations mark this as non-read-only, non-destructive, open-world, so the mutation profile is covered. The description adds genuine context beyond that: credit consumption, an account prerequisite, and a latency-mitigation workflow. It does not describe rate limits or output format details, but with annotations carrying safety the added context is solid.

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

Conciseness5/5

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

Three sentences, front-loaded with the core purpose, then cost, then the fallback workflow. Every sentence carries non-redundant information with 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?

For a 5-param generation tool with full schema coverage and no output schema, the description supplies outputs, cost, auth, and the latency fallback. Nothing an agent needs to invoke it correctly is missing.

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?

Schema description coverage is 100%, with url/tone/length/transcript/include_embed all documented including enum semantics, so the schema does the heavy lifting. The description echoes the transcript parameter through the fallback workflow but adds no syntax or format detail beyond the schema. Baseline 3 applies.

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 ('Turn a YouTube URL into an article') and enumerates the concrete outputs (title, excerpt, HTML, Markdown), so an agent knows exactly what it produces. It is clearly distinguishable from siblings like get_youtube_transcript and generate_article_video.

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?

Gives explicit conditions and alternatives: it costs one credit, requires a free StartupHub.ai account, and if the call is slow the agent should call get_youtube_transcript first, then re-invoke with url and transcript. This is a named fallback with the triggering condition, not implied usage.

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

get_advertiser_analyticsGet advertiser analyticsA
Read-only
Inspect

Live performance for ads owned by your account: impressions, clicks, CTR, daily trend, by-placement (article / profile_page / search / homepage / agent_readiness) and by-variant breakdown. Same JSON shape returned by GET /api/v1/advertiser/analytics and rendered in the /my-account?tab=ads dashboard. Free for own data: zero credits debited. Useful for piping campaign performance into agent workflows: nightly Slack digests, attribution stacks, autonomous bid-tuning, etc. Needs a free StartupHub.ai account.

NameRequiredDescriptionDefault
daysNoLookback window in days (1–365, default 30).
ad_idNoFilter to a single ad. Must be owned by the authenticated key holder. Omit for all of your ads.

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds genuinely useful non-schema context: zero credits debited for own data, auth/account requirement, and that the JSON shape matches the public API and dashboard. It omits anything about row limits or response size, but the cost and auth disclosures are real additions.

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 core capability is front-loaded in the first sentence, and cost/auth constraints land before the speculative workflow list. However, the trailing 'nightly Slack digests, attribution stacks, autonomous bid-tuning, etc.' is promotional padding that doesn't help an agent decide or call correctly.

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?

With no output schema, the description carries the return-value burden and does list the key metrics and breakdown dimensions. Cost, auth, and data scope are covered for a read-only tool. Minor gaps remain around result volume/pagination and whether historical days beyond a limit are truncated.

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?

Schema description coverage is 100% — both 'days' (1–365, default 30) and 'ad_id' (ownership constraint, omit for all) are fully documented in the schema. The description's mention of by-placement and by-variant breakdowns describes output dimensions rather than adding meaning to either parameter, so the baseline 3 applies.

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 ('Live performance for ads owned by your account') and enumerates exactly what the payload contains: impressions, clicks, CTR, daily trend, by-placement and by-variant breakdown. It also names the underlying REST endpoint and dashboard it mirrors, so an agent knows precisely which resource this covers. No sibling tool touches ad performance, so no differentiation is needed.

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?

It implies usage through example scenarios ('nightly Slack digests, attribution stacks, autonomous bid-tuning') and states the precondition of a free account, but never says when not to use it or which sibling to prefer for related tasks. The agent must infer the fit rather than being routed explicitly.

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

get_api_taskget api taskA
Read-only
Inspect

Check a long-running task: a task_id from call_api or a route_id from run_agent_task. Returns its state, which agents were tried, and the output once it is done. Pass cancel to stop it (credits come back) or reply to answer an agent that asked for input. Needs a free StartupHub.ai account.

NameRequiredDescriptionDefault
replyNoYour answer when the task needs input
cancelNo
task_idNoThe task_id call_api returned
route_idNoOr the route_id run_agent_task returned

TDQS

A3.7/5.0
Behavior1/5

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

The description says passing cancel stops the task and refunds credits — a state-changing, side-effecting operation — while annotations declare readOnlyHint=true and destructiveHint=false. That directly contradicts the declared safety profile an agent relies on to decide whether calling is harmless.

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?

Three compact sentences, front-loaded with the core purpose before the control options and the account prerequisite. Dense but nothing is wasted; only the trailing account note could be trimmed or moved to a prerequisite line.

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?

With no output schema, the description correctly carries the return-value burden: it names the state, the agents tried, and the final output. It also notes the free-account prerequisite. Remaining gaps are polling cadence and what states/exit conditions the agent should expect, but nothing essential to invoking it correctly is absent.

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 75%, but the description still adds meaning the schema does not: cancel refunds credits (the schema has no description for cancel at all), reply is specifically 'to answer an agent that asked for input', and task_id/route_id are traced to the tools that produce them. What's missing is guidance on which of task_id/route_id to supply, given neither is required.

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 concrete verb and resource ('Check a long-running task') and immediately identifies the two parameter sources (a task_id from call_api, a route_id from run_agent_task), tying it to the siblings that create the tasks. An agent can distinguish this polling/control tool from call_api and run_agent_task without opening the schema.

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 clear context for when each mode applies: poll for state/output, pass cancel to stop and reclaim credits, pass reply to answer an agent that asked for input. It doesn't state when not to use it (e.g. vs list_my_api or re-invoking run_agent_task), so it falls just short of explicit alternatives.

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

get_arbitrageGet prediction-market arbitrageA
Read-only
Inspect

Live cross-venue prediction-market arbitrage board. Returns the same real-world events priced on Polymarket, Kalshi/Robinhood, and PredictIt side by side, with a real arbitrage flagged whenever the combined cost of locking a $1 payout drops under $1 (is_arbitrage=true, with roi_pct + profit_per_dollar). Each opportunity carries both legs (venue, price, direct trade URL), the combined cost, and when the arb last opened. Refreshed every 30 minutes. Free tool, no API key. Pass arbs_only=true to return only the live arbitrages. Built for trading agents that poll for tradeable spreads: informational only, verify each market's exact resolution rules, fees, and withdrawal terms before trading.

NameRequiredDescriptionDefault
arbs_onlyNoWhen true, return only events with a live arbitrage right now (combined cost under $1). Default false returns the full matched-events board.

TDQS

A4.4/5.0
Behavior5/5

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

Annotations only cover the safety profile (readOnly, non-destructive, open-world). The description goes well beyond: refresh cadence (every 30 minutes), no API key, no cost, the arb criterion (combined cost under $1), and an explicit caveat that results are informational and resolution rules/fees/withdrawal terms must be verified before trading.

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 core purpose, then return shape, then the parameter, then the disclaimer — a logical order with almost no filler. It is dense and a little long, but each clause (roi_pct, profit_per_dollar, trade URL, refresh interval) carries information an agent needs.

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?

There is no output schema, so the description must carry the return contract — and it does, naming the per-opportunity fields (venue, price, direct trade URL, combined cost, when the arb last opened) plus the derived arb metrics. Combined with annotations and the fully documented parameter, nothing an agent needs to invoke and interpret this tool is missing.

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?

Schema coverage is 100% and the single parameter's description already explains that true filters to live arbitrages and false returns the full matched board. The description restates that behavior but adds no syntax or edge-case detail 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.

Purpose5/5

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

States a specific verb+resource ('Live cross-venue prediction-market arbitrage board') and precisely what it returns: the same events priced on Polymarket, Kalshi/Robinhood, and PredictIt side by side. It is unmistakably distinguishable from every sibling tool (email, logo, trends, funding, etc.).

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?

Identifies the target caller ('Built for trading agents that poll for tradeable spreads') and the condition for the only parameter (arbs_only=true for live arbs only). There is no explicit when-not guidance or named alternative, but no sibling overlaps this space, so no alternative routing is needed.

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

get_article_videoGet article videoA
Read-only
Inspect

Poll an article-to-video job started by generate_article_video. Returns status, progress, and mp4_url when status is done. Needs a free StartupHub.ai account.

NameRequiredDescriptionDefault
job_idYesjobId from generate_article_video.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds real behavioral context beyond that: it is a polling operation, what it returns (status, progress, mp4_url), and the auth requirement (free StartupHub.ai account).

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

Conciseness5/5

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

Three tight sentences with zero filler, front-loading the core action (poll) ahead of return details and the account requirement.

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 compensates by naming the return fields (status, progress, mp4_url) and the completion condition (status is done). Combined with the sibling workflow link and auth note, an agent has everything needed to invoke and interpret this 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?

There is a single parameter with 100% schema description coverage, where the schema already states 'jobId from generate_article_video.' Per the baseline for high coverage, the schema carries the parameter semantics and the description adds nothing new.

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 (poll) and resource (an article-to-video job), and explicitly ties itself to the sibling that creates such jobs (generate_article_video). An agent can distinguish this from generate_article_video 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 Guidelines4/5

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

Gives clear context: use this to poll a job that generate_article_video started. This establishes the create-then-poll workflow, but it doesn't state when to stop polling or what to do on non-done statuses.

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

get_company_by_linkedinGet company by LinkedInA
Read-only
Inspect

Resolve a company from its LinkedIn URL and enrich it against our profile graph: funding, founders, sectors, score, domain, and technographics. Same result as POST /api/v1/companies/by-linkedin. Needs a free StartupHub.ai account.

NameRequiredDescriptionDefault
linkedin_urlYesThe company LinkedIn URL, e.g. https://www.linkedin.com/company/anthropic.

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already establish readOnly, non-destructive, open-world behavior, so the description only needs to add context. It does: it discloses an authentication/account prerequisite and the equivalence to POST /api/v1/companies/by-linkedin, which is useful for agents that know the REST surface. It does not mention rate limits or caching, hence not a 5.

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?

Three short sentences, front-loaded with what the tool does and what it returns, followed by the endpoint equivalence and the account requirement. Every sentence carries information, though the REST-endpoint sentence is only useful to a subset of agents.

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?

With no output schema, the description compensates by naming the returned enrichment fields (funding, founders, sectors, score, domain, technographics) and flagging the auth requirement. What remains unstated is failure behavior for unknown or invalid LinkedIn URLs, which would round this out.

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?

There is one parameter with 100% schema description coverage and an example URL, so the schema carries the full burden. The description adds nothing about URL format, variants, or handling of non-canonical LinkedIn URLs, so baseline 3 applies.

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 uses a specific verb pair ("resolve" + "enrich") on a named resource (company) keyed by LinkedIn URL, and enumerates the enriched fields. The LinkedIn-URL input modality implicitly separates it from siblings like enrich_company or get_startup_by_domain, though no sibling is named outright.

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 implied by the input type (you have a LinkedIn URL, so you use this tool), and it notes the prerequisite of a free StartupHub.ai account. However, it never states when to prefer this over enrich_company, match_companies_by_domain, or get_startup_by_domain, which is the real routing decision an agent faces.

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

get_company_fundingGet company fundingA
Read-only
Inspect

Funding intelligence for a company by domain: total raised, rounds, latest round, investors, and dates, drawn from our enrichment graph. Same result as GET /api/v1/companies/funding. Needs a free StartupHub.ai account.

NameRequiredDescriptionDefault
domainYesCompany domain, e.g. anthropic.com.

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already establish readOnly, non-destructive, closed-world behavior, so the description only needs to add context. It does: it discloses the data source (our enrichment graph), the auth/account requirement, and the REST-endpoint equivalence. It does not cover pagination, rate limits, or failure behavior when a domain is unknown, so it is not a 5.

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?

Two sentences, front-loaded with the capability and return fields before the supporting details. The REST-endpoint and account-requirement clauses each earn their place, though the endpoint equivalence is only marginally useful to an agent.

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?

With no output schema, the description carries the return-shape burden and does so by enumerating the fields returned. Combined with the auth prerequisite and data-source note, an agent has enough to call this correctly; only edge-case behavior (missing/private company) is unaddressed.

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?

Schema description coverage is 100% for the single required 'domain' parameter, so the schema already carries the semantics. The phrase 'by domain' adds nothing beyond the schema, making the baseline 3 appropriate.

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 specific resource (company funding) and enumerates exactly what it returns: total raised, rounds, latest round, investors, and dates. That is far more concrete than a bare 'get funding'. It does not, however, distinguish itself from near siblings like get_startup_funding_history or query_funding, so it falls short of a 5.

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?

It states a real prerequisite ('Needs a free StartupHub.ai account') and pins the tool to a domain-keyed lookup, which helps an agent decide it can call this at all. But it gives no guidance on when to prefer this over get_startup_funding_history, query_funding, or get_investor_by_domain, leaving the routing decision to inference.

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

get_company_hiringGet hiring signalsA
Read-only
Inspect

Hiring-signal intelligence: companies actively posting roles, ranked by open-role velocity, with counts and links. A growth/traction signal for deal-flow and sales prospecting. Same result as GET /api/v1/companies/hiring. Needs a free StartupHub.ai account.

NameRequiredDescriptionDefault
limitNoMax companies to return (1–100, default 50).
periodNoLookback window: 'day', 'week' (default), or 'month'.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, openWorldHint=false and destructiveHint=false. The description adds genuinely useful context beyond them: it is a live-data signal ranked by velocity, maps to a specific REST endpoint, and requires a free StartupHub.ai account (an auth prerequisite the agent would not otherwise know). Missing only rate-limit/pagination behavior.

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?

Three tight sentences, front-loaded with purpose and output shape, then usage framing, then auth/endpoint notes. Every sentence carries weight, though the REST-endpoint equivalence is marginally useful for an agent.

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 two-param, read-only retrieval tool with no output schema, the description adequately conveys what is returned (companies ranked by velocity, with counts and links) and the account requirement, while annotations cover the safety profile. Pagination behavior is not addressed, keeping it below a 5.

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?

Schema description coverage is 100%, so limit (1–100, default 50) and period ('day'/'week'/'month') are fully documented in the schema. The description adds no syntax or format detail beyond that, so the baseline 3 applies.

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 ('companies actively posting roles, ranked by open-role velocity') and describes the output shape (counts and links). The hiring-signal resource is unique among siblings like get_company_funding and get_trends, so an agent can tell it apart without opening a schema.

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?

Provides clear context for when to reach for it ('A growth/traction signal for deal-flow and sales prospecting'), which frames the intent. It does not name an alternative sibling or state exclusions, so it falls 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.

get_investor_by_domainGet investor by domainA
Read-only
Inspect

Look up a single investor (VC, angel, accelerator) by their website domain. Same shape as get_startup_by_domain, against the investors table. Useful when you have a fund's website and want fund profile / portfolio info. Needs a free StartupHub.ai account.

NameRequiredDescriptionDefault
domainYes

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so safety is covered. The description adds genuinely non-structured context by disclosing an auth prerequisite ('Needs a free StartupHub.ai account'), which is exactly the kind of behavioral context annotations can't express.

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

Conciseness5/5

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

Three tight sentences, front-loaded with the purpose, then the differentiation, then the use case and prerequisite. Every sentence carries distinct information with no repetition.

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 simple one-parameter read tool with annotations covering safety, the description supplies purpose, sibling differentiation, the use trigger, the auth prerequisite, and a hint at the return content ('fund profile / portfolio info'). It stops short of mentioning there is no output schema, but nothing needed to invoke it correctly is missing.

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% for the single 'domain' parameter, so the description must carry the load, and it does identify the value as the fund's *website* domain (disambiguating from social handles, which has its own sibling tool). It does not specify format details such as protocol, www, or paths, keeping it below a 5.

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 ('look up a single investor (VC, angel, accelerator) by their website domain') and explicitly distinguishes itself from the near-named sibling get_startup_by_domain ('against the investors table'). An agent can tell it apart from search_investors and get_startup_by_domain without opening a schema.

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 a clear when-to-use trigger: 'Useful when you have a fund's website and want fund profile / portfolio info.' It implies the single-lookup vs. search_investors split but doesn't state exclusions or name the alternative explicitly, so it stops short of a full routing rule.

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

get_investor_by_socialLook up investor by socialA
Read-only
Inspect

Reverse-lookup an investor profile by their LinkedIn or Twitter URL/handle. Investor LinkedIns are typically /company/, but the lookup handles both /in/ and /company/ patterns. Needs a free StartupHub.ai account.

NameRequiredDescriptionDefault
twitterNoTwitter/X URL or handle
linkedinNoLinkedIn URL or handle (e.g. https://www.linkedin.com/company/a16z)

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, openWorldHint=false and destructiveHint=false, so the safety profile is covered structurally. The description adds genuinely new behavioral context: the required free account and the fact that input patterns such as /in/ and /company/ are both accepted, which the agent could not infer from annotations alone.

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

Conciseness5/5

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

Three short sentences, front-loaded with the core action, then the format nuance, then the prerequisite. No filler or restated boilerplate; every sentence carries information the 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 two-parameter read-only lookup with full schema coverage and no output schema, the description covers the action, input format, and access prerequisite. It stops short of describing what the response contains or what happens on a partial/miss lookup, which would be the remaining gap.

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 100%, so the baseline is 3, but the description adds real meaning beyond the schema by clarifying that investor LinkedIn URLs are usually /company/<slug> while both /in/ and /company/ patterns are handled. That directly affects how an agent should format the linkedin parameter.

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 states a specific verb (reverse-lookup) and a specific resource (investor profile) with the identifying input (LinkedIn or Twitter URL/handle). It implicitly distinguishes itself from the sibling get_person_by_social and get_company_by_linkedin by scoping to investors, though it does not name those alternatives explicitly.

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 through the phrase 'reverse-lookup' and the input format; there is no explicit when-to-use guidance or mention of related siblings like search_investors or get_investor_by_domain. The one concrete prerequisite (needs a free StartupHub.ai account) is a useful piece of guidance.

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

get_market_mapShow a market mapA
Read-only
Inspect

Show a saved market map the account owns or co-authors: its sections, every company with its profile link, the PNG image_url, editor_url and public_url. Use it to reopen a map before editing it with edit_market_map, and to follow a map whose status is 'building' until it is 'done'. Free. Needs a free StartupHub.ai account.

NameRequiredDescriptionDefault
map_idYesThe map id (from create_market_map, or the ?map= value of a Market Map Maker link).

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, openWorldHint=false and destructiveHint=false, so the safety profile is covered. The description adds real behavioral context beyond that: access scope ('owns or co-authors'), a cost note ('Free'), an auth prerequisite (free StartupHub.ai account), and the 'building' → 'done' status lifecycle that implies polling.

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?

Two sentences, with the core action and returned fields front-loaded and the 'when to use' guidance second. The opening clause is slightly dense with returned-field enumeration, but every element earns its place.

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?

There is no output schema, and the description compensates by naming the returned fields (sections, companies with profile links, image_url, editor_url, public_url). Combined with the auth/cost note and status polling guidance, an agent has everything needed to call it correctly.

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?

Schema description coverage is 100% and the single map_id parameter is documented with its provenance (from create_market_map or the ?map= value of a link). The description adds nothing beyond the schema, so the baseline of 3 applies.

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 ('Show a saved market map') and enumerates its contents: sections, every company with profile link, PNG image_url, editor_url and public_url. It is clearly distinguishable from the mutating siblings create_market_map and edit_market_map.

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?

Explicitly says when to use it: to reopen a map before editing it with edit_market_map, and to poll a map whose status is 'building' until it is 'done'. The alternative sibling is named along with the condition that selects it.

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

get_my_usageCheck credit balance & usageA
Read-only
Inspect

Check the user's current credit balance: plan tier, daily + monthly limits per credit type (validate, discover, db, profile, logo, enrich, submit), used today, remaining today, used this month, remaining this month, and any never-expiring credit pack balance. Free to call (does NOT charge a credit): call before any expensive batch (e.g. 100x discover_email) so the user knows whether they need to top up first. If they're low or ask to buy more, follow up with list_credit_packs to get pricing + a checkout URL. Requires Bearer auth; anonymous callers get a 401 with a signup link. Needs a free StartupHub.ai account.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already declare readOnly/destructive=false, and the description adds real behavioral context beyond that: the call is free and does NOT charge a credit, it requires Bearer auth, anonymous callers get a 401 with a signup link, and it needs a free StartupHub.ai account. These are exactly the operational facts an agent needs and that annotations cannot convey.

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 resource and returned fields, then cost behavior, then usage guidance, then auth. Every sentence carries weight, though the parenthetical enumeration of all seven credit types is slightly list-heavy for the space it consumes.

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?

For a zero-parameter read tool with no output schema, the description enumerates the returned fields, states the cost and auth requirements, and points to the correct next tool. Nothing an agent needs to call it correctly is missing.

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?

The tool takes zero parameters, so the schema carries no parameter semantics to explain and the baseline is 4. The description correctly adds no spurious parameter discussion.

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 ('Check the user's current credit balance') and enumerates exactly what is returned (plan tier, limits, used/remaining today and month, never-expiring pack balance). It is immediately distinguishable from data-consuming siblings like discover_email or enrich_company.

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?

Explicit when-to-use ('call before any expensive batch (e.g. 100x discover_email)') and names the follow-up alternative ('if they're low or ask to buy more, follow up with list_credit_packs to get pricing + a checkout URL'). Both the trigger condition and the sibling are given.

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

get_person_by_emailLook up person by emailA
Read-only
Inspect

Reverse-lookup a person profile by their email address. Pairs naturally with discover_email + validate_email: discover an email, verify it, find the person record. Returns the full person profile. Needs a free StartupHub.ai account.

NameRequiredDescriptionDefault
emailYes

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, non-destructive and closed-world, so the safety profile is covered. The description adds two useful bits beyond that: the return shape ('Returns the full person profile') and an auth prerequisite ('Needs a free StartupHub.ai account'), which an agent needs before calling.

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?

Three short sentences, purpose front-loaded, and each sentence adds new information (workflow pairing, return value, auth requirement). No padding or repetition.

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 simple read-only, single-parameter lookup with annotations covering safety and no output schema, the description supplies purpose, sequencing, return shape, and the account prerequisite. Nothing essential for correct invocation appears to be missing.

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?

Schema description coverage is 0% for the single email parameter, so the description must compensate. It only restates that the lookup is 'by their email address', which maps to the parameter but adds no format, normalization, or casing guidance. Minimal compensation for the coverage gap.

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 ('Reverse-lookup a person profile') keyed on a specific input ('by their email address'). This cleanly distinguishes it from the sibling get_person_by_social, whose key is a social handle, so an agent can pick correctly 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 Guidelines4/5

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

Gives a concrete workflow ('discover_email + validate_email: discover an email, verify it, find the person record'), which clearly tells the agent when this tool fits in a sequence. It stops short of naming exclusions or alternatives like get_person_by_social or search_people, so it is strong context rather than a full when/when-not statement.

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

get_person_by_socialLook up person by socialA
Read-only
Inspect

Reverse-lookup a person profile by any of their social URLs/handles. Pass linkedin, twitter, or github (full URL like https://www.linkedin.com/in/foo, OR just the handle 'foo'). Multiple params allowed: first match wins. Returns the full person profile + which platform matched. Needs a free StartupHub.ai account.

NameRequiredDescriptionDefault
githubNoGitHub URL or handle
twitterNoTwitter/X URL or handle (e.g. https://x.com/foo or "@foo")
linkedinNoLinkedIn URL or handle (e.g. https://www.linkedin.com/in/foo or just "foo")

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds meaningful behavior beyond that: multi-param 'first match wins' resolution, the fact that it returns the matched platform, and the authentication requirement (free StartupHub.ai account). It is silent on failure/not-found behavior, which keeps this from a 5.

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?

Four tight sentences, front-loaded with the core action and followed by input format, resolution rule, return, and auth. Every sentence carries information, though the stacked parentheticals make it slightly dense.

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?

With no output schema, the description correctly states what is returned (full person profile + matched platform). Auth requirements and input flexibility are covered. Only not-found/ambiguity behavior is left unstated for a simple lookup tool.

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 would be 3, but the description adds cross-parameter semantics the schema cannot express: that multiple handles may be supplied and 'first match wins'. This is real added meaning over the per-param descriptions.

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?

States a specific verb+resource: 'Reverse-lookup a person profile by any of their social URLs/handles', which is unambiguous and distinct from get_person_by_email. It does not explicitly contrast with the closest sibling, get_investor_by_social, but the 'person' scope is clear from the name and text.

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?

It specifies which params to pass (linkedin, twitter, or github) and that multiple are allowed with first-match semantics, which is useful context. However, it gives no guidance on when to prefer this tool over get_person_by_email or search_people, leaving alternative selection to inference.

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

get_startupGet startup profileB
Read-only
Inspect

Get full profile for a startup by slug Needs a free StartupHub.ai account.

NameRequiredDescriptionDefault
slugYes

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds a genuine behavioral detail beyond the annotations: that a free StartupHub.ai account is required. It does not, however, describe return format, pagination, or error behavior.

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

Conciseness3/5

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

Two short sentences that are front-loaded with the purpose, which is good. However the two sentences run together without punctuation ('by slug Needs a free...'), a structural flaw that slightly muddles readability.

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

Completeness3/5

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

For a single-parameter read tool with no output schema and annotations covering safety, the description is adequate but thin. It omits routing to the by-domain/by-funding siblings and any hint of the response shape or limits.

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?

Schema description coverage is 0%, so the description must carry the parameter explanation. It does so minimally by stating the lookup is 'by slug', identifying the key type, but adds no format, casing, or example detail beyond that.

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?

States a specific verb (Get) and resource (full profile for a startup) with a scope qualifier (by slug), so the agent knows exactly what it retrieves. It does not, however, distinguish itself from siblings that also read startup data (get_startup_by_domain, get_startup_socials, get_startup_funding_history).

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

Usage Guidelines2/5

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

There is no explicit when-to-use or when-not-to-use guidance, nor any named alternative among the many get_startup_* siblings. The only guidance is the account prerequisite, which is a precondition rather than usage routing.

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

get_startup_by_domainGet startup by domainA
Read-only
Inspect

Look up a single startup by its website domain. Accepts raw URLs (https://www.example.com/about), stripped (example.com), with or without paths. Returns the full profile. Use match_companies_by_domain instead for batches of 2+ domains. Needs a free StartupHub.ai account.

NameRequiredDescriptionDefault
domainYes

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds genuine non-structured context: the accepted domain input formats, that it returns the full profile, and that a free StartupHub.ai account is required (an auth prerequisite).

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

Conciseness5/5

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

Four short sentences, front-loaded with the core action, followed by input formats, return shape, the alternative tool, and the account requirement. No sentence is redundant with another.

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 one-parameter read tool with no output schema, the description covers action, input flexibility, result nature ('full profile'), auth requirement and sibling routing. Return-value detail is thin, but with no output schema and readOnly annotations the description is essentially complete.

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 0% and the schema only declares domain as a bare string, so the description carries the burden. It does so usefully by enumerating accepted formats (raw URL with path, stripped 'example.com', with or without paths), which is meaning the schema does not convey.

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 ('Look up a single startup by its website domain') and scopes it to a single result. It explicitly distinguishes itself from the batch sibling match_companies_by_domain, 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 Guidelines4/5

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

Names the alternative tool and the condition that selects it ('Use match_companies_by_domain instead for batches of 2+ domains'), which is clear routing guidance. It does not, however, distinguish this from other single-entity siblings such as get_startup or search_startups, so full when/when-not coverage is absent.

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

get_startup_funding_historyGet startup funding historyA
Read-only
Inspect

Full chronological list of investment rounds for a startup: amount, series, date, pre/post-money valuation, lead and participating investor IDs, plus a summary with total raised from rounds and the latest round date/series. Use after get_startup if you need round-by-round detail rather than just total_funding. Needs a free StartupHub.ai account.

NameRequiredDescriptionDefault
slugYes

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, openWorldHint=false and destructiveHint=false, so the safety profile is covered. The description adds value beyond the structured fields by disclosing an authentication prerequisite ('Needs a free StartupHub.ai account'), which is material behavioral context an agent would otherwise not know. It stops short of rate limits or pagination behavior, so not a 5.

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?

Two sentences with no filler; the returned-field inventory is front-loaded and the usage condition follows. The first sentence is dense to the point of being a run-on, but 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.

Completeness5/5

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

There is no output schema, and the description compensates by enumerating the return payload in detail, including the aggregate summary (total raised, latest round date/series). Combined with the annotation-covered safety profile and the stated account requirement, nothing essential for a correct call is missing.

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?

Schema description coverage is 0% for the single 'slug' parameter, so the description must carry the burden. It implies the identifier refers to a startup via 'for a startup' and the get_startup cross-reference, but never states the slug's format or where an agent obtains it. This partially compensates for the coverage gap, matching the baseline 3.

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 description states a specific verb+resource ('Full chronological list of investment rounds for a startup') and enumerates the exact fields returned (amount, series, date, pre/post-money valuation, investor IDs, plus summary totals). It explicitly contrasts itself with get_startup and total_funding, so an agent can distinguish it from siblings without opening a schema.

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 a clear conditional trigger: 'Use after get_startup if you need round-by-round detail rather than just total_funding.' That is explicit when-to-use plus an alternative. It does not address the other funding-adjacent siblings such as query_funding or get_company_funding, so routing between those and this tool is left to inference.

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

get_startup_socialsGet startup socials & emailsA
Read-only
Inspect

Lightweight endpoint that returns ONLY a startup's contact emails (contact / partnerships / press) and social URLs (LinkedIn, Twitter, GitHub, Facebook, YouTube, Discord, Slack, etc.) plus HQ city/country. Cheaper than get_startup (1 db credit vs 1 profile credit) when you don't need the full row. Needs a free StartupHub.ai account.

NameRequiredDescriptionDefault
slugYes

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false. The description adds genuinely useful context beyond that: the credit cost relative to a sibling, the auth requirement, and the exact scope of returned data ('ONLY ...', 'plus HQ').

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

Conciseness5/5

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

Three dense sentences, all front-loaded: what it returns first, then the cost/comparison, then the auth requirement. No filler or repetition of the title.

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 carries the burden of describing return contents — and it does so by enumerating emails, socials, and HQ fields. Cost, auth, and scope are all covered, leaving nothing essential for a correct invocation.

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?

Schema description coverage is 0% and the description never explains what 'slug' is or how to obtain it. However, with only a single, well-understood identifier parameter the gap is minor, so a mid-range score is appropriate.

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 (returns) and precisely enumerates the resource contents: contact/partnerships/press emails, social URLs, and HQ city/country. It explicitly distinguishes itself from the sibling get_startup by noting it returns only a subset when you don't need the full row.

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?

Gives an explicit when-to-use condition ('when you don't need the full row') and names the alternative (get_startup) along with a cost rationale (1 db credit vs 1 profile credit). It also states the prerequisite of a free StartupHub.ai account.

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

get_youtube_clipGet YouTube clipA
Read-only
Inspect

Poll a clip render started by render_youtube_clip. Returns status, progress, and mp4_url when status is done. Needs a free StartupHub.ai account.

NameRequiredDescriptionDefault
job_idYesjobId from render_youtube_clip.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, openWorldHint=false, so the safety profile is covered. The description adds genuinely useful behavior beyond that: it is a polling endpoint, it returns status/progress, and mp4_url only appears when status is done. It omits failure/expiry states, but this is solid added context.

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

Conciseness5/5

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

Three short sentences, zero waste, and the polling purpose plus return contract are front-loaded before the account requirement.

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?

With no output schema, the description correctly carries the return contract (status, progress, mp4_url when done) and notes the free-account prerequisite. It is nearly complete; only error/expiry behavior is missing.

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?

Schema coverage is 100% and the single job_id parameter is already documented in the schema as coming from render_youtube_clip. The description only reinforces that provenance without adding format or validation detail, so the baseline 3 is correct.

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 (poll), the resource (a clip render started by render_youtube_clip), and what it returns. An agent can immediately distinguish it from render_youtube_clip and from the other get_* siblings.

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?

The description ties usage to a preceding render_youtube_clip call, which is clear context for when to invoke it. It does not, however, state polling cadence, termination conditions, or what to do if the job id is unknown/expired.

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

get_youtube_transcriptGet YouTube transcriptA
Read-only
Inspect

Fetch the full transcript plus metadata (title, channel, duration) for any YouTube video. Accepts a watch, youtu.be, Shorts, or mobile URL, or a raw video ID. No LLM: returns the raw caption text for downstream summarization or repurposing. Same result as POST /api/v1/youtube/transcript. Needs a free StartupHub.ai account.

NameRequiredDescriptionDefault
urlYesA YouTube URL (watch / youtu.be / shorts / mobile) or a raw 11-char video ID.

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnlyHint, destructiveHint=false, openWorldHint), so the bar is lower. The description still adds genuine context the annotations don't: it is deterministic/no-LLM, returns raw caption text, mirrors a REST endpoint, and requires a StartupHub.ai account (an auth prerequisite).

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?

Three sentences, front-loaded with the primary action and return payload; each sentence adds a distinct fact (inputs, semantics, endpoint equivalence, auth). The REST-endpoint equivalence line is the weakest, but it is short and not 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?

With no output schema, the description correctly fills the gap by naming the return payload (caption text plus title/channel/duration) and the auth prerequisite. For a 1-parameter read tool that is nearly complete; only error behavior for invalid/uncaptioned videos is unaddressed.

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?

Schema coverage is 100% for the single url parameter, and the description's list of accepted URL shapes duplicates what the schema already documents. Baseline 3 applies because the schema, not the description, carries parameter meaning.

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?

States a specific verb+resource ('Fetch the full transcript plus metadata') and enumerates the metadata fields, so the agent knows exactly what comes back. It only partially differentiates from siblings: the 'No LLM / raw caption text' clause hints at a distinction from generate_youtube_article, but neither that tool nor get_youtube_clip is named.

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?

Acceptable input forms (watch/youtu.be/Shorts/mobile/raw ID) and the note 'for downstream summarization or repurposing' imply a usage context, and the account requirement is a real prerequisite. However, there is no explicit when-to-use-this-vs-generate_youtube_article / suggest_youtube_clips guidance, leaving the routing decision to inference.

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

humanize_textHumanize textAInspect

Humanize AI Text. Rewrite a passage so it reads as natural prose, without changing the facts. Up to 12 paragraphs and 20000 characters per call. Requires an API key. Needs a free StartupHub.ai account.

NameRequiredDescriptionDefault
textYesThe passage to rewrite.
optionsNoOptional rewrite toggles.
strengthNoHow hard to rewrite. Default balanced.

TDQS

A3.9/5.0
Behavior4/5

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

Adds real behavioral context beyond the annotations: per-call limits (12 paragraphs, 20000 characters), auth requirements, and the guarantee that facts are preserved. Annotations cover safety hints but say nothing about quotas or account prerequisites, so this is a genuine addition.

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?

Four short sentences, well front-loaded with the purpose first and constraints after. Slightly clipped/telegraphic style but every sentence carries information.

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?

Covers purpose, limits, and prerequisites for a low-complexity single-transform tool with a fully documented schema. The main minor gap is that no output schema exists and the return shape (rewritten text) is not described.

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?

Schema description coverage is 100%, so 'text', 'options', and 'strength' are already documented in the schema with enums. The description adds no syntax or format detail for these parameters, so baseline 3 applies.

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 ('Rewrite a passage so it reads as natural prose') with a clarifying constraint ('without changing the facts'). No sibling tool does text rewriting, so it is easily distinguished.

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?

Gives operational context — requires an API key and a free StartupHub.ai account — plus size limits, but never says when to choose this versus any alternative or when it is inappropriate. Usage is implied rather than stated.

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

list_credit_packsList credit pack pricingA
Read-only
Inspect

Get credit pack pricing AND a checkout URL the user can open to buy more credits. Returns { buy_url: 'https://www.startuphub.ai/pricing?buy=credits', pricing: { validate: [...tiers], discover: [...tiers] } }: surface the buy_url to the user when they hit a 402 'credit_limit_exceeded' error or ask 'how do I get more credits'. There is no in-MCP purchase flow (Stripe checkout requires a browser); your job is to show the price tiers and hand them the buy_url. Credits never expire and volume discounts auto-apply.

NameRequiredDescriptionDefault
typeNoCredit type to price

TDQS

A4.8/5.0
Behavior5/5

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

Annotations only cover the safety profile (readOnly, non-destructive, closed-world), so the description adds genuinely new behavior: no in-MCP purchase path, browser-only checkout, credits never expire, and volume discounts auto-apply. It also sketches the return shape, which is valuable given no output schema exists.

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 the core purpose and keeps the usage trigger and purchase-flow caveat tight. The inline return JSON and hardcoded URL are slightly heavy, but each sentence carries usable information for a tool with no output schema.

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 correctly supplies the return structure (buy_url + pricing tiers) and the credit terms. Nothing an agent needs to call it or relay results to the user is missing.

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 goes further by showing pricing organized as { validate: [...tiers], discover: [...tiers] }, tying the enum values to concrete output categories and clarifying what the 'type' parameter selects.

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 ('Get credit pack pricing AND a checkout URL') and expands on the name to include the buy_url, so an agent immediately understands the dual output. No sibling tool overlaps this pricing/credits purpose, so differentiation is implicit but unambiguous.

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?

Gives an explicit trigger: surface buy_url on a 402 'credit_limit_exceeded' error, or when the user asks 'how do I get more credits'. It also sets a hard boundary ('no in-MCP purchase flow; Stripe checkout requires a browser'), leaving nothing to inference.

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

list_monitor_watchesList monitor watchesA
Read-only
Inspect

List company watches on this API key. Each watch covers pricing, jobs, news, and the other signals that plan allows. Needs a free StartupHub.ai account.

NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds genuinely useful context beyond that: the account prerequisite and the scope of what a watch includes (pricing, jobs, news, plan-dependent signals). It stops short of describing pagination or return shape.

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?

Three short sentences, front-loaded with the action and followed by the coverage scope and prerequisite. No filler, though the third sentence is a small afterthought rather than tightly integrated.

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?

With no parameters, no output schema, and full annotation coverage, the description supplies the missing behavioral context (account requirement, signal scope) an agent would need. Only a hint about the returned list structure is absent, which is minor.

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?

The tool takes zero parameters, so there is nothing for the description to disambiguate; baseline is 4. The description correctly implies no filtering arguments are needed.

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?

States a specific verb and resource ('List company watches on this API key') plus what each watch covers, so an agent can immediately tell this is a read operation. It does not explicitly name the create/cancel siblings, but the verb makes the distinction obvious enough.

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?

The description implies when to use it (enumerating the watches tied to the current API key) and adds a prerequisite ('Needs a free StartupHub.ai account'). However, it never states when-not to use it or points at alternatives like create_monitor_watch or cancel_monitor_watch.

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

list_my_apilist my apiB
Read-only
Inspect

List an API, MCP server, model endpoint or A2A agent on one of your own StartupHub profiles, so people and agents can find, try and pay for it. Check first with preview: true (nothing saved). kind: openapi (spec URL), mcp (server URL), chat (OpenAI-compatible base URL), agent (site or agent card URL), app (site, link only). Optional price_per_call in USD (free if omitted), provider_key to sell calls through StartupHub (stored encrypted; you earn the price less 20%). Returns the listing id. Never creates an account: the key must belong to the profile owner. Needs a free StartupHub.ai account.

NameRequiredDescriptionDefault
urlYes
kindYes
modelNochat: the default model id
previewNoOnly read what the URL offers, save nothing
docs_urlNo
price_unitNo
startup_idNoYour profile id (my_apis returns the profiles you can list on)
provider_keyNo
startup_slugNoOr your profile slug, e.g. acme-ai from startuphub.ai/startups/acme-ai
price_per_callNo
free_calls_per_dayNo

TDQS

B3.2/5.0
Behavior1/5

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

The description says the tool saves a listing unless preview: true is used and returns a listing id, which is a write/create operation. The annotations declare readOnlyHint: true, directly contradicting that behavior.

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 purpose and preview guidance are front-loaded, and the dense parenthetical lists efficiently pack the kind-specific URL semantics. It is slightly run-on, but for an 11-parameter tool most sentences carry useful information.

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

Completeness3/5

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

For a complex 11-parameter tool with no output schema, the description does well to state that it returns a listing id and that preview saves nothing. It still omits meaning for several parameters and, more seriously, does not resolve the readOnly contradiction with the annotations.

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?

The description adds useful meaning for kind, preview, price_per_call, and provider_key, including URL expectations and the 20% revenue share. However, with 11 parameters and only 36% schema description coverage, several parameters such as docs_url, price_unit, and free_calls_per_day remain undocumented in both the schema and the description.

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 makes clear that this tool publishes/registers an API, MCP server, model endpoint, or A2A agent on the user's StartupHub profile so others can discover and pay for it. It is specific about the action and resource, but it does not explicitly differentiate itself from the similarly named sibling my_apis or from find_apis.

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 a concrete usage instruction: use preview: true first to validate without saving. It also explains the account/ownership prerequisite and maps each kind to the expected URL, but it does not explicitly name when to use my_apis or find_apis instead.

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

list_startup_teamList startup teamA
Read-only
Inspect

Returns founders, current team, and board members for a startup, split by role. Each person record includes name, title, slug, LinkedIn, Twitter, description, and primary_email if visible to your plan tier. Use this to build org-charts, identify decision-makers for outreach, or enrich a startup record with its known people. Needs a free StartupHub.ai account.

NameRequiredDescriptionDefault
slugYes

TDQS

A4/5.0
Behavior4/5

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

With readOnlyHint/destructiveHint/openWorldHint already covering the safety profile, the description adds real value: it discloses the exact fields returned, that primary_email is gated by plan tier, and that a free account is required. It omits pagination/rate-limit behavior, but the added access and content context is substantive.

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?

Three sentences, front-loaded with the return scope, then fields, then use cases and prerequisites. Each sentence carries information, though the field enumeration is slightly list-heavy.

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?

No output schema exists, so listing the returned fields is valuable and largely covers the return shape. Plan-tier gating and the account requirement are also disclosed. Remaining minor gaps (pagination, slug format) keep it short of 5.

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

Parameters2/5

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

Schema description coverage is 0% and the single 'slug' parameter is neither described in the schema nor clarified in the description ('for a startup' is too vague to tell an agent whether slug is a domain, name, or ID). The description fails to compensate for the coverage gap.

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 ('Returns founders, current team, and board members for a startup, split by role') and even enumerates the returned fields. This clearly distinguishes it from siblings like get_startup (company record) or search_people (cross-company people search).

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 three concrete use cases (build org-charts, identify decision-makers for outreach, enrich a startup record), which conveys the intended context. It doesn't name an alternative tool or state when not to use it, but the usage context is clear.

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

match_companies_by_domainMatch companies by domainA
Read-only
Inspect

Bulk-match an array of advertiser/company domains against StartupHub.ai's startup database. Returns per-domain whether the company is in our database, plus funding amount, latest round, investor IDs, sectors, founded date, and HQ country. Built for cross-reference workflows like 'what % of Google Ads / Taboola / Outbrain advertisers are VC-backed': pass a scraped advertiser list, get back the funding intel. Up to 100 domains per call, 1 db credit per request (only charged when matches found). Needs a free StartupHub.ai account.

NameRequiredDescriptionDefault
domainsYesArray of advertiser/company domains. Accepts raw URLs (https://www.example.com), stripped (example.com), with or without paths. Max 100 per call.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already cover safety (readOnlyHint=true, destructiveHint=false, openWorldHint=false), but the description adds genuinely useful operational context beyond them: the 100-domain cap, the 1 db credit charge only when matches are found, and the account requirement. It does not disclose failure modes or partial-match behavior, so it falls short of 5.

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 core action, then return fields, use case, limits, cost, and prerequisites in a logical order. Each sentence carries information, though the marketing-tinged framing ("funding intel", "cross-reference workflows") is slightly padded.

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?

No output schema exists, so the description carries the burden of describing return values and does so explicitly (match status, funding amount, latest round, investor IDs, sectors, founded date, HQ country). Combined with the limits, cost model, and auth requirement, an agent has everything needed to invoke it correctly.

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?

With only one parameter and 100% schema description coverage, the schema already documents accepted domain formats and the 100 max. The description restates the same domain-array concept without adding format or edge-case detail beyond the schema, so the baseline 3 applies.

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: bulk-matching an array of advertiser/company domains against a startup database, and the description clearly distinguishes it from single-lookup siblings like get_startup_by_domain or get_investor_by_domain. The enumerated return fields make the operation unambiguous.

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 a concrete, explicit use case ("what % of Google Ads / Taboola / Outbrain advertisers are VC-backed") that tells the agent exactly when this tool is the right choice over siblings. It stops short of naming exclusions, e.g. that single-domain lookups or other enrichment tools should be used instead.

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

my_apismy apisB
Read-only
Inspect

Your API directory listings with calls and earnings this month, and the profiles you can list on. Pass recheck_id to re-read a listing from its URL after you changed the spec, tools or agent card, or remove_id to take one down. Needs a free StartupHub.ai account.

NameRequiredDescriptionDefault
remove_idNo
recheck_idNo

TDQS

B3.1/5.0
Behavior1/5

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

Annotations declare readOnlyHint=true and destructiveHint=false, yet the description instructs the agent to pass remove_id to 'take one down' — an irreversible-looking mutation. That is a direct conflict with the declared safety profile, so the description actively misleads rather than adding trustworthy behavioral context. It also omits rate limits or what recheck actually does server-side.

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?

Three compact clauses with the inventory description front-loaded, then the two parameter behaviors, then the account prerequisite. Every sentence carries information, though the opening sentence is slightly awkward in construction.

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

Completeness3/5

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

The auth prerequisite (free StartupHub.ai account) and both optional parameters are covered, and there is no output schema so return-shape explanation is less critical. However, with a destructive-sounding remove operation and zero annotation coherence, the description should clarify what removal actually means and what recheck returns.

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 must carry the parameter burden, and it largely does: recheck_id is tied to re-reading a listing from its URL after spec/tool/agent-card changes, and remove_id to removal. The remaining gap is the expected ID/URL format, which is never specified.

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 specific resource and scope: the caller's own API directory listings, with call counts and earnings for the current month, plus the profiles they can be listed on. The verb is implied (a listing/read) rather than stated, and it never distinguishes itself from the obvious sibling list_my_api, so it falls short of a 5.

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?

It gives condition-based guidance for its two optional parameters (use recheck_id after changing spec/tools/agent card; use remove_id to take a listing down), which is genuinely useful. But it says nothing about when to choose this tool over find_apis or the near-identical list_my_api, so the core routing decision is left to inference.

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

publish_market_mapPublish a market mapA
Destructive
Inspect

Publish a market map at a public link (public_url, a page on StartupHub.ai) with an embed for other sites (embed_url and iframe_code), or make it private again with publish: false. Free. Publishing does not by itself put the page in search engines. Needs a free StartupHub.ai account.

NameRequiredDescriptionDefault
map_idYesThe map to publish or unpublish.
publishYestrue to publish, false to make it private again.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare a non-read-only, destructive operation, and the description adds meaningful behavior beyond that: public link exposure, embed URLs, account requirement, and the SEO caveat. It does not fully explain side effects such as whether existing embeds break on unpublish, but it is substantially more informative than the annotations alone.

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

Conciseness5/5

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

The description is compact and front-loads the main action and inverse action. Every sentence contributes useful information about outputs, account requirements, or SEO behavior.

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?

For a two-parameter publishing toggle with no output schema, the description is complete enough: it explains the public/private outcomes, mentions the resulting public and embed URLs, and notes the account requirement and SEO limitation.

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?

Schema description coverage is 100%, and both parameters are already documented in the input schema. The description reinforces the `publish` boolean semantics but adds little beyond the schema, so the baseline score of 3 applies.

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 description gives a specific verb and resource: publish a market map, and clearly covers the inverse action of making it private again. It also distinguishes the public-link/embed outcome from related map operations such as creating or editing.

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 explicitly states how to use the tool in both directions: publish with `publish: true` or make private with `publish: false`. It gives useful context such as being free, requiring an account, and not automatically placing the page in search engines, though it does not name sibling alternatives.

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

publish_to_wordpressPublish to WordPressAInspect

Publish HTML to a WordPress site using the site's Application Password. Creates a post with the given title and HTML body. status is draft, publish, or pending. Default is draft. Needs a free StartupHub.ai account.

NameRequiredDescriptionDefault
tagsNoTag names (created in WP if missing). Max 30.
titleYesArticle title (becomes the post title in WP)
statusNoDefault 'draft'. Use 'publish' to go live immediately, 'pending' to queue for editor review.
excerptNoOptional WP excerpt (manual excerpt overrides WP's auto-generated one).
site_urlYesWordPress site URL, e.g. 'https://blog.example.com'. https:// is auto-added if missing.
usernameYesWordPress username (the one shown in /wp-admin → Users)
categoriesNoCategory names (created in WP if missing). Max 10.
content_htmlYesFull article body as HTML. Will land verbatim in the WP block editor.
featured_image_urlNoOptional public URL of an image to sideload to WP media and attach as the featured image.
application_passwordYesApplication Password generated at /wp-admin/profile.php → Application Passwords. NOT the user's login password. 24 chars with spaces: paste as-is, we strip the spaces.

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already establish the safe-mutation profile (readOnlyHint=false, destructiveHint=false, openWorldHint=true). The description adds genuinely new context: authentication via Application Password, the external StartupHub account requirement, and that 'publish' goes live immediately — useful side-effect disclosure 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.

Conciseness4/5

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

Five short sentences, purpose first, with the prerequisite and default trailing. Efficient, but the status enumeration in the description duplicates the schema's own enum/default documentation, which is mildly redundant.

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

Completeness3/5

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

For a ten-parameter content-creation tool with no output schema, the description omits what the call returns (post ID, URL, or failure modes), which is the main missing piece an agent would need. Auth, credentials, and default status are covered adequately.

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?

Schema description coverage is 100%, so the schema already documents all ten parameters in detail, including enum values, defaults, and format hints. The description only restates the status enum and default, adding no meaning the schema lacks; baseline 3 applies.

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?

States a specific verb and resource: 'Publish HTML to a WordPress site' and 'Creates a post with the given title and HTML body'. No sibling tool targets WordPress, so it is functionally distinguishable, though it never explicitly contrasts itself with the submit_* family that also creates published content.

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?

It surfaces the account prerequisite ('Needs a free StartupHub.ai account') and the three status values with the default, which implies usage context. However there is no guidance on when to prefer this over other content submissions or what preconditions (validated credentials, existing site) must hold.

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

query_fundingQuery funding totalsA
Read-only
Inspect

Answer how much funding was raised, how many rounds closed, or how many companies were founded, for a country, sector, series, and year. This is the StartupHub /analysis chart as data. Use it for questions like 'how much funding did Canadian startups raise in 2026'. dataset=rounds (default) is announced round capital in that year. dataset=startups is companies founded that year, and the dollar total is what those companies have raised to date, not capital raised during the year. dataset=funds is fund closes. dataset=investors counts firms founded, with no dollar total. country is a full English name: Canada, United States, United Kingdom. group=sector or group=country returns a breakdown. Free, no API key. Returns the count, total USD, a chart URL, and the periods or categories behind the total.

NameRequiredDescriptionDefault
toNoLast year, inclusive. Ignored when year is set. Default the current year. Clamped between from and the current year.
fromNoFirst year, inclusive. Ignored when year is set. Default depends on dataset: rounds 2021, funds 2015, startups 2010, investors 1995. Clamped to the dataset range.
yearNoCalendar year, an integer from 1970 to 2100. Sets both from and to. Example: 2026.
groupNoHow to break the total down. Default time, which is the single undivided total. Depends on dataset: funds and startups have no series; investors allows only time, sector and country. An invalid value becomes time. group=sector counts a company in every sector it carries, so that total is higher.
splitNoOptional second breakdown: one of the dataset dimensions, not equal to group. Anything else means none. The total still excludes double-counting.
bucketNoTime bucket. A single year defaults to year. A range defaults to quarter.
sectorNoSector name, for example Artificial Intelligence or Fintech. Comma-separated for more than one, up to 8.
seriesNoRound stage, dataset=rounds only. Exact, case-sensitive values: Pre-Seed, Seed, Series A, Series B, Series C, Series D, Series E, Series F+, Growth, IPO, Debt, Grant, Strategic, Unlabeled. Comma-separated for more than one. Any other value is dropped.
countryNoFull English country name, or a common alias. Examples: Canada, United States, USA, United Kingdom, UK. Comma-separated for more than one, up to 8.
datasetNorounds = capital announced in the year (default). startups = companies founded that year. funds = funds closed. investors = firms founded.
sectorsNoAlias of sector.
countriesNoAlias of country.

TDQS

A4.7/5.0
Behavior5/5

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

Goes well beyond the read-only annotations by disclosing no-API-key/free access, the exact return payload (count, total USD, chart URL, periods/categories), and non-obvious edge behavior: that dataset=startups dollars are raised-to-date rather than in-year, that group=sector double-counts and inflates totals, and that split keeps the total de-duplicated.

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

Conciseness5/5

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

Long but dense and front-loaded: the core capability and example come first, then per-dataset semantics, then return shape. Nearly every sentence carries decision-relevant information (dataset selection, grouping caveats, return format) rather than 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?

For a 12-parameter aggregate tool with no output schema, it explains return values itself and covers the semantic traps (dataset differences, sector double-counting, split de-duplication, invalid-value fallbacks) that an agent must understand to call it correctly. Nothing essential is left to inference.

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 baseline is 3, but the description adds genuine interpretation beyond the schema: what the dollar total means per dataset, the higher total implied by sector grouping, and the annual/series scoping caveats. It does not restate most param mechanics, which the schema already covers.

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 capability (aggregate funding/rounds/founded-company counts by country, sector, series, year) with a concrete verb-resource framing and the anchor 'the StartupHub /analysis chart as data'. This clearly distinguishes it from per-entity siblings like get_company_funding and get_startup_funding_history, which return individual records rather than aggregate totals.

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 an explicit usage context with a worked example question ('how much funding did Canadian startups raise in 2026') and explains which dataset to pick for which question type. It lacks an explicit when-not statement or a direct pointer to the per-company funding siblings, so it stops short of full routing guidance.

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

rate_this_serviceRate this serviceAInspect

Optional. Rate how well StartupHub.ai served this task, 1 (poor) to 5 (excellent), with a short reason. Ratings are counted by agent type in a public monthly report and are never shown as customer reviews. Free, no API key.

NameRequiredDescriptionDefault
scoreYes1 to 5.
reasonNoOne sentence: what worked or what was missing.
would_payNoWould this task be worth paying for per call.

TDQS

A4/5.0
Behavior4/5

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

Annotations only say readOnlyHint=false, destructiveHint=false, openWorldHint=false. The description adds meaningful context beyond that: ratings are aggregated anonymously in a public monthly report and never surfaced as customer reviews, which tells the agent the data's downstream use. It doesn't describe the response, but this is a small submission tool.

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

Conciseness5/5

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

Two compact sentences, front-loaded with 'Optional' and the core action, with privacy and cost details after. Every clause carries useful information.

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 simple three-parameter submission tool with no output schema and safe annotations, the description covers purpose, cost, and data handling. Only a hint about what happens on success or invalid input is missing, which is minor.

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?

Schema description coverage is 100%, so the schema already documents score, reason, and would_pay. The description adds the 1-5 range (already in schema) and 'short reason' emphasis but no new semantics, so the baseline of 3 applies.

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?

States a specific verb and resource ('Rate how well StartupHub.ai served this task') with an explicit 1-5 scale, so the action is unambiguous. It does not name or contrast with siblings like check_domain_rating, but those are clearly ratings of other entities rather than of the service itself.

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?

'Optional' sets the when-to-use expectation, and 'Free, no API key' removes the main reason an agent might hesitate. It lacks an explicit when-not condition (e.g., only after completing a task), but the context is clear.

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

render_youtube_clipRender YouTube clipAInspect

Render one YouTube clip. Pass video_url, start_seconds, end_seconds, and quote from suggest_youtube_clips. Returns a job id. Call get_youtube_clip until status is done. Requires an API key and charges clip credits. Needs a free StartupHub.ai account.

NameRequiredDescriptionDefault
hookNo
quoteYesOn-screen caption, at least 8 characters.
styleNo
aspectNo
video_idNo11-character video id, if you do not have a URL.
video_urlNoYouTube URL.
end_secondsYes
start_secondsYes

TDQS

A4.1/5.0
Behavior5/5

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

Beyond the annotations (readOnlyHint=false, openWorldHint=true), the description discloses three traits an agent otherwise could not know: the tool is asynchronous and returns a job id, it requires an API key and a free StartupHub.ai account, and it consumes clip credits. Cost and auth disclosure on a non-destructive write tool is exactly the context annotations cannot supply.

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

Conciseness5/5

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

Six short sentences, each earning its place: purpose, required inputs and their source, return value, follow-up call, cost, and auth prerequisite. Purpose is front-loaded in the opening sentence.

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?

There is no output schema, and the description responsibly explains the async job-id return and the polling step. Combined with auth and cost notes, an agent has enough to invoke and follow through correctly; only the semantics of the optional styling parameters remain uncovered.

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?

Schema description coverage is only 38%, so the description is expected to compensate. It names video_url, start_seconds, end_seconds, and quote and notes quote's origin, but leaves hook, style, aspect, and video_id entirely unexplained in both schema and description, so the compensation is partial.

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?

States a specific verb (render) and resource (one YouTube clip), and the workflow sentences make clear it is distinct from get_youtube_clip (the polling tool) and suggest_youtube_clips (the source of parameters). It does not, however, explicitly distinguish itself from the other video-generation sibling, generate_article_video.

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 clear operational context: pull video_url, start_seconds, end_seconds, and quote from suggest_youtube_clips, then poll get_youtube_clip until status is done. The when-to-use path is spelled out, but there are no exclusions (e.g., when not to render, how to pick start/end).

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

run_agent_taskrun agent taskA
Read-only
Inspect

Give a task and StartupHub picks the agent to run it: listed agents and models are ranked on fit to the task, success rate and speed from real calls, and price. If the chosen agent fails, the task moves to the next one, and failed attempts are refunded, so you pay only for the agent that finished it. Billed to your StartupHub credits. Long tasks return a route_id: follow it with get_api_task. dry_run shows the ranking without running anything. Needs a free StartupHub.ai account.

NameRequiredDescriptionDefault
taskYesWhat you want done, in plain words
labelNoWhat this is for, e.g. "book the reservation". Shown in your console.
preferNo
dry_runNo
fallbacksNoHow many other agents to try if one fails, 0-3, default 2
listing_idsNoOnly choose among these listings (ids from find_apis)
max_price_usdNoSkip agents priced above this per task

TDQS

A3.7/5.0
Behavior1/5

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

The description discloses genuinely useful behavior (cost billed to credits, failed attempts refunded, sequential fallback up to the fallback limit), but it directly conflicts with the structured annotations: a tool that executes real tasks, spends credits, and whose own example label is "book the reservation" is declared readOnlyHint=true and destructiveHint=false. That is an annotation contradiction under the scoring rules.

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 core mechanic, then billing, then long-task handling, then dry_run and the prerequisite. Every sentence carries information; it is slightly dense but not padded.

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?

With no output schema, the description supplies the key return semantics (route_id, refunds on failure, pay only for the completing agent) and the follow-up tool. It does not describe what the successful task result itself looks like, which is the main remaining gap for a 7-parameter executor.

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 71%, and the description still adds meaning the schema lacks: dry_run is defined as showing the ranking without executing anything, and route_id is explained as the handle for get_api_task. fallbacks and prefer remain defined only by the schema/enum, but the description carries the semantically ambiguous parameters.

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?

"Give a task and StartupHub picks the agent to run it" names a specific action and resource, and the ranking/fallback explanation makes clear this is a router/executor rather than a direct API caller like call_api. An agent can distinguish it from find_apis (discovery) and get_api_task (retrieval) without opening any schema.

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 concrete selection context: use dry_run to see the ranking without running, use get_api_task with the returned route_id for long tasks, and a free account is required. It does not explicitly contrast with call_api for cases where you already know which API to call, so the when-not guidance is incomplete.

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

scan_agent_readinessScan AI-agent readinessA
Read-only
Inspect

Scans a public site against current AI-agent readiness standards, including the llms.txt v2 shape (H1, summary, described links, and whether those links resolve). Returns a 0-100 score plus per-check pass/fail with a copy-paste fix prompt for each gap. A link to startuphub.ai in llms.txt or on the homepage is an 8-point bonus and is not required. Free, no credits charged. Common workflow: when a user wants leads who need AI-readiness work, search the web for businesses in a category/region, scan each site, then use discover_email on the lowest-scoring ones: the failed checks are the cold-outreach hook ('your site scores 23/100, here's what's missing'). Also useful as a self-audit for the user's own sites.

NameRequiredDescriptionDefault
urlYesThe site to scan, e.g. https://example.com

TDQS

A4.6/5.0
Behavior5/5

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

Annotations cover the safety profile (readOnly, non-destructive, open world), and the description adds value beyond them: no credits charged ('Free'), the scoring output shape, the disputed 8-point bonus rule and its optionality, and the fix-prompt artifact. These are operational facts an agent cannot derive from the annotations or schema.

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 purpose, output, and cost before the workflow guidance, and every sentence carries distinct information (scoring rules, bonus caveat, outreach workflow, self-audit). The outreach-workflow sentence is long and could be tightened, but nothing is truly redundant.

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 and only one parameter, the description carries the return-value burden and does so explicitly (0-100 score plus per-check pass/fail plus fix prompt). Combined with the cost note and the bonus caveat, an agent has everything needed to call this correctly.

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?

Schema description coverage is 100% and the single url parameter already has an example in the schema, so the description is not required to explain parameters. It adds no syntax, format, or constraint detail beyond what the schema provides, so the baseline 3 applies.

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?

Specific verb ('scans') + resource ('a public site') + the exact standard being evaluated (AI-agent readiness, llms.txt v2 shape). It also names the concrete artifact produced (0-100 score with per-check pass/fail), which separates it cleanly from siblings like discover_email or get_trends.

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?

Explicitly describes a common workflow (search the web, scan each site, then call discover_email on the lowest-scoring ones) and names the exact selection condition (lowest score = outreach hook). It also gives a second use case (self-audit of the user's own sites), so both when-to-use paths are covered.

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

scan_company_technologyScan company tech stackA
Read-only
Inspect

Tech Stack Checker. Return hosting, frameworks, analytics, payments, and mail setup for a company website. Checks a stored fingerprint first, then a fresh live read when live=true. Accepts a URL or a plain domain. Costs 1 credit. Needs a free StartupHub.ai account.

NameRequiredDescriptionDefault
liveNoWhen true, force a fresh live scan even if a cached DB fingerprint exists.
domainYesCompany domain or URL, e.g. "anthropic.com" or "https://anthropic.com/about"

TDQS

A4.2/5.0
Behavior4/5

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

Goes well beyond the readOnlyHint/destructiveHint annotations by disclosing billing ('Costs 1 credit'), an auth prerequisite ('Needs a free StartupHub.ai account'), and caching semantics (stored fingerprint vs. live read). Missing only failure modes or rate-limit detail.

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

Conciseness5/5

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

Five short sentences, front-loaded with the identity line, then output, then the caching rule, then cost and account requirement. Every sentence carries distinct information with no 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 read-only scan with no output schema, the description adequately covers the returned categories, cost, and auth requirement. It leaves the exact response shape unspecified, but nothing needed to invoke the tool correctly is absent.

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?

Schema description coverage is 100%, so both parameters are already documented in the schema. The description adds mild reinforcement ('Accepts a URL or a plain domain') but no syntax or format detail beyond what the schema already provides, matching the baseline 3.

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 ('Return hosting, frameworks, analytics, payments, and mail setup for a company website') with the returned categories enumerated. No sibling tool covers tech-stack detection, so it is unambiguously distinguishable from scan_agent_readiness or check_site_speed.

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?

Explains the caching decision rule precisely: a stored fingerprint is checked first, and a fresh live read happens when live=true. It does not name alternatives or exclusions, but no sibling overlaps, so context is sufficient without them.

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

scrape_youtube_videosScrape YouTube videosA
Read-only
Inspect

Video metadata for YouTube channels and video URLs, no transcripts. mode 'feed' (default) returns a channel's latest uploads, up to 15 per channel: title, date, views, likes, description, thumbnail ($1 per 1,000 videos). mode 'full' returns every watch-page field (duration, comments, subscriber count, shorts flag, channel handle) for up to 100 videos per call ($3 per 1,000). Video URLs always return full rows. Billed per video returned, never for failures. Same result as POST /api/v1/youtube/videos. Needs a free StartupHub.ai account.

NameRequiredDescriptionDefault
modeNo'feed' (latest uploads, cheap) or 'full' (all fields, deeper history).
limitNoVideos per channel: 1-15 in feed mode, 1-100 in full mode.
videosNoUp to 100 YouTube video URLs or 11-character ids.
channelsNoUp to 10 channels: an @handle, a youtube.com channel URL, or a UC channel id.

TDQS

A4.4/5.0
Behavior3/5

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

Annotations already declare readOnly, openWorld, and non-destructive, so the safety profile is covered. The description adds genuinely useful non-annotation context: per-video billing, no charge on failures, per-call limits (15 feed / 100 full), and a free-account requirement. Rich, but annotations carry much of the load.

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?

Dense but front-loaded, leading with purpose and mode behavior before pricing details. Every sentence carries information, though the pricing and billing sentences add length an agent may not always need. 5,

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 proactively lists return fields for each mode, and covers mode behavior, limits, billing, auth requirements, and endpoint equivalence. Nothing needed to invoke correctly appears to be missing.

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 goes further by explaining what each mode returns (feed fields vs the full watch-page field set) and the per-mode limit ranges, adding meaning beyond the schema text.

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 (video metadata for YouTube channels and video URLs) and immediately scopes it against siblings with 'no transcripts,' routing agents away from get_youtube_transcript. The feed vs full mode split makes the exact retrieval behavior unambiguous.

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?

Gives explicit mode-selection conditions: 'feed' (default) for latest uploads and cheap pricing, 'full' for every watch-page field and deeper history, plus the rule that video URLs always return full rows. Combined with the 'no transcripts' exclusion, an agent can choose this tool and its mode without inference.

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

search_domainsSearch new domainsA
Read-only
Inspect

Domain radar: newly registered names from our discovery queue (NRD, registries, GitHub orgs). This is NOT a company profile. Returns apex, registration date, registrar, mailbox signal, quality score, and status (queued / quality_failed). startup_slug is set only after we promote a real homepage into the directory. Always sorted newest first (created_at desc). Use search_startups for companies. Pro Lite and higher. 1 db credit. Needs a free StartupHub.ai account.

NameRequiredDescriptionDefault
qNoSubstring match on apex or candidate name. Needs at least 2 characters after removing % _ and commas, otherwise no filter.
tldNoComma-separated TLDs, e.g. 'ai,io'. Only ai, io, xyz, so, com and security filter anything; other values apply no filter. Maps to the NRD/CT sources and combines with source by OR.
apexNoExact hostname lookup, e.g. acme.ai. A leading www. is stripped; a value with no dot returns 400 invalid_apex. Overrides q.
limitNo1-100.
offsetNoSkip this many rows, for paging.
sourceNoComma-separated raw source or bucket ids, e.g. 'dot_ai_nrd', 'dot_ai_zone', 'github_new_org', 'uk_companies_house'.
statusNoComma-separated: queued, quality_failed, promoted, rejected. Default is queued,quality_failed.
promotedNo'true' = only names that already have a public startup profile.
is_parkedNoDomain is parked.
created_afterNoISO date. Rows we first ingested on or after this time.
created_beforeNoISO date. Rows we first ingested on or before this time.
has_real_emailNoMailbox on the domain (MX is not empty).
has_real_contentNoLast homepage probe found real body copy.

TDQS

A4.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, openWorldHint=false, so the safety profile is covered. The description does add value beyond that — credit cost, tier/account prerequisites, and the newest-first sort order — but it stops short of the richer behavioral detail (pagination interaction with offset, rate limits) that a 4-5 would need.

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 core identity ('Domain radar...') before routing, sorting, and entitlement notes. Nine short clauses for a 13-parameter tool is proportionate, though a couple of the entitlement sentences could be tightened.

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 13 parameters, no output schema, and no required fields, the description compensates well: it enumerates the returned fields (apex, registration date, registrar, mailbox signal, quality score, status), documents the sort order, states what startup_slug means, and covers cost and access requirements. Nothing critical for correct invocation is missing.

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?

Schema description coverage is 100% and there is no output schema, so the schema itself carries the per-parameter semantics (q substring rules, tld OR behavior, apex override, status default). The description only restates status values and source origin types at a high level, adding little beyond the schema. Baseline 3 is appropriate.

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 resource and scope: 'newly registered names from our discovery queue (NRD, registries, GitHub orgs)' and explicitly negates the likely confusion with 'This is NOT a company profile.' An agent can distinguish it from search_startups 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?

Explicitly routes the agent: 'Use search_startups for companies' paired with the 'NOT a company profile' exclusion. It also discloses the gating conditions (Pro Lite and higher, 1 db credit, free account required), so an agent knows both when to select it and whether it can call it.

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

search_investorsSearch investorsA
Read-only
Inspect

Find investors that match a startup's profile. Filter by sector_focus (e.g. 'Artificial Intelligence' for AI investors), stage_focus (Seed / Series A / etc.), geo_focus, cheque_min / cheque_max (matches investors whose cheque-size window overlaps the founder's raise), active_since (investors whose latest investment is on or after this date, to surface who has deployed capital recently), min_recent_rounds_90d (activity threshold), and actively_investing. Sort whitelist: total_score, last_investment_date, recent_rounds_90d, recent_lead_rounds_90d, total_funds_raised, min_cheque_size, max_cheque_size, last_mentioned_at, created_at. For example sort='last_investment_date.desc' surfaces the most recently active funds first. Page with offset. Needs a free StartupHub.ai account.

NameRequiredDescriptionDefault
qNoMatches name or description.
sortNoSort order: '<column>.<asc|desc>' from the whitelist above. Default total_score.desc. An unknown column falls back to the default.
typeNoExact, case-sensitive match on the stored investor type, for example VC, Angel, Accelerator, Corporate VC, Family Office, PE.
limitNoMax 100.
offsetNoSkip this many results, for paging.
countryNoInvestor's HQ country, exact match.
geo_focusNoGeographic region the investor targets (e.g. "US", "Europe", "Israel"). Comma-separated values must all be present.
cheque_maxNoFounder's maximum target raise: matches investors whose min_cheque_size is at most this amount
cheque_minNoFounder's minimum target raise: matches investors whose max_cheque_size is at least this amount
stage_focusNoFunding stage (e.g. 'Seed', 'Series A'). Comma-separated values must all be present.
active_sinceNoYYYY-MM-DD. Returns investors whose latest investment is on or after this date.
sector_focusNoSector the investor focuses on (e.g. 'Artificial Intelligence', 'Biotech', 'Fintech'). Comma-separated values must all be present.
actively_investingNoOnly true filters; false applies no filter.
min_recent_rounds_90dNoMinimum number of rounds in the last 90 days. Use 1+ to drop dormant funds.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnlyHint=true, destructiveHint=false, openWorldHint=false). The description adds genuine non-schema context: the auth requirement and behaviors like actively_investing=false applying no filter and min_recent_rounds_90d='Use 1+ to drop dormant funds'. It omits rate limits and the shape of returned records, so not a 5.

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?

A single dense paragraph, but front-loaded with the purpose before enumerating filters, sort whitelist, and paging. Every clause carries filter semantics; it is tight for a 14-parameter tool, though the sort whitelist list makes it heavy mid-paragraph.

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?

With 14 parameters and no output schema, the description covers all filters, their semantics, sort options, paging, and auth. It does not describe what an investor result contains, which is the only notable gap given the absent output schema.

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 meaning beyond the schema: cheque_min/cheque_max are framed as a founder's target raise matched against overlapping cheque-size windows, active_since is justified as surfacing recently deployed capital, and sort is illustrated with a concrete example. This is real added value over the field docs.

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 ('Find investors that match a startup's profile') and immediately scopes it as a filter-driven search, which distinguishes it from sibling lookups like get_investor_by_domain, get_investor_by_social, and search_people. An agent can tell what it returns without opening the schema.

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 clear context for use (matching investors to a startup's raise profile) and states the prerequisite 'Needs a free StartupHub.ai account'. It does not name an explicit alternative such as get_investor_by_domain or find_matches, so it stops short of a full when/when-not treatment.

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

search_peopleSearch peopleA
Read-only
Inspect

Search founders, executives, board members, and key team members. Results are sorted by StartupHub score, highest first. Page with offset. Needs a free StartupHub.ai account.

NameRequiredDescriptionDefault
qNoMatches name or title.
tagNoOne tag, e.g. Unit 8200, Unit 81, Serial Entrepreneur, AI Expert, Investor, Has Exits.
limitNoMax 100.
titleNoPartial match on the current title, e.g. CTO.
offsetNoSkip this many results, for paging.
sectorNoOne exact sector name; commas are not split into several sectors.
countryNoExact country name.

TDQS

A3.7/5.0
Behavior4/5

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

With annotations already declaring readOnlyHint/destructiveHint/openWorldHint, the barrier is lower, and the description adds real value beyond them: result ordering ('sorted by StartupHub score, highest first'), paging behavior, and an authentication requirement. It does not describe rate limits or return shape, keeping it at 4.

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?

Three short sentences, front-loaded with the resource scope, then ordering, then prerequisite. The 'Page with offset' sentence is mildly redundant given the offset parameter's schema description, but nothing is bloated.

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 read-only search tool with full schema coverage, no output schema needed, and annotations carrying the safety profile, the description covers scope, ordering, paging, and the account prerequisite. It would be a 5 only if it addressed when to use this versus the person-lookup siblings.

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?

Schema description coverage is 100%, so all seven parameters are already documented in the schema; the baseline is 3. The description echoes 'Page with offset' but adds no syntax or format detail beyond what the schema supplies.

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?

States a specific verb (search) and a precisely bounded resource (founders, executives, board members, key team members), which an agent can distinguish from search_startups/search_investors/search_domains. It stops short of explicitly naming the sibling tools it is not, so it lands at 4 rather than 5.

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?

The description implies the search context ('founders, executives...') and states a prerequisite ('Needs a free StartupHub.ai account'), which is genuine usage guidance. However, it never says when to prefer this over search_investors, get_person_by_email, or list_startup_team, leaving the routing to inference.

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

search_startupsSearch startupsA
Read-only
Inspect

Search the startup database with any combination of filters: name, sector, country, city radius, founded date, team size, the latest funding round (round_series, raised_after), total funding, valuation, investors (backed_by), StartupHub score, Agent Readiness score, tech stack, website state, stealth status and known founder emails. Each result includes the latest round (last_round_series, last_round_date), sectors, HQ, founded date and score; paid plans add funding totals, headcount and more. Example: round_series=Seed, raised_after=2026-10-01, sort=last_round_date.desc for companies that just raised a seed round. Returns up to 100 per call (1 db credit); page with offset. Pairs with list_startup_team and discover_email to turn each result into a contactable lead. Needs a free StartupHub.ai account.

NameRequiredDescriptionDefault
qNoSearch text, matched against the name and one-liner.
cdnNoComma-separated CDNs: cloudflare, vercel, cloudfront, fastly, netlify; matches any of them.
a11yNoComma-separated accessibility overlays: userway, accessibe, audioeye; matches any of them.
nearNoHQ inside a bounding box around a point: "lat,lng,radius_km", radius clamped to 1-500 km. A malformed value applies no filter. Example "51.507,-0.128,25" for central London.
sortNo'<column>.<asc|desc>'. Columns: total_score, created_at (when StartupHub added the row), last_round_date, latest_funding_date (alias of last_round_date), total_funding, latest_valuation, founded_date, employee_count, employee_growth_quarterly_cagr, linkedin_followers, agent_readiness_score, trending_score_7d, current_revenue, revenue_multiple, revenue_per_employee, funding_efficiency. Default total_score.desc. An unknown column falls back to total_score.desc, and any direction other than asc sorts descending.
limitNoResults per call. Default 20, max 100.
slugsNoComma-separated StartupHub slugs, up to 100, lowercased before matching; matches any of them. Fetches known companies in one call.
hiringNo'true' returns only companies with open roles right now.
offsetNoSkip this many results, to page past the first 100.
sectorNoComma-separated sector names, e.g. "Fintech,Cybersecurity"; matches any of them. Exact sector names as shown on profiles.
statusNoOperating status. Exact, case-sensitive match on the stored value, for example Active or Inactive.
bookingNoComma-separated booking widgets: calendly, calcom, savvycal, chilipiper; matches any of them.
countryNoComma-separated countries; matches any of them. Accepts names or ISO codes; "US", "USA" and "United States" are the same.
hostingNoComma-separated hosting providers: aws, azure, gcp, vercel, render, netlify, hetzner, digitalocean; matches any of them.
paymentNoComma-separated payment providers: stripe, paddle, lemonsqueezy, paypal, klarna, apple_pay; matches any of them. The API also accepts payments as an alias.
stealthNo'true' = stealth only, 'false' = exclude stealth. Stealth rows need Pro Lite or higher.
has_blogNo'true' returns only companies whose website has a blog or news feed we found (RSS or Atom), 'false' only those checked and without one. Sites are rechecked every 90 days.
trendingNo'true' returns companies getting attention on StartupHub this week.
backed_byNoComma-separated investors, up to 20, by StartupHub slug or exact name, e.g. "sequoia-capital,Y Combinator"; matches any of them. When none of them matches an investor, the response is empty data plus a note.
ma_statusNoComma-separated exit states: acquired, public, merged, made_acquisitions; matches any of them.
max_scoreNoMaximum StartupHub score.
min_scoreNoMinimum StartupHub score (0-100). 70+ is roughly the top 1.5%.
ai_supportNoComma-separated AI customer support tools: intercom_fin, ada, sierra, decagon, drift_ai, fin_ai; matches any of them.
complianceNoComma-separated compliance claims found on the site: soc2, hipaa, iso27001, gdpr, ccpa, pci_dss, fedramp; matches any of them.
domain_tldNoComma-separated domain endings, e.g. "ai,io"; matches any of them.
has_websiteNo'true' returns only companies with a website on file.
open_sourceNo'true' returns only open-source companies.
status_pageNoComma-separated status page vendors: statuspage, instatus, betterstack; matches any of them.
has_foundersNo'true' returns only companies with known founders, ready for list_startup_team.
raised_afterNoMost recent funding round announced on or after this date: YYYY, YYYY-MM or YYYY-MM-DD.
round_seriesNoComma-separated stages of the most recent funding round; matches any of them. Values: Angel, Pre-Seed, Seed, Pre-Series A, Series A to Series H, Growth, Debt, Grant, Strategic, IPO. Pair with raised_after for "just raised a seed round".
employees_maxNoMaximum employee count (inclusive). Use 10 for tiny teams.
employees_minNoMinimum employee count (inclusive).
founded_afterNoFounded on or after this date: YYYY, YYYY-MM or YYYY-MM-DD.
max_valuationNoMaximum latest valuation, USD.
min_valuationNoMinimum latest valuation, USD. 1000000000 for unicorns.
raised_beforeNoMost recent funding round announced on or before this date: YYYY, YYYY-MM or YYYY-MM-DD.
cookie_consentNoComma-separated cookie consent vendors: onetrust, cookiebot, osano, termly; matches any of them.
email_providerNoComma-separated email providers: google_workspace, m365, zoho, proton, proofpoint, mimecast, self_hosted, gateway; matches any of them.
founded_beforeNoFounded on or before this date: YYYY, YYYY-MM or YYYY-MM-DD.
website_statusNoComma-separated website states: active, dead, parked; matches any of them.
email_marketingNoComma-separated email marketing tools: klaviyo, mailchimp, hubspot_forms, customer_io, loops; matches any of them.
hiring_platformNoComma-separated hiring platforms: greenhouse, lever, ashby, workable, teamtailor; matches any of them.
mentioned_sinceNoCovered in StartupHub news on or after this date: YYYY, YYYY-MM or YYYY-MM-DD.
has_known_emailsNo'true' returns only companies with at least one verified founder or team email. Pro Lite and up; Pro Lite sees redacted addresses, Pro sees them in full.
affiliate_programNoComma-separated affiliate platforms: partnerstack, rewardful, tolt, firstpromoter, impact; matches any of them.
max_total_fundingNoMaximum total funding raised, USD.
min_total_fundingNoMinimum total funding raised, USD.
min_reddit_reviewsNoMinimum number of classified Reddit reviews.
max_agent_readinessNoMaximum Agent Readiness score.
min_agent_readinessNoMinimum Agent Readiness score (0-100): how well AI agents can use the company website.
max_revenue_multipleNoMaximum valuation-to-revenue multiple.
min_reddit_sentimentNoMinimum Reddit sentiment, -100 to 100. Pair with min_reddit_reviews.
min_revenue_multipleNoMinimum valuation-to-revenue multiple (sparse).
agent_readiness_gradeNoComma-separated Agent Readiness grades: A+, A, B, C, D, F; matches any of them.
blog_post_within_daysNoOnly companies whose blog published a post within this many days (30, 90 or 365 are the usual values). Implies has_blog=true.
has_affiliate_programNo'true' returns only companies running an affiliate program.
max_funding_efficiencyNoMaximum revenue per dollar raised.
max_linkedin_followersNoMaximum LinkedIn followers.
min_funding_efficiencyNoMinimum revenue per dollar raised (sparse).
min_linkedin_followersNoMinimum LinkedIn followers, a brand-size proxy when headcount is unknown.
max_revenue_per_employeeNoMaximum revenue per employee, USD.
min_revenue_per_employeeNoMinimum revenue per employee, USD (sparse).

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds genuinely new operational context: cost ('1 db credit'), a hard return cap ('up to 100 per call'), offset pagination, an account requirement, and that paid plans change which fields come back. It stops short of describing result ordering behavior or the empty-result note in any depth.

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?

A single dense paragraph with no filler; purpose leads, then filters, then return shape, then example, then limits and pairing. It is longer than average but every sentence carries information for a 63-parameter tool. Slightly front-loaded toward enumeration rather than routing, keeping it just under top marks.

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?

For a 63-parameter, zero-required tool with no output schema, the description covers what is missing elsewhere: the shape of each result (latest round, sectors, HQ, founded date, score), the plan-dependent field differences, the 100-per-call cap with offset paging, credit cost, and account prerequisite. An agent has everything needed to call it correctly without opening the schema.

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 100%, so the baseline is 3 and the schema carries the per-parameter burden. The description still adds value by grouping the 63 filters into recognizable categories (sector, geography, funding, scores, tech stack, stealth) and demonstrating how several combine in one query, which helps an agent plan a call rather than read 63 fields in isolation.

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 ('Search the startup database') and enumerates the full filter surface plus the returned fields, so an agent knows exactly what the tool does. It also signals its position relative to siblings by noting it pairs with list_startup_team and discover_email, distinguishing it from the get_startup/enrich_company retrieval tools.

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 clear usage context ('with any combination of filters'), a concrete worked example (round_series=Seed, raised_after=..., sort=last_round_date.desc), and the downstream composition path with list_startup_team and discover_email. However it never states when NOT to use this tool or named alternatives (e.g. find_stealth_startups, generate_startup_list), so exclusions are absent.

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

search_suggestionsSearch suggestionsA
Read-only
Inspect

Search Suggestion Explorer. Live autocomplete-style suggestions for a phrase. Use it before picking a title or keyphrase. Free, rate-limited.

NameRequiredDescriptionDefault
qYesSeed phrase, at least 2 characters.
deepNoWhen true, return a wider set. Default false.

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, and non-destructive, so safety is covered. The description adds genuinely new behavioral context: it is free and rate-limited, and results are "live" autocomplete-style rather than cached. This is useful operational detail an agent cannot get from the structured fields.

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?

Three terse sentences, front-loaded with the purpose, followed by usage and constraints. Efficient overall, though the leading fragment "Search Suggestion Explorer" is redundant with the tool title and occupies the highest-attention slot without adding information.

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 two-parameter, read-only lookup tool with annotations covering safety and full schema coverage, the description supplies everything needed to invoke it correctly. It does not describe the shape of returned suggestions, but with no output schema and a hint that results are autocomplete-style, that gap is minor.

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?

Schema description coverage is 100%, and both parameters (q as a seed phrase with a minimum length, deep as a widening flag) are already well documented in the schema. The description's "for a phrase" echoes q but adds no syntax, format, or usage nuance for either parameter, so the baseline 3 applies.

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 states a concrete purpose – "Live autocomplete-style suggestions for a phrase" – which is a specific output type, not a restatement of the name. The opening "Search Suggestion Explorer" is essentially a renamed title and adds nothing, but the second sentence carries the real meaning. No sibling overlap exists among the listed tools, so differentiation isn't required.

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?

"Use it before picking a title or keyphrase" gives an explicit when-to-use trigger tied to a workflow step. There is no when-not guidance or named alternative, but the sibling list contains no competing suggestion/keyphrase tool, so the omission is low-risk.

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

spend_limitsspend limitsA
Read-only
Inspect

Cap what you spend through StartupHub per day or per month: on everything, on one listing, or on one label. Calls stop at the limit, and you get an alert when spend passes alert_pct (80% by default). With no arguments, lists your limits and what is spent so far. Set: period plus limit_credits, optionally listing_id or label. Remove: remove_id. Needs a free StartupHub.ai account.

NameRequiredDescriptionDefault
labelNo
periodNo
alert_pctNo
remove_idNo
listing_idNo
limit_creditsNo

TDQS

A3.5/5.0
Behavior1/5

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

Annotations declare readOnlyHint=true and destructiveHint=false, yet the description describes mutating operations ('Set: period plus limit_credits' and 'Remove: remove_id') that create and delete spend controls. This directly contradicts the read-only declaration, so an agent trusting the annotations could invoke a state-changing operation believing it is a pure read. The account prerequisite and 80% default alert are useful, but the core safety profile is inconsistent.

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

Conciseness5/5

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

Dense but well front-loaded: the capability sentence comes first, then behavior, then the argument-based mode breakdown, then the account requirement. Every sentence carries distinct information and the verb-led fragments ('Set:', 'Remove:') are easy to scan.

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 6-parameter, no-output-schema tool the description covers all three modes, the default alert threshold, what happens when a limit is hit, and the free-account prerequisite. It falls short only on how to read back or clear individual alerts and on the fact that removals are permanent.

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 burden, and it does so well: it groups period + limit_credits as the set payload, marks listing_id and label as optional scope selectors, explains remove_id, and gives alert_pct meaning plus its 80% default. Only the mutual exclusivity of label vs listing_id and any ID formats remain 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 gives a specific verb and resource (cap spend through StartupHub per day/month, scoped to everything/one listing/one label) and enumerates the three operating modes. It is clear enough to act on, but never names or contrasts the closest sibling, get_my_usage, which also reports credit consumption, so an agent could hesitate between them.

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 explicitly maps arguments to intents: no arguments lists limits and current spend, 'period plus limit_credits' sets one, and 'remove_id' removes one. What's missing is guidance on when to reach for this tool versus get_my_usage or list_credit_packs, and no exclusion conditions are stated.

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

style_market_mapRestyle a market mapA
Destructive
Inspect

Change how a market map looks, the same settings as Market Map Maker's style menu: theme (clean, shadcn, glass, dark, editorial, brand), columns (1-4), logo style (tile, square, wordmark, card), density (compact, comfortable, roomy), logo shape (rounded, circle, square), logo size (sm, md, lg) and greyscale logos. Applied instantly and free, no credits. Pass only what should change. Returns the same fields as get_market_map. Needs a free StartupHub.ai account.

NameRequiredDescriptionDefault
logoNoHow each company shows: logo tile, square logo, wordmark, or a card with a one-line description.
themeNo
map_idYesThe map to restyle.
columnsNo
densityNo
greyscaleNoGreyscale logos, colour on hover.
logo_sizeNo
logo_shapeNo

TDQS

A4.4/5.0
Behavior4/5

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

Adds useful behavior beyond annotations: changes apply instantly, cost no credits, use partial updates, and return the same fields as get_market_map. It does not explain reversibility or overwrite semantics for existing style settings, but destructiveHint=true already signals mutation risk.

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 the core action and packs the option list efficiently. It is dense but every clause carries parameter or behavioral information, with only a minor cost in readability from the long enumerating sentence.

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?

Covers the essential behavior for a mutation tool with no output schema by noting partial updates, instant application, account requirement, and return shape via get_market_map. It could be stronger if it clarified whether unspecified settings remain unchanged, but the core invocation context is complete.

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

Parameters5/5

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

Schema coverage is low at 38%, but the description compensates by enumerating the allowed values for every styling parameter: theme, columns, logo style, density, logo shape, logo size, and greyscale. This gives an agent enough semantic detail to choose values without relying on enum labels alone.

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: changing how an existing market map looks. It distinguishes itself from create/edit/publish siblings by describing appearance-only restyling with the same settings as the Market Map Maker style menu.

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?

Clearly indicates partial-update usage with 'Pass only what should change' and notes the free account requirement. It does not explicitly compare to edit_market_map or state when not to use this tool, so it falls short of full when/when-not guidance.

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

submit_exit_eventSubmit an exit eventAInspect

Announce an IPO / Acquisition / Merger / SPAC / Buyout / Closure for a startup you own. acquirer_name required for Acquisition/Merger; stock_exchange + ticker required for IPO/SPAC. Costs 5 credits. Needs a free StartupHub.ai account.

NameRequiredDescriptionDefault
tickerNoRequired for IPO / SPAC
valuationNo
source_urlNo
startup_idNo
descriptionNoThird-person, ≤1500 chars
startup_slugNo
acquirer_nameNoRequired for Acquisition / Merger
considerationNoTotal deal value in USD
date_announcedYesYYYY-MM-DD
stock_exchangeNoRequired for IPO / SPAC (e.g. NASDAQ, NYSE, LSE)
transaction_typeYesIPO | Acquisition | Merger | SPAC | Secondary Sale | Buyout | Management Buyout | Tender Offer | Asset Sale | Bankruptcy | Closure

TDQS

A4.1/5.0
Behavior4/5

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

Annotations only give the generic write/open-world/no-destroy profile. The description adds non-obvious operational facts: a 5-credit cost, an account prerequisite, and ownership scope. It still omits whether resubmission is rejected, whether the event is moderated, or what confirmation is returned.

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

Conciseness5/5

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

Three short sentences, zero filler, and the core purpose leads. Cost and account requirements are appended where an agent will still read them.

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

Completeness3/5

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

For an 11-parameter mutation with no output schema, the description covers cost, auth, and conditional fields, but leaves unclear how the target startup is identified (both startup_id and startup_slug are optional), and how deal-value fields (valuation vs consideration) differ.

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?

Schema coverage is 64%, so the schema carries most parameter meaning. The conditional requirements the description restates (acquirer_name for Acquisition/Merger; stock_exchange + ticker for IPO/SPAC) are already present in the schema field descriptions. It adds nothing about valuation, consideration, source_url, or the startup_id vs startup_slug choice.

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 (Announce) and a precisely enumerated resource (IPO/Acquisition/Merger/SPAC/Buyout/Closure) scoped to 'a startup you own'. This clearly separates it from submit_funding_round, submit_startup, and the other submit_* siblings.

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 real preconditions: you must own the startup, it costs 5 credits, and a free StartupHub.ai account is needed. It also says which transaction types need which fields. It does not, however, point to an alternative tool or state when this should not be used (e.g. duplicate exits, non-owned startups).

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

submit_funding_roundSubmit a funding roundAInspect

Announce a funding round for a startup you own (created_by must match your API key user). Strict: series from controlled vocab (Pre-seed/Seed/Series A.../Crowdfunding), USD amount, YYYY-MM-DD date, third-person description. Optional lead/participating investor slugs. Deduped: same startup + same series within 7 days returns 409. Costs 5 credits. Needs a free StartupHub.ai account.

NameRequiredDescriptionDefault
seriesYesPre-seed | Seed | Pre-Series A | Series A | Series B | ... | Convertible Note | SAFE | Bridge | Debt | Grant | Crowdfunding | Growth | Pre-IPO | Strategic | Secondary | Other
source_urlNoPress release / TechCrunch / SEC filing URL
startup_idNoAlternative to startup_slug: startup UUID
descriptionNoThird-person, ≤1000 chars
startup_slugNoSlug of the startup raising (must be a startup you own)
date_announcedYesYYYY-MM-DD
investment_amountYesTotal raised in USD (e.g. 5000000 for $5M)
lead_investor_slugsNo
pre_money_valuationNo
post_money_valuationNo
participating_investor_slugsNo

TDQS

A4/5.0
Behavior5/5

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

Annotations only declare readOnlyHint=false and destructiveHint=false; the description adds substantial behavioral context: 409 dedupe on same startup+series within 7 days, 5-credit cost, and a free-account requirement. These are operationally critical facts an agent cannot infer from structured fields.

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

Conciseness5/5

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

Dense, front-loaded, and every clause earns its place: ownership rule, format constraints, dedupe, cost, and account requirement. No filler, and the primary purpose leads.

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?

No output schema exists, so the description should carry the burden, and it covers the high-risk facts (cost, dedupe, auth). It is slightly incomplete on the startup reference requirement (slug vs id) and the optional valuation fields, but overall sufficient for a submission tool.

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?

At 64% schema coverage, the schema already documents most fields (series vocab, USD amount, YYYY-MM-DD, third-person ≤1000 chars). The description largely restates these, only adding the ownership constraint on the startup reference. It does not clarify that at least one of startup_slug/startup_id must be supplied, nor cover the valuation params.

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?

States a specific verb+resource ('Announce a funding round for a startup you own'), which reads distinctly against read siblings like query_funding or get_startup_funding_history and other submitters like submit_exit_event. It does not name a specific sibling to disambiguate, but the resource is unambiguous.

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?

The ownership precondition ('created_by must match your API key user') implies when this tool is valid, but there is no explicit when-to-use vs alternative guidance (e.g., versus submit_exit_event or query_funding). Usage is implied rather than stated with exclusions.

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

submit_investorSubmit an investorAInspect

Submit a new investor profile (VC, angel, accelerator, etc.). Lists it on the free plan immediately, same as submit_startup. Third-person prose, no HTML/markdown, no listicle titles. Costs 5 credits. Deduped by website domain or name and country. Needs a free StartupHub.ai account.

NameRequiredDescriptionDefault
cityNo
nameYesOfficial firm name (≤100 chars)
typeYesOne of: VC, Angel, Accelerator, Incubator, Corporate VC, Family Office, Sovereign Wealth Fund, Crowdfunding, PE, Hedge Fund, Syndicate
countryNo
websiteNo
logo_urlNoOptional logo image URL (≤2MB).
descriptionYesThird-person, 20–400 words
stage_focusNoPre-seed | Seed | Series A | Series B | Series C | Series D | Growth | Late Stage
twitter_urlNo
founded_dateNo
linkedin_urlNo
sector_focusNoUp to 10 sectors invested in

TDQS

A4.2/5.0
Behavior5/5

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

Annotations only cover the safety profile (readOnly=false, destructive=false, openWorld=true), so the description adds substantial operational context: it costs 5 credits, publishes immediately on the free plan, requires an account, and is deduped by website domain or name+country. These are exactly the side effects an agent needs before invoking a write tool.

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

Conciseness5/5

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

Five short sentences, all load-bearing, with the core action front-loaded and constraints, cost, dedup and auth stacked in descending priority. No filler or restatement of the title.

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 12-parameter mutation tool with no output schema, the description covers cost, account prerequisite, publish behavior, dedup rules and content formatting. It stops short of saying what the call returns (investor ID/URL) or whether submissions are moderated, which would close the remaining gap.

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?

Schema coverage is only 50% across 12 parameters, so the description must compensate. It usefully documents the 'description' field rules (third-person prose, no HTML/markdown, no listicle titles) and names the dedup keys (website/name/country), but leaves city, founded_date, socials, stage_focus and sector_focus semantics entirely to the schema entries.

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 ('Submit a new investor profile') with scope clarification ('VC, angel, accelerator, etc.'), and positions itself against the sibling submit_startup. An agent can distinguish this from update_investor or search_investors without opening a schema.

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 implied by 'new investor profile' and a prerequisite is stated (free StartupHub.ai account), plus the framing 'same as submit_startup' hints at the parallel flow. However, there is no explicit when-to-use-vs-alternative guidance, e.g. no pointer to update_investor for edits or search_investors to check existence first.

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

submit_listSubmit a listAInspect

Submit a new editorial list (e.g. "Top 10 AI dev-tools startups", "Best seed-stage fintech companies") to StartupHub.ai for moderation review. Lists are collections of existing startups, investors, and/or people on the site: provide their slugs. Optional rich content (HTML or text body) for the list article. Lands as status=pending; admin must approve before public. Costs 5 credits. Use search_startups / search_investors / search_people to look up slugs first. Needs a free StartupHub.ai account.

NameRequiredDescriptionDefault
tagsNoUp to 20 tags (≤40 chars each).
titleYesList title (≤200 chars). Descriptive, reader-friendly.
contentNoOptional long-form body. Plain text or simple HTML. ≤5000 words. Third-person.
excerptNoShort summary shown on list index + SEO description (≤400 chars, third-person).
source_urlNoOptional URL to the original source if syndicating.
people_slugsNoArray of person slugs to include.
startup_slugsNoArray of startup slugs to include. Must match existing profiles. Look up via search_startups.
investor_slugsNoArray of investor slugs to include.
featured_image_urlNoOptional cover image URL.

TDQS

A4.4/5.0
Behavior5/5

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

Beyond the annotations (mutation, non-destructive, open-world), the description discloses the moderation workflow ('lands as status=pending; admin must approve before public'), the credit cost, and the account requirement. These are exactly the side-effect and auth details an agent needs before invoking a write tool.

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

Conciseness5/5

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

Roughly six sentences, each earning its place: examples, entity semantics, optional content, moderation outcome, cost, lookup tools, and account requirement. Everything is front-loaded with no filler.

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 mutation tool with no output schema and full schema coverage, the description covers outcome (pending moderation), cost, auth, and preparation steps. It could say more about validation failures or whether startup/investor/people slugs can be mixed freely, which keeps it from a 5.

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?

Schema description coverage is 100%, so the schema already documents all nine parameters including slug format and lookup hints. The description reinforces that lists are collections of existing startups/investors/people and that slugs must be supplied, but adds little syntax or format detail beyond the schema. Baseline 3 is appropriate.

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 ('Submit a new editorial list') with two concrete examples, and clarifies it is a curation of existing entities rather than a generation. An agent can distinguish this from sibling generators like generate_startup_list and submit_startup from the description 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 clear preconditions and guidance: look up slugs with search_startups / search_investors / search_people first, need a free account, costs 5 credits. It does not explicitly contrast itself with the nearest alternative (generate_startup_list, which would produce rather than submit a list), so it stops short of a full 5.

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

submit_newsSubmit newsAInspect

Submit a news article / press release. Strict: third-person, controlled categories, 100–10000 words. Dedup by source_url or by similar title within 30d. Lands in pending status; admin approves. Costs 5 credits. Needs a free StartupHub.ai account.

NameRequiredDescriptionDefault
tagsNo
titleYes≤200 chars
contentYesArticle body, 100–10000 words, plain text or basic HTML
excerptNoOptional 1–2 sentence summary, ≤400 chars
categoriesYes1–3 categories from the controlled vocabulary
source_urlNoIf syndicating, link to the original (also used for dedup)
author_nameNo
startup_slugNoOptional company being featured
featured_image_urlNo

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already indicate a write (readOnly=false) and non-destructive, open-world operation. The description adds substantive traits beyond that: dedup logic by source_url or similar title within 30 days, moderation via pending/admin approval, a 5-credit cost, and an account requirement. This is rich operational context an agent cannot get from annotations.

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

Conciseness5/5

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

Purpose is front-loaded in the first sentence, followed by dense constraint clauses (format, dedup, moderation, cost, account). Every clause carries actionable information with no filler.

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 9-param, no-output-schema submission tool, the description covers format rules, dedup, moderation workflow, cost and account prerequisites, which is most of what an agent needs. A few optional params (tags, author_name, featured_image_url) remain unexplained, but they are non-blocking for correct invocation.

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?

Schema coverage is 67%, so the schema documents several params (title, content, excerpt, categories, source_url, startup_slug) while tags, author_name and featured_image_url are bare. The description reinforces content length, controlled categories, and source_url dedup role, adding some meaning, but it leaves several parameters unaddressed — a baseline 3.

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?

States a specific verb (Submit) and resource (news article / press release), which is enough to distinguish it from the funding, product, patent and research submission siblings. It doesn't explicitly name those alternatives, but the resource is precise enough that an agent can route to it without ambiguity.

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?

Prerequisites are given (dedup within 30d, costs 5 credits, needs a free StartupHub.ai account, lands in pending), which is useful context. However, there is no explicit when-to-use-or-not guidance relative to sibling submit_* tools, so usage is only implied by the resource type.

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

submit_patentSubmit a patentAInspect

Submit a patent record. patent_number required (e.g. "US12345678B2"). Dedup by patent_number. Costs 5 credits. Needs a free StartupHub.ai account.

NameRequiredDescriptionDefault
titleYes≤300 chars
statusNoGranted | Pending | Filed | Expired | Withdrawn | Other
abstractNo≤3000 chars
inventorsNo
grant_dateNo
source_urlNoUSPTO / EPO link
filing_dateNo
jurisdictionNoUS | EP | CN | WO | etc.
startup_slugNoOptional parent startup
assignee_nameYesThe entity that owns the patent
patent_numberYese.g. "US12345678B2", "EP3456789A1"

TDQS

A3.6/5.0
Behavior4/5

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

Annotations declare this is a non-read-only, open-world, non-destructive write, and the description adds genuinely useful behavior beyond them: deduplication is keyed on patent_number (so repeat calls are idempotent), the call costs 5 credits, and an account is required. Missing only what happens on conflict (merge vs reject) and the return value.

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

Conciseness5/5

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

Four terse clauses, front-loaded with the action, then the requirement, then dedup, then cost/auth. Every sentence carries distinct information and nothing is padded.

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 an 11-parameter mutation tool with no output schema, the description covers the essentials an agent needs to invoke it correctly: the key required identifier, dedup semantics, cost, and auth requirement. It stops short of explaining output or edge-case behavior, but the annotations carry the safety profile.

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?

Schema coverage is 73%, so most parameters are already documented in the schema (including the patent_number exemplar and the status enum-like list). The description only reiterates that patent_number is required and repeats its format, adding little beyond the schema. Baseline 3 applies.

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?

States a specific verb and resource ('Submit a patent record') that maps cleanly to the domain object, distinguishing it in substance from the many other submit_* siblings by resource type. However, it never names or contrasts with an alternative (e.g. 'for company/startup records use submit_startup'), so differentiation is left to inference from the noun.

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

Usage Guidelines2/5

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

Gives a prerequisite ('Needs a free StartupHub.ai account') and an implied dedup rule, but never states when to use this tool versus the other ~10 submit_* siblings or when to skip submission (e.g. record already exists). No explicit when/when-not guidance.

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

submit_personSubmit a personAInspect

Submit a new person profile (founder, executive, board member). Lists them on the free plan immediately. Requires either current_title or linkedin_url. Third-person bio. Costs 5 credits. Needs a free StartupHub.ai account.

NameRequiredDescriptionDefault
cityNo
nameYesPerson's full name (≤80 chars)
countryNo
avatar_urlNoOptional avatar image URL (≤2MB).
github_urlNo
descriptionNoThird-person bio, ≤300 words, no HTML
twitter_urlNo
website_urlNo
linkedin_urlNoPersonal LinkedIn (linkedin.com/in/...), required if no current_title
current_titleNoe.g. "CEO at OpenAI", required if no linkedin_url

TDQS

A4/5.0
Behavior4/5

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

Annotations already flag this as a non-read-only, open-world write. The description layers on behavior beyond that: it costs 5 credits, lists the person on the free plan immediately, requires an account, and has a conditional field requirement. That is meaningful mutation/access context the annotations do not convey.

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

Conciseness5/5

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

Six short front-loaded sentences covering purpose, effect, requirements, and cost with zero filler. The most decision-relevant facts lead.

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 10-parameter mutation tool with no output schema, it covers the key prerequisites, cost, and immediate-listing behavior. What it omits (failure/duplicate handling, response shape) is minor against the annotation coverage of its write semantics.

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?

Schema coverage is only 50%, and the description repeats the either/or requirement for current_title and linkedin_url plus the third-person bio rule, all of which the schema already documents. The undescribed parameters (city, country, github_url, twitter_url, website_url) get no help, so it adds marginal value beyond the schema.

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?

It states a specific verb and resource ("Submit a new person profile") and scopes the entity type (founder, executive, board member). The word "new" implicitly distinguishes it from sibling update_person. It stops short of naming alternatives explicitly, but the purpose is unmistakable.

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 real preconditions an agent needs before calling: requires either current_title or linkedin_url, needs a free StartupHub.ai account, and costs 5 credits. It does not name a competing sibling (e.g., update_person for existing records), so it falls just short of full when/when-not guidance.

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

submit_productSubmit a productAInspect

Submit a product / tool / API / library / agent / model / dataset / hardware onto an existing company or organization. startup_slug or startup_id is required. Costs 5 credits. Strict format: third-person prose, no HTML/markdown, no listicle titles. Optional logo_url and screenshot_urls (up to 6) are fetched and stored automatically. Needs a free StartupHub.ai account.

NameRequiredDescriptionDefault
nameYesProduct name (≤80 chars; no listicle words)
tagsNo
sectorsNo
websiteYesProduct landing page or website
categoryNoe.g. "Coding agent", "Vector database", "Email assistant"
featuresNoOptional list of key features
logo_urlNoOptional product logo URL (≤2MB).
one_linerYesOne-sentence pitch in third person, 20–200 chars
startup_idNoParent company or organization UUID. Required unless startup_slug is set.
descriptionYesFull description in third person, 20–400 words, plain text only
github_repoNo
launched_atNoYYYY, YYYY-MM, or YYYY-MM-DD
pricing_typeNofree | freemium | paid | subscription | one-time | usage-based | enterprise | open-source
product_typeNoweb-app | mobile-app | desktop-app | api | cli | library | extension | mcp-server | agent | model | platform | dataset | hardware | plugin
startup_slugNoSlug of the parent company or organization (e.g. "anthropic" for Claude). Required unless startup_id is set.
app_store_urlNo
play_store_urlNo
pricing_detailsNoOptional structured pricing (tiers, per-seat, per-token, etc.)
screenshot_urlsNoOptional product screenshots (up to 6 URLs).
documentation_urlNo

TDQS

A3.8/5.0
Behavior4/5

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

Annotations cover the write/safety profile (readOnlyHint=false, openWorldHint=true), and the description adds real operational context on top: credit cost, account prerequisite, automatic fetching/storage of logo and screenshot URLs, and hard formatting rules for the prose fields. It does not say whether submissions are moderated, deduplicated, or what happens on rejection.

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 action and scope, then packs prerequisites, cost, format rules and asset handling into short sentences with no filler. The leading synonym list is long but does earn its place by defining scope.

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

Completeness3/5

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

For a 20-parameter write tool with a nested pricing_details object and no output schema, the description covers prerequisites and formatting well but omits the post-submission behavior (returned payload, review/approval, duplicate handling). Adequate but with a noticeable gap for a tool of this complexity.

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?

Schema description coverage is 70%, so the schema already documents most fields. The description reinforces the third-person/plain-text/no-listicle constraints and the 6-screenshot cap, but leaves the four required fields (name, website, one_liner, description) unenumerated and says nothing about tags, sectors, pricing_type, product_type, or the other optional fields. Baseline 3 is appropriate.

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?

States a specific verb (Submit) plus the resource and its many acceptable forms (product / tool / API / library / agent / model / dataset / hardware), and crucially scopes it to being attached 'onto an existing company or organization', which separates it from submit_startup. It stops short of naming a sibling outright, so an agent must infer the contrast.

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 the practical conditions for calling it: a parent startup_slug or startup_id is mandatory, a free StartupHub.ai account is needed, and the call costs 5 credits. It does not name update_product as the alternative for revising an existing product, so the when-not is left implicit.

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

submit_researchSubmit researchAInspect

Submit a research paper / preprint for inclusion. Optional startup link. Dedup by arxiv_id or doi. Costs 5 credits. Needs a free StartupHub.ai account.

NameRequiredDescriptionDefault
doiNo
titleYes≤300 chars
authorsYes
pdf_urlNo
sectorsNo
abstractYesThird-person, 30–600 words
arxiv_idNoe.g. "2401.12345" or "2401.12345v2"
source_urlNo
startup_slugNoOptional parent startup
publication_dateNo

TDQS

A4.1/5.0
Behavior4/5

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

Annotations cover the safety profile (readOnlyHint=false, destructiveHint=false, openWorldHint=true), and the description adds value beyond them: credit cost, auth prerequisite, and dedup by arxiv_id or doi. It stops short of describing the outcome of a dedup match or whether submissions go through review, so it is not exhaustive.

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?

Telegraphic and front-loaded — purpose first, then linking, dedup, cost, and auth. Every clause carries information, though the fragmented sentence style is terse rather than polished.

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 10-param write tool with no output schema, the description covers the key non-obvious facts (cost, account requirement, dedup keys). It omits post-submission behavior (moderation/publication) and says nothing about the unlabeled parameters, which keeps it short of fully complete.

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?

Schema description coverage is 40% across 10 params, so the description must compensate and only partly does: it explains the dedup role of arxiv_id/doi and that startup_slug is an optional parent link. Fields like sectors, pdf_url, source_url, and publication_date get no added meaning in either place.

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 (submit a research paper/preprint) and clarifies the inclusion intent, which cleanly separates it from sibling submit_* tools like submit_patent, submit_news, and submit_product. An agent can identify the right tool without opening the schema.

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 usage context: a free StartupHub.ai account is required and the call costs 5 credits, plus the dedup key. It does not state when to prefer this over alternatives or what happens if the account/credits are missing, but the operational conditions are clear.

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

submit_startupSubmit a startupAInspect

Submit a new startup profile. A website is enough. Name, description, and sectors are optional. If you send only a website, the profile is listed on the free plan and the rest is filled in from that site. Gambling and adult content stay hidden. Upgrade is optional later. When you do send prose: third person, no listicle titles, no HTML/markdown. Returns 400 with field-level errors and suggestions on bad input. Costs 5 credits. One profile per company website domain. Optional logo_url is fetched and stored automatically. Needs a free StartupHub.ai account.

NameRequiredDescriptionDefault
nameNoOfficial company name (≤80 chars, no listicle words)
hq_cityNo
sectorsNo1–5 sectors from the controlled vocabulary
websiteYesCompany website URL. This is the only required field.
logo_urlNoOptional URL to company logo image (PNG/JPEG/WebP/SVG, ≤2MB). Server fetches + stores; if omitted, logo is auto-discovered from the website later.
one_linerNoOne-sentence pitch in third person, 20–200 chars
github_urlNo
hq_countryNo
descriptionNoFull description in third person, 30–400 words, plain text only
twitter_urlNo
founded_dateNoYYYY, YYYY-MM, or YYYY-MM-DD
linkedin_urlNo

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 (readOnly=false, destructive=false, openWorld=true) by disclosing credit cost (5 credits), one-profile-per-domain rule, account requirement, content moderation (gambling/adult hidden), auto logo fetch, and 400 error behavior with suggestions. These are exactly the operational traits an agent needs.

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 and required input, then layers constraints. However, it reads as a choppy run of short fragments (e.g., 'Upgrade is optional later.') that could be grouped more tightly; most sentences still earn their place.

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 12-parameter mutation tool with no output schema, the description covers cost, error format, domain limits, moderation, and account requirements well. It does not describe the success response shape, but the input-side guidance is otherwise thorough.

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 only 58%, and the description compensates for key fields: website as the sole required input, prose style rules (third person, no listicles, no HTML/markdown), and that logo_url is fetched and stored automatically. It leaves several params (hq_city, socials, founded_date) undocumented, so it is not fully compensating.

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 (submit a new startup profile) and the minimal input (a website is enough), which cleanly separates it from siblings like update_startup or submit_investor. An agent can identify the operation and the resource without opening the schema.

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?

Clearly states the condition for use (a website alone suffices; name/description/sectors optional) and the free-plan fallback when only a URL is sent. It does not, however, name alternative tools (e.g., update_startup for edits) or state explicit when-not-to-use conditions.

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

suggest_youtube_clipsSuggest YouTube clipsA
Read-only
Inspect

YouTube to Clips. Pick moments from a captioned public video, with timestamps and the on-screen quote. If status is processing, call this again with the same url. Render one result with render_youtube_clip. Requires an API key. Needs a free StartupHub.ai account.

NameRequiredDescriptionDefault
urlYesYouTube watch, youtu.be, or Shorts URL.
styleNoClip style. Default twitter.
max_clip_secNoOptional cap on clip length, in seconds, up to 90.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds genuinely useful context beyond that: it is an async/processing operation requiring polling, needs an API key, and needs a free StartupHub.ai account. It still does not say if accounts are required for caching or quota limits.

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 verb+resource in the first sentence, followed by concise operational rules. The opening 'YouTube to Clips.' is a slightly awkward fragment and the sentences are a bit choppy, but there is no waste.

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?

There is no output schema, so the description carries the return-value burden, and it does partially describe the output ('timestamps and the on-screen quote') plus the processing status. Given the async nature, more detail on the final result shape would help, but an agent has enough to call it correctly.

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?

Schema description coverage is 100%, so all three parameters (url, style with enum, max_clip_sec) are already documented in the schema. The description adds no extra syntax, defaults, or constraints beyond what the schema provides, so the baseline 3 applies.

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: picking moments from a captioned public video, with timestamps and on-screen quotes. It distinguishes itself from the similar-sounding render_youtube_clip and get_youtube_clip by naming the render sibling explicitly. An agent can tell what this does without opening the schema.

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 an explicit follow-up rule for async processing ('If status is processing, call this again with the same url') and routes the user to render_youtube_clip for rendering. It doesn't state when NOT to use it versus generate_youtube_article or get_youtube_clip, but the core usage conditions are clear.

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

update_investorUpdate an investorA
Destructive
Inspect

Update an investor you previously submitted. Pass slug plus only the fields to change. The profile stays on the free listing. An edit does not hide it. Costs 1 db credit. Needs a free StartupHub.ai account.

NameRequiredDescriptionDefault
cityNo
slugYes
typeNoVC | Angel | Accelerator | Incubator | Corporate VC | Family Office | Sovereign Wealth Fund | Crowdfunding | PE | Hedge Fund | Syndicate
countryNo
logo_urlNo
geo_focusNo
descriptionNo
pitch_emailNo
stage_focusNo
twitter_urlNo
founded_dateNo
linkedin_urlNo
min_tractionNo
sector_focusNo
check_size_maxNo
check_size_minNo
current_thesisNo
actively_investingNo
accepts_cold_pitchesNo
pitch_application_urlNo

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already flag this as a non-read-only, destructive, open-world mutation, and the description adds real context beyond them: the cost (1 db credit), the account requirement, and the reassurance that an edit does not hide the free listing. It doesn't explain field-overwrite behavior or error handling, but it usefully supplements 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.

Conciseness4/5

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

Short, front-loaded sentences: identity of the operation first, then parameter guidance, then cost/account prerequisites. Every sentence carries information, though the staccato fragments are slightly choppy.

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

Completeness3/5

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

For a 20-parameter mutation with no output schema and near-zero schema coverage, the description covers preconditions, cost, and listing visibility but omits which fields are mutable, overwrite semantics, and failure behavior. Adequate but with clear gaps.

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

Parameters2/5

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

With 20 parameters and only 5% schema description coverage, the description must carry the parameter burden, but it only clarifies slug as the identifier and the partial-update convention. The other 19 fields, including the type enum listed only in the schema, receive no explanation in the description.

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?

"Update an investor you previously submitted" states a specific verb and resource, and the past-tense qualifier implicitly separates this from the create-side sibling submit_investor. It does not name a sibling directly, so it stops short of the 5 tier.

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 establishes clear preconditions (an investor you already submitted, a free account, 1 db credit) and tells the caller to pass slug plus only the fields to change. There are no explicit when-not conditions or named alternatives, so it stays below 5.

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

update_personUpdate a personA
Destructive
Inspect

Update a person you previously submitted. Pass slug plus only the fields to change. The profile stays on the free listing. An edit does not hide it. Costs 1 db credit. Needs a free StartupHub.ai account.

NameRequiredDescriptionDefault
cityNo
slugYes
countryNo
avatar_urlNo
github_urlNo
descriptionNo
twitter_urlNo
website_urlNo
linkedin_urlNo
current_titleNo

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already flag destructiveHint=true and openWorldHint=true, so the description goes further by disclosing cost (1 db credit), an auth prerequisite (StartupHub.ai account), and the effect on listing visibility. The note that an edit 'does not hide' the profile is useful context, though it sits in mild tension with the destructive annotation and could be read as reassurance about data loss rather than listing state.

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?

Short, front-loaded, and telegraphic, with the action and the required slug up front. 'The profile stays on the free listing' and 'An edit does not hide it' restate the same idea twice, which is the only waste.

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 10-parameter mutation tool with annotation coverage of the safety profile and no output schema, the description supplies the essentials: partial-update behavior, cost, auth, and listing effect. Return values are not described, but with no output schema that is not required.

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?

Schema coverage is 0% across 10 parameters, so the description carries the burden, yet it only names 'slug' and establishes partial-update semantics. The remaining fields (city, country, avatar_url, github_url, twitter_url, linkedin_url, website_url, current_title, description) are self-describing by name, which partially offsets the gap, but no format or validation detail is added.

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?

States a specific verb and resource ('Update a person you previously submitted'), which cleanly separates it from siblings like submit_person or search_people. It does not explicitly name the sibling tools (update_startup, update_investor), so it falls short of a 5.

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?

'Pass slug plus only the fields to change' gives concrete invocation guidance and implies a partial-update model. Preconditions (free account, 1 db credit) are stated, but there is no explicit when-not-to-use or routing to an alternative tool.

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

update_productUpdate a productA
Destructive
Inspect

Update a product you previously submitted (new feature, pricing, or a new version). Pass slug plus only the fields to change. An edit does not hide a live product. Costs 1 db credit. Needs a free StartupHub.ai account.

NameRequiredDescriptionDefault
slugYes
tagsNo
sectorsNo
websiteNo
categoryNo
featuresNo
logo_urlNo
one_linerNo
descriptionNo
github_repoNo
launched_atNo
pricing_typeNo
product_typeNo
app_store_urlNo
play_store_urlNo
pricing_detailsNo
screenshot_urlsNo
documentation_urlNo

TDQS

A4.2/5.0
Behavior4/5

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

Goes beyond the annotations by disclosing cost ('Costs 1 db credit'), an account prerequisite, and mutation behavior ('An edit does not hide a live product') that usefully qualifies the destructiveHint=true flag. No permission or failure-mode detail, but it adds real context that the annotations do not carry.

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

Conciseness5/5

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

Four tight sentences, front-loaded with the core action and followed by the invocation rule, the safety clarification, and the cost/auth constraints. No filler; every sentence earns its place.

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 an 18-parameter mutation with no output schema, it covers the essentials an agent needs to call it: partial-update semantics, credit cost, and account requirement. The remaining gap is field-level meaning, especially the nested pricing_details object, which is undocumented in both the schema and the description.

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?

With 18 parameters at 0% schema coverage, the description supplies the single most important semantic ('pass only the fields to change'), clarifying partial-update behavior the schema cannot convey on its own. However, it explains none of the individual fields, and the nested pricing_details object and enum-like pricing_type/product_type are left entirely undocumented.

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 ('Update a product you previously submitted') and clarifies the scope of an edit (new feature, pricing, or a new version). This cleanly separates it from create-side siblings like submit_product and from the other update_* tools that target different resources.

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?

Explains how to invoke it ('Pass slug plus only the fields to change'), which is genuine usage guidance for a partial-update tool. It implies the create path is handled elsewhere but never names submit_product as the alternative, so routing is left partly to inference.

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

update_startupUpdate a startupA
Destructive
Inspect

Update a startup you submitted (API key user matches created_by) or that you have a verified claim on. Pass slug plus only the fields to change. The profile stays on the free listing. An edit does not hide it or turn it into a bill. Costs 1 submit credit. Same validation as submit_startup. Needs a free StartupHub.ai account.

NameRequiredDescriptionDefault
slugYesThe startup's slug (e.g. "anthropic")
hq_cityNo
sectorsNo
for_saleNo
logo_urlNoNew logo URL, server fetches and replaces (≤2MB).
is_hiringNo
one_linerNo
github_urlNo
hq_countryNo
is_raisingNo
careers_urlNo
descriptionNo
press_emailNo
twitter_urlNo
founded_dateNo
linkedin_urlNo
contact_emailNo
media_kit_urlNo
raising_roundNo
pitch_deck_urlNo
raising_targetNo
for_sale_detailsNo
operating_statusNoactive | acquired | shut_down | stealth
partnerships_emailNo
raising_use_of_fundsNo

TDQS

A4.1/5.0
Behavior5/5

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

With destructiveHint=true already flagged, the description adds substantial context beyond annotations: it discloses the cost (1 submit credit), that the profile stays on the free listing, and that an edit does not hide the listing or incur a bill. It also notes the account requirement and shared validation, giving an agent everything needed to anticipate side effects.

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 action and authorization, then cost and billing clarifications. Every sentence carries information, though the billing-related statements are slightly repetitive.

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 destructive, 25-parameter update with no output schema, the description covers authorization, cost, billing implications, validation, and account prerequisites well. The remaining gap is field-level semantics, which is partially mitigated by the 'only changed fields' guidance.

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?

Schema coverage is only 12% across 25 params, so the description must compensate. It provides the critical partial-update rule ('Pass slug plus only the fields to change'), which is genuinely useful for a 25-field update, but it leaves the vast majority of fields semantically undocumented.

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 states a specific verb and resource ('Update a startup') and clarifies the ownership scope (submitted by you or verified claim). It's unmistakable which entity is being mutated, though it doesn't explicitly contrast itself with siblings like update_investor/update_person beyond the different resource.

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 preconditions for use: the API key user must match created_by or you must have a verified claim, and it references submit_startup for the validation contract. It stops short of naming the alternative tools for other operations, but the context for legitimate use is explicit.

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

validate_emailValidate an emailA
Read-only
Inspect

Verify if a single email address is real and deliverable. Returns {valid, status, confidence_score}. Use when you already know the address (e.g. from a contact page, LinkedIn, or a prior discover_email run) and want to confirm it before sending. To go from a person's name → verified email instead, use discover_email: that already runs validation internally on every candidate, so don't call validate_email on its output.

NameRequiredDescriptionDefault
emailYes

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, so the safety profile is covered. The description adds value beyond them by disclosing the return shape ({valid, status, confidence_score}) despite no output schema, and by flagging the redundant-call hazard with discover_email. It does not mention rate limits, auth, or what each status value means.

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

Conciseness5/5

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

Three sentences, front-loaded with the purpose and return shape, then usage and the routing exclusion. Every sentence carries distinct information; nothing is repeated from the name or annotations.

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?

For a one-parameter read-only tool with no output schema, the description covers purpose, the return fields, when to use it, and the sibling routing rule. An agent has everything needed to invoke it correctly and to avoid misusing it.

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?

One parameter with 0% schema description coverage, so the description must carry the burden. It conveys that the input is a single email address, but gives no format, length, or normalization details beyond that. Marginal compensation for the coverage gap.

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 ('Verify if a single email address is real and deliverable') with the scope narrowed to a single address. It is clearly distinguishable from sibling discover_email, which serves a different job.

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?

Explicitly says when to use it ('when you already know the address... confirm it before sending') and names the alternative for the other direction ('name → verified email... use discover_email'). It even warns not to call validate_email on discover_email output because validation already runs internally — a real exclusion rule.

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.

  1. 2 tool updates
    • Addedpublish_market_map
    • Addedstyle_market_map
  2. 2 tool updates
    • Addededit_market_map
    • Addedget_market_map
  3. 3 tool updates
    • Changedget_api_task2 fields changed
      • addedInput schema / properties / route_id
        Added value: +{
        +  "description": "Or the route_id run_agent_task returned",
        +  "type": "string"
        +}
      • removedInput schema / required
        Removed value: -[
        -  "task_id"
        -]
    • Addedrun_agent_task
    • Addedspend_limits
  4. 1 tool update
    • Changedlist_my_api1 field changed
      • addedInput schema / properties / startup_slug
        Added value: +{
        +  "description": "Or your profile slug, e.g. acme-ai from startuphub.ai/startups/acme-ai",
        +  "type": "string"
        +}
  5. 2 tool updates
    • Addedlist_my_api
    • Addedmy_apis
  6. 3 tool updates
    • Addedcall_api
    • Changedfind_apis2 fields changed
      • changedInput schema / properties / kind / description
        Previous value: -"Only REST APIs (openapi) or only MCP servers"New value: +"openapi = REST APIs, mcp = MCP servers, chat = OpenAI-compatible endpoints, agent = A2A agents, app = apps without an API, agents = chat + agent + app"
      • changedInput schema / properties / kind / enum
        Previous value: -[
        -  "openapi",
        -  "mcp"
        -]New value: +[
        +  "openapi",
        +  "mcp",
        +  "chat",
        +  "agent",
        +  "app",
        +  "agents"
        +]
    • Addedget_api_task
  7. 1 tool update
    • Addedfind_apis
  8. 2 tool updates
    • Addedcreate_market_map
    • Addedrate_this_service
  9. 7 tool updates
    • Changedfind_matches3 fields changed
      • addedInput schema / properties / id
        Added value: +{
        +  "description": "Profile UUID of the startup or investor to match from. Pass slug or id.",
        +  "type": "string"
        +}
      • changedInput schema / properties / slug / description
        Previous value: -"Profile slug of the startup or investor to match from."New value: +"Profile slug of the startup or investor to match from. Pass slug or id."
      • changedInput schema / required
        Previous value: -[
        -  "type",
        -  "slug"
        -]New value: +[
        +  "type"
        +]
    • Changedfind_stealth_startups4 fields changed
      • changedInput schema / properties / country / description
        Previous value: -"Optional HQ country filter."New value: +"Optional comma-separated HQ countries, names or ISO codes."
      • changedInput schema / properties / founded_after / description
        Previous value: -"Only stealth startups founded on or after this date (YYYY-MM-DD)."New value: +"Only stealth startups founded on or after this date: YYYY, YYYY-MM or YYYY-MM-DD."
      • changedInput schema / properties / limit / description
        Previous value: -"Up to 100."New value: +"Default 20, max 100."
      • changedInput schema / properties / with_emails / description
        Previous value: -"When true (default), only return startups with at least one verified founder/team email."New value: +"When true (default), only return startups with at least one verified founder/team email (has_known_emails=true). False drops that filter."
    • Changedquery_funding10 fields changed
      • addedInput schema / properties / countries
        Added value: +{
        +  "description": "Alias of country.",
        +  "type": "string"
        +}
      • changedInput schema / properties / country / description
        Previous value: -"Full English country name, or a common alias. Examples: Canada, United States, USA, United Kingdom, UK."New value: +"Full English country name, or a common alias. Examples: Canada, United States, USA, United Kingdom, UK. Comma-separated for more than one, up to 8."
      • changedInput schema / properties / from / description
        Previous value: -"First year, inclusive. Ignored when year is set."New value: +"First year, inclusive. Ignored when year is set. Default depends on dataset: rounds 2021, funds 2015, startups 2010, investors 1995. Clamped to the dataset range."
      • changedInput schema / properties / group / description
        Previous value: -"How to break the total down. Default time, which is the single undivided total. group=sector counts a company in every sector it carries, so that total is higher."New value: +"How to break the total down. Default time, which is the single undivided total. Depends on dataset: funds and startups have no series; investors allows only time, sector and country. An invalid value becomes time. group=sector counts a company in every sector it carries, so that total is higher."
      • changedInput schema / properties / sector / description
        Previous value: -"Sector name, for example Artificial Intelligence or Fintech. Comma-separated for more than one."New value: +"Sector name, for example Artificial Intelligence or Fintech. Comma-separated for more than one, up to 8."
      • addedInput schema / properties / sectors
        Added value: +{
        +  "description": "Alias of sector.",
        +  "type": "string"
        +}
      • changedInput schema / properties / series / description
        Previous value: -"Round stage: Pre-Seed, Seed, Series A, Series B, Series C, Series D, Series E, Series F+, Growth, IPO, Debt, Grant, Strategic. Comma-separated for more than one."New value: +"Round stage, dataset=rounds only. Exact, case-sensitive values: Pre-Seed, Seed, Series A, Series B, Series C, Series D, Series E, Series F+, Growth, IPO, Debt, Grant, Strategic, Unlabeled. Comma-separated for more than one. Any other value is dropped."
      • changedInput schema / properties / split / description
        Previous value: -"Optional second breakdown. The total still excludes double-counting."New value: +"Optional second breakdown: one of the dataset dimensions, not equal to group. Anything else means none. The total still excludes double-counting."
      • changedInput schema / properties / to / description
        Previous value: -"Last year, inclusive. Ignored when year is set."New value: +"Last year, inclusive. Ignored when year is set. Default the current year. Clamped between from and the current year."
      • changedInput schema / properties / year / description
        Previous value: -"Calendar year. Sets both from and to. Example: 2026."New value: +"Calendar year, an integer from 1970 to 2100. Sets both from and to. Example: 2026."
    • Changedsearch_domains10 fields changed
      • changedInput schema / properties / apex / description
        Previous value: -"Exact hostname lookup, e.g. acme.ai"New value: +"Exact hostname lookup, e.g. acme.ai. A leading www. is stripped; a value with no dot returns 400 invalid_apex. Overrides q."
      • addedInput schema / properties / created_before
        Added value: +{
        +  "description": "ISO date. Rows we first ingested on or before this time.",
        +  "type": "string"
        +}
      • addedInput schema / properties / has_real_content / description
        Added value: +"Last homepage probe found real body copy."
      • addedInput schema / properties / is_parked
        Added value: +{
        +  "description": "Domain is parked.",
        +  "enum": [
        +    "true",
        +    "false"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / limit / description
        Added value: +"1-100."
      • addedInput schema / properties / offset
        Added value: +{
        +  "default": 0,
        +  "description": "Skip this many rows, for paging.",
        +  "type": "number"
        +}
      • changedInput schema / properties / q / description
        Previous value: -"Substring match on apex or candidate name."New value: +"Substring match on apex or candidate name. Needs at least 2 characters after removing % _ and commas, otherwise no filter."
      • changedInput schema / properties / source / description
        Previous value: -"Raw source or bucket id, e.g. 'dot_ai_nrd' or 'dot_ai_zone'."New value: +"Comma-separated raw source or bucket ids, e.g. 'dot_ai_nrd', 'dot_ai_zone', 'github_new_org', 'uk_companies_house'."
      • changedInput schema / properties / status / description
        Previous value: -"queued, quality_failed, promoted, rejected. Default is queued,quality_failed."New value: +"Comma-separated: queued, quality_failed, promoted, rejected. Default is queued,quality_failed."
      • changedInput schema / properties / tld / description
        Previous value: -"Comma-separated TLDs, e.g. 'ai,io'. Maps to the NRD/CT sources."New value: +"Comma-separated TLDs, e.g. 'ai,io'. Only ai, io, xyz, so, com and security filter anything; other values apply no filter. Maps to the NRD/CT sources and combines with source by OR."
    • Changedsearch_investors10 fields changed
      • addedInput schema / properties / actively_investing / description
        Added value: +"Only true filters; false applies no filter."
      • changedInput schema / properties / country / description
        Previous value: -"Investor's HQ country"New value: +"Investor's HQ country, exact match."
      • changedInput schema / properties / geo_focus / description
        Previous value: -"One geographic region the investor targets (e.g. \"US\", \"Europe\", \"Israel\")"New value: +"Geographic region the investor targets (e.g. \"US\", \"Europe\", \"Israel\"). Comma-separated values must all be present."
      • addedInput schema / properties / limit / description
        Added value: +"Max 100."
      • addedInput schema / properties / offset
        Added value: +{
        +  "default": 0,
        +  "description": "Skip this many results, for paging.",
        +  "type": "number"
        +}
      • addedInput schema / properties / q / description
        Added value: +"Matches name or description."
      • changedInput schema / properties / sector_focus / description
        Previous value: -"One sector the investor focuses on (e.g. 'Artificial Intelligence', 'Biotech', 'Fintech')"New value: +"Sector the investor focuses on (e.g. 'Artificial Intelligence', 'Biotech', 'Fintech'). Comma-separated values must all be present."
      • changedInput schema / properties / sort / description
        Previous value: -"Sort order: '<column>.<asc|desc>'. Default total_score.desc."New value: +"Sort order: '<column>.<asc|desc>' from the whitelist above. Default total_score.desc. An unknown column falls back to the default."
      • changedInput schema / properties / stage_focus / description
        Previous value: -"One funding stage (e.g. 'Seed', 'Series A', 'Series B')"New value: +"Funding stage (e.g. 'Seed', 'Series A'). Comma-separated values must all be present."
      • changedInput schema / properties / type / description
        Previous value: -"investor_type, e.g. \"Venture Capital\", \"Angel\", \"Accelerator\", \"Family Office\", \"Corporate VC\""New value: +"Exact, case-sensitive match on the stored investor type, for example VC, Angel, Accelerator, Corporate VC, Family Office, PE."
    • Changedsearch_people7 fields changed
      • addedInput schema / properties / country / description
        Added value: +"Exact country name."
      • addedInput schema / properties / limit
        Added value: +{
        +  "default": 20,
        +  "description": "Max 100.",
        +  "type": "number"
        +}
      • addedInput schema / properties / offset
        Added value: +{
        +  "default": 0,
        +  "description": "Skip this many results, for paging.",
        +  "type": "number"
        +}
      • addedInput schema / properties / q / description
        Added value: +"Matches name or title."
      • addedInput schema / properties / sector / description
        Added value: +"One exact sector name; commas are not split into several sectors."
      • addedInput schema / properties / tag
        Added value: +{
        +  "description": "One tag, e.g. Unit 8200, Unit 81, Serial Entrepreneur, AI Expert, Investor, Has Exits.",
        +  "type": "string"
        +}
      • addedInput schema / properties / title / description
        Added value: +"Partial match on the current title, e.g. CTO."
    • Changedsearch_startups13 fields changed
      • addedInput schema / properties / ai_support
        Added value: +{
        +  "description": "Comma-separated AI customer support tools: intercom_fin, ada, sierra, decagon, drift_ai, fin_ai; matches any of them.",
        +  "type": "string"
        +}
      • changedInput schema / properties / backed_by / description
        Previous value: -"Comma-separated investors, by StartupHub slug or exact name, e.g. \"sequoia-capital,Y Combinator\"; matches any of them."New value: +"Comma-separated investors, up to 20, by StartupHub slug or exact name, e.g. \"sequoia-capital,Y Combinator\"; matches any of them. When none of them matches an investor, the response is empty data plus a note."
      • addedInput schema / properties / blog_post_within_days
        Added value: +{
        +  "description": "Only companies whose blog published a post within this many days (30, 90 or 365 are the usual values). Implies has_blog=true.",
        +  "type": "number"
        +}
      • addedInput schema / properties / has_blog
        Added value: +{
        +  "description": "'true' returns only companies whose website has a blog or news feed we found (RSS or Atom), 'false' only those checked and without one. Sites are rechecked every 90 days.",
        +  "enum": [
        +    "true",
        +    "false"
        +  ],
        +  "type": "string"
        +}
      • changedInput schema / properties / limit / description
        Previous value: -"Results per call, up to 100."New value: +"Results per call. Default 20, max 100."
      • changedInput schema / properties / mentioned_since / description
        Previous value: -"Covered in StartupHub news on or after this date (YYYY-MM-DD)."New value: +"Covered in StartupHub news on or after this date: YYYY, YYYY-MM or YYYY-MM-DD."
      • changedInput schema / properties / near / description
        Previous value: -"HQ within a radius: \"lat,lng,radius_km\", radius capped at 500 km. Example \"51.507,-0.128,25\" for central London."New value: +"HQ inside a bounding box around a point: \"lat,lng,radius_km\", radius clamped to 1-500 km. A malformed value applies no filter. Example \"51.507,-0.128,25\" for central London."
      • changedInput schema / properties / payment / description
        Previous value: -"Comma-separated payment providers: stripe, paddle, lemonsqueezy, paypal, klarna, apple_pay; matches any of them."New value: +"Comma-separated payment providers: stripe, paddle, lemonsqueezy, paypal, klarna, apple_pay; matches any of them. The API also accepts payments as an alias."
      • changedInput schema / properties / raised_before / description
        Previous value: -"Most recent funding round announced on or before this date."New value: +"Most recent funding round announced on or before this date: YYYY, YYYY-MM or YYYY-MM-DD."
      • changedInput schema / properties / slugs / description
        Previous value: -"Comma-separated StartupHub slugs, to fetch known companies in one call; matches any of them."New value: +"Comma-separated StartupHub slugs, up to 100, lowercased before matching; matches any of them. Fetches known companies in one call."
      • changedInput schema / properties / sort / description
        Previous value: -"'<column>.<asc|desc>'. Columns: total_score, last_round_date, total_funding, latest_valuation, founded_date, employee_count, linkedin_followers, agent_readiness_score, trending_score_7d, current_revenue, revenue_multiple, revenue_per_employee, funding_efficiency. Default total_score.desc."New value: +"'<column>.<asc|desc>'. Columns: total_score, created_at (when StartupHub added the row), last_round_date, latest_funding_date (alias of last_round_date), total_funding, latest_valuation, founded_date, employee_count, employee_growth_quarterly_cagr, linkedin_followers, agent_readiness_score, trending_score_7d, current_revenue, revenue_multiple, revenue_per_employee, funding_efficiency. Default total_score.desc. An unknown column falls back to total_score.desc, and any direction other than asc sorts descending."
      • changedInput schema / properties / status / description
        Previous value: -"Operating status."New value: +"Operating status. Exact, case-sensitive match on the stored value, for example Active or Inactive."
      • removedInput schema / properties / status / enum
        Removed value: -[
        -  "Active",
        -  "Inactive"
        -]
  10. 1 tool update
    • Addedscrape_youtube_videos
  11. 1 tool update
    • Changeddiscover_email1 field changed
      • addedInput schema / properties / role
        Added value: +{
        +  "description": "Optional: the person's role, e.g. CEO or co-founder. A confirmed first-name address for a founder or CEO is rated high confidence.",
        +  "type": "string"
        +}
  12. 58 tool updates
    • Addedcancel_monitor_watch
    • Addedcheck_domain_rating
    • Addedcheck_effective_domain_rating
    • Addedcheck_site_speed
    • Addedcheck_trust_reputation
    • Addedcreate_monitor_watch
    • Addeddeep_intelligence
    • Addedenrich_company
    • Addedenrich_email
    • Addedfind_matches
    • Addedfind_stealth_startups
    • Addedgenerate_article_video
    • Addedgenerate_startup_list
    • Addedgenerate_visual_tldr
    • Addedgenerate_youtube_article
    • Addedget_advertiser_analytics
    • Addedget_article_video
    • Addedget_company_by_linkedin
    • Addedget_company_funding
    • Addedget_company_hiring
    • Addedget_investor_by_domain
    • Addedget_investor_by_social
    • Addedget_my_usage
    • Addedget_person_by_email
    • Addedget_person_by_social
    • Addedget_startup
    • Addedget_startup_by_domain
    • Addedget_startup_funding_history
    • Addedget_startup_socials
    • Addedget_youtube_clip
    • Addedget_youtube_transcript
    • Addedhumanize_text
    • Addedlist_credit_packs
    • Addedlist_monitor_watches
    • Addedlist_startup_team
    • Addedmatch_companies_by_domain
    • Addedpublish_to_wordpress
    • Addedrender_youtube_clip
    • Addedscan_company_technology
    • Addedsearch_domains
    • Addedsearch_investors
    • Addedsearch_people
    • Addedsearch_startups
    • Addedsubmit_exit_event
    • Addedsubmit_funding_round
    • Addedsubmit_investor
    • Addedsubmit_list
    • Addedsubmit_news
    • Addedsubmit_patent
    • Addedsubmit_person
    • Addedsubmit_product
    • Addedsubmit_research
    • Addedsubmit_startup
    • Addedsuggest_youtube_clips
    • Addedupdate_investor
    • Addedupdate_person
    • Addedupdate_product
    • Addedupdate_startup
  13. 9 tool updates
    • First observeddiscover_email
    • First observedfind_logo
    • First observedgenerate_rss_feed
    • First observedget_arbitrage
    • First observedget_trends
    • First observedquery_funding
    • First observedscan_agent_readiness
    • First observedsearch_suggestions
    • First observedvalidate_email

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables AI assistants to answer questions about private companies, founders, investors, funding rounds, and news with sources. Users can read company and person profiles, look up names, and run plain-English research on competitors and investor activity.
    10,186 npm
    Apache 2.0
  • A
    license
    A
    quality
    D
    maintenance
    Provides real-time business event intelligence and AI-scored sales leads to help users track funding rounds, acquisitions, and executive hires. It enables AI agents to generate strategic market briefs and manage company watchlists for predictive business insights.
    7
    33 npm
    3
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Exposes twelve tools (fourteen with company requests enabled) that let agents search and read verified funding rounds, company funding histories with total raised, investor profiles and rankings, and the news behind each record. Filters cover stage, sector, amount, certainty, and date windows.
    9
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Real-time curated knowledge API for AI agents. Updated Mon/Wed/Fri from 31 sources covering AI/tech, startups, alternative markets, and emerging markets — no scraping or storage required.
    1
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources