Skip to main content
Glama

Server Details

SEC red-flag alerts & company dossiers, token risk, wallet checks, x402 preflight, scraping, OFAC.

Ownership verified
Status
Healthy
Uptime
99.9% over 21 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A4/5.0

Scored across 41 tools

Disambiguation3/5

Descriptions do a lot of work (dossier explicitly says it replaces profile/financials/events/insider calls, single vs batch variants are labelled), but the surface still contains genuinely parallel choices: token_risk_check vs token_verdict, sanctions_screen vs counterparty_check vs wallet_risk_check, and company_profile vs company_dossier vs counterparty_check all answer overlapping questions. sec_market_alerts vs daily_briefing vs sec_alerts_peek also require reading carefully to pick correctly. Boundaries are inferable but not clean.

Naming Consistency3/5

Naming mixes verb-first tools (web_search, scrape_markdown, email_verify, site_map) with subject-prefixed noun phrases (company_dossier, sec_financials, hvac_coil_load, token_risk_check, wallet_risk_check). Domain prefixes (sec_, hvac_, token_, scrape_) are applied consistently within each family, which keeps it readable, but there is no single predictable pattern across the suite.

Tool Count2/5

41 tools is heavy even for a broad utility suite. Several could be folded together (token_risk_check/token_verdict, sec_filing_section/sec_filing_sections, sanctions_screen/counterparty_check/wallet_risk_check, the free *_peek variants), suggesting the surface is wider than it needs to be.

Completeness4/5

Coverage per domain is strong: SEC filings, sections, diffs, insiders, 13F, IPOs, alerts and subscriptions all have create/read/status paths; crypto, web scraping, enrichment, and HVAC each have complete entry points plus free samples and peeks. Minor awkwardness exists, e.g. daily_briefing_subscription's cancellation/status routed through sec_alert_subscription_status, and no general portfolio/watchlist persistence beyond ticker filters.

Available Tools

41 tools
company_dossierCompany dossier (SEC due diligence)A
Read-onlyIdempotent
Inspect

Answers "Give me a quick due-diligence read on NVDA", "Is anything wrong at this company?" or "Brief me on Apple before the market opens". Give a ticker, company name, CIK or website domain. One call returns: who the company is (industry, HQ, CEO, founded, employees, description), four fiscal years of revenue, operating and net income, EPS, operating and free cash flow, cash, debt and equity with margins and growth (SEC XBRL), the latest quarter with year-over-year growth, the last 5 8-K events with item titles and excerpts, insider open-market buying and selling from the latest Form 4s (10b5-1 and tax sales set apart), the latest 10-K/10-Q, and flags: RED for restatements (8-K 4.02), delisting notices, bankruptcy and late 10-Ks; AMBER for auditor changes, cybersecurity incidents, impairments, late 10-Qs, net losses, cash burn, negative equity and shrinking revenue; GREEN for profitable growth and insider buying. summary says it all in a few sentences; every flag cites its filing. Replaces five separate calls (company_profile, sec_financials twice, sec_recent_events, sec_insider_trades). next_calls lead to what changed in the risk factors and the latest earnings release. Unknown, ambiguous or private companies are not charged. You are only charged when a result is returned: invalid input (400) and upstream failures (4xx/5xx) are not settled. Costs $0.03 USDC per call via x402. Paid per call with x402 inside MCP (see the server instructions).

NameRequiredDescriptionDefault
cikNoSEC Central Index Key, e.g. 320193. Use this, `ticker` or `company`.
viaNoOptional: the tool whose next_calls suggested this call (filled in for you).
domainNoThe company's website, e.g. "nvidia.com". Use this, `ticker`, `cik` or `company`.
tickerNoUS stock ticker, e.g. AAPL, MSFT, BRK-B. Use this, `cik` or `company`.
companyNoCompany name, e.g. "Apple" or "Coca-Cola". Use this, `ticker` or `cik`; a name matching several companies returns their tickers, free.

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, open-world), so the description does not need to restate them. It instead adds genuinely new behavioral context: the billing model is pay-per-returned-result, invalid input (400) and upstream failures (4xx/5xx) are not settled, cost is $0.03 USDC via x402 paid inside MCP, and the flag semantics (RED/AMBER/GREEN) are defined with the specific filing conditions that trigger each.

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

Conciseness4/5

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

Front-loaded with the user questions it answers, then the input contract, then the return payload — a sensible order with no filler sentences. The long enumeration of returned fields is justified because there is no output schema, though the block is dense enough that it reads as a data dump rather than a summary.

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

Completeness5/5

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

There is no output schema, so the description must describe the return, and it does so thoroughly: profile fields, four fiscal years of income/cash-flow/balance-sheet metrics, latest quarter with YoY growth, 8-K and Form 4 detail, latest 10-K/10-Q, flag taxonomy, and the `summary` field. Billing and failure behavior are also covered, leaving nothing an agent needs to invoke it correctly.

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

Parameters3/5

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

Schema description coverage is 100%, so each of the five parameters is already documented in the schema, and the description mostly restates that any of ticker/company/CIK/domain works rather than adding syntax or precedence rules beyond what the schema says. It does not mention the optional `via` parameter at all. Baseline 3 is appropriate when the schema carries the detail.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

The description opens with concrete example questions ('Give me a quick due-diligence read on NVDA') and then enumerates exactly what one call returns — profile, four years of XBRL financials, latest quarter, 8-K events, insider Form 4 activity, latest filings and color-coded risk flags. It also explicitly distinguishes itself from siblings by naming the five calls it replaces (company_profile, sec_financials, sec_recent_events, sec_insider_trades). An agent can tell this apart from sec_financials or sec_alerts_peek without opening any schema.

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

Usage Guidelines5/5

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

It states exactly what input forms are accepted (ticker, company name, CIK or website domain), names the tools it supersedes, and routes follow-up work via next_calls ('what changed in the risk factors and the latest earnings release'). It also states the negative case — unknown, ambiguous or private companies return tickers free and are not charged.

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

company_dossier_batchCompany dossiers in batch (portfolio screen)A
Read-onlyIdempotent
Inspect

Answers "Which of my holdings has a problem?" or "Screen these tickers for red flags before the open". Give up to 10 tickers, CIKs or company names. Returns a ranking (most red flags first, then amber) with each company's flags and one-paragraph summary, and every company's full dossier: profile, four fiscal years of financials and the latest quarter, the last five 8-K events, insider buying and selling over the latest 10 Form 4s, the latest 10-K/10-Q, and flags (RED: restatements, delisting notices, bankruptcy, late 10-Ks; AMBER: auditor changes, cybersecurity incidents, impairments, late 10-Qs, losses, cash burn, negative equity, shrinking revenue; GREEN: profitable growth, insider buying), each citing its filing. Priced by size: $0.03 for the first company and $0.025 for each further one (2 companies $0.055, 3 $0.08, 4 $0.105, 5 $0.13), capped at $0.15 for 6 to 10, always less than separate company_dossier calls. The 402 answer quotes the exact price for your list. Companies that cannot be found are listed in failed; if none can, you are not charged. You are only charged when a result is returned: invalid input (400) and upstream failures (4xx/5xx) are not settled. Costs $0.03 to $0.15 USDC per call via x402. Paid per call with x402 inside MCP (see the server instructions).

NameRequiredDescriptionDefault
viaNoOptional: the tool whose next_calls suggested this call (filled in for you).
tickersYesUp to 10 companies: tickers (e.g. "NVDA"), CIKs (e.g. 320193) or exact company names.

TDQS

A4.6/5.0
Behavior5/5

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

Goes far beyond the readOnly/idempotent/openWorld annotations: it discloses the ranking order (red before amber), the exact dossier contents, the billing rules (only settled when a result returns; 400/4xx/5xx not charged; unfindable firms go to `failed`; no charge if none found), and the 402 price-quote behavior. This is exactly the behavioral context an agent needs before a paid call.

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

Conciseness4/5

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

Front-loads the use case and output shape before cost, which is good ordering, and every sentence carries information. It is nonetheless long and repeats the price structure twice (the enumerated per-size figures and again as 'Costs $0.03 to $0.15 USDC per call'), which slightly dilutes density.

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

Completeness5/5

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

With no output schema, the description fully covers returns: ranking, per-company flags and summary, the dossier contents, and the `failed` bucket. Billing, failure handling, and payment mechanism are all addressed, leaving nothing an agent needs before calling.

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

Parameters3/5

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

Schema coverage is 100% and the description largely restates the schema ('up to 10 tickers, CIKs or company names'), adding no format or edge-case detail beyond it. The `via` param is already documented in the schema. Baseline 3 is appropriate when the schema carries the full burden.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

States a specific verb and resource (batch company dossiers/portfolio red-flag screen) and immediately differentiates itself from the sibling company_dossier by noting it is 'always less than separate company_dossier calls'. The quoted use-case questions pin down exactly what job it does.

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

Usage Guidelines5/5

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

Front-loads two concrete when-to-use scenarios (portfolio problem screening, pre-open red-flag triage) and explicitly compares itself to the single-company alternative on cost. The 'up to 10 tickers' bound plus the price advantage make the routing decision unambiguous.

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

company_profileCompany profileA
Read-onlyIdempotent
Inspect

Answers "Who is behind stripe.com?", "What does this company do, where is it based and who runs it?" or "Is it public, and what is its ticker?". Give a website domain (or any URL), a company name, a ticker or a CIK. Returns one profile combining: SEC EDGAR for public companies (legal name, tickers, exchanges, CIK, SIC industry, state of incorporation, fiscal year end, business address, phone, filer category, former names), Wikidata (founded, founders, CEO, headquarters, country, employees with date, industries, official website), a short Wikipedia description (with its URL for attribution), and the domain's email provider (from MX records) and registration date and registrar (RDAP). Works for private companies too (Wikidata and the domain). sources says which sources answered. For public companies, next_calls lead to their financials, 8-K events and insider trades. A name matching several SEC registrants returns the candidates, free; no company found is a 404, free. You are only charged when a result is returned: invalid input (400) and upstream failures (4xx/5xx) are not settled. Costs $0.005 USDC per call via x402. Paid per call with x402 inside MCP (see the server instructions).

NameRequiredDescriptionDefault
cikNoSEC Central Index Key, e.g. 320193. Use this, `ticker` or `company`.
viaNoOptional: the tool whose next_calls suggested this call (filled in for you).
domainNoThe company's website domain or any URL on it, e.g. "stripe.com". Use this, `company`, `ticker` or `cik`.
tickerNoUS stock ticker, e.g. AAPL, MSFT, BRK-B. Use this, `cik` or `company`.
companyNoCompany name, e.g. "Apple" or "Coca-Cola". Use this, `ticker` or `cik`; a name matching several companies returns their tickers, free.

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already declare read-only, idempotent, open-world and non-destructive, so the bar is lower; the description nonetheless adds substantial behavioral detail beyond them — how `sources` reports which providers answered, the free 404/name-collision cases, the non-settled 400/4xx/5xx cases, and the $0.005 USDC x402 charge only on returned results.

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

Conciseness4/5

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

Front-loads the user-facing purpose before the dense source inventory, and every sentence carries information (inputs, return composition, error/billing behavior). It is on the long side for a single-paragraph description, but the length is justified by the tool's complexity.

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

Completeness5/5

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

With no output schema, the description carries the return-value burden and does so fully: it enumerates the EDGAR, Wikidata, Wikipedia, MX and RDAP fields and explains `sources`. Combined with its billing and error disclosure, an agent has everything needed to call and interpret it.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds meaning: any URL on the domain is acceptable, not just the bare domain, and a `company` name matching several SEC registrants returns candidates (free) rather than failing. That clarifies behavior the schema's 'Use this, `ticker` or `company`' notes do not.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

States a specific verb+resource and even frames it as the literal questions it answers ('Who is behind stripe.com?', 'Is it public, and what is its ticker?'). The input forms (domain/name/ticker/CIK) and the returned content are enumerated, letting an agent distinguish it from sibling tools like domain_enrich or company_dossier.

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

Usage Guidelines4/5

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

Gives clear when-to-use context: works for private companies too, and for public companies 'next_calls lead to their financials, 8-K events and insider trades', which routes the agent onward. It does not, however, explicitly contrast itself against close siblings such as company_dossier, domain_enrich or counterparty_check.

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

counterparty_checkCounterparty check (KYB / vendor / payee vetting)A
Read-onlyIdempotent
Inspect

Answers "Is it safe to pay this vendor?", "Can I onboard this customer?" or "Who is behind this payTo address?". Give a company or person name, their domain (website or email address) and/or the wallet you would pay. One call runs, side by side: an OFAC sanctions screen of the name and wallet (SDN and Consolidated lists, fuzzy name matching), the company profile (public or private: industry, HQ, founded, employees, tickers), the domain's age, email setup (MX, DMARC) and website, and an on-chain wallet risk check on Base or Ethereum (sanctioned controllers, account type, activity, balance). Returns verdict (block / review / clear), a one-line summary, every reason with the check it came from, and the facts behind them. A check that cannot reach its source is reported as failed instead of failing the call. Replaces sanctions_screen, company_profile, domain_enrich and wallet_risk_check (four calls) for vendor onboarding, KYB, payee vetting before an x402 or USDC payment, and fraud screening. A screening aid, not legal advice. You are only charged when a result is returned: invalid input (400) and upstream failures (4xx/5xx) are not settled. Costs $0.02 USDC per call via x402. Paid per call with x402 inside MCP (see the server instructions).

NameRequiredDescriptionDefault
viaNoOptional: the tool whose next_calls suggested this call (filled in for you).
nameNoThe company or person, e.g. "Acme Robotics Inc." Screened against OFAC and looked up as a company.
chainNoChain of `wallet`: "base" (default) or "ethereum".base
domainNoTheir website or email domain, e.g. "acme.com" (a URL or an email address is accepted).
walletNoThe EVM address you would pay or receive from, e.g. an x402 payTo.

TDQS

A4.8/5.0
Behavior5/5

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

