Whimbrel MedTech Analyst
Server Details
Whimbrel MedTech Analyst is your MedTech BD analyst on demand. Connect it to Claude, ChatGPT, Cursor or another AI app and ask about up-and-coming US medtech companies: who got funded this week through NIH and NSF grants and federal contracts, plus FDA clearances and Breakthrough marketing authorizations. Every line is linked to its source. Built for BD reps and small engineering firms researching companies they're interested in partnering with. Connect free: https://whimbrelresearch.com/connect/
- Status
- Healthy
- OAuth
- Works in Glama
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
TDQS
Scored across 17 tools
Several tools overlap heavily: company_timeline, micro_brief, and deep_record all return company-level registry/brief data, and find_signals, latest_signals, signal_of_the_day, weekly_pulse, and who_got_funded all surface signals with only scope differences. The long descriptions do help delineate window vs aggregate vs single-company, but boundaries remain blurry enough to invite misselection.
All 17 names use a consistent snake_case convention, which is the key consistency test. Minor deviation is stylistic, not chaotic: some names are verb phrases (find_signals, get_access, add_seat) while others are noun phrases (billing_portal, company_timeline, deep_record), but the pattern is still predictable and readable.
17 tools is on the heavy side for the apparent scope, and a few near-duplicates (signal_of_the_day, latest_signals, weekly_pulse) suggest consolidation is possible. It is not extreme, but the count pushes into borderline territory rather than feeling tightly scoped.
Coverage is broad: signal discovery, single- and multi-company research, CRM export, watch/diff, status, and full subscription/billing lifecycle (get_access, billing_portal, add_seat, release_seat). Gaps are minor, such as no way to watch a single company (only spaces) or manage plan changes, but core workflows have no dead ends.
Available Tools
17 toolsabout_the_dataAbout this dataARead-onlyIdempotentInspect
How the archive is collected, dated, and windowed, what the feed excludes, and the licensing and attribution terms. Takes no inputs. Returns the methodology, the overview, and the published archive scale.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so the safety profile is covered. The description adds value beyond them by disclosing that the call is input-free and by enumerating the returned content (methodology, overview, archive scale), which the agent could not otherwise know given there is no output 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?
Two tight sentences with no filler: the first lists the topics covered, the second the inputs and return contents. Front-loaded and appropriately sized for a no-argument meta tool.
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 must carry return-value burden, and it does so by naming the three returned artifacts. A no-input, read-only metadata tool needs little more, though it could clarify when an agent should consult it versus the data endpoints.
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?
Zero parameters, so the baseline is 4. The description reinforces this with 'Takes no inputs,' accurately matching the empty input schema and preventing any attempt to pass arguments.
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 exactly what the tool returns: methodology, overview, licensing/attribution, archive scale, and feed exclusions. It is clearly a metadata/documentation endpoint distinct from the data-fetching siblings, though it never names a sibling explicitly to reinforce the distinction.
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. 'Takes no inputs' is a mechanical fact rather than a routing cue, leaving the agent to infer that this is the endpoint for understanding the dataset's provenance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_seatAdd a seatADestructiveInspect
Raises the Seat quantity on this subscription. Seat plans only, buyer only. Requires an active Whimbrel key.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the mutation profile (readOnlyHint=false, destructiveHint=true, idempotentHint=false), so the safety burden is partly carried there. The description adds genuinely new context the annotations lack: plan-type restriction, buyer-only authorization scope, and a required active API key. It does not mention billing/cost impact or what the response returns, which would be desirable for a quantity-raising action.
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-loading the action, then the eligibility constraints, then the auth requirement. Every sentence adds a distinct constraint; there is no filler 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 zero-parameter, no-output-schema tool, the description covers what it does, who may call it, and what credential is needed, which is sufficient to invoke it correctly. It omits any note on the resulting state change (proration, billing effect, confirmation of new seat count), which would round out the picture for a destructive, non-idempotent action.
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, which is the baseline-4 case per the rubric. Nothing in the description needs to compensate for schema gaps, and the schema is fully described.
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: 'Raises the Seat quantity on this subscription.' An agent knows this is a seat-quantity increment, not a configuration change. It does not name or contrast with the obvious sibling release_seat, which is the natural inverse operation, so it stops short of full sibling differentiation.
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 applicability conditions: 'Seat plans only, buyer only. Requires an active Whimbrel key.' These act as exclusions that tell the agent when the tool does and does not apply. No explicit routing to an alternative (e.g., release_seat for decreases) is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
billing_portalBilling portalARead-onlyIdempotentInspect
Returns a Stripe customer portal link for this account. On a Seat plan it also returns the invite link and the people on the team. Requires an active Whimbrel key.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnly, idempotent and non-destructive, so the bar is lower. The description still adds real value by disclosing an auth requirement (active Whimbrel key) and conditional response contents that vary by plan type.
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 primary return value before the conditional extras and the prerequisite. 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 carries the return-shape burden and does so adequately by naming the portal link, invite link, and team member data. It stops short of covering failure behavior when the required key is missing or invalid.
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 for a parameterless tool is 4.
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 a Stripe customer portal link for this account, plus the conditional extras on a Seat plan. That is unambiguous and no sibling tool competes for this role, though the description never explicitly contrasts itself with any sibling.
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 (get a billing/portal link) and it does state a prerequisite: an active Whimbrel key. But there is no explicit when-to-use guidance, no statement of when this is unnecessary, and no alternative named for billing-related tasks.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
company_timelineCompany registry timelineARead-onlyIdempotentInspect
Every public registry event the archive holds for one company, newest first, including the full ClinicalTrials.gov device trial registration history, Breakthrough marketing authorizations, and Humanitarian Device Exemption (HDE) approvals, with stable ids, decoded award metadata, and source links. Pass company, matched against the archive. Pass fact as email, clearance, or trial to return that one stored fact. Omit fact for the full timeline. Pass since (YYYY-MM-DD) to add what changed at the company since that date. Pass ask as the question in the caller's words. The reply answers it from stored records; an ask such as "what changed at this company in the last 90 days" reads this company. An ask such as "account plan" or "how do I approach" this company returns a named-account plan: dated triggers, people by role, angles tied to the triggers, and open gaps, each line linked to its source.
| Name | Required | Description | Default |
|---|---|---|---|
| ask | No | The question in the caller's words. The reply answers it from stored records. | |
| fact | No | Return this one stored fact. Omit for the full timeline. | |
| since | No | ISO date (YYYY-MM-DD). Adds what_changed: events dated on or after it, or first on the record on or after it, each with its source link. | |
| company | Yes | Company name (fuzzy matched against the archive). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), and the description adds substantial context beyond them: newest-first ordering, stable ids, decoded award metadata, source links, and the two distinct behaviors of 'ask' (record answer vs. named-account plan with triggers, roles, angles, gaps). This is rich disclosure that 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?
It is front-loaded with what the tool returns, then walks parameters in order, and every clause about the 'ask' modes earns its place. The main flaw is that the 'ask' sentence nearly duplicates the schema description of the same parameter, adding minor 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?
With no output schema, the description carries the return-value burden and does so reasonably well, describing the timeline contents, source links, and the two 'ask' output shapes. A few details (e.g. pagination/limits on a potentially long timeline) are unaddressed, keeping it just short of 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 100%, so the baseline is 3, but the description adds real meaning beyond the schema: it explains that 'fact' returns a single stored fact and must be omitted for the full timeline, that 'since' adds a what_changed block, and that 'ask' drives two different response modes not visible in 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?
The description states a specific verb+resource ('Every public registry event the archive holds for one company, newest first') and enumerates the included record types (ClinicalTrials.gov device trials, Breakthrough authorizations, HDE approvals). It is highly specific, but it never names or distinguishes itself from the many sibling signal/brief tools, so it falls short of the 5 criterion.
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 mode-selection guidance per parameter: pass 'fact' for one stored fact, omit it for the full timeline, pass 'since' to add what changed, pass 'ask' to answer a question. This is explicit usage context, though it offers no when-not-to-use or named alternative sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
crm_exportExport research as CRM import files (paid)ARead-onlyIdempotentInspect
One company's deep-research record as CRM import files. Pass company and format (hubspot or salesforce). Returns a companies/accounts CSV, a contacts CSV with the researched people and titles, a sourced research-notes document, and the import steps for that CRM. Requires an existing deep-research record and an active Whimbrel key.
| Name | Required | Description | Default |
|---|---|---|---|
| format | Yes | Which CRM the files should import into. | |
| company | Yes | Company name (must already have a deep-research record). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish the safety profile (read-only, idempotent, non-destructive, closed-world). The description adds genuinely new behavioral context: the operation depends on a pre-existing deep-research record and a paid/active key, and it enumerates the returned artifacts. It doesn't discuss cost, delivery timing, or failure modes for missing records, keeping it below 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 sentences, front-loaded with what the tool produces before the inputs and prerequisites. Every sentence carries information, though the requirements sentence could be trimmed slightly without losing meaning.
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 so fully by listing all four output artifacts. Combined with the input enumeration and the preconditions, an agent has everything needed to decide whether it can call the tool and what it will receive.
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% — both `company` and the `format` enum are fully documented in the schema. The description restates the same two inputs (company, hubspot or salesforce) without adding format-specific syntax or behavior, 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 — exporting one company's deep-research record as CRM import files — and names the exact artifacts produced (companies/accounts CSV, contacts CSV, research-notes doc, import steps). No sibling tool exports anything, so the scope 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?
Gives a clear precondition (an existing deep-research record) and an access requirement (active Whimbrel key, flagged as paid in the title), which tells the agent when this tool is applicable. It stops short of naming alternatives or stating when not to use it, 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.
deep_recordFull company brief on any company (paid)AInspect
The full company brief on a company: current leadership and buying committee, company facts, contact routes, named partners, the evidence behind each, and known gaps. Pass company. Pass domain when asking for new research. Pass refresh to force a new run. Pass fact as email, clearance, or trial to return that stored fact only, without queueing a run. People already on the record are grouped by stored role. If the company has no record yet, or the newest record is more than a week old, this queues a fresh research run and returns the best file already stored, with a note on what is still filling. A record researched within the week is served as stored and does not spend a run. Requires an active Whimbrel key.
| Name | Required | Description | Default |
|---|---|---|---|
| fact | No | Return this one stored fact and do not queue a research run. Omit it for the company file. | |
| since | No | ISO date (YYYY-MM-DD) for the What changed section. Defaults to the last 90 days. | |
| domain | No | The company's website domain (recommended when requesting new research; otherwise it is resolved, and the run fails honestly if it cannot be). | |
| company | Yes | Company name. | |
| refresh | No | Force a fresh research run even when a recent record exists. A record older than a week refreshes automatically without this. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare a non-read-only, open-world, non-idempotent operation, and the description adds substantive context beyond them: a call may queue a research run, may spend a run, returns the best stored file with a note on what is still filling, and requires an active Whimbrel key. It stops short of describing failure modes or the exact response shape, but the cost/auth/queueing behavior is well disclosed.
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 brief's contents, then the parameter guidance, then the freshness/cost rule. The short imperative 'Pass X' sentences are efficient, though the parameter section is somewhat redundant with the schema and the brief 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 no output schema, the description carries the burden of describing the return, and it does so: the brief's sections plus a note on what is still filling. Auth requirement, queueing, and freshness behavior are all covered; only the since parameter and explicit failure behavior are 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%, so the schema already documents all five parameters, and the description largely repeats it ('Pass refresh to force a new run' mirrors the schema's force-refresh text). The one real addition is the queueing implication of fact versus the full file. Notably, the description never mentions the since parameter at all, so it adds little 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?
The description names a specific resource (the full company brief) and enumerates exactly what it contains: leadership and buying committee, company facts, contact routes, named partners, supporting evidence, and known gaps. It does not, however, differentiate itself from obvious siblings like micro_brief or company_timeline, so an agent must infer which brief 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?
Gives concrete conditions for each mode: pass domain when asking for new research, pass refresh to force a run, pass fact for a single stored fact without queueing. The freshness rule (a record within the week is served as stored and does not spend a run) tells the agent when a call is cheap versus costly. It never names an alternative sibling tool or states when not to use this one.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_signalsFind matching signalsARead-onlyIdempotentInspect
Search the full monitored corpus of US medtech buying signals across years: NIH and NSF SBIR/STTR awards, federal medical R&D contracts, FDA 510(k) clearances, PMA approvals, De Novo grants, Breakthrough marketing authorizations, Humanitarian Device Exemption (HDE) approvals, ClinicalTrials.gov device trial registrations, device listings, device recalls, CDRH warning letters, device import-alert listings, and SEC funding filings. Companies whose registry name reads as non-US are left out unless include_non_us is true. Pass kind, since, new_award, phase, min_amount_usd, matching terms, and limit. Returns sourced signals newest first. Pass specialties and skill_sets in the caller's own words, such as polymer leaflets or embolic protection. The reply then orders companies by how closely those words match each company's full stored record, with matching terms shown and every line linked to its source. Pass company with them when the caller passed one company. With neither specialties nor skill_sets, the page stays newest first. Pass ask as the question in the caller's words. The reply answers it from stored records: a company file, one fact, a company list, a list ranked against their specialties, a side-by-side, or the people by role already stored.
| Name | Required | Description | Default |
|---|---|---|---|
| ask | No | The question in the caller's words. The reply answers it from stored records. | |
| kind | No | Only return this signal kind. | |
| limit | No | Maximum signals to return (default 25, max 50). | |
| phase | No | NIH only: restrict to this program phase. | |
| since | No | ISO date (YYYY-MM-DD); only signals on or after it. Defaults to the last 90 days. | |
| company | No | Use with specialties or skill_sets when the caller named one company. The reply is that company's fit, in one sentence, from stored signals. | |
| matching | No | Space-separated terms; each must appear in the signal's summary or abstract (e.g. 'spine implant instrument'). Frame these from the firm's capabilities. | |
| new_award | No | NIH only: first-year awards (fresh money, partners not yet settled). | |
| skill_sets | No | The caller's skill sets, in plain words. Companies on this page are matched and ranked against these words together with specialties. Omit this when the caller did not name skill sets. At most 1000 characters are sent. | |
| specialties | No | The caller's specialties, in plain words (polymer leaflets, embolic protection). Companies on this page are matched and ranked against these words. Omit this when the caller did not name specialties. At most 1000 characters are sent. | |
| include_non_us | No | Keep companies whose registry name reads as a non-US entity (a non-US legal form such as GmbH or Co., Ltd., or a non-US place name). Default false: those are left out of this US medtech search. | |
| min_amount_usd | No | Only signals with a stated amount at or above this. | |
| prefer_strategics | No | With specialties or skill_sets: list large strategics (Medtronic, Boston Scientific, Abbott, J&J and similar) ahead of emerging companies with similar coverage. Default false: emerging companies come first. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive/closed-world, so the safety profile is covered. The description usefully adds behavior beyond that: default 90-day lookback, default newest-first ordering, ranking against caller-owned words, and that every line is linked to its source. It does not mention pagination or rate limits, keeping it short of 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?
It opens with the corpus scope, which is good front-loading, but the body is three dense run-on paragraphs that repeatedly restate parameter behavior already in the schema and mix the ask-mode narrative into search-mode guidance. Signal-to-word ratio is mediocre.
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 optional parameters and no output schema, the description carries a real explanatory burden and does address return shape ('Returns sourced signals newest first', replies as a company file, one fact, ranked list, or side-by-side). It is reasonably complete for this complexity, though the dual search/ask behavior could be disentangled more clearly.
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 all 13 parameters in detail and the baseline is 3. The description mostly restates schema content (specialties, skill_sets, matching) rather than adding syntax, ranges, or interaction rules beyond what is already in 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 ('Search the full monitored corpus of US medtech buying signals') and enumerates the source types covered, which separates it from siblings like latest_signals or who_got_funded. However, it conflates two modes (signal search and 'ask' question answering), which muddies what the tool fundamentally is.
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 conditional guidance on parameters ('Pass company with them when the caller passed one company', 'With neither specialties nor skill_sets, the page stays newest first'), which implies usage. But it never says when to choose find_signals over siblings such as latest_signals, watch_space, or who_got_funded, leaving the selection 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_accessGet a key for the paid toolsAInspect
Returns Stripe Checkout links for Individual and Seat. Individual is one person. Seat is a team of five or more. Pass plan as individual or seat, or omit it to return both links. Pass quantity as the people on a seat checkout. A quantity below 5 is refused. No key is required. OAuth Subscribe on the sign-in page hands the token to the app with nothing to paste. These links are the display-key path for clients that do not use OAuth: open one, pay, and the page shows an API key once to send as an Authorization Bearer header.
| Name | Required | Description | Default |
|---|---|---|---|
| plan | No | Which checkout to open. Omit to open both. | |
| quantity | No | People on a seat checkout. Below 5 is refused. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the mutation/open-world/idempotency profile, but the description adds real context beyond them: no key is required, the quantity floor of 5 is enforced server-side, and the returned key is shown only once. It does not cover rate limits or what a repeat call yields, which keeps it short of 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?
It is front-loaded with the return value and then walks through params, validation, and auth. The quantity floor is stated twice (description and schema), a small redundancy, and the sentences are choppy, but every sentence carries information and nothing is 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 explains what is returned (Checkout links, and a key shown once on the payment page) and covers auth requirements and parameter behavior. For a 2-param, no-required-params tool this is close to complete, though it omits error/retry behavior and any idempotency implications of re-requesting links.
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 genuine meaning: it defines what 'seat' means ('a team of five or more'), clarifies omitting plan returns both links, and restates the quantity refusal rule. This enriches the enum semantics beyond the schema's terse 'Which checkout to open.'
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 ('Returns Stripe Checkout links for Individual and Seat') and defines both plan types. It is clear on its own, but the name/title ('get_access' / 'Get a key') frames it as key retrieval while the body describes checkout-link generation, and it never contrasts itself with any sibling tool.
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 routes the agent: 'These links are the display-key path for clients that do not use OAuth' names the alternative (OAuth Subscribe) and the condition that selects this tool. It also states the post-payment flow ('open one, pay, and the page shows an API key once'), so when and when-not to use it is fully specified.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
latest_signalsLatest medtech signalsARead-onlyIdempotentInspect
US medtech buying signals observed in the last 14 days: NIH and NSF SBIR/STTR awards, federal medical R&D contracts, FDA 510(k) clearances, PMA approvals, De Novo grants, Breakthrough marketing authorizations, Humanitarian Device Exemption (HDE) approvals, and ClinicalTrials.gov device trial registrations. Pass kind to keep one signal kind. Pass limit to cap how many events come back (default 25, maximum 50). Returns each event with a stable id, the company, event and observed dates, a parsed amount_usd where the source states a figure, a one-line summary, and the public source URL.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | Only return this signal kind. | |
| limit | No | Maximum events to return (default 25, max 50). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint/idempotentHint/non-destructive, so the safety profile is covered; the description goes beyond them by disclosing the 14-day observation window, the hard cap of 50 events, and the shape of each returned event including the caveat that amount_usd is present only 'where the source states a figure'. It does not state ordering or what happens when zero events fall in the window, but it adds genuine behavioral 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?
One tight paragraph, front-loaded with what the tool returns before the parameter and return-value notes. The long enumeration of award/approval types is borderline but each item corresponds to a real enum member, so it earns its place. Slightly dense with three topics (content, params, returns) in a single block.
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 burden of describing returns (id, company, event/observed dates, amount_usd, summary, source URL), plus the time window and result cap. Only minor gaps remain: result ordering and behavior on an empty window. Adequate for an agent to invoke correctly without further context.
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 'kind' (with a fully enumerated 10-value enum) and 'limit' (default 25, max 50) are documented in the schema. The description restates both rather than adding new semantics such as behavior when an unknown kind is passed or whether kinds combine. Baseline 3 for a high-coverage 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 with scope: 'US medtech buying signals observed in the last 14 days', then enumerates the exact source types (NIH/NSF SBIR, federal contracts, FDA 510(k)/PMA/De Novo/Breakthrough/HDE, trial registrations). The 14-day observation window implicitly differentiates it from archive-style siblings, but no sibling (find_signals, signal_of_the_day, weekly_pulse) is named, so 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?
The description explains how to use the parameters ('Pass kind to keep one signal kind') but never says when to choose this tool over find_signals, signal_of_the_day, or weekly_pulse, nor any exclusion or prerequisite. The 14-day window hints at freshness-oriented use, but the routing decision is not made explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
micro_briefMicro brief on a companyARead-onlyIdempotentInspect
A composed mini-dossier on one US medtech company in the archive. Pass company, matched against the archive. Returns every registry event on record across years (NIH awards with decoded phase and freshness, FDA clearances, approvals, De Novos, Breakthrough marketing authorizations, Humanitarian Device Exemption (HDE) approvals, federal R&D contracts, ClinicalTrials.gov device trial registrations, patent grants and published applications, SEC funding filings, and recalls), stated funding, and a public source link on every line. Registry records only.
| Name | Required | Description | Default |
|---|---|---|---|
| company | Yes | Company name (fuzzy matched against the archive). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, closed-world behavior, so the safety profile is covered. The description adds substantial context beyond them: exactly which record classes are returned and that every line carries a public source link. It omits what happens on an unmatched company name, which caps 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?
Front-loaded with the core purpose and scope in the first clause, then a single dense enumeration of returned record types. The list is long but each item earns its place as content disclosure; no filler sentences.
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 burden of describing returns, and it does so thoroughly across award, device, patent, filing, and recall classes. It is only missing edge-case behavior (no match, multiple matches, volume limits) for a full 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 coverage is 100% for the single parameter, and the schema itself already documents the fuzzy-match behavior. The description repeats 'matched against the archive' without adding format, casing, or ambiguity-resolution detail, 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 ('composed mini-dossier on one US medtech company in the archive') and bounds the scope to registry records. It does not explicitly distinguish itself from likely-overlapping siblings such as company_timeline or deep_record, 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?
It never says when to use this versus alternatives like company_timeline or deep_record, nor any prerequisite or matching behavior beyond what the schema already states. The only guidance-like content is the trailing scope note 'Registry records only', which limits content rather than routing the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
release_seatRelease a seatADestructiveInspect
Removes a teammate from this Seat plan. The buyer seat stays. Seat plans only, buyer only. Requires an active Whimbrel key.
| Name | Required | Description | Default |
|---|---|---|---|
| member | Yes | Member id or email to release. The buyer seat cannot be released. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=false, but the description adds genuinely useful context: what survives the destructive act ("The buyer seat stays") and the auth prerequisite (active Whimbrel key). It does not say whether a released teammate can be re-added or what state the member is left 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?
Four short telegraphic sentences, zero filler, with the core action front-loaded and the constraints following. Every sentence carries distinct information (action, non-effect, scope, prerequisite).
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 destructive tool with annotations covering the safety profile and no output schema, the description supplies action, scope, non-effect, and auth needs. It omits error/failure behavior and reversibility, which are minor but 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?
With one parameter at 100% schema coverage, the schema already documents the member id/email and the buyer-seat restriction. The description's "buyer seat stays" only reinforces what the schema says, adding no new syntax or format detail. 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 and resource ("Removes a teammate from this Seat plan") and clarifies scope boundaries by noting the buyer seat is unaffected, which separates this from a hypothetical buyer-removal operation. It never names add_seat, the natural sibling counterpart, so it is clear but does not explicitly route against alternatives.
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?
"Seat plans only, buyer only" functions as an explicit precondition/exclusion, telling the agent when this tool is valid and when it is not. It also states the auth requirement (active Whimbrel key). It stops short of naming an alternative tool for non-seat plans.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
research_statusYour research requests (paid)ARead-onlyIdempotentInspect
Status of this account's queued, running, and finished research and onboarding requests. Pass request_id for one request, or omit it for the recent ten. On a Seat plan, the reply includes seats claimed. Requires an active Whimbrel key.
| Name | Required | Description | Default |
|---|---|---|---|
| request_id | No | One request to check; omit for your recent ten. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare a safe, idempotent, non-destructive read within a closed world, so the safety profile is covered. The description adds genuinely new behavior: onboarding requests are included alongside research, Seat-plan replies carry seat counts, and an active Whimbrel key is required.
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 with no filler, and the scoping statement is front-loaded. Minor overlap with the schema on the request_id default keeps it from being maximally tight.
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 name the statuses and the Seat-plan seat detail. Auth requirement is disclosed; only pagination beyond the default ten is left 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% and the schema already says 'One request to check; omit for your recent ten.' The description's parameter sentence largely restates that default rather than adding format or semantics beyond it, 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 resource and the exact states covered ('queued, running, and finished research and onboarding requests'), which tells an agent precisely what it returns. It does not explicitly differentiate from any sibling, though none of the sibling names (e.g., deep_record, latest_signals) overlap with status polling, so confusion risk 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?
It explains how to use the parameter ('Pass request_id for one request, or omit it for the recent ten') but gives no guidance on when this tool is the right choice versus alternatives such as deep_record or about_the_data. Usage is implied (check on a submitted research request) rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
signal_of_the_daySignal of the dayARead-onlyIdempotentInspect
The single newest medtech signal in the feed. Takes no inputs. Returns that signal with its figures, a plain-words summary, and the public source URL.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is covered. The description adds genuinely useful behavior: it takes no inputs, returns exactly one signal, and specifies the payload (figures, plain-words summary, public source URL). The only missing trait is what happens when the feed is empty.
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 with zero filler, and the core identity ('single newest signal') is front-loaded ahead of input and return details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the burden of describing the return and does so adequately for a one-item read tool. It lacks an edge-case note (empty feed, staleness of 'newest') but is otherwise complete for a zero-parameter 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?
Zero parameters, so the baseline is 4. The description correctly and explicitly confirms 'Takes no inputs,' leaving no ambiguity about whether arguments are expected.
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: 'The single newest medtech signal in the feed.' An agent can tell this is the one-item variant rather than a list. It stops short of naming the sibling it competes with (latest_signals, find_signals), so it is clear but not fully differentiated.
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?
No statement of when to use this versus latest_signals, find_signals, or weekly_pulse, all of which plausibly return overlapping signal content. The word 'newest' hints at the use case but no alternative or condition is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
space_scanCompanies in a signal spaceARead-onlyIdempotentInspect
Companies already in the Whimbrel signal index for one space. Pass kind, since, new_award, phase, min_amount_usd, matching, and limit, the same filters find_signals accepts. Pass ask as the question in the caller's words. Returns a short list: the company, why it matched, and one next fact already stored. The reply answers ask from stored records.
| Name | Required | Description | Default |
|---|---|---|---|
| ask | No | The question in the caller's words. The reply answers it from stored records. | |
| kind | No | Only companies with this signal kind. | |
| limit | No | Maximum companies to return (default 25, max 50), taken from the newest matching rows in the index. | |
| phase | No | NIH only: restrict to this program phase. | |
| since | No | ISO date (YYYY-MM-DD); only signals on or after it. Defaults to the last 90 days. | |
| matching | No | Space-separated terms; each must appear in the signal's summary or abstract. | |
| new_award | No | NIH only: first-year awards. | |
| include_non_us | No | Keep companies whose registry name reads as a non-US entity (a non-US legal form such as GmbH or Co., Ltd., or a non-US place name). Default false: those are left out of this US medtech search. | |
| min_amount_usd | No | Only signals with a stated amount at or above this. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and closed-world. The description goes beyond them by disclosing the return shape ('the company, why it matched, and one next fact already stored') and clarifying that the reply answers 'ask' from stored records only — a real behavioral constraint absent from 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?
Purpose is front-loaded in the first sentence, followed by filter guidance, the ask semantics, and the return shape. Four sentences with no filler, though the 'Pass kind, since, ... Pass ask as...' construction is a little list-like and mechanical.
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 burden of describing the return value, and it does so. It also notes the implicit US-medtech scope via the include_non_us default. It could say more about how 'ask' is interpreted, but the essentials for calling the tool are present.
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 enum parameters are well documented, so the schema does the heavy lifting. The description mostly restates parameter names and adds one useful cross-reference (filters mirror find_signals), which is a modest gain but 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 (scan) and resource (companies already in the Whimbrel signal index for one space), which is distinguishable from find_signals. However, it never explicitly contrasts itself with find_signals beyond noting shared filters, and the 'one space' scope is asserted without a corresponding parameter, leaving the boundary slightly fuzzy.
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 usage by tying its filters to 'the same filters find_signals accepts' and by framing 'ask' as the caller's question, but it never states when to choose space_scan over find_signals or its other siblings. Usage is inferable rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
watch_spaceWatch a named spaceAInspect
Save a named space from the Whimbrel signal index, then diff it later. Pass name and action. action save stores the signals that match kind, since, new_award, phase, min_amount_usd, and matching. action diff returns index signals that were not in the saved set at the last save or pull. Stored for the calling account or caller, and read back only for that same caller.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | On save: only this signal kind. Ignored on diff. | |
| name | Yes | Name for this space. | |
| phase | No | On save: NIH program phase. | |
| since | No | On save: ISO date (YYYY-MM-DD). Ignored on diff; the saved filters are used. | |
| action | Yes | save stores the current matching signals. diff returns what is new since that save or the last pull. | |
| matching | No | On save: space-separated terms matched against summary and abstract. | |
| new_award | No | On save: NIH first-year awards only. | |
| min_amount_usd | No | On save: stated amount at or above this. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations mark this as non-read-only, non-idempotent, and non-destructive. The description adds meaningful context beyond that: storage is scoped to the calling account/caller and read back only for that same caller, and diff is stateful relative to the last save or pull. It stops short of describing rate limits or the 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?
Four sentences, front-loaded with the save-then-diff purpose, followed by action semantics and the caller-scoping constraint. Efficient and well ordered, though the enumeration of params is somewhat redundant with the 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?
For an 8-param, mutation-capable tool with no output schema, the description covers the stateful save/diff model, caller-scoped persistence, and what diff returns (signals not in the saved set). That is close to complete, with only return format and pagination left implicit.
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 schema itself notes which params apply on save vs diff (e.g., 'Ignored on diff'). The description restates the save-side params but adds no syntax or format detail beyond the schema, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb pair (save/diff) on a specific resource (a named space in the Whimbrel signal index), and the title reinforces it. An agent can understand what the tool does. It does not, however, distinguish itself from the sibling space_scan, which sounds related.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly explains the two action modes ('action save stores...', 'action diff returns...'), which implies when each is used. But it gives no guidance on when to prefer this over siblings like find_signals, latest_signals, or space_scan, and states no exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
weekly_pulseWeekly pulseARead-onlyIdempotentInspect
Aggregate of the last 7 days of US medtech signals. Takes no inputs. Returns how many events of each kind (including ClinicalTrials.gov device trial registrations, Breakthrough marketing authorizations, and Humanitarian Device Exemption (HDE) approvals in the recent window), total stated NIH award dollars, and the largest single event. Figures are the ones stated in the feed.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so safety is covered. The description adds genuine value beyond them by naming the three event classes counted and flagging provenance ('Figures are the ones stated in the feed'), which tells the agent the numbers are as-reported and not recomputed.
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 constraints, then return contents, then a data-quality caveat; no sentence is filler. The parenthetical event list is dense but justified since there is no output schema to enumerate those values.
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 returns and does so: per-kind event counts, total stated NIH award dollars, and the largest single event. Minor gap: it doesn't say whether the 7-day window is relative to the current date or a fixed snapshot, or how 'largest' is defined.
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 baseline is 4. The description correctly confirms this with 'Takes no inputs', matching the empty input 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 ('Aggregate'), resource ('US medtech signals'), and scope ('last 7 days'), then enumerates the concrete event kinds counted. An agent can distinguish this from siblings like latest_signals or signal_of_the_day 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?
'Takes no inputs' implies this is a zero-arg overview call rather than a search, which is useful. However, it never states when to prefer this over latest_signals, find_signals, or who_got_funded, nor any exclusions, so usage is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
who_got_fundedWho got fundedARead-onlyIdempotentInspect
NIH awards in the current signal window. Pass new_award to keep first-year awards, where programs are still choosing partners. Pass phase as SBIR/STTR Phase I or II. Pass min_amount_usd to keep events with a stated amount at or above that figure. Returns the matching awards with the company, phase, amount, date, and source. Does not return ClinicalTrials.gov device trial registrations, Breakthrough marketing authorizations, or Humanitarian Device Exemption (HDE) approvals.
| Name | Required | Description | Default |
|---|---|---|---|
| phase | No | Only this program phase. | |
| new_award | No | Only first-year awards (fresh money). | |
| min_amount_usd | No | Only events with a stated amount at or above this. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnly/idempotent/non-destructive safety, so the bar is lower. The description adds real value beyond them by declaring the temporal window ('current signal window'), the returned fields, and an explicit negative scope (excludes ClinicalTrials.gov device trials, Breakthrough marketing authorizations, HDE approvals).
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, followed by filter guidance, return fields, and exclusions. Every sentence earns its place, though the final exclusion list is somewhat long and listy.
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 enumerating the return payload (company, phase, amount, date, source) and clarifying boundaries via the negative scope. Combined with annotations covering safety, 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 coverage is 100%, so baseline is 3, but the description goes slightly beyond the schema by explaining the rationale for new_award ('where programs are still choosing partners') and restating the phase distinction and amount threshold in plain language.
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 scope: 'NIH awards in the current signal window.' An agent can tell this is a funding-event query. However, it never explicitly distinguishes itself from signal-oriented siblings such as find_signals, latest_signals, or signal_of_the_day.
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 explains how to use each filter (pass new_award/phase/min_amount_usd to narrow), which implies usage, but gives no when-to-use-this-vs-alternative guidance or exclusions relative to the many signal siblings. The 'current signal window' phrase is the only scoping hint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
- Changed
find_signals1 field changed- added
Input schema / properties / prefer_strategicsAdded value: +{ + "description": "With specialties or skill_sets: list large strategics (Medtronic, Boston Scientific, Abbott, J&J and similar) ahead of emerging companies with similar coverage. Default false: emerging companies come first.", + "type": "boolean" +}
3 tool updates
- Changed
find_signals1 field changed- changed
Input schema / properties / kind / enumPrevious value: -[ - "nih_award", - "nsf_award", - "federal_contract", - "sbir_award", - "fda_clearance", - "fda_pma", - "fda_denovo", - "fda_breakthrough_auth", - "fda_hde", - "fda_listing", - "fda_recall", - "fda_warning_letter", - "fda_import_alert", - "fda_pma_supplement", - "trial_registration", - "funding_filing" -]New value: +[ + "nih_award", + "nsf_award", + "federal_contract", + "sbir_award", + "fda_clearance", + "fda_pma", + "fda_denovo", + "fda_breakthrough_auth", + "fda_hde", + "fda_listing", + "fda_recall", + "fda_warning_letter", + "fda_import_alert", + "fda_pma_supplement", + "fda_pma_original", + "trial_registration", + "funding_filing" +]
- Changed
space_scan1 field changed- changed
Input schema / properties / kind / enumPrevious value: -[ - "nih_award", - "nsf_award", - "federal_contract", - "sbir_award", - "fda_clearance", - "fda_pma", - "fda_denovo", - "fda_breakthrough_auth", - "fda_hde", - "fda_listing", - "fda_recall", - "fda_warning_letter", - "fda_import_alert", - "fda_pma_supplement", - "trial_registration", - "funding_filing" -]New value: +[ + "nih_award", + "nsf_award", + "federal_contract", + "sbir_award", + "fda_clearance", + "fda_pma", + "fda_denovo", + "fda_breakthrough_auth", + "fda_hde", + "fda_listing", + "fda_recall", + "fda_warning_letter", + "fda_import_alert", + "fda_pma_supplement", + "fda_pma_original", + "trial_registration", + "funding_filing" +]
- Changed
watch_space1 field changed- changed
Input schema / properties / kind / enumPrevious value: -[ - "nih_award", - "nsf_award", - "federal_contract", - "sbir_award", - "fda_clearance", - "fda_pma", - "fda_denovo", - "fda_breakthrough_auth", - "fda_hde", - "fda_listing", - "fda_recall", - "fda_warning_letter", - "fda_import_alert", - "fda_pma_supplement", - "trial_registration", - "funding_filing" -]New value: +[ + "nih_award", + "nsf_award", + "federal_contract", + "sbir_award", + "fda_clearance", + "fda_pma", + "fda_denovo", + "fda_breakthrough_auth", + "fda_hde", + "fda_listing", + "fda_recall", + "fda_warning_letter", + "fda_import_alert", + "fda_pma_supplement", + "fda_pma_original", + "trial_registration", + "funding_filing" +]
17 tool updates
- First observed
about_the_data - First observed
add_seat - First observed
billing_portal - First observed
company_timeline - First observed
crm_export - First observed
deep_record - First observed
find_signals - First observed
get_access - First observed
latest_signals - First observed
micro_brief - First observed
release_seat - First observed
research_status - First observed
signal_of_the_day - First observed
space_scan - First observed
watch_space - First observed
weekly_pulse - First observed
who_got_funded
Related MCP Connectors
FDA 510(k)s, PMAs, recalls & trials, linked: predicate search and review-time stats for AI agents.
Biotech intelligence for AI agents: drugs, targets, diagnostics, PoS estimates, and writeups.
Federal contracts, FDA recalls, business registrations, Amazon products — B2B intel.
Connect Claude, Cursor, or ChatGPT to your business data. Ask questions, get answers.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables AI agents to access FDA and ClinicalTrials.gov data for medical device compliance, adverse event monitoring, and regulatory due diligence.-
- AlicenseAqualityDmaintenanceA Bloomberg Terminal you can talk to. Query company relationships — suppliers, customers, competitors, supply chain paths — directly from Claude, Cursor, or any MCP-compatible AI assistant.71MIT
- AlicenseNot gradedqualityBmaintenancePharmaceutical R\&D Pipeline Intelligence for AI Agents — Clinical trials, FDA approvals, drug information & publications in one MCP server.5MIT
- AlicenseBqualityDmaintenanceEnables comprehensive medical research by querying and analyzing data across ClinicalTrials.gov, PubMed, and FDA databases with AI-enhanced cross-database insights, risk assessments, and competitive intelligence.1311MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.