Skip to main content
Glama
307,609 tools. Last updated 2026-07-18 19:25

"author:trinity-tick" matching MCP tools:

  • Update a note: edit its content, move it to a different folder (set container_id, or null for the inbox), archive/favorite it, or change its tags. This is the tool for moving notes between folders; there is no separate move tool. Required: id (integer). Optional content (exactly one body-mutation mode at a time): title, body (full replace), append_body (appends to existing body), insert_after + insert_body (insert text immediately after a unique anchor snippet from the existing body), insert_before + insert_body (insert before a unique anchor), replace_find (+ optional replace_with) (replace a unique snippet; omit replace_with entirely to delete the snippet). Markdown-structure ops (heading/section/checklist aware — safer than eyeballing a unique snippet on long notes): replace_section + section_body (replace everything UNDER a heading, keeping the heading line); append_to_section + section_body (add content at the END of a section — the safe 'insert under heading' when you don't know its last line); rename_heading + new_heading (rename a heading in place, preserving its level unless new_heading carries its own '#'); check_item / uncheck_item (tick/untick a checklist item by its text, e.g. '- [ ] ship it'). Headings and checklist items must each match exactly one line. Anchor and find snippets must match exactly once; include enough surrounding context to disambiguate. Also optional: summary, source_url. Freshness: verified (boolean — pass true to mark the note re-confirmed as still true right now; only send this after the user has actually confirmed it), review_after (ISO 8601 datetime to time-box the note, or null to clear it). Organization: container_id (move note), archived (boolean, personal only), favorited (boolean). Tags: tag_list (full replace, comma-separated), add_tags, remove_tags. tag_list takes precedence over add_tags/remove_tags. Concurrent edit safety: pass expected_lock_version (the lock_version you saw when you last read the note via notes-get / notes-list / search) whenever you want a stale-write guard. If it doesn't match the current version, the update is rejected with the current state included so you can re-read and re-apply. Surgical edits (append_body / insert_after / insert_before / replace_find) are anchor-based and so don't *need* expected_lock_version for their body change — but if you also change title / summary / container_id alongside, those fields can still silently overwrite a newer save unless you supply expected_lock_version. Examples: insert under a heading {id: 42, append_to_section: 'Open Questions', section_body: '- Should we ship Friday?'}; replace a section {id: 42, replace_section: '## Status', section_body: 'Shipped 🎉'}; rename a heading {id: 42, rename_heading: 'TODO', new_heading: 'Done'}; tick a checklist item {id: 42, check_item: 'ship it'}; fix a typo {id: 42, replace_find: 'recieved', replace_with: 'received'}; safe full rewrite {id: 42, body: '...', expected_lock_version: 5}. Every edit is recorded as a named, revertable revision attributed to you — use notes-history to see who changed what, and notes-revert to undo a change.
    Connector
  • Read messages from a Roomcomm room. Core read operation for every tick of your polling loop. Pass the `id` of the last message you saw as `since` to receive only new messages. Omit `since` on the very first tick to get the full (or most recent) history. Returns {messages: [{id, agent_id, text, timestamp}], has_more}. Track the largest `id` as your new `last_id`. Args: uuid: Room UUID or full room URL. since: Return only messages with id > since. limit: Maximum messages to return (default 100, max 500). Example: read_messages("a1b2…", since=42) on each tick.
    Connector
  • 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).
    Connector
  • "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.
    Connector
  • "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), the grounded or structured actual value with pipeworx:// citation, and reasoning. Replaces 4–6 sequential calls (NL parsing → entity resolution → data lookup → comparison).
    Connector
  • 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).
    Connector

