Skip to content

Drillr — The financial MCP for AI agents

by drillr.ai · remote · no sign-in to list tools · v2.3.0 · published by ai.drillr

Financial data and research MCP for US/CN/JP equities: filings, statements, ownership, signals.

Changes · 1

10 tools: 1 change things and 9 only read.

Scanned Oct 21, 2026

1 check matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http drillr https://gateway.drillr.ai/mcp/data

Findings

Matches of fixed checks, with the text they matched.

1 warn
  • The server marks "run_sql" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The name "run_sql" says "run": a word for a change.

    What this check looks for

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

10 tools

Changes things 1Claude Code: ask
  • run_sqlPostgreSQL SELECT over financial / market / alt-data tables — returns structured rows.1 finding

    Why it is in this group

    • The name "run_sql" says "run": a word for a change.
    • The input takes a statement or command to run (input.sql), which can change anything it can reach.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "run_sql" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The name "run_sql" says "run": a word for a change.

      What this check looks for
    Description, as the server wrote it
    PostgreSQL SELECT over financial / market / alt-data tables — returns structured rows. Hard rules (query fails otherwise): - SELECT only, no CTE (`WITH ... AS`) — use subqueries. - Period columns are TEXT, not dates — `period_end` is 'YYYY-MM'. Compare as strings (`period_end >= '2024-01'`); a `::date` cast on it fails. - Filter structured tables by ticker (`WHERE ticker IN ('AAPL','MSFT')`; screening: add `ticker NOT LIKE '%-%'` to drop preferred stock). Tables by domain (get_table_schema gives columns + coverage note): - Market: price_volume_history (OHLCV history; MUST filter ticker + time_frame), index_price, equity_extended_rt (pre/after/overnight quotes) - Fundamentals: financial_statements (GAAP income/balance/cashflow), company_snapshot (ratios, per-share, growth) - Earnings: earning_call_summary, earning_call_calendar - Analyst: analyst_ratings, analyst_ratings_consensus - Ownership: insider_and_institution_activities - 8-K events: executive_change, company_deal_events, debt_issuance, securities_offering - Executives: executive_profile, executive_compensation - Alt-data: macro / industry / trade / AI-supply-chain — call list_tables(categories=[...])

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
    • destructiveHint: false
