StartupHub.ai
Server Details
Funding rounds, AI startup and investor search, email discovery, agent-readiness. No API key.
- Status
- Healthy
- Uptime
- 99.7% over 22 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
TDQS
Scored across 81 tools
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.
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.
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.
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 toolscall_apicall apiARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | ||
| path | No | ||
| task | No | ||
| label | No | What this call is for, e.g. "book the reservation". Shown in your console. | |
| query | No | ||
| messages | No | ||
| arguments | No | ||
| operation | No | ||
| listing_id | Yes | The id from find_apis | |
| provider_key | No | Your key for that service, used for this call only |
TDQS
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.
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.
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.
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.
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.
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 watchADestructiveInspect
Stop a company watch. Pass id from list_monitor_watches. Needs a free StartupHub.ai account.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
TDQS
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.
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.
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.
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.
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.
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 ratingARead-onlyInspect
Ahrefs Domain Rating, 0 to 100, for a domain. Requires an API key. Needs a free StartupHub.ai account.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Domain or URL, e.g. example.com |
TDQS
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.
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.
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.
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.
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.
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 ratingARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Domain or URL. | |
| keyword | No | Optional query to score against. Otherwise one is taken from the homepage title. |
TDQS
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.
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.
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.
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.
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.
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 speedARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Page URL or domain. | |
| strategy | No | Default mobile. |
TDQS
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.
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.
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.
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.
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.
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 reputationARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Domain or URL. | |
| company | No | Optional company name, used when the domain alone is ambiguous. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| prompt | Yes | What to map, in plain words: a sector, theme, region, or a list of companies and their competitors. | |
| publish | No | Also publish the map at a public link. Default false (private to the account). |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Company domain or URL. | |
| signals | No | Subset of: news, funding, jobs, tech_stack, pricing, status, leadership, customers, product_launches. | |
| frequency | No | ||
| webhook_url | No | https URL that receives an alert when something changes. |
TDQS
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.
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.
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.
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.
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.
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 lookupARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | The entity to look up: a name, company, domain, LinkedIn URL, or email. |
TDQS
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.
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.
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.
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.
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.
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 emailARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| role | No | 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. | |
| domain | Yes | ||
| lastName | Yes | ||
| firstName | Yes |
TDQS
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.
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.
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.
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.
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.
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 mapADestructiveInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| map_id | Yes | The map to change (map_id from create_market_map or get_market_map). | |
| instruction | Yes | What to change, in plain words. A long pasted list is fine: put the instruction above it. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| website | No | ||
| linkedin_url | No |
TDQS
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.
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.
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.
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.
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.
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 addressARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| Yes |
TDQS
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.
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.
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.
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.
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.
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 apisARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | openapi = REST APIs, mcp = MCP servers, chat = OpenAI-compatible endpoints, agent = A2A agents, app = apps without an API, agents = chat + agent + app | |
| limit | No | Max results, default 20 | |
| query | No | What the API should do, or a company name |
TDQS
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.
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.
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.
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.
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.
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_logoFind company logoCRead-onlyInspect
Find square and horizontal logos for a company
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| website | No |
TDQS
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 only the output-shape hint (square and horizontal variants) and says nothing about failure behavior when no identifier is supplied, rate limits, or what form the logo comes back in.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero filler, which is appropriate for the operation. It is terse to the point of under-specification, but it is not padded or disorganized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description should explain the return values, and for a lookup tool with two optional input identifiers it should at least address behavior with no input. It omits return format, fallback behavior, and how name vs website combine, leaving real gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and neither 'name' nor 'website' is documented in the schema, so the description carries the full burden — yet it only vaguely implies a company is identified. It does not clarify precedence between name and website or what happens when neither of the (optional, 0-required) parameters is provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Find ... logos') and narrows scope to a company, adding the useful detail that both square and horizontal variants are returned. It doesn't explicitly differentiate from siblings, but the sibling list (email, RSS, trends, funding, etc.) is unrelated, so the risk of confusion is low.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus the siblings, no prerequisites, and no indication of whether a company name, a website, or both are needed to get a result. The agent is left to infer everything about invocation context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_matchesFind matchesARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Profile UUID of the startup or investor to match from. Pass slug or id. | |
| slug | No | Profile slug of the startup or investor to match from. Pass slug or id. | |
| type | Yes |
TDQS
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.
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.
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.
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.
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.
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 startupsARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| cdn | No | Optional comma-separated CDN filter (e.g. 'cloudflare'). | |
| limit | No | Default 20, max 100. | |
| country | No | Optional comma-separated HQ countries, names or ISO codes. | |
| domain_tld | No | Comma-separated TLDs. Defaults to 'ai,io,so,xyz,security' (the high-signal AI-native TLDs). | |
| with_emails | No | When true (default), only return startups with at least one verified founder/team email (has_known_emails=true). False drops that filter. | |
| founded_after | No | Only stealth startups founded on or after this date: YYYY, YYYY-MM or YYYY-MM-DD. | |
| email_provider | No | Optional comma-separated email_provider filter (e.g. 'm365,self_hosted' to find non-Google-Workspace stealth shops). |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Article URL to turn into a video. | |
| text | No | Article text, when there is no URL. | |
| title | No | Optional title override. | |
| voice | No | Optional voice id. | |
| format | No | Frame. Default is vertical 9:16. | |
| subtitles | No | Burn in captions. Default true. | |
| visual_style | No | Visual style id. Defaults to the standard explainer. |
TDQS
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.
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.
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.
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.
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.
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 feedARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Site URL, e.g. https://example.com |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum companies to return (1-50). Default 20. | |
| prompt | No | Natural-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_list | No | Raw 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
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | ||
| excerpt | No | ||
| source_url | No | Canonical URL of the article, if you have it. | |
| content_html | Yes | Article HTML, or the article text. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | A YouTube URL (watch / youtu.be / shorts / mobile) or a raw 11-char video ID. | |
| tone | No | Voice. Default neutral. | |
| length | No | Target length. auto lets the model size to the source. | |
| transcript | No | Optional caption text from get_youtube_transcript so this call skips the caption fetch. | |
| include_embed | No | Pin the original YouTube embed at the top. Default true. |
TDQS
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.
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.
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.
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.
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.
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 analyticsARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Lookback window in days (1–365, default 30). | |
| ad_id | No | Filter to a single ad. Must be owned by the authenticated key holder. Omit for all of your ads. |
TDQS
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.
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.
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.
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.
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.
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 taskARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| reply | No | Your answer when the task needs input | |
| cancel | No | ||
| task_id | No | The task_id call_api returned | |
| route_id | No | Or the route_id run_agent_task returned |
TDQS
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.
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.
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.
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.
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.
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 arbitrageARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| arbs_only | No | When true, return only events with a live arbitrage right now (combined cost under $1). Default false returns the full matched-events board. |
TDQS
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.
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.
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.
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.
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.
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 videoARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | jobId from generate_article_video. |
TDQS
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.
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.
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.
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.
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.
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 LinkedInARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| linkedin_url | Yes | The company LinkedIn URL, e.g. https://www.linkedin.com/company/anthropic. |
TDQS
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.
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.
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.
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.
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.
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 fundingARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Company domain, e.g. anthropic.com. |
TDQS
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.
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.
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.
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.
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.
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 signalsARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max companies to return (1–100, default 50). | |
| period | No | Lookback window: 'day', 'week' (default), or 'month'. |
TDQS
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.
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.
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.
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.
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.
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 domainARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes |
TDQS
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.
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.
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.
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.
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.
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 socialARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| No | Twitter/X URL or handle | ||
| No | LinkedIn URL or handle (e.g. https://www.linkedin.com/company/a16z) |
TDQS
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.
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.
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.
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.
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.
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 mapARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| map_id | Yes | The map id (from create_market_map, or the ?map= value of a Market Map Maker link). |
TDQS
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.
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.
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.
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.
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.
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 & usageARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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 emailARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| Yes |
TDQS
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.
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.
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.
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.
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.
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 socialARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| github | No | GitHub URL or handle | |
| No | Twitter/X URL or handle (e.g. https://x.com/foo or "@foo") | ||
| No | LinkedIn URL or handle (e.g. https://www.linkedin.com/in/foo or just "foo") |
TDQS
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.
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.
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.
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.
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.
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 profileBRead-onlyInspect
Get full profile for a startup by slug Needs a free StartupHub.ai account.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes |
TDQS
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.
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.
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.
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.
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.
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 domainARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes |
TDQS
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.
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.
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.
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.
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.
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 historyARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes |
TDQS
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.
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.
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.
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.
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.
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 & emailsARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes |
TDQS
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.
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.
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.
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.
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.
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_trendsGet AI startup trendsARead-onlyInspect
Get a structured, real-time snapshot of what's happening in the AI startup ecosystem right now — capital deployed this week, top sectors and countries (with week-over-week change), biggest rounds, stage breakdown with median check sizes, emerging themes (3+ companies clustering on the same narrow problem), most active investors, and exits. Sourced from StartupHub.ai's database (25k+ startups, 24k+ funding rounds). Use this when a user asks what's trending in AI/startups, to build an investment thesis, to spot rotations, or for weekly-digest-style summaries. Free tool — no API key needed. Returns structured JSON the caller can format into tables, charts, or narrative.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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), so the bar is lower. The description still adds real behavioral context beyond them: it is real-time, sourced from StartupHub.ai's 25k+ startups / 24k+ funding rounds, requires no API key, and returns structured JSON the caller can format. It does not mention rate limits or freshness latency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose and then the usage conditions, and every clause carries information because there is no output schema to describe the return shape. The opening sentence is dense to the point of being a run-on enumeration, which slightly hurts readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no parameters, the description carries the full burden of explaining what comes back, and it does so thoroughly (capital, sectors with WoW change, rounds, stage medians, themes, investors, exits). Safety and openness are handled by annotations. Nothing an agent needs to call this correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so per the rubric the baseline is 4. There is nothing for the description to clarify beyond noting the tool is parameter-free, which it implicitly does.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Get a structured, real-time snapshot of what's happening in the AI startup ecosystem') and enumerates the exact facets returned (capital deployed, sectors, countries, rounds, stage breakdown, themes, investors, exits). This clearly separates it from siblings like query_funding, search_startups, or get_company_funding, which are narrower or entity-scoped.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit usage contexts: 'Use this when a user asks what's trending in AI/startups, to build an investment thesis, to spot rotations, or for weekly-digest-style summaries.' That is clear positive guidance, but it names no alternatives or exclusions (e.g., when to prefer query_funding or search_investors instead).
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 clipARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | jobId from render_youtube_clip. |
TDQS
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.
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.
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.
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.
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.
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 transcriptARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | A YouTube URL (watch / youtu.be / shorts / mobile) or a raw 11-char video ID. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | The passage to rewrite. | |
| options | No | Optional rewrite toggles. | |
| strength | No | How hard to rewrite. Default balanced. |
TDQS
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.
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.
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.
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.
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.
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 pricingARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Credit type to price |
TDQS
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.
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.
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.
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.
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.
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 watchesARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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 apiBRead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| kind | Yes | ||
| model | No | chat: the default model id | |
| preview | No | Only read what the URL offers, save nothing | |
| docs_url | No | ||
| price_unit | No | ||
| startup_id | No | Your profile id (my_apis returns the profiles you can list on) | |
| provider_key | No | ||
| startup_slug | No | Or your profile slug, e.g. acme-ai from startuphub.ai/startups/acme-ai | |
| price_per_call | No | ||
| free_calls_per_day | No |
TDQS
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.
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.
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.
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.
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.
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 teamARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes |
TDQS
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.
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.
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.
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.
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.
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 domainARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| domains | Yes | Array of advertiser/company domains. Accepts raw URLs (https://www.example.com), stripped (example.com), with or without paths. Max 100 per call. |
TDQS
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.
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.
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.
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.
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.
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 apisBRead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| remove_id | No | ||
| recheck_id | No |
TDQS
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.
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.
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.
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.
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.
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 mapADestructiveInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| map_id | Yes | The map to publish or unpublish. | |
| publish | Yes | true to publish, false to make it private again. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | Tag names (created in WP if missing). Max 30. | |
| title | Yes | Article title (becomes the post title in WP) | |
| status | No | Default 'draft'. Use 'publish' to go live immediately, 'pending' to queue for editor review. | |
| excerpt | No | Optional WP excerpt (manual excerpt overrides WP's auto-generated one). | |
| site_url | Yes | WordPress site URL, e.g. 'https://blog.example.com'. https:// is auto-added if missing. | |
| username | Yes | WordPress username (the one shown in /wp-admin → Users) | |
| categories | No | Category names (created in WP if missing). Max 10. | |
| content_html | Yes | Full article body as HTML. Will land verbatim in the WP block editor. | |
| featured_image_url | No | Optional public URL of an image to sideload to WP media and attach as the featured image. | |
| application_password | Yes | Application 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
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.
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.
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.
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.
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.
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 totalsARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | Last year, inclusive. Ignored when year is set. Default the current year. Clamped between from and the current year. | |
| from | No | 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. | |
| year | No | Calendar year, an integer from 1970 to 2100. Sets both from and to. Example: 2026. | |
| group | No | 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. | |
| split | No | Optional second breakdown: one of the dataset dimensions, not equal to group. Anything else means none. The total still excludes double-counting. | |
| bucket | No | Time bucket. A single year defaults to year. A range defaults to quarter. | |
| sector | No | Sector name, for example Artificial Intelligence or Fintech. Comma-separated for more than one, up to 8. | |
| series | No | 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. | |
| country | No | 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. | |
| dataset | No | rounds = capital announced in the year (default). startups = companies founded that year. funds = funds closed. investors = firms founded. | |
| sectors | No | Alias of sector. | |
| countries | No | Alias of country. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| score | Yes | 1 to 5. | |
| reason | No | One sentence: what worked or what was missing. | |
| would_pay | No | Would this task be worth paying for per call. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| hook | No | ||
| quote | Yes | On-screen caption, at least 8 characters. | |
| style | No | ||
| aspect | No | ||
| video_id | No | 11-character video id, if you do not have a URL. | |
| video_url | No | YouTube URL. | |
| end_seconds | Yes | ||
| start_seconds | Yes |
TDQS
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.
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.
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.
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.
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.
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 taskARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| task | Yes | What you want done, in plain words | |
| label | No | What this is for, e.g. "book the reservation". Shown in your console. | |
| prefer | No | ||
| dry_run | No | ||
| fallbacks | No | How many other agents to try if one fails, 0-3, default 2 | |
| listing_ids | No | Only choose among these listings (ids from find_apis) | |
| max_price_usd | No | Skip agents priced above this per task |
TDQS
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.
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.
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.
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.
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.
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 readinessARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The site to scan, e.g. https://example.com |
TDQS
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.
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.
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.
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.
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.
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 stackARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| live | No | When true, force a fresh live scan even if a cached DB fingerprint exists. | |
| domain | Yes | Company domain or URL, e.g. "anthropic.com" or "https://anthropic.com/about" |
TDQS
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.
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.
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.
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.
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.
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 videosARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | 'feed' (latest uploads, cheap) or 'full' (all fields, deeper history). | |
| limit | No | Videos per channel: 1-15 in feed mode, 1-100 in full mode. | |
| videos | No | Up to 100 YouTube video URLs or 11-character ids. | |
| channels | No | Up to 10 channels: an @handle, a youtube.com channel URL, or a UC channel id. |
TDQS
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.
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.
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.
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.
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.
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 domainsARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Substring match on apex or candidate name. Needs at least 2 characters after removing % _ and commas, otherwise no filter. | |
| tld | No | 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. | |
| apex | No | Exact hostname lookup, e.g. acme.ai. A leading www. is stripped; a value with no dot returns 400 invalid_apex. Overrides q. | |
| limit | No | 1-100. | |
| offset | No | Skip this many rows, for paging. | |
| source | No | Comma-separated raw source or bucket ids, e.g. 'dot_ai_nrd', 'dot_ai_zone', 'github_new_org', 'uk_companies_house'. | |
| status | No | Comma-separated: queued, quality_failed, promoted, rejected. Default is queued,quality_failed. | |
| promoted | No | 'true' = only names that already have a public startup profile. | |
| is_parked | No | Domain is parked. | |
| created_after | No | ISO date. Rows we first ingested on or after this time. | |
| created_before | No | ISO date. Rows we first ingested on or before this time. | |
| has_real_email | No | Mailbox on the domain (MX is not empty). | |
| has_real_content | No | Last homepage probe found real body copy. |
TDQS
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.
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.
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.
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.
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.
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 investorsARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Matches name or description. | |
| sort | No | Sort order: '<column>.<asc|desc>' from the whitelist above. Default total_score.desc. An unknown column falls back to the default. | |
| type | No | Exact, case-sensitive match on the stored investor type, for example VC, Angel, Accelerator, Corporate VC, Family Office, PE. | |
| limit | No | Max 100. | |
| offset | No | Skip this many results, for paging. | |
| country | No | Investor's HQ country, exact match. | |
| geo_focus | No | Geographic region the investor targets (e.g. "US", "Europe", "Israel"). Comma-separated values must all be present. | |
| cheque_max | No | Founder's maximum target raise: matches investors whose min_cheque_size is at most this amount | |
| cheque_min | No | Founder's minimum target raise: matches investors whose max_cheque_size is at least this amount | |
| stage_focus | No | Funding stage (e.g. 'Seed', 'Series A'). Comma-separated values must all be present. | |
| active_since | No | YYYY-MM-DD. Returns investors whose latest investment is on or after this date. | |
| sector_focus | No | Sector the investor focuses on (e.g. 'Artificial Intelligence', 'Biotech', 'Fintech'). Comma-separated values must all be present. | |
| actively_investing | No | Only true filters; false applies no filter. | |
| min_recent_rounds_90d | No | Minimum number of rounds in the last 90 days. Use 1+ to drop dormant funds. |
TDQS
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.
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.
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.
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.
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.
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 peopleARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Matches name or title. | |
| tag | No | One tag, e.g. Unit 8200, Unit 81, Serial Entrepreneur, AI Expert, Investor, Has Exits. | |
| limit | No | Max 100. | |
| title | No | Partial match on the current title, e.g. CTO. | |
| offset | No | Skip this many results, for paging. | |
| sector | No | One exact sector name; commas are not split into several sectors. | |
| country | No | Exact country name. |
TDQS
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.
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.
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.
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.
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.
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 startupsARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Search text, matched against the name and one-liner. | |
| cdn | No | Comma-separated CDNs: cloudflare, vercel, cloudfront, fastly, netlify; matches any of them. | |
| a11y | No | Comma-separated accessibility overlays: userway, accessibe, audioeye; matches any of them. | |
| near | No | 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. | |
| sort | No | '<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. | |
| limit | No | Results per call. Default 20, max 100. | |
| slugs | No | Comma-separated StartupHub slugs, up to 100, lowercased before matching; matches any of them. Fetches known companies in one call. | |
| hiring | No | 'true' returns only companies with open roles right now. | |
| offset | No | Skip this many results, to page past the first 100. | |
| sector | No | Comma-separated sector names, e.g. "Fintech,Cybersecurity"; matches any of them. Exact sector names as shown on profiles. | |
| status | No | Operating status. Exact, case-sensitive match on the stored value, for example Active or Inactive. | |
| booking | No | Comma-separated booking widgets: calendly, calcom, savvycal, chilipiper; matches any of them. | |
| country | No | Comma-separated countries; matches any of them. Accepts names or ISO codes; "US", "USA" and "United States" are the same. | |
| hosting | No | Comma-separated hosting providers: aws, azure, gcp, vercel, render, netlify, hetzner, digitalocean; matches any of them. | |
| payment | No | Comma-separated payment providers: stripe, paddle, lemonsqueezy, paypal, klarna, apple_pay; matches any of them. The API also accepts payments as an alias. | |
| stealth | No | 'true' = stealth only, 'false' = exclude stealth. Stealth rows need Pro Lite or higher. | |
| has_blog | No | '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. | |
| trending | No | 'true' returns companies getting attention on StartupHub this week. | |
| backed_by | No | 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. | |
| ma_status | No | Comma-separated exit states: acquired, public, merged, made_acquisitions; matches any of them. | |
| max_score | No | Maximum StartupHub score. | |
| min_score | No | Minimum StartupHub score (0-100). 70+ is roughly the top 1.5%. | |
| ai_support | No | Comma-separated AI customer support tools: intercom_fin, ada, sierra, decagon, drift_ai, fin_ai; matches any of them. | |
| compliance | No | Comma-separated compliance claims found on the site: soc2, hipaa, iso27001, gdpr, ccpa, pci_dss, fedramp; matches any of them. | |
| domain_tld | No | Comma-separated domain endings, e.g. "ai,io"; matches any of them. | |
| has_website | No | 'true' returns only companies with a website on file. | |
| open_source | No | 'true' returns only open-source companies. | |
| status_page | No | Comma-separated status page vendors: statuspage, instatus, betterstack; matches any of them. | |
| has_founders | No | 'true' returns only companies with known founders, ready for list_startup_team. | |
| raised_after | No | Most recent funding round announced on or after this date: YYYY, YYYY-MM or YYYY-MM-DD. | |
| round_series | No | Comma-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_max | No | Maximum employee count (inclusive). Use 10 for tiny teams. | |
| employees_min | No | Minimum employee count (inclusive). | |
| founded_after | No | Founded on or after this date: YYYY, YYYY-MM or YYYY-MM-DD. | |
| max_valuation | No | Maximum latest valuation, USD. | |
| min_valuation | No | Minimum latest valuation, USD. 1000000000 for unicorns. | |
| raised_before | No | Most recent funding round announced on or before this date: YYYY, YYYY-MM or YYYY-MM-DD. | |
| cookie_consent | No | Comma-separated cookie consent vendors: onetrust, cookiebot, osano, termly; matches any of them. | |
| email_provider | No | Comma-separated email providers: google_workspace, m365, zoho, proton, proofpoint, mimecast, self_hosted, gateway; matches any of them. | |
| founded_before | No | Founded on or before this date: YYYY, YYYY-MM or YYYY-MM-DD. | |
| website_status | No | Comma-separated website states: active, dead, parked; matches any of them. | |
| email_marketing | No | Comma-separated email marketing tools: klaviyo, mailchimp, hubspot_forms, customer_io, loops; matches any of them. | |
| hiring_platform | No | Comma-separated hiring platforms: greenhouse, lever, ashby, workable, teamtailor; matches any of them. | |
| mentioned_since | No | Covered in StartupHub news on or after this date: YYYY, YYYY-MM or YYYY-MM-DD. | |
| has_known_emails | No | '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_program | No | Comma-separated affiliate platforms: partnerstack, rewardful, tolt, firstpromoter, impact; matches any of them. | |
| max_total_funding | No | Maximum total funding raised, USD. | |
| min_total_funding | No | Minimum total funding raised, USD. | |
| min_reddit_reviews | No | Minimum number of classified Reddit reviews. | |
| max_agent_readiness | No | Maximum Agent Readiness score. | |
| min_agent_readiness | No | Minimum Agent Readiness score (0-100): how well AI agents can use the company website. | |
| max_revenue_multiple | No | Maximum valuation-to-revenue multiple. | |
| min_reddit_sentiment | No | Minimum Reddit sentiment, -100 to 100. Pair with min_reddit_reviews. | |
| min_revenue_multiple | No | Minimum valuation-to-revenue multiple (sparse). | |
| agent_readiness_grade | No | Comma-separated Agent Readiness grades: A+, A, B, C, D, F; matches any of them. | |
| blog_post_within_days | No | Only companies whose blog published a post within this many days (30, 90 or 365 are the usual values). Implies has_blog=true. | |
| has_affiliate_program | No | 'true' returns only companies running an affiliate program. | |
| max_funding_efficiency | No | Maximum revenue per dollar raised. | |
| max_linkedin_followers | No | Maximum LinkedIn followers. | |
| min_funding_efficiency | No | Minimum revenue per dollar raised (sparse). | |
| min_linkedin_followers | No | Minimum LinkedIn followers, a brand-size proxy when headcount is unknown. | |
| max_revenue_per_employee | No | Maximum revenue per employee, USD. | |
| min_revenue_per_employee | No | Minimum revenue per employee, USD (sparse). |
TDQS
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.
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.
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.
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.
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.
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 suggestionsARead-onlyInspect
Search Suggestion Explorer. Live autocomplete-style suggestions for a phrase. Use it before picking a title or keyphrase. Free, rate-limited.
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | Seed phrase, at least 2 characters. | |
| deep | No | When true, return a wider set. Default false. |
TDQS
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.
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.
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.
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.
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.
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 limitsARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| label | No | ||
| period | No | ||
| alert_pct | No | ||
| remove_id | No | ||
| listing_id | No | ||
| limit_credits | No |
TDQS
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.
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.
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.
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.
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.
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 mapADestructiveInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| logo | No | How each company shows: logo tile, square logo, wordmark, or a card with a one-line description. | |
| theme | No | ||
| map_id | Yes | The map to restyle. | |
| columns | No | ||
| density | No | ||
| greyscale | No | Greyscale logos, colour on hover. | |
| logo_size | No | ||
| logo_shape | No |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| ticker | No | Required for IPO / SPAC | |
| valuation | No | ||
| source_url | No | ||
| startup_id | No | ||
| description | No | Third-person, ≤1500 chars | |
| startup_slug | No | ||
| acquirer_name | No | Required for Acquisition / Merger | |
| consideration | No | Total deal value in USD | |
| date_announced | Yes | YYYY-MM-DD | |
| stock_exchange | No | Required for IPO / SPAC (e.g. NASDAQ, NYSE, LSE) | |
| transaction_type | Yes | IPO | Acquisition | Merger | SPAC | Secondary Sale | Buyout | Management Buyout | Tender Offer | Asset Sale | Bankruptcy | Closure |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| series | Yes | Pre-seed | Seed | Pre-Series A | Series A | Series B | ... | Convertible Note | SAFE | Bridge | Debt | Grant | Crowdfunding | Growth | Pre-IPO | Strategic | Secondary | Other | |
| source_url | No | Press release / TechCrunch / SEC filing URL | |
| startup_id | No | Alternative to startup_slug: startup UUID | |
| description | No | Third-person, ≤1000 chars | |
| startup_slug | No | Slug of the startup raising (must be a startup you own) | |
| date_announced | Yes | YYYY-MM-DD | |
| investment_amount | Yes | Total raised in USD (e.g. 5000000 for $5M) | |
| lead_investor_slugs | No | ||
| pre_money_valuation | No | ||
| post_money_valuation | No | ||
| participating_investor_slugs | No |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| name | Yes | Official firm name (≤100 chars) | |
| type | Yes | One of: VC, Angel, Accelerator, Incubator, Corporate VC, Family Office, Sovereign Wealth Fund, Crowdfunding, PE, Hedge Fund, Syndicate | |
| country | No | ||
| website | No | ||
| logo_url | No | Optional logo image URL (≤2MB). | |
| description | Yes | Third-person, 20–400 words | |
| stage_focus | No | Pre-seed | Seed | Series A | Series B | Series C | Series D | Growth | Late Stage | |
| twitter_url | No | ||
| founded_date | No | ||
| linkedin_url | No | ||
| sector_focus | No | Up to 10 sectors invested in |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | Up to 20 tags (≤40 chars each). | |
| title | Yes | List title (≤200 chars). Descriptive, reader-friendly. | |
| content | No | Optional long-form body. Plain text or simple HTML. ≤5000 words. Third-person. | |
| excerpt | No | Short summary shown on list index + SEO description (≤400 chars, third-person). | |
| source_url | No | Optional URL to the original source if syndicating. | |
| people_slugs | No | Array of person slugs to include. | |
| startup_slugs | No | Array of startup slugs to include. Must match existing profiles. Look up via search_startups. | |
| investor_slugs | No | Array of investor slugs to include. | |
| featured_image_url | No | Optional cover image URL. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | ||
| title | Yes | ≤200 chars | |
| content | Yes | Article body, 100–10000 words, plain text or basic HTML | |
| excerpt | No | Optional 1–2 sentence summary, ≤400 chars | |
| categories | Yes | 1–3 categories from the controlled vocabulary | |
| source_url | No | If syndicating, link to the original (also used for dedup) | |
| author_name | No | ||
| startup_slug | No | Optional company being featured | |
| featured_image_url | No |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | ≤300 chars | |
| status | No | Granted | Pending | Filed | Expired | Withdrawn | Other | |
| abstract | No | ≤3000 chars | |
| inventors | No | ||
| grant_date | No | ||
| source_url | No | USPTO / EPO link | |
| filing_date | No | ||
| jurisdiction | No | US | EP | CN | WO | etc. | |
| startup_slug | No | Optional parent startup | |
| assignee_name | Yes | The entity that owns the patent | |
| patent_number | Yes | e.g. "US12345678B2", "EP3456789A1" |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| name | Yes | Person's full name (≤80 chars) | |
| country | No | ||
| avatar_url | No | Optional avatar image URL (≤2MB). | |
| github_url | No | ||
| description | No | Third-person bio, ≤300 words, no HTML | |
| twitter_url | No | ||
| website_url | No | ||
| linkedin_url | No | Personal LinkedIn (linkedin.com/in/...), required if no current_title | |
| current_title | No | e.g. "CEO at OpenAI", required if no linkedin_url |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Product name (≤80 chars; no listicle words) | |
| tags | No | ||
| sectors | No | ||
| website | Yes | Product landing page or website | |
| category | No | e.g. "Coding agent", "Vector database", "Email assistant" | |
| features | No | Optional list of key features | |
| logo_url | No | Optional product logo URL (≤2MB). | |
| one_liner | Yes | One-sentence pitch in third person, 20–200 chars | |
| startup_id | No | Parent company or organization UUID. Required unless startup_slug is set. | |
| description | Yes | Full description in third person, 20–400 words, plain text only | |
| github_repo | No | ||
| launched_at | No | YYYY, YYYY-MM, or YYYY-MM-DD | |
| pricing_type | No | free | freemium | paid | subscription | one-time | usage-based | enterprise | open-source | |
| product_type | No | web-app | mobile-app | desktop-app | api | cli | library | extension | mcp-server | agent | model | platform | dataset | hardware | plugin | |
| startup_slug | No | Slug of the parent company or organization (e.g. "anthropic" for Claude). Required unless startup_id is set. | |
| app_store_url | No | ||
| play_store_url | No | ||
| pricing_details | No | Optional structured pricing (tiers, per-seat, per-token, etc.) | |
| screenshot_urls | No | Optional product screenshots (up to 6 URLs). | |
| documentation_url | No |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| doi | No | ||
| title | Yes | ≤300 chars | |
| authors | Yes | ||
| pdf_url | No | ||
| sectors | No | ||
| abstract | Yes | Third-person, 30–600 words | |
| arxiv_id | No | e.g. "2401.12345" or "2401.12345v2" | |
| source_url | No | ||
| startup_slug | No | Optional parent startup | |
| publication_date | No |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Official company name (≤80 chars, no listicle words) | |
| hq_city | No | ||
| sectors | No | 1–5 sectors from the controlled vocabulary | |
| website | Yes | Company website URL. This is the only required field. | |
| logo_url | No | Optional URL to company logo image (PNG/JPEG/WebP/SVG, ≤2MB). Server fetches + stores; if omitted, logo is auto-discovered from the website later. | |
| one_liner | No | One-sentence pitch in third person, 20–200 chars | |
| github_url | No | ||
| hq_country | No | ||
| description | No | Full description in third person, 30–400 words, plain text only | |
| twitter_url | No | ||
| founded_date | No | YYYY, YYYY-MM, or YYYY-MM-DD | |
| linkedin_url | No |
TDQS
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.
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.
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.
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.
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.
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 clipsARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | YouTube watch, youtu.be, or Shorts URL. | |
| style | No | Clip style. Default twitter. | |
| max_clip_sec | No | Optional cap on clip length, in seconds, up to 90. |
TDQS
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.
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.
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.
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.
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.
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 investorADestructiveInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| slug | Yes | ||
| type | No | VC | Angel | Accelerator | Incubator | Corporate VC | Family Office | Sovereign Wealth Fund | Crowdfunding | PE | Hedge Fund | Syndicate | |
| country | No | ||
| logo_url | No | ||
| geo_focus | No | ||
| description | No | ||
| pitch_email | No | ||
| stage_focus | No | ||
| twitter_url | No | ||
| founded_date | No | ||
| linkedin_url | No | ||
| min_traction | No | ||
| sector_focus | No | ||
| check_size_max | No | ||
| check_size_min | No | ||
| current_thesis | No | ||
| actively_investing | No | ||
| accepts_cold_pitches | No | ||
| pitch_application_url | No |
TDQS
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.
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.
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.
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.
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.
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 personADestructiveInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| slug | Yes | ||
| country | No | ||
| avatar_url | No | ||
| github_url | No | ||
| description | No | ||
| twitter_url | No | ||
| website_url | No | ||
| linkedin_url | No | ||
| current_title | No |
TDQS
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.
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.
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.
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.
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.
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 productADestructiveInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | ||
| tags | No | ||
| sectors | No | ||
| website | No | ||
| category | No | ||
| features | No | ||
| logo_url | No | ||
| one_liner | No | ||
| description | No | ||
| github_repo | No | ||
| launched_at | No | ||
| pricing_type | No | ||
| product_type | No | ||
| app_store_url | No | ||
| play_store_url | No | ||
| pricing_details | No | ||
| screenshot_urls | No | ||
| documentation_url | No |
TDQS
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.
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.
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.
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.
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.
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 startupADestructiveInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | The startup's slug (e.g. "anthropic") | |
| hq_city | No | ||
| sectors | No | ||
| for_sale | No | ||
| logo_url | No | New logo URL, server fetches and replaces (≤2MB). | |
| is_hiring | No | ||
| one_liner | No | ||
| github_url | No | ||
| hq_country | No | ||
| is_raising | No | ||
| careers_url | No | ||
| description | No | ||
| press_email | No | ||
| twitter_url | No | ||
| founded_date | No | ||
| linkedin_url | No | ||
| contact_email | No | ||
| media_kit_url | No | ||
| raising_round | No | ||
| pitch_deck_url | No | ||
| raising_target | No | ||
| for_sale_details | No | ||
| operating_status | No | active | acquired | shut_down | stealth | |
| partnerships_email | No | ||
| raising_use_of_funds | No |
TDQS
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.
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.
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.
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.
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.
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 emailARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| Yes |
TDQS
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.
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.
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.
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.
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.
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.
2 tool updates
- Added
publish_market_map - Added
style_market_map
2 tool updates
- Added
edit_market_map - Added
get_market_map
3 tool updates
- Changed
get_api_task2 fields changed- added
Input schema / properties / route_idAdded value: +{ + "description": "Or the route_id run_agent_task returned", + "type": "string" +} - removed
Input schema / requiredRemoved value: -[ - "task_id" -]
- Added
run_agent_task - Added
spend_limits
1 tool update
- Changed
list_my_api1 field changed- added
Input schema / properties / startup_slugAdded value: +{ + "description": "Or your profile slug, e.g. acme-ai from startuphub.ai/startups/acme-ai", + "type": "string" +}
2 tool updates
- Added
list_my_api - Added
my_apis
3 tool updates
- Added
call_api - Changed
find_apis2 fields changed- changed
Input schema / properties / kind / descriptionPrevious 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" - changed
Input schema / properties / kind / enumPrevious value: -[ - "openapi", - "mcp" -]New value: +[ + "openapi", + "mcp", + "chat", + "agent", + "app", + "agents" +]
- Added
get_api_task
1 tool update
- Added
find_apis
2 tool updates
- Added
create_market_map - Added
rate_this_service
7 tool updates
- Changed
find_matches3 fields changed- added
Input schema / properties / idAdded value: +{ + "description": "Profile UUID of the startup or investor to match from. Pass slug or id.", + "type": "string" +} - changed
Input schema / properties / slug / descriptionPrevious 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." - changed
Input schema / requiredPrevious value: -[ - "type", - "slug" -]New value: +[ + "type" +]
- Changed
find_stealth_startups4 fields changed- changed
Input schema / properties / country / descriptionPrevious value: -"Optional HQ country filter."New value: +"Optional comma-separated HQ countries, names or ISO codes." - changed
Input schema / properties / founded_after / descriptionPrevious 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." - changed
Input schema / properties / limit / descriptionPrevious value: -"Up to 100."New value: +"Default 20, max 100." - changed
Input schema / properties / with_emails / descriptionPrevious 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."
- Changed
query_funding10 fields changed- added
Input schema / properties / countriesAdded value: +{ + "description": "Alias of country.", + "type": "string" +} - changed
Input schema / properties / country / descriptionPrevious 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." - changed
Input schema / properties / from / descriptionPrevious 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." - changed
Input schema / properties / group / descriptionPrevious 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." - changed
Input schema / properties / sector / descriptionPrevious 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." - added
Input schema / properties / sectorsAdded value: +{ + "description": "Alias of sector.", + "type": "string" +} - changed
Input schema / properties / series / descriptionPrevious 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." - changed
Input schema / properties / split / descriptionPrevious 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." - changed
Input schema / properties / to / descriptionPrevious 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." - changed
Input schema / properties / year / descriptionPrevious 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."
- Changed
search_domains10 fields changed- changed
Input schema / properties / apex / descriptionPrevious 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." - added
Input schema / properties / created_beforeAdded value: +{ + "description": "ISO date. Rows we first ingested on or before this time.", + "type": "string" +} - added
Input schema / properties / has_real_content / descriptionAdded value: +"Last homepage probe found real body copy." - added
Input schema / properties / is_parkedAdded value: +{ + "description": "Domain is parked.", + "enum": [ + "true", + "false" + ], + "type": "string" +} - added
Input schema / properties / limit / descriptionAdded value: +"1-100." - added
Input schema / properties / offsetAdded value: +{ + "default": 0, + "description": "Skip this many rows, for paging.", + "type": "number" +} - changed
Input schema / properties / q / descriptionPrevious 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." - changed
Input schema / properties / source / descriptionPrevious 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'." - changed
Input schema / properties / status / descriptionPrevious 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." - changed
Input schema / properties / tld / descriptionPrevious 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."
- Changed
search_investors10 fields changed- added
Input schema / properties / actively_investing / descriptionAdded value: +"Only true filters; false applies no filter." - changed
Input schema / properties / country / descriptionPrevious value: -"Investor's HQ country"New value: +"Investor's HQ country, exact match." - changed
Input schema / properties / geo_focus / descriptionPrevious 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." - added
Input schema / properties / limit / descriptionAdded value: +"Max 100." - added
Input schema / properties / offsetAdded value: +{ + "default": 0, + "description": "Skip this many results, for paging.", + "type": "number" +} - added
Input schema / properties / q / descriptionAdded value: +"Matches name or description." - changed
Input schema / properties / sector_focus / descriptionPrevious 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." - changed
Input schema / properties / sort / descriptionPrevious 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." - changed
Input schema / properties / stage_focus / descriptionPrevious 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." - changed
Input schema / properties / type / descriptionPrevious 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."
- Changed
search_people7 fields changed- added
Input schema / properties / country / descriptionAdded value: +"Exact country name." - added
Input schema / properties / limitAdded value: +{ + "default": 20, + "description": "Max 100.", + "type": "number" +} - added
Input schema / properties / offsetAdded value: +{ + "default": 0, + "description": "Skip this many results, for paging.", + "type": "number" +} - added
Input schema / properties / q / descriptionAdded value: +"Matches name or title." - added
Input schema / properties / sector / descriptionAdded value: +"One exact sector name; commas are not split into several sectors." - added
Input schema / properties / tagAdded value: +{ + "description": "One tag, e.g. Unit 8200, Unit 81, Serial Entrepreneur, AI Expert, Investor, Has Exits.", + "type": "string" +} - added
Input schema / properties / title / descriptionAdded value: +"Partial match on the current title, e.g. CTO."
- Changed
search_startups13 fields changed- added
Input schema / properties / ai_supportAdded value: +{ + "description": "Comma-separated AI customer support tools: intercom_fin, ada, sierra, decagon, drift_ai, fin_ai; matches any of them.", + "type": "string" +} - changed
Input schema / properties / backed_by / descriptionPrevious 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." - added
Input schema / properties / blog_post_within_daysAdded 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" +} - added
Input schema / properties / has_blogAdded 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" +} - changed
Input schema / properties / limit / descriptionPrevious value: -"Results per call, up to 100."New value: +"Results per call. Default 20, max 100." - changed
Input schema / properties / mentioned_since / descriptionPrevious 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." - changed
Input schema / properties / near / descriptionPrevious 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." - changed
Input schema / properties / payment / descriptionPrevious 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." - changed
Input schema / properties / raised_before / descriptionPrevious 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." - changed
Input schema / properties / slugs / descriptionPrevious 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." - changed
Input schema / properties / sort / descriptionPrevious 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." - changed
Input schema / properties / status / descriptionPrevious value: -"Operating status."New value: +"Operating status. Exact, case-sensitive match on the stored value, for example Active or Inactive." - removed
Input schema / properties / status / enumRemoved value: -[ - "Active", - "Inactive" -]
1 tool update
- Added
scrape_youtube_videos
1 tool update
- Changed
discover_email1 field changed- added
Input schema / properties / roleAdded 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" +}
58 tool updates
- Added
cancel_monitor_watch - Added
check_domain_rating - Added
check_effective_domain_rating - Added
check_site_speed - Added
check_trust_reputation - Added
create_monitor_watch - Added
deep_intelligence - Added
enrich_company - Added
enrich_email - Added
find_matches - Added
find_stealth_startups - Added
generate_article_video - Added
generate_startup_list - Added
generate_visual_tldr - Added
generate_youtube_article - Added
get_advertiser_analytics - Added
get_article_video - Added
get_company_by_linkedin - Added
get_company_funding - Added
get_company_hiring - Added
get_investor_by_domain - Added
get_investor_by_social - Added
get_my_usage - Added
get_person_by_email - Added
get_person_by_social - Added
get_startup - Added
get_startup_by_domain - Added
get_startup_funding_history - Added
get_startup_socials - Added
get_youtube_clip - Added
get_youtube_transcript - Added
humanize_text - Added
list_credit_packs - Added
list_monitor_watches - Added
list_startup_team - Added
match_companies_by_domain - Added
publish_to_wordpress - Added
render_youtube_clip - Added
scan_company_technology - Added
search_domains - Added
search_investors - Added
search_people - Added
search_startups - Added
submit_exit_event - Added
submit_funding_round - Added
submit_investor - Added
submit_list - Added
submit_news - Added
submit_patent - Added
submit_person - Added
submit_product - Added
submit_research - Added
submit_startup - Added
suggest_youtube_clips - Added
update_investor - Added
update_person - Added
update_product - Added
update_startup
9 tool updates
- First observed
discover_email - First observed
find_logo - First observed
generate_rss_feed - First observed
get_arbitrage - First observed
get_trends - First observed
query_funding - First observed
scan_agent_readiness - First observed
search_suggestions - First observed
validate_email
Related MCP Connectors
Private company data, entity-resolved news, targeted lists, and alternative signals for AI agents.
- BroukyOAuthtech.brouky
VC and startup intelligence: AI VC Finder, deal sourcing, deck analysis and market data.
Funding rounds, LinkedIn data and actions, email verification and cited research briefs.
Funding rounds, exec moves, UCC liens and Form 5500 plans. 7 tools need no API key.
Related MCP Servers
AlicenseNot gradedqualityAmaintenanceEnables 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 npmApache 2.0- AlicenseAqualityDmaintenanceProvides 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.733 npm3MIT
- AlicenseNot gradedqualityBmaintenanceExposes 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.9MIT
- AlicenseNot gradedqualityDmaintenanceReal-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.1MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.