Skip to main content
Glama
675,205 tools. Updated 2026-10-19 04:22

"Elm" matching MCP tools:

  • Looks up **live** quotes for Tesouro Direto bonds (sourced from the TD website, not STN CSV). Use for current indications only. Each query requires `productId` plus **exactly one** year field — **`maturityYear` is required for all products except renda-mais/educa-mais**; for renda-mais/educa-mais use `maturityYear` (calendar maturity year) OR `conversionYear` (label year on the bond name, e.g. 2027 for 'Educa+ 2027') — never both. Omitting the year field will error. Each result has optional `investorBuy` and `investorSell` objects with `{ rate, price }` — the two sides are independent, so one may be present without the other. When `found` is true there is also an optional `fetchedAt` — ISO-8601 UTC from the last site scrape. Field semantics: - `investorBuy` — investor PURCHASE side: rate and price at which the investor buys from the Treasury. - `investorSell` — investor SELL-BACK side: rate and price at which the investor sells back to the Treasury. Normally investorSell.rate > investorBuy.rate. Always consult `catalog_list` to check if the bond is currently available for purchase or sale by Tesouro Direto. `found: true` means at least one of `investorBuy` / `investorSell` is present — each side may be absent independently, so always check which one came back (if you need a single rate and `investorBuy` is missing, use `investorSell`). `found: false` means **neither** side is present. Possible causes: outside BRT market hours (nights/weekends/holidays), the bond is not currently offered by Tesouro Direto, the year identifier does not match an active offering, or the stored quotes are invalid. When `found` is false fall back to `price_history_lookup` / `price_history_series` for the latest official STN rate. **Rates are decimal fraction strings** (e.g. `'0.0753'` = 7.53% a.a.) — same convention as `price_history_*` and `simulate_bond`.
    ConnectorNo auth
  • 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}. FEES: every opportunities[] row and partition_check.arbitrage carry edge_pp_gross (== gap_pp / overround_pp), fees_pp, edge_pp_net, net_positive, plus polymarket_fee_pp, fee_basis and fee_categories[]. BOTH cost components are modeled: Polymarket's own per-category TAKER FEE (fee = shares × rate × p × (1-p), rates crypto 0.07 / sports-economics-culture-weather-other 0.05 / finance-politics-mentions-tech 0.04, geopolitics and world events fee-free; verified against Polymarket's own docs as of 2026-09-13) and Polygon gas (~$0.02/leg). The taker fee dominates: ~$1.75 per 100 shares on a crypto market at 50c versus $0.02 of gas, so rows that looked profitable before fleet #1927 may now show net_positive:false — that is the correction, not a regression. Each leg is priced at ITS OWN market's rate and price (the fee curve peaks at 50c and falls toward both extremes). fee_basis says where the rate came from: 'payload' (read off the market, the normal case), 'category' (mapped from its fee category), 'fee_free', or 'fallback' (rate unknown — charged at the modal 0.05 rather than assumed free, so an unreadable market is never reported as costless). Where fill_check reprices against live depth, this does NOT double-count that spread cost. 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.
    ConnectorNo auth
  • Extract the settlement clause of a single Polymarket or Kalshi market: who publishes the settling number (source), the clock time + timezone it is taken at, the precision of the computation (e.g. "1-minute candle close" vs "60-second trailing average" vs "election outcome"), the evidence standard (official_source | consensus_reporting | any_credible_report | unspecified), and void_handling (cancellation/postponement settlement — reused verbatim from bet_research's cancellation_rule detector, not re-derived). Parses Polymarket's `description` field (fetched via polymarket_market) or Kalshi's `rules_primary` + `rules_secondary` fields (fetched via kalshi_market) with regex + a small vocabulary — no LLM pass, so an unusual clause reports confidence:"low" rather than a guess. Pass `market` as a Polymarket slug/URL or a Kalshi market ticker (e.g. "KXBTCD-26SEP1317-T66999.99"); a Kalshi EVENT ticker (e.g. "KXBTCD-26SEP1317") also works — it picks one representative market under that event, since the settlement mechanism is normally shared across all strikes/legs in one event. Use this before treating a polymarket_kalshi_spread row as a real arbitrage: two ladders that look alike can settle on different sources, at different times, with different precision — this tool is how you check. Pair with resolution_diff to compare two markets directly. KNOWN GAP: idiosyncratic phrasing that doesn't match the vocabulary returns confidence:"low" and evidence_standard:"unspecified" rather than an LLM-guessed answer.
    ConnectorNo auth
  • Ranks every bond in the active Tesouro Direto catalog by where its latest published rate sits within its own history — in ONE call. Prefer this for questions like "which bonds have rates near their historical highs?", "how does today's rate compare with the past, across the catalog?", or any cross-bond comparison of rate levels. Do NOT loop `price_history_series` per paper for that. For each catalog paper and each requested window it returns rate stats for one side: `min`/`max`, nearest-rank percentiles `p10`/`p25`/`p50`/`p75`/`p90` (always actually published rates), `last` (most recent published rate on or before `to`) and `lastPercentile` (0-100: share of the window strictly below `last` — 92 means the current rate is above 92% of the period, i.e. near the top of its historical range). Inputs (all optional): - `windows`: 1-3 of '30d' | '90d' | '1y' | '5y' | 'max', default ['1y']. Ranking is ordered by the FIRST window's `lastPercentile` (desc); extra windows add context (e.g. ['1y','max']). - `side`: 'investorBuy' (default — investor PURCHASE rate, STN's Taxa de Compra; the standard quoted rate) or 'investorSell' (sell-back). Only papers currently available for that side are ranked. - `productId`: filter to one family. Only the seven catalog families are rankable — 'igpm-mais-com-juros-semestrais' has history but no active catalog entries; for it use `price_history_series`. On 'selic' the percentiles are coarse: the published rate is a spread over the Selic, near zero and rounded to two decimals of a percent, so a window holds few distinct values. - `to`: anchor date YYYY-MM-DD (default today UTC) — set a past date for "how did the ranking look then?". Output: `ranking[]` with `productId`, `maturityDate`, `year` (label year — CONVERSION year for renda-mais/educa-mais) and per-window stats; `meta.missing` lists catalog papers with no data in any window (e.g. just launched). Caveats: this is a statistical description of published rates, NOT investment advice, a return forecast, or a recommendation — never present the ranking as "best bonds to buy". `lastPercentile` compares each paper against ITS OWN history only; a high percentile means the rate is high relative to that paper's past, nothing more. Comparing entries across families is meaningful only in that relative sense (a prefixado percentile reflects nominal rates; an ipca-mais percentile reflects real rates). **Rates are decimal fraction strings** (same as `price_history_series`, `simulate_bond`, `live_quotes_lookup`).
    ConnectorNo auth
  • Ask a DIFFERENT LLM a question and get its answer, billed per token from the Vaaya wallet (model cost + 3%, usually a fraction of a cent). Use it to get a second opinion from a rival model, cross-check an answer, summarize a huge blob cheaply, or query a specific model the user names (Kimi, GPT, Gemini, Claude, DeepSeek, and 300+ more). `model` accepts 'auto' (default: short prompts go cheap, long go mid), 'cheap' | 'mid' | 'best' tiers, or any exact OpenRouter slug like 'moonshotai/kimi-k3'. Typical costs: cheap tier well under 0.1 cents, best tier 1-3 cents per call. Not for the conversation you are already having — it is a one-shot ask to another model.
    ConnectorNo auth
  • 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). FEES ARE NOT MODELLED HERE: vwap_fill_price/profit_usd are GROSS of Polymarket's own taker fee (rate 0.04-0.07 by category — see polymarket_edges/fees.ts), on top of which this tool prices depth-crossing cost; a thin-margin fill that looks clean here can still be net-negative after the fee.
    ConnectorNo auth

