Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

io.github.Hlobo-dev/tengu-firm

REMOTE · FIRM.TENGU.CO · SCANNED AUG 21

One MCP key: prices, fundamentals, SEC filings, insider/13F/congressional trades. 336 tools.

Available components

+3 this week 61 Trust /100
Trust breakdown (6 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score →

Endpoint Security57
Transport & Reachability100
Schema Quality & AI Usability68
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 38166 tokens (~113/item across 337 items; 337 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management30
  • Stability observed for 9 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage73
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 18% of tool parameters carry a description.Partial
Capabilities60
  • Spec-recency check failed: implements MCP spec 2025-06-18; the latest is 2026-07-28. See how to fix → Fail
Install

Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.

remote · firm.tengu.co

# add to Claude Code
claude mcp add --transport http hlobo-dev-tengu-firm https://firm.tengu.co/mcp
# ~/.codex/config.toml
[mcp_servers.hlobo-dev-tengu-firm]
url = "https://firm.tengu.co/mcp"
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "hlobo-dev-tengu-firm": {
      "type": "remote",
      "url": "https://firm.tengu.co/mcp",
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add hlobo-dev-tengu-firm --url https://firm.tengu.co/mcp --transport streamable-http
# ~/.hermes/config.yaml
mcp_servers:
  hlobo-dev-tengu-firm:
    url: "https://firm.tengu.co/mcp"
// mcp.json
{
  "mcpServers": {
    "hlobo-dev-tengu-firm": {
      "type": "http",
      "url": "https://firm.tengu.co/mcp"
    }
  }
}

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 20 Aug 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.

  • 18 Aug 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 17 to 20. That category is still filling its 30-day observation window: 5 days of observed history at the previous scan, 6 at this one. The score rises as the window fills, whether or not the server changes.

  • 16 Aug 26 +1
    • Server version: 2.116 → 2.117 functional
  • 14 Aug 26 +1
    • Server version: 2.114 → 2.116 functional
    • New tool “tengu_crypto_universe” functional
    • “tengu_v3_intel_darkpool_recent” added an optional parameter “freshness” cosmetic
    • “tengu_v3_intel_darkpool_ticker” added an optional parameter “freshness” cosmetic
    • “tengu_v3_intel_gex” added an optional parameter “freshness” cosmetic
    • “tengu_v3_intel_macro_snapshot” added an optional parameter “freshness” cosmetic
    • “tengu_v3_intel_off_exchange” added an optional parameter “freshness” cosmetic
    • “tengu_v3_intel_options_flow” added an optional parameter “freshness” cosmetic
    • “tengu_v3_intel_options_flow_ticker” added an optional parameter “freshness” cosmetic
    • “tengu_v3_system_health” added an optional parameter “freshness” cosmetic
  • 13 Aug 26 0
    • Stability: unverified → 0.03 functional
  • 12 Aug 26 57

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 21 Aug 2026 · Probed https://firm.tengu.co/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=firm.tengu.co CN=Amazon RSA 2048 M01,O=Amazon,C=US 22 Apr 2026 5 Nov 2026 RSA 2048 SHA256-RSA c6ae427146b1ee7ed8dd78b7493ec3e
SANs: firm.tengu.co
CN=Amazon RSA 2048 M01,O=Amazon,C=US (CA) CN=Amazon Root CA 1,O=Amazon,C=US 23 Aug 2022 23 Aug 2030 RSA 2048 SHA256-RSA 77312380b9d6688a33b1ed9bf9ccda68e0e0f
CN=Amazon Root CA 1,O=Amazon,C=US (CA) CN=Starfield Services Root Certificate Authority - G2,O=Starfield Technologies\, Inc.,L=Scottsdale,ST=Arizona,C=US 25 May 2015 31 Dec 2037 RSA 2048 SHA256-RSA 67f944a2a27cdf3fac2ae2b01f908eeb9c4c6
DNSSEC insecure

Validation of firm.tengu.co. Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
co. present 7786 8 Verified
tengu.co. absent Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication No authorisation required

The endpoint answered without asking for a token. Anyone who knows the URL can reach it.

Result No authorisation required
HTTP status 200
Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://firm.tengu.co/mcp Verified 200
http (plaintext) http://firm.tengu.co/mcp HTTPS enforced 301 https://firm.tengu.co:443/mcp
MCP tools · 337 exposed · ~38,109 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.

Tool Tokens
tengu_v3_stream_market_events ~53

SSE stream of freshness-labelled market events. Every record carries source as-of time, feed lag and staleness so old data cannot masquerade as a new breach.

NameTypeReqDescription
symbolsstring

No output schema declared.

No examples provided.

tengu_v3_stream_news ~26

SSE stream of structured-news items

NameTypeReqDescription
symbolsstring

No output schema declared.

No examples provided.

tengu_v3_stream_news_publisher_status ~53

News publisher status: polls completed, articles seen/published, dedup hits, newswire availability. Call when the user asks why news looks missing/stale or whether the pipeline is healthy.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

tengu_v3_stream_quotes ~89

SSE stream of live per-venue bid/ask quote events for the requested symbols (bid/ask price+size + per-side venue IDs). Connecting auto-subscribes coverage within ~5s. Quiet outside US market hours — that is correct, not broken. Sizes are the venue's numbers untransformed; never present them as share counts.

NameTypeReqDescription
symbolsstringyes

No output schema declared.

No examples provided.

tengu_v3_stream_realtime_guide ~59

Agent protocol for real-time queries: which SSE feed maps to which intent (live price, signals, decisions, news, alerts), payload shapes, when to prefer SSE over REST, and fallback rules when flags are off

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

tengu_v3_stream_signal_generator_status ~47

Effective signal-generator status across the optional in-process worker and dedicated processor heartbeat: input ticks, emitted signals and deployment state. Call when live signals look missing/stale.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

tengu_v3_stream_signals ~26

SSE stream of fused signals

NameTypeReqDescription
symbolsstring

No output schema declared.

No examples provided.

tengu_v3_stream_status ~56

Bounded Redis reachability plus expiring market-producer and signal-pipeline heartbeats, per-capability readiness, coverage modes/limits and known SSE endpoints. Call before claiming live data or diagnosing missing/stale feeds.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

tengu_v3_stream_tick_writer_status ~52

Tick writer (tick-persistence buffer) status: buffered rows, batches written, last flush duration. Call when the user asks whether the pipeline is healthy or why stored tick data looks missing.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

tengu_v3_stream_ticks ~52

SSE stream of live US-equity trades. A filtered connect queues cross-process T+Q coverage; the dedicated producer reconciles it asynchronously (target ~5s).

NameTypeReqDescription
symbolsstring

No output schema declared.

No examples provided.

tengu_v3_stream_universe_status ~45

Legacy in-process UniverseManager diagnostics for dev. For production cross-process warm coverage use tengu_v3_market_universe and tengu_v3_stream_status.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

tengu_v3_supply_chain_geo_revenue ~254

GEOGRAPHIC REVENUE EXPOSURE for one company — where the revenue actually comes from, estimated region by region and country by country for a fiscal period, with a per-row confidence score. This is the tariff / geopolitical lens: it answers 'how much of this company's revenue is China?' for names that never break that out. Returns the requested hierarchy layer as `regions`, the country leaves as `countries`, concentration metrics (largest country share and an HHI), the period served and the other periods available. ?country=CN,TW returns a per-period HISTORY for exactly those countries. Each layer sums to 100 on its own, so never add a region to a country. Amounts carry NO currency code in the source and the reporting currency can change between periods, so compare on PERCENT, not amount. Estimates, not company-reported segments — for reported segments use /fundamentals/segments/{ticker}.

NameTypeReqDescription
company_idstring
countrystring
layerinteger
periodstring
tickerstringyesPath parameter 'ticker' (required).
top_countriesinteger

No output schema declared.

No examples provided.

tengu_v3_supply_chain_relationships ~269

The SUPPLY-CHAIN GRAPH around one company — its customers, suppliers, competitors and partners in one call, each with the relationship's start date, whether it is still open, which side reported it, and revenue dependence where it was estimated. Both directions are merged and normalised to the queried company's point of view, so 'customers' includes companies that report THIS company as their supplier. Call it to map second-order exposure (whose earnings move when this name moves) or to find the listed suppliers behind a product cycle. Defaults to CURRENT relationships; status=all or as_of=YYYY-MM-DD gives history. One entry per counterparty by default (several records can back one pair) — group_by=record gives the underlying versions. revenue_percent belongs to the company named in revenue_percent_of_ticker, is an ESTIMATE on every row, and is present on only a minority of edges; coverage is reported per group.

NameTypeReqDescription
as_ofstring
company_idstring
group_bystring
limitinteger
listed_onlyboolean
rel_typestring
statusstring
tickerstringyesPath parameter 'ticker' (required).

No output schema declared.

No examples provided.

tengu_v3_supply_chain_revenue_dependence ~208

REVENUE DEPENDENCE, both sides — the revenue-at-risk map around one company. `customer_concentration`: how much of THIS company's revenue each customer accounts for. `dependents_on_company`: other companies whose revenue depends on THIS one (e.g. a component maker that books most of its revenue from one handset vendor) — the list that reprices when this name changes its orders, and it is in no filing screen. Percentages are of the DEPENDENT company's revenue and every row names whose revenue it is, so the number can never be read backwards. Coverage is sparse and disclosed: only a minority of relationships carry an estimated percentage, so absence means UNKNOWN, never zero.

NameTypeReqDescription
as_ofstring
company_idstring
limitinteger
min_percentnumber
statusstring
tickerstringyesPath parameter 'ticker' (required).

No output schema declared.

No examples provided.

tengu_v3_system_health ~48

Aggregate system health with per-subsystem status. Call when the user asks whether the system/data pipeline is healthy or why data looks missing/stale.

NameTypeReqDescription
freshnessstring

No output schema declared.

No examples provided.

tengu_v3_tape_bars ~176

Intraday minute bars for one equity from FIRM's own market-data capture (~10.5k tickers, extended hours included). Use when an agent needs REAL intraday price/volume history — how a ticker traded through an event, VWAP context, or a finer-grained chart than daily bars. Archive begins 2026-05-10; pass date=YYYY-MM-DD (or start+end, max 5 trading days). 1m is the native grain; 5m/15m/1h are resampled server-side.

NameTypeReqDescription
datestring
endstring
intervalstring
limitinteger
startstring
tickerstringyesPath parameter 'ticker' (required).

No output schema declared.

No examples provided.

tengu_v3_tape_futures ~130

Raw CME futures trade prints for one root (NG, CL, ES...) and one day, from FIRM's own capture: per-print price, size, notional, block flag across contract months. Call it for real futures flow: energy tape, rolls, block prints. date mandatory; archive from 2026-05-13, mostly CME energy (NG heavy) — empty = not-yet-captured, not quiet.

NameTypeReqDescription
datestringyes
limitinteger
rootstringyesPath parameter 'root' (required).

No output schema declared.

No examples provided.

tengu_v3_tape_futures_curve ~138

Futures term structure for one CME root (27 roots incl. ES, NQ, CL, NG, GC, ZN) from FIRM's daily chain snapshots — per contract month: last/settlement, bid/ask, session OHLC, volume, open interest, days-to-expiry. Call it for curve shape (contango/backwardation), roll, or OI distribution; omit date for latest, snapshots begin 2026-05-18.

NameTypeReqDescription
datestring
limitinteger
rootstringyesPath parameter 'root' (required).

No output schema declared.

No examples provided.

tengu_v3_tape_index_bars ~162

Intraday minute bars for the major index tapes — SPX, NDX, DJI, RUT, VIX — from FIRM's own market-data indices capture. Use for intraday market/vol context around an event (how did SPX and VIX move through the FOMC statement?) or as the benchmark leg next to tengu_v3_tape_bars. Archive begins 2026-05-14; one day or max 5 trading days per call.

NameTypeReqDescription
datestring
endstring
indexstringyesPath parameter 'index' (required).
intervalstring
limitinteger
startstring

No output schema declared.

No examples provided.

tengu_v3_tape_microstructure ~122

60s microstructure windows per ticker from FIRM's live tape: rolling vwap, trade count/avg size, block count/vol, buy/sell imbalance, large-trade premium. Call it to separate smart-money accumulation from retail moves. Active-set coverage (~few hundred names/session; empty = uncaptured); omit date for latest, capture from 2026-05-13.

NameTypeReqDescription
datestring
limitinteger
tickerstringyesPath parameter 'ticker' (required).

No output schema declared.

No examples provided.

tengu_v3_tape_options ~149

Raw options trade prints for one underlying on one trading day from FIRM's own market-data capture — per-print premium (notional_usd), strike, expiry, block/sweep flags, sorted largest premium first. Use when an agent needs the actual options tape behind a flow signal: whale prints, sweep activity, what struck around a specific time. Archive begins 2026-05-11; date is mandatory (70 GB day-partitioned table).

NameTypeReqDescription
datestringyes
limitinteger
min_premiumnumber
sidestring
tickerstringyesPath parameter 'ticker' (required).

No output schema declared.

No examples provided.

tengu_v3_tape_options_chain ~325

Full historical OPTIONS CHAIN for one underlying on one snapshot day from FIRM's own daily market-data capture — per contract: strike, expiry, dte, bid/ask/mid/last, day volume + VWAP, implied volatility, the full greeks (delta/gamma/theta/vega), open interest and underlying price, plus a chain summary (contract/expiration counts, put/call OI + volume ratios, front-month ATM IV). Use it to reconstruct the IV surface, greeks or OI distribution AS IT STOOD on a past day, find where OI/volume concentrated, or pull the near-the-money strikes around an event. Omit date for the latest captured day (reported as snapshot_day); filter by side, expiration/dte, min OI/volume or a moneyness band; sort by open interest or dollar notional. Capture begins 2026-05-10. For the raw options TRADE tape use tengu_v3_tape_options; for live GEX/dealer flow use the options_flow tools.

NameTypeReqDescription
contract_typestring
datestring
expirationstring
limitinteger
max_dteinteger
min_dteinteger
min_open_interestnumber
min_volumenumber
moneynessnumber
sortstring
tickerstringyesPath parameter 'ticker' (required).

No output schema declared.

No examples provided.

tengu_v3_thresholds ~49

Currently-active decision thresholds — the live cutoff values gating automated trade decisions right now. Call it to know which thresholds are in force before interpreting why a signal did or didn't become a decision.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

tengu_v3_trade_setups ~206

Top trade setups from the decision engine with **defensive-alternates baked in**. When the screen is one-sided (>=70% same direction across 3+ picks), the response carries `universe_skew` = 'bearish' | 'bullish' | 'mixed' AND a `regime_warranted_alternative` block containing the editorial fallback basket (defensive | cash_heavy | value_tilt | momentum). Each alternative carries strategy label, curated candidates with thesis per name, and a one-sentence rationale. Brain consumes the alternative when the primary picks don't fit the user's risk frame — e.g. all-bearish screen on a long-bias capital-allocation query surfaces the `defensive` basket so the model never has to refuse or invent. Schema is ADDITIVE — primary `setups` array unchanged from v2.41.

NameTypeReqDescription
limitinteger
min_convictionnumber

No output schema declared.

No examples provided.

tengu_v3_transcript_text ~159

Full earnings-call transcript as ordered speaker turns — use when the user wants what management or analysts actually SAID on a call. ``event_id`` comes from /api/v3/transcripts/{ticker} or /transcripts/search. Each turn carries speaker name + role (executive/analyst/operator) and section (presentation vs qa). ~2 MB text cap (``truncated: true`` when hit — refetch with components= to slice). Text coverage 2020-2025.

NameTypeReqDescription
componentsstring
event_idstringyesPath parameter 'event_id' (required).
max_turnsinteger
tickerstringyesPath parameter 'ticker' (required).

No output schema declared.

No examples provided.

tengu_v3_transcripts_list ~127

List a company's earnings calls and investor-event transcripts (licensed institutional, 1.75M calls), newest first — call this FIRST to get the ``event_id`` you pass to the full-text route. One row per call (versions collapsed to the best copy: Proofed > Edited > Spellchecked) with date, title and event type. Full text coverage is 2020-2025; older calls are metadata-only.

NameTypeReqDescription
limitinteger
sincestring
tickerstringyesPath parameter 'ticker' (required).

No output schema declared.

No examples provided.

tengu_v3_transcripts_search ~113

Search earnings-call transcripts. scope=headlines (default) searches call titles across ALL companies; scope=text searches the spoken words inside one company's transcripts (ticker REQUIRED) and returns per-call hit counts + a snippet. Use when the user asks 'which calls mention X' — then fetch the full text with the returned event_id.

NameTypeReqDescription
limitinteger
qstring
scopestring
sincestring
tickerstring

No output schema declared.

No examples provided.

tengu_v3_twap_plan ~105

TWAP child-order schedule for a ticker: a qty (default 100) sliced into evenly-timed child orders over `minutes` (default 60). Call this when the user asks how to work an order over time; use vwap_plan for a volume-curve schedule and cost_estimate for expected cost.

NameTypeReqDescription
minutesinteger
qtyinteger
tickerstringyesPath parameter 'ticker' (required).

No output schema declared.

No examples provided.

tengu_v3_ultimate_decision ~69

Ultimate-engine aggregate decision for one ticker — the top-level verdict aggregated across the engine stack. PRIMARY tool for 'so what's the final call on <ticker>?' — call it when the user wants one consolidated decision rather than raw component signals.

NameTypeReqDescription
tickerstring

No output schema declared.

No examples provided.

tengu_v3_universe_scan ~75

Latest universe-scanner output: the most recent scan results across the tradable universe, up to `limit` names (default 100). Call this when the user asks what the scanner is flagging right now or wants a market-wide sweep before drilling into single tickers.

NameTypeReqDescription
limitinteger

No output schema declared.

No examples provided.

tengu_v3_validation_trial_count ~60

Lifetime count of registered trials — the N used for DSR deflation. Call it to know how heavy the multiple-testing burden is before interpreting any deflated Sharpe, or when the user asks how many strategy variants have been tried.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

tengu_v3_validation_trials ~64

Recent trials recorded in the DSR registry (limit param, default 100). Call it when the user asks what backtests or experiments have been run, or to audit the multiple-testing history behind a deflated Sharpe.

NameTypeReqDescription
limitinteger

No output schema declared.

No examples provided.

tengu_v3_vwap_plan ~95

VWAP child-order schedule for a ticker: a qty (default 100) sliced along the intraday U-curve volume profile. Call this when the user wants an order worked in line with typical intraday volume; use twap_plan for even time-slicing and cost_estimate for expected cost.

NameTypeReqDescription
qtyinteger
tickerstringyesPath parameter 'ticker' (required).

No output schema declared.

No examples provided.

tengu_v3_workforce_layoff_screen ~172

CROSS-SECTIONAL LAYOFF SCREEN — which listed companies filed WARN-Act layoff notices in the last N days, ranked by employees noticed. One row per ticker (company, filing count, employees noticed, first/latest event date, states touched, largest single filing) across the whole listed universe. Call it for 'who is cutting right now' — notices are filed weeks before the cut, so this surfaces restructurings before the press release. Only employers matched to a listed symbol appear; most WARN filers are private and are excluded by design. For one company's filings use /workforce/layoffs/{ticker}.

NameTypeReqDescription
daysinteger
limitinteger
min_employeesinteger
statestring

No output schema declared.

No examples provided.

tengu_v3_workforce_layoffs ~228

WARN-Act LAYOFF FILINGS for one company — the public notices an employer must file WEEKS BEFORE a cut, so they lead the press release and the next earnings call. Returns each filing (notice date, effective date, employees affected, site city/state, layoff type) newest first, plus TRUE window totals, a month-by-month series and the largest single filing; with_workforce also sizes the total against estimated headcount and names the headcount month used. Call it as a downside early-warning, or to confirm the scale of an announced restructuring — filings are SITE-level, so one restructuring appears as many rows. Coverage is US WARN notices from 1989 forward including forward-dated notices; only employers matched to a listed symbol are reachable by ticker, so an empty result is not proof there were no layoffs.

NameTypeReqDescription
employer_idinteger
limitinteger
monthsinteger
tickerstringyesPath parameter 'ticker' (required).
with_workforceboolean

No output schema declared.

No examples provided.

tengu_v3_workforce_momentum ~240

Monthly EMPLOYMENT MOMENTUM for one company — headcount trend, hiring vs attrition and salary level, from a monthly workforce panel rather than an annual filing. Returns the latest month's headcount with its hiring, attrition and net-hiring rates (percent of headcount per month plus annualized twins), 1m/3m/12m headcount growth, average salary per employee (USD per year) with its coverage, and the full monthly series. Call it to see a company expanding or shrinking MONTHS before the next 10-K, or to catch attrition rising while headcount looks flat. Values are modelled estimates, not company-reported figures. The panel is being backfilled: `coverage` reports the months actually present and any lookback the panel cannot support returns null with a reason — never an interpolated number. Ticker is not unique across venues; the response names the entity served and lists alternates you can pin with employer_id.

NameTypeReqDescription
employer_idinteger
monthsinteger
tickerstringyesPath parameter 'ticker' (required).

No output schema declared.

No examples provided.

tengu_v3_workforce_momentum_screen ~170

CROSS-SECTIONAL HIRING SCREEN — rank listed employers by headcount growth between the panel's latest month and N months earlier: ticker, company, headcount then and now, percent and absolute change, latest hiring and attrition rates and average salary, sorted fastest-growing or fastest-shrinking. This is the workforce factor as a screen — who is actually staffing up (or quietly shrinking) months before it reaches a filing. The monthly panel is MID-BACKFILL, so a months_back longer than the loaded window returns an explicit warning listing the lookbacks that ARE available — never a silently shortened comparison.

NameTypeReqDescription
limitinteger
min_headcountnumber
months_backinteger
orderstring

No output schema declared.

No examples provided.