Annotations cover the read-only/idempotent/non-destructive profile, but the description adds substantially more: cost ($0.02 USDC via x402), the settlement rule (only charged when a result is returned; 400 and upstream 4xx/5xx are not settled), graceful degradation (a source that can't be reached is reported as failed rather than failing the call), and the 'screening aid, not legal advice' caveat. This is unusually rich behavioral disclosure.

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

Conciseness4/5

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

Front-loaded with the three guiding questions, then what the call runs, then return shape, then alternatives and pricing. It is long and dense, but nearly every clause carries distinct information (sources screened, cost, settlement, failure semantics). Minor compression possible in the source enumeration.

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

Completeness5/5

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

No output schema exists, and the description fully covers return values (verdict block/review/clear, one-line summary, per-reason provenance, underlying facts). Combined with the failure-handling and billing notes, an agent has everything needed to call and interpret it.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds real meaning: it clarifies that name is both OFAC-screened and used for a company lookup, that domain accepts a URL or email, and that wallet is the pay/receive address (e.g. an x402 payTo). The combination logic ('and/or') for otherwise-optional parameters is genuinely useful beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

Opens with three concrete user questions ("Is it safe to pay this vendor?", onboarding, payTo attribution) and states exactly what one call runs: OFAC screening, company profile, domain/email checks, and on-chain wallet risk. It explicitly names the four siblings it replaces (sanctions_screen, company_profile, domain_enrich, wallet_risk_check), so an agent can distinguish it without opening a schema.

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

Usage Guidelines5/5

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

Gives explicit when-to-use scenarios (vendor onboarding, KYB, payee vetting before x402 or USDC payment, fraud screening) and names the exact alternative tools it consolidates. The 'and/or' combination of name/domain/wallet is described, so the agent knows how to compose inputs.

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

crypto_tax_ledgerCrypto tax ledger for a wallet (CPA-ready)A
Read-onlyIdempotent
Inspect

Answers "What crypto transactions did this wallet make in 2026?", "Give my accountant my crypto activity" or "Which of my transfers are taxable?". Give a wallet address on Base (default) or Ethereum and a tax year (or from/to dates). Returns every token, coin and NFT transfer in the period from the wallet's full on-chain history, each labeled with its kind (received, sent, swap, self-transfer, NFT in/out) and how a CPA usually treats it (income, disposal, trade, not taxable), the amount in or out, the counterparty, the transaction link and the USD value for dollar stablecoins; totals received, sent and net per asset; counts; and, with include_csv, the same rows as CSV for a spreadsheet or tax software. Swaps are flagged as taxable disposals. A record for preparing taxes, not tax advice; gains need cost basis and prices. You are only charged when a result is returned: invalid input (400) and upstream failures (4xx/5xx) are not settled. Costs $0.02 USDC per call via x402. Paid per call with x402 inside MCP (see the server instructions).

NameRequiredDescriptionDefault
toNoEnd date (inclusive, UTC), instead of `year`.
viaNoOptional: the tool whose next_calls suggested this call (filled in for you).
fromNoStart date (inclusive, UTC), instead of `year`.
yearNoTax year (calendar, UTC). Default: the current year. Use `from`/`to` for another period.
chainNo"base" (default) or "ethereum".base
walletYesThe wallet to report on, e.g. 0x6847231bD28E16A0A57c59793f6B8BD8CC0043aC.
include_csvNoAlso return the rows as CSV text, ready for a spreadsheet or a CPA.

TDQS

A4.4/5.0
Behavior5/5

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

Annotations already declare readOnly/idempotent/non-destructive/openWorld, and the description adds substantial extra context: cost ($0.02 USDC per call via x402), the billing rule that invalid input (400) and 4xx/5xx failures are not settled, the full row shape returned, and the disclaimer that gains need cost basis. This is well beyond what the annotations convey.

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

Conciseness4/5

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

Front-loads the user questions and then the required inputs and return contents, so an agent gets the gist immediately. It is dense and slightly long, with some repetition around the tax-advice caveat and CSV output, but nearly every sentence carries usable information.

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

Completeness5/5

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

There is no output schema, so the description must describe return values, and it does so thoroughly: per-transfer labels, CPA treatment categories, counterparty, tx link, stablecoin USD value, per-asset totals, counts, and optional CSV. Combined with schema-complete parameters, an agent has everything needed to call and interpret it.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents wallet, chain, year, from, to, include_csv, and via. The description reinforces the base default and the year-vs-from/to alternation but adds no format, constraint, or edge-case meaning beyond the schema, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

States a specific verb and resource (crypto transactions for a wallet in a tax year) and frames it around three concrete user questions. An agent can distinguish it from siblings like wallet_risk_check or token_risk_check because it is clearly the tax/ledger reporting tool, not a risk assessment.

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

Usage Guidelines4/5

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

The opening example questions make the intended use cases explicit (period activity, accountant export, taxable transfer identification), and the 'record for preparing taxes, not tax advice' caveat sets a scope boundary. It never explicitly names an alternative sibling or says when not to use it, so it stops short of a 5.

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

daily_briefingDaily market briefing: SEC red flags, earnings, IPOs, macroA
Read-only
Inspect

Answers "What happened in the markets I should know about?", "Give me a morning briefing" or "Anything bad filed about my holdings overnight?". One call combines: SEC alerts filed in the last 24 hours, most serious first (restatements, auditor changes, delisting notices, late filings, cyber incidents, insider purchases of $100K+); earnings releases from the latest day with any, with headline figures; IPO registrations and pricings this week (SPACs left out); and US Treasury yields, CPI, unemployment, payrolls and Fed funds. Give tickers to narrow alerts and earnings to a watchlist, or include to pick sections. Starts with a few plain-sentence summary lines. For one every morning on your webhook, use daily_briefing_subscription. You are only charged when a result is returned: invalid input (400) and upstream failures (4xx/5xx) are not settled. Costs $0.025 USDC per call via x402. Paid per call with x402 inside MCP (see the server instructions).

NameRequiredDescriptionDefault
viaNoOptional: the tool whose next_calls suggested this call (filled in for you).
includeNoSections to include: alerts (SEC red flags and insider buys), earnings, ipos, economy. Default: all four.
tickersNoA watchlist: SEC alerts and earnings only for these tickers. Default: the whole market.

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already declare read-only/open-world, but the description adds substantial behavior: ordering ('most serious first'), inclusion thresholds ('$100K+ insider purchases'), exclusions ('SPACs left out'), and a full billing model ('charged only when a result is returned: invalid input (400) and upstream failures (4xx/5xx) are not settled', $0.025 USDC via x402). The per-call charge is consistent with idempotentHint=false.

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

Conciseness4/5

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

Dense and front-loaded with the user-intent phrasings before the mechanics. Slightly long for a single paragraph, and the x402/price sentence partially duplicates server-level instructions, but nearly every clause carries operative information.

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

Completeness5/5

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

With no output schema, the description compensates by describing the return ('Starts with a few plain-sentence `summary` lines') and the four sections with their content. Combined with defaults and the subscription pointer, an agent has everything needed to call and interpret it.

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

Parameters3/5

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

Schema description coverage is 100% and the schema already documents each parameter, its defaults, and its effects. The description's parameter sentences ('narrow alerts and earnings to a watchlist', 'pick sections') largely restate that, so the baseline 3 applies rather than true added value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

States a specific aggregated resource ('One call combines') and enumerates exactly what it pulls together: recent SEC alerts, latest earnings, weekly IPOs, and macro indicators. An agent can distinguish it from siblings like sec_earnings_today, sec_ipo_filings, or economic_indicators without inspecting schemas.

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

Usage Guidelines5/5

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

Opens with the concrete questions it answers ('What happened in the markets...', 'Give me a morning briefing'), explains how to narrow via tickers/include, and explicitly names the alternative for recurring use: 'For one every morning on your webhook, use daily_briefing_subscription.' Timing and payment conditions are also stated.

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

daily_briefing_subscriptionDaily market briefing pushed to your webhook (30 days)AInspect

Answers "Send me a market briefing every morning" without scheduling anything. One payment covers 30 days: each day at delivery_hour_utc (default 11, i.e. 7am New York, before the US open) the same briefing daily_briefing returns is POSTed to your HTTPS webhook_url as JSON ({type: "briefing", briefing: {...}}), signed with HMAC-SHA256 using the signing_secret returned once at signup. The first briefing arrives within minutes of subscribing. Narrow it with a tickers watchlist or include sections. Failed deliveries are retried. The webhook must answer a test ping with 2xx or you are not charged. Extend with renew_subscription_id (+30 days); check deliveries or cancel with the free sec_alert_subscription_status. You are only charged when a result is returned: invalid input (400) and upstream failures (4xx/5xx) are not settled. Costs $3.00 USDC per 30 days via x402 (30 briefings for the price of 120 one-off calls). Paid per call with x402 inside MCP (see the server instructions).

NameRequiredDescriptionDefault
viaNoOptional: the tool whose next_calls suggested this call (filled in for you).
includeNoSections to include: alerts (SEC red flags and insider buys), earnings, ipos, economy. Default: all four.
tickersNoA watchlist: SEC alerts and earnings only for these tickers. Default: the whole market.
webhook_urlNoYour HTTPS endpoint. Each morning's briefing is POSTed to it as JSON, signed (see `verify`). It must answer a test ping with 2xx, or you are not charged.
delivery_hour_utcNoThe hour (UTC) the briefing is sent each day. Default 11 (7am New York, before the US market opens). The first one is sent within minutes of subscribing.
renew_subscription_idNoExtend this briefing subscription by 30 days instead of creating one (its webhook and settings stay).

TDQS

A4.6/5.0
Behavior4/5

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

Goes well beyond the annotations (readOnlyHint=false, openWorldHint=true, idempotentHint=false, destructiveHint=false) by disclosing the billing model ($3 USDC/30 days), that invalid input and 4xx/5xx are not settled, retry behavior on failed deliveries, the HMAC-SHA256 signing scheme, the test-ping/2xx precondition for charging, and the near-immediate first delivery. The only gap is what happens if the webhook later goes permanently dead or whether the secret can be rotated.

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

Conciseness4/5

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

Front-loaded with the user-facing use case and then dense with operational detail, so nearly every sentence earns its place. It is on the long side and repeats the test-ping/2xx condition that already appears in the webhook_url schema description.

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

Completeness5/5

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

For a paid, mutating, zero-required-parameter subscription tool with no output schema, it covers delivery cadence, payload shape ({type: 'briefing', briefing: {...}}), signing, retries, charging semantics, extension, and cancellation. Nothing an agent needs to invoke or explain this call correctly is missing.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds semantic framing the schema does not: that delivery_hour_utc=11 is '7am New York, before the US open', that tickers acts as a watchlist narrowing SEC alerts and earnings, and that renew_subscription_id preserves the existing webhook and settings. It stops short of explaining the returned signing_secret's use beyond a pointer to `verify`.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

States a specific verb+resource: subscribe a webhook to receive the daily market briefing for 30 days. It explicitly names the sibling it mirrors ('the same briefing daily_briefing returns') and the free management tool, so an agent can distinguish it from daily_briefing and sec_alert_subscription without opening schemas.

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

Usage Guidelines5/5

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

Opens with the exact user intent it serves ('Send me a market briefing every morning') and names alternatives for each related need: daily_briefing for one-off reads, sec_alert_subscription_status to check or cancel, renew_subscription_id to extend. Both when-to-use and when-not are covered.

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

domain_enrichDomain email and web profileA
Read-only
Inspect

Answers "Who hosts this company's email, and is it configured properly?" and "Which SaaS tools does this company use?". Profiles a domain from live DNS and its website: MX records and the inferred email provider (Google Workspace, Microsoft 365, …), SPF and DMARC configuration and policy, services the domain has verified ownership with (from TXT records: Google, Microsoft, Stripe, Atlassian, …), whether the website is reachable over HTTPS, and stack and security headers (Server, X-Powered-By, HSTS, CSP). Use it for lead enrichment, email deliverability checks, vendor due diligence or security reviews. You are only charged when a result is returned: invalid input (400) and upstream failures (4xx/5xx) are not settled. Costs $0.004 USDC per call via x402. Paid per call with x402 inside MCP (see the server instructions).

NameRequiredDescriptionDefault
viaNoOptional: the tool whose next_calls suggested this call (filled in for you).
domainYesDomain to profile, e.g. example.com. A full URL is accepted; its hostname is used.

TDQS

A4.3/5.0
Behavior5/5

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

Annotations already declare readOnly/openWorld/non-destructive, but the description adds genuinely new behavioral context beyond them: live-lookup semantics, the billing model ('charged only when a result is returned'), the non-settlement of 400/4xx/5xx failures, and the exact cost ($0.004 USDC via x402). That payment/failure transparency is high-value information an agent needs before calling.

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

Conciseness4/5

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

Front-loads what the tool does, then moves through outputs, use cases, billing, and cost with no filler. The two quoted framing questions are slightly verbose but earn their place by making the use cases concrete.

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

Completeness4/5

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

For a read-only profiling tool with full schema coverage and no output schema, the description covers what is profiled, why to use it, and payment behavior. It stops short of describing return structure/pagination, but with no output schema declared this is a minor gap rather than a blocking one.

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

Parameters3/5

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

Schema coverage is 100%, so both parameters (domain and via) are fully documented in the schema, including that a full URL is accepted and only its hostname is used. The description adds no further parameter detail, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

States a specific verb and resource ('Profiles a domain from live DNS and its website') and then enumerates exactly what is extracted: MX records, inferred email provider, SPF/DMARC, verified services from TXT, HTTPS reachability, and stack/security headers. An agent can distinguish this domain-level DNS/web profiling from siblings like company_profile or email_verify without opening a schema.

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

Usage Guidelines4/5

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

Explicitly lists when to use it: 'lead enrichment, email deliverability checks, vendor due diligence or security reviews.' This is clear usage context, but no alternative siblings are named or excluded, and there is no guidance on when a different tool would be preferable.

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

economic_indicatorsUS economic indicatorsA
Read-only
Inspect

Answers "What is the 10-year Treasury yield?", "Is the yield curve inverted?", "What is inflation now?", "What is the unemployment rate?" and "Where is the fed funds rate?". Returns a snapshot of key US macro indicators from official public-domain sources: the U.S. Treasury's daily par yield curve (1 month to 30 years, 10y-2y spread, inversion), the Bureau of Labor Statistics' CPI and core CPI (year-over-year %), unemployment rate and nonfarm payrolls (level and monthly change), and the New York Fed's effective federal funds rate and target range. Optionally up to 24 months of monthly history. Choose indicators to keep the answer short. Sources are cached (yields and fed funds 1 hour, BLS 12 hours); a source that does not answer is listed in unavailable. If none answers, you are not charged. You are only charged when a result is returned: invalid input (400) and upstream failures (4xx/5xx) are not settled. Costs $0.003 USDC per call via x402. Paid per call with x402 inside MCP (see the server instructions).

NameRequiredDescriptionDefault
viaNoOptional: the tool whose next_calls suggested this call (filled in for you).
indicatorsNoWhich to return: treasury_yields, inflation, employment, fed_funds. Default: all four.
history_monthsNoAlso return this many months of monthly history (inflation, employment, month-end 10-year and 2-year yields). Default 0.

TDQS

A4.4/5.0
Behavior5/5

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

Beyond the annotations (readOnly, openWorld, non-idempotent, non-destructive), the description discloses rich behavior: per-source cache TTLs (1h for yields/fed funds, 12h for BLS), an `unavailable` field for non-responding sources, and precise billing semantics including that invalid input (400) and upstream failures are not settled. This is exactly the extra operational context annotations cannot carry.

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

Conciseness4/5

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

Dense and front-loaded: it leads with the questions answered and the returned series before moving to caching and billing. The question list is slightly verbose but earns its place as use-case framing, and nothing reads as filler.

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

Completeness5/5

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

For a paid, multi-source data tool with no output schema, the description is complete: it describes the return contents, the optional history, unavailability handling, caching, and the x402 cost/settlement rules. An agent has everything needed to call it and anticipate the response.

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

Parameters3/5

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

Schema description coverage is 100%, so the parameters (via, indicators, history_months) are already fully documented in the schema. The description restates the indicators and the optional 24-month history without adding format or usage detail beyond what the schema provides, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

The description names a specific resource (key US macro indicators) and enumerates exactly what is returned: the Treasury par yield curve, BLS CPI/core CPI, unemployment and nonfarm payrolls, and the NY Fed fed funds rate. It even frames the tool as answering concrete questions, so an agent can instantly tell it apart from the SEC/filing siblings that dominate the namespace.

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

Usage Guidelines4/5

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

Usage context is clear: the tool exists to answer macro-data questions, and 'Choose indicators to keep the answer short' tells the agent how to scope calls. However, it never states when NOT to use it or names a sibling alternative for related financial data, 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.

email_verifyEmail address verificationA
Read-onlyIdempotent
Inspect

Answers "Is this email address valid?", "Will mail to it bounce?" and "Is it a throwaway, a shared inbox or a typo?" before an agent sends mail or saves a lead. Checks, without sending mail: syntax, whether the domain accepts email (MX records, an A/AAAA record as implicit MX, or a null MX that refuses all mail), disposable/temporary providers (a maintained list of thousands of domains), free webmail (Gmail, Outlook, Yahoo, ...), role accounts (info@, support@, noreply@), likely misspellings of big providers with a corrected suggestion (gmial.com → gmail.com), and the domain's SPF and DMARC records and email provider. Returns a verdict (deliverable, risky, undeliverable), a 0-100 score and the reasons. The mailbox itself is not probed (no SMTP), so a catch-all domain accepts any name. An invalid address is still an answer (undeliverable); only a DNS failure is an error, not charged. You are only charged when a result is returned: invalid input (400) and upstream failures (4xx/5xx) are not settled. Costs $0.001 USDC per call via x402. Paid per call with x402 inside MCP (see the server instructions).

NameRequiredDescriptionDefault
viaNoOptional: the tool whose next_calls suggested this call (filled in for you).
emailYesThe address to check, e.g. "jane@acme.com" (a "Jane Doe <jane@acme.com>" form is accepted).

TDQS

A4.4/5.0
Behavior5/5

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

Beyond the readOnly/idempotent annotations, it discloses key behavioral traits: no SMTP probing, catch-all domains accept any name, an invalid address is still a valid answer, only DNS failures error out, billing semantics (charged only on a returned result; 400/4xx/5xx are not settled), and the $0.001 x402 cost. This is substantially more than the annotations provide.

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

Conciseness4/5

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

The purpose is front-loaded as three crisp questions followed by a scannable list of checks. It is dense and mostly earns its length, though the billing rule is stated twice ("not charged" vs. the explicit 400/4xx/5xx carve-out), a minor redundancy.

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

Completeness5/5

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

With no output schema, the description carries the return contract itself: a verdict (deliverable/risky/undeliverable), a 0-100 score, and reasons. Combined with the check list, billing and cost disclosure, an agent has everything needed to invoke and interpret it.

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

Parameters3/5

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

Schema description coverage is 100%, so both `email` and `via` are fully documented in the schema itself, including the accepted 'Jane Doe <jane@acme.com>' form. The description adds no parameter-level detail beyond the schema, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

The description opens with the concrete questions it answers ("Is this email address valid?", "Will mail to it bounce?", "Is it a throwaway...?") and then enumerates the exact checks performed. An agent immediately knows this is email-address validation, distinct from 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.

Usage Guidelines4/5

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

It states the triggering context clearly — "before an agent sends mail or saves a lead" — which tells the agent when to call it. It does not name alternative tools or exclusions, but no sibling covers the same ground, so the guidance is sufficient though not exhaustive.

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

free_sampleFree sample of any paid toolA
Read-onlyIdempotent
Inspect

Free, no payment needed. Returns a paid tool's real, live answer to its documented example input (refreshed every 5 minutes to 6 hours depending on the tool), the price of a call with your own input, and where to send it. With no tool, lists every paid tool with the URL of its sample. Use it to check a tool's output format and quality before paying, or to test an integration. Also answers GET, e.g. /api/v1/samples?tool=token_risk_check. Rate-limited per client.

NameRequiredDescriptionDefault
viaNoOptional: the tool whose next_calls suggested this call (filled in for you).
toolNoThe paid tool to sample, by name or path, e.g. "token_risk_check" or "email-verify". Leave out to list every tool with its sample.

TDQS

A4.6/5.0
Behavior5/5

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

Goes well beyond the annotations by disclosing sample freshness (refreshed every 5 minutes to 6 hours depending on the tool), a per-client rate limit, that pricing and payment routing are included, and that it also answers GET. These are exactly the operational traits annotations cannot convey, and they do not conflict with readOnly/idempotent hints.

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

Conciseness4/5

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

Front-loaded with the essential behavior, then the alternate listing mode, then usage. The GET URL example is the only arguably extraneous element, though it is useful for integration testing. Overall tight for the amount of behavior it must convey.

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

Completeness5/5

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

With no output schema, the description carries the full burden and does so: it enumerates what comes back (the sample answer, the price of a call with your input, where to send it, or a list of tools with sample URLs). Combined with refresh cadence and rate limits, an agent has everything needed to call and interpret it.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds real meaning: omitting `tool` switches the tool into a full listing mode with sample URLs, which the schema only implies via optionality. `via` is left to the schema, which already explains it is auto-filled.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

States a specific verb and resource: it returns a paid tool's live sample answer to its documented example input, plus pricing and payment destination. It also declares the alternate no-argument behavior (list every paid tool with its sample URL), which cleanly separates it from every paid sibling it samples.

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

Usage Guidelines4/5

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

Gives explicit when-to-use cases: checking output format and quality before paying, or testing an integration. It also explains the no-`tool` listing mode. It stops short of stating when not to use it (e.g. for production/real work, where you should pay), so it is clear context without exclusions.

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

hvac_coil_loadHVAC coil load and air mixingA
Read-onlyIdempotent
Inspect

Answers "What is the cooling coil load for 10,000 CFM from 80/67 °F to 55/54 °F?", "What leaves a coil that removes 270 MBH sensible and 60 MBH latent?" and "What is the mixed air with 20% outdoor air?" for AHU and RTU selection, coil schedules and design checks. Give the airflow and either the entering and leaving air (any two properties each) to get the sensible, latent and total loads, tons, sensible heat ratio, condensate rate and both full state points; or one state plus the loads to solve the other (cooling or heating). The entering air can be mixed from outdoor and return air states with an outdoor air % or airflow; or, given the mixed air, the outdoor air % is back-calculated. Standard-air equations (Qs = 1.08·CFM·ΔT, Ql = 4840·CFM·ΔW, Qt = 4.5·CFM·Δh as a cross-check), ASHRAE psychrometrics at the site elevation, IP (CFM, MBH) or SI (L/s, kW). Flags impossible (supersaturated) results. Every result includes steps with the equations and numbers. You are only charged when a result is returned: invalid input (400) and upstream failures (4xx/5xx) are not settled. Costs $0.002 USDC per call via x402. Paid per call with x402 inside MCP (see the server instructions).

NameRequiredDescriptionDefault
viaNoOptional: the tool whose next_calls suggested this call (filled in for you).
modeNoWhen solving a state from loads: cooling (default) removes heat, heating adds it. Detected automatically when both states are given.
unitsNo"IP" (°F, CFM, in, BTU) or "SI" (°C, L/s, mm, kW). Default IP. Applies to inputs and results.IP
airflowYesTotal airflow through the coil: CFM (IP) or L/s (SI).
leavingNoAir leaving the coil: two properties, like `entering`.
enteringNoAir entering the coil: exactly two of dry_bulb, wet_bulb, dew_point, relative_humidity (%), humidity_ratio (lb/lb or g/kg), enthalpy (BTU/lb or kJ/kg), grains (gr/lb), in `units`. With outdoor_air and return_air but no outdoor air amount, it is the mixed air and the outdoor air % is back-calculated.
elevationNoSite elevation, ft (IP) or m (SI); sets the atmospheric pressure. Default 0 (sea level).
return_airNoReturn air (two properties, like `entering`).
latent_loadNoCoil latent load, MBH or kW (default 0 when only sensible_load is given).
outdoor_airNoOutdoor air (two properties, like `entering`), mixed with return_air ahead of the coil.
sensible_loadNoCoil sensible load, MBH (IP) or kW (SI): with one state, solves the other.
outdoor_airflowNoOutdoor airflow, CFM or L/s (instead of outdoor_air_percent).
outdoor_air_percentNoOutdoor air share of the total airflow, %.

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already establish readOnly/idempotent/non-destructive, and the description adds substantial extra behavior: it flags impossible supersaturated results, returns `steps` with equations, applies ASHRAE psychrometrics at site elevation, and details the x402 billing semantics including when charges do and do not apply.

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

Conciseness3/5

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

Informative and front-loaded with example questions, but the billing/elevation/units detail in the back half is dense and somewhat overlong for a description intended for tool selection.

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

Completeness5/5

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

For a complex 13-param tool with nested state objects and no output schema, the description covers inputs, outputs (loads, tons, SHR, condensate, state points, steps), error behavior, units and billing—everything an agent needs to call it correctly.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3, but the description adds value by explaining the two-property state rule, the mixed-air back-calculation of outdoor air %, and the cooling/heating mode behavior beyond what field descriptions state.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

The description states a specific verb+resource (cooling coil load / air mixing) and opens with three concrete example questions that map directly to the tool's function, making its scope unambiguous and distinguishing it from hvac_psychrometrics and hvac_duct_size.

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

Usage Guidelines4/5

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

It clearly states the required inputs ('Give the airflow and either the entering and leaving air...') and gives context for AHU/RTU selection, coil schedules and design checks. It doesn't explicitly say when to prefer hvac_psychrometrics alone, but the usage context is strong.

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

hvac_duct_sizeHVAC duct sizing and friction lossA
Read-onlyIdempotent
Inspect

Answers "What size duct for 1,000 CFM at 0.08 in. w.g./100 ft?", "What is the velocity and friction in a 24×12 duct at 2,000 CFM?" and "What height do I need with a 10 in depth limit?" for duct design and checking. Give any two of a duct size (round diameter, or rectangular width × height), airflow, velocity and friction rate (equal-friction sizing); a single width or height is held as a fixed side. Returns the exact round diameter and a rectangular equivalent (ASHRAE/Huebscher equivalent diameter for equal friction, or equal area for a velocity design), the nearest standard round and rectangular sizes with the velocity and friction of each, the friction loss per 100 ft (Darcy-Weisbach with Colebrook-White, galvanized steel, standard air), velocity pressure, Reynolds number, and design checks for velocity, friction and aspect ratio. IP (in, CFM, FPM) or SI (mm, L/s, m/s, Pa/m, metric sizes). Every result includes steps with the equations and numbers. You are only charged when a result is returned: invalid input (400) and upstream failures (4xx/5xx) are not settled. Costs $0.002 USDC per call via x402. Paid per call with x402 inside MCP (see the server instructions).

NameRequiredDescriptionDefault
viaNoOptional: the tool whose next_calls suggested this call (filled in for you).
unitsNo"IP" (°F, CFM, in, BTU) or "SI" (°C, L/s, mm, kW). Default IP. Applies to inputs and results.IP
widthNoRectangular width: in or mm. With height, the duct size; alone, a fixed side (e.g. a ceiling depth) the other side is solved for.
heightNoRectangular height: in or mm.
airflowNoAirflow: CFM (IP) or L/s (SI).
diameterNoRound duct diameter: in (IP) or mm (SI).
velocityNoAir velocity: FPM (IP) or m/s (SI).
friction_rateNoFriction loss: in. w.g. per 100 ft (IP, typically 0.05-0.15) or Pa/m (SI, typically 0.4-1.2). With airflow, this is equal-friction sizing.

TDQS

A4.6/5.0
Behavior5/5

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), but the description adds the billing model ($0.002 USDC per call via x402), the settlement edge cases (400 and 4xx/5xx not charged), the physics assumptions (Darcy-Weisbach/Colebrook-White, galvanized steel, standard air), and per-result 'steps' output. This is rich context well beyond the annotations.

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

