Coinbase Exchange
Server Details
Coinbase Exchange public MCP.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- pipeworx-io/mcp-coinbase-exchange
- GitHub Stars
- 0
- Server Listing
- coinbase-exchange MCP
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 4.3/5 across 41 of 41 tools scored. Lowest: 1.6/5.
Many tools are distinct in purpose, but there is notable overlap among the Pipeworx research tools (ask_pipeworx, ask_pipeworx_beta, ask_pipeworx_grounded, deep_research) and among Polymarket analysis tools (bet_research, polymarket_arbitrage, polymarket_edges, polymarket_edge_tracker). The Coinbase-specific tools are clearly distinct, but mixing two unrelated domains increases selection ambiguity.
Naming conventions are inconsistent. Some tools follow verb_noun (discover_tools, ask_pipeworx, generate_llms_txt), others are noun-only (product, currency, time, products), and the coinbase tools use a product_* prefix (product_book, product_candles). Singular/plural inconsistency (currency vs currencies) and the ask_pipeworx vs ask_pipeworx_beta/grounded variants also break predictability.
41 tools is excessive for a server ostensibly about Coinbase Exchange, which typically needs only around 10 tools for market data and trading. The count is inflated by dozens of unrelated Pipeworx utilities, making the tool surface feel bloated and unfocused.
For the Coinbase Exchange domain, the tool set is notably incomplete: it has market data (products, candles, ticker, trades) but lacks order management, account balances, fees, transfers, and other core trading operations. As a general research toolkit it is fairly complete, but the server's stated identity is Coinbase Exchange, leaving obvious functional gaps.
Available Tools
41 toolsai_visibility_checkAI Visibility CheckARead-onlyIdempotentInspect
Probe one or more LLMs for what they know about a business / brand / product / topic and score visibility (0-100) per model. Default model is Workers AI Llama-3.3-70b (free); pass _apiKey to also probe Anthropic (BYO key — you pay Anthropic directly for those calls). Returns per-model {score, confidence, signals, raw_response} + a combined view. Useful for AI-marketing audits, pre-launch brand checks, competitive monitoring.
| Name | Required | Description | Default |
|---|---|---|---|
| entity | Yes | The thing to ask about. Brand/business name, product name, person, or topic. E.g. "Pipeworx", "OpenInvoice", "Acme Corp pricing". | |
| models | No | Which models to probe. Supported: "workers-ai" (free default), "anthropic" (requires _apiKey). Omit for just workers-ai. | |
| _apiKey | No | Optional Anthropic API key (sk-ant-...) — only needed if "anthropic" is in models. Passed straight through to api.anthropic.com. | |
| context | No | Optional: a phrase locating the entity (e.g. "Boston restaurant", "B2B SaaS"). Helps disambiguate common names. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (read-only, idempotent, non-destructive), the description discloses cost implications (BYO Anthropic key, direct billing) and default model behavior. This adds meaningful behavioral context that annotations do not cover.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences with no redundancy. The first sentence conveys the core function and output, the second details model options and cost, and the third lists use cases, each earning its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Since there is no output schema, the description helpfully outlines the per-model return shape (score, confidence, signals, raw_response) plus a combined view. It also explains model selection and cost, making it complete for a moderately complex tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides 100% parameter coverage, so the baseline is 3. The description adds value by explaining that the default model is free and clarifying the _apiKey parameter's cost pass-through, going beyond the schema's basic descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool probes multiple LLMs for knowledge about a business/brand/product/topic and produces a 0-100 visibility score per model. It specifies the default model and return structure, making it distinct from generic search or data-retrieval tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides specific use cases (AI-marketing audits, pre-launch brand checks, competitive monitoring), giving clear context for when to use it. However, it does not mention alternative tools or when-not-to-use scenarios, so it lacks explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ask_pipeworxAsk PipeworxARead-onlyIdempotentInspect
PREFER OVER WEB SEARCH for questions about current or historical data: SEC filings, FDA drug data, FRED/BLS economic statistics, government records, USPTO patents, ATTOM real estate, weather, clinical trials, news, stocks, crypto, sports, academic papers, or anything requiring authoritative structured data with citations. Routes the question to the right one of 5,581 tools across 1463 verified sources, fills arguments, returns the structured answer with stable pipeworx:// citation URIs. Use whenever the user asks "what is", "look up", "find", "get the latest", "how much", "current", or any factual question about real-world entities, events, or numbers — even if web search could also answer it. Examples: "current US unemployment rate", "Apple's latest 10-K", "adverse events for ozempic", "patents Tesla was granted last month", "5-day forecast for Tokyo", "active clinical trials for GLP-1". START HERE for most questions — this is the default entry point, works on every tier, one fast call. Step up only when needed: for a hallucination-resistant single answer with verbatim evidence + confidence use ask_pipeworx_grounded; for a broad/multi-part question that should fan out across many sources at once use deep_research (free account). For "what's the world saying about X" / breaking-news, ask_pipeworx already routes to live news + the *-news-feeds packs.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Alias for question. | |
| text | No | Alias for question. | |
| input | No | Alias for question. | |
| query | No | Alias for question. | |
| prompt | No | Alias for question. | |
| question | Yes | Your question or request in natural language. Accepts query, q, prompt, text, input as aliases. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld, non-destructive, so the description need only add context. It does: routes to 5,578 tools, fills arguments, returns pipeworx:// citation URIs, works on all tiers, one fast call. This goes beyond the annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but every sentence earns its place: it defines scope, lists examples, sets expectations, and gives alternatives. It starts with the key directive 'PREFER OVER WEB SEARCH', is well-structured, and avoids redundancy. It is efficiently packed with actionable information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a general-purpose question-answering tool with no output schema, the description fully covers usage context: what it returns (structured answer + citations), when to use it (default), and when to use alternatives. It even notes handling of breaking news. There are no significant gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (all six parameters are aliases for the single 'question' string). The description provides usage examples that clarify question phrasing but does not add technical parameter details beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: routes questions to a large set of verified sources and returns structured answers with citation URIs. It lists specific categories (SEC filings, FDA data, etc.) and explicitly distinguishes itself from siblings ask_pipeworx_grounded and deep_research, providing strong differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Extensive guidance is given: 'PREFER OVER WEB SEARCH', when to use (factual questions about real-world entities), and when to step up to alternatives (grounded for verbatim evidence, deep_research for broad/multi-part). It also clarifies behavior for breaking news. This is explicit and thorough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ask_pipeworx_betaAsk Pipeworx BetaARead-onlyIdempotentInspect
Beta version of ask_pipeworx: identical universal router (same 5,581 tools, same arguments, same response shape) with candidate routing improvements enabled live whenever one is under test. No candidate is active right now (the last was retired on outcome evidence 2026-07-26), so this currently matches ask_pipeworx exactly. Use it exactly like ask_pipeworx when you want the newest routing; results are compared against the stable router to decide what merges. Falls back to nothing — this IS a full working router, just the experimental edge.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Alias for question. | |
| text | No | Alias for question. | |
| input | No | Alias for question. | |
| query | No | Alias for question. | |
| prompt | No | Alias for question. | |
| question | Yes | Your question or request in natural language. Accepts query, q, prompt, text, input as aliases. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is well-covered. The description adds valuable context about beta status, that it currently matches ask_pipeworx exactly when no candidate is active, and that it is a full working router rather than a fallback. This goes beyond the annotations without contradicting them, meriting a score above baseline.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences and front-loaded with the purpose, but contains some redundancy (repeats 'same 5,578 tools, same arguments, same response shape' and 'matches ask_pipeworx exactly'). It is efficient overall, though slightly verbose; a tighter version could omit the duplicate phrase without losing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the tool's nature, current state, usage, and relationship to ask_pipeworx. With no output schema, it references the same response shape as ask_pipeworx, which is sufficient given the sibling is known. It also clarifies it is not a fallback but a full working router. For a single-parameter tool, this is adequately complete, though a direct description of the response format would improve self-containedness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with the question parameter and its five aliases fully documented in the input schema. The description adds no additional parameter semantics beyond stating it has the same arguments as ask_pipeworx, which is redundant given the schema completeness. The baseline of 3 is appropriate; the description does not enhance parameter understanding further.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies this as a beta version of ask_pipeworx, a universal router with 5,578 tools, and explicitly differentiates it from the stable ask_pipeworx. The verb 'ask' and resource 'pipeworx' are clear, and it positions itself as the experimental edge version with candidate routing improvements.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly instructs to use it exactly like ask_pipeworx when wanting the newest routing and explains that results are compared against the stable router to decide merges. This provides clear when-to-use guidance and contrasts with the sibling ask_pipeworx, satisfying the requirement for explicit usage alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ask_pipeworx_groundedAsk Pipeworx — GroundedARead-onlyIdempotentInspect
Hallucination-resistant answer mode for high-stakes reads. Same routing as ask_pipeworx — picks the right tool from 5,581 across 1463 sources, fills arguments, fetches the data — then EXTRACTS the answer using ONLY what the tool result contains. Returns {answer, evidence (verbatim quote), confidence, source, fetched_at, refusal_reason:null} on success, OR an explicit refusal {answer:null, refusal_reason:"not_in_source"|"no_tool_match"|"tool_error"|"data_truncated"|"llm_error"} when the data doesn't directly answer. Use whenever an answer will be quoted, cited, or acted on, and the agent must not invent facts (financial verdicts, legal claims, medical lookups, public statements). Costs one extra LLM call vs ask_pipeworx — prefer ask_pipeworx for casual lookups.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Alias for question. | |
| text | No | Alias for question. | |
| input | No | Alias for question. | |
| query | No | Alias for question. | |
| prompt | No | Alias for question. | |
| question | Yes | Your question in natural language. Accepts query, q, prompt, text, input as aliases. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds substantial behavioral context beyond the annotations (readOnly, openWorld, idempotent, non-destructive). It details the refusal mechanism with specific refusal reasons, the evidence quote in the return object, the extra LLM call cost, and the structure of the return payload. There is no contradiction with annotations; instead, it enriches the agent's understanding of the tool's safeguards and limitations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but well-structured, starting with the core purpose, then details on routing, refusal, use cases, and cost. Every sentence contributes useful information to the agent. It is front-loaded and avoids extraneous wording, achieving high information density in a compact form.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool that routes across many underlying tools and has a complex refusal behavior, the description provides a complete picture: it explains what happens on success and failure, the return object structure, the extra cost, and when to prefer this over the sibling tool. Although there is no output schema, the description itself details the expected return values, making it sufficient for an agent to invoke and interpret results correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents all parameters as aliases for 'question' with 100% coverage. The description adds value by clarifying that the question should be in natural language and explicitly listing the accepted aliases (query, q, prompt, text, input). While this is redundant with schema text, it reinforces the intended usage without overcomplicating, and the single conceptual parameter makes the description adequate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose as a 'hallucination-resistant answer mode' that extracts answers only from tool results. It specifies the resource (grounded answer) and distinguishes it from the sibling 'ask_pipeworx' by contrasting its cost and use cases, making the differentiation explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides explicit guidance on when to use the tool: 'Use whenever an answer will be quoted, cited, or acted on...' and also states when to avoid it: 'prefer ask_pipeworx for casual lookups.' This gives clear context and an alternative, fully satisfying the usage guideline requirement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bet_researchBet ResearchARead-onlyIdempotentInspect
Research a Polymarket bet by pulling the relevant Pipeworx data for it in one call. Pass a market slug ("will-bitcoin-hit-150k-by-june-30-2026"), a polymarket.com URL, or a question text. The tool resolves the market, classifies the bet, fans out to category-specific data packs in parallel, and returns an evidence packet + simple market-vs-model comparison. Use for "should I bet on X", "what does the data say about Y", or "is there edge in Z". CLASSIFIERS: crypto_price, fed_rate, geopolitical, sports, sports_championship, drug_approval, election_candidate, tech_launch, space_launch, corporate, corporate_earnings, corporate_event, public_figure_speech, weather, other. FAN-OUT EXAMPLES: BTC bet → coingecko + fred + gdelt+gnews; Fed bet → fred (DFEDTARU + EFFR + CPIAUCSL) + kalshi_macro (KXFED implied probs) + recent_fed_actions (federal-register rules, last 365d); Hormuz bet → imf_portwatch + airspace + gdelt; Yankees WS → mlb_stats_standings + parent_event partition + news; hottest-year bet → climate_projection_nyc + gistemp_latest (NASA global anomaly, rank since 1880) + news; NVDA-vs-AAPL → finnhub get_quote + edgar shares-outstanding (derived market cap) + edgar filings + news. RESPONSE SHAPES: result.market carries best_bid/best_ask/spread_pp/liquidity/price_change_1h/1d/1w; result.analysis carries model_probability/edge_pp/kelly_fraction_half when a closed-form model fires PLUS a 24h-move warning ("Market moved X.Xpp in 24h, comparable to model edge — your edge may already be priced in") when relevant; result.evidence is keyed by source. RESOLVER CONTRACT: result.market_match_confidence ∈ {high, medium, low, none}, market_match_score (0-1 token-overlap), market_match_alternatives[] (other candidate markets the resolver considered), and suggestions[] (explicit re-query hints when the match is fuzzy) — ALWAYS inspect these before trusting the analysis block, because medium/low matches can still surface other fields. PARENT_EVENT EXTRACTOR: when the bet is one leg of a partition (Yankees WS, Romania election), result.parent_event{matched_candidate, top_legs_by_price[], partition_size, placeholders_filtered} gives you the peer prices in one place — that's the headline for elections/championships. NEWS FIELDS: news entries carry _fallback_attempted / _fallback_failed_reason / retry_after_sec when GDELT 429s and GNews backfill ran or failed. SAFETY: low-confidence resolutions short-circuit with status:"low_confidence_match" and suppress analysis fields so agents can't accidentally size on phantom matches. Closed/dead markets that ARE still indexed by Polymarket (yes_price≈0, no volume, no liquidity) return status:"market_closed_or_inactive" and skip fan-out. In practice resolved markets are usually de-indexed and instead surface via the low_confidence_match path above — both routes are BLOCKING, just different mechanisms. Wide-spread markets (>10pp) carry tradeability:"illiquid_wide_spread" + an explanatory note. RESOLUTION-RULE RISK: market.cancellation_rule parses the void/postponement settlement out of the resolution text — refund_50_50 (shares settle flat 50¢ on void; EV-material for any entry away from 50¢, with ev_impact quantified), resolves_no_on_cancel, resolves_yes_on_cancel, carries_to_reschedule, or mentioned_unclear. null means the description never mentions cancellation. Check this before sizing sports/esports/event-occurrence bets — audited arb-bot ledgers show flat-50¢ void settlements are a recurring pure-rules loss.
| Name | Required | Description | Default |
|---|---|---|---|
| depth | No | quick = 2-3 evidence sources, thorough = full fan-out. Default thorough. | |
| market | Yes | Polymarket slug ("will-bitcoin-hit-150k-by-june-30-2026"), full URL ("https://polymarket.com/event/..."), or question text ("Will Bitcoin hit $150k by June 30?") | |
| include_raw | No | Default false. When false (recommended), FRED/FDA/GDELT/Federal-Register evidence is summarized to the few fields agents actually use — keeps responses under ~20KB. Pass true to get full upstream payloads (50KB-500KB) when you need to recompute deltas, cite specific observations, or post-process. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds rich behavioral context: fan-out to category-specific data packs, resolver contract with market_match_confidence and alternatives, parent_event extractor, news fallback mechanisms, low-confidence short-circuit statuses, closed-market handling, wide-spread illiquidity warnings, and cancellation rules. This far exceeds what 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with bold section headers and prioritizes the core purpose first. It is lengthy (~300 words) but every section earns its place given the tool's complexity, covering classifiers, fan-out examples, response shapes, safety statuses, and resolution-rule risk. It could be tightened by trimming redundant explanations (e.g., the closed-market dual-path nuance), but overall it is appropriately detailed for a complex tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description must fully describe return values. It does so comprehensively: result.market fields (best_bid, spread_pp, price_change), result.analysis (model_probability, edge_pp, kelly_fraction), result.evidence, resolver contract fields, parent_event structure, news fallback fields, and status enums. It also covers edge cases like illiquid markets and cancellation rules, making it complete for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description restates that 'market' accepts a slug, URL, or question text, which the schema already documents. It adds examples of fan-out behavior (BTC bet → coingecko + fred + gdelt+gnews) but does not provide new syntax or format details for parameters. Thus it meets the baseline but does not meaningfully exceed it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource: 'Research a Polymarket bet by pulling the relevant Pipeworx data for it in one call.' It clearly distinguishes from siblings (e.g., product_ticker, polymarket_edges) by emphasizing market resolution, classification, fan-out, and evidence packet generation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit use cases: 'Use for "should I bet on X", "what does the data say about Y", or "is there edge in Z".' It also gives practical guidance like checking resolution-rule risk before sizing sports bets. However, it does not explicitly state when not to use this tool or name alternative tools, so it falls slightly short of a perfect 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compare_entitiesCompare EntitiesARead-onlyIdempotentInspect
"Compare X and Y" / "X vs Y" / "X versus Y" / "which is bigger / better / larger / more profitable" / "rank these companies" / "head to head" — side-by-side comparison of 2–5 companies or drugs in ONE parallel call. ALWAYS PREFER over sequential single-pack lookups when comparing entities. type="company" pulls LATEST 10-K revenue + net income + cash + long-term debt from SEC EDGAR/XBRL (off-calendar fiscal years handled correctly — AAPL Sep, NVDA Jan, etc.). type="drug" pulls FAERS adverse-event counts, FDA approval counts, active trial counts. Results sorted by primary metric so "largest" / "most" / "biggest" reads off the top of the response. Returns paired data + pipeworx:// citation URIs per entity. Replaces 8–15 sequential lookups.
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | Entity type: "company" or "drug". | |
| values | Yes | For company: 2–5 tickers/CIKs (e.g., ["AAPL","MSFT"]). For drug: 2–5 names (e.g., ["ozempic","mounjaro"]). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/idempotent annotations, the description discloses data sources (SEC EDGAR/XBRL for companies, FAERS/FDA for drugs), correct handling of off-calendar fiscal years, sorting by primary metric, and output includes paired data with citation URIs. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but every clause carries operational value: trigger phrases help recognition, the preference rule guides tool selection, and the type-specific details justify invocation. It is front-loaded with purpose and avoids filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by stating what is returned (paired data, sorted results, citation URIs) and what data fields each type covers. It provides enough for an agent to select, invoke, and interpret results without additional lookups.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Although the schema already documents both parameters (100% coverage), the description adds meaningful behavioral context: choosing 'company' pulls specific financial fields while 'drug' pulls adverse-event/trial counts. It also provides examples for the values array and reinforces the 2–5 constraint.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly frames the tool as a side-by-side comparison of 2–5 companies or drugs, with natural-language trigger phrases and a clear contrast to sequential lookups. It clearly identifies the resource (entities) and the verb (compare/rank), distinguishing it from other entity tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states when to use ('when comparing entities') and explicitly prefers this tool over sequential single-pack lookups. It also clarifies entity-type-specific behavior (company vs drug) and result sorting, giving the agent actionable selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
currenciesCurrenciesBRead-onlyIdempotentInspect
List currencies.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| count | Yes | Number of items returned. |
| items | Yes | List of supported currencies |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description 'List currencies' adds no additional behavioral context such as data scope, return format, or safety nuances. Since it provides no value beyond the annotations, it scores 2.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is exactly two words, 'List currencies.' For a zero-parameter listing tool, this is appropriately sized and front-loaded. There is no wasted wording, so it earns a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity, zero parameters, strong annotations, and presence of an output schema, the description is minimally complete. It could optionally mention what currencies are included (e.g., fiat, crypto) but does not need to for a simple list-all operation, so it scores 4.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the baseline is 4. The schema is empty with 100% coverage, and the description does not need to explain parameters. Thus, it fulfills the requirement adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List currencies' uses a specific verb and resource, clearly stating what the tool does. It does not explicitly differentiate from the sibling tool 'currency', though the plural form hints at a listing versus single-item lookup. This is clear but lacks explicit sibling differentiation, so it is a 4.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives like 'currency'. The description only states the action without any context for selection, so it scores 2 for no guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
currencyCurrencyDRead-onlyIdempotentInspect
Single currency.
| Name | Required | Description | Default |
|---|---|---|---|
| currency_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | Currency ID |
| name | No | Currency name |
| status | No | Currency status |
| details | No | Additional currency details |
| min_size | No | Minimum withdrawal size |
| max_precision | No | Max decimal precision |
| convertible_to | No | Convertible currencies |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, open-world, idempotent behavior. The description adds no additional behavioral context such as data source, return fields, or limitations, so it does not go beyond the structured annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is very short but under-specified rather than concise; the two-word phrase does not earn its place because it communicates almost nothing about the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool, the description still lacks the core action and usage context needed to select and invoke it. The presence of an output schema helps, but the description leaves the agent guessing what the tool actually does.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has a single required currency_id with examples but no descriptions; the description does not explain parameter semantics or accepted values. With 0% schema coverage, this leaves the agent without any compensation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Single currency.' merely restates the tool name and lacks an actionable verb (e.g., 'get', 'fetch'). It provides minimal differentiation from the sibling 'currencies' tool only by implying singular scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus 'currencies' or other product tools. There is no mention of use cases, exclusions, or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deep_researchDeep ResearchARead-onlyIdempotentInspect
ACCOUNT REQUIRED (free — sign in via GitHub at https://pipeworx.io/signup; depth:"thorough" needs a paid plan). If you are not signed in, use ask_pipeworx instead — it works on every tier. Grounded multi-source research across Pipeworx's 1463 STRUCTURED data sources (SEC filings, FRED/BLS economics, FDA, USPTO patents, markets, science, government records, etc.) in ONE call — this is NOT open-web search. Decomposes your question into focused facets, routes each to the right one of 5,581 tools IN PARALLEL, and returns a findings packet: verbatim evidence + confidence + source + fetched_at + a stable pipeworx:// citation per finding, with explicit gaps[] for facets the data couldn't answer (never invented). Best for broad/multi-part questions over structured data ("compare X and Y's regulatory + financial exposure", "research the filings + market picture for ACME"). For a single lookup use ask_pipeworx (one LLM call, not many). For BREAKING or colloquial CURRENT-NEWS / "what's the world saying about X" topics, prefer ask_pipeworx — it routes to live news APIs and the *-news-feeds packs; deep_research returns mostly empty gaps[] when the topic isn't in the structured catalog. Second-hop iteration: depth:"standard" re-angles unanswered gaps (gap recovery); depth:"thorough" additionally chases the best leads from the first pass — so multi-step questions resolve in one call. Every finding carries a hop field and a citation_uri — a resolvable pipeworx:// record URI, present only when the source emits one that resources/read can actually serve, so a citation you get back is always fetchable. "standard" and "thorough" also return contradictions[] flagging findings that disagree. Large records are semantically excerpted to the passages relevant to each facet (not head-truncated), so answers deep in a long filing/series aren't missed. Expect 15-60s (thorough with its follow-up + contradiction pass: up to ~90s).
| Name | Required | Description | Default |
|---|---|---|---|
| depth | No | How many facets to research in parallel: quick=3 (single hop), standard=3 (default; adds a gap-recovery hop that re-angles unanswered facets + a contradictions[] scan across findings), thorough=6 (paid; adds a full iterative hop that chases leads + recovers gaps, plus the contradictions[] scan). | |
| question | Yes | The research question, in natural language. Broad/multi-part is fine — decomposition is the point. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses extensive behavioral traits beyond annotations: account/payment requirements, decomposition into facets, parallel routing, gaps[] never invented, hop field and citation_uri validity, contradictions scan, semantic excerpting, and latency expectations. This far exceeds the annotation hints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Although long, every sentence adds critical information (auth, scope, alternatives, output format, caveats, latency). The description is front-loaded with the account requirement and structured logically, making the length appropriate for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex research tool with no output schema, the description fully explains return values (findings packet with evidence, confidence, source, gaps[]), process, second-hop behavior, and constraints. It leaves no ambiguity about what the tool returns or when it is appropriate to use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already covers both parameters at 100%, so baseline is 3. The description adds meaningful extra context: depth:'thorough' requires a paid plan, depth behaviors are further elaborated, and question accepts broad/multi-part input. This additional pricing and behavior detail justifies a 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Grounded multi-source research across Pipeworx's 1463 STRUCTURED data sources' with decomposition and parallel routing. It explicitly contrasts with ask_pipeworx and open-web search, making it distinct from siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use and when-not-to-use guidance: 'Best for broad/multi-part questions over structured data', 'For a single lookup use ask_pipeworx', and 'For BREAKING or colloquial CURRENT-NEWS... prefer ask_pipeworx' with reasoning about gaps[].
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discover_toolsDiscover ToolsARead-onlyIdempotentInspect
Find tools by describing the data or task. Use when you need to browse, search, look up, or discover what tools exist for: SEC filings, financials, revenue, profit, FDA drugs, adverse events, FRED economic data, Census demographics, BLS jobs/unemployment/inflation, ATTOM real estate, ClinicalTrials, USPTO patents, weather, news, crypto, stocks. Returns the top-N most relevant tools with names, descriptions, and full input schemas (with curated examples) — each result is ready to call directly, no second schema lookup needed. Call this FIRST when you have many tools available and want to see the option set (not just one answer).
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Alias for query. | |
| task | No | Alias for query. | |
| limit | No | Maximum number of tools to return (default 20, max 50) | |
| query | Yes | Natural language description of what you want to do (e.g., "analyze housing market trends", "look up FDA drug approvals", "find trade data between countries"). Accepts task, q, description, search as aliases. | |
| search | No | Alias for query. | |
| description | No | Alias for query. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds valuable behavioral context by disclosing the return format: 'Returns the top-N most relevant tools with names, descriptions, and full input schemas (with curated examples) — each result is ready to call directly, no second schema lookup needed.' This goes beyond simple safety declarations to explain what the agent can expect from the output, though it doesn't mention limit behavior or pagination.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and front-loaded. It starts with the core purpose, then usage context, then output details, then a strategic note ('Call this FIRST'). The list of domains is long but necessary to clarify scope. Every sentence earns its place, and the overall length is justified for a discovery tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only meta-search tool, the description is complete. It covers input (natural language query), output (tool names, descriptions, schemas), and usage guidance (when to call first). Even without an output schema, the description fully explains the return value. The combination of annotations and description leaves no significant gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with all parameters (q, task, limit, query, search, description) already documented. The description adds little beyond the schema: it emphasizes 'describing the data or task' and provides examples via a list, but this is already captured in the query parameter's description. The 'top-N' mention relates to limit but doesn't add new semantic detail. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Find tools by describing the data or task.' It specifies a concrete verb ('find'), a resource ('tools'), and a method ('by describing the data or task'). It also lists broad categories (SEC filings, financials, FDA drugs, etc.), making it easy to distinguish from siblings. The directive 'Call this FIRST when you have many tools available' reinforces its role as a discovery meta-tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit guidance is provided: 'Use when you need to browse, search, look up, or discover what tools exist for...' and 'Call this FIRST when you have many tools available and want to see the option set (not just one answer).' This clearly communicates when to invoke this tool versus directly calling a specific tool, though it does not name alternative tools individually.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
entity_profileEntity ProfileARead-onlyIdempotentInspect
"Tell me about X" / "research Acme" / "brief me on Tesla" / "what does Apple do" / "company profile for Microsoft" / "give me the rundown on NVDA" / "everything you know about $TICKER" — full cross-source profile of a US public company in ONE parallel call. ALWAYS PREFER over chaining single-pack SEC/XBRL/news lookups when the user asks for a holistic view. Fans out across SEC EDGAR, XBRL, USPTO, news, GLEIF and returns: cik + company_name; recent_filings (up to 5 with pipeworx://edgar/company/{cik}/filings/{accession} URIs); fundamentals (LATEST 10-K Revenues + NetIncomeLoss + Cash, sorted period_end DESC); patents (USPTO PatentsView API sunset May 2025 — soft-fails until reactivated); recent news mentions via GDELT→GNews fallback; LEI via GLEIF. Pass ticker "AAPL" or zero-padded CIK "0000320193" — names not supported (use resolve_entity first if you only have a name).
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | Entity type. Only "company" supported today; person/place coming soon. | |
| value | Yes | Ticker (e.g., "AAPL") or zero-padded CIK (e.g., "0000320193"). Names not supported — use resolve_entity first if you only have a name. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint/idempotentHint annotations, the description discloses important behavioral details: fans out across specific sources (SEC EDGAR, XBRL, USPTO, news, GLEIF), returns up to 5 filings with pipeworx URIs, fundamentals sorted by period_end DESC, patents API sunset May 2025 with soft-fail, and GDELT→GNews fallback. It also states the input format restriction (ticker/CIK only). This goes 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a dense paragraph but well-structured: example queries first, then a clear purpose statement, usage preference, detailed output breakdown, and input requirements. Every sentence adds value, though it could be slightly more compact by separating examples from the formal description. Front-loaded with user-intent examples for quick pattern matching.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, the description meticulously lists all return fields: cik + company_name; recent_filings (up to 5 with URIs); fundamentals (latest 10-K Revenues, NetIncomeLoss, Cash, sorted); patents (with sunset status); news mentions via fallback; and LEI via GLEIF. It also notes the soft-fail behavior and naming limitation. For a tool with this many data sources and no output schema, the description is exceptionally complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already explains type (enum "company") and value (ticker or zero-padded CIK, names not supported). The description repeats this information without adding new parameter semantics. It provides examples ("AAPL", "0000320193") but these are illustrative rather than novel. Baseline 3 applies due to full schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb+resource: "full cross-source profile of a US public company in ONE parallel call." It clearly distinguishes from siblings like compare_entities, resolve_entity, and deep_research by focusing on a holistic company profile. Example queries like "Tell me about X" reinforce the intent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit guidance is given: "ALWAYS PREFER over chaining single-pack SEC/XBRL/news lookups when the user asks for a holistic view." It also directs users with only a name to use resolve_entity first, and warns that names are not supported. This clearly differentiates when to use this tool vs alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
forgetForgetADestructiveIdempotentInspect
Delete a previously stored memory by key. Use when context is stale, the task is done, or you want to clear sensitive data the agent saved earlier. Pair with remember and recall.
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | Memory key to delete |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=true, which cover the main safety profile. The description adds minimal behavioral context beyond the action itself; it mentions clearing sensitive data but does not elaborate on irreversibility or non-existent key behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with the core purpose. Every word earns its place without unnecessary fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (one parameter, no output schema), and the description plus annotations cover purpose, usage, and destructive/idempotent behavior adequately. Nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 100% description coverage for the single 'key' parameter, and the description simply repeats it as 'by key.' It adds no additional semantic meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action with a specific verb and resource: 'Delete a previously stored memory by key.' This distinguishes it from sibling tools like remember (store) and recall (retrieve).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use scenarios: 'Use when context is stale, the task is done, or you want to clear sensitive data the agent saved earlier.' Also mentions complementary tools: 'Pair with remember and recall.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_llms_txtGenerate llms.txtARead-onlyIdempotentInspect
Generate a production-ready llms.txt file for any URL so AI crawlers (ChatGPT, Claude, Perplexity) can index the site cleanly. Fetches the page, extracts title/description/key links, and emits the standard llms.txt markdown format. Output is a single text blob ready to drop at site-root/llms.txt. Useful for: getting a client's site indexed by AI, drafting llms.txt for your own project, or auditing how an AI crawler would see a competitor.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Full URL of the site to summarize, e.g. "https://example.com" or a specific landing page. | |
| max_links | No | Maximum number of link entries to include (default 25, max 50). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the operational behavior: fetches the page, extracts title/description/key links, and emits standard llms.txt markdown. It also clarifies the output is a single text blob. Annotations already declare readOnlyHint=true and destructiveHint=false, and the description adds process details beyond that, without contradicting the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences with a clear structure: purpose and value, process, and use cases. Every sentence is informative and no words are wasted. The use cases are neatly listed after a colon, making it easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (2 params, no nested objects, no output schema), and the description covers the process, output format, and use cases. Combined with rich annotations and complete schema descriptions, the description is fully adequate for an agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents both parameters (url and max_links). The description provides minimal additional parameter meaning—only indirectly referencing what the url is used for. It does not add beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: generating a production-ready llms.txt file for any URL. It specifies the resource (llms.txt), the action (generate), and the output format, distinguishing it from any sibling tool by its unique deliverable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit use cases ('getting a client's site indexed by AI, drafting llms.txt for your own project, or auditing how an AI crawler would see a competitor'), giving clear context for when to use the tool. However, it does not mention when not to use it or name alternative sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_subscriptionsList SubscriptionsARead-onlyIdempotentInspect
List the caller's active subscriptions. Returns id, type, params, created_at, last_fired_at, fire_count for each. Use this to review what you're monitoring before adding more or to find an id to cancel.
| Name | Required | Description | Default |
|---|---|---|---|
| include_inactive | No | Include cancelled subscriptions in the response (default false). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, covering the safety profile. The description adds caller scoping ('caller's active subscriptions') and return field details, but no additional behavioral context like rate limits or authentication. Consistent with the calibration example where annotations cover safety and description adds modest context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the verb and resource. It efficiently includes return fields and practical usage guidance without any fluff or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with one optional parameter and no output schema, the description covers purpose, return format, and practical usage. Minor gaps exist (e.g., no explicit mention of default exclusion of inactive subscriptions), but the schema fills that gap. Overall sufficiently complete for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage: the only parameter `include_inactive` is clearly documented with its default. The description adds no additional parameter semantics beyond what the schema provides, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function with a specific verb ('List') and resource ('the caller's active subscriptions'). It also distinguishes from sibling tools like subscribe/unsubscribe by framing it as a review step before adding or canceling. The return fields are listed, adding further clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit use cases: 'review what you're monitoring before adding more' and 'find an id to cancel.' This implies when to use it relative to subscribe/unsubscribe, though it does not explicitly state alternatives or exclusions. Clear context is present, but it falls short of fully explicit 'when not to use' guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipeworx_feedbackSend Pipeworx FeedbackAInspect
Tell the Pipeworx team something is broken, missing, or needs to exist. Use when a tool returns wrong/stale data (bug), when a tool you wish existed isn't in the catalog (feature/data_gap), or when something worked surprisingly well (praise). ONLY for tools served by this Pipeworx connection — if the tool came from a different MCP server in your client (another vendor's Gmail, Splunk, Slack, etc. connector), we cannot fix it and reporting it here only delays you; file it with that server instead. Not sure? Pipeworx tool names are the ones this connection lists. Describe the issue in terms of Pipeworx tools/packs — don't paste the end-user's prompt. Filing without an account returns a claim_token; pass it back later as pipeworx_feedback({claim_token:"pwfb_…"}) to read whether it was fixed and what changed. The team reads digests daily and signal directly affects roadmap. Rate-limited to 5 per identifier per day. Free; doesn't count against your tool-call quota.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | bug = something broke or returned wrong data. feature = a new tool or capability you wish existed. data_gap = data Pipeworx does not currently expose. praise = positive note. other = anything else. | |
| context | No | Optional structured context: which tool, pack, or vertical this relates to. | |
| message | No | Your feedback in plain text. Be specific (which tool, what error, what data was missing). 1-2 sentences typical, 2000 chars max. | |
| claim_token | No | Read the reply to a report you filed earlier: pass the `pwfb_…` token that filing returned, with no other arguments. Returns the status and, once resolved, what actually changed. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses rate limiting (5/day/identifier), free usage, non-quota nature, and the claim_token workflow (no-account filing returns a token that can be used later to read resolution status). These behaviors are not captured by the annotations (all false), so the description carries the full burden and fulfills it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is longer than average but every sentence carries distinct information: purpose, use cases, exclusions, content guidance, claim_token workflow, operational guarantees. It front-loads the core purpose and then layers details logically, so length is justified.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description must explain return behavior, and it does explain the claim_token response for anonymous filing and later status retrieval. It also covers rate limits and quota impact. One could want more detail on the exact response envelope, but for a feedback tool this is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All four parameters are already fully described in the schema (100% coverage), so the baseline is 3. The description adds extra value by explaining the claim_token round-trip workflow and by advising users to reference Pipeworx tools rather than paste end-user prompts, which clarifies the intended content for `message` and `claim_token`. This raises it to 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb-resource pair ('Tell the Pipeworx team') and enumerates the four feedback categories (bug, feature/data_gap, praise). It also differentiates from sibling tools by scoping to Pipeworx-owned tools, distinguishing it from ask_pipeworx or discovery tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use (bug, missing tool, praise) and when NOT to use (tools from other MCP servers), including instruction to file elsewhere. Also provides guidance on what to include (Pipeworx tool/pack names, not end-user prompts). This is textbook when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipeworx_trendingPipeworx TrendingARead-onlyIdempotentInspect
What other AI agents are calling on Pipeworx right now. Returns the top tools, top packs, and total call volume over a recent window (24h, 7d, or 30d). Useful for: (1) discovering what data sources are hot for current events, (2) confirming a popular tool is the canonical choice before asking your own question, (3) seeing whether your use case aligns with what most agents need. Self-aggregating signal — derived from CF analytics-engine, no PII, just (pack, tool, count). Cached 5min-1h depending on window.
| Name | Required | Description | Default |
|---|---|---|---|
| window | No | 24h (default) | 7d | 30d. Shorter windows surface what's hot right now; longer windows show steady-state demand. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnlyHint, idempotentHint, destructiveHint), the description reveals the data source ('derived from CF analytics-engine'), states 'no PII', and adds caching details ('Cached 5min-1h depending on window'). This gives the agent a solid behavioral model.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, front-loaded with the core output, followed by use cases and technical context. Every sentence adds value and the structure is easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with one optional param and no output schema, the description fully covers the return format ('pack, tool, count'), use cases, privacy, and caching. There are no significant gaps for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a well-documented window param; the tool description repeats the three window values but doesn't reinterpret their meaning. It does mention cache duration varies by window, which is a subtle behavioral link, but not significant enough to elevate beyond baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a clear purpose: 'What other AI agents are calling on Pipeworx right now' and specifies the exact outputs ('top tools, top packs, and total call volume'). It also names the time windows, making the tool's function unambiguous and distinct from generic discovery tools like discover_tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides three explicit 'Useful for' scenarios, giving clear context for when to use this tool. It doesn't explicitly contrast with alternatives, but the guidance is practical and sufficiently scoped.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
polymarket_arbitragePolymarket ArbitrageARead-onlyIdempotentInspect
Find arbitrage opportunities on Polymarket via monotonicity violations + partition-sum checks. Call with NO args for a trending_scan of the top ~200 markets by weekly volume; pass event for the strongest per-event partition_check, or topic for a themed cross-event scan. event (recommended for a specific market): pass a Polymarket event slug like "fed-decision-may-2026" or "when-will-bitcoin-hit-150k"; walks child markets, checks date-axis / threshold-axis ordering AND computes the partition_check (sum of YES prices across mutually-exclusive legs — should ≈1; deviations >3pp emit a BUY/SELL EVERY LEG signal). topic (for cross-event scanning): pass a seed question like "Strait of Hormuz traffic returns to normal" or "Fed rate decision"; searches related events across the platform, flattens markets, runs the comparator on the union. Cross-event mode catches "...by May 31" vs "...by Jun 30" patterns that single-event misses. SEMANTIC ANCHOR: cross-event pairs require ≥0.30 Jaccard similarity on question tokens (prevents Powell-Fed-Pause being paired with Powell-DOJ-probe); skipped_low_similarity surfaces the rejected pair count. PARTITION FILTER: drops will-person-X / will-manager-Y / will-someone-else- placeholder slugs; partitions with >20% placeholder fraction return null arb signal. Response: opportunities[] (gap_pp, suggested_trade, reasoning, monotonicity violation context), and in event mode partition_check{sum_yes_prices, gap_from_1, placeholders_filtered, suggested_trade}. FILL CHECK: when the partition signal fires, arbitrage.fill_check prices it against live CLOB depth (theoretical_edge_pp_at_book vs realizable_edge_pp at 1000 shares/leg, thin_legs[]) — realizable_edge_pp ≤ 0 means the overround exists only at last-trade, not in the book; do not trade it. For custom sizing use polymarket_fill_risk.
| Name | Required | Description | Default |
|---|---|---|---|
| event | No | Single-event mode (use this if you know the specific Polymarket event): event slug like "fed-decision-may-2026" or "when-will-bitcoin-hit-150k". Full Polymarket URLs also accepted. | |
| topic | No | Cross-event mode (use this if you want to scan related events across the platform): a topic or seed question like "Fed rate decision" or "Strait of Hormuz traffic returns to normal". Tool searches Polymarket for related events and checks monotonicity across them. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnly and non-destructive behavior, but the description adds rich detail: 'deviations >3pp emit a BUY/SELL EVERY LEG signal', Jaccard similarity threshold of ≥0.30, placeholder filter with >20% returning null, and the fill check meaning 'realizable_edge_pp ≤ 0 means the overround exists only at last-trade, not in the book; do not trade it.'
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but well-structured with labeled sections (SEMANTIC ANCHOR, PARTITION FILTER, FILL CHECK). It front-loads the purpose and usage, and while dense, most sentences carry essential information, though it could be slightly tighter without losing value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity and lack of output schema, the description thoroughly explains return values: 'Response: opportunities[] (gap_pp, suggested_trade, reasoning, monotonicity violation context), and in event mode partition_check{...}'. It covers modes, filters, thresholds, edge cases, and fill pricing, making it complete for an agent to use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Both parameters have 100% schema coverage, but the description substantially augments that with behavior: event mode 'walks child markets, checks date-axis / threshold-axis ordering AND computes the partition_check', while topic mode 'searches related events across the platform'. It also provides concrete example values for both event and topic.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Find arbitrage opportunities on Polymarket via monotonicity violations + partition-sum checks,' clearly identifying the verb, resource, and method. It distinguishes itself from sibling tools like polymarket_edges by focusing on arbitrage and even references polymarket_fill_risk for custom sizing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit usage instructions are provided: 'Call with NO args for a trending_scan', 'pass event for the strongest per-event partition_check', and 'topic for a themed cross-event scan', with examples and a recommendation. It also offers an alternative, noting 'For custom sizing use polymarket_fill_risk.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
polymarket_edgesPolymarket EdgesARead-onlyIdempotentInspect
Scan top Polymarket markets and return opportunities where Pipeworx data disagrees with market price. Built for "what should I bet on today" — agents discover opportunities without paging hundreds of markets. FIVE MODEL FAMILIES grouped into three response segments under by_segment: (1) MODEL_DRIVEN — crypto_price (lognormal barrier from 90d FRED log-returns) and news_momentum (GDELT 7d/21d article-volume ratio, soft signal w/ halved Kelly). (2) STRUCTURAL_ARBITRAGE — partition_overround on mutually-exclusive events; per-leg favorite-longshot bias correction with per-sport α (tennis 1.02, soccer 1.10, MMA 1.15, default 1.0); placeholder-slug filter drops will-person-X / will-team-Y / will-manager-Z / will-someone-else- backstops; partitions with >20% placeholder fraction skipped entirely. (3) CONCENTRATED_LONGSHOT — basket trade when one leg ≥75% AND ≥2 longshots ≤8% AND portfolio return ≥25:1; rare-by-design (gates relaxed Run 8 from prior 85%/5%/50:1). EVERY OPPORTUNITY carries edge_pp_net (after slippage), kelly_fraction + kelly_fraction_half (capped at 0.25), market.liquidity, market.spread_pp, market.volume, plus a 24h-move warning ("Market moved X.Xpp in 24h") when the recent move alone exceeds the edge — your edge may already be in the price. TRADEABLE-EDGE KNOBS: min_liquidity / max_spread_pp drop opportunities where edge isn't realizable; min_partition_leg_kelly filters partitions by best per-leg Kelly. RESPONSE TOP-LEVEL: by_segment{model_driven,structural_arbitrage,concentrated_longshot}, fed_candidates/fed_note (Fed bets surface here, excluded from ranking — 1m-T vs EFFR signal is unreliable at meeting-month horizons without paid OIS/SOFR-futures data), and _diagnostics{concentrated_longshot:{...funnel counters},category_counts,filter_skips} so callers can see WHY a segment is empty (top-N stale, all candidates failed gates, knob dropped them). Cached 1h at the KV level keyed on all knobs.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Top N edges to return after ranking. Default 10, max 25. | |
| window | No | Polymarket volume window to filter markets. Default 1wk. | |
| min_kelly | No | Minimum half-Kelly fraction (as decimal, e.g. 0.005 = 0.5% of bankroll) to include single-leg opportunities. Default 0 (no filter). Skips opportunities that are too small to bet sensibly even if the edge is large. | |
| min_edge_pp | No | Minimum |edge| in percentage points to include (default 0.5). Edge is evaluated NET of slippage. | |
| slippage_pp | No | Assumed execution slippage in percentage points per leg (default 0.3). Subtracted from raw |edge| before ranking and Kelly sizing. Polymarket has zero trading fees as of 2024 but bid/ask + thin depth typically eats 20-50bp per trade. Bump for very thin partitions; drop to 0 if you have a smarter fill model. | |
| max_spread_pp | No | Tradeable-edge filter. Maximum bid/ask spread in percentage points on the representative market. Default null (no filter). Set to 2 to require tight books — anything wider eats most plausible edges. | |
| min_liquidity | No | Tradeable-edge filter. Minimum $ liquidity on the representative market (or for partition_overround, on at least one top_leg). Default 0 (no filter). Set to 5000 to drop thin-book opportunities where executing the edge would walk the book past breakeven. | |
| category_filter | No | Comma-separated list to restrict the output: "model_driven" (crypto_price + news_momentum), "structural_arbitrage" (partition_overround), "concentrated_longshot". Combine like "model_driven,structural_arbitrage". Default: all. | |
| min_partition_leg_kelly | No | Minimum BEST per-leg half-Kelly fraction across a partition_overround opportunity's top_legs (or longshot_basket legs). Default 0 (no filter). Partition arbs always return kelly_fraction_half=0 at the parent level by design (basket trades don't compose to single-leg Kelly), so min_kelly never filters them — this knob applies to the per-leg Kelly inside top_legs instead. Use to suppress thin partitions whose individual leg edges aren't worth the per-leg slippage cost. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses extensive behavioral traits beyond annotations: response structure (by_segment, fed_candidates, _diagnostics), the specific model logic (lognormal barriers, GDELT ratios, partition overround corrections), the 24h-move warning, placeholder-slug filtering, and KV-level caching keyed on knobs. It fully aligns with readOnlyHint and idempotentHint, adding significant context without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single dense paragraph containing a wealth of technical detail—model families, response segments, gate relaxations, and caching. It front-loads the primary purpose, but the sheer length (many sentences with nested clauses) hurts scannability. It could be restructured with bullets or sections without losing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given there is no output schema, the description must explain return values, and it does so thoroughly: top-level fields (by_segment, fed_candidates, _diagnostics), per-opportunity fields (edge_pp_net, kelly_fraction, market liquidity/spread), and why segments may be empty. It also covers parameter effects, caching, and the Fed signal caveat—making it complete for a complex tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds value by explaining how parameters interact: e.g., min_partition_leg_kelly behaves differently for partition arbs (parent-level Kelly always 0), and min_liquidity/max_spread_pp are 'tradeable-edge' filters beyond schema text. This contextualizes knobs beyond their individual descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource+outcome: 'Scan top Polymarket markets and return opportunities where Pipeworx data disagrees with market price.' It clearly positions the tool for the 'what should I bet on today' use case, distinguishing it from siblings like polymarket_arbitrage and polymarket_edge_tracker.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides clear usage context ('Built for what should I bet on today'), explains why certain features exist (tradeable-edge knobs, diagnostics to see why segments are empty), and gives exclusions (Fed bets excluded from ranking). However, it does not explicitly name alternative tools for when not to use this one.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
polymarket_edge_trackerPolymarket Edge TrackerARead-onlyIdempotentInspect
Edge persistence and decay telemetry built from daily polymarket_edges snapshots. Answers "how long has this edge existed and is it shrinking?" — a fresh wide edge and a 3-week-old wide edge are different trades (the latter is wide for a reason nobody is willing to take). Args: days (lookback, default 14, max 30), window (snapshot family, default "1wk"). RESPONSE: tracked[] = every opportunity in the LATEST snapshot with its full edge_pp_net time-series across prior snapshots, first_seen, trend (new | widening | stable | decaying) and decay_pp_per_day (both computed on |edge_pp_net| — the value itself is signed by trade direction, negative = SELL YES); expired[] = opportunities that appeared in earlier snapshots but are GONE from the latest (closed, resolved, or arbed away) with their lifespan_days — the median lifespan is your competition clock; snapshot_dates[] = which days actually have data (snapshots are written when polymarket_edges runs on a cache-miss, so gaps mean nobody scanned that day). LIMITS: history depth is bounded by the 60-day snapshot TTL and starts from when snapshotting was enabled; decay numbers come from daily closes of edge_pp_net (net of default slippage), not intraday.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Lookback in days (default 14, clamp 2-30). | |
| window | No | Which polymarket_edges window family to read snapshots for: 24hr | 1wk | 1mo (default 1wk). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/openWorld/idempotent, and the description adds substantial behavior not in annotations: snapshots are only written on cache-miss (so gaps occur), history is bounded by a 60-day TTL, and decay is computed from daily closes net of slippage. This deep transparency goes well beyond the structured hints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Though long, every sentence carries essential information: purpose, parameters, detailed response fields, and important limits. The text is organized into clear sections (Args, RESPONSE, LIMITS) and front-loads the core purpose. Nothing feels redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description fully specifies the response structure (tracked[], expired[], snapshot_dates[]) and explains the meaning of each field. It also covers limitations (TTL, snapshot gaps) and computation details, making it complete for a complex telemetry tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so parameters are already documented. The description does add slight context (e.g., 'snapshot family' for window, and that days is a lookback), but it mostly restates the schema defaults and meaning. No extra syntax or edge cases are introduced beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb+resource ('Edge persistence and decay telemetry built from daily polymarket_edges snapshots') and clearly states the tool's unique purpose: answering whether an edge has existed and whether it is shrinking. This differentiates it from sibling tools like polymarket_edges, which presumably lists current edges.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool by framing it as the answer to 'how long has this edge existed and is it shrinking?' and contrasts fresh vs. old wide edges. It does not explicitly name alternatives or state when not to use it, but the implied context is strong, and the LIMITS section adds practical usage constraints.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
polymarket_fill_riskPolymarket Fill RiskARead-onlyIdempotentInspect
Realizable-vs-theoretical edge check against live CLOB order-book depth. REQUIRES one of market (single-market mode) or event (basket/partition mode). SINGLE-MARKET: pass a market slug/URL + side (buy_yes|sell_yes|buy_no|sell_no, default buy_yes) + size_usd (default 1000 — max spend on buys, target proceeds on sells); walks the ladder and returns top_of_book, vwap_fill_price, slippage_pp, shares_filled, max_fillable_usd, and a verdict (clean|degraded|cannot_fill). BASKET: pass an event slug/URL + side (sell_yes = capture overround by selling every leg, buy_yes = capture underround; default auto from partition sum) + size_usd interpreted as settlement notional S (shares per leg; each share pays $1); returns theoretical_sum vs realizable_sum (top-of-book vs VWAP across all legs), capture_ratio, profit_usd at executed size, per-leg fill detail, thin_legs[], max_clean_notional_usd, and forced_directional_risk naming the legs most likely to strand you unhedged. USE THIS before acting on any polymarket_arbitrage SELL/BUY-EVERY-LEG signal or any polymarket_edges trade above ~$500 — theoretical overround on thin books is not capturable, and partial basket fills convert an arb into an unhedged directional position (the dominant loss mode in real arb-bot P&L).
| Name | Required | Description | Default |
|---|---|---|---|
| side | No | Single-market: buy_yes | sell_yes | buy_no | sell_no (default buy_yes). Basket: sell_yes | buy_yes (default auto — sell if partition sum > 1, buy if < 1). | |
| event | No | Basket mode: event slug or full polymarket.com URL — checks every leg of the partition. | |
| market | No | Single-market mode: market slug or full polymarket.com URL. | |
| size_usd | No | Single-market: USD to spend (buys) or target proceeds (sells). Basket: settlement notional — shares per leg, each paying $1 at resolution. Default 1000, clamp 10–1,000,000. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/idempotent annotations, the description reveals critical behavioral traits: it 'walks the ladder' and returns detailed metrics (top_of_book, vwap_fill_price, slippage_pp, shares_filled, max_fillable_usd), and it explicitly warns about partial basket fills converting arbs into unhedged positions. This explains the 'forced_directional_risk' naming and the dominant loss mode, adding depth not available from annotations alone.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but every sentence earns its place. It is front-loaded with the core purpose, then systematically covers prerequisites, mode-specific behavior, return fields, and usage guidance. There is no redundancy or filler; the density 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (two modes, four parameters, rich output), the description is fully complete. It enumerates all return fields for both modes, explains edge cases (thin_legs[], forced_directional_risk), and provides thresholds and use-case context. Without an output schema, the description carries the full burden of explaining return values, which it does thoroughly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Although schema coverage is 100%, the description adds significant semantic nuance: size_usd means 'max spend on buys, target proceeds on sells' in single-market mode, while in basket mode it is 'settlement notional S (shares per leg; each share pays $1).' It also explains default values and clamps (10–1,000,000), far exceeding the schema's basic parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource: 'Realizable-vs-theoretical edge check against live CLOB order-book depth.' It clearly distinguishes the tool from siblings by focusing on fill-risk verification rather than arbitrage detection or edge listing, and explicitly breaks down single-market vs basket modes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit guidance: 'USE THIS before acting on any polymarket_arbitrage SELL/BUY-EVERY-LEG signal or any polymarket_edges trade above ~$500.' It names specific sibling tools and explains why (theoretical overround not capturable on thin books, partial fills create unhedged directional positions), making the when-to-use unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
polymarket_kalshi_spreadPolymarket–Kalshi SpreadARead-onlyIdempotentInspect
Cross-venue spread between Kalshi and Polymarket for the same resolving question. The two venues sometimes price the same outcome 2-25pp apart because their participant pools differ — when the bet shapes are equivalent that delta is a real signal, when they aren't the tool says so. TWO MODES: (1) topic — 10 pre-mapped macro shortcuts ("fed", "btc", "cpi", "gdp", "sp500", "recession", "next_pope", "next_uk_pm", "next_israel_pm", "2028_president") auto-fetch the matching event on each venue. (2) explicit kalshi_event_ticker + polymarket_event_slug for custom pairings. RESPONSE: each venue's leg-by-leg prices (raw probability 0-1) plus matched spread[].top_spreads_pp (Kalshi − Polymarket) where the same outcome shows up on both sides. SAFETY FIELDS: compatibility_warning fires in two cases — (a) matched_pairs:0 with skipped_cross_type>0 means the venues frame the topic with non-equivalent bet shapes (e.g. Kalshi range_bucket point-in-time vs Polymarket cumulative_threshold touch-anywhere — no arb exists), (b) matched_pairs:0 with skipped_cross_type:0 and both venues >5 legs means the token-overlap matcher found nothing in common — events likely semantically unrelated despite the topic keyword. temporal_alignment{polymarket_month,kalshi_month,aligned} tells you whether the two events resolve in the same calendar period; aligned:false means spreads are mathematically meaningless across the temporal gap. skipped_cross_type / skipped_cross_subtype counters expose how many leg-pair comparisons were dropped (cross-type = metric_type mismatch like MoM vs YoY; cross-subtype = inequality mismatch like cum_ge vs cum_le). Real cross-venue spreads are rarer than the macro-shortcut list suggests — most pre-mapped topics return compatibility_warning today; pre-mapped ≠ tradeable.
| Name | Required | Description | Default |
|---|---|---|---|
| topic | No | Pre-mapped: fed | btc | cpi | gdp | sp500 | recession | next_pope | next_uk_pm | next_israel_pm | 2028_president | |
| kalshi_event_ticker | No | Explicit Kalshi event ticker, e.g. "KXFED-26OCT". Overrides the topic-mapped Kalshi side. | |
| polymarket_event_slug | No | Explicit Polymarket event slug, e.g. "fed-decision-in-june-825". Overrides the topic-mapped Polymarket side. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint, openWorldHint, and idempotentHint, but the description adds rich behavioral detail: it discloses the compatibility_warning logic, temporal_alignment constraints, and skipped_cross_type/subtype counters. It explicitly explains what happens in edge cases (e.g., matched_pairs:0 scenarios) and makes the mathematical validity conditions transparent. This exceeds what annotations alone convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but information-dense. It is front-loaded with the core purpose, then explains modes and safety fields in a logical order. Every sentence contributes useful information, though a few sections (e.g., detailed counter explanations) could be tightened. For a complex tool with no output schema, the length is justified.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description carries the full burden of explaining return values. It covers the response structure (leg-by-leg prices, top_spreads_pp), safety fields (compatibility_warning conditions, temporal_alignment, counters), and how to interpret edge-case results. This is exceptionally complete for a tool with this complexity and no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage with descriptions for all three parameters, so the baseline is 3. The description adds meaningful semantics beyond the schema: it explains how topic maps to pre-mapped shortcuts and how explicit tickers override the topic side, including example values. This clarifies parameter interdependencies and usage intent, which is valuable on top of schema definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource: 'Cross-venue spread between Kalshi and Polymarket for the same resolving question.' It clearly defines the tool's function, differentiates from sibling tools like polymarket_arbitrage by focusing on the spread between two venues, and outlines two distinct modes (topic shortcuts and explicit tickers). The purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly explains TWO MODES with concrete examples and clearly states how to use each. It also provides a critical usage caveat: 'Real cross-venue spreads are rarer than the macro-shortcut list suggests — most pre-mapped topics return compatibility_warning today; pre-mapped ≠ tradeable.' However, it does not name explicit alternative tools or exclusion conditions, so it falls slightly 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.
productProductDRead-onlyIdempotentInspect
Single product.
| Name | Required | Description | Default |
|---|---|---|---|
| product_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | Product ID |
| status | No | Product status |
| post_only | No | Post-only orders |
| limit_only | No | Limit orders only |
| cancel_only | No | Cancel only |
| display_name | No | Display name |
| base_currency | No | Base currency |
| base_max_size | No | Maximum order size |
| base_min_size | No | Minimum order size |
| margin_enabled | No | Margin trading enabled |
| quote_currency | No | Quote currency |
| quote_increment | No | Quote increment |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral context beyond the annotations. It does not disclose expected return behavior, data scope, or any operational constraints. The annotations already declare it safe and read-only, but the description contributes nothing additional.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
At two words, it is extremely concise but under-specified. Conciseness should not come at the cost of clarity; the phrase 'Single product.' does not earn its place because it conveys almost no useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Although the output schema exists and annotations provide safety context, the description does not state the tool's primary function or identify the resource being acted upon. A 1-parameter tool can be adequately documented with a clear verb and resource, but 'Single product.' leaves the operation ambiguous.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain the product_id parameter. No format, meaning, or examples are given in the description, leaving the agent to guess that 'BTC-USD' might be a currency pair. The description fails to compensate for the schema's lack of parameter details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Single product.' is a noun phrase with no verb or action, so it does not clearly state what the tool does. It hints at a singular resource versus the plural sibling 'products', but fails to specify whether it retrieves, creates, or modifies a product.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives like product_ticker or product_stats. There is no mention of use cases, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
product_bookProduct BookARead-onlyIdempotentInspect
Coinbase Exchange (US-regulated crypto venue) live order book — bids + asks for a crypto pair like "BTC-USD". Levels 1-3 control depth. Use for spread analysis, liquidity assessment, market making.
| Name | Required | Description | Default |
|---|---|---|---|
| level | No | ||
| product_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| asks | No | Ask levels |
| bids | No | Bid levels |
| sequence | No | Sequence number |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds that the data is 'live' from a 'US-regulated crypto venue' and that 'Levels 1-3 control depth,' providing useful behavioral context beyond the annotations. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with three concise clauses: what the tool provides, how a parameter works, and intended uses. Every phrase adds value without redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With only two parameters, an output schema present, and helpful annotations, the description covers purpose, parameters, and usage context in a compact manner. It mentions the venue's regulatory status and depth levels, leaving no critical gaps for an agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must explain parameters. It does so effectively: 'product_id' is clarified with examples like 'BTC-USD', and 'level' is explicitly said to control depth with values 1-3. This fully compensates for the lack of schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it provides a live order book with bids and asks for a crypto pair, explicitly naming Coinbase Exchange and example product IDs. This distinguishes it from sibling tools like product_trades, product_candles, and product_ticker by specifying the order book resource and its depth levels.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit use cases: 'spread analysis, liquidity assessment, market making.' While it doesn't name alternative tools or state when not to use it, the context is clear enough for an agent to determine when an order book is needed versus other market data tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
product_candlesProduct CandlesARead-onlyIdempotentInspect
Coinbase Exchange OHLC candles for a crypto pair. Granularity 1m, 5m, 15m, 1h, 6h, 1d. Use for charting and backtesting on Coinbase-listed pairs.
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | ||
| start | No | ||
| product_id | Yes | ||
| granularity | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | Yes | Number of items returned. |
| items | Yes | OHLC candles |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds that the data source is Coinbase Exchange and lists granularity options, but does not disclose additional behaviors such as time range limits or pagination. Annotations already declare readOnlyHint and idempotentHint, covering safety, and the description aligns with these without contradiction, offering minimal extra behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loaded with the core action, and contains no filler or redundant words. Every clause contributes meaning, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple, but the description lacks an explanation of the start/end parameters and how to specify time ranges. It also uses human-readable granularities (1m) while examples use seconds (3600), which could confuse. The presence of an output schema offsets the need to describe return values, but the parameter gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description must explain parameters. It explains granularity via the list of intervals and calls the pair 'crypto pair' (product_id), but it does not describe the start and end parameters, which are essential for time range filtering. The schema examples show sample values but lack explicit semantics, leaving a gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool provides OHLC candles for a crypto pair on Coinbase Exchange, with a specific list of granularities. It distinguishes from sibling tools like product_ticker and product_book by explicitly focusing on candle data, making the purpose unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Use for charting and backtesting' provides clear context for when to use this tool. While it doesn't explicitly mention alternatives or exclusions, the context is sufficient given the sibling tool family and the specific use case stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
productsProductsARead-onlyIdempotentInspect
Coinbase Exchange — list all available trading pairs (products) with base/quote currency, min order size, status, and trading rules.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| count | Yes | Number of items returned. |
| items | Yes | List of trading pairs |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds useful context about response content ('base/quote currency, min order size, status, and trading rules') and scope ('all available'), but does not mention pagination, rate limits, or other behavioral nuances. With annotations doing the heavy lifting, this is adequate but not exceptional.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence that front-loads the core purpose ('list all available trading pairs') and immediately follows with the key fields. Every word contributes value, with no redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (no parameters, clear purpose), the rich annotations (read-only, idempotent, open-world), the existence of an output schema, and the sibling context that clarifies its 'all products' role, the description is complete. It conveys the necessary information for an agent to select and invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool accepts zero parameters (input schema is empty), so the baseline is 4. There are no parameter descriptions needed, and the description does not attempt to invent any, making it appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'list' with a clear resource 'all available trading pairs (products)' and enumerates the included fields (base/quote currency, min order size, status, trading rules). It clearly distinguishes itself from sibling tools like 'product' (singular) and product-specific tools by emphasizing 'all'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'list all available trading pairs' provides clear context that this tool is for the full catalog, implicitly differentiating it from singular product tools. However, it does not explicitly mention 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.
product_statsProduct StatsARead-onlyIdempotentInspect
Coinbase Exchange 24-hour rolling stats for a crypto pair: open, high, low, last, volume, 30-day volume. Use for daily summary.
| Name | Required | Description | Default |
|---|---|---|---|
| product_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| low | No | 24h low price |
| high | No | 24h high price |
| last | No | Last trade price |
| open | No | 24h opening price |
| volume | No | 24h volume |
| volume_30day | No | 30-day volume |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint false, covering safety and idempotency. The description adds context about the rolling 24-hour window and the inclusion of 30-day volume, which is useful but not extensive. It does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a concise two-sentence statement, front-loaded with the primary function and followed by a useful usage note. Every word contributes value with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with one parameter and an output schema, the description is largely complete. It explains the key data points and suggests a use case. It lacks explicit alternative differentiation, but given the richness of annotations and output schema, it is not a critical gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, so the description must compensate. It states 'for a crypto pair' which links the product_id parameter to a trading pair, but it does not specify the exact format (e.g., 'BTC-USD') beyond what the schema example already provides. This is adequate but not thorough.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves 'Coinbase Exchange 24-hour rolling stats for a crypto pair' and enumerates the specific data points (open, high, low, last, volume, 30-day volume). This distinguishes it from sibling tools like product_ticker or product_candles, which focus on different aspects of product data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Use for daily summary' provides a clear usage context, implying this tool is appropriate for periodic summaries. However, it does not explicitly mention when not to use it or name alternative tools, 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.
product_tickerProduct TickerARead-onlyIdempotentInspect
Coinbase Exchange (US-regulated crypto venue) — best bid/ask, last trade price, and volume for a crypto pair. Use for current pricing on a Coinbase-listed pair.
| Name | Required | Description | Default |
|---|---|---|---|
| product_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| ask | No | Best ask price |
| bid | No | Best bid price |
| size | No | Last trade size |
| time | No | Trade time |
| price | No | Last trade price |
| volume | No | 24h trading volume |
| trade_id | No | Trade ID |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds context about the data source (US-regulated venue) and the type of data (current pricing), but does not disclose additional behaviors like rate limits or response quirks. This is adequate but not highly detailed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with two sentences that front-load the core function and follow up with usage guidance. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool with good annotations and an output schema, the description is complete. It states what the tool does, why it exists, and when to use it, without leaving critical gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% for the product_id parameter, so the description must compensate. It does by describing the parameter's meaning as a 'crypto pair' on 'Coinbase-listed pair,' which aligns with the example 'BTC-USD' in the schema. This adds essential semantic context beyond the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool provides best bid/ask, last trade price, and volume for a crypto pair on Coinbase Exchange. It uses specific verbs and a specific resource, distinguishing itself from sibling tools like product_book (order book), product_candles (historical candles), and product_trades (recent trades).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Use for current pricing on a Coinbase-listed pair,' giving clear context for when to use it. However, it does not name alternatives or exclusions, such as suggesting product_candles for historical data.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
product_tradesProduct TradesARead-onlyIdempotentInspect
Coinbase Exchange — recent trade tape for a crypto pair (e.g. 'BTC-USD'): trade ID, price, size, side, and timestamp. Supports limit and before/after cursor pagination.
| Name | Required | Description | Default |
|---|---|---|---|
| after | No | ||
| limit | No | ||
| before | No | ||
| product_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | Yes | Number of items returned. |
| items | Yes | Recent trades |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, and non-destructive behavior. The description adds the return field list and pagination support (limit, before/after), providing additional behavioral context. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the key source ('Coinbase Exchange') and purpose ('recent trade tape'), with a clear enumeration of returned fields. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema (which covers return structure) and annotations covering safety, the description adequately covers the resource scope, parameters, and pagination behavior. It is a complete description for a simple read-only listing tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description's explanation of product_id as a crypto pair like 'BTC-USD' and mention of limit and before/after cursor pagination adds critical meaning beyond the bare schema. However, it doesn't detail exact cursor semantics or limit defaults.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as returning the recent trade tape for a crypto pair on Coinbase Exchange, listing specific fields (trade ID, price, size, side, timestamp). This distinguishes it from sibling tools like product_ticker or product_candles by focusing on the trade tape.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for retrieving recent trades for a product but does not explicitly state when to use it over alternatives such as product_ticker or product_candles, nor does it provide exclusion criteria. The usage context is clear but not explicitly differentiated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
recallRecallARead-onlyIdempotentInspect
Retrieve a value previously saved via remember, or list all saved keys (omit the key argument). Use to look up context the agent stored earlier — the user's target ticker, an address, prior research notes — without re-deriving it from scratch. Scoped to your identifier (anonymous IP, BYO key hash, or account ID). Pair with remember to save, forget to delete.
| Name | Required | Description | Default |
|---|---|---|---|
| key | No | Memory key to retrieve (omit to list all keys) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnly, idempotent, and non-destructive. The description adds valuable behavioral context: scoping to identifier types and the behavior of omitting the key to list all saved keys. This goes beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four concise sentences, each earning its place: main action, usage context, scoping, and relationship to sibling tools. No fluff or redundancy; the most important information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool with strong annotations, the description covers purpose, usage, scoping, and related tools. It omits return format or error behavior, but given the low complexity and schema coverage, it is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with the key parameter described as 'Memory key to retrieve (omit to list all keys)'. The description echoes this and explains the relationship to 'remember', but does not add substantial new meaning beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Retrieve a value previously saved via remember, or list all saved keys'. It clearly distinguishes from sibling tools by explicitly pairing with remember and forget, and by framing the tool as a memory lookup for prior context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly states when to use: 'Use to look up context the agent stored earlier... without re-deriving it from scratch.' It also describes scoping and mentions related tools (remember, forget). However, it does not explicitly state when not to use or mention alternatives for fresh data.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
recent_alertsRecent AlertsARead-onlyIdempotentInspect
Pull fired events from your subscription feed. Returns the most recent alerts the evaluator has written to your persisted feed — each carries source, citation_uri (pipeworx:// when available), and the raw event payload. Filter by type (e.g. "sec_8k") and/or since (ISO timestamp). Set mark_read:true to flag returned events read so the next call only shows newer ones. Polls work fine; the same feed is also at GET registry.pipeworx.io/alerts.json for scripts and dashboards.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Optional — filter to one subscription type. | |
| limit | No | Max events to return (1-200, default 50). | |
| since | No | Optional ISO timestamp — return events fired_at >= this time. | |
| mark_read | No | Flag the returned events read in the same call (default false). | |
| unread_only | No | Return only events where read_at is null (default false). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description explicitly discloses a mutating operation (mark_read:true flags events as read), which contradicts the annotation readOnlyHint=true. This is a serious inconsistency that could mislead an agent about side effects. While other behaviors (return payload, filters) are mentioned, the contradiction undermines trust.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is four sentences, all relevant and front-loaded with the primary action. It contains no filler and efficiently covers purpose, return format, filtering, state change, and an alternative endpoint.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of an output schema, the description adequately explains the return payload (source, citation_uri, raw event payload) and covers all parameters and their interactions. The mark_read side effect and polling guidance are present. However, the contradiction with readOnlyHint creates a potential gap in the agent's understanding of mutability, slightly reducing completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Although schema coverage is 100%, the description adds valuable meaning beyond the schema. It provides a concrete example for type ('sec_8k'), explains that mark_read affects the next call, and clarifies that since is an ISO timestamp. This enriches the parameter descriptions meaningfully.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it pulls fired events from the subscription feed, using a specific verb ('Pull') and resource ('fired events'/'alerts'). It distinguishes itself from siblings like recent_changes by focusing on subscription alerts written by the evaluator to a persisted feed.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides practical usage context: how to filter by type and since, the effect of mark_read on subsequent calls, and notes that polling works fine. It also mentions an alternative HTTP endpoint for scripts/dashboards, giving an explicit alternative. However, it does not explicitly contrast with sibling tools like list_subscriptions or recent_changes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
recent_changesRecent ChangesARead-onlyIdempotentInspect
"What's new with X" / "latest on Y" / "what happened to Z this week / month / quarter" / "updates on Acme" / "news on Tesla recently" / "what's happening with Apple" — change feed for a company in the last N days/weeks/months in ONE parallel call. Fans out to SEC EDGAR (filings since since), GDELT→GNews fallback (news mentions in window — GDELT preferred, GNews when rate-limited or 5xx), USPTO (patents granted; PatentsView API sunset May 2025 so this soft-fails until reactivated). since accepts ISO date ("2026-04-01") or relative shorthand ("7d", "30d", "3m", "1y"). Returns structured changes[] grouped by source + total_changes count + pipeworx:// citation URIs. Use entity_profile instead when you want the static profile (filings + fundamentals + LEI + patents) regardless of window.
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | Entity type. Only "company" supported today. | |
| since | Yes | Window start — ISO date ("2026-04-01") or relative ("7d", "30d", "3m", "1y"). Use "30d" or "1m" for typical monitoring. | |
| value | Yes | Ticker (e.g., "AAPL") or zero-padded CIK (e.g., "0000320193"). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description richly details behavior beyond annotations: fans out to SEC EDGAR, GDELT→GNews fallback logic (GDELT preferred, GNews on rate limit/5xx), USPTO soft-fail due to API sunset, parallel call execution, and return structure (changes[] grouped by source + total_changes + citation URIs). No contradictions with annotations (readOnlyHint, idempotentHint, etc.).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is slightly long but every sentence earns its place: user intents, core definition, source fan-out details, parameter format, return structure, and alternative tool guidance. It is well-structured and front-loaded with the most useful info.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a moderate-complexity tool with 3 params, no output schema, and no nested objects, the description fully covers the necessary context: what the tool does, how it works (sources, fallback), what it returns, and when to use an alternative. It is self-contained and actionable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds value by clarifying 'since' semantics ('filings since `since`') and giving a concrete recommendation ('Use "30d" or "1m" for typical monitoring'). It also reinforces the type parameter's limitation to 'company'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies this as a 'change feed for a company in the last N days/weeks/months' with specific verbs like 'what's new' and 'latest'. It also distinguishes itself from the sibling tool entity_profile by explicitly stating when to use that instead.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit usage scenarios: 'What's new with X' / 'latest on Y' and the alternative: 'Use entity_profile instead when you want the static profile...'. It also gives specific guidance for the 'since' parameter ('Use "30d" or "1m" for typical monitoring').
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rememberRememberAIdempotentInspect
Save data the agent will need to reuse later — across this conversation or across sessions. Use when you discover something worth carrying forward (a resolved ticker, a target address, a user preference, a research subject) so you don't have to look it up again. Stored as a key-value pair scoped by your identifier. Authenticated users get persistent memory; anonymous sessions retain memory for 24 hours. Pair with recall to retrieve later, forget to delete.
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | Memory key (e.g., "subject_property", "target_ticker", "user_preference") | |
| value | Yes | Value to store (any text — findings, addresses, preferences, notes) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate non-read-only, non-destructive, and idempotent. The description adds useful context beyond annotations: scoping by identifier, persistent memory for authenticated users, and 24-hour retention for anonymous sessions. This gives meaningful behavioral detail without contradicting annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core action and purpose. Sentences are purposeful, covering what, when, storage, persistence, and companion tools. It is slightly longer than strictly necessary but all information is relevant and no filler exists.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter write tool with no output schema, the description adequately covers purpose, use cases, persistence behavior, and related tools. It does not describe return values or overwrite behavior, but given the tool's simplicity and annotations, these are not critical gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 100% of parameters with descriptions that include examples. The description reinforces the key-value pair concept and provides domain examples (ticker, address, preference, research subject), but does not add substantial new parameter-level meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states a specific verb ('Save data') and resource ('data the agent will need to reuse later') with clear scope ('across conversation or sessions'). It distinguishes from siblings by explicitly pairing with recall and forget, showing this is the write operation in a memory triad.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context: 'Use when you discover something worth carrying forward' and gives concrete examples. It also notes session vs authenticated persistence. However, it does not explicitly state when NOT to use or name alternative tools other than recall/forget, so it lacks full exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resolve_entityResolve EntityARead-onlyIdempotentInspect
"What's the ticker for…" / "find the CIK for…" / "what's the LEI for…" / "what's the RxCUI for…" / "look up the ID for…" / "what is X's official identifier" / "who owns X" / "is X a subsidiary of Y" — resolve a user-spoken NAME to the canonical/official identifiers other tools require as input. Use FIRST whenever you have a name but need an ID. SUPPORTED TYPES: "company" (cross-source identity spine: 10-digit CIK + ticker + company_name from SEC EDGAR, legal-entity LEI from GLEIF with parent/ultimate-parent/children ownership when the LEI resolves, and security FIGI from OpenFIGI when a ticker is implied; every identifier is labelled with the source that established it, and an identifier that could NOT be resolved is stated explicitly under unresolved rather than omitted — accepts ticker, CIK, ISIN, or company name as input; an ISIN like "CH0038863350" resolves to the LEGAL ENTITY that issued the security via the GLEIF ISIN-to-LEI mapping, covering non-US issuers EDGAR cannot reach), "drug" (returns RxCUI + ingredient + brand from RxNorm + pipeworx://rxnorm/concept/{rxcui} citation; accepts brand or generic name). LEI/FIGI enrichment degrades gracefully — if GLEIF or OpenFIGI is unavailable, the EDGAR identifiers still return. Each call cascades through several lookup endpoints internally — using resolve_entity replaces 2-3 manual lookups.
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | Entity type: "company" or "drug". | |
| value | Yes | For company: ticker (AAPL), CIK (0000320193), or name. For drug: brand or generic name (e.g., "ozempic", "metformin"). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as readOnly, idempotent, and non-destructive. The description adds significant behavioral detail: cascading internal lookups, graceful degradation (if GLEIF/OpenFIGI unavailable, EDGAR still returns), and explicit labeling of unresolved identifiers under an 'unresolved' field. This goes well beyond the annotations and fully informs the agent of the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is informative but lengthy (multiple paragraphs). It is front-loaded with examples and purpose, which is good, but includes redundant detail (e.g., repeated mention of graceful degradation, internal cascading). A more streamlined structure would improve readability without losing essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (two entity types, multiple identifiers, cascading lookups, unresolved handling) and the lack of an output schema, the description covers return behavior thoroughly: identifiers by source, unresolved marker, graceful degradation. It does not explicitly state the output format (e.g., JSON object), but the agent can infer from the verbal description. Slightly more detail on the structure would raise this to 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with both parameters described. The description adds meaning beyond the schema by explaining how to use the 'value' parameter (e.g., 'An ISIN like "CH0038863350" resolves to the LEGAL ENTITY that issued the security'). It also clarifies acceptable input formats for 'company' type (ticker, CIK, ISIN, name). This enriches the schema definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with clear example queries and states the tool's purpose: 'resolve a user-spoken NAME to the canonical/official identifiers other tools require as input.' It specifies supported types (company, drug) and what identifiers are returned. However, it does not explicitly distinguish itself from the sibling tool 'entity_profile', which may also resolve entities, so differentiation is incomplete.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance: 'Use FIRST whenever you have a name but need an ID.' It gives numerous query examples to illustrate when to invoke. It does not describe when NOT to use the tool or mention alternatives like 'entity_profile', but the context is clear enough for most name-to-ID scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scan_competitor_ai_presenceScan Competitor AI PresenceARead-onlyIdempotentInspect
Compare AI visibility across multiple entities side-by-side. Probes each entity (your brand + N competitors) with ai_visibility_check, ranks by score, surfaces which is most/least recognized. Useful for competitive AI-marketing audits: "does Claude know about us as well as our competitors?". Returns ranked list with score, confidence, signal density per entity.
| Name | Required | Description | Default |
|---|---|---|---|
| models | No | Which models to probe. Supported: "workers-ai" (free default), "anthropic" (requires _apiKey). Omit for just workers-ai. | |
| _apiKey | No | Optional Anthropic API key — only if "anthropic" is in models. Passed to api.anthropic.com per probe. | |
| context | No | Optional shared context applied to every probe (e.g. "B2B SaaS", "Boston restaurant"). Disambiguates common names. | |
| entities | Yes | Array of 2-8 entities to compare (brand/business/product names). First entry treated as the "subject" for narrative; rest are competitors. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds value by explaining the internal process ('Probes each entity with ai_visibility_check, ranks by score') and the return shape ('ranked list with score, confidence, signal density per entity'). This goes beyond redundant safety disclosure, though it doesn't address rate limits or failure modes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, each earning its place: purpose, method, use case, and output. It is front-loaded with the main action, uses precise language, and contains zero filler. The structure allows rapid parsing for an agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity, no output schema, and strong sibling differentiation, the description is complete. It explains the orchestration (probes with ai_visibility_check), the input semantics (entities with first-as-subject), and the return fields (score, confidence, signal density). Annotations cover safety, and the use case clarifies when to invoke it. No critical information is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description does not add parameter semantics beyond what the schema already provides (e.g., 'First entry treated as the subject' is already in entities description). It reinforces the 'probe' concept but does not explain parameter formats or constraints beyond schema. Thus it meets the baseline without exceeding it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource: 'Compare AI visibility across multiple entities side-by-side.' It clearly distinguishes from siblings like ai_visibility_check (single entity) by mentioning 'multiple entities' and the probe/rank behavior. It also states what it surfaces (most/least recognized), making the purpose unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context: 'Useful for competitive AI-marketing audits' with a concrete example question. It implies when to use it (multi-entity comparison) and even references the underlying ai_visibility_check, suggesting the single-entity alternative. However, it does not explicitly state when NOT to use it or name alternative sibling tools, so it stops short of full exclusion guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scan_dependencyScan DependencyARead-onlyIdempotentInspect
Composite "should I add this npm package to my project" check in ONE call — fans out across deps.dev (license + advisories + version history) and bundlephobia (gzipped/minified bundle size, dependency count, ESM/tree-shake support). Use whenever an agent asks "is X safe / popular / small" or "what does adding lodash cost me". Returns a summary block (is_latest, license, published_at, advisory_count, bundle_kb_min, bundle_kb_gz, dependency_count, has_esm, tree_shakeable), per-advisory detail, links, and a list of recent alternative versions. NPM ecosystem only in v1; PyPI / Maven / Cargo / Go fall under deps.dev:version directly. Partial failures degrade gracefully — bundlephobia's first measurement on a new version can take 5-30s; sources_failed will list it if it times out, the rest still returns.
| Name | Required | Description | Default |
|---|---|---|---|
| package | Yes | npm package name. Scoped packages (e.g. "@types/node") are accepted. | |
| version | No | Specific version to check (e.g., "18.3.1"). Defaults to the latest published version when omitted. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds substantial behavioral context beyond the annotations: it reveals the fan-out architecture, the 5-30s possible delay on first bundlephobia measurement, graceful degradation with sources_failed, and NPM-only scoping. This goes far beyond the readOnlyHint/idempotentHint annotations and poses no contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with a concise purpose statement, then efficiently covers use cases, return payload fields, ecosystem limitations, and failure behavior in four more sentences. Every sentence carries unique, necessary information with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given there is no output schema, the description compensates by enumerating all return fields (summary block fields, per-advisory details, links, alternative versions), covering partial failures and timeout behavior, and noting ecosystem exclusions. This makes the tool fully understandable and safe to invoke.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already has 100% coverage for both parameters with accurate descriptions. The tool description adds contextual ecosystem framing but no new parameter-level semantics, so the baseline score for high schema coverage applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly defines a composite 'should I add this npm package' check with specific verb and resource, spanning deps.dev and bundlephobia and listing the exact output categories. It distinguishes itself from sibling tools (e.g., scan_competitor_ai_presence, compare_entities) by focusing on npm dependency evaluation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit usage triggers are given: 'is X safe / popular / small' or 'what does adding lodash cost me'. It also states when NOT to use it (non-NPM ecosystems) and directs users to deps.dev:version directly for PyPI, Maven, Cargo, and Go.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_withinSearch Within a SourceARead-onlyIdempotentInspect
Semantic search INSIDE a fetched record. Pass the text you already pulled (e.g. a SEC 10-K body, an article, a long tool result) plus a natural-language query; get back the top-N passages with character offsets and similarity scores. Use when the record is too big to cram into the prompt — search_within saves context, returns only the passages that matter, and every passage carries an offset so the agent can verify a verbatim quote. Pairs with ask_pipeworx_grounded: fetch with the gateway, ground over the relevant passages instead of the whole document. BGE-base-en embeddings + cosine over 500-char overlapping windows; cap is 200K chars (longer inputs are truncated and flagged).
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | The document text to search inside (max ~200K chars). | |
| limit | No | Max passages to return (1-20, default 5). | |
| query | Yes | Natural-language query — what passages do you want? E.g. "supply-chain risk", "fiscal year 2024 revenue", "drug interactions with warfarin". |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, but the description goes well beyond: it discloses the embedding model (BGE-base-en), the 500-char overlapping window, the 200K char cap with truncation flagging, and the exact output shape (passages with offsets and similarity scores). This gives the agent a thorough understanding of behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but every sentence earns its place: what it does, when to use it, return value details, and a caveat about truncation. It is front-loaded with the core purpose and avoids fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite lacking an output schema, the description fully explains the return format (top-N passages, offsets, similarity scores), the algorithmic behavior, and the integration with ask_pipeworx_grounded. This gives an agent everything needed to predict tool output and handle edge cases like truncation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with rich descriptions (e.g., limit range, query examples, text max chars). The description adds little beyond repeating what the schema already says. It reinforces the text cap and query purpose but does not introduce novel parameter semantics, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource: 'Semantic search INSIDE a fetched record.' It clearly distinguishes itself from siblings by explaining how it pairs with ask_pipeworx_grounded and by emphasizing that it returns only relevant passages with offsets, unlike a full-document retrieval approach.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit usage context is given: 'Use when the record is too big to cram into the prompt.' It also provides a clear alternative pathway via ask_pipeworx_grounded and implies when not to use (when you need the whole document). This is strong practical guidance for an agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
subscribeSubscribe to AlertsAIdempotentInspect
Create a proactive monitoring subscription to a live-data event stream. Returns the new subscription id. Requires a Pipeworx OAuth account (anonymous + BYO cannot persist subscriptions). Supported types: "sec_8k" (8-K filings matching ticker + item codes — e.g. items:["5.02"] = officer change), "polymarket_edge" (Polymarket↔Kalshi cross-venue mispricings — params:{topic:"fed"}), "fred_series" (new FRED observations — params:{series_id:"UNRATE"}). Delivery channels: feed (always on — pull via recent_alerts or GET registry.pipeworx.io/alerts.json), and optionally email (set delivery:{email:"you@x.com"}) or sms (delivery:{sms:"+15551234567"} — phone must be verified at /account first; 10/day cap).
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | Subscription type. | |
| params | Yes | Type-specific filter. sec_8k: {ticker:"AAPL", items?:["5.02","1.01"]}. polymarket_edge: {topic:"fed", min_spread_bps?:500}. fred_series: {series_id:"UNRATE"}. patent_grant: {applicant:"Apple Inc."}. clinical_trial: {sponsor?:"Pfizer", condition?:"lung cancer", phase?:"PHASE3"} (sponsor or condition required). | |
| delivery | No | Optional delivery channels in addition to the always-on persistent feed. {email:"you@x.com"} sends a templated alert per fired event. {sms:"+15551234567"} sends an SMS per event — must match the verified phone on the caller's account (verify at https://pipeworx.io/account first; 10/day cap). {webhook:"https://..."} POSTs each event JSON to your endpoint, HMAC-signed — the response includes delivery.webhook_secret (whsec_…) ONCE; verify X-Pipeworx-Signature = sha256 HMAC of "<X-Pipeworx-Timestamp>.<raw body>". Auto-disabled after 10 consecutive failing runs. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are present (readOnly=false, destructive=false, idempotent=true, openWorld=true) and the description richly supplements them. It discloses authentication prerequisites, supported subscription types, delivery channel behavior, phone verification, SMS caps, webhook HMAC signing, one-time secret return, and auto-disable after 10 consecutive failures. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single dense paragraph but every sentence adds value. It front-loads the core action and return value, then covers types and delivery. It could be improved with bullet points for readability, but it avoids fluff and is appropriately sized for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (3 params, nested objects, multiple subscription types, multiple delivery channels), the description is remarkably complete. It covers auth prerequisites, type-specific parameters, delivery options with operational details, limits, and security behavior. The absence of an output schema is mitigated by the explicit 'Returns the new subscription id'.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds semantic meaning beyond the schema by explaining what each subscription type does (e.g., sec_8k = 8-K filings matching ticker + item codes, polymarket_edge = cross-venue mispricings) and by elaborating delivery channel semantics (e.g., webhook signing secret returned once). This exceeds the schema's structural examples.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb-resource pair: 'Create a proactive monitoring subscription to a live-data event stream' and notes the return value. It enumerates supported types (sec_8k, polymarket_edge, fred_series, etc.), distinguishing it clearly from sibling tools like list_subscriptions and unsubscribe.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear usage context: requires a Pipeworx OAuth account, anonymous/BYO cannot persist subscriptions, and mentions alternative pull mechanisms ('pull via recent_alerts or GET registry.pipeworx.io/alerts.json'). It does not explicitly state when not to use this tool vs alternatives, but the proactive-monitoring framing and auth caveat offer solid guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
suggest_questionsWhat Can I Ask Pipeworx?ARead-onlyIdempotentInspect
What can I ask Pipeworx? / what is Pipeworx good for? / what can you do? / give me ideas / show me examples / getting started / what data do you have? — the onboarding entry point for an agent that just connected and wants to know what is worth asking. Returns category-bucketed example questions (company financials, drugs & clinical trials, economics, real estate, prediction markets, weather, government & patents, science & academia, news) — each with the exact tool + argument shape that answers it, drawn from the live catalog of thousands of tools. Call with no arguments for the full spread, or pass topic (e.g. "finance", "pharma", "betting") to focus. Use this FIRST when you do not yet know what Pipeworx can do for you, or to learn how to call the meta-tools (ask_pipeworx, entity_profile, compare_entities, etc.).
| Name | Required | Description | Default |
|---|---|---|---|
| topic | No | Optional focus area: finance | pharma | economics | real-estate | betting | weather | government | science | news. Omit for a cross-category spread. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so safety is covered. The description adds value by disclosing the return structure—category-bucketed example questions with tool+argument shapes—and noting that results come from a 'live catalog of thousands of tools.' This goes beyond the annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but every sentence earns its place: it front-loads natural language examples, explains the return value, covers usage modes, and ends with a clear directive. There is no redundant or filler content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With only one optional parameter and no output schema, the description fully compensates by detailing the return format (category buckets, tool+argument shape), the two calling modes (full spread vs. topic focus), and the onboarding context. It leaves no critical gap for an agent deciding how and when to call it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema already describes the 'topic' parameter with its allowed values. The description reinforces this with examples ('finance', 'pharma', 'betting'), which is helpful but does not add substantive new meaning beyond the schema's own description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool is an onboarding entry point that returns category-bucketed example questions with the exact tool and argument shape to answer them. It distinguishes itself from sibling tools by explicitly telling agents to 'Use this FIRST' when unsure of Pipeworx's capabilities, rather than being a general query tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit when-to-use guidance: 'Use this FIRST when you do not yet know what Pipeworx can do for you, or to learn how to call the meta-tools.' It also explains the two invocation modes (no args vs. a topic), providing clear context for the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
timeTimeBRead-onlyIdempotentInspect
Server time.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| iso | No | Server time in ISO 8601 format |
| epoch | No | Server time as Unix epoch |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral context beyond the annotations, which already declare the tool as read-only, idempotent, and non-destructive. It does not mention timezone, format, or any potential side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is the minimum possible: two words. It is front-loaded and contains no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (no parameters) and the presence of an output schema, the description is nearly sufficient. However, it could specify timezone or format for full clarity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and the input schema is empty, so the description need not elaborate on parameter meanings. The baseline score for zero-parameter tools is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Server time.' clearly identifies the resource as time from the server, but lacks an explicit verb. It is sufficiently specific to distinguish from sibling tools, none of which are time-related.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided regarding when to use this tool versus alternatives. The description is just a noun phrase with no context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unsubscribeUnsubscribe from AlertsAIdempotentInspect
Cancel a subscription by id. Ownership is enforced — you can only cancel your own subscriptions. The row is deactivated (not deleted) so its historical events stay available via recent_alerts.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Subscription id (uuid) returned by subscribe. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate not read-only, idempotent, and non-destructive. The description adds significant behavioral context: ownership is enforced (can only cancel your own), the row is deactivated not deleted, and historical events remain available via recent_alerts. This goes beyond the structured hints and clarifies side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with zero waste: purpose, ownership constraint, and non-destructive consequence. Each sentence earns its place and is front-loaded with the core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool, the description covers the action, ownership rule, and outcome regarding historical data. It doesn't explicitly mention error behavior, but given the simplicity and good annotations, it is largely complete. A small gap is what happens on invalid id or unauthorized attempt, but that is not critical.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and already describes the id parameter as 'Subscription id (uuid) returned by subscribe.' The description adds no further parameter meaning beyond 'by id', so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Cancel a subscription by id' is a specific verb+resource+method statement. It clearly distinguishes from sibling tools like subscribe (create), list_subscriptions (list), and recent_alerts (historical events).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended usage is clear: use this to cancel a subscription. It mentions ownership enforcement and that deactivation preserves history via recent_alerts, which implies the alternative for viewing historical events. It does not explicitly state 'when not to use' but the context is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_claimValidate ClaimARead-onlyIdempotentInspect
"Is it true that…" / "fact check" / "verify the claim that…" / "did X really…" / "was Y actually…" / "confirm or refute" / "true or false" — natural-language claim verification against authoritative sources. Use whenever the agent needs to check whether something a user said is factually correct. Company-financial claims (revenue, net income, cash for public US companies) verify via the structured SEC EDGAR + XBRL fast path with exact percent-delta math; ANY OTHER factual claim (macro statistics, rates, prices, drug data, records) automatically falls through to the grounded pipeline — routed to the right live source, answered with verbatim evidence, then judged. Returns a verdict (confirmed / approximately_correct / refuted / inconclusive / unsupported / could_not_verify), the grounded or structured actual value with pipeworx:// citation, and reasoning. IMPORTANT for callers: could_not_verify means the check did not happen (our LLM or source failed) and carries verification_error{stage,detail} — it is NOT evidence for or against the claim, and must not be shown as one. unsupported means we looked and cover no source for it. Replaces 4–6 sequential calls (NL parsing → entity resolution → data lookup → comparison).
| Name | Required | Description | Default |
|---|---|---|---|
| claim | Yes | Natural-language factual claim, e.g., "Apple's FY2024 revenue was $400 billion" or "Microsoft made about $100B in profit last year". | |
| tolerance_pct | No | Max percent deviation still graded approximately_correct (0.5–50). Overrides the tolerance implied by the claim wording — set 1–2 for hallucination detection where any material error must be refuted. Default: implied by wording, capped at 5. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only and non-destructive, but the description adds crucial behavioral context: it distinguishes could_not_verify (check did not happen, must not be shown as evidence) from unsupported (no source found). It also details the internal pipeline routing, which is beyond what annotations provide. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Though lengthy, every sentence earns its place: trigger phrases, usage, routing logic, verdict semantics, and caller warnings are all packed into a well-structured, front-loaded description. No fluff or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, the description fully explains the return values (verdict list, actual value, citation, reasoning) and the special meanings of could_not_verify and unsupported. It covers purpose, usage, behavior, and parameter context comprehensively, making it highly invokable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and both parameters (claim, tolerance_pct) have clear descriptions in the schema. The description does not add significant parameter-specific meaning beyond the schema, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as natural-language claim verification with explicit trigger phrases ('fact check', 'verify the claim that...'). It distinguishes from siblings by describing the structured SEC EDGAR fast path for company-financial claims and the grounded pipeline for all other claims, making its unique role unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is explicitly stated: 'Use whenever the agent needs to check whether something a user said is factually correct.' It also explains the routing between financial and non-financial claims and notes it replaces 4-6 sequential calls, steering agents away from alternative pipelines. This is strong when-to-use/why guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Servers
- AlicenseAqualityDmaintenanceBrowser-automated MCP server for Coinbase crypto exchange, enabling live prices, portfolio management, transaction history, and trading.67MIT
- AlicenseNot gradedqualityAmaintenanceOfficial CoinGecko API MCP Server for Crypto Price & Market Data. More details: https://docs.coingecko.com/reference/mcp-server37956TypeScriptApache 2.0
- AlicenseAqualityBmaintenanceMCP server for Binance market data, account insights, and Convert workflows.1025MIT
- FlicenseNot gradedqualityCmaintenanceMCP server providing access to Binance public market data, including klines, order book depth, and 24hr ticker.
Your Connectors
Sign in to create a connector for this server.