Matching MCP Servers

  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables AI assistants to interact with IBM Engineering Lifecycle Management (ELM), including DOORS Next Generation, EWM, and ETM, for managing requirements, work items, tests, and project builds through natural language.
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    A federated MCP server that combines IBM's engineering-ai-hub tools with its own authoring and orchestration tools for IBM ELM, enabling AI hosts to manage requirements, models, and compliance through a single interface.
    MIT

Matching MCP Connectors

  • Prices Kalshi daily high-temperature markets against the NWS forecast for the market's OWN settlement station, and measures whether that forecast actually beats the market. Two modes. LIVE (default): returns the full strike ladder for one city and settlement date with market_prob (mid), forecast_prob, and edge_pp per strike, plus the settlement clause verbatim. BACKTEST (`backtest_days: N`): scores an archived gridded forecast against the market on settled days and returns brier_market vs brier_forecast with a plain-English `verdict`, so the edge is MEASURED rather than asserted. READ THE WARNINGS — they are not boilerplate. (1) These markets DO NOT settle on the NWS. They settle on The Weather Company (weather.com) at a Kalshi station code such as CLINYC, which the response quotes verbatim; so part of every edge_pp is NWS-vs-Weather-Company disagreement about the same day at the same station, which is not mispricing and not tradeable. `settlement_vs_forecast_basis_f` from backtest mode is that part as a number. (2) The station is DERIVED from the settlement clause, never from the city name: Chicago settles at MIDWAY and New York at CENTRAL PARK, so a city-centre forecast would misprice a whole ladder. A station that cannot be resolved yields rows with no forecast and a reason, never a guessed coordinate. (3) forecast_prob assumes a normal distribution around the NWS high whose width is ASSUMED, not fitted (stated in `distribution_assumption`) — run backtest mode to see whether it is calibrated. (4) edge_pp is gross: no Kalshi fees, no bid-ask. MEASURED RESULT, AND IT IS NOT THE FLATTERING ONE: on the first backtest (KXHIGHNY, 13 settled days to 2026-09-11, 58 market observations) the MARKET beat the forecast — Brier 0.1008 for the market against 0.1594 for the archived gridded forecast, lower being better. So on that sample there is NO forecast edge to sell, and a large edge_pp is more likely to be the model disagreeing with a better-informed market than an opportunity. The measured settlement-vs-forecast basis was 1.7F mean absolute over 8 pinnable days, slightly warm-biased, which is a big share of a typical edge_pp on a 2-degree bracket. Re-run backtest_days before believing any edge; if a later sample reverses this, the numbers say so. NWS is US-only, so the ~30 international Kalshi weather series (London, Paris, Tokyo) return market prices with forecast_unavailable rather than a forecast. Precipitation series are listed but not yet priced. Cities: nyc, chicago, los angeles, miami, austin, houston, denver, philadelphia — or pass `series_ticker` for any other (e.g. "KXHIGHTBOS").
    ConnectorNo auth
  • 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.
    ConnectorNo auth
  • Looks up historical published rates and prices for Tesouro Direto bonds on specific dates. Accepts a bulk array of queries (up to 50). Each query: productId + referenceDate + exactly one paper identifier (maturityDate, maturityYear, or conversionYear for Renda+/Educa+). Returns official STN data for that date, or found=false. Use when the user asks for the official published rate or unit price on a specific past date (e.g. "what was the IPCA+ 2035 rate in March 2024?"). Each result has optional `investorBuy` and `investorSell` objects with `{ rate, price }`: - `investorBuy` — investor PURCHASE side (STN's Taxa de Compra / PU de Compra). This is the standard quoted rate. - `investorSell` — investor SELL-BACK side (STN's Taxa de Venda / PU de Venda). Normally investorSell.rate > investorBuy.rate. `found: false` with `unavailableReason: 'awaiting-confirmed-precision'` (Selic only) does NOT mean the date has no data: STN published that session in the 2-decimal CSV but not yet in the 4-decimal file this tool requires for Selic. Do not report it to the user as missing — say the confirmed rate is not published yet, and use `price_history_series` for the same date at CSV precision. A `found: false` with no `unavailableReason` means no row matched the requested paper and date — the lookup is keyed by paper, so it cannot tell a market holiday from a paper STN did not offer that day. **Rates are decimal fraction strings** (e.g. `'0.0737'` = 7.37% a.a.) — same convention as `simulate_bond` and `live_quotes_lookup`.
    ConnectorNo auth
  • Returns a time series or aggregate statistics for a single Tesouro Direto bond over a date range. Required paper selector: this tool queries ONE bond, not a whole product family. Always provide exactly one of `maturityDate`, `maturityYear`, or `conversionYear`. Use `conversionYear` only for `renda-mais` / `educa-mais`; for Prefixado/IPCA+/Selic/IGPM use `maturityDate` or `maturityYear`. If the user did not specify a maturity, call `catalog_list` first or ask for the maturity. Two modes via `aggregate`: - 'none' (default): raw daily points, each with `investorBuy: { rate, price }` and `investorSell: { rate, price }`. Sub-sample with `step`: 'daily' / 'weekly' / 'monthly'. Max 10000 points; truncated=true if exceeded. Optional pagination: `limit` (1-200) + `offset` + `order` ('asc'|'desc') — response then carries `meta.page { total, offset, limit }` and the 10000-point cap does not apply. - `'stats'`: per side (`investorBuy` / `investorSell`) over the window: min/max/avg/count for rate and price, plus rate-only percentiles `p25`/`p50`/`p75` (nearest-rank — actually published values), `last` (most recent rate) and `lastPercentile` (0-100: share of the window strictly below `last`). Compact single-object response — prefer this for "is today's rate high?" questions. Field semantics: - `investorBuy` — investor PURCHASE side (STN's Taxa de Compra / PU de Compra). This is the standard quoted rate. - `investorSell` — investor SELL-BACK side (STN's Taxa de Venda / PU de Venda). Normally investorSell.rate > investorBuy.rate. Use when the user asks for a time series or aggregate stats (e.g. rate evolution over 12 months, min/max rate in a year). **Rates are decimal fraction strings** (same as `price_history_lookup`, `simulate_bond`, `live_quotes_lookup`).
    ConnectorNo auth
  • Cost a workload with EXACT numbers the caller supplies: arbitrary token counts per request and any monthly volume, not just the 10k/100k/1m presets the other cost tools use. Use this for 'about 800 in and 200 out, 4 million calls a month', or to price one named model across every use-case profile. To compare 2-4 named models like for like at a preset volume, use compare-models-side-by-side instead. Provide a model name to get detailed cost breakdowns, or compare costs across all use case presets. Each figure comes twice: list price, and the optimized price achievable with prompt caching and the batch API. Cost figures are final as returned: rounded server-side and dated by `provenance`, with the lever behind each saving, or the reason there is none, named in the text.
    ConnectorNo auth
  • Pick a model. Returns a ranked top 3 for one workload under optional constraints, each with a per-constraint satisfied/violated breakdown as the evidence. Use this when the user wants an ANSWER rather than a table — 'what should I use for support tickets under $500 a month'. To browse or filter the whole catalogue instead, use compare-llm-models. Constraints: (monthly budget, minimum ELO, required capability, self-hostability). Returns a top 3 as structured facts — efficiency rank, ELO, list and optimized cost, FinOps flag, volatility, and a per-constraint satisfied/violated breakdown. When nothing satisfies every constraint the query is reported as over-constrained, `recommendations` is empty, and the nearest misses are returned in `nearMisses` instead, each carrying the constraint it failed and flagged as a miss in the text. The ranking is computed server-side and is final.
    ConnectorNo auth
  • "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).
    ConnectorNo auth
  • TYPED, DETERMINISTIC financial facts for a US public company for an EXPLICITLY NAMED reporting period — "Apple revenue for fiscal 2023", "Walmart net income FY2026 Q3", "Microsoft cash at the end of fiscal 2024". PREFER OVER entity_profile / get_company_financials whenever the period matters: those answer "the most recent figures" and will happily hand back FY2025 when you asked about FY2019, and neither separates a discrete quarter from a year-to-date figure. This one refuses instead — it NEVER substitutes the latest period for the period requested, NEVER returns 0 for missing data, NEVER lets a 9-month YTD number answer a quarterly question, and NEVER converts a currency. Every answer carries the exact us-gaap concept it came from, what that concept MEASURES (NetIncomeLoss excludes non-controlling interests, ProfitLoss includes them — not synonyms), the accession number and a link to the filing on sec.gov, the restatement trail of any superseded figures, and a contract + derivation version to pin against. Fiscal periods are the FILER'S OWN, anchored on their fiscal-year end, so Walmart's year ending 2026-01-31 is FY2026 and Apple's ending 2025-09-27 is FY2025. Attributes: revenue, net_income, cash, gross_profit, operating_income, eps_diluted, capex, operating_cash_flow, long_term_debt, shares_outstanding (the dei COVER-PAGE share count, so its period end is the cover date, after the quarter closed — that is the most current count the filing carries). Units are not all USD: shares_outstanding is in `shares` with currency null, eps_diluted in `USD/shares`. A discrete quarter the filer never filed — every Q4, and Q2/Q3 of cash-flow lines, which are filed year-to-date — is DERIVED as YTD(q) minus YTD(q-1) and comes back with `reported: false`, the subtraction named in `derivation` (fy_minus_9m / ytd_9m_minus_6m / ytd_6m_minus_3m) and both legs with their filings in `derived_from`; test `reported` if you will only accept a figure lifted from a filing. Per-share and balance-sheet figures are NEVER derived. Every non-answer is a named status — `unavailable` (the filer did not report it for that period; the periods that DO exist are listed, without values), `unsupported` (outside what v1 covers — a non-us-gaap filer, an unknown attribute, a non-USD unit), `ambiguous` (the company name matched two filers equally well; both are named), `conflicting` (two filings the same day disagree; both are returned and neither is picked), `partial` (a value with no accession behind it). Source: SEC EDGAR, XBRL financial facts, one publisher read once — see `corroboration`. Same response is served at POST https://gateway.pipeworx.io/v1/facts for non-MCP callers.
    ConnectorNo auth
  • Search the NATIONAL BUSINESS REGISTERS by company name and get the register's own id back — a Companies House number, a Norwegian organisasjonsnummer, a Finnish business id, a SIREN, a Japanese corporate number, an Estonian registry code, a CNPJ, or an LEI. Use this when you want the OFFICIAL REGISTERED ENTITY and the country is not the US, or when you do not know which country it is. Registers searched: Companies House (GB), Enhetsregisteret (NO), PRH/YTJ (FI), Sirene (FR), 法人番号公表サイト (JP), RIK e-Business Register (EE), and the GLEIF LEI crosswalk, which reaches jurisdictions we have no register pack for (DE, SE, AU, SG...). THIS TOOL REFUSES TO GUESS, and that is its point: when two different companies match a name equally well it answers `match_status: "ambiguous"` with BOTH, rather than naming one. A one-word trading name usually IS ambiguous — "Bolt", "Apple", "Next", "Sea", "DNB" each match a well-known group AND unrelated micro-entities whose registered name is exactly that word — so pass `country` when you know it. Every response names EVERY register it asked under `searched[]`, with that register's own as-of date and row count, and a register that could not be reached carries an `error` there rather than reading as zero rows: "we could not ask Companies House" is never the same answer as "this company is not in Britain". `related[]` holds entities that collapsed INTO the match — the same company seen through another register, or another country's arm sharing its LEI — so a multinational returns one answer rather than tying with itself. NOT A PEOPLE SEARCH: sole traders and other natural persons are excluded on the publisher's own legal-form field, never guessed from the shape of a name. For US public companies prefer resolve_entity (CIK + ticker + FIGI); the two share this same matcher, and resolve_entity returns these register fields too.
    ConnectorNo auth
  • Simulates a hypothetical Tesouro Direto bond operation at a given trade date and rate, returning the full set of metrics for that operation: price (PU), quotation, Macaulay/modified duration, and optionally the cash-flow schedule (coupons or installments). USE THIS for ANY question about a Tesouro Direto bond — price, quotation, duration, sale proceeds, payment schedule, etc. Single tool, all metrics. Bulk: up to 10 items per request (5 if any item sets includeSchedule). Output is discriminated by `productFamily` ('prefixado' | 'ipca' | 'renda-educa' | 'selic'). The `schedule` field defaults to `null` to keep responses compact (a Renda+ schedule alone has 240 entries). It comes populated as `[{ date, businessDays, flow, cashFlowBrl, presentValue, kind, number? }]` (kind: 'coupon' | 'principal' | 'installment') — `flow` is the nominal cash flow before discounting (STN-style flow, not a currency amount); semantics depend on `kind`. `cashFlowBrl` is BRL per one bond unit (face 1000): `flow/100 ×` settlement snapshot of 1000 / `vnaProjected` / `vniProjected`, truncated to centavos (T-2 floor) — not a forecast of BRL actually credited on each payment date for indexed families (VNA on IPCA+ with coupons, VNI on Renda+/Educa+; both move with IPCA accrual); discounted sum of `cashFlowBrl` may differ slightly from PU (T-6). Only when the caller passes `includeSchedule: true` AND the bond family supports a schedule (zero-coupon families like prefixado / ipca-mais / selic never have one). Whenever a field is null, a structured warning in `meta.warnings[]` with `code` and `field` explains why. Every response also carries a `calculation` object (discriminated by `kind`: 'prefixado-zero' | 'prefixado-semestrais' | 'ipca' | 'renda-educa' | 'selic') with the intermediate values used by the engine — business days to maturity, truncated discount exponent, discount factor, VNA/VNI base + projected, IPCA monthly rate, and (when auto-fetched) `automaticIpcaValidFrom`. For IPCA-linked families the `indexProjection` also splits the two projection legs: `monthsBeyondVnaBase` / `monthsCompounded` / `compoundedFactor` (the whole-month forward compounding) versus `exponent` (the sub-month pro-rata). On Tesouro Selic the `calculation` carries `vnaProjected` (the VNA the price discounts, truncated to 6 decimals), `selicTarget` (the Copom target standing in for the fixings not yet published) and an `indexProjection` with `lastFixing` / `base` / `projectedBusinessDays`. Use it to audit a price against the official methodology without re-running it. Tesouro Selic (LFT) is priced off its VNA rather than a fixed face of 1000: `annualRate` there is the SPREAD over the Selic (`ágio/deságio`), routinely near zero and often negative (e.g. '-0.0002'), never the Selic rate itself. Because the VNA closes on the last published fixing and is projected to settlement at the Copom target, the trade date matters on top of the settlement date — a D+0 sale projects nothing, a D+1 purchase projects one business day. Inputs: `tradeDate` (YYYY-MM-DD) is the negotiation date — NOT the settlement date. `side` ('investorBuy' | 'investorSell', optional but recommended when direction is known): semantic intent of the operation. When provided, the engine derives the correct `settlementConvention` automatically — 'investorBuy' -> 'D+1'; 'investorSell' -> 'D+0' if tradeDate >= 2021-09-13 (same-day sell-back rule), else 'D+1'. Omit `side` when simulating for pure pricing purposes without a specific trade direction. `settlementConvention` ('D+0' | 'D+1', optional): advanced override — when omitted, the engine derives from `side` (or defaults to 'D+1' when both are omitted). If both `side` and `settlementConvention` are provided and conflict, the explicit `settlementConvention` is used and a NONSTANDARD_SETTLEMENT_FOR_SIDE warning is emitted. The response echoes `side` (when provided), `settlementConvention` (resolved), and `settlementDate`. `includeSchedule` (default false) opts in to coupon/installment detail. `annualRate` MUST be a decimal string (e.g. '0.1423' for 14.23%, never '14.23'). Bond identification: prefixado/IPCA+/Selic require `maturityDate`; Renda+/Educa+ require `conversionYear` OR `maturityYear`. Optional overrides: `vnaBase`+`ipcaMonthlyRate` for IPCA+ types, `vniBase`+`ipcaMonthlyRate` for Renda+/Educa+ (auto-fetched if omitted). `ipcaMonthlyRate` is the current-month ANBIMA projection used ONLY for the sub-month pro-rata — it does NOT compound whole months forward. For a future-dated valuation (settlement months/years ahead), pass `ipcaForwardMonthlyRate` (assumed monthly IPCA) to project the VNA/VNI base forward over the whole-month gap; it is ignored when `vnaBase`/`vniBase` is overridden. Note `ipcaForwardMonthlyRate` and `annualRate` are orthogonal assumptions: the forward rate is the inflation that grows the VNA/VNI base, while `annualRate` is the REAL yield (the '+X%' of IPCA+X%) that discounts it — for IPCA-linked types it does NOT include inflation. A future-dated valuation needs BOTH set to the future scenario; passing `ipcaForwardMonthlyRate` with today's `annualRate` models future inflation at today's real yield. Warning catalog (`meta.warnings[]`, each `{ code, field?, message }`): `NONSTANDARD_SETTLEMENT_FOR_SIDE` (both `side` and `settlementConvention` were provided and the explicit convention differs from the standard for that side — explicit value was used); `SYNTHESIZED_BOND` (bond not in catalog, synthesized for historical simulation); `SETTLEMENT_BEFORE_LAUNCH` (settlement predates the bond's launch date); `IPCA_STALE` (auto IPCA projection is over 35 days old vs settlement); `IPCA_PROJECTION_MISSING` (historical settlement before the earliest bundled IPCA projection — engine falls back to ipcaMonthlyRate=0, using the VNA of the nearest past day-15 without pro-rata; pass an explicit ipcaMonthlyRate for better precision); `IPCA_FORWARD_RATE_IGNORED` (both a `vnaBase`/`vniBase` override and `ipcaForwardMonthlyRate` were supplied — the override is authoritative so the forward rate was ignored); `IPCA_FORWARD_GAP_NOT_COMPOUNDED` (settlement is N whole months beyond the last published VNA/VNI and no `ipcaForwardMonthlyRate` was supplied — the gap was NOT compounded onto the base, only the sub-month pro-rata; pass `ipcaForwardMonthlyRate` for a future-dated valuation, or refresh bundled VNA data if the settlement is actually near-term); `SUSPICIOUS_RATE` (annualRate > 1.0 — likely passed as percentage); `CALENDAR_LAW_SWITCH` (tradeDate predates Lei 14.759/2023; legacy calendar without Nov 20 holiday is in use); `TRADE_DATE_NON_BUSINESS_DAY` (tradeDate is a weekend, holiday, or market interruption — settlement was rolled forward to the next business day, so D+0 and D+1 may resolve to the same date); `NOT_INCLUDED` (field could exist but caller did not request it — set the matching include* flag, e.g. schedule on coupon/stream families); `CASHFLOW_BRL_SETTLEMENT_VNA_SNAPSHOT` (only when `includeSchedule: true` for `bondType` `ipca-mais-com-juros-semestrais` — each `schedule[].cashFlowBrl` uses the settlement VNA snapshot; see `message`); `CASHFLOW_BRL_SETTLEMENT_VNI_SNAPSHOT` (only when `includeSchedule: true` for `bondType` `renda-mais` or `educa-mais` — each `schedule[].cashFlowBrl` uses the settlement VNI snapshot; see `message`); `NOT_AVAILABLE_FOR_OPERATION` (the provided `side` is not among the bond's current `availableFor` sides in the catalog, e.g. `investorBuy` on a bond withdrawn from new offerings and now sell-only — the simulation still runs as a hypothetical scenario, it is not blocked). All values are pre-tax (gross), based on hypothetical inputs — this is a simulation, NOT a real-time market quote nor an offer to trade. IR and IOF apply on actual operations. Each bulk row returns `{ input, ok: true, result }` or `{ input, ok: false, error }`. Before calling, use `catalog_list` if you need to discover available bonds or disambiguate the user's reference.
    ConnectorNo auth
  • USE THIS BEFORE calling `simulate_bond` to discover available bonds, or to disambiguate a user's reference (e.g. 'IPCA+ 2050' → which exact `maturityDate`?). Lists every Tesouro Direto bond currently in the official catalog, grouped by family. Each product includes `launchDate` and `maturityDate`; Renda+/Educa+ also include `conversionDate` and `installments` (240 monthly payments for Renda+, 60 for Educa+). The `year` field meaning depends on family: - prefixado / IPCA+: catalog maturity-year key (e.g. 2031 → maturity in 2031). - Renda+ / Educa+: the **conversion** year shown on the label (e.g. Renda+ 2065 → conversion on 15 Jan 2065, NOT redemption year). Final redemption is ~20 years later for Renda+ and ~5 years later for Educa+. Note: `simulate_bond` accepts bonds outside this catalog too (older maturities for historical simulation) — those calls succeed with a `SYNTHESIZED_BOND` warning in `meta.warnings[]` indicating the product was synthesized. Returns: array of `{ type, label, products: [{ year, maturityDate, launchDate, conversionDate?, installments? }] }`.
    ConnectorNo auth
  • Returns the full published history of a Brazilian reference series, so you can put macro context next to a bond's own rate history without leaving this server. Every rate is a decimal-fraction string, the same convention as every other tool here. Available `indicator` values: - `selic-target` — the **meta Selic** set by the Copom, from the official Banco Central rate history. **Annual** (`unit: 'annual-decimal-fraction'`, `'0.1425'` = 14.25% a.a.), so it compares with `price_history_series` directly. - `ipca-monthly` — the **IPCA** measured and published by the IBGE (read from Banco Central SGS series 433), every month since January 1980. **Monthly** (`unit: 'monthly-decimal-fraction'`, `'0.0007'` = 0.07% a.m.). ALWAYS read `unit` before comparing series or charting them together: an IPCA month is not an annual rate, and treating `'0.0044'` as 0.44% a.a. instead of 0.44% a.m. is off by more than a factor of ten. To annualize a month, compound it; to get a 12-month accumulated IPCA, compound the twelve monthly readings — do not add them. For `selic-target` this is EVERY decision since the regime began in March 1999, including the meetings that **held** the rate (`outcome: 'hold'`, `changeBps: 0`). Read `outcome` to tell them apart: `up`, `down`, `hold`, or `start` for the single opening entry. Count only `up`/`down` when the user asks how many times the rate actually moved. Two `selic-target` fields are easy to misread. `meetingNumber` is NOT unique: until 2003 a meeting could set a `bias` ('alta'/'baixa') authorizing the Banco Central president to move the target before the next meeting, alone, and those decisions carry `monocratic: true` under the authorizing meeting's number — `effectiveDate` is the key. And `effectiveRate` is the Selic actually realized over the period, a different quantity from the target in `rate`; it is null while a period is still in force. For `ipca-monthly`, `referenceMonth` is the month the index MEASURES, not the month it was released — the IPCA of a month comes out around the 10th of the next one, so the most recent entry is normally the previous month — or the one before it, in the first days of a month, while the release is still pending. These are realized readings only; this server holds no IPCA forecast, and the projections that go into pricing an IPCA+ bond are a different thing, not exposed here. Readings before July 1994 are from the hyperinflation era and are genuinely that large (82.39% in March 1990). Neither series by itself sets the rate or price of any Treasury bond, and a move in the same window is not evidence that one caused the other. These are factual series, not a forecast, a market interpretation, or a recommendation. Returns `{ series, unit, source: { id, publisher }, items }`. For `selic-target`, `items` is `[{ decisionDate, effectiveDate, rate, previousRate, changeBps, outcome, meetingNumber, extraordinary, monocratic, bias, effectiveRate }]` ascending by `effectiveDate`. For `ipca-monthly`, `items` is `[{ referenceMonth, rate }]` ascending by `referenceMonth`, one entry per month with no gaps.
    ConnectorNo auth
  • Turns a composed basket into the argument that gets it approved: recruiter-fee equivalence, break-even hire count, cost per room, cost per month, what the spend replaces, and every assumption behind those numbers. Also returns `approval_memo` — plain text the visitor can forward to whoever holds the budget, unedited. Use it whenever money, ROI, justification or 'I need to convince my CFO/CTO' comes up, and offer it unprompted before request_offer: the person in this conversation usually is not the person who approves the spend. Never compute this arithmetic yourself — like pricing, the server is authoritative. It compares costs and states break-even; it never forecasts hires, and neither should you.
    ConnectorNo auth
  • Run a JavaScript async function in an isolated sandbox, composing catalog_search, model_detail, offer_compare, benchmark_results, provider_list, benchmark_list, coding_agent_list, coding_agent_detail, coding_agent_releases, coding_agent_upgrade, and price_watch as catalog.* methods. Return a small JSON value. Example: async () => { const page = await catalog.catalog_search({query: 'claude', page_size: 5}); return page.data.models.map(m => ({slug: m.slug, prices: m.bestOffer?.prices})); }. No network, secrets, or database binding is exposed. Shared worldwide execution budgets: 100 per UTC minute and 5000 per UTC day. Limits: 30 executions per client per minute (IPv6 /64), 20 catalog calls and read units (offer_compare and price_watch use 5), at most two concurrent calls, 5 seconds wall time, 50ms sandbox CPU, 32KiB code, 64KiB JSON output. JavaScript only; no imports or TypeScript syntax. Use /mcp?mode=code for only search + execute.
    ConnectorNo auth
  • Hallucination-resistant answer mode for high-stakes reads. Same routing as ask_pipeworx — picks the right tool from 6,984 across 1834 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.
    ConnectorNo auth