Conciseness4/5

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

Dense and front-loaded with the example questions that anchor the tool's purpose, then inputs, outputs, units and pricing in order. It is long, and the units enumeration partly repeats the schema, but nearly every sentence carries information an agent needs.

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

Completeness5/5

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

Despite eight optional parameters and no output schema, the description fully specifies the return payload (exact diameter, rectangular equivalent, nearest standard sizes, friction loss, velocity pressure, Reynolds number, design checks, and 'steps') plus unit systems. Nothing needed to call it correctly is missing.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description encodes cross-parameter constraints the schema cannot express: 'any two of a duct size, airflow, velocity and friction rate', and the fixed-side behavior for a single width/height. These combination rules materially affect a correct call.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

Names a specific computation (duct sizing and friction loss) and leads with three concrete example questions that define the resource precisely. It is trivially distinguishable from siblings hvac_coil_load and hvac_psychrometrics, which cover different HVAC domains.

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

Usage Guidelines4/5

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

The description states 'for duct design and checking' and, more usefully, explains the input-combination rule: give any two of size/airflow/velocity/friction rate, and that a lone width or height is held as a fixed side. It stops short of explicit when-not guidance or naming which sibling to use for related HVAC questions.

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

hvac_psychrometricsPsychrometric air properties (HVAC)A
Read-onlyIdempotent
Inspect

Answers "What is the dew point / enthalpy / humidity ratio of 95 °F air at 75 °F wet bulb?" and "What RH is 75 °F air with a 55 °F dew point in Denver?" for HVAC design, commissioning, energy and comfort work. From any two of dry bulb, wet bulb, dew point, relative humidity, humidity ratio, enthalpy or grains, returns the full state point: all seven plus specific volume, density and vapor pressure, at any site elevation (atmospheric pressure), in IP (°F, BTU/lb, gr/lb) or SI (°C, kJ/kg, g/kg). Uses the ASHRAE Handbook—Fundamentals (2021) Ch. 1 equations (Hyland-Wexler saturation pressure, ice below freezing) and is cross-checked against PsychroLib to within 0.02 °F. Every result includes steps: each equation with the numbers put into it and its ASHRAE reference, so the work can be checked or pasted into a calc package. Impossible states (wet bulb above dry bulb, RH over 100%) are errors and are not charged. You are only charged when a result is returned: invalid input (400) and upstream failures (4xx/5xx) are not settled. Costs $0.002 USDC per call via x402. Paid per call with x402 inside MCP (see the server instructions).

NameRequiredDescriptionDefault
viaNoOptional: the tool whose next_calls suggested this call (filled in for you).
unitsNo"IP" (°F, CFM, in, BTU) or "SI" (°C, L/s, mm, kW). Default IP. Applies to inputs and results.IP
grainsNoMoisture in grains per lb dry air (gr/lb), in either unit system (7,000 gr = 1 lb).
dry_bulbNoDry-bulb temperature, °F (IP) or °C (SI).
enthalpyNoEnthalpy: BTU per lb dry air (IP) or kJ/kg dry air (SI).
wet_bulbNoWet-bulb temperature, °F or °C.
dew_pointNoDew-point temperature, °F or °C.
elevationNoSite elevation, ft (IP) or m (SI); sets the atmospheric pressure. Default 0 (sea level).
humidity_ratioNoHumidity ratio: lb water per lb dry air (IP, e.g. 0.0100) or g/kg (SI, e.g. 10.0).
relative_humidityNoRelative humidity, % (0-100).

TDQS

A4.6/5.0
Behavior5/5

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

Beyond the read-only/idempotent annotations, it discloses the billing model ($0.002 USDC via x402), exactly when a charge occurs versus when it does not (400 and 4xx/5xx are unsettled), the validation behavior (impossible states are errors), and the returned `steps` audit trail. This is unusually rich 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.

Conciseness4/5

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

The description opens with the core question framing, then moves through inputs, outputs, equations, validation and billing in a logical order. It is dense and long, but nearly every sentence provides distinct, useful information rather than padding.

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

Completeness5/5

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

With no output schema, the description carries the return-value burden and discharges it fully: it enumerates all seven state properties plus specific volume, density, vapor pressure, and the embedded `steps` object. Combined with units, elevation, error and billing coverage, an agent has everything needed to call and interpret it.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds the crucial combinatorial semantics that the schema cannot express: any two of seven thermodynamic properties are sufficient to define the state, and units/elevation govern both inputs and results. It does not mention the `via` tracking parameter, minor against its added value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

The description names a specific computation (psychrometric state-point solving) and grounds it in two concrete example questions about dew point, enthalpy and RH. It clearly distinguishes itself from the HVAC siblings hvac_coil_load and hvac_duct_size by resource and operation.

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

Usage Guidelines4/5

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

It states the operative input rule ('from any two of dry bulb, wet bulb, dew point, relative humidity, humidity ratio, enthalpy or grains') and names the domains it serves (HVAC design, commissioning, energy, comfort), plus the failure condition (impossible states). It never explicitly routes away from a sibling or states when-not-to-use, 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.

new_token_launchesNew token launches on Base, with risk verdictsA
Read-only
Inspect

Answers "What tokens launched on Base in the last hour, and which look safe?" for trading and research agents. Finds every pool created against WETH, ETH or USDC on Uniswap v2, v3 and v4 and Aerodrome in the window (default the last 60 minutes, up to 6 hours), groups them by token, newest first, and runs each of the newest (up to 20) through token_risk_check: name and symbol, whether the contract itself is brand new, owner and renounced ownership, powers in its code (mint, blacklist, fees, pause, trading switch, limits), upgradeability, measured liquidity in USD, OFAC screening, and a verdict (high_risk, caution, no_flags) with reasons. Filter by minimum liquidity or hide high-risk tokens. Built for polling: each answer gives latest_block; pass it as since_block next time to get only newer launches. Read live from the chain. Not financial advice. You are only charged when a result is returned: invalid input (400) and upstream failures (4xx/5xx) are not settled. Costs $0.01 USDC per call via x402. Paid per call with x402 inside MCP (see the server instructions).

NameRequiredDescriptionDefault
viaNoOptional: the tool whose next_calls suggested this call (filled in for you).
limitNoHow many tokens to check, newest first (1-20, default 10). All new pools are counted either way.
minutesNoHow far back to look, in minutes (1-360, default 60). Ignored when since_block is given.
since_blockNoOnly pools created after this Base block: pass the previous answer's latest_block when polling (at most 6 hours back).
hide_high_riskNoLeave out tokens judged high_risk. Default false.
min_liquidity_usdNoLeave out tokens with less measured liquidity than this (USD). Default 0.

TDQS

A4.4/5.0
Behavior5/5

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

Goes well past the annotations (readOnly, openWorld, non-idempotent, non-destructive) by disclosing that it reads live from chain, runs risk checks, is built for polling via latest_block, costs $0.01 USDC per call via x402, and — critically — that invalid input (400) and upstream failures (4xx/5xx) are not settled. This charging/settlement detail is not derivable from any structured field.

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

Conciseness4/5

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

Purpose, scope, and polling pattern are front-loaded, and the dense enumeration of returned fields is informative rather than filler. It is long and slightly repetitive (the 6-hour limit appears twice), but nearly every sentence carries actionable content.

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

Completeness5/5

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

With no output schema, the description carries the full burden of describing returns, and it does so in detail: name/symbol, new-contract flag, owner/renouncement, code powers, upgradeability, liquidity in USD, OFAC screening, and a verdict enum with reasons, plus latest_block for polling. An agent has everything needed to call and interpret it.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents every parameter. The description restates the window limits (60 min default, up to 6 hours), the newest-first cap (up to 20), and the liquidity/high-risk filters, but adds no format or syntax detail beyond what the schema provides. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

States specific verbs and resources: it 'finds every pool created against WETH, ETH or USDC on Uniswap v2/v3/v4 and Aerodrome,' groups them, and runs the newest through token_risk_check. An agent can distinguish this (a launch-discovery + verdict tool) from siblings like token_launches_peek or token_risk_check without opening a schema.

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

Usage Guidelines4/5

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

Clearly frames the use case (trading/research agents asking what launched and which look safe) and gives the polling workflow with since_block. It also notes the default 60-minute window up to 6 hours. However, it never explicitly contrasts with the sibling token_launches_peek, leaving the agent to infer the distinction between a full verdict run and a cheap peek.

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

sanctions_screenOFAC sanctions screeningA
Read-onlyIdempotent
Inspect

Answers "Is this company or person sanctioned by the US?" and "Is this crypto wallet on OFAC's list?" for KYC, vendor onboarding, payments and compliance checks. Screens a name against the US Treasury OFAC Specially Designated Nationals (SDN) list and the Consolidated (non-SDN) sanctions lists, primary names and aliases, tolerant of word order ("PUTIN, Vladimir"), accents, punctuation, honorifics, legal suffixes and small typos; and a cryptocurrency address against the addresses OFAC lists (exact match). Each match has a 0-100 score, the name it matched (primary or a.k.a.), and the listing: OFAC ID, type, programs, title, aliases, addresses, date of birth, nationality, crypto addresses and remarks. Filter by type and country; set the score threshold. clear is true when nothing matched. Lists are refreshed from OFAC every 12 hours. A screening aid, not legal advice. You are only charged when a result is returned: invalid input (400) and upstream failures (4xx/5xx) are not settled. Costs $0.005 USDC per call via x402. Paid per call with x402 inside MCP (see the server instructions).

NameRequiredDescriptionDefault
viaNoOptional: the tool whose next_calls suggested this call (filled in for you).
nameNoPerson, company, vessel or aircraft name, e.g. "Vladimir Putin" or "Rosneft".
typeNoOnly this kind of listing: individual, entity, vessel or aircraft.
limitNoMost matches to return, best first (default 10).
countryNoOnly listings with an address or nationality in this country, e.g. "Iran".
min_scoreNoLowest name-match score (0-100) to report. Default 85.
crypto_addressNoA cryptocurrency address to check against the addresses OFAC lists (exact match), e.g. a Bitcoin or Ethereum address.

TDQS

A4.6/5.0
Behavior5/5

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

Annotations only cover the safety profile (readOnly/idempotent/non-destructive); the description goes well beyond by disclosing the 12-hour list refresh, exact pricing ($0.005 USDC via x402), the billing rule that 400 and 4xx/5xx are not settled, and the fuzzy-vs-exact matching behavior. That is exactly the extra context annotations cannot carry.

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

Conciseness4/5

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

Front-loaded with the two core questions, then matching behavior, then return shape, then cost — a sensible ordering with no filler. It is dense and long, but nearly every clause carries distinct information an agent needs.

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

Completeness5/5

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

With no output schema, the description carries return-value burden and does: score, matched name (primary vs a.k.a.), listing fields, and the `clear` flag on no match. Combined with cost, refresh cadence and matching rules, nothing material is missing for correct invocation.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3, but the description adds semantics the schema lacks: name matching is tolerant of word order, accents, punctuation, honorifics, suffixes and typos, while crypto_address is exact match only, and it explains that the score is a 0-100 name-match value used with the threshold and that type/country act as filters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

Opens with the two exact questions the tool answers and names the resource precisely (OFAC SDN and Consolidated lists, plus listed crypto addresses). An agent can distinguish it from wallet_risk_check or counterparty_check without opening the schema.

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

Usage Guidelines4/5

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

Explicitly names the situations it serves: KYC, vendor onboarding, payments and compliance checks, with the 'screening aid, not legal advice' boundary. It stops short of naming sibling alternatives (e.g. when to prefer wallet_risk_check or counterparty_check), so it is clear context without exclusions.

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

scrape_batchRead several web pages at onceA
Read-onlyIdempotent
Inspect

Use it when an agent needs to read several web pages at once: compare competitors' pricing pages, read the top search results, or the pages a site_map call found. Reads 2-5 public URLs in one paid call (one payment round trip instead of five), each exactly like scrape_markdown: the main content as clean Markdown (or mode: "full"), real tables, code blocks, metadata from meta tags and JSON-LD (author, dates, language, canonical URL), PDFs as text by page, RSS feeds as item lists, optionally each page's links. Results come back in request order, each either ok: true with the page or ok: false with an error code and message (bot check, unreachable, unsupported content), so one bad URL does not spoil the batch. Each page is cut at max_chars_per_page (default 20,000); next_calls continue a long page with scrape_markdown. If no page at all can be read, the call fails and is not charged. JavaScript is not executed. No account or API key. Costs $0.008 USDC per call via x402 ($0.002 per page when read one by one). Paid per call with x402 inside MCP (see the server instructions).

