Show raw JSON evidence
{
"checks": {
"action_safety_probe": {
"details": {
"auth_present": true,
"confirmation_signals": [],
"safeguard_count": 3,
"summary": {
"bulk_access_tools": 3,
"capability_distribution": {
"admin": 1,
"exec": 5,
"export": 3,
"filesystem": 3,
"network": 2,
"other": 1,
"read": 7,
"secrets": 1,
"write": 4
},
"destructive_tools": 0,
"egress_tools": 0,
"exec_tools": 5,
"high_risk_tools": 3,
"risk_distribution": {
"critical": 1,
"high": 2,
"low": 2,
"medium": 3
},
"secret_tools": 1,
"tool_count": 8
}
},
"latency_ms": null,
"status": "warning"
},
"advanced_capabilities_probe": {
"details": {
"capabilities": {
"completions": false,
"elicitation": false,
"prompts": false,
"resource_links": false,
"resources": false,
"roots": false,
"sampling": false,
"structured_outputs": false
},
"enabled": [],
"enabled_count": 0,
"initialize_capability_keys": [
"tools"
]
},
"latency_ms": null,
"status": "missing"
},
"connector_publishability_probe": {
"details": {
"blockers": [
"transport_compliance"
],
"criteria": {
"action_safety": true,
"auth_flow": true,
"connector_replay": true,
"initialize": true,
"protocol_version": true,
"remote_transport": true,
"request_association": true,
"server_card": true,
"session_resume": true,
"step_up_auth": true,
"tool_surface": true,
"tools_list": true,
"transport_compliance": false
},
"high_risk_tools": 3,
"tool_count": 8,
"transport": "streamable-http"
},
"latency_ms": null,
"status": "warning"
},
"connector_replay_probe": {
"details": {
"added_tools": [],
"additive_output_changes": [],
"backward_compatible": true,
"output_breaks": [],
"removed_tools": [],
"required_arg_breaks": [],
"would_break_after_refresh": false
},
"latency_ms": null,
"status": "ok"
},
"determinism_probe": {
"details": {
"attempts": 2,
"baseline_signature": "1ee8088a8c515c87b45d26f0a50f366e6bda43b8fca3cc9ca9ceba304c022395",
"errors": [],
"matches": 2,
"stable_ratio": 1.0,
"successful": 2
},
"latency_ms": 14.2,
"status": "ok"
},
"initialize": {
"details": {
"headers": {
"content-type": "application/json"
},
"http_status": 200,
"payload": {
"id": 1,
"jsonrpc": "2.0",
"result": {
"capabilities": {
"tools": {
"listChanged": true
}
},
"instructions": "Drillr's data backend for global financial markets \u2014 direct, predictable,\ncall-priced. ",
"protocolVersion": "2025-03-26",
"serverInfo": {
"name": "drillr-data",
"version": "1.0.0"
}
}
},
"url": "https://gateway.drillr.ai/mcp/data"
},
"latency_ms": 42.97,
"status": "ok"
},
"interactive_flow_probe": {
"details": {
"oauth_supported": true,
"prompt_available": false,
"risk_hits": [],
"safe_hits": []
},
"latency_ms": null,
"status": "ok"
},
"oauth_authorization_server": {
"details": {
"headers": {
"content-type": "application/json"
},
"http_status": 200,
"payload": {
"authorization_endpoint": "https://gateway.drillr.ai/oauth/authorize",
"code_challenge_methods_supported": [
"S256"
],
"grant_types_supported": [
"authorization_code",
"refresh_token"
],
"issuer": "https://gateway.drillr.ai",
"registration_endpoint": "https://gateway.drillr.ai/oauth/register",
"response_types_supported": [
"code"
],
"token_endpoint": "https://gateway.drillr.ai/oauth/token",
"token_endpoint_auth_methods_supported": [
"none"
]
},
"url": "https://gateway.drillr.ai/.well-known/oauth-authorization-server"
},
"latency_ms": 12.38,
"status": "ok"
},
"oauth_protected_resource": {
"details": {
"headers": {
"content-type": "application/json"
},
"http_status": 200,
"payload": {
"authorization_servers": [
"https://gateway.drillr.ai"
],
"bearer_methods_supported": [
"header"
],
"resource": "https://gateway.drillr.ai"
},
"url": "https://gateway.drillr.ai/.well-known/oauth-protected-resource"
},
"latency_ms": 13.71,
"status": "ok"
},
"official_registry_probe": {
"details": {
"direct_match": true,
"official_peer_count": 1,
"registry_identifier": "ai.drillr/drillr",
"registry_source": "official_registry"
},
"latency_ms": null,
"status": "ok"
},
"openid_configuration": {
"details": {
"error": "Client error '404 Not Found' for url 'https://gateway.drillr.ai/.well-known/openid-configuration'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404",
"url": "https://gateway.drillr.ai/.well-known/openid-configuration"
},
"latency_ms": 12.32,
"status": "error"
},
"probe_noise_resilience": {
"details": {
"headers": {
"content-type": "text/plain; charset=UTF-8"
},
"http_status": 404,
"url": "https://gateway.drillr.ai/robots.txt"
},
"latency_ms": 12.03,
"status": "ok"
},
"prompt_get": {
"details": {
"reason": "not_advertised"
},
"latency_ms": null,
"status": "missing"
},
"prompts_list": {
"details": {
"headers": {
"content-type": "application/json"
},
"http_status": 200,
"payload": {
"error": {
"code": -32601,
"message": "Method not found"
},
"id": 3,
"jsonrpc": "2.0"
},
"reason": "not_supported",
"url": "https://gateway.drillr.ai/mcp/data"
},
"latency_ms": 14.63,
"status": "missing"
},
"protocol_version_probe": {
"details": {
"claimed_version": "2025-03-26",
"lag_days": 244,
"latest_known_version": "2025-11-25",
"releases_behind": 2,
"validator_protocol_version": "2025-03-26"
},
"latency_ms": null,
"status": "warning"
},
"provenance_divergence_probe": {
"details": {
"direct_official_match": true,
"drift_fields": [],
"metadata_document_count": 2,
"registry_homepage": null,
"registry_repository": null,
"registry_title": null,
"registry_version": null,
"server_card_homepage": null,
"server_card_repository": null,
"server_card_title": "drillr-agentic",
"server_card_version": "1.0.0"
},
"latency_ms": null,
"status": "ok"
},
"request_association_probe": {
"details": {
"reason": "no_request_association_capabilities_advertised"
},
"latency_ms": null,
"status": "missing"
},
"resource_read": {
"details": {
"reason": "not_advertised"
},
"latency_ms": null,
"status": "missing"
},
"resources_list": {
"details": {
"headers": {
"content-type": "application/json"
},
"http_status": 200,
"payload": {
"error": {
"code": -32601,
"message": "Method not found"
},
"id": 5,
"jsonrpc": "2.0"
},
"reason": "not_supported",
"url": "https://gateway.drillr.ai/mcp/data"
},
"latency_ms": 12.77,
"status": "missing"
},
"server_card": {
"details": {
"headers": {
"content-type": "application/json"
},
"http_status": 200,
"payload": {
"authentication": {
"required": true,
"schemes": [
"api_key"
]
},
"serverInfo": {
"name": "drillr-agentic",
"version": "1.0.0"
},
"tools": [
{
"description": "Ask natural-language questions about companies, tickers, sectors, SEC filings, earnings, and alternative data. Runs Drillr's research agent server-side and returns a synthesized answer with source attribution. Pass session_id to continue a prior research thread (~3\u00d7 faster on follow-ups via cache reuse) and context to inject background as ground truth.",
"name": "search"
}
]
},
"url": "https://gateway.drillr.ai/.well-known/mcp/server-card.json"
},
"latency_ms": 148.35,
"status": "ok"
},
"session_resume_probe": {
"details": {
"protocol_version": "2025-03-26",
"reason": "no_session_id",
"resume_expected": true,
"transport": "streamable-http"
},
"latency_ms": null,
"status": "warning"
},
"step_up_auth_probe": {
"details": {
"auth_required_checks": [],
"broad_scopes": [],
"challenge_headers": [],
"minimal_scope_documented": false,
"oauth_present": true,
"scope_specificity_ratio": 0.0,
"step_up_signals": [],
"supported_scopes": []
},
"latency_ms": null,
"status": "warning"
},
"tool_snapshot_probe": {
"details": {
"added": [],
"changed_outputs": [],
"current_tool_count": 8,
"previous_tool_count": 8,
"removed": [],
"similarity": 1.0
},
"latency_ms": null,
"status": "ok"
},
"tools_list": {
"details": {
"headers": {
"content-type": "application/json"
},
"http_status": 200,
"payload": {
"id": 2,
"jsonrpc": "2.0",
"result": {
"tools": [
{
"description": "Use to discover which SEC filings exist for a ticker before searching content.\nFor the actual content use sec_report_search instead.\n\nList indexed SEC filings for a given ticker with a summary header.\n\nReturns: summary (period coverage, per-type counts) + table of up to 50 filings\n(fiscal_year, fiscal_quarter, filing_type, filing_date, period_start, period_end).\n\nfiling_types filter: omit for main reports only (10-K, 10-Q, 20-F, S-1, DEF 14A\nand /A amendments; excludes 8-K/6-K); pass [] for all indexed types; pass explicit\nallowlist to override.",
"execution": {
"taskSupport": "forbidden"
},
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"filing_types": {
"description": "Filter by filing type. Omit for default (periodic reports + IPO/shelf registrations + amendments; excludes ad-hoc disclosures). Pass [] for all indexed types. Pass an explicit allowlist to override \u2014 use values from the `filing_type` column of a prior unfiltered call.",
"items": {
"type": "string"
},
"type": "array"
},
"ticker": {
"description": "Stock ticker, e.g. NVDA, AAPL",
"type": "string"
}
},
"required": [
"ticker"
],
"type": "object"
},
"name": "sec_report_list"
},
{
"description": "Use when you need narrative content (risk factors, MD&A, guidance language).\nFor consolidated financial numbers use run_sql on financial_statements instead.\n\nSEC report semantic search. Search paragraph content in 10-K/10-Q/20-F/6-K filings.\n\nSearch Strategy:\n- (1) Time-specific queries (\"recent\", \"last year\", \"Q4 2025\", etc.): Apply a time range\n filter upfront to narrow results to the relevant period.\n- (2) Broad queries with no time requirement: Broad first, narrow later. First 1-2 searches:\n use MINIMAL filters. Do NOT set filing_types or period unless explicitly needed. This\n discovers what information exists in what filings. Later searches: add period/type filters\n to narrow down.\n\nFiling types: 10-K (US annual), 10-Q (US quarterly), 8-K (US current/material events),\n20-F (foreign annual), 6-K (foreign current), S-1 (US IPO registration), F-1 (foreign IPO registration).\n\nSCOPE:\n- (1) Indexes ONLY company-filed SEC reports. Does NOT index institutional filings (13F-HR, 13D, 13G). For institutional holdings, use insider_and_institution_activities with source='institution'.\n- (2) For standardized consolidated financial numbers (revenue, margins, EPS, etc.), use financial_statements first \u2014 SEC filings contain narrative context, not structured data.\n\nHigh-Value Search Scenarios (use proactively when relevant):\n- Share dilution / SBC / buyback \u2192 search \"Shareholders' Equity\" or \"Capital Stock\" for share-level (not just dollar-level) breakdowns\n- Facilities / properties \u2192 search \"Properties\" for owned vs leased status, lease terms, land use rights\n- Interest rate sensitivity \u2192 search \"Market Risk\" or \"Interest Rate Risk\" for floating-rate debt exposure, swap arrangements\n- Segment revenue breakdown \u2192 search \"Segment Information\" or \"Revenue Disaggregation\"\n- Risk factors \u2192 search \"Risk Factors\" for specific risks\n- Management guidance \u2192 search \"Outlook\" or \"Guidance\" in MD&A\n- Accounting policies \u2192 search \"Critical Accounting Policies\"\n- Stock split history \u2192 search \"Stock Split\" for split ratios and dates\n\nUse for: segment revenue, risk factors, management discussion, guidance, accounting policies, operational metrics, related party transactions, property details, share structure.",
"execution": {
"taskSupport": "forbidden"
},
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"filing_types": {
"items": {
"type": "string"
},
"type": "array"
},
"period_end": {
"description": "End period YYYY-MM",
"type": "string"
},
"period_start": {
"description": "Start period YYYY-MM",
"type": "string"
},
"query": {
"description": "Search query",
"type": "string"
},
"ticker": {
"description": "Stock ticker, e.g. NVDA, AAPL",
"type": "string"
},
"top_k": {
"default": 10,
"maximum": 30,
"minimum": 1,
"type": "integer"
}
},
"required": [
"ticker",
"query"
],
"type": "object"
},
"name": "sec_report_search"
},
{
"description": "Use for qualitative company discovery (industry, business model, supply chain,\ncompetitors, management background). For numerical screening (revenue, margins,\nratios, growth rates) use run_sql on company_snapshot instead.\n\nDrillr's company knowledge base \u2014 searchable across industry classification,\nproduct offerings, business model, segment structure, competitive landscape,\nsupply chain, management background, and customer profile.\n\nPass a natural language description (e.g. \"EV battery suppliers to Tesla\",\n\"Japanese semiconductor equipment makers\", \"AI inference chip startups\"). Returns\na structured list of matching companies with context snippets.\n\nONLY for finding a LIST of companies by description.",
"execution": {
"taskSupport": "forbidden"
},
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"query": {
"description": "natural language query",
"type": "string"
}
},
"required": [
"query"
],
"type": "object"
},
"name": "company_search"
},
{
"description": "Use when you need structured rows from financial/market/altdata tables.\nFor SEC filing narrative use sec_report_search instead. For company qualitative\ndiscovery use company_search instead. For recent news + market events use\nsignal_list instead.\n\nExecute a read-only PostgreSQL SELECT query on financial and alternative-data tables.\nCall `get_table_schema` first to look up columns for a specific table. For alternative-data categories, call `list_tables(categories=[...])` to see tables + columns.\n\nSQL constraints:\n- No CTE (`WITH ... AS`) \u2014 use subqueries instead.\n- Date columns are TEXT \u2014 use plain string comparison (`period_end >= '2024-01'`). Never use `::date` cast or `INTERVAL` arithmetic.\n- No `ROUND(float8, int)` \u2014 use `CAST(value AS DECIMAL(10,2))` if rounding is needed.\n- Structured-data queries: always filter by ticker (`WHERE ticker IN ('A','B','C')`; screening: `ticker NOT LIKE '%-%'` to exclude preferred stock). Alternative data is macro/industry/patent \u2014 no ticker filter required.\n\nStructured data (tables grouped by domain):\n\n## Market Data\n- price_volume_history: Historical OHLCV price data, ~32M rows. MUST filter by ticker AND time_frame ('daily'|'weekly'|'monthly') to avoid timeout. Columns: ticker, period_end, time_frame, open, high, low, close, adj_close, volume, turnover, vwap, change, change_percent.\n Ticker conventions:\n * STOCK / ETF \u2014 bare 1\u20135 letters (AAPL, MSFT, SPY, QQQ, VOO, TLT). Foreign listings use exchange suffix: 1557.T (JP), 310960.KS (KR).\n * INDEX \u2014 leading \"^\" (^GSPC=S&P 500, ^DJI, ^IXIC=NASDAQ Composite, ^NDX=NASDAQ 100, ^RUT=Russell 2000, ^VIX). Foreign indices: ^FTSE, ^GDAXI, ^N225, 000001.SS (Shanghai Composite), FTSEMIB.MI.\n * COMMODITY \u2014 [code]+USD or +USX (CLUSD=WTI futures, BZUSD=Brent, NGUSD=natgas, GCUSD=gold, SIUSD=silver, HGUSD=copper, ZCUSX=corn, CTUSX=cotton). Suffix USX = priced in cents.\n * FOREX \u2014 6 letters base+quote, no separator (EURUSD, USDJPY, GBPUSD, USDCNY).\n * CRYPTO \u2014 [token]+USD (BTCUSD, ETHUSD, SOLUSD, DOGEUSD, USDTUSD, USDCUSD).\n Pitfalls:\n 1. Same asset, different tickers: NASDAQ 100 \u2192 index ^NDX (~26000) vs ETF QQQ (~640). Pick the one matching user intent.\n 2. WTI spot \u2260 futures. CLUSD here is NYMEX futures, NOT spot (FRED has spot via DCOILWTICO).\n 3. Tickers with \".\" or \"^\" MUST be quoted in SQL: `WHERE ticker = '^NDX'`.\n- index_price: Real-time price snapshot for 3 major US indices: S&P 500 (^GSPC), Dow Jones (^DJI), NASDAQ 100 (^NDX).\n- index_composition: Index constituent membership for S&P 500 / Dow Jones / NASDAQ 100 / Nikkei 225 (^N225) / TOPIX (^TPX). Includes current and historical members (active rows have exit_date IS NULL).\n- equity_extended_rt: Extended-hours snapshot, one row per ticker (~6.1K US equities; PK=ticker; refreshed every few minutes \u2014 see extended_updated_at). Use ONLY for pre-market / after-hours / overnight quotes. Columns: ticker, company_name, market, price_current (last regular-session close), then three parallel blocks pre_* / after_* / overnight_* (price, change_val, change_rate, high, low, volume, turnover), plus extended_updated_at. For regular-session OHLCV history use price_volume_history; for valuation / fundamentals use company_snapshot. Japan tickers are NOT in this view yet \u2014 extended-hours data is US-only.\n\n## Fundamentals\n- financial_statements: Quarterly and annual financial data covering income statement, balance sheet, and cash flow statement. Filter by ticker + fiscal_period ('FY' annual, 'Q1'..'Q4' quarterly).\n- company_snapshot: Real-time company snapshot, one row per company. Pre-computed metrics (ratios, percentages, per-share figures, growth rates) only \u2014 NOT raw statement line items. For raw statements use financial_statements; for qualitative discovery use company_search.\n\n## Earnings\n- earning_call_summary: Earnings call data with AI-structured summaries (management_highlights, guidance, risks, segment_performance, q_and_a). Filter by ticker + period_end (yyyy-mm). NOT for structured financial numbers.\n- earning_call_calendar: Earnings conference call schedule with EPS and revenue estimates vs actuals. `date` column is the scheduled earnings call datetime (UTC timestamptz) \u2014 NOT the press-release / 10-Q filing date (the filing typically lands the same day or shortly after). Use eps_actual IS NULL for upcoming calls, IS NOT NULL for reported.\n\n## Analyst Coverage\n- analyst_ratings: Individual analyst rating events \u2014 every re-rating is a separate row. ~565K rows, 519 firms. Filter by ticker; `date` is TEXT (string comparison, no ::date cast). importance >= 4 for high-impact calls.\n- analyst_ratings_consensus: Per-ticker analyst consensus rollup \u2014 one row per ticker, refreshed daily. Columns: strong_buy/buy/hold/sell/strong_sell counts, total_analysts, consensus, pt_consensus/high/low.\n\n## Ownership & Insider Activity\n- insider_and_institution_activities: Insider trades (Form 3/4/5) and institutional holding changes (13D/G/F, 13F-HR) from SEC EDGAR. Filter by ticker + source ('insider' vs 'institution'). For institutions, filer_name is the holder; shares/market_value give position size.\n\n## Corporate Events (8-K)\n- executive_change: 8-K executive change events \u2014 appointments, departures, reasons, successors, effective dates. Filter by ticker + event_type.\n- company_deal_events: Single source of truth for corporate deal activity (8-K 1.01/1.02/2.01, S-4, press releases). M&A, financing, material agreements as event-based rows (announced/signed/amended/closed/terminated/waived). Filter by ticker only \u2014 do NOT filter by deal_type. One deal may span multiple rows linked via deal_fingerprint.\n- debt_issuance: 8-K debt issuance events \u2014 principal amount, interest rate, maturity, lender, use of proceeds. Use is_current = true for latest version when amendments exist.\n- securities_offering: 8-K securities offering events \u2014 shares, price per share, total proceeds, investors, lock-up. Use is_current = true for latest version when amendments exist.\n\n## Executive Profiles & Compensation\n- executive_profile: Key executive profiles \u2014 name, title, compensation, gender, birth year. One row per executive per company.\n- executive_compensation: Annual executive compensation breakdown \u2014 salary, bonus, stock awards, option awards, total. Filter by ticker + year.\n\n## Alternative Data\nFor alternative-data tables, call list_tables(categories=[...]) first.",
"execution": {
"taskSupport": "forbidden"
},
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"sql": {
"description": "PostgreSQL SELECT query",
"type": "string"
}
},
"required": [
"sql"
],
"type": "object"
},
"name": "run_sql"
},
{
"description": "Use BEFORE run_sql when you're unsure which columns a table has.\n\nLook up column definitions (name, type, description) for a data table.",
"execution": {
"taskSupport": "forbidden"
},
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"table_name": {
"enum": [
"financial_statements",
"company_snapshot",
"price_volume_history",
"earning_call_summary",
"insider_and_institution_activities",
"index_price",
"equity_extended_rt",
"analyst_ratings",
"analyst_ratings_consensus",
"earning_call_calendar",
"executive_profile",
"executive_compensation",
"executive_change",
"company_deal_events",
"debt_issuance",
"securities_offering",
"eia_generators",
"eia_retail_prices",
"eia_regional_hourly",
"epochai_data_centers",
"epochai_data_center_timelines",
"epochai_gpu_clusters",
"epochai_dc_cooling_towers",
"epochai_dc_chillers",
"epochai_chip_types",
"epochai_ml_hardware",
"epochai_chip_organizations",
"epochai_chip_sales_cumulative",
"epochai_chip_sales_by_chip",
"epochai_chip_sales_by_designer",
"epochai_chip_owners_cumulative_by_chip",
"epochai_chip_owners_cumulative_by_designer",
"epochai_chip_owners_quarters_by_chip",
"tsmc_revenue",
"twcustoms_trade",
"computeprices_gpus_dim",
"computeprices_gpu_offer_daily",
"computeprices_gpu_offers",
"computeprices_providers_dim",
"skypilot_ondemand_price",
"skypilot_spot_price",
"skypilot_instance_dim",
"epochai_models",
"epochai_benchmark_scores",
"epochai_benchmark_runs",
"epochai_ai_companies",
"epochai_ai_companies_revenue_reports",
"epochai_ai_companies_usage_reports",
"epochai_ai_companies_staff_reports",
"epochai_ai_companies_funding_rounds",
"epochai_ai_companies_compute_spend",
"epochai_polling",
"arena_leaderboard",
"litellm_price_history",
"litellm_models_dim",
"computeprices_llm_prices",
"computeprices_llm_price_daily",
"computeprices_llms_dim",
"comtrade_country",
"comtrade_hs_code",
"census_import_export",
"fred_series",
"fred_observations",
"fred_macro_daily",
"polymarket_events",
"polymarket_markets",
"polymarket_outcomes",
"polymarket_trades",
"polymarket_daily",
"polymarket_volume_daily",
"polymarket_holders_daily",
"kalshi_events",
"kalshi_markets",
"kalshi_trades",
"kalshi_daily",
"kalshi_volume_daily",
"mineral_deposit",
"mineral_deposit_commodity",
"mineral_deposit_operator",
"mineral_country_supply",
"mineral_critical_snapshot",
"fiscal_year_config"
],
"type": "string"
}
},
"required": [
"table_name"
],
"type": "object"
},
"name": "get_table_schema"
},
{
"description": "Use to convert between fiscal year/quarter and calendar months for a given ticker.\nCompanies have different fiscal year starts (Apple Sep, Nvidia Jan) \u2014 call this\nbefore filtering on period_end columns.\n\nFiscal year \u2194 calendar month bidirectional conversion. Forward: ticker + fiscal_year + fiscal_quarter \u2192 period_start/period_end. Reverse: ticker + yyyy_mm \u2192 fiscal_year/fiscal_quarter.",
"execution": {
"taskSupport": "forbidden"
},
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"fiscal_quarter": {
"description": "Quarter 1-4, or 0 for full fiscal year (required for forward conversion)",
"maximum": 4,
"minimum": 0,
"type": "integer"
},
"fiscal_year": {
"description": "Fiscal year (required for forward conversion)",
"type": "integer"
},
"ticker": {
"description": "Stock ticker (e.g. AAPL, MSFT, NVDA)",
"type": "string"
},
"yyyy_mm": {
"description": "Calendar month yyyy-mm (required for reverse conversion)",
"pattern": "^\\d{4}-\\d{2}$",
"type": "string"
}
},
"required": [
"ticker"
],
"type": "object"
},
"name": "fiscal_utility"
},
{
"description": "List alternative-data tables under the given categories. Returns each table's name,\none-line purpose, and column names (call get_table_schema if you need column\ntypes/comments). Batch up to 5 categories in one call.\n\nUse this BEFORE run_sql when you want to explore alt-data \u2014 run_sql alone won't\ntell you which tables exist.\n\nAvailable categories:\n- Energy & Power \u2014 US power plants, electricity prices, regional hourly generation/demand\n- Data Centers \u2014 facilities, GPU clusters, cooling\n- Semiconductors \u2014 AI chip specs, sales, ownership, foundry revenue, customs trade\n- Compute Pricing \u2014 GPU rental, cloud VM spot/on-demand, instance specs\n- Model Development \u2014 model specs, benchmarks, AI companies, AI polling, LLM arena\n- Inference Economics \u2014 LLM API pricing across providers\n- Macro & Trade \u2014 UN Comtrade, US Census trade flows, FRED macro series\n- Prediction Markets \u2014 Polymarket and Kalshi events, markets, trades, daily aggregates\n- Critical Minerals \u2014 USGS mineral deposits, country supply, critical materials",
"execution": {
"taskSupport": "forbidden"
},
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"categories": {
"description": "Altdata category names (see tool description for the list)",
"items": {
"enum": [
"Energy & Power",
"Data Centers",
"Semiconductors",
"Compute Pricing",
"Model Development",
"Inference Economics",
"Macro & Trade",
"Prediction Markets",
"Critical Minerals"
],
"type": "string"
},
"maxItems": 5,
"minItems": 1,
"type": "array"
}
},
"required": [
"categories"
],
"type": "object"
},
"name": "list_tables"
},
{
"description": "Use when you need recent news, events, or market-moving signals for specific\ntickers or sectors. For SEC filing narrative use sec_report_search instead.\n\nRecent news + market events filtered by ticker / sector / time range. Each row\nis one signal: id, headline, summary, suggested_tickers, sector, score,\ntrigger_sources, earliest_trigger_event_time, created_at, tags. Continuously\nupdating feed.\n\nCoverage:\n- ~6,900 tickers across US + ADRs of global companies\n- Cross-asset: equities, macro, geopolitics, commodities, crypto\n- Default sort by earliest_trigger_event_time DESC\n\nParameters:\n- tickers (optional): array of tickers \u2014 returns signals\n whose suggested_tickers overlaps any of these\n- sector (optional): array of sector strings \u2014 returns signals whose sector\n overlaps any of these\n- from_date (optional): ISO 8601 timestamp; filter earliest_trigger_event_time >= from_date\n- to_date (optional): ISO 8601 timestamp; filter earliest_trigger_event_time <= to_date\n- order_by (optional, default earliest_trigger_event_time): 'created_at' | 'earliest_trigger_event_time'\n- limit (optional, default 20, max 100): max results\n- offset (optional, default 0): pagination offset",
"execution": {
"taskSupport": "forbidden"
},
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"from_date": {
"description": "ISO 8601 timestamp; filter earliest_trigger_event_time >= from_date.",
"type": "string"
},
"limit": {
"description": "Default 20, max 100.",
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"offset": {
"description": "Default 0.",
"minimum": 0,
"type": "integer"
},
"order_by": {
"description": "Sort column (always DESC). Default: earliest_trigger_event_time.",
"enum": [
"created_at",
"earliest_trigger_event_time"
],
"type": "string"
},
"sector": {
"description": "Filter by sector (array overlap match).",
"items": {
"type": "string"
},
"type": "array"
},
"tickers": {
"description": "Filter by suggested_tickers (array overlap match).",
"items": {
"type": "string"
},
"type": "array"
},
"to_date": {
"description": "ISO 8601 timestamp; filter earliest_trigger_event_time <= to_date.",
"type": "string"
}
},
"type": "object"
},
"name": "signal_list"
}
]
}
},
"url": "https://gateway.drillr.ai/mcp/data"
},
"latency_ms": 19.86,
"status": "ok"
},
"transport_compliance_probe": {
"details": {
"bad_protocol_error": null,
"bad_protocol_headers": {
"content-type": "application/json"
},
"bad_protocol_payload": {
"error": {
"code": -32000,
"message": "Bad Request: Unsupported protocol version (supported versions: 2025-11-25, 2025-06-18, 2025-03-26, 2024-11-05, 2024-10-07)"
},
"id": null,
"jsonrpc": "2.0"
},
"bad_protocol_status_code": 404,
"delete_error": null,
"delete_status_code": null,
"expired_session_error": null,
"expired_session_status_code": null,
"issues": [
"missing_session_id",
"missing_protocol_header",
"bad_protocol_not_rejected"
],
"last_event_id_visible": false,
"protocol_header_present": false,
"requested_protocol_version": "2025-03-26",
"session_id_present": false,
"transport": "streamable-http"
},
"latency_ms": 12.76,
"status": "error"
},
"utility_coverage_probe": {
"details": {
"completions": {
"advertised": false,
"live_probe": "not_executed",
"sample_target": null
},
"initialize_capability_keys": [
"tools"
],
"pagination": {
"metadata_signal": false,
"next_cursor_methods": [],
"supported": false
},
"tasks": {
"advertised": false,
"http_status": 401,
"probe_status": "auth_required"
}
},
"latency_ms": 12.3,
"status": "ok"
}
},
"failures": {
"openid_configuration": {
"error": "Client error '404 Not Found' for url 'https://gateway.drillr.ai/.well-known/openid-configuration'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404",
"url": "https://gateway.drillr.ai/.well-known/openid-configuration"
},
"transport_compliance_probe": {
"bad_protocol_error": null,
"bad_protocol_headers": {
"content-type": "application/json"
},
"bad_protocol_payload": {
"error": {
"code": -32000,
"message": "Bad Request: Unsupported protocol version (supported versions: 2025-11-25, 2025-06-18, 2025-03-26, 2024-11-05, 2024-10-07)"
},
"id": null,
"jsonrpc": "2.0"
},
"bad_protocol_status_code": 404,
"delete_error": null,
"delete_status_code": null,
"expired_session_error": null,
"expired_session_status_code": null,
"issues": [
"missing_session_id",
"missing_protocol_header",
"bad_protocol_not_rejected"
],
"last_event_id_visible": false,
"protocol_header_present": false,
"requested_protocol_version": "2025-03-26",
"session_id_present": false,
"transport": "streamable-http"
}
},
"remote_url": "https://gateway.drillr.ai/mcp/data",
"server_card_payload": {
"authentication": {
"required": true,
"schemes": [
"api_key"
]
},
"serverInfo": {
"name": "drillr-agentic",
"version": "1.0.0"
},
"tools": [
{
"description": "Ask natural-language questions about companies, tickers, sectors, SEC filings, earnings, and alternative data. Runs Drillr's research agent server-side and returns a synthesized answer with source attribution. Pass session_id to continue a prior research thread (~3\u00d7 faster on follow-ups via cache reuse) and context to inject background as ground truth.",
"name": "search"
}
]
},
"server_identifier": "ai.drillr/drillr"
}