Only reads 9Claude Code: allow
  • ai_adoptionSearch concrete enterprise AI applications disclosed in US company earnings calls.No findings

    Why it is in this group

    • The description's first verb is "search": a word for reading.
    Description, as the server wrote it
    Search concrete enterprise AI applications disclosed in US company earnings calls. Filter by ticker, partially match a company name, search for an application or workflow by name, or use since in YYYY-MM-DD format to include only observations updated on or after that date. Returns a data array ordered by update_date descending. Each result contains ticker, company_name, application_name, first_report_date, update_date, summary (an AI application summary), evolution_summary, business_position, deployment_stage, deployment_scope, value_type, metrics (application-related metrics), and evidence (supporting management quotes, with speaker and section when available). Use this tool to identify where and how a company applies AI, assess deployment maturity, scope, and disclosed value, and inspect the supporting evidence. Use no filters to browse the most recently updated observations. No matches return an empty data array.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
    • destructiveHint: false
  • filing_listUse to discover which SEC filings exist for a ticker before searching content.No findings

    Why it is in this group

    • The name "filing_list" says "list": a word for reading.
    Description, as the server wrote it
    Use to discover which SEC filings exist for a ticker before searching content. For the actual content use filing_search instead. List indexed SEC filings for a given ticker with a summary header. Returns: summary (period coverage, per-type counts) + table of up to 50 filings (fiscal_year, fiscal_quarter, filing_type, filing_date, period_start, period_end). filing_types filter: omit for main reports only (US 10-K/10-Q/20-F/S-1/DEF 14A + /A amendments; JP 120/140/160; A-share annual_report / quarterly_report / q1_report; excludes ad-hoc 8-K/6-K); pass [] for all indexed types; pass explicit allowlist to override.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
    • destructiveHint: false
  • get_table_schemaColumn definitions (name, type, description) for a data table, plus its usage note where one exists: required filters, ticker format, and market coverage.No findings

    Why it is in this group

    • The name "get_table_schema" says "get": a word for reading.
    Description, as the server wrote it
    Column definitions (name, type, description) for a data table, plus its usage note where one exists: required filters, ticker format, and market coverage.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
    • destructiveHint: false
  • industry_inflectionsSearch industry inflections identified through structured research of earnings calls held by US-listed companies, including the change mechanism, impact scope, market attention and…No findings

    Why it is in this group

    • The description's first verb is "search": a word for reading.
    Description, as the server wrote it
    Search industry inflections identified through structured research of earnings calls held by US-listed companies, including the change mechanism, impact scope, market attention and affected companies. All filters are optional and combine with AND. With no filters, returns the newest first page. Results are ordered by `quarter` descending. If nothing matches, returns the text `No relevant industry inflections found.` Returns JSON as `{ "data": [...] }`. Every result contains `quarter`, `name` (English title), `regime_type` (change mechanism), `impact_scope`, `impact_degree` (`limited` | `significant` | `structural`), `attention_verdict` (market-absorption judgment), `change_summary`, `first_seen` (`YYYY-MM-DD`), and `source_tickers` (companies whose calls are primary evidence). When `impact_companies` is true, `company_impacts` contains items with `ticker`, `relation`, `direction`, `magnitude`, `impact_stage`, `evidence_status`, `affected_business`, and `impact`.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
    • destructiveHint: false
  • list_tablesList alternative-data tables under the given categories.No findings

    Why it is in this group

    • The name "list_tables" says "list": a word for reading.
    Description, as the server wrote it
    List alternative-data tables under the given categories. Returns each table's name, one-line purpose, and column names (call get_table_schema if you need column types/comments). Batch up to 5 categories in one call; omit categories, or pass ["all"], to get the category index instead. Use this BEFORE run_sql when you want to explore alt-data — run_sql alone won't tell you which tables exist. Available categories: - Energy & Power — US power plants, electricity prices, regional hourly generation/demand - Data Centers — facilities, GPU clusters, cooling - Semiconductors — AI chip specs, sales, ownership, foundry revenue, customs trade - Compute Pricing — GPU rental, cloud VM spot/on-demand, instance specs - Model Development — model specs, benchmarks, AI companies, AI polling, LLM arena - Inference Economics — LLM API pricing across providers - Macro & Trade — UN Comtrade, US Census trade flows, FRED macro series - Prediction Markets — Polymarket and Kalshi events, markets, trades, daily aggregates - Critical Minerals — USGS mineral deposits, country supply, critical materials

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
    • destructiveHint: false
  • ticker_lookupResolve a company name, brand, or ticker substring to canonical ticker(s).No findings

    Why it is in this group

    • The name "ticker_lookup" says "lookup": a word for reading.
    Description, as the server wrote it
    Resolve a company name, brand, or ticker substring to canonical ticker(s). Input: - query (required): company name, brand, or ticker substring, e.g. "Apple", "AAPL", "OpenAI" - market (optional): "us" | "jp" | "cn" — omit to search all markets Returns up to 5 matches ranked by prefix-hit first, then name length; symbols carry their market suffix.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
    • destructiveHint: false

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 2.3.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http drillr https://gateway.drillr.ai/mcp/data

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__drillr__filing_list",
      "mcp__drillr__filing_search",
      "mcp__drillr__company_search",
      "mcp__drillr__ticker_lookup",
      "mcp__drillr__get_table_schema",
      "mcp__drillr__list_tables",
      "mcp__drillr__news_search",
      "mcp__drillr__industry_inflections",
      "mcp__drillr__ai_adoption"
    ],
    "ask": [
      "mcp__drillr__run_sql"
    ],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as drillr. Review it before you use it.