NameRequiredDescriptionDefault
viaNoOptional: the tool whose next_calls suggested this call (filled in for you).
modeNomain (default): each page's article or main content only. full: whole pages, including navigation and footers.main
urlsYes2-5 different public http(s) URLs to read, e.g. ["https://example.com/pricing", "https://example.com/docs"]. Results come back in the same order.
include_linksNoAlso return each page's links as a list (url, text, internal). Default false.
strip_link_urlsNoWrite links as plain text in the Markdown (keeps the text, drops the URLs) to save tokens. Default false.
max_chars_per_pageNoReturn at most this many characters of each page (1,000-50,000, default 20,000). Read the rest of a long page with scrape_markdown and its next_offset.

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already cover the safety profile (readOnly, idempotent, openWorld, non-destructive), and the description adds substantial context beyond them: one payment round trip via x402, per-page ok:true/ok:false isolation so one bad URL does not spoil the batch, error codes (bot check, unreachable, unsupported content), JS not executed, no account/API key, and no charge if nothing can be read.

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

Conciseness4/5

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

The primary use case and batching benefit are front-loaded, and nearly every sentence carries information. It is a single dense block rather than a scannable structure, and the pricing clause ($0.008 vs $0.002 per page) takes some parsing, but there is little outright waste.

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

Completeness5/5

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

With no output schema, the description carries the return-value burden and does so fully: Markdown main content or full mode, tables, code blocks, meta/JSON-LD metadata, PDF and RSS handling, per-URL success/error shape and ordering. Nothing an agent needs to call it correctly is missing.

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

Parameters4/5

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

Schema description coverage is 100%, so the baseline is 3; the description still adds value by explaining the 2-5 URL constraint, request-order result mapping, the mode main/full distinction, and how max_chars_per_page truncation is resumed via scrape_markdown next_offset. It goes modestly beyond the schema without re-documenting every field.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

States a specific verb and resource ('read several web pages at once', 'Reads 2-5 public URLs in one paid call') and explicitly positions itself against scrape_markdown ('each exactly like scrape_markdown') and site_map (as a URL source). An agent can tell it apart from the single-page sibling without opening either schema.

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

Usage Guidelines4/5

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