Matching MCP Connectors

  • A time server that keeps your AI honest about time. Real clock + drift guard, zero dependencies.

  • Verified Japanese company press releases with provenance (corporate number, source URL) and jobs.

  • **Bump (or shrink) the idle session TTL on an existing channel** without recreating it. Use when an agent started a short-TTL channel for what was supposed to be a quick task but the conversation extended past the original window, OR when sessions are getting GC'd before peers come back. Required args: `channel_id`, `session_token` (must own the channel — same gate as DELETE; created by you originally), `session_ttl_seconds` (1 to 86400). Side-effect: new TTL applies on the next GC tick (within 60s). Bumping rescues sessions about to be evicted; shrinking evicts idle sessions sooner. Does NOT touch trust_mode / require_identity / owner_password / retention — only the TTL field.
    Connector
  • 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 1320 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,016 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 (record-level pipeworx:// when the source emits one, else source-level). "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).
    Connector
  • "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).
    Connector
  • "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.
    Connector
  • Get the REAL current date and time. Call this at the start of a reply and before using any relative time words (yesterday, tomorrow, tonight, next week). Never guess time from context. NEVER write a clock time in your reply that did not come from this tool's output in THIS turn — a timestamp without a fresh call is a hallucination, even if it plausibly continues from an earlier one. ALWAYS pass the user's IANA timezone — this server is remote, so without it you get UTC, not the user's local time.
    Connector
  • Start a stream payment for an ACCEPTED stream job. IMPORTANT: Confirm with the user before starting a stream — this commits ongoing funds. Stream payments require crypto (on-chain). For Superfluid: you must FIRST create the on-chain flow, then call this to verify it. Steps: (1) Wrap USDC to USDCx at the Super Token address for the chain, (2) Call createFlow() on CFAv1Forwarder (0xcfA132E353cB4E398080B9700609bb008eceB125) with token=USDCx, receiver=human wallet, flowRate=calculated rate, (3) Call start_stream with your sender address — backend verifies the flow on-chain. For micro-transfer: locks network/token and creates the first pending tick. Prefer L2s (Base, Arbitrum, Polygon) for lower gas costs.
    Connector
  • Get the latest price for a G7 FX pair — a quick "what's it at now" check. Useful for context before deploying a strategy. The price is the close of the most recent 1-minute bar from the platform's market feed (not a raw live tick); FX markets close on weekends, so the `stale` flag marks a bar that is more than 15 minutes old. Args: symbol: G7 pair — one of EURUSD, USDJPY, GBPUSD, USDCHF, USDCAD, AUDUSD, NZDUSD. Default EURUSD. Returns: dict with: symbol, price (latest close), time (bar timestamp, UTC), change + change_pct (vs the prior 1-min bar), stale (bool).
    Connector
  • P93 — admin escape hatch. Forces a proof_ledger row's measurement_due_at into the past so the cron's next tick picks it up. USE WHEN smoke testing the launch → measure → next-move chain without waiting 24h, OR an ops user needs to retry a stuck measurement. Gated by CHIEFLAB_ADMIN_TOKEN header (same gate as /api-keys/issue). Refuses if the row is already measured. Pass `dueAt` (ISO string) to set a specific time; defaults to now - 60s.
    Connector
  • YOU ARE a research assistant helping a retail investor get answers from mrmarket.ai. You are NOT a database engineer. Ask questions the way a financial analyst would say them out loud — plain English, focused on intent. The server has a domain-trained financial expert that translates your question into the right methodology, picks appropriate thresholds, and documents every interpretation in the response so the user can see and correct what was assumed. Answers analytical financial questions about US-listed equities in a single call. Send the full natural-language question — not SQL. Returns structured rows + columns. CAPABILITIES — all handled in one call: - Top-N / bottom-N rankings by any metric - Multi-criteria stock screens (combine sector, ratios, growth thresholds, insider activity) - Computed financial metrics: ROIC, FCF, D/E, margins, ROE, ROA, dividend yield, growth rates - Derived metrics composed on the fly: any ratio of two fields, growth of any metric, rolling stats on any series — the data catalog lists ingredients, you may mix them - Period-over-period changes: QoQ, YoY, multi-year - Rolling averages, trend slopes, volatility, beta vs a benchmark, correlation, median/percentiles, quartile buckets, max drawdown, statistical measures - Multi-symbol comparisons and time-series trends - Sector/industry rollups and averages - Cohort-relative analysis (vs sector average, vs universe z-score) - Forward returns after events (earnings beats, insider buys) - Price charts with event overlays (earnings dates, insider transactions) - Consecutive-quarter screening (e.g., 4 quarters of growing FCF) EXAMPLES — notice how these read like a human asking, not a technical specification: - "Top 20 stocks by ROIC excluding financials" - "Companies with 4 consecutive quarters of growing free cash flow" - "Compare AAPL, MSFT, and GOOGL revenue over the last 5 years" - "Stocks whose ROIC is at least 1 standard deviation above their sector average" - "Average 30-day stock return after companies beat earnings by more than 10%" - "AAPL daily closes for the last 5 years with earnings dates overlaid" - "Top 20 quality compounders by 5-yr ROIC stability and margin trend" - "Find undervalued stocks with recent insider buying — low P/E, strong FCF, low debt" - "Average stock return 90 days after large CEO insider purchases" HOW TO PHRASE YOUR QUESTION — this matters for best results: Pass the user's question through with minimal rewording. The server's financial expert interprets casual language better than you can translate it: - "large purchase" → appropriate dollar threshold (documented in assumptions[]) - "90 days" → trading-day equivalent (documented in assumptions[]) - "CEO" → executive title matching - "growing" → positive AND increasing - "cheap" / "undervalued" → appropriate valuation thresholds - "Buffett screen" / "quality compounder" → recognized analytical frameworks DO: ✓ Preserve the user's intent and language faithfully ✓ Use directional terms: "low P/E", "strong cash flow", "high margins" ✓ Add thresholds ONLY when the user stated them explicitly ✓ Ask for aggregated answers when the user wants a summary ("average return after...") ✓ Combine multi-criteria screens into ONE question, not separate calls DON'T: ✗ Invent numeric thresholds the user didn't specify — the server picks sensible defaults and surfaces them in assumptions[] so the user can adjust ✗ Specify column lists — the server selects the most relevant columns automatically ✗ Convert calendar days to trading days — the server handles this ✗ Add metrics or time ranges the user didn't request — adds complexity and risk ✗ Use AND/OR boolean syntax — plain English works better ✗ Prefix with jargon like "Event study:" or "Screen:" — just ask the question GOOD: "Find undervalued stocks with recent insider buying — low P/E, strong FCF, low debt" BAD: "Screen for companies where insiders have made open-market stock purchases in the past 3 months AND P/E ratio below 20 AND price-to-book below 3 AND positive free cash flow AND debt-to-equity below 1. Show symbol, name, sector, P/E..." GOOD: "Average stock return 90 days after large CEO insider purchases" BAD: "For all insider buy transactions where title contains 'CEO' or 'Chief Executive' and transaction value > $100,000, calculate the return 63 trading days after..." Both versions will work, but the GOOD versions produce better results: the server's financial expert picks market-appropriate thresholds and documents them in assumptions[] so the user can see and correct them. Your pre-translations hide these from the user. ONE QUESTION PER CALL — the unit of work (max 100 words, enforced): Each call carries exactly ONE analytical question: one deliverable you could present as a single table or chart. "One question" is NOT "one metric" — a screen with five criteria, a three-ticker comparison, or an event study at five horizons is still one question. Questions over 100 words are rejected free of charge (QUESTION_TOO_LONG): overruns are nearly always several questions clobbered together, or an inline ticker dump that belongs in `symbols`. Be precise, not redundant — no column lists, no restated criteria, no boilerplate. Classify the request BEFORE calling: 1. ATOMIC → one call. The parts share one computation or land in one table. The server joins fundamentals, prices, earnings, and insider data internally, so touching several data categories does NOT mean splitting: - Multi-symbol comparison ("monthly returns for TSLA and SPY" — one call, not two) - Multi-metric screens ("high ROIC, strong margins, low debt, consistent earnings") - Cross-metric formulas ("stocks where margin > 2x sector average") - Cohort relatives ("ROIC ≥ 1 stddev above sector mean"); sector rollups - Forward-return event studies — and MULTIPLE HORIZONS IN ONE CALL: "returns at 1, 5, 10, 21, and 63 days after earnings" is ONE call, not five; the server computes all forward windows in parallel. - Multi-entity retrieval — "ROIC, FCF yield, D/E, 6-month return, and earnings beat rate for every stock" is ONE call across fundamentals + prices + earnings. Fetch in one call; score/rank/normalize in code. - Price + overlay charts; conditional labels ("classify the drawdown as earnings-driven or multiple-compression") 2. ORTHOGONAL → independent calls, issued in parallel. The request bundles 2+ questions whose answers don't feed each other and that you'd present as separate tables or sections. Smells: "and also…", "separately…", numbered sub-requests, two different universes, two analytical verbs ("screen for X… and chart Y"), unrelated time windows. "Top 10 by ROIC, and also TSLA's margin trend" = 2 calls. "Full analysis of AAPL" = 3: valuation vs sector / financial trends / insider activity (announce the plan first). 3. PIPELINE → sequential calls that YOU join, when part B needs part A's output and the join point is SMALL (a symbol list, a date range, a few values). Cut at the narrow point: run A → take its symbols → run B passing them via `symbols` → merge rows client-side on symbol/date. Screen-then-drill ("screen for X, then pull 5y revenue history for the matches"), backtests with rebalancing, Monte Carlo (pull returns once, simulate in code), portfolio optimization, custom multi-factor scoring with user weights (fetch ALL metrics in one call, weight in code). When unsure, try ONE call first — the server is compositional and most cross-entity questions are atomic. If the response carries `meta.needs_decomposition: true`, retry as parallel calls using `meta.suggested_split`. COMPUTE IN CODE WHEN YOU CAN. Each query_data call costs credits and can fail. If you already have data from a previous call, compute locally instead of calling again: - Aggregations (averages, sums, medians, min/max) - Percentage changes, ratios, growth rates - Sorting, filtering, grouping, ranking - Statistical measures (std dev, correlation, z-scores) - Percentile normalization, composite scoring, factor weighting - Pairwise correlations, covariance matrices Only call query_data when you need NEW data you don't already have. ANNOUNCE YOUR PLAN FOR 2+ CALLS on vague requests ("full analysis", "comprehensive overview"). For specific multi-part questions, announce at 3+ calls. Tell the user in plain language with rough credit cost before proceeding. OUTPUT SIZE: the MCP tool-result ceiling is ~1MB. Quick math: - 1 month ≈ 21 trading days, 1 year ≈ 252 - Practical ceilings: ~5,000 price rows or ~2,500 fundamental rows - PREFER narrowing/summarizing first ("per-stock 6mo return" not "all stocks 6mo daily prices", or narrow by sector/time range). A focused question is almost always the better answer. - If a result is still too large, the server no longer fails — it returns page 1 plus a full-dataset `summary` and a free `pagination.next_cursor`. Call `fetch_page` with that cursor ONLY when the user genuinely needs every raw row; a summary/ranking is usually enough. For very large dumps, hand the user `view_url` — their private link to the full dataset in the web app — instead of paginating. SCOPE CEILING — the engine is a transactional warehouse, not an OLAP cluster. At most ONE of these axes can be unbounded per question: universe (all ~7k stocks), history (15-20 years of daily rows), per-row computation (forward returns, rolling windows, pooled medians). Two or more unbounded axes — "pooled forward returns for every stock-day since 2011", "median daily return across all stocks for all history" — cannot finish in time; the server now stops the run BEFORE executing and returns `status: "clarification_needed"` with `error_code: "SCOPE_TOO_LARGE"` + narrowing questions (free of charge), instead of burning a 40s+ TIMEOUT. How to stay under the ceiling: - Bound the universe: an index, a sector, a market-cap floor ("above $10 billion"), or an explicit list via `symbols`. - Bound the history: a date range ("since 2022", "last 3 years"). Event studies (returns after insider buys / earnings events) with NO stated range default to the most recent 5 YEARS of events — disclosed in `assumptions[]`; state a range explicitly ("since 2010") to widen it. - Sample instead of exhaustive: "from the first trading day of each month" beats "from every trading day". - Split benchmark legs: SPY/QQQ series are single-symbol and cheap alone — ask "all stocks vs SPY" as two calls and compare in code. To insist on full scope anyway, answer the returned questions via `clarifications` ("Full universe anyway") — the run is then attempted and may still time out. OUT OF SCOPE: intraday/tick data, options chains, news/transcripts, macroeconomic series, portfolio simulation, optimization. RESPONSE FORMAT — what to expect back: - `data`: array of row objects keyed by column name (e.g., [{symbol: "AAPL", revenue: 394328000000}, ...]) - `columns`: metadata for each column — `name`, `type` (currency/percent/number/string/date/boolean), `displayName` (human-friendly label). Use `type` to format values for the user: currency → "$394.3B", percent → "18.5%", date → "2024-09-30" - `row_count`: total rows returned - `assumptions`: what the server assumed on the user's behalf (thresholds, time ranges, metric interpretations). ALWAYS surface these to the user so they can correct them. - `caveats`: data-accuracy notes worth passing on — approximation, point-in-time vs later-restated figures, survivorship, or FX-conversion. `as_of_date` is the point-in-time anchor the answer is computed as of; `currency_converted: true` flags that foreign filings were converted to USD so price-relative ratios stay consistent. - `filters_applied`: scope provenance — which tables were read and which filters were ACTUALLY applied (per plan: `reads`, `filters`, `group_by`, `windows`, `limit`). VERIFY this matches the question you asked: if you see a sector/industry/date filter you did not request, treat the result as wrong and re-ask (and report_issue it). - `audit`: SQL provenance (success only) — the exact queries behind the answer, written in the PUBLIC data-dictionary vocabulary (the same entity/field names `describe_data` uses; intermediate stages numbered step_1…step_N, `params` holds the $1… bind values). Read it to confirm scope, joins, and point-in-time date bounds — e.g. that there is no look-ahead past the as-of date. This is the ground truth when a number looks off. - `warnings`: diagnostic notes (low credit balance, applied defaults) - `credits_remaining` / `cost_credits`: balance after this call / what this call cost - `view_url`: a PRIVATE mrmarket.ai link to view THIS result as a chart/table in the web app — hand it to the user so they can jump from chat into the visual app and see the full dataset. Only they can open it; to share it with others they publish it from the share view ("Enable public sharing"). Present on success with rows. - `truncated` + `pagination` (oversize results only): `truncated: true` means this is page 1 of a larger result. `pagination` has `page_index`, `page_count`, `has_more`, `total_rows`, and `next_cursor` — pass next_cursor to `fetch_page` (FREE) for the next page. `summary` is a full-dataset per-column digest (min/max/mean/nulls) so you can often answer without paging. On error: `error_code` + `message` + `retryable` flag. Retry once if retryable is true. CLARIFICATION HANDLING: when the question is ambiguous, the server resolves it automatically. If your client supports MCP elicitation, the user is prompted directly. Otherwise the server applies a sensible default and proceeds. Either way you get a final answer in one call. Known standing default: event studies with no stated time range cover the past 5 years. Check `assumptions[]` — always tell the user what was assumed. Exception: SCOPE_TOO_LARGE narrowing questions are NEVER auto-defaulted — a default universe would change which stocks the answer covers. Unless a human answers via elicitation, you get `status: "clarification_needed"` back (free); narrow the question or answer the questions via `clarifications`. LIMITS: ONE question of max 100 words per call (longer is rejected free of charge). 60-second timeout (180s with a clarification roundtrip); plans that cannot finish in time are rejected up front as SCOPE_TOO_LARGE (free — see SCOPE CEILING). No default row cap. Use `describe_data` to confirm fields exist before composing complex questions.
    Connector
  • 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).
    Connector
  • 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).
    Connector
  • 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.
    Connector
  • 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.
    Connector
  • 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.
    Connector