mcp server
Drillr — The financial MCP for AI agents
The financial MCP for AI agents - 90+ financial tables, SEC filings, signals, alt-data.
Description as published by the maintainer. Source
- version 2.1.0
- active
active — Most recent push to the repository was 2026-07-23.
What this server can do
9 functions, named and described by the server itself. Parameter names are shown because they say more about what a function does than its name usually does.
company_search(query, market)- Use for qualitative company discovery (industry, business model, supply chain, competitors, management background). For numerical screening (revenue, margins, ratios, growth rates) use run_sql on company_snapshot instead. Drillr's company knowledge base — searchable across industry classification, product offerings, business model, segment structure, competitive landscape, supply chain, management background, and customer profile. Coverage: US, Japan, Hong Kong, China A-shares, and Korea. `market` accepts one lowercase value or a list from `us | jp | hk | cn | kr`; omit it or pass `[]` for all five. List order does not set priority. Pass a natural-language description (for example, "Hong Kong and China EV battery suppliers"). Returns a structured list of matching companies with context snippets. ONLY for finding a LIST of companies by description. Required: query.
fiscal_utility(ticker, yyyy_mm, fiscal_year, fiscal_quarter)- Use to convert between fiscal year/quarter and calendar months for a ticker before filtering period_end columns. Coverage warning: fiscal-year configuration is primarily US, with sparse JP/HK entries and no China A-share coverage in the verified dataset. Do not assume this tool supports a ticker merely because the core equity tables do. Forward: ticker + fiscal_year + fiscal_quarter → period_start/period_end. Reverse: ticker + yyyy_mm → fiscal_year/fiscal_quarter. Required: ticker.
get_table_schema(table_name)- Use BEFORE run_sql when you're unsure which columns a table has. Look up column definitions (name, type, description) for a data table. Required: table_name.
list_tables(categories)- 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
news_search(query, since, theme, top_k, until, ticker, order_by, search_type)- Use for any news, event, development, or statement question about a company, theme, or the market. Covers US, Japan, Hong Kong and A-share markets; The `ticker` filter takes exchange-suffixed symbols: US bare (AAPL), Japan `.T` (7203.T), Hong Kong `.HK` (00700.HK), A-share `.SH`/`.SZ` (600519.SH). Returns Markdown: a `## Stories` numbered list (each storyline once), then flat `## Events` and `## Claims` tables (claims = attributed statements: analyst actions, corporate guidance, central-bank remarks). The Events `story` column refers back to the Stories number. `sources` counts corroborating reports; `first_reported`/`last_reported` give the reporting span. Lowest-ranked stories are dropped to fit length; the meta line flags how many were omitted. At least one of query/theme/ticker/since/until is required. Per-parameter detail is on the input schema — search_type=claims needs query/ticker/a time window, not theme.
run_sql(sql)- 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). Core equity coverage: US, Japan, Hong Kong, China A-shares, and Korea. Tickers are US bare (AAPL), Japan `.T` (6758.T), Hong Kong `.HK` (00700.HK), A-shares `.SH`/`.SZ` (600519.SH), and Korea `.KS`/`.KQ` (005930.KS). financial_statements, company_snapshot, and price_volume_history span all five. Specialized tables may be narrower — call get_table_schema before treating an empty result as a finding. Tables by domain (call get_table_schema for detail): - 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=[...]) Required: sql.
sec_report_list(ticker, filing_types)- Use to discover which SEC filings exist for a ticker before searching content. For the actual content use sec_report_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; HK/A-share annual_report / quarterly_report / q1_report; KR A001/A002/A003 + C001/C005; excludes ad-hoc 8-K/6-K); pass [] for all indexed types; pass explicit allowlist to override. Required: ticker.
sec_report_search(query, top_k, ticker, period_end, filing_types, period_start)- Use when you need narrative content from company filings — risk factors, MD&A, guidance language, deal terms, accounting policies, share structure. For consolidated financial numbers use run_sql on financial_statements instead. Semantic search over the full text of company-filed reports; returns matching passages. Coverage: US + Japan + Hong Kong + China A-shares + Korea. US = SEC EDGAR (including foreign issuers' 20-F/6-K). Japan = EDINET, `.T` ticker (6758.T). Hong Kong = HKEX filings, 5-digit `.HK` ticker (00700.HK). A-shares = `.SH`/`.SZ` (600519.SH). Korea = DART filings, `.KS`/`.KQ` (005930.KS); filings are Korean — query in Korean. Parameters: - query (required): natural-language search; phrase it as the concept or section name you want, e.g. "share repurchase authorization", "Risk Factors". Run a few phrasings rather than one broad query. - ticker (required): US bare (NVDA), Japan `.T`, HK `.HK`, A-share `.SH`/`.SZ`, Korea `.KS`/`.KQ`, ADRs as their US symbol (SONY). - filing_types (optional): US = SEC form names (10-K, 10-Q, 8-K, 20-F, 6-K, DEF 14A, S-1/F-1, + amendments). Japan = EDINET NUMERIC codes: 120 (annual), 140 (quarterly), 160 (semi-annual). HK/A-share = plain names — annual_report; A-share quarters per-quarter (q1_report, ...); HK quarterly results all quarterly_report. Korea = DART codes: A001 (annual), A002 (semi-annual), A003 (quarterly), C001/C005 (registration/prospectus). OMIT to search all types. - period_start / period_end (optional): yyyy-mm window; omit to search all history. - top_k (optional): max passages to return (default 10). Scope: indexes ONLY company-filed reports — NOT institutional filings (13F-HR/13D/13G; for those use insider_and_institution_activities with source='institution'). Section targets: non-GAAP reconciliations → earnings 8-K (Ex 99.1); dilution / SBC / buyback → "Shareholders' Equity"; segment breakdown → "Segment Information"; guidance → "Outlook" in MD&A; exec comp → DEF 14A. Required: ticker, query.
ticker_lookup(query, market)- Resolve a company name, brand, or ticker substring to canonical ticker(s). Use this FIRST when the user mentions a company by name/brand/nickname before running any ticker-keyed tool. Input: - query (required): company name, brand, or ticker substring, e.g. "Apple", "苹果", "AAPL", "OpenAI" - market (optional): "us" | "jp" | "hk" | "cn" | "kr" — omit to search all markets Returns up to 5 matches ranked by prefix-hit first, then name length. Returned symbols carry their market suffix: US bare (AAPL), Japan `.T`, Hong Kong 5-digit `.HK` (00700.HK), A-share `.SH`/`.SZ` (600519.SH), Korea `.KS`/`.KQ` (005930.KS). Required: query.
Last successful function declaration observed on . Source: https://gateway.drillr.ai/mcp/data. We list what the server declared; we do not call any of these functions.
Endpoint status observed on . Source: https://gateway.drillr.ai/mcp/data.
Signals
These are separate measurements of different things. They are deliberately not combined into one score, because a popularity number that mixes website traffic with saves and stars cannot be checked or acted on.
| Signal | Value | What it measures | Window | Observed | Source |
|---|---|---|---|---|---|
| GitHub stars | 6 | Number of GitHub accounts that bookmarked this repository since it was created. It is a bookmark count, not installs, not active users and not quality. | cumulative, all time | GitHub | |
| Last commit | 2026-07-23 | Date of the most recent push to any branch. This is the strongest cheap indicator of whether the project is still maintained. | point in time | GitHub | |
| Open issues | 0 | Open issues plus open pull requests, as GitHub counts them together. A high number can mean an active project or an abandoned one. | as of fetch | GitHub | |
| Latest published version | 2.1.0 | Latest version string the maintainer published to the registry. | as of fetch | Model Context Protocol | |
| Registry record last updated | 2026-06-04 | When the registry record was last updated by its maintainer. | point in time | Model Context Protocol | |
| License | MIT | Licence GitHub detected in the repository. Detection can be wrong; the LICENSE file is authoritative. | as of fetch | GitHub | |
| First listed in the MCP Registry | 2026-06-04 | Date this server was first published to the official MCP Registry. Not a usage or quality measure. | point in time | Model Context Protocol | |
| repository status | active | The repository exists on GitHub and is not archived. This says nothing about how recently it was worked on. | as of fetch | GitHub | |
| mcp tools declared | 9 tools | Number of functions the server itself declared when asked to list them. This is what the server offers an agent, not a measure of how well any of them work. | as of probe | gateway.drillr.ai | |
| mcp endpoint status | ok | The server listed 9 functions when asked. | as of probe | gateway.drillr.ai |
Where to get it
This record as data
Every field on this page, with its source and observation date, is in the catalog JSON. Fetch the whole kind at once instead of parsing this HTML.
GET /api/v1/entries/mcp_server.json