Gives concrete when-to-use triggers (compare competitors' pricing pages, read top search results, pages a site_map call found) and names scrape_markdown as the alternative for continuing a truncated long page. It stops short of an explicit 'use the single-page tool instead when you have only one URL' exclusion, so it is clear context rather than a full when/when-not/alternatives statement.

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

scrape_markdownWeb page to MarkdownA
Read-onlyIdempotent
Inspect

Use it when an agent needs to read a web page, article, documentation, PDF, blog post, product or pricing page, news story or RSS feed. Returns the main content as clean Markdown ready for an LLM: navigation, ads, footers and sidebars removed (or mode: "full" for the whole page), real tables as Markdown tables, code blocks with their language, math as TeX, the real (not lazy-loaded placeholder) images, absolute links without same-page anchors, and no needless escaping. Also returns metadata from meta tags and JSON-LD (description, author, published and modified time, language, site name, canonical URL, image, schema.org type), the HTTP status, word and token counts, and optionally the page's links. PDFs come back as text by page (up to 100 pages, 15 MB; no OCR), RSS/Atom feeds as item lists, JSON pretty-printed, and JavaScript-built pages that embed their content as data (JSON-LD articleBody, Next.js) are read from it. Long pages are returned in parts of up to 100,000 characters: pass next_offset back as offset; strip_link_urls saves tokens. Bot checks ("Just a moment...") and pages with no readable text answer 422 and are not charged; JavaScript is not executed. No account or API key. You are only charged when a result is returned: invalid input (400) and upstream failures (4xx/5xx) are not settled. Costs $0.002 USDC per call via x402. Paid per call with x402 inside MCP (see the server instructions).

NameRequiredDescriptionDefault
urlYesPublic http(s) URL to read: a web page, PDF, text, JSON or RSS/Atom feed, e.g. https://example.com/article.
viaNoOptional: the tool whose next_calls suggested this call (filled in for you).
modeNomain (default): the article or main content only. full: the whole page, including navigation and footers.main
offsetNoStart at this character of the Markdown; pass the previous response's next_offset to read a long page in parts.
max_charsNoReturn at most this many characters (1,000-100,000, default 100,000).
include_linksNoAlso return the page's links as a list (url, text, internal). Default false.
strip_link_urlsNoWrite links as plain text in the Markdown (keeps the text, drops the URLs) to save tokens. Default false.

TDQS

A4.2/5.0
Behavior5/5

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

Far exceeds the annotations: it discloses that JS is not executed, that bot-check/empty pages return 422 and are not charged, that invalid input (400) and upstream failures are not settled, the exact cost ($0.002 USDC via x402), PDF limits (100 pages, 15 MB, no OCR), and JSON-LD/Next.js fallback behavior. This is exactly the value-add the annotations cannot carry.

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

Conciseness3/5

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

The single

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

Completeness5/5

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

No output schema exists, so the description must describe returns, and it does thoroughly: Markdown body, extracted metadata fields, HTTP status, word/token counts, optional links, and pagination parts. Nothing an agent needs in order to call it and interpret results is missing.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3. The description goes further by explaining the cross-parameter pagination flow (pass next_offset back as offset) and the token-saving intent of strip_link_urls, which adds workflow meaning beyond the per-field schema text.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

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

States a precise verb+resource ('read a web page...') and enumerates the input types (article, documentation, PDF, RSS feed) plus the exact output (clean Markdown). Very clear. It does not, however, name or contrast any sibling such as web_search_read or scrape_batch, so the agent gets no explicit differentiation.

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

Usage Guidelines4/5

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

The opening sentence gives a clear when-to-use trigger ('when an agent needs to read a web page...'). It does not state when NOT to use it or point to alternatives, so routing to siblings 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.

sec_alerts_peekHow many new SEC alerts (free)A
Read-only
Inspect

Free, no payment needed. Counts the alerts sec_market_alerts would return for the same since, levels, types and tickers, by level and type, with a new cursor. Counts only: the companies, filings and excerpts come with the paid sec_market_alerts, whose ready-to-send call is included when there is something new. Built for polling: peek for free every few minutes, pay only when new_alerts > 0. Rate-limited per client.

NameRequiredDescriptionDefault
viaNoOptional: the tool whose next_calls suggested this call (filled in for you).
sinceNoOnly alerts found after this time: pass the previous answer's `cursor` to get just what is new. Default: every alert in the store (about the last day).
typesNoOnly these alert types: bankruptcy, restatement, delisting_notice, late_annual_report, auditor_change, cybersecurity_incident, impairment, debt_acceleration, change_in_control, late_quarterly_report, insider_purchase, leadership_change, earnings, material_agreement, acquisition_or_disposal, restructuring, unregistered_share_sale. Default: all.
levelsNoOnly these levels: red (restatement, delisting, bankruptcy, late 10-K), amber, green (insider buying), info (earnings, leadership changes, deals). Default: all.
tickersNoA watchlist: only alerts for these tickers. Default: the whole market.

TDQS

A4.9/5.0
Behavior5/5

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

Annotations cover the safety profile (readOnly, non-destructive, open-world), and the description adds context they cannot: the free/no-payment model, per-client rate limiting, the fact that it returns no company/filing/excerpt content, and that a ready-to-send paid call is bundled when something is new. That is unusually rich behavioral disclosure.

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

Conciseness5/5

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

Front-loads the free/counts-only distinction, then the polling rationale. Every sentence carries a distinct fact (cost, scope, output limits, cursor chaining, rate limit) with no padding.

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

Completeness5/5

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

There is no output schema, so the description carries the burden of describing the return shape – counts by level and type plus a new cursor – and it does so. Combined with annotations and full schema coverage, an agent has everything needed to call it correctly and interpret the result.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds meaning beyond the schema by tying the filters to sec_market_alerts' identical semantics and explaining that the returned cursor is the value to pass back into `since` for incremental polling. It does not restate per-parameter syntax, which the schema already handles.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

States a specific verb and resource – it 'counts the alerts sec_market_alerts would return' – and immediately scopes the result to counts by level and type with a cursor. The sibling relationship to sec_market_alerts is explicit, so an agent can distinguish the two without opening either schema.

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

Usage Guidelines5/5

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

Gives an unambiguous when-to-use: poll for free every few minutes and only call the paid sec_market_alerts when new_alerts > 0. It names the alternative and the exact condition that selects it, 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.

sec_alert_subscriptionSEC alerts pushed to your webhook (30 days)AInspect

Answers "Tell me the moment any of my holdings files something bad" without polling. One payment covers 30 days: every new alert matching your filters (a tickers watchlist, levels, types; default red, amber and green: restatements, delisting notices, bankruptcies, late 10-K/10-Q, auditor changes, cybersecurity incidents, impairments, changes in control, insider purchases of $100K+) is POSTed to your HTTPS webhook_url as JSON within about 2 minutes of being found, in the same shape sec_market_alerts returns, signed with HMAC-SHA256 using the signing_secret returned once at signup. Failed deliveries are retried every 2 minutes. The webhook must answer a test ping with 2xx or you are not charged. Extend with renew_subscription_id (+30 days); check deliveries or cancel with the free sec_alert_subscription_status. Subscriptions survive server restarts. You are only charged when a result is returned: invalid input (400) and upstream failures (4xx/5xx) are not settled. Costs $1.00 USDC per 30 days via x402. Paid per call with x402 inside MCP (see the server instructions).

NameRequiredDescriptionDefault
viaNoOptional: the tool whose next_calls suggested this call (filled in for you).
typesNoOnly these alert types: bankruptcy, restatement, delisting_notice, late_annual_report, auditor_change, cybersecurity_incident, impairment, debt_acceleration, change_in_control, late_quarterly_report, insider_purchase, leadership_change, earnings, material_agreement, acquisition_or_disposal, restructuring, unregistered_share_sale.
levelsNoOnly these levels (red, amber, green, info). Default: red, amber and green.
tickersNoWatchlist: only alerts for these tickers. Default: the whole market.
webhook_urlNoYour HTTPS endpoint. New alerts are POSTed to it as JSON, signed (see `verify`). It must answer a test ping with 2xx, or you are not charged.
renew_subscription_idNoExtend this subscription by 30 days instead of creating one (its webhook and filters stay).

TDQS

A4.8/5.0
Behavior5/5

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

Well beyond annotations, it discloses HMAC-SHA256 signing with a signing_secret issued once at signup, ~2-minute delivery latency, 2-minute retry cadence, restart survival, the test-ping requirement, and precise billing semantics (charged only on returned result; 400 and 4xx/5xx not settled). Annotations only give the generic readOnly/openWorld/idempotent profile, so this extra operational detail is genuinely additive.

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

Conciseness4/5

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

Front-loaded with the use case and pricing, and nearly every sentence carries distinct operational information. It is a single dense run-on paragraph, however, and re-lists filter values already present in the schema, so it is not maximally tight.

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

Completeness5/5

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

No output schema exists, yet the description explains the delivered payload shape (same as sec_market_alerts), the transport, signature scheme, retries, error treatment, cost, and lifecycle. 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.

Parameters4/5

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

Schema description coverage is 100%, so the baseline is 3, but the description adds meaning the schema does not: the levels default of red/amber/green, the whole-market default for tickers, the extend-by-30-days behavior of renew_subscription_id, and the relationship between signing_secret and webhook_url. It only partially elaborates the type enums it re-lists.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

States a specific verb and resource: it creates a paid 30-day subscription that POSTs SEC alerts matching supplied filters to an HTTPS webhook. It distinguishes itself from siblings by naming sec_market_alerts as the shape source and sec_alert_subscription_status as the free status/cancel path.

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

Usage Guidelines5/5

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

Opens with the exact user intent it serves ('tell me the moment any of my holdings files something bad, without polling'), then gives when-to-use-this variants: create new vs. extend via renew_subscription_id vs. cancel/check with sec_alert_subscription_status. Alternatives and preconditions (2xx test ping) are explicit.

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

sec_alert_subscription_statusCheck or cancel an SEC alert subscription (free)AInspect

Free, no payment needed. Give the subscription_id and signing_secret from sec_alert_subscription to see whether it is active, when it expires, how many alerts were delivered and the last delivery error, or set cancel: true to stop deliveries (no refund).

NameRequiredDescriptionDefault
viaNoOptional: the tool whose next_calls suggested this call (filled in for you).
cancelNotrue stops deliveries now (no refund).
signing_secretYesFrom the subscribe answer.
subscription_idYesFrom the subscribe answer.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations declare non-readOnly, non-destructive, non-idempotent, which is a somewhat odd mix for a status/cancel tool. The description adds real value beyond that: it states the operation is free, that cancel takes effect immediately with no refund, and it enumerates the returned status fields (active state, expiry, delivered count, last delivery error). That is meaningful behavioral disclosure, though it doesn't address auth failure or idempotency of repeated cancels.

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

Conciseness4/5

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

Two sentences, front-loaded with the key qualifier ('Free, no payment needed') before the mechanics. Dense but every clause carries information; only the long enumeration of return fields makes it slightly heavy.

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

Completeness5/5

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

With no output schema, the description compensates by listing what the status call returns (active, expiry, delivered count, last delivery error) and by clarifying the destructive-looking cancel path is refund-free. Nothing an agent needs to invoke this correctly is missing.

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

Parameters3/5

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

Schema description coverage is 100%, so both required parameters and the cancel flag are already documented in the schema. The description corroborates the credential source and the cancel semantics but adds no format or edge-case detail beyond the structured fields, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

The description names a specific verb (check) and resource (SEC alert subscription), plus the secondary action (cancel), and contrasts with the sibling sec_alert_subscription by naming it as the source of the credentials. An agent can distinguish this from sec_alerts_peek and sec_alert_subscription without opening schemas.

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

Usage Guidelines4/5

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

It states the prerequisites (subscription_id and signing_secret from sec_alert_subscription) and the trigger for the cancel path (set cancel: true). It doesn't explicitly say when not to use it or route to a different sibling for related tasks, 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.

sec_earnings_todayToday's earnings releases (SEC 8-K 2.02)A
Read-only
Inspect

Answers "Who reported earnings this morning?", "How did the banks do today?" or "Did any of my holdings report?". Lists the earnings releases (8-K item 2.02, Results of Operations and Financial Condition) filed with the SEC on a day across all companies, newest first. For each: company, ticker, EDGAR acceptance time, the press release's headline, its highlights (subheadlines and the sentences carrying revenue, EPS, net income, margins and guidance figures), the opening paragraph, and links to the press release (EX-99.1) and the filing. Filter with a tickers watchlist; poll with since = the previous answer's cursor to get only new releases (the free sec_alerts_peek with types ["earnings"] counts them first). A day without releases (or none from the watchlist) is a free 404. You are only charged when a result is returned: invalid input (400) and upstream failures (4xx/5xx) are not settled. Costs $0.01 USDC per call via x402. Paid per call with x402 inside MCP (see the server instructions).

NameRequiredDescriptionDefault
viaNoOptional: the tool whose next_calls suggested this call (filled in for you).
dateNoThe filing day (YYYY-MM-DD, US Eastern), or "latest" for the most recent day with releases (e.g. on a weekend). Default: today. EDGAR's live feed reaches back a few business days.
limitNoHow many releases to read, newest first (1-30, default 10).
sinceNoOnly releases EDGAR accepted after this time: pass the previous answer's `cursor` to get just the new ones.
tickersNoA watchlist: only releases from these tickers. Default: every company.

TDQS

A4.8/5.0
Behavior5/5

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

Annotations cover safety (readOnly, non-destructive, openWorld, non-idempotent), but the description adds substantial economic and behavioral context beyond them: a free 404 when no releases exist, billing only on returned results, non-settlement on 400/4xx/5xx, and the $0.01 USDC x402 cost. It also describes the full return payload shape, which matters since 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.

Conciseness4/5

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

Dense and front-loaded — the purpose, use cases, and return fields come first, with billing details last. It is longer than strictly necessary and some billing sentences could be tightened, but almost every clause carries operational value.

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

Completeness5/5

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

With no output schema, the description fully enumerates what each result contains (company, ticker, EDGAR acceptance time, headline, revenue/EPS/margin/guidance highlights, opening paragraph, EX-99.1 and filing links), so an agent can consume the response without guessing. Nothing needed to call or interpret it is missing.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds real semantics: the cursor-chaining pattern ('pass the previous answer's cursor' into `since`) and the watchlist framing for `tickers`. It also explains the default day and the weekend/`latest` intent, though the schema largely carries the field documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

States a specific verb and resource (lists SEC 8-K item 2.02 earnings releases) with clear scope (a day, across all companies, newest first) and immediately distinguishes itself from siblings like sec_list_filings and sec_recent_events. The opening example questions anchor the intent precisely.

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

Usage Guidelines5/5

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

Names concrete use cases ('Who reported earnings this morning?'), the watchlist filter, the cursor-polling pattern, and an explicit cheaper alternative (free sec_alerts_peek with types ["earnings"] counts them first). When-to-use and when-to-use-something-else are both covered.

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

sec_filing_sectionSEC 10-K / 10-Q section extractorA
Read-onlyIdempotent
Inspect

Answers questions like "What are Tesla's risk factors?", "What did Apple's MD&A say about margins?" or "How has Microsoft's cybersecurity disclosure changed since 2023?". Returns exactly one section of a US public company's 10-K (annual) or 10-Q (quarterly) report from SEC EDGAR as clean text, ready for an LLM: Risk Factors (Item 1A), Management's Discussion and Analysis (MD&A), Business, Legal Proceedings, Market Risk, or Cybersecurity. Look up by stock ticker or CIK. Defaults to the latest filing; pass fiscal_year (2001 on) for an earlier year's report, or accession_number for an exact filing (the free sec_list_filings tool lists them, with the sections each one has). For several sections of one filing use sec_filing_sections; for what changed since last year, sec_section_changes. The table of contents, page numbers, hidden XBRL data and HTML are removed; tables are kept as readable rows. Includes the filing date, fiscal period, accession number and sec.gov link for citation. Use it for investment research, due diligence, competitor analysis or risk monitoring without downloading a 100-page filing. Sections up to 200,000 characters. If the filing's item only points elsewhere ("See Note 12"), you get 404 SECTION_INCORPORATED_BY_REFERENCE with that pointer, free. You are only charged when a result is returned: invalid input (400) and upstream failures (4xx/5xx) are not settled. Costs $0.01 USDC per call via x402. Paid per call with x402 inside MCP (see the server instructions).

NameRequiredDescriptionDefault
cikNoSEC Central Index Key, e.g. 320193. Use this, `ticker` or `company`.
viaNoOptional: the tool whose next_calls suggested this call (filled in for you).
formNoAnnual report (10-K, the default) or quarterly report (10-Q). With `accession_number`, taken from that filing.
tickerNoUS stock ticker, e.g. AAPL, MSFT, BRK-B. Use this, `cik` or `company`.
companyNoCompany name, e.g. "Apple" or "Coca-Cola". Use this, `ticker` or `cik`; a name matching several companies returns their tickers, free.
sectionYesWhich section to return: risk_factors, mda (Management's Discussion and Analysis), business, legal_proceedings, market_risk, or cybersecurity (10-K only, filings from late 2023 on).
fiscal_yearNoReturn the report whose fiscal period ends in this calendar year instead of the latest one, e.g. 2022 for Apple's 10-K for the year ended September 24, 2022. For a 10-Q, the latest quarter ending in that year. EDGAR has HTML filings from 2001 on.
accession_numberNoReturn the section from this exact 10-K or 10-Q filing of the company, e.g. 0000320193-22-000108.

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already cover safety (readOnlyHint, idempotentHint, destructiveHint=false, openWorldHint), and the description layers on substantial extra behavior: TOC/page numbers/XBRL/HTML are stripped while tables are kept as rows, output carries filing date, fiscal period, accession number and sec.gov link, a 200,000-character cap, the 404 SECTION_INCORPORATED_BY_REFERENCE edge case with its free pointer, and the billing rule that only settled results are charged ($0.01 USDC via x402, 400/4xx/5xx not settled).

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

Conciseness4/5

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

Front-loaded with example questions and the core one-section guarantee, then routing, edge cases, and pricing in descending priority. Every sentence carries information, but the opening question examples and the citation/pricing detail make it longer than strictly necessary for an expert agent.

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

Completeness5/5

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

No output schema exists, so the description must describe returns and it does: clean text with citation metadata, a character cap, and explicit error semantics for by-reference sections and invalid input. Combined with 100%-covered parameters and rich annotations, nothing an agent needs to invoke this correctly is missing.

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

Parameters4/5

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

Schema description coverage is 100%, so the baseline is 3. The description adds genuine semantics beyond the schema: lookup defaults to the latest filing, fiscal_year (2001+) selects an earlier report with 10-Q mapping to the latest quarter ending in that year, and a company-name ambiguity resolves to a free list of tickers. It stops short of restating enum syntax, which the schema already handles.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

States a precise verb and resource: returns exactly one section (risk_factors, mda, business, etc.) of a US public company's 10-K/10-Q from SEC EDGAR as clean text. It explicitly distinguishes itself from siblings sec_filing_sections (several sections of one filing) and sec_section_changes (year-over-year deltas), so an agent can route without opening either schema.

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

Usage Guidelines5/5

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

Names the alternatives and the exact condition that selects each: sec_filing_sections for several sections, sec_section_changes for what changed, sec_list_filings to discover accession numbers. It also gives positive use cases (investment research, due diligence, competitor analysis) and states the tool's scope as a single-section extractor.

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

sec_filing_sectionsSEC 10-K / 10-Q sections, several at onceA
Read-onlyIdempotent
Inspect

Answers several questions about one report at once, e.g. "What are Nvidia's risks, and what does management say about results?". Returns 2 or 3 sections of the same 10-K or 10-Q from SEC EDGAR as clean text, in one call: Risk Factors, MD&A, Business, Legal Proceedings, Market Risk, Cybersecurity. Same inputs and output per section as sec_filing_section (latest filing, a fiscal_year since 2001, or an exact accession_number; by ticker, CIK or company name), at $0.015 for up to three sections instead of $0.01 each. Sections the filing does not contain are listed in not_found; if none can be read you get 404, free. You are only charged when a result is returned: invalid input (400) and upstream failures (4xx/5xx) are not settled. Costs $0.015 USDC per call via x402. Paid per call with x402 inside MCP (see the server instructions).

NameRequiredDescriptionDefault
cikNoSEC Central Index Key, e.g. 320193. Use this, `ticker` or `company`.
viaNoOptional: the tool whose next_calls suggested this call (filled in for you).
formNoAnnual report (10-K, the default) or quarterly report (10-Q). With `accession_number`, taken from that filing.
tickerNoUS stock ticker, e.g. AAPL, MSFT, BRK-B. Use this, `cik` or `company`.
companyNoCompany name, e.g. "Apple" or "Coca-Cola". Use this, `ticker` or `cik`; a name matching several companies returns their tickers, free.
sectionsYes2 or 3 sections to read from the same filing: risk_factors, mda, business, legal_proceedings, market_risk, cybersecurity. Business and cybersecurity exist only in 10-Ks.
fiscal_yearNoReturn the report whose fiscal period ends in this calendar year instead of the latest one, e.g. 2022 for Apple's 10-K for the year ended September 24, 2022. For a 10-Q, the latest quarter ending in that year. EDGAR has HTML filings from 2001 on.
accession_numberNoReturn the section from this exact 10-K or 10-Q filing of the company, e.g. 0000320193-22-000108.

TDQS

A4.6/5.0
Behavior5/5

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

Goes well beyond the readOnly/idempotent annotations: it discloses the exact billing model ($0.015 per call, cheaper than per-section), that 404 on no-readable-sections is free, and that 400/upstream 4xx-5xx are not settled. It also documents the `not_found` behavior for sections absent from the filing and the x402 payment requirement — all operationally material context 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.

Conciseness4/5

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

Front-loaded with purpose and an example, then inputs, then pricing/error semantics — a sensible order. It is dense and mostly earns its length, but the payment mechanism is stated twice ('Costs $0.015 USDC per call via x402' and 'Paid per call with x402 inside MCP'), which is redundant.

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

Completeness5/5

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

There is no output schema, so the description carries the return burden — it specifies clean text, 2-3 sections, the `not_found` list, and the 404 case. Combined with the cost/error behavior and the per-section equivalence to sec_filing_section, an agent has everything needed to call and interpret this tool.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description largely restates schema semantics (latest filing default, `fiscal_year` since 2001, exact `accession_number`, ticker/CIK/company) and its 'Business and cybersecurity exist only in 10-Ks' note duplicates the schema's enum description rather than adding new syntax or format detail.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

States a specific verb+resource+scope: returns 2-3 named sections of the same 10-K/10-Q, with the exact section list enumerated. It explicitly distinguishes itself from the sibling sec_filing_section ('Same inputs and output per section as sec_filing_section... at $0.015 for up to three sections instead of $0.01 each'), so an agent can route between the two without opening a schema.

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

Usage Guidelines5/5

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

Opens with the selecting condition — answering several questions about one report at once, with a worked example — and names the alternative (sec_filing_section) plus the economic reason to pick this one. Implicit exclusions are also clear: it is per-filing, so multi-company or multi-filing needs go to the batch/single sibling.

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

sec_financialsSEC financial statements (XBRL)A
Read-onlyIdempotent
Inspect

Answers "What were Apple's revenue and net income over the last five years?", "Is Tesla's free cash flow positive?" or "How fast is Nvidia growing quarter over quarter?". Returns a US public company's key financial-statement figures for its latest fiscal years (annual, from 10-Ks) or single quarters (quarterly), newest first, from the XBRL data companies file with the SEC: income statement (revenue, cost of revenue, gross profit, R&D, SG&A, operating income, pretax income, tax, net income, basic and diluted EPS, diluted shares), balance sheet (cash, current and total assets and liabilities, long-term debt, equity) and cash flow (operating cash flow, capex, free cash flow, dividends, buybacks), plus gross, operating and net margins and year-over-year revenue growth. Fourth quarters and single-quarter cash flows, which companies only report as full-year or year-to-date totals, are derived and flagged in derived. Each period cites the latest filing that reports it, so restated figures replace original ones. Up to 20 periods per call, back to about 2009; fiscal_year reaches earlier years. By ticker, CIK or company name. US-GAAP filers only (not IFRS 20-F filers); values in USD. You are only charged when a result is returned: invalid input (400) and upstream failures (4xx/5xx) are not settled. Costs $0.005 USDC per call via x402. Paid per call with x402 inside MCP (see the server instructions).

NameRequiredDescriptionDefault
cikNoSEC Central Index Key, e.g. 320193. Use this, `ticker` or `company`.
viaNoOptional: the tool whose next_calls suggested this call (filled in for you).
limitNoHow many periods to return, newest first (1-20, default 5).
periodNoFiscal years from 10-Ks (annual, the default) or single quarters (quarterly).annual
tickerNoUS stock ticker, e.g. AAPL, MSFT, BRK-B. Use this, `cik` or `company`.
companyNoCompany name, e.g. "Apple" or "Coca-Cola". Use this, `ticker` or `cik`; a name matching several companies returns their tickers, free.
fiscal_yearNoReturn periods up to this fiscal year (the calendar year the fiscal year ends in) instead of the latest, e.g. 2019.

TDQS

A4.6/5.0
Behavior5/5

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

Beyond the annotations (which already declare readOnly/idempotent/non-destructive), the description discloses derived fourth quarters and cash flows with a `derived` flag, restatement behavior ('latest filing that reports it, so restated figures replace original ones'), period limits, filing coverage back to 2009, currency/filer scope, and the billing model (charged only on returned results; 400/4xx not settled). That is unusually rich 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.

Conciseness4/5

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

It is front-loaded with representative questions then a dense but information-rich block, with almost every clause carrying load (fields, derivation rules, limits, pricing). The example questions are somewhat bulky and the single-paragraph wall of text could be better segmented, keeping it from a 5.

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

Completeness5/5

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

With no output schema, the description carries the full burden of describing return values, and it does: enumerated statement line items, derived margins and YoY growth, the `derived` flag, period counts, restatement semantics, and billing. 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.

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3 and the schema does the heavy lifting. The description still adds meaning beyond the schema: period selection maps to filing types (annual from 10-Ks vs single quarters), fiscal_year reaches earlier years, and identifiers are accepted by ticker/CIK/company name.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

The description states a specific verb+resource: it returns a US public company's key financial-statement figures (income statement, balance sheet, cash flow) from SEC XBRL data. The example questions and enumerated field lists make it immediately distinguishable from siblings like sec_filing_section or sec_fund_holdings.

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

Usage Guidelines4/5

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

It gives concrete usage cues ('What were Apple's revenue over the last five years?', 'Is Tesla's FCF positive?') and states constraints like annual/quarterly period selection, 20-period cap, back to ~2009, and 'US-GAAP filers only (not IFRS 20-F filers)'. It does not explicitly name sibling alternatives or when not to use it, so it stops short of a 5.

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

sec_fund_holdings13F fund holdings (what a hedge fund or investor owns)A
Read-onlyIdempotent
Inspect

Answers "What does Warren Buffett own?", "What did Michael Burry buy last quarter?", "Did Bridgewater sell Nvidia?" or "What are Cathie Wood's biggest positions?". Give a fund or investor name (Berkshire Hathaway, Bridgewater, Renaissance, Pershing Square/Ackman, Scion/Burry, ARK/Cathie Wood, Citadel, Soros, Tiger Global, Appaloosa/Tepper, Icahn, Baupost, Third Point, Duquesne/Druckenmiller, Vanguard, Two Sigma, Elliott, Viking, D. E. Shaw and any other 13F filer) or its SEC CIK. Returns the latest (or any period) 13F-HR: total value, number of positions, each position (issuer, CUSIP, value, shares, % of portfolio, options marked put/call) merged across sub-managers, and against the quarter before: new positions, positions sold out, the biggest adds and cuts, and a plain-English summary. Managers with over $100M in US equities file within 45 days of each quarter's end. Unknown funds are not charged. You are only charged when a result is returned: invalid input (400) and upstream failures (4xx/5xx) are not settled. Costs $0.01 USDC per call via x402. Paid per call with x402 inside MCP (see the server instructions).

NameRequiredDescriptionDefault
cikNoThe manager's SEC CIK, e.g. 1067983 (Berkshire Hathaway).
viaNoOptional: the tool whose next_calls suggested this call (filled in for you).
fundNoThe investment manager or investor, e.g. "Berkshire Hathaway", "Bridgewater", "Cathie Wood" or "Michael Burry". Use this or `cik`.
limitNoHow many positions to list, largest first (1-200, default 25). Totals and changes always cover the whole portfolio.
periodNoWhich quarter: "latest" (default), a quarter-end date such as 2026-06-30, or 2026-Q2.

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already declare readOnly/idempotent/non-destructive, and the description adds material behavior the annotations cannot: the x402 payment model ($0.01 USDC per call), the settlement rule (charged only when a result is returned; 400 and 4xx/5xx not settled), and the aggregation behavior (positions merged across sub-managers, options marked put/call). These are exactly the operational facts an agent needs before invoking a paid call.

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

Conciseness4/5

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

Front-loaded with the user questions the tool answers, then inputs, then output shape, then cost — a sensible ordering. The long parenthetical manager roster is somewhat bloated and partially redundant with the `fund` schema example, but every remaining sentence (return fields, pricing, settlement) carries real information.

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

Completeness5/5

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

With no output schema, the description fully carries the return contract: total value, position count, per-position fields (issuer, CUSIP, value, shares, % of portfolio, put/call), cross-sub-manager merge, quarter-over-quarter new/exited/adds/cuts, and a plain-English summary. An agent can predict the response and cost without any further source.

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

Parameters4/5

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

Schema description coverage is 100%, so the baseline is 3; the description still adds some meaning by tying `period` to 'latest or any period', explaining that returned changes compare against the prior quarter, and noting that `limit` affects listing while totals/changes cover the whole portfolio. The manager-name examples largely duplicate the schema, which keeps this from a 5.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

The title and description state a precise verb+resource: 13F-HR fund holdings for a named manager or CIK, with concrete example questions ('What does Warren Buffett own?', 'Did Bridgewater sell Nvidia?'). This is clearly separable from siblings like sec_insider_trades or sec_financials, which cover different filer types and data.

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

Usage Guidelines4/5

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

Usage context is clear: give a fund/investor name or CIK, with an enumerated set of common managers and a fallback ('any other 13F filer'). It also sets the eligibility boundary (managers over $100M in US equities file within 45 days), which implicitly tells the agent when this tool applies. It does not, however, name a sibling to use instead for adjacent questions (e.g., individual insider trades), so no explicit exclusions.

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

sec_insider_tradesSEC Form 4 insider tradesA
Read-onlyIdempotent
Inspect

Answers "Are Nvidia's executives selling?", "Did any Intel insider buy shares on the open market this year?" or "What did Tesla's CFO do with his vested stock?". Returns a US public company's latest Form 4 filings from SEC EDGAR, the reports officers, directors and 10% owners must file within two business days of trading its stock: who traded (name, role, title), each transaction with its date, code and plain-English meaning, shares, price, dollar value, holdings after, and direct or indirect ownership, plus footnotes. A summary totals open-market purchases and sales (shares, dollars, which insiders) and separates sales under pre-arranged Rule 10b5-1 plans and sales that only cover taxes on vesting stock, which say little about insiders' views. Filter by filing date or transaction code (e.g. ["P"] for open-market purchases), optionally with option and RSU transactions; up to 40 filings per call. By ticker, CIK or company name. If nothing matches you get 404, free. You are only charged when a result is returned: invalid input (400) and upstream failures (4xx/5xx) are not settled. Costs $0.005 USDC per call via x402. Paid per call with x402 inside MCP (see the server instructions).

NameRequiredDescriptionDefault
cikNoSEC Central Index Key, e.g. 320193. Use this, `ticker` or `company`.
viaNoOptional: the tool whose next_calls suggested this call (filled in for you).
limitNoHow many Form 4 filings to return, newest first (1-40, default 15).
sinceNoOnly filings filed on or after this date (YYYY-MM-DD).
tickerNoUS stock ticker, e.g. AAPL, MSFT, BRK-B. Use this, `cik` or `company`.
companyNoCompany name, e.g. "Apple" or "Coca-Cola". Use this, `ticker` or `cik`; a name matching several companies returns their tickers, free.
transaction_codesNoOnly filings with these transaction codes, e.g. ["P"] for open-market purchases, ["P", "S"] for open-market buying and selling. Default: all filings.
include_derivativeNoAlso list derivative transactions (option and RSU grants, exercises, expirations). Default false.

TDQS

A4.6/5.0
Behavior5/5

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

Goes well beyond annotations (which only cover read-only/idempotent safety) to disclose the 404-free behavior, that 400 and 4xx/5xx are not settled, the $0.005 USDC x402 cost, the 40-filing cap, and analytically important semantics like 10b5-1 plan and tax-withholding sales being separated.

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

Conciseness4/5

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

Front-loaded with the motivating questions and the return shape before filters and billing, so the most important information comes first. It is dense and long, but nearly every clause carries distinct information rather than repetition.

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

Completeness5/5

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

With no output schema, the description fully specifies the return payload (trader identity, transaction date/code/meaning, shares, price, value, holdings, ownership type, footnotes, and an aggregate summary). For an 8-param paid read tool this is complete enough to call correctly.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3, but the description adds real meaning: transaction_codes examples (["P"] for open-market purchases), what include_derivative actually pulls in (option/RSU grants, exercises, expirations), and the 40-filing ceiling on limit. The ticker/CIK/company alternatives are also clarified.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

Opens with concrete questions the tool answers, then names the specific resource (Form 4 filings from SEC EDGAR) and its scope (officers, directors, 10% owners). The verb+resource is unambiguous and clearly distinct from siblings like sec_list_filings or sec_filing_section.

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

Usage Guidelines4/5

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

Gives clear triggering questions and describes the filter conditions (filing date, transaction code, include_derivative) that select this tool's behavior. It doesn't explicitly contrast against sibling filing tools, but the scope and examples leave little ambiguity about when to reach for it.

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

sec_ipo_filingsNew IPO and SPAC filingsA
Read-only
Inspect

Answers "Who filed for an IPO this week?", "Which IPOs priced today?" or "Any new SPACs?". Lists IPO registrations from EDGAR's live feed (about the last week), newest first, each with its stage: filed (first S-1, F-1 or S-11), amended (S-1/A, on the way to pricing), upsized (S-1MEF, registered just before pricing) or priced (424B4 final prospectus), the filing link, and whether it looks like a SPAC. Resale and follow-on registrations by companies that already trade are left out unless include_public_companies is true. Filter by stage or SPACs; poll with since (the previous cursor) to get only new filings. You are only charged when a result is returned: invalid input (400) and upstream failures (4xx/5xx) are not settled. Costs $0.005 USDC per call via x402. Paid per call with x402 inside MCP (see the server instructions).

NameRequiredDescriptionDefault
viaNoOptional: the tool whose next_calls suggested this call (filled in for you).
limitNoMost filings to return, newest first (default 25).
sinceNoOnly filings EDGAR accepted after this time: pass the previous answer's `cursor` to get just the new ones.
spacsNoSPACs (blank-check "Acquisition Corp" shells): include (default), exclude or only.include
stagesNoOnly these stages: filed (first S-1/F-1/S-11), amended (…/A), upsized (…MEF, just before pricing), priced (424B4 final prospectus). Default: all.
include_public_companiesNoAlso list registrations by companies that already trade (resale and follow-on offerings). Default false: IPOs only.

TDQS

A4.6/5.0
Behavior5/5

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

Goes well beyond the annotations (readOnly/destructive/openWorld/idempotent) by disclosing the billing model ($0.005 USDC per call via x402, settled only when a result is returned, 400/4xx/5xx not charged) and the incremental-polling contract via cursor. It also discloses data recency (~last week) and default filtering behavior, which annotations cannot express.

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

Conciseness4/5

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

Front-loaded with the questions it answers, then scope, output, filtering, polling, and pricing — a logical order with no filler. It is dense and a little long, but each clause carries distinct operational information, so nothing is wasted.

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

Completeness5/5

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

With no output schema, the description compensates by describing the returned fields (stage, filing link, SPAC flag), ordering (newest first), recency window, and pagination via cursor. Together with the cost/settlement details, an agent has everything needed to call and iterate correctly.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds real meaning: it defines each stage in terms of actual filing forms, clarifies that `since` takes the previous response's cursor, and explains the include_public_companies exclusion rule. This is more than the schema restates, though it does not cover the `via` or `limit` semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

States a specific verb+resource (lists IPO registrations from EDGAR's live feed) and pins the scope precisely: new IPO/SPAC registrations, newest first, with stage labels. It distinguishes itself from the broader sec_list_filings sibling by restricting to IPO/SPAC events and naming the filing types it captures (S-1, F-1, S-11, S-1/A, S-1MEF, 424B4).

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

Usage Guidelines4/5

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

Usage is well-signaled through concrete triggering questions ('Who filed for an IPO this week?', 'Any new SPACs?') and operational guidance (poll with `since` = previous cursor; filter by stage or SPACs). It clearly states what is excluded (resale/follow-ons unless include_public_companies) but never names a sibling tool as the alternative, so it stops short of an explicit when-not/alternative routing.

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

sec_list_filingsSEC filings index and latest filings feed (free)A
Read-onlyIdempotent
Inspect

Free, no payment needed. Two uses: (1) with a ticker, CIK or company name, a US public company's 10-K (annual), 10-Q (quarterly) and 8-K (material event) filings from SEC EDGAR, newest first, back to 2001; (2) with no company, the latest filings across all companies from EDGAR's live feed (about the last few business days): "Which companies reported earnings since Friday?", "Who announced a CEO change today?", "Which 10-Qs were filed this morning?". Each filing has the company, ticker, form, filing date (and acceptance time in the live feed), sec.gov link, the sections sec_filing_section can extract (Risk Factors, MD&A, Business, Legal Proceedings, Market Risk, Cybersecurity) and the event items of each 8-K (earnings 2.02, executive changes 5.02, deals 1.01, cybersecurity incidents 1.05, …). Filter by form, 8-K items (codes or words like "earnings") and date. Every filing carries next_call: the exact paid tool call, with arguments and price, that returns its text. Up to 50 filings per call. Rate-limited per client.

NameRequiredDescriptionDefault
cikNoSEC Central Index Key, e.g. 320193. Use this, `ticker` or `company`.
viaNoOptional: the tool whose next_calls suggested this call (filled in for you).
formsNoWhich filings to list: 10-K (annual), 10-Q (quarterly), 8-K (material events). Default: all three.
itemsNoOnly 8-Ks reporting any of these items, e.g. ["2.02"] for earnings, ["5.02"] for executive changes, ["1.05"] for cybersecurity incidents (words like "earnings" work too). Implies forms ["8-K"].
limitNoHow many filings to return, newest first (1-50, default 20).
sinceNoOnly filings filed on or after this date (YYYY-MM-DD). Reaches back to 2001 for one company; the market-wide feed covers about the last few business days.
tickerNoUS stock ticker, e.g. AAPL, MSFT, BRK-B. Use this, `cik` or `company`; leave all three out for the latest filings of all companies.
companyNoCompany name, e.g. "Apple" or "Coca-Cola". Use this, `ticker` or `cik`; a name matching several companies returns their tickers, free.

TDQS

A4.6/5.0
Behavior5/5

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

Beyond the readOnly/idempotent/openWorld annotations, it discloses pricing ('free, no payment needed'), a per-client rate limit, a 50-filings-per-call cap, mode-dependent freshness (back to 2001 vs. the last few business days), and that every filing carries a next_call with the exact paid call, arguments and price. These are material behavioral facts an agent needs and none are in the annotations.

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

Conciseness4/5

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

Front-loaded with the two usage modes and dense throughout; the field inventory sentence (company, ticker, form, date, link, sections, items, next_call) is efficient. The three sample questions in the live-feed mode are somewhat redundant with the prose but they illustrate the use case usefully, so nothing is wasted outright.

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

Completeness5/5

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

For an 8-parameter, no-output-schema tool this covers the essentials: both modes, all filters, defaults and caps, freshness windows, returned fields, rate limiting, and the monetization hook. An agent can call it correctly without inferring anything significant.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds real meaning: items accepts words like 'earnings' and implies forms ["8-K"], a multi-company name match returns tickers for free, and since behaves differently per mode (2001 for one company, days for the market feed). It adds value over the schema text rather than repeating it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

The description states a concrete verb and resource (list a company's or the market's SEC filings) and explicitly separates the two operating modes with worked example questions. It also names sec_filing_section as the tool that extracts section text, so an agent can distinguish this index/feed tool from its extraction sibling without opening a schema.

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

Usage Guidelines4/5

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

It clearly says when each mode applies (ticker/CIK/company = historical company filings; no company = live market-wide feed) and routes section extraction to sec_filing_section. What is missing is an explicit when-not-to-use statement or a direct comparison against siblings like sec_recent_events or sec_earnings_today, which overlap with the 'latest feed' use case.

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

sec_market_alertsSEC red-flag alerts across the marketA
Read-only
Inspect

Answers "Did anything bad just get filed?", "Alert me to restatements, auditor changes or CEO departures" or "Which insiders bought stock today?". Alerts from new SEC filings across all public companies, most serious first: RED (8-K item 4.02 restatements, 3.01 delisting notices, 1.03 bankruptcies, NT 10-K late annual reports), AMBER (4.01 auditor changes, 1.05 cybersecurity incidents, 2.06 impairments, 2.04 debt triggers, 5.01 changes in control, NT 10-Q), GREEN (open-market insider purchases of $100K or more, from Form 4s) and INFO (5.02 leadership changes, 2.02 earnings releases, 1.01 agreements, 2.01 deals, 2.05 restructurings, 3.02 unregistered share sales). Each alert has the company, ticker, EDGAR acceptance time, items, a text excerpt for red and amber 8-Ks, the filing link and the paid call that reads it in full. Filter by levels, types or a tickers watchlist. Built for polling: pass the previous answer's cursor as since to get only new alerts, and check the free sec_alerts_peek first so you pay only when there is something new. You are only charged when a result is returned: invalid input (400) and upstream failures (4xx/5xx) are not settled. Costs $0.005 USDC per call via x402. Paid per call with x402 inside MCP (see the server instructions).

NameRequiredDescriptionDefault
viaNoOptional: the tool whose next_calls suggested this call (filled in for you).
limitNoHow many alerts to return, most serious first, then newest (1-50, default 20).
sinceNoOnly alerts found after this time: pass the previous answer's `cursor` to get just what is new. Default: every alert in the store (about the last day).
typesNoOnly these alert types: bankruptcy, restatement, delisting_notice, late_annual_report, auditor_change, cybersecurity_incident, impairment, debt_acceleration, change_in_control, late_quarterly_report, insider_purchase, leadership_change, earnings, material_agreement, acquisition_or_disposal, restructuring, unregistered_share_sale. Default: all.
levelsNoOnly these levels: red (restatement, delisting, bankruptcy, late 10-K), amber, green (insider buying), info (earnings, leadership changes, deals). Default: all.
tickersNoA watchlist: only alerts for these tickers. Default: the whole market.

TDQS

A4.4/5.0
Behavior3/5

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

Annotations already cover the safety profile (readOnlyHint=true, destructiveHint=false, openWorldHint=true, idempotentHint=false). The description adds genuinely useful non-annotation behavior: pricing ($0.005 USDC via x402), the billing policy (only settled when a result returns; 400/4xx/5xx not charged), store retention (~last day), and ordering (most serious first, then newest). That said, the standard for credit is lower when annotations carry safety, and return format is largely enumerated rather than deeply explained, so a 3 is fitting.

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

Conciseness4/5

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

Front-loaded with representative user questions, then the alert taxonomy, then filters, then the polling/pricing mechanics. It is dense but every sentence carries information; the nested severity enumeration is long but is the tool's core value proposition.

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

Completeness5/5

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

No output schema exists, and the description compensates by listing the return fields (company, ticker, EDGAR acceptance time, items, text excerpt, filing link, paid read call) plus the cursor-based paging contract and cost model. An agent has everything needed to call and interpret it.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3. The description still adds value beyond the schema by mapping `levels` to their constituent item codes, explaining that `since` takes the prior `cursor`, and clarifying that `tickers` acts as a watchlist over the whole market by default.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

States a concrete verb and resource (surfacing red-flag alerts from new SEC filings across the whole market) and specifies the scope, severity taxonomy, and the exact filing events covered. An agent can distinguish it from sec_recent_events or sec_insider_trades without opening any schema.

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

Usage Guidelines5/5

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

Gives an explicit polling workflow (pass the previous answer's `cursor` as `since`, check the free sec_alerts_peek before paying) and states the cost-gating condition. When-to-use and the cheap alternative are both spelled out rather than implied.

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

sec_recent_eventsSEC 8-K material eventsA
Read-onlyIdempotent
Inspect

Answers "What happened at this company lately?": did the CEO or CFO leave, what were the latest earnings, was there an acquisition, major contract or cyber incident. Returns a US public company's most recent 8-K filings from SEC EDGAR, newest first: the material events companies must report within four business days, such as earnings releases (Item 2.02), CEO, CFO and director changes (5.02), material agreements and acquisitions (1.01, 2.01), cybersecurity incidents (1.05), impairments, auditor changes and shareholder votes. Each event has its item codes with official titles, the 8-K text as clean prose, and the text of its press-release exhibits (EX-99), e.g. the full earnings release. Filter by item codes and filing date, or ask for one exact 8-K by accession_number (the free sec_list_filings tool lists them); up to 10 events per call. Look up by stock ticker or CIK. Use it for event monitoring, news and earnings agents, due diligence or trading research, with sec.gov links for citation. If no 8-K matches, you get 404 FILING_NOT_FOUND, free. You are only charged when a result is returned: invalid input (400) and upstream failures (4xx/5xx) are not settled. Costs $0.01 USDC per call via x402. Paid per call with x402 inside MCP (see the server instructions).

NameRequiredDescriptionDefault
cikNoSEC Central Index Key, e.g. 320193. Use this, `ticker` or `company`.
viaNoOptional: the tool whose next_calls suggested this call (filled in for you).
itemsNoOnly events reporting one of these 8-K items, e.g. ["5.02"] for executive and director changes, ["2.02"] for earnings releases, ["1.01", "2.01"] for deals, ["1.05"] for cybersecurity incidents.
limitNoHow many events to return, newest first (1-10, default 5).
sinceNoOnly events filed on or after this date (YYYY-MM-DD).
tickerNoUS stock ticker, e.g. AAPL, MSFT, BRK-B. Use this, `cik` or `company`.
companyNoCompany name, e.g. "Apple" or "Coca-Cola". Use this, `ticker` or `cik`; a name matching several companies returns their tickers, free.
accession_numberNoReturn only this 8-K, e.g. one found with the free sec_list_filings tool.
include_exhibitsNoInclude the text of press-release exhibits (EX-99), e.g. the earnings release. Default true.

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already cover the read-only, idempotent, non-destructive, open-world profile, and the description adds substantial extra context: the four-business-day reporting window, item-code meanings, the 10-event cap per call, and detailed x402 billing behavior (charged only when a result returns, 404 and 400/5xx not settled). This is exactly the kind of behavior 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.

Conciseness4/5

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

Front-loaded with a plain-language framing question and then a structured inventory of return contents, so an agent can skim effectively. It is on the long side, with mild redundancy between the opening example questions and the later item-code list, plus a slightly repetitive x402 pricing sentence.

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

Completeness5/5

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

With 9 parameters, no output schema and no required fields, the description carries the burden well: it explains lookup keys (ticker/CIK/company), filtering, the accession-number mode, what is returned, and the billing/error model. 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.

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description goes further by decoding item codes (5.02 = executive/director changes, 2.02 = earnings, 1.01/2.01 = deals, 1.05 = cyber) and explaining the accession_number lookup path and per-call limit. It adds real interpretation beyond the schema text.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

States a specific verb and resource: returns a US public company's most recent 8-K filings from SEC EDGAR, newest first, with item codes, prose text and EX-99 exhibits. It also distinguishes itself from siblings by naming sec_list_filings as the free accession-number lister and contrasting with a generic filing lookup.

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

Usage Guidelines4/5

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

Gives concrete use cases (event monitoring, news/earnings agents, due diligence, trading research) and names an alternative tool, sec_list_filings, for obtaining accession numbers. However, it never states when NOT to use it (e.g. versus sec_earnings_today or sec_alerts_peek), so routing guidance is strong but not exhaustive.

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

sec_section_changesSEC 10-K year-over-year changesA
Read-onlyIdempotent
Inspect

Answers "What changed in Tesla's risk factors this year?", "Which new risks did Apple add?" or "How did Microsoft's MD&A change since 2022?". Compares one section of a company's 10-K with the same section of an earlier 10-K from SEC EDGAR, paragraph by paragraph: paragraphs added (new risk factors appear here), removed, and edited, each edit with a word-level diff marking deletions [-like this-] and insertions {+like this+}, plus a summary (counts and the share of text unchanged). Moved but identical paragraphs count as unchanged. Defaults to the latest 10-K against the one before it; pass fiscal_year or accession_number for the newer report and compare_to_fiscal_year for the older one (2001 on). Sections: Risk Factors, MD&A, Business, Legal Proceedings, Market Risk, Cybersecurity (filed from late 2023 on). By ticker, CIK or company name, with sec.gov links for both filings. Use it for risk monitoring, due diligence and investment research without reading two 100-page filings. If either report lacks the section you get 404, free. You are only charged when a result is returned: invalid input (400) and upstream failures (4xx/5xx) are not settled. Costs $0.04 USDC per call via x402. Paid per call with x402 inside MCP (see the server instructions).

NameRequiredDescriptionDefault
cikNoSEC Central Index Key, e.g. 320193. Use this, `ticker` or `company`.
viaNoOptional: the tool whose next_calls suggested this call (filled in for you).
tickerNoUS stock ticker, e.g. AAPL, MSFT, BRK-B. Use this, `cik` or `company`.
companyNoCompany name, e.g. "Apple" or "Coca-Cola". Use this, `ticker` or `cik`; a name matching several companies returns their tickers, free.
sectionYesWhich 10-K section to compare: risk_factors, mda, business, legal_proceedings, market_risk or cybersecurity.
fiscal_yearNoThe newer report: the 10-K whose fiscal year ends in this year. Default: the latest 10-K.
accession_numberNoThe newer report as an exact 10-K filing, instead of `fiscal_year`.
compare_to_fiscal_yearNoThe older report to compare against: the 10-K for this fiscal year. Default: the 10-K just before the newer one.

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, openWorld), yet the description adds substantial behavioral context beyond them: the billing model (charged only when a result returns, 404 free, 400/5xx not settled), $0.04 USDC via x402, the 'moved but identical counts as unchanged' rule, and the exact diff notation. This is unusually rich disclosure.

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

Conciseness4/5

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

Front-loaded with concrete question examples, then mechanics, then billing. Dense and information-rich, but a few parentheticals and clauses could be trimmed; nothing is truly wasted, though it is longer than strictly necessary.

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

Completeness5/5

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

No output schema exists, so the description carries the return-shape burden and does so: it enumerates added/removed/edited paragraphs, word-level diff markers, and the summary counts plus unchanged-text share. Combined with billing and error behavior, an agent needs nothing else to call it correctly.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3. The description nonetheless adds semantics the schema cannot: the default pairing of latest vs. previous 10-K, the newer/older role of fiscal_year vs. compare_to_fiscal_year, the 2001 floor, and the late-2023 filing boundary for cybersecurity. It adds meaning beyond the structured fields without restating syntax.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

Specific verb+resource: compares one 10-K section between two filings paragraph-by-paragraph. The three example questions and the explicit enumeration of outputs (added/removed/edited with diff markers) make it unmistakable against siblings like sec_filing_section, which merely returns a section.

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

Usage Guidelines4/5

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

States intended use cases (risk monitoring, due diligence, investment research) and the default comparison behavior plus the fiscal_year/accession_number/compare_to_fiscal_year selection rules. It does not, however, explicitly name sibling tools (sec_filing_section, sec_filing_sections, sec_full_text_search) as alternatives for narrower needs.

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

site_mapWebsite page list (site map)A
Read-onlyIdempotent
Inspect

Use it when an agent needs to know what pages a website has before reading them: where is the pricing page, which docs pages exist, what did the blog publish lately, which product or careers pages are there. Give any URL on the site; returns the site's page URLs with their last-modified dates, like Firecrawl's /map. Reads the sitemaps named in robots.txt, else /sitemap.xml and /sitemap_index.xml, following sitemap indexes (up to 10 child sitemaps, 20,000 URLs) and gzip (.xml.gz) sitemaps; a site with no sitemap is mapped from its home page's links on the same host. Filter with search (every word must appear in the URL, title or date, e.g. "pricing" or "blog 2026") and path_prefix (e.g. "/docs/"); limit up to 1,000 (default 200). next_calls read the first matches with scrape_batch. When the site cannot be reached (502) or no page matches (404), you are not charged. No account or API key. Costs $0.002 USDC per call via x402. Paid per call with x402 inside MCP (see the server instructions).

NameRequiredDescriptionDefault
urlYesThe website, or any page on it, e.g. https://example.com. Its origin (scheme and host) is mapped.
viaNoOptional: the tool whose next_calls suggested this call (filled in for you).
limitNoHow many URLs to return (1-1,000, default 200).
searchNoOnly URLs containing every word of this text (case-insensitive) in the URL, or in the title or lastmod when known, e.g. "pricing" or "blog 2026".
path_prefixNoOnly URLs whose path starts with this, e.g. "/blog/" or "/docs".

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already declare readOnly/idempotent/openWorld/non-destructive, so the bar is met, yet the description adds substantial operational detail: sitemap discovery order via robots.txt, index following with concrete caps (10 child sitemaps, 20,000 URLs), gzip support, home-page link fallback, no-charge on 502/404, and x402 pricing with no account/API key.

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

Conciseness4/5

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

Front-loads the use case and result, then details discovery, filtering, follow-up calls, and cost. Dense but largely earns its length; some clauses (sitemap internals, pricing) run long and could be tightened.

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

Completeness5/5

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

With no output schema, the description supplies the return shape (page URLs with last-modified dates), failure semantics (502/404 uncharged), cost model, and the downstream scrape_batch workflow — everything an agent needs to invoke and then act on the result.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3. The description goes slightly beyond by giving worked filter examples ('pricing', 'blog 2026', '/docs/') and restating the limit default of 200, but most parameter meaning is already in the schema, so it does not add deep new semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

States a specific verb+resource (map a site's pages/URLs) and immediately gives concrete motivations (find pricing, docs, blog, careers pages). It is clearly distinguishable from siblings like scrape_batch or web_search by framing itself as a pre-read inventory step.

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

Usage Guidelines5/5

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

Explicitly says when to use it ('before reading them'), what to give it (any URL on the site), and connects it to the next step ('next_calls read the first matches with scrape_batch'). It even names the behavior it mirrors (Firecrawl's /map), 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.

token_launches_peekHow many tokens launched on Base since a block (free)A
Read-only
Inspect

Free, no payment needed. Counts the pools created against WETH, ETH or USDC on Uniswap v2, v3, v4 and Aerodrome on Base since since_block (or in the last minutes) and how many distinct tokens they are for, by DEX, with the latest block. Counts only: the token addresses, names and risk verdicts come with the paid new_token_launches, whose ready-to-send call is included when there is something new. Built for polling bots: peek for free, pay only when new_tokens > 0. Rate-limited per client.

NameRequiredDescriptionDefault
viaNoOptional: the tool whose next_calls suggested this call (filled in for you).
minutesNoHow far back to look, in minutes (1-360, default 60). Ignored when since_block is given.
since_blockNoOnly pools created after this Base block: pass the previous answer's latest_block when polling (at most 6 hours back).

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already declare readOnlyHint, openWorldHint, and destructiveHint=false, but the description adds substantial behavioral context: free/no payment, rate-limited per client, counts-only return, ready-to-send paid call when new_tokens > 0, and polling-bot orientation. It does not contradict any annotation.

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

Conciseness4/5

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

The description is front-loaded with the free/no-payment point, then explains counts, limits, paid alternative, and polling use. It is dense but efficient. Minor redundancy exists between 'Free, no payment needed' and 'peek for free,' but nothing is wasted overall.

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

Completeness5/5

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

Given no output schema, the description adequately explains what is returned (counts, distinct tokens, by DEX, latest block) and what is not returned (addresses, names, risk verdicts). It also covers payment model, rate limits, and the paid sibling alternative, leaving no critical gap for correct invocation.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already fully documents via, minutes, and since_block. The description mentions since_block/minute semantics and polling with latest_block, but adds little beyond the schema, matching the baseline of 3 when structured fields do the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

The description states a specific verb (counts), resource (pools created against WETH/ETH/USDC), scope (Uniswap v2/v3/v4 and Aerodrome on Base), and time basis (since_block or minutes). It clearly distinguishes itself from the paid new_token_launches sibling by explaining that this tool returns only counts.

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

Usage Guidelines5/5

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

It explicitly says when to use this tool (free polling: 'peek for free, pay only when new_tokens > 0') and when to use the alternative (paid new_token_launches for token addresses, names, and risk verdicts). The when-not condition is implied by the paid alternative and rate limit.

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

token_risk_checkToken risk check (scam and rug signals)A
Read-only
Inspect

Answers "Is this token a scam?", "Can I sell it?" and "Can the owner mint, freeze or tax it?" before an agent buys, accepts or lists an ERC-20 token on Base or Ethereum. Reads the contract and its proxy implementation: name, symbol, supply; owner and whether ownership is renounced; upgradeability (EIP-1967 proxies, admin); the powers its code grants a privileged account, found from its function signatures: mint new tokens, blacklist or freeze holders, change buy/sell fees, pause transfers, set max transaction or wallet limits, or keep trading switched off; and DEX liquidity: every Uniswap v2, Uniswap v3 and Aerodrome (Base) pool against WETH and USDC with reserves and an estimated USD value. The token, its owner and proxy admin are screened against OFAC. Returns a verdict (high_risk, caution, no_flags), a risk score and the reasons. Heuristics, not a sell simulation or audit. A wallet address (no code) is an error and not charged. You are only charged when a result is returned: invalid input (400) and upstream failures (4xx/5xx) are not settled. Costs $0.005 USDC per call via x402. Paid per call with x402 inside MCP (see the server instructions).

NameRequiredDescriptionDefault
viaNoOptional: the tool whose next_calls suggested this call (filled in for you).
chainNo"base" (default) or "ethereum".base
addressYesThe token contract, e.g. 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 (USDC on Base).

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already say read-only and open-world, and the description adds substantial context beyond them: cost ($0.005 USDC per call via x402), the exact billing rule (charged only when a result is returned; 400 and 4xx/5xx are not settled), the upstream data sources read, and the limitation that this is heuristic, not a simulation or audit.

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

Conciseness4/5

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

Front-loaded with the three questions it answers and what it reads, then pricing and error handling at the end, so the important detail comes first. It is a single long block, and the middle section that lists contract features is dense enough that it would read better as a list.

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

Completeness5/5

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

No output schema exists, so the description must explain return values, which it does: a verdict (high_risk, caution, no_flags), a risk score, and the reasons. It also covers failure modes (wallet address error, 400/5xx not charged), which is 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.

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3. The description adds meaning the schema does not: the `address` must be a contract with code (a wallet address is an error), and the chain scope (Base or Ethereum) determines which DEX liquidity sources are used (Aerodrome only on Base).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

Names the exact resource (an ERC-20 contract on Base or Ethereum), the exact action (reads code, owner, proxy, privileged powers, DEX liquidity, OFAC screening, returns a verdict) and the question it answers. It also separates itself from adjacent siblings by declaring that a wallet address with no code is an error, which distinguishes it from wallet_risk_check.

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

Usage Guidelines4/5

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

States the decision point clearly: use it before an agent buys, accepts or lists a token. It also states what it is not ("Heuristics, not a sell simulation or audit") and that wallet addresses are invalid input. It stops short of naming a specific alternative sibling to use instead for other cases.

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

token_verdictToken verdict: is this token safe? (graded A-F)A
Read-onlyIdempotent
Inspect

Answers "Is this token a scam?", "Is it safe to ape into this?", "Rug pull risk?" or "Should my agent accept this token as payment?" in one short answer. Send a token contract address on Base (default) or Ethereum. The service reads the contract and its DEX liquidity on-chain (owner powers such as minting, blacklisting, pausing, fees and trading switches; upgradeability; renounced ownership; Uniswap and Aerodrome liquidity; OFAC sanctions) and returns a grade: A (solid), B (no flags, modest liquidity), C (read the cautions), D (serious risks) or F (avoid: no liquidity, sanctioned or high-risk), a one-liner under 70 characters, a two-sentence take, the red flags and good signs, liquidity in USD and a 0-100 risk score, plus a sell test: a simulated buy from the biggest pool and sell back into it (nothing is sent on-chain) that catches honeypots and hidden buy/sell taxes. For every detail, token_risk_check returns the full evidence. Not financial advice. You are only charged when a result is returned: invalid input (400) and upstream failures (4xx/5xx) are not settled. Costs $0.009 USDC per call via x402. Paid per call with x402 inside MCP (see the server instructions).

NameRequiredDescriptionDefault
viaNoOptional: the tool whose next_calls suggested this call (filled in for you).
chainNo"base" (default) or "ethereum".base
addressYesThe token contract, e.g. 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 (USDC on Base).

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already cover read-only/idempotent/open-world, and the description adds substantial non-obvious context: the sell test is a simulation with nothing sent on-chain, billing is settled only on success while 400/4xx/5xx are not charged, cost is $0.009 USDC via x402, and it is not financial advice. This goes well beyond what the annotations declare.

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

Conciseness4/5

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

Front-loads the user-facing questions and the verdict scale, then the evidence sources, then the output shape and commercial terms in a logical order. The on-chain evidence list is long but each item is load-bearing; the only slack is mild redundancy between the grade and risk-score descriptions.

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

Completeness5/5

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

With no output schema, the description carries the full burden and delivers: it enumerates the returned artifacts (letter grade with meanings, sub-70-char one-liner, two-sentence take, red flags, good signs, USD liquidity, 0-100 risk score, honeypot sell test). An agent knows exactly what it gets back and what it costs.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds framing value by characterizing 'address' as a token contract with the Base-default/Ethereum choice spelled out in prose. The 'via' parameter is not discussed, which keeps it from a 5.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

Opens with the exact questions it answers (scam? safe to ape? rug risk? accept as payment?) and states the resource (a token contract on Base/Ethereum) and the output (A-F grade). It also names the sibling token_risk_check as the destination for full evidence, so an agent can distinguish the two without opening schemas.

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

Usage Guidelines5/5

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

Explicitly frames when to use it (quick verdict questions) and when to go elsewhere ('For every detail, token_risk_check returns the full evidence'). It also discloses the payment model and that only settled results are charged, which is directly relevant to deciding whether to invoke it.

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

wallet_risk_checkWallet risk check (OFAC + on-chain)A
Read-only
Inspect

Answers "Is it safe to send money to this address?" before an agent pays an x402 payTo, a vendor, a user or another agent, and "Who is behind this address?". Checks, on Base or Ethereum: whether the address is on the US Treasury OFAC SDN or Consolidated lists, and whether anything controlling it is (the owner of a contract, the owners of a Safe multisig, an EIP-7702 delegate, a proxy implementation); what it is (a person's wallet, smart wallet, Safe multisig, token contract, proxy or other contract); how many transactions it has sent; its ETH and USDC balances; and flags a never-used wallet or a token contract (sending funds to one usually loses them). Returns a verdict (high_risk, caution, no_flags), a 0-100 risk score and the reasons, with an explorer link. Read live from the chain; OFAC lists refreshed every 12 hours. A screening aid, not legal advice. You are only charged when a result is returned: invalid input (400) and upstream failures (4xx/5xx) are not settled. Costs $0.005 USDC per call via x402. Paid per call with x402 inside MCP (see the server instructions).

NameRequiredDescriptionDefault
viaNoOptional: the tool whose next_calls suggested this call (filled in for you).
chainNo"base" (default) or "ethereum".base
addressYesThe wallet or contract to check, e.g. the payTo of an x402 payment request.

TDQS

A4.4/5.0
Behavior5/5

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

Annotations already cover read-only/open-world/destructive flags, and the description still adds substantial non-obvious behavior: $0.005 USDC x402 cost per call, billing only on returned results, 12-hour OFAC refresh cadence, live on-chain reads, and an explicit 'screening aid, not legal advice' caveat. This is exactly the kind of billing and freshness context annotations cannot convey.

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

Conciseness4/5

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

Front-loaded with the core question and the trigger scenario, and each sentence carries real information (what is checked, what is returned, pricing). It is a dense run-on paragraph with stacked clauses, but little is genuinely wasted.

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

Completeness5/5

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

No output schema exists, so the description carries the return contract and it does: verdict values (high_risk, caution, no_flags), a 0-100 risk score with reasons, and an explorer link. Combined with the stated inputs, cost, and freshness, an agent has everything needed to decide and call correctly.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description adds mild context by tying the address to a payTo target and by naming the two chains it can query, but the parameter semantics (0x-address pattern, enum values, default) are already fully carried by the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

States a specific question it answers ('Is it safe to send money to this address?') plus the resource checked (an address) and the chains covered. It clearly distinguishes itself from siblings like token_risk_check and sanctions_screen by scoping to a wallet/contract address and enumerating exactly what it inspects (OFAC SDN/Consolidated, ownership, multisig, delegate, proxy, tx count, balances).

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

Usage Guidelines4/5

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

Gives a concrete trigger: use it before an agent pays an x402 payTo, a vendor, a user or another agent. It also discloses the pricing/settlement model (charged only when a result is returned; 400/4xx/5xx not settled). It stops short of naming alternatives (e.g. when to prefer token_risk_check or counterparty_check) or when not to use it.

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

web_search_readWeb search and read the top pagesA
Read-only
Inspect

Answers a research question in one call: searches the web, then reads the top results (up to 3) as clean Markdown with the same reader as scrape_markdown (main content, tables kept, PDFs supported), so an agent gets the sources' text instead of just links. A page that cannot be read (bot check, error) is skipped and the next result read instead, and listed in skipped. Also returns all results, a direct answer when there is one and related searches. Country, language and recency filters; characters per page are adjustable. You are only charged when a result is returned: invalid input (400) and upstream failures (4xx/5xx) are not settled. Costs $0.012 USDC per call via x402. Paid per call with x402 inside MCP (see the server instructions).

NameRequiredDescriptionDefault
viaNoOptional: the tool whose next_calls suggested this call (filled in for you).
readNoHow many of the top results to read as Markdown (1-3, default 3). Pages that cannot be read are skipped for the next result.
queryYesWhat to search for, e.g. "best open-source vector database 2026" or "site:sec.gov Apple 10-K".
countryNoTwo-letter country for local results, e.g. us, gb, de. Default: us.
languageNoTwo-letter language code, e.g. en, de, fr.
time_rangeNoOnly results from the past day, week, month or year (news, recent events).
max_chars_per_pageNoMarkdown characters per page (500-20000, default 8,000).

TDQS

A4.5/5.0
Behavior5/5

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

Adds substantial context beyond the annotations: unreadable pages (bot checks, errors) are skipped into `skipped`, results/all-results/direct-answer/related-searches are returned, and the cost model is spelled out ($0.012 USDC via x402, charged only when a result returns, 400 and 4xx/5xx not settled). None of this is derivable from the readOnly/openWorld/idempotent hints.

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

Conciseness4/5

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

Front-loads the core behavior (search + read as Markdown) before secondary details, and every clause earns its place. It is dense and long, but the density is warranted by the billing and skip semantics.

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

Completeness4/5

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

For a paid, complex tool with no output schema, it discloses the salient return fields (`skipped`, all results, direct answer, related searches) and the charging conditions. It stops short of describing the full response shape, 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.

Parameters4/5

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

Schema coverage is 100% so the baseline is 3; the description still adds routing value by grouping the filter parameters (country, language, recency) and the adjustable characters-per-page, reinforcing intent beyond the per-field schema text.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

States a specific compound verb+resource ('searches the web, then reads the top results up to 3 as clean Markdown') and explicitly ties the reading behavior to scrape_markdown, so an agent can distinguish it from web_search and the raw scrape tools.

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

Usage Guidelines4/5

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

Frames the use case clearly ('answers a research question in one call' and 'gets sources' text instead of just links'), which implies when to pick it over a link-only search. It names scrape_markdown as sharing the reader, but never gives an explicit when-not or direct routing rule against web_search or scrape_batch.

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

x402_preflightx402 preflight: is it safe to pay this endpoint?A
Read-only
Inspect

Answers "Is it safe to pay this x402 endpoint?" before an agent pays a seller it has not used before. Requests the URL without paying (GET, then POST), reads the 402 challenge (x402 v1 or v2) and checks every payment option: scheme, network, amount, asset, payTo and timeout, testnet vs mainnet, and the price in USD for USDC; whether it declares a valid Bazaar listing; how fast it answers. Screens the payTo wallet against OFAC and, on Base or Ethereum, checks what it is (a wallet, multisig, or a token contract that would swallow the payment). Adds how much the endpoint and its seller are actually used: 30-day calls and unique paying wallets from the Coinbase Bazaar's published figures. Set max_price_usd to enforce a budget. Returns ok_to_pay, caution or do_not_pay with reasons. An unreachable endpoint is an answer (do_not_pay). You are only charged when a result is returned: invalid input (400) and upstream failures (4xx/5xx) are not settled. Costs $0.003 USDC per call via x402. Paid per call with x402 inside MCP (see the server instructions).

NameRequiredDescriptionDefault
urlYesThe paid endpoint, e.g. https://api.example.com/v1/tool.
viaNoOptional: the tool whose next_calls suggested this call (filled in for you).
methodNoHow to request it: auto (default) tries GET, then POST with an empty JSON body.auto
max_price_usdNoYour budget per call: a higher price makes the verdict do_not_pay.

TDQS

A4.4/5.0
Behavior5/5

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

Annotations only supply readOnly/openWorld/idempotent hints, but the description goes far beyond them: it discloses the request mechanics (GET then POST, unpaid), the checks performed (402 challenge parsing, OFAC screen, contract-vs-wallet detection on Base/Ethereum, Bazaar usage figures), the verdict vocabulary, and notably the billing semantics (only charged when a result returns; 400 and 4xx/5xx are not settled, $0.003 USDC per call). That is exactly the extra context an agent needs before invoking a paid tool.

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

Conciseness4/5

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

Front-loaded with the decision question and trigger, then moves through checks, verdicts, billing, and cost in a tight sequence. It is long, but nearly every sentence carries distinct operational information; only the title restatement at the top is mildly redundant.

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

Completeness5/5

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

For a no-output-schema tool with an open-world, paid side effect, the description supplies everything needed: the request method, the checks, the return verdicts (ok_to_pay/caution/do_not_pay with reasons), the unreachable-endpoint case, and the settlement rules. Nothing material is left for the agent to infer.

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

Parameters3/5

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

Schema description coverage is 100%, so all four parameters are already documented, including max_price_usd's effect on the verdict and method's auto GET-then-POST behavior. The description largely restates these ('Set max_price_usd to enforce a budget'; GET, then POST) without adding format or edge-case detail, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

The description opens with a specific verb and resource framed as a decision question: it answers whether an x402 endpoint is safe to pay before an agent pays an unknown seller. This is a distinct capability no sibling (token_risk_check, wallet_risk_check, counterparty_check, sanctions_screen) covers, so an agent can route to it confidently.

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

Usage Guidelines4/5

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

Gives a clear triggering context: run it 'before an agent pays a seller it has not used before', and instructs the agent to use max_price_usd to enforce a budget. It does not name an alternative or state when to skip it (e.g., already-verified sellers), so it stops short of explicit when-not guidance.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 2 tool updates
    • Addeddaily_briefing
    • Addeddaily_briefing_subscription
  2. 1 tool update
    • Addedcrypto_tax_ledger
  3. 1 tool update
    • Addedtoken_verdict
  4. 2 tool updates
    • Addedsec_fund_holdings
    • Addedsec_ipo_filings
  5. 1 tool update
    • Addedcounterparty_check
  6. 34 tool updates
    • Changedcompany_dossier1 field changed
      • addedInput schema / properties / via
        Added value: +{
        +  "description": "Optional: the tool whose next_calls suggested this call (filled in for you).",
        +  "maxLength": 64,
        +  "type": "string"
        +}
    • Changedcompany_dossier_batch1 field changed
      • addedInput schema / properties / via
        Added value: +{
        +  "description": "Optional: the tool whose next_calls suggested this call (filled in for you).",
        +  "maxLength": 64,
        +  "type": "string"
        +}
    • Changedcompany_profile1 field changed
      • addedInput schema / properties / via
        Added value: +{
        +  "description": "Optional: the tool whose next_calls suggested this call (filled in for you).",
        +  "maxLength": 64,
        +  "type": "string"
        +}
    • Changeddomain_enrich1 field changed
      • addedInput schema / properties / via
        Added value: +{
        +  "description": "Optional: the tool whose next_calls suggested this call (filled in for you).",
        +  "maxLength": 64,
        +  "type": "string"
        +}
    • Changedeconomic_indicators1 field changed
      • addedInput schema / properties / via
        Added value: +{
        +  "description": "Optional: the tool whose next_calls suggested this call (filled in for you).",
        +  "maxLength": 64,
        +  "type": "string"
        +}
    • Changedemail_verify1 field changed
      • addedInput schema / properties / via
        Added value: +{
        +  "description": "Optional: the tool whose next_calls suggested this call (filled in for you).",
        +  "maxLength": 64,
        +  "type": "string"
        +}
    • Changedfree_sample1 field changed
      • addedInput schema / properties / via
        Added value: +{
        +  "description": "Optional: the tool whose next_calls suggested this call (filled in for you).",
        +  "maxLength": 64,
        +  "type": "string"
        +}
    • Changedhvac_coil_load1 field changed
      • addedInput schema / properties / via
        Added value: +{
        +  "description": "Optional: the tool whose next_calls suggested this call (filled in for you).",
        +  "maxLength": 64,
        +  "type": "string"
        +}
    • Changedhvac_duct_size1 field changed
      • addedInput schema / properties / via
        Added value: +{
        +  "description": "Optional: the tool whose next_calls suggested this call (filled in for you).",
        +  "maxLength": 64,
        +  "type": "string"
        +}
    • Changedhvac_psychrometrics1 field changed
      • addedInput schema / properties / via
        Added value: +{
        +  "description": "Optional: the tool whose next_calls suggested this call (filled in for you).",
        +  "maxLength": 64,
        +  "type": "string"
        +}
    • Changednew_token_launches1 field changed
      • addedInput schema / properties / via
        Added value: +{
        +  "description": "Optional: the tool whose next_calls suggested this call (filled in for you).",
        +  "maxLength": 64,
        +  "type": "string"
        +}
    • Changedsanctions_screen1 field changed
      • addedInput schema / properties / via
        Added value: +{
        +  "description": "Optional: the tool whose next_calls suggested this call (filled in for you).",
        +  "maxLength": 64,
        +  "type": "string"
        +}
    • Changedscrape_batch1 field changed
      • addedInput schema / properties / via
        Added value: +{
        +  "description": "Optional: the tool whose next_calls suggested this call (filled in for you).",
        +  "maxLength": 64,
        +  "type": "string"
        +}
    • Changedscrape_markdown1 field changed
      • addedInput schema / properties / via
        Added value: +{
        +  "description": "Optional: the tool whose next_calls suggested this call (filled in for you).",
        +  "maxLength": 64,
        +  "type": "string"
        +}
    • Changedsec_alert_subscription1 field changed
      • addedInput schema / properties / via
        Added value: +{
        +  "description": "Optional: the tool whose next_calls suggested this call (filled in for you).",
        +  "maxLength": 64,
        +  "type": "string"
        +}
    • Changedsec_alert_subscription_status1 field changed
      • addedInput schema / properties / via
        Added value: +{
        +  "description": "Optional: the tool whose next_calls suggested this call (filled in for you).",
        +  "maxLength": 64,
        +  "type": "string"
        +}
    • Changedsec_alerts_peek1 field changed
      • addedInput schema / properties / via
        Added value: +{
        +  "description": "Optional: the tool whose next_calls suggested this call (filled in for you).",
        +  "maxLength": 64,
        +  "type": "string"
        +}
    • Changedsec_earnings_today1 field changed
      • addedInput schema / properties / via
        Added value: +{
        +  "description": "Optional: the tool whose next_calls suggested this call (filled in for you).",
        +  "maxLength": 64,
        +  "type": "string"
        +}
    • Changedsec_filing_section1 field changed
      • addedInput schema / properties / via
        Added value: +{
        +  "description": "Optional: the tool whose next_calls suggested this call (filled in for you).",
        +  "maxLength": 64,
        +  "type": "string"
        +}
    • Changedsec_filing_sections1 field changed
      • addedInput schema / properties / via
        Added value: +{
        +  "description": "Optional: the tool whose next_calls suggested this call (filled in for you).",
        +  "maxLength": 64,
        +  "type": "string"
        +}
    • Changedsec_financials1 field changed
      • addedInput schema / properties / via
        Added value: +{
        +  "description": "Optional: the tool whose next_calls suggested this call (filled in for you).",
        +  "maxLength": 64,
        +  "type": "string"
        +}
    • Changedsec_full_text_search1 field changed
      • addedInput schema / properties / via
        Added value: +{
        +  "description": "Optional: the tool whose next_calls suggested this call (filled in for you).",
        +  "maxLength": 64,
        +  "type": "string"
        +}
    • Changedsec_insider_trades1 field changed
      • addedInput schema / properties / via
        Added value: +{
        +  "description": "Optional: the tool whose next_calls suggested this call (filled in for you).",
        +  "maxLength": 64,
        +  "type": "string"
        +}
    • Changedsec_list_filings1 field changed
      • addedInput schema / properties / via
        Added value: +{
        +  "description": "Optional: the tool whose next_calls suggested this call (filled in for you).",
        +  "maxLength": 64,
        +  "type": "string"
        +}
    • Changedsec_market_alerts1 field changed
      • addedInput schema / properties / via
        Added value: +{
        +  "description": "Optional: the tool whose next_calls suggested this call (filled in for you).",
        +  "maxLength": 64,
        +  "type": "string"
        +}
    • Changedsec_recent_events1 field changed
      • addedInput schema / properties / via
        Added value: +{
        +  "description": "Optional: the tool whose next_calls suggested this call (filled in for you).",
        +  "maxLength": 64,
        +  "type": "string"
        +}
    • Changedsec_section_changes1 field changed
      • addedInput schema / properties / via
        Added value: +{
        +  "description": "Optional: the tool whose next_calls suggested this call (filled in for you).",
        +  "maxLength": 64,
        +  "type": "string"
        +}
    • Changedsite_map1 field changed
      • addedInput schema / properties / via
        Added value: +{
        +  "description": "Optional: the tool whose next_calls suggested this call (filled in for you).",
        +  "maxLength": 64,
        +  "type": "string"
        +}
    • Changedtoken_launches_peek1 field changed
      • addedInput schema / properties / via
        Added value: +{
        +  "description": "Optional: the tool whose next_calls suggested this call (filled in for you).",
        +  "maxLength": 64,
        +  "type": "string"
        +}
    • Changedtoken_risk_check1 field changed
      • addedInput schema / properties / via
        Added value: +{
        +  "description": "Optional: the tool whose next_calls suggested this call (filled in for you).",
        +  "maxLength": 64,
        +  "type": "string"
        +}
    • Changedwallet_risk_check1 field changed
      • addedInput schema / properties / via
        Added value: +{
        +  "description": "Optional: the tool whose next_calls suggested this call (filled in for you).",
        +  "maxLength": 64,
        +  "type": "string"
        +}
    • Changedweb_search1 field changed
      • addedInput schema / properties / via
        Added value: +{
        +  "description": "Optional: the tool whose next_calls suggested this call (filled in for you).",
        +  "maxLength": 64,
        +  "type": "string"
        +}
    • Changedweb_search_read1 field changed
      • addedInput schema / properties / via
        Added value: +{
        +  "description": "Optional: the tool whose next_calls suggested this call (filled in for you).",
        +  "maxLength": 64,
        +  "type": "string"
        +}
    • Changedx402_preflight1 field changed
      • addedInput schema / properties / via
        Added value: +{
        +  "description": "Optional: the tool whose next_calls suggested this call (filled in for you).",
        +  "maxLength": 64,
        +  "type": "string"
        +}
  7. 2 tool updates
    • Addedsec_alert_subscription
    • Addedsec_alert_subscription_status
  8. 1 tool update
    • Addedsec_earnings_today
  9. 12 tool updates
    • Addedcompany_dossier
    • Addedcompany_dossier_batch
    • Addedfree_sample
    • Addednew_token_launches
    • Addedsec_alerts_peek
    • Addedsec_market_alerts
    • Addedtoken_launches_peek
    • Addedtoken_risk_check
    • Addedwallet_risk_check
    • Addedweb_search
    • Addedweb_search_read
    • Addedx402_preflight
  10. 1 tool update
    • Changedsec_list_filings3 fields changed
      • addedInput schema / properties / items
        Added value: +{
        +  "description": "Only 8-Ks reporting any of these items, e.g. [\"2.02\"] for earnings, [\"5.02\"] for executive changes, [\"1.05\"] for cybersecurity incidents (words like \"earnings\" work too). Implies forms [\"8-K\"].",
        +  "items": {
        +    "pattern": "^\\d\\.\\d{2}$",
        +    "type": "string"
        +  },
        +  "minItems": 1,
        +  "type": "array"
        +}
      • changedInput schema / properties / since / description
        Previous value: -"Only filings filed on or after this date (YYYY-MM-DD). Reaches back to 2001."New value: +"Only filings filed on or after this date (YYYY-MM-DD). Reaches back to 2001 for one company; the market-wide feed covers about the last few business days."
      • changedInput schema / properties / ticker / description
        Previous value: -"US stock ticker, e.g. AAPL, MSFT, BRK-B. Use this, `cik` or `company`."New value: +"US stock ticker, e.g. AAPL, MSFT, BRK-B. Use this, `cik` or `company`; leave all three out for the latest filings of all companies."
  11. 10 tool updates
    • Addedcompany_profile
    • Addedeconomic_indicators
    • Addedemail_verify
    • Addedhvac_coil_load
    • Addedhvac_duct_size
    • Addedhvac_psychrometrics
    • Addedsanctions_screen
    • Addedscrape_batch
    • Addedsec_full_text_search
    • Addedsite_map
  12. 2 tool updates
    • Changedscrape_markdown6 fields changed
      • addedInput schema / properties / include_links
        Added value: +{
        +  "default": false,
        +  "description": "Also return the page's links as a list (url, text, internal). Default false.",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / max_chars
        Added value: +{
        +  "default": 100000,
        +  "description": "Return at most this many characters (1,000-100,000, default 100,000).",
        +  "maximum": 100000,
        +  "minimum": 1000,
        +  "type": "integer"
        +}
      • addedInput schema / properties / mode
        Added value: +{
        +  "default": "main",
        +  "description": "main (default): the article or main content only. full: the whole page, including navigation and footers.",
        +  "enum": [
        +    "main",
        +    "full"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / offset
        Added value: +{
        +  "default": 0,
        +  "description": "Start at this character of the Markdown; pass the previous response's next_offset to read a long page in parts.",
        +  "maximum": 9007199254740991,
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • addedInput schema / properties / strip_link_urls
        Added value: +{
        +  "default": false,
        +  "description": "Write links as plain text in the Markdown (keeps the text, drops the URLs) to save tokens. Default false.",
        +  "type": "boolean"
        +}
      • changedInput schema / properties / url / description
        Previous value: -"Public http(s) URL of the page to convert, e.g. https://example.com/article."New value: +"Public http(s) URL to read: a web page, PDF, text, JSON or RSS/Atom feed, e.g. https://example.com/article."
    • Addedsec_insider_trades
  13. 1 tool update
    • Addedsec_financials
  14. 2 tool updates
    • Addedsec_filing_sections
    • Addedsec_section_changes
  15. 3 tool updates
    • Changedsec_filing_section3 fields changed
      • changedInput schema / properties / cik / description
        Previous value: -"SEC Central Index Key, e.g. 320193. Use this or `ticker`."New value: +"SEC Central Index Key, e.g. 320193. Use this, `ticker` or `company`."
      • addedInput schema / properties / company
        Added value: +{
        +  "description": "Company name, e.g. \"Apple\" or \"Coca-Cola\". Use this, `ticker` or `cik`; a name matching several companies returns their tickers, free.",
        +  "maxLength": 120,
        +  "minLength": 2,
        +  "type": "string"
        +}
      • changedInput schema / properties / ticker / description
        Previous value: -"US stock ticker, e.g. AAPL, MSFT, BRK-B. Use this or `cik`."New value: +"US stock ticker, e.g. AAPL, MSFT, BRK-B. Use this, `cik` or `company`."
    • Changedsec_list_filings3 fields changed
      • changedInput schema / properties / cik / description
        Previous value: -"SEC Central Index Key, e.g. 320193. Use this or `ticker`."New value: +"SEC Central Index Key, e.g. 320193. Use this, `ticker` or `company`."
      • addedInput schema / properties / company
        Added value: +{
        +  "description": "Company name, e.g. \"Apple\" or \"Coca-Cola\". Use this, `ticker` or `cik`; a name matching several companies returns their tickers, free.",
        +  "maxLength": 120,
        +  "minLength": 2,
        +  "type": "string"
        +}
      • changedInput schema / properties / ticker / description
        Previous value: -"US stock ticker, e.g. AAPL, MSFT, BRK-B. Use this or `cik`."New value: +"US stock ticker, e.g. AAPL, MSFT, BRK-B. Use this, `cik` or `company`."
    • Changedsec_recent_events3 fields changed
      • changedInput schema / properties / cik / description
        Previous value: -"SEC Central Index Key, e.g. 320193. Use this or `ticker`."New value: +"SEC Central Index Key, e.g. 320193. Use this, `ticker` or `company`."
      • addedInput schema / properties / company
        Added value: +{
        +  "description": "Company name, e.g. \"Apple\" or \"Coca-Cola\". Use this, `ticker` or `cik`; a name matching several companies returns their tickers, free.",
        +  "maxLength": 120,
        +  "minLength": 2,
        +  "type": "string"
        +}
      • changedInput schema / properties / ticker / description
        Previous value: -"US stock ticker, e.g. AAPL, MSFT, BRK-B. Use this or `cik`."New value: +"US stock ticker, e.g. AAPL, MSFT, BRK-B. Use this, `cik` or `company`."
  16. 5 tool updates
    • First observeddomain_enrich
    • First observedscrape_markdown
    • First observedsec_filing_section
    • First observedsec_list_filings
    • First observedsec_recent_events

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables screening companies or people against OFAC, UN, EU and UK sanctions lists, looking up SEC EDGAR records, checking domain age and email records, and compiling due-diligence reports with source links and a clear, review, or hold verdict.
    -
  • A
    license
    Not graded
    quality
    F
    maintenance
    Archived and no longer maintained. Tools and prices shown here are out of date. Use the maintained server: glama.ai/mcp/servers/OceanAlt666/oceanalt-aml-mcp (GitHub: OceanAlt666/oceanalt-aml-mcp).
    314 npm
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Enables MCP clients to screen blockchain addresses and evaluate payment counterparties before funds move, returning clear/caution/risky verdicts, risk scores, and clickable evidence across EVM chains, Tron, and Solana. It also supports anti-blind-signing checks, x402 payment-requirement verification, identity/control baselines, and signed evidence bundles, with free tools and optional paid compliance tools.
    15
    314 npm
    MIT
  • F
    license
    Not graded
    quality
    B
    maintenance
    Keyless, pay-per-call compliance & regulated-data tools for AI agents: OFAC wallet + sanctions/PEP + KYB screening, SEC filings, FRED economics, FDA recalls, federal awards, and continuous monitoring (watch a wallet/company/brand for status changes). USDC via x402 on Base/Solana, no API key, no signup.
    -
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources