Arcgis Lakeland
Server Details
City of Lakeland GIS — Lakeland, Florida open geospatial data (ArcGIS).
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- pipeworx-io/mcp-arcgis-lakeland
- GitHub Stars
- 0
- Server Listing
- mcp-arcgis-lakeland
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.5/5 across 34 of 34 tools scored. Lowest: 3.8/5.
Several tools have overlapping purposes: ask_pipeworx and ask_pipeworx_beta are documented as currently identical, and ai_visibility_check vs. scan_competitor_ai_presence essentially probe the same underlying visibility data. The Polymarket tools (arbitrage, edges, fill_risk, edge_tracker) also cover closely related territory, making it easy for an agent to select the wrong one for a task.
All tool names use snake_case and are generally readable, but the pattern is mixed: some are verb_noun (ask_pipeworx, query_layer, compare_entities), some are noun_phrase (layer_info, entity_profile, recent_changes), and a few are bare verbs (remember, forget, recall). This is moderately predictable but not a uniform convention.
The server is named 'Arcgis Lakeland' but only 3 of 34 tools (search_datasets, layer_info, query_layer) are ArcGIS-related; the other 31 are Pipeworx data/proxy tools. This is a severe mismatch between the server's apparent scope and its actual tool inventory, and 34 tools for a narrowly-named GIS server is far too many.
For the ArcGIS Lakeland domain, the three relevant tools provide search, schema introspection, and query — a basic read-only flow — but lack common GIS operations like listing all layers, spatial filtering, geocoding, or export. The unrelated Pipeworx tools create confusion and do not fill gaps in the ArcGIS surface.
Available Tools
34 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?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false. The description goes beyond annotations by disclosing the default model (Workers AI Llama-3.3-70b, free), the BYO-key mechanism for Anthropic ('you pay Anthropic directly'), and the exact return structure (score, confidence, signals, raw_response, combined view). This adds practical behavioral and cost context without contradicting any annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, each earning its place: purpose, configuration/cost detail, return format and use cases. It is front-loaded with the core function and avoids redundant phrasing or repetition of schema field names. Efficient and well-structured for an agent to parse.
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 takes on the burden of explaining return values, which it does explicitly: 'per-model {score, confidence, signals, raw_response} + a combined view.' It also covers default behavior, optional configuration, cost implications, and typical usage scenarios. This is sufficiently complete for an agent to understand the tool's capabilities and decide invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds meaning beyond the schema by specifying the default model for the 'models' parameter and clarifying the financial implication of _apiKey ('BYO key — you pay Anthropic directly'). These are meaningful additions not present in the schema descriptions, justifying 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 opens with a specific verb+resource+output: 'Probe one or more LLMs for what they know about a business / brand / product / topic and score visibility (0-100) per model.' This clearly defines the tool's function and distinguishes it from siblings like ask_pipeworx or scan_competitor_ai_presence by focusing on aggregated visibility scoring rather than answering a question or scanning a specific competitor.
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 use cases: 'Useful for AI-marketing audits, pre-launch brand checks, competitive monitoring.' It implicitly tells agents when to choose this tool. However, it does not explicitly name alternative tools or state when NOT to use it, so it stops short of the explicit exclusion guidance needed for a 5.
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,566 tools across 1462 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 establish read-only, idempotent, and non-destructive behavior, so the bar is lower. The description adds valuable behavioral context: it returns structured answers with stable citation URIs, works on every tier, and makes a single fast call. There is no contradiction with annotations, and these additions help an agent anticipate 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 long but impeccably structured: it starts with a bold directive, then enumerates supported domains, explains the mechanism, provides usage cues and examples, and ends with comparisons to alternatives. Every sentence adds distinct value, with no filler or redundancy. The formatting (capitalization, line breaks) further enhances readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex routing tool with no output schema, the description covers essential context: what types of questions to ask, what kind of answer to expect (structured, with citations), and how it compares to sibling tools. It does not explain the exact response format or pagination, but that is not necessary for an agent to decide whether to invoke this 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 input schema already covers all parameters with descriptions, including aliases for 'question', so description coverage is 100%. The description does not add semantic detail about parameters beyond the schema, but it does provide illustrative examples that indirectly clarify usage. This matches the baseline 3 for high 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 clearly states the tool's purpose: a default entry point that routes questions to thousands of tools across verified sources, and explicitly distinguishes it from siblings like ask_pipeworx_grounded and deep_research. It uses a strong, specific framing ('PREFER OVER WEB SEARCH') and provides concrete examples, making its functionality 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 explicit when-to-use guidance, covering triggers ('whenever the user asks "what is", "look up"...'), default behavior ('START HERE'), and clear alternatives for more specific needs ('Step up only when needed' for grounded or deep_research). It even addresses edge cases like breaking news, making it highly actionable.
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,566 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, openWorldHint, idempotentHint, and destructiveHint false, so the description adds context beyond this: it is a full working router with no fallback, experimental routing improvements enabled live, and currently matches ask_pipeworx exactly. 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 bit longer than necessary but each sentence adds useful context. It could be tightened (e.g., repeating 'currently matches ask_pipeworx' twice), but it remains structured and front-loaded with the key beta distinction.
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 (a router with 5,564 tools) and absence of output schema, the description sufficiently explains its experimental nature, current behavior, and relationship to the stable version. It covers all essential aspects 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 description coverage is 100% with all six parameters (question and aliases) described. The description adds no parameter-specific meaning beyond stating 'same arguments' as ask_pipeworx, so it relies on the schema's existing documentation.
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 the same 5,564 tools, arguments, and response shape. It distinguishes itself from stable ask_pipeworx by noting candidate routing improvements under test, so its purpose is specific and clear.
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 states 'Use it exactly like ask_pipeworx when you want the newest routing,' providing clear when-to-use guidance. It also references the stable router and comparison process, but does not explicitly mention alternatives like ask_pipeworx_grounded or other sibling tools.
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,566 across 1462 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 annotations already include readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, so basic safety is covered. The description goes beyond by disclosing the refusal behavior with explicit refusal_reason values (not_in_source, no_tool_match, tool_error, data_truncated, llm_error) and the return structure including evidence and confidence. It also discloses that it costs an extra LLM call, which is critical operational impact.
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: starts with a clear purpose, then explains behavior, return values, usage guidance, and cost trade-off in a dense but organized paragraph. Every sentence adds value—no filler or repetition. It fits within a few sentences and front-loads the key 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 read-only, idempotent tool with a single required parameter, the description is comprehensive: it explains the routing (picks from 5,564 tools), the extraction process, the refusal cases, and the return payload. There is no output schema, but the description details the return structure including refusal_reason values, making it complete for agents to understand expected outputs and failure modes.
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 coverage is 100%, and the description does not add much beyond what the schema already says: it mainly explains the 'question' parameter and lists aliases. The parameter semantics are fully documented in the schema, so the description adds minimal additional meaning, but no deduction is needed since coverage is high.
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 this is a 'hallucination-resistant answer mode' for high-stakes reads, distinguishing it from the sibling 'ask_pipeworx' by emphasizing extraction from tool results only. It specifies the verb (answer) and the resource (Pipeworx), and explicitly differentiates from a sibling tool by noting the extra LLM call cost.
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 says 'Use whenever an answer will be quoted, cited, or acted on, and the agent must not invent facts' and gives concrete examples (financial verdicts, legal claims, medical lookups, public statements). It also states when NOT to use it: 'prefer ask_pipeworx for casual lookups' and mentions the cost trade-off, providing clear guidance on choosing between alternatives.
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?
Adds extensive behavioral detail beyond the readOnly/idempotent annotations: fan-out logic, resolver contract, safety blocking statuses (low_confidence_match, market_closed_or_inactive), wide-spread warnings, and cancellation-rule parsing. No contradiction with annotations; the description and annotations align well.
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 extremely well-organized with uppercase section headers (CLASSIFIERS, FAN-OUT EXAMPLES, RESPONSE SHAPES, etc.) and a front-loaded purpose. Every section provides unique, valuable information that would be unavailable from structured fields; nothing feels like 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 fully documents return shapes (result.market, result.analysis, result.evidence), the resolver contract, parent-event extraction, news retry fields, and blocking edge cases. It also covers resolution-rule risk, which is critical for sizing. No significant gaps remain for a tool of this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the schema descriptions are already rich (market formats, depth enum, include_raw tradeoffs). The tool description adds no new parameter-level semantics beyond re-emphasizing that market can be a slug, URL, or question text. 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 opens with a specific verb+resource: 'Research a Polymarket bet by pulling the relevant Pipeworx data for it in one call.' It also gives concrete example queries and distinguishes itself from sibling edge-scanning tools by focusing on a single market with a market-vs-model comparison.
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 provides use cases: 'Use for "should I bet on X", "what does the data say about Y", or "is there edge in Z".' However, it does not name alternative tools or state when not to use it, so it misses the top score by a narrow margin.
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?
Annotations already indicate read-only, open-world, idempotent, and non-destructive behavior. The description adds substantial behavioral context: it pulls specific financial metrics from SEC EDGAR/XBRL, handles off-calendar fiscal years (e.g., AAPL Sep, NVDA Jan), sorts results by primary metric, returns paired data with citation URIs, and claims to replace 8–15 sequential lookups. This goes beyond what annotations or schema provide.
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 and information-packed, but organized with concrete examples and a clear lead. Every sentence contributes either to purpose, usage, or behavioral detail. The only minor drawback is that the initial sentence lists many natural-language triggers, making it a bit longer than necessary, but it remains focused and scannable.
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 having only two parameters and no output schema, the description fully covers what data to expect (financial metrics for companies, adverse-event counts for drugs), how results are presented (sorted by primary metric, paired data, citation URIs), and how this tool fits into the broader workflow (replaces many lookups). There are no significant missing pieces for an agent to invoke and interpret results.
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 provides full descriptions and examples for both parameters (type enum, values min/max). The description enriches these by explaining exactly what each 'type' retrieves (10-K fields vs FAERS/FDA/trials) and elaborates on the 'values' format with specific examples like ["AAPL","MSFT"] and ["ozempic","mounjaro"]. It also clarifies how the primary metric determines sorting, adding 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 opens with concrete trigger phrases like 'Compare X and Y' and 'X vs Y', making the tool's purpose immediately clear. It explicitly states the resource (2–5 companies or drugs) and the action (side-by-side comparison), and distinguishes itself from siblings like 'entity_profile' by emphasizing parallel comparison vs. sequential lookups.
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 with 'ALWAYS PREFER over sequential single-pack lookups', giving a clear when-to-use and what to avoid (sequential lookups). It also details type-specific use cases (company vs drug) and the exact entities they cover, which helps the agent choose correctly.
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 1462 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,566 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?
Annotations already convey read-only, idempotent, and non-destructive behavior, and the description adds substantial context beyond that: account/tier requirements, parallel decomposition, gap reporting with explicit gaps[], contradiction detection for deeper depths, semantic excerpting, resolvable citation_uri behavior, and expected latency. No contradiction with annotations is present.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but front-loaded with the most critical operational constraint (account/sign-in) and dense with necessary behavioral specifics. Every sentence carries useful information, though the length is substantial; for a tool this complex, the structure is reasonable rather than wasteful.
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, no output schema, and two influential parameters, the description is remarkably complete: it explains output packet contents, gaps, contradictions, citation resolvability, hop semantics, timing, and source catalog limits. It leaves very little for an agent to guess, and the sibling-tool differentiation is thoroughly handled.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds beyond the schema by explaining how 'question' benefits from being broad/multi-part ('decomposition is the point') and by enriching depth semantics with behavior differences (gap recovery, lead chasing, contradictions scan). This is meaningful added value, though not dramatically above the detailed 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 uses a specific verb + resource: 'grounded multi-source research across Pipeworx's 1462 STRUCTURED data sources' with concrete examples of use cases. It clearly distinguishes itself from sibling tools like ask_pipeworx by stating this is NOT open-web search and by positioning it as the tool for broad/multi-part structured-data questions.
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 for broad/multi-part structured-data questions, use ask_pipeworx for single lookups, and prefer ask_pipeworx for breaking/current-news topics. It also names an alternative for unsigned-in users and explains the paid-tier requirement for 'thorough', making routing decisions unambiguous.
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 indicate readOnly, idempotent, and non-destructive behavior. The description adds useful behavioral context beyond that, such as returning top-N results with names, descriptions, and full schemas 'ready to call directly, no second schema lookup needed.' 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 front-loaded with the core purpose, followed by usage context and a domain list. It is somewhat lengthy due to the enumeration of domains, but each part serves a function: the domain list aids query formulation and the return-behavior sentence justifies calling the 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?
Given the tool's simple one-required-parameter nature, the description is complete. It explains what the tool does, when to use it, and what it returns (names, descriptions, schemas with examples), covering the key aspects an agent needs without an 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?
Input schema has 100% coverage, documenting the query parameter and its aliases, plus a limit parameter with defaults and max. The description's mention of 'describing the data or task' and the domain list helps formulate a query, but it does not add new parameter details 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 begins with 'Find tools by describing the data or task,' a specific verb+resource that directly states what the tool does. It further clarifies by listing concrete domains and highlighting that it returns tool names, descriptions, and schemas, which clearly distinguishes it from sibling data-search 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 explicitly says 'Use when you need to browse, search, look up, or discover what tools exist for...' and advises 'Call this FIRST when you have many tools available.' This provides clear when-to-use guidance, though it does not name alternative tools or state explicit when-not-to-use conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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?
Annotations already declare readOnly, openWorld, idempotent, and non-destructive behavior. The description adds valuable context beyond that: it fans out across multiple sources (SEC EDGAR, XBRL, USPTO, news, GLEIF), returns specific fields, mentions that the USPTO API is sunset with soft-fail, and describes a GDELT→GNews fallback. 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 long but well-structured. It opens with user-intent examples, then states the core function, then lists return fields, then covers limitations. Each sentence adds information; however, the parameter and limitation details are interleaved, which slightly hurts readability. Still, it remains efficient overall.
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?
Without an output schema, the description fully explains return values (cik, company_name, recent_filings with URIs, fundamentals, patents, news mentions, LEI). It also covers edge cases like unsupported name input and source fallback behavior. For a tool with this complexity, the description is remarkably 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?
The input schema already documents type and value with 100% coverage. The description reinforces this by providing concrete examples ('AAPL', '0000320193') and reiterates the name limitation, which adds practical clarity beyond the schema's 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's purpose: 'full cross-source profile of a US public company in ONE parallel call.' It gives specific example queries ('Tell me about X', 'company profile for Microsoft') and explicitly differentiates from chaining single-pack lookups, making its scope 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 states when to use it: 'ALWAYS PREFER over chaining single-pack SEC/XBRL/news lookups when the user asks for a holistic view.' It also tells the agent when not to use it: names are not supported, and instructs to 'use resolve_entity first if you only have a name.' This provides clear decision guidance.
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, covering the safety profile. The description adds the context of why to use it (clearing sensitive data) but doesn't disclose additional behavioral aspects like permanence or error handling, though these are implied by the annotations. 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 three short sentences, front-loaded with the core action first, then usage context. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter delete tool with strong annotations, the description covers purpose, usage context, and relation to siblings. It doesn't describe return behavior or non-existent key handling, but given the simplicity and annotation 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?
The single parameter 'key' is fully described in the schema with an example. The description merely says 'by key', adding no new semantic information 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 uses the specific verb 'Delete' and the resource 'previously stored memory by key', clearly distinguishing it from siblings like remember and recall. It is unambiguous and actionable.
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 states three trigger conditions (stale context, task done, sensitive data) and instructs pairing with remember and recall, providing clear guidance on when this tool is appropriate.
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 process (fetches page, extracts title/description/key links, emits markdown) and the output format (single text blob for site-root/llms.txt), adding valuable context beyond the annotations. Given the annotations already convey safety (readOnly, idempotent, non-destructive), this level of transparency is sufficient.
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 main purpose, followed by a brief process summary and actionable use cases. Every sentence earns its place, with no filler 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?
The tool is simple (2 params, no output schema), but the description compensates well by explaining what the output looks like and the workflow. It does not cover edge cases like network failures or rate limits, but given the low complexity and strong annotations, this is a minor 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 input schema has 100% coverage for both parameters, so the baseline is 3. The description adds minimal parameter-specific meaning; it mentions 'any URL' aligning with the url parameter but does not elaborate on max_links. The schema handles parameter semantics 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 clearly states the tool generates a production-ready llms.txt file for any URL, with a specific verb and resource. This distinctly separates it from sibling tools like ai_visibility_check or scan_competitor_ai_presence, which focus on checking AI presence rather than generating an index file.
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 lists useful scenarios (getting a client's site indexed, drafting llms.txt, auditing a competitor) which provides clear context for when to use the tool. It does not explicitly name alternatives or exclusions, but the use cases are specific enough to guide an agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
layer_infoLayer InfoARead-onlyIdempotentInspect
Get an ArcGIS Feature/Map Service layer's schema by url: fields (name + type), geometry type, total record count, and capabilities.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Feature/Map Service layer url, e.g. ".../FeatureServer/0". |
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 safe read-only nature is covered. The description adds context about return contents ('total record count' and 'capabilities'), which goes slightly beyond annotations but does not disclose potential rate limits, authentication requirements, or response behavior. With annotations present, this is adequate but not rich.
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, well-structured sentence that front-loads the verb and resource, then lists the specific return items. Every word contributes value; there is no filler or repetition. It is appropriately sized for the tool's simplicity.
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 one simple parameter and no output schema, the description fully enumerates the return values (fields, geometry type, record count, capabilities), providing enough context for an agent to know what to expect. No additional details about return formatting are necessary since the description covers the core output.
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 for the single 'url' parameter, including an example and description. The description's phrase 'by url' is redundant with the schema. It does add meaning by clarifying the URL identifies a layer and by listing the returned fields, but this is not parameter-specific. Baseline of 3 is appropriate given the schema's completeness.
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 a specific verb ('Get') and resource ('ArcGIS Feature/Map Service layer's schema'), and lists exactly what the tool returns: fields (name + type), geometry type, total record count, and capabilities. This is specific and distinguishes it from sibling tools like query_layer, which likely fetches data rather than schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage: when you need schema information for an ArcGIS layer, use this tool. However, it does not explicitly mention alternatives or provide exclusions, such as 'for querying features, use query_layer instead.' The context is clear but lacks explicit comparative guidance.
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 provide readOnlyHint=true and destructiveHint=false. The description adds that the response is scoped to the caller ('caller's active subscriptions') and lists the exact fields returned, which goes beyond annotation. No contradiction exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the action and return payload, no unnecessary words. 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 list tool with one optional parameter, strong annotations, and no output schema, this is complete. It explains the return shape, the default scope (active), and the practical use cases. 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% coverage for the single optional parameter include_inactive, with a clear description and default. The tool description adds 'active' context indirectly, but does not need to re-explain the parameter since the schema fully covers 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 uses a specific verb+resource: 'List the caller's active subscriptions.' It clearly distinguishes from sibling tools like subscribe/unsubscribe by focusing on read-only listing. It also enumerates the return fields, leaving no ambiguity about what the tool does.
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 states when to use it: 'Use this to review what you're monitoring before adding more or to find an id to cancel.' This directly contrasts with subscribe and unsubscribe tools, giving the agent clear context.
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?
With all annotation hints false, the description carries the full transparency burden. It discloses the claim_token workflow, rate limit of 5 per identifier per day, quota exemption, and the fact that feedback is read in daily digests. These details go well beyond the annotations and there is 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 long but every sentence earns its place: purpose, usage categories, scope restriction, message guidance, claim-token workflow, roadmap impact, and operational limits. It is front-loaded with the core purpose and then layers necessary constraints and follow-up behavior without 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?
The description covers scope, message content guidelines, claim-token follow-up, rate limits, quota impact, and review cadence. It is slightly ambiguous about return behavior when an account is present versus anonymous filing, and there is no output schema to fill that gap, but the core invocation and follow-up flow are clear.
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 adds useful semantic context by explaining that the message should reference Pipeworx tools/packs, demonstrating the claim_token invocation pattern, and clarifying that claim_token usage with no other arguments retrieves resolution status. It does not add meaning for the context object beyond the schema, but the existing schema is strong.
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 verb+resource: telling the Pipeworx team about broken, missing, or desired capabilities. It further scopes the tool to this Pipeworx connection and explicitly distinguishes it from feedback for other MCP servers, so its purpose is unambiguous and distinct.
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 categories for when to use it (bug, feature, data_gap, praise) and a clear exclusion: if the issue belongs to a different MCP server, file it there instead. It also gives practical guidance like not pasting the end-user's prompt, making usage conditions concrete.
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 read-only/idempotent annotations, the description discloses that results are self-aggregating, derived from CF analytics-engine, contain no PII, and are cached for 5min-1h. This adds valuable context about data provenance and freshness, but stops short of explaining exact output structure 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 longer than a single sentence but well-structured: a summary sentence, a bulleted list of use cases, and a concise data-provenance note. Each sentence adds value, with 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?
With no output schema, the description compensates by explicitly mentioning return contents (top tools, packs, call volume), data origin, and caching. Combined with the three use cases, this fully equips an agent to understand when and how to use the 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%, and the schema already explains the window parameter's enum values and semantics (short windows for hot trends, longer for steady-state). The tool description only repeats the window options without adding new meaning, so it meets the baseline but does not 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 clearly states what the tool returns: top tools, top packs, and total call volume for a recent window. The phrase "what other AI agents are calling on Pipeworx right now" conveys the specific purpose and distinguishes it from siblings like discover_tools by focusing on trending/aggregate usage.
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 use cases (identifying hot data sources, confirming canonical tool choices, and checking alignment with agent demand), which is clear guidance. However, it does not mention when not to use the tool or alternative tools, so it earns a 4 rather than a 5.
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?
Beyond the read-only annotation, it details internal validation steps: threshold for partition deviation >3pp, Jaccard similarity >=0.30, placeholder filter >20%, and the fill check against live CLOB depth. It also discloses that a realizable edge <=0 means the opportunity is not tradable, which is critical 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?
Though long, the description is carefully structured: core purpose first, then the three call modes, then validation filters, response format, and fill-check caveats. Every sentence carries specific operational detail, with no filler 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 complex tool with no output schema and many modes, this description covers all essential aspects: the parameters, response fields (opportunities[], partition_check{}), edge cases like placeholder filtering, and integration with polymarket_fill_risk. It is complete enough for an agent to invoke correctly without further documentation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description greatly enriches the schema by giving actual slug examples ('fed-decision-may-2026') and noting full URLs are accepted for `event`. It explains the semantic difference between `event` (single-event scan) and `topic` (cross-event scan) and mentions the no-arg default, none of which are in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource: 'Find arbitrage opportunities on Polymarket via monotonicity violations + partition-sum checks,' which clearly distinguishes it from sibling tools like polymarket_edges or polymarket_fill_risk. It also describes three distinct usage modes (default, event, topic), further clarifying its purpose.
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 explains when to use each mode: 'Call with NO args for a trending_scan,' 'pass event for...' and 'pass topic for...' with concrete examples. It also provides an alternative: 'For custom sizing use polymarket_fill_risk,' and a clear when-not-to-trade condition: 'realizable_edge_pp ≤ 0 means... do not trade it.'
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?
Annotations already declare readOnlyHint, openWorldHint, and idempotentHint, but the description adds rich behavioral detail: 1h KV-level caching keyed on knobs, per-leg Kelly cap at 0.25, diagnostics for empty segments, and the 24h-move warning. It also discloses that the concentrated_longshot segment is 'rare-by-design' and Fed bets are excluded. No contradiction found.
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: introduction, model families, knobs, response top-level, diagnostics, and caching. It is front-loaded with the core purpose. Each section adds operational knowledge, though some technical density could be trimmed.
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 an output schema, the description thoroughly covers return fields (edge_pp_net, kelly_fraction, market.liquidity, spread_pp, volume), response top-level structure (by_segment, fed_candidates, _diagnostics), and model-family behavior. This is sufficient for an agent to invoke and parse 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?
Schema coverage is 100%, so the baseline is 3. The description groups knobs into 'TRADEABLE-EDGE KNOBS' and explains their purpose (e.g., 'drop opportunities where edge isn't realizable'), but it doesn't add syntax or format details beyond what the schema already 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 opens with a specific verb+resource: 'Scan top Polymarket markets and return opportunities where Pipeworx data disagrees with market price.' The 'Built for what should I bet on today' phrase positions it as a discovery tool, clearly distinguishing it from siblings like polymarket_arbitrage or polymarket_fill_risk.
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' and explains how the knobs adjust tradeable edge. It does not explicitly name alternative tools for different use cases, but it implies when this tool should be chosen over paging hundreds of markets.
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/idempotent, and the description adds substantial context: 60-day snapshot TTL, history depth starting when snapshotting was enabled, snapshots written only on cache-miss (explaining gaps), and decay computed from daily closes rather than intraday. This gives the agent critical behavioral understanding 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 well-structured with the core purpose front-loaded, followed by args, response, and limits. It is dense and informative, but slightly verbose with illustrative comments like 'the latter is wide for a reason nobody is willing to take' that are not strictly necessary. Still, every section adds 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?
Without an output schema, the description thoroughly defines the return structure (tracked, expired, snapshot_dates) including key fields like edge_pp_net time-series, trend, decay_pp_per_day, and lifespan_days. It also explains data availability constraints and computational basis, making it fully self-contained for the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the description adds no new meaning beyond the schema. 'days' and 'window' are fully described in the schema (lookback, default, clamp, enum values). The phrase 'snapshot family' is essentially synonymous with the schema's 'window family', so the description adds only marginal semantic value.
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: edge persistence and decay telemetry built from daily polymarket_edges snapshots. It answers a specific question ('how long has this edge existed and is it shrinking?') and distinguishes itself from sibling tools like polymarket_edges by focusing on historical telemetry rather than current edge discovery.
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 use case by answering a specific question and explaining the data source (daily snapshots). It mentions relationship to polymarket_edges and snapshot gaps, giving clear context. However, it does not explicitly name alternatives or state when not to use this tool, 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.
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?
Annotations (readOnlyHint, idempotentHint, destructiveHint) already establish safety, but the description adds substantial behavioral detail: it walks the order-book ladder, returns specific fields (slippage_pp, max_fillable_usd, verdict), and for basket mode exposes per-leg fill detail and 'forced_directional_risk'—explaining what outcomes to expect. 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 long, but it is well-organized with labeled sections (SINGLE-MARKET, BASKET) and each sentence carries useful information. It could be slightly more succinct, but given the two-mode complexity, the length is justified and front-loaded with the core 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?
Despite lacking an output schema, the description enumerates all returned fields in both modes, covers parameter defaults and clamps, explains the required market/event mutual exclusivity, and warns about the dominant failure mode. For a tool of this complexity, it is remarkably 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?
Even though schema coverage is 100%, the description enriches each parameter: size_usd is clarified as 'max spend on buys, target proceeds on sells' and in basket mode as 'settlement notional'; side gets a default and auto-selection logic; market and event are tied to modes. This goes far beyond the schema's bare 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, action-oriented purpose: 'Realizable-vs-theoretical edge check against live CLOB order-book depth.' It clearly differentiates two modes (single-market and basket) and explicitly contrasts itself with sibling tools like polymarket_arbitrage and polymarket_edges, making its unique function 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?
Provides explicit when-to-use guidance: 'USE THIS before acting on any polymarket_arbitrage SELL/BUY-EVERY-LEG signal or any polymarket_edges trade above ~$500.' It also explains the rationale (theoretical overround on thin books is not capturable, partial basket fills create unhedged directional risk), giving clear decision context.
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?
Even though annotations already declare readOnlyHint, openWorldHint, idempotentHint, and non-destructive, the description goes far beyond these by detailing the response structure (leg-by-leg prices, matched spread, top_spreads_pp), the compatibility_warning logic with two distinct cases, temporal_alignment semantics, and skipped_cross_type/subtype counters. It even discloses that most pre-mapped topics will return compatibility_warning, which is a non-obvious behavioral trait. 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 substantial but well-organized: it opens with a one-sentence definition, then breaks down modes, response fields, safety warnings, and a concluding caveat. Every sentence carries meaningful information, though a few clauses are densely packed (e.g., the compatibility_warning explanation could be parsed into simpler bullets). It is front-loaded and structured, and the length is justified by the tool's complexity, but it could be slightly tighter.
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 takes on full responsibility for explaining return values, and it does so thoroughly: leg-by-leg prices, matched spread[], compatibility_warning conditions, temporal_alignment fields, and skipped counters. It also explains the meaning of edge cases (e.g., matched_pairs:0 with skipped_cross_type>0) and why temporal misalignment invalidates spreads. For a tool with this many behavioral nuances, the description is remarkably 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?
The input schema already provides 100% coverage with descriptions for all three parameters, so the baseline is 3. The description adds extra semantic value by explaining the pre-mapped topic list in context, clarifying that explicit tickers 'override' the mapped side, and giving concrete examples for each parameter. This goes beyond simple schema repetition and helps the agent understand the mode relationship between topic and explicit overrides.
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, specific definition: 'Cross-venue spread between Kalshi and Polymarket for the same resolving question.' It names the exact resources (Kalshi, Polymarket) and the scope (spread comparison), and distinguishes it from sibling tools like polymarket_arbitrage by focusing on the cross-venue comparison aspect. It also outlines two distinct modes of operation, making the tool's purpose 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 provides explicit usage context by explaining the two modes ('topic' vs explicit tickers) and when each is appropriate. It also gives behavioral guidance like 'Real cross-venue spreads are rarer than the macro-shortcut list suggests' and 'pre-mapped ≠ tradeable,' which helps set expectations. However, it does not explicitly name alternative tools or state 'use this instead of X,' so it falls short of an explicit when/when-not set of alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
query_layerQuery LayerARead-onlyIdempotentInspect
Query an ArcGIS Feature Service / Map Service layer by its url (from search_datasets). SQL-like where, comma-separated out_fields, order_by, limit, offset. Returns attribute rows (and geometry). Use where="1=1" + out_fields="*" to sample.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Feature/Map Service layer url ending in /FeatureServer/<n> or /MapServer/<n>. | |
| limit | No | Max features (1-2000, default 50). | |
| where | No | SQL where clause, e.g. "STATE = 'CA' AND YEAR >= 2020". Default "1=1". | |
| offset | No | Pagination offset. | |
| order_by | No | e.g. "POP DESC". | |
| out_fields | No | Comma-separated field names, or "*" for all (default). |
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. The description adds value by specifying the return content: 'Returns attribute rows (and geometry)' and provides a sample usage pattern, complementing the annotation-provided safety profile 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 three short sentences, front-loaded with the main action, and every sentence contributes: purpose/source, parameters, return type and usage tip. No redundant phrasing 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?
For a 6-parameter query tool with no output schema and good annotations, the description covers essentials: what it queries, how to obtain the URL, key parameters, return type (rows and geometry), and a practical usage pattern. It is complete enough 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?
Input schema covers 100% of parameters with descriptions, so baseline is 3. The description enhances parameter understanding by labeling `where` as 'SQL-like', and the tip 'where="1=1" + out_fields="*"' illustrates a common pattern for sampling all data, adding 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 tool's function with a specific verb and resource: 'Query an ArcGIS Feature Service / Map Service layer by its url'. It also references 'from search_datasets', distinguishing it from sibling tools like search_datasets (for finding datasets) and layer_info (for metadata). The purpose is unambiguous and well-differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context by indicating the URL originates from search_datasets, and offers a practical sampling tip: 'Use where="1=1" + out_fields="*" to sample.' It does not explicitly name alternative tools or state when not to use this tool, but the guidance is sufficient for typical use.
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 read-only, idempotent, and non-destructive hints. The description adds valuable context beyond that: scoping to a user identifier (anonymous IP, BYO key hash, account ID) and the behavior of listing all keys when the key argument is omitted. This extra behavioral detail helps the agent understand side effects and privacy boundaries.
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 extremely concise at three short sentences, with the primary action front-loaded in the first sentence. Every sentence adds distinct value: functionality, usage context, sibling pairing, and scoping. No redundant words 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?
For a simple one-parameter tool with no output schema, the description sufficiently covers the core behaviors: retrieval, listing, scoping, and differentiation from related tools. It does not describe the exact return format or error handling, but those are not necessary for this simple read-only memory access tool. The annotations cover its safety profile, so the description is complete enough.
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 the single parameter fully (100% coverage), so the baseline is 3. The description adds meaningful semantic enrichment by giving concrete examples of valid keys and emphasizing the omit-key behavior, which supports the agent's understanding of both parameter usage and output behavior.
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 precise verb ('Retrieve a value previously saved via remember') and clearly differentiates its two modes (retrieve specific key or list all keys). It also distinguishes itself from sibling tools by explicitly pairing with 'remember' and 'forget', making its purpose unambiguous and easy to select correctly.
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 when-to-use guidance with concrete examples (user's target ticker, address, prior research notes) and explicitly states how it fits with siblings: 'Pair with remember to save, forget to delete.' This equips the agent with both positive usage context and an alternative/replacement relationship.
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?
Annotations declare readOnlyHint=true, but the description says mark_read:true flags returned events read so the next call only shows newer ones — a persistent state mutation. This directly contradicts the read-only annotation, which is a serious inconsistency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Five sentences, front-loaded with purpose, then return format, filters, side-effect, and an alternative access path. Every sentence earns its place; no filler 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?
Given no output schema, the description usefully lists return fields (source, citation_uri, raw payload) and explains filtering, mark_read behavior, and polling suitability. Minor gap: unread_only isn't described in prose, but the schema covers it, and there's no pagination caveat beyond the limit parameter.
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 all 5 parameters (100%), so baseline is 3. The description adds meaningful semantics: type example 'sec_8k', ISO timestamp format for since, and mark_read's effect on subsequent calls. It doesn't mention unread_only in prose, but the schema already documents 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?
Opens with 'Pull fired events from your subscription feed' — a specific verb and resource. It clearly identifies the tool's role (returning recent alerts from a persisted evaluator feed) and distinguishes it from siblings like recent_changes or list_subscriptions.
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: filtering by type and since, setting mark_read, and mentions that polling works fine. It also names an alternative HTTP endpoint for scripts/dashboards, but doesn't explicitly contrast with sibling tools or state when not to use.
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?
Annotations already declare readOnly/idempotent safe behavior, but the description adds rich context: parallel fan-out to multiple sources, rate-limit fallback, date parsing rules, soft-failure for patents, and the return shape with citation URIs. 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 dense but each sentence carries unique information, starting with user intents, then mechanism, parameter details, return value, and alternative. It is slightly long but not padded; a strong structure earns a high score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, but the description specifies the output structure (changes[], total_changes, citation URIs), covers failure modes and fallbacks, and contrasts with entity_profile. This is complete for a multi-source change-feed 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%, yet the description adds meaningful examples for `since` (ISO/relative formats, recommended '30d'), explains `value` as ticker or CIK, and notes `type` only supports company. This guidance aids correct invocation 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 tool provides a change feed for a company over a time window, with specific examples of user intents. It explicitly names the data sources (SEC EDGAR, GDELT/GNews, USPTO) and distinguishes itself from the sibling entity_profile tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives concrete example queries ('What's new with X', 'updates on Acme') and explicitly directs users to entity_profile when a static profile is desired. It also explains fallback behavior between GDELT and GNews, plus the patent soft-fail, framing when this tool is appropriate.
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?
The description adds behavioral details beyond annotations: persistence across sessions, 24-hour retention for anonymous sessions, and scoping by identifier. It also clarifies that authenticated users get persistent memory, which is critical for understanding long-term 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 front-loaded with the primary action, followed by usage context, storage semantics, and related tools. Every sentence earns its place without fluff, making it 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?
With only two simple parameters and no output schema, the description fully covers the tool's lifecycle and behavior. It explains what data to store, why, when, and how it interacts with recall/forget, leaving no critical ambiguity for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description reinforces parameter meaning with examples ('a resolved ticker, a target address, a user preference, a research subject') and explains the key-value pair scoping, adding value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Save data the agent will need to reuse later'. It identifies the resource (key-value store) and distinguishes itself from siblings by mentioning recall and forget, making its purpose 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?
Explicit guidance is provided: 'Use when you discover something worth carrying forward...' followed by concrete examples. It also gives complementary tools ('Pair with recall to retrieve later, forget to delete'), clarifying when to use this tool versus alternatives.
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 declare readOnlyHint, idempotentHint, openWorldHint, and non-destructive. The description adds concrete behavioral traits: graceful degradation ('if GLEIF or OpenFIGI is unavailable, the EDGAR identifiers still return'), internal cascading lookups, and explicit handling of unresolved identifiers under an 'unresolved' field. This adds value beyond annotations with no contradictions.
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 example queries and purpose, then details supported types. Every section adds value. However, the block on company identity is verbose (multiple sources, labeling, graceful degradation interwoven). Some of this could be split into separate sentences or condensed without losing meaning, making it slightly less concise than ideal.
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 no output schema, the description covers return structure (identifiers labelled by source, unresolved listed explicitly) and graceful degradation. It explains both entity types thoroughly. The drug type output (RxCUI + ingredient + brand + citation) is mentioned but the overall return format is assumed (structured JSON). A brief explicit statement of the output shape would elevate completeness to a 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (baseline 3). The description adds practical examples for the 'value' parameter: 'ticker (AAPL), CIK (0000320193), or name' for company, and 'brand or generic name (e.g., "ozempic", "metformin")' for drug. It also enriches the 'type' enum by explaining what each type returns (e.g., 'cross-source identity spine' for company). This exceeds the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with concrete example queries (ticker, CIK, LEI, RxCUI) and states 'resolve a user-spoken NAME to the canonical/official identifiers other tools require as input.' It explicitly says 'Use FIRST whenever you have a name but need an ID.' The detail on supported types (company, drug) clearly differentiates from sibling tools like entity_profile or compare_entities, which operate on already-resolved IDs.
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 strong positive guidance: 'Use FIRST whenever you have a name but need an ID' and lists the exact questions it answers (e.g., 'what's the ticker…?', 'who owns X'). It implies this tool is a prerequisite for tools that require IDs. However, it does not explicitly state when to avoid it (e.g., 'If you already have an ID, use entity_profile instead'), which would make the guidance complete.
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?
The description discloses that it internally calls ai_visibility_check for each entity, ranks results, and returns a specific structure (score, confidence, signal density). These behaviors go beyond the annotations (readOnly, idempotent, non-destructive) and give the agent a clear picture of what the tool does, including its internal composition and output.
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 that front-load the core purpose, explain the mechanism, provide a use case, and summarize output. Every sentence adds value, and the structure is clear and scannable. 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 tool with moderate complexity (4 params, no output schema), the description covers the key aspects: what it does, how it works, when to use it, and what it returns. The output format is described sufficiently ('ranked list with score, confidence, signal density'), and the annotations cover safety. No 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 description coverage is 100%, so the baseline is 3. The description does not add significant meaning beyond the schema: it mentions 'your brand + N competitors' which mirrors the entities parameter description already provided. No extra parameter-level detail is added, so the score remains at the adequate 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 clearly states the tool's purpose: 'Compare AI visibility across multiple entities side-by-side.' It specifies the verb (compare), the resource (AI visibility), and differentiates it from the sibling ai_visibility_check by focusing on multi-entity comparison and ranking. The example use case further clarifies the intended function.
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: 'Useful for competitive AI-marketing audits' and gives a concrete example. It implicitly differentiates it from the single-entity tool by stating it probes with ai_visibility_check, which suggests the sibling for individual checks, though it doesn't explicitly state exclusions. This is strong guidance without fully spelling out alternatives.
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?
Annotations already indicate readOnly and idempotent behavior, but the description adds crucial operational context: partial failures degrade gracefully, bundlephobia's first measurement may take 5-30s, and sources_failed will list timeouts. This is beyond annotation scope and helps the agent anticipate real-world latency and error handling.
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 purpose, followed by usage, return summary, ecosystem scope, and failure behavior. Every sentence provides distinct, actionable information; despite length, there is no 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 no output schema, the description enumerates the return summary fields (is_latest, license, etc.), per-advisory details, links, and alternative versions, plus failure handling. It fully covers the tool's behavior and data output, making it self-sufficient for an agent.
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 clear descriptions for package (with scoped package mention) and version (with default behavior). The description adds contextual framing ('should I add this npm package') but does not introduce new parameter semantics, meriting the baseline score.
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 specifies a composite check for 'should I add this npm package to my project', naming the concrete resources (deps.dev and bundlephobia) and the specific fields checked. It distinguishes itself from sibling tools by detailing the fan-out to two data sources, making it uniquely identifiable.
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: 'Use whenever an agent asks "is X safe / popular / small" or "what does adding lodash cost me"'. It also contrasts with alternatives by noting 'NPM ecosystem only in v1; PyPI / Maven / Cargo / Go fall under deps.dev:version directly', giving clear exclusion and alternative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_datasetsSearch DatasetsARead-onlyIdempotentInspect
Search City of Lakeland GIS open geospatial datasets (parcels, zoning, utilities & city services) by keyword. Returns each dataset's name, summary, record_count, owner/org, and its Feature Service url — pass that url to query_layer / layer_info.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max datasets (1-50, default 20). | |
| query | No | Keyword(s), e.g. "parcels", "crime", "flood zones". | |
| org_id | No | Optional ArcGIS orgId to override the default (City of Lakeland GIS). |
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 adds valuable behavioral context by enumerating the returned fields (name, summary, record_count, owner/org, Feature Service url) and the next-step integration. 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 two sentences and front-loaded with the core purpose, then a compact summary of the return value and chaining. Every word adds value; no filler or repetition of structured fields.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Though there is no output schema, the description lists the return fields and explains how the result (url) connects to sibling tools. It is complete for a read-only search tool; minor gaps like pagination or behavior when no results are found are not critical given the tool's simplicity.
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%; every parameter (query, limit, org_id) has a clear description in the schema. The tool description does not materially add parameter semantics beyond what the schema already provides, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb, resource, and scope: 'Search City of Lakeland GIS open geospatial datasets (parcels, zoning, utilities & city services) by keyword.' It also differentiates from siblings by explicitly describing the output and its role as a precursor to query_layer / layer_info.
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: this is for discovering geospatial datasets, and it includes the downstream workflow 'pass that url to query_layer / layer_info.' However, it does not explicitly state when not to use it or name alternatives, 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.
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?
The description discloses substantial behavioral details beyond the annotations: uses BGE-base-en embeddings with cosine similarity over 500-char overlapping windows, a 200K char cap with truncation and flagging, and output containing offsets for verifiability. This adds significant context while not contradicting the readOnly/idempotent hints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with purpose, then usage, then technical details. Every sentence contributes useful information—no filler or redundancy. The length is justified by the tool's complexity and the lack of an output schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having no output schema, the description fully explains the return structure (passages with offsets and similarity scores), edge cases (truncation flag), and an example pairing with another tool. Combined with the rich annotations and complete parameter schema, the agent has everything needed to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides 100% description coverage with examples, defaults, and ranges. The description adds no new parameter-specific meaning—it merely restates 'top-N' and the character cap. 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 performs semantic search inside a provided text, with concrete examples of the input (SEC 10-K, article, long tool result) and the output (top-N passages with offsets and similarity scores). It also distinguishes itself from related tools by naming its pairing with ask_pipeworx_grounded and specifying the 'too big to cram into the prompt' use case.
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 tells the agent when to use this tool ('Use when the record is too big to cram into the prompt') and provides a clear alternative/next step ('Pairs with ask_pipeworx_grounded'), giving actionable context for tool selection.
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?
Beyond the annotations (readOnlyHint=false, idempotentHint=true, etc.), the description discloses several behavioral traits: the need for OAuth, subscription ID return, sms verification and 10/day cap, webhook HMAC signing, and auto-disable after 10 failing runs. This adds significant context about side effects and constraints not present in the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single dense paragraph with all key information, but it could benefit from bullet points or section breaks for readability. Each sentence provides relevant detail, so it 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?
For a tool with 3 parameters and nested objects, the description covers purpose, auth, types, and delivery channels. The schema covers the remaining parameter details, and the description states the return value (subscription ID), though it could elaborate on the full response format. Overall, it's complete enough.
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 detailed descriptions for type, params, and delivery. The description supplements this by giving concrete examples (e.g., items:['5.02'] = officer change, topic:'fed') that clarify parameter semantics, adding interpretive value 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 uses a specific verb ('Create') and clearly identifies the resource ('a proactive monitoring subscription to a live-data event stream'), which distinguishes it from siblings like unsubscribe and list_subscriptions. The title 'Subscribe to Alerts' reinforces the action.
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 context on when to use the tool (for proactive monitoring) and prerequisites (requires a Pipeworx OAuth account; anonymous/BYO cannot persist). It also explains delivery alternatives (feed vs email vs sms) within the tool, but does not explicitly contrast with sibling tools for one-time queries.
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?
The description discloses return behavior beyond the annotations: it returns category-bucketed example questions, each with the exact tool and argument shape, drawn from the live catalog. It also explains the no-argument vs focused-topic behavior. This significantly enriches the readOnlyHint/idempotentHint annotations by clarifying what the tool produces and how it behaves.
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 well-structured: it front-loads example phrasings, then explains the return payload, then parameter usage, then when to use. Every sentence contributes substantive information. It is longer than ideal but the length is justified for an onboarding tool that needs to orient a new agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an onboarding entry point with one optional parameter and no output schema, the description is complete: it covers what the tool returns, how to invoke it with and without arguments, the range of topics, and its relationship to meta-tools. No important aspect of the tool's behavior is left unexplained.
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% coverage of the single `topic` parameter with a clear description. The description adds value by giving concrete examples ('finance', 'pharma', 'betting') and explicitly stating that omitting the parameter returns a cross-category spread. This clarifies usage beyond the schema's formal value list without being redundant.
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 multiple user phrasings ('What can I ask Pipeworx?', 'what are you good for?') and immediately establishes the tool as the onboarding entry point for discovering what Pipeworx can do. It clearly distinguishes itself from siblings by stating it returns example questions with the exact tool and argument shape, and by naming meta-tools (ask_pipeworx, entity_profile) that it teaches. The verb 'suggest' plus 'onboarding entry point' is specific and 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?
Explicit usage guidance is given: '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 when to omit the topic parameter versus passing a topic, and provides example values. This is clear, actionable, and helps the agent decide when to invoke this tool over alternatives.
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?
The description goes beyond annotations by explaining the deactivation behavior ('row is deactivated (not deleted)') and its impact on historical events via recent_alerts. This adds useful context that the annotations (destructiveHint: false, idempotentHint: true) do not fully capture. Ownership enforcement is also a disclosed behavioral trait.
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 primary action, and every sentence adds value. No filler or redundant information; it is 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?
Given the simple tool (one parameter, no output schema) and helpful annotations, the description covers ownership rules, deactivation semantics, and links to related functionality (recent_alerts). It does not describe return values, but for a cancel operation this is not critical. The description is 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 already provides full parameter coverage (100%) including a clear description of the 'id' parameter. The main description's phrase 'by id' adds no further semantic meaning beyond the schema, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the specific action ('Cancel a subscription by id') with the resource clearly identified. It distinguishes from sibling tools like subscribe and list_subscriptions by focusing on the cancellation action.
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 relevant context (ownership enforcement) but does not explicitly specify when to use this tool versus alternatives. It implies that one should have a subscription id from subscribe, and mentions recent_alerts for historical data, but stops short of naming alternative tools or exclusions.
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?
Even though annotations already declare readOnly, openWorld, idempotent, and non-destructive hints, the description adds substantial behavioral context: the dual-path routing (structured vs grounded), the exact meaning of could_not_verify (check did not happen) versus unsupported (no source exists), the presence of verification_error{stage,detail}, and the pipeworx:// citation. This goes well beyond the annotations and is critical for correct caller 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 efficiently packed. Every sentence earns its place: trigger phrases, usage context, routing logic, return payload, and an explicit warning about could_not_verify. It is front-loaded with examples and contains 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 having no output schema, the description is remarkably complete for a complex tool. It covers inputs, process (routing), outputs (verdict taxonomy, citation, reasoning), and subtle error semantics. It even explains the tool's advantage over sequential calls, making it self-contained for an agent.
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 (claim, tolerance_pct) have thorough descriptions in the input schema, giving 100% schema coverage. The description references some context ('exact percent-delta math') but does not materially expand the meaning of the parameters beyond what the schema already provides. 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 identifies a specific verb and resource: 'natural-language claim verification against authoritative sources.' It opens with trigger examples like 'fact check' and 'verify the claim that…', and explicitly differentiates from sibling tools by describing the structured SEC EDGAR path for financial claims and the grounded pipeline for all other claims. It also notes it replaces 4–6 sequential calls, setting it apart.
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 whenever the agent needs to check whether something a user said is factually correct.' It also explains automatic routing based on claim type. However, it does not explicitly name alternatives or state 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.
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
- Alicense-qualityCmaintenanceCity of San Bernardino GIS — San Bernardino, California open geospatial data (ArcGIS).7MIT
- Alicense-qualityCmaintenanceLincoln County GIS — Lincoln County, North Carolina open geospatial data (ArcGIS).6MIT
- Alicense-qualityCmaintenanceSarpy County GIS — Sarpy County, Nebraska open geospatial data (ArcGIS).3MIT
- Alicense-qualityCmaintenanceSt. Louis County GIS — St. Louis County, Missouri open geospatial data (ArcGIS). Enables searching and querying datasets like parcels, addresses, zoning and public works.11MIT
Your Connectors
Sign in to create a connector for this server.