Skip to main content
Glama

Drillr — The financial MCP for AI agents

Server Details

The financial MCP for AI agents - 90+ financial tables, SEC filings, signals, alt-data.

If you are the author of this connector, you can claim ownership with GitHub, an HTTP challenge, or a DNS record. Claimed connector authors can inspect health checks, view analytics, and manage their listing.

Claim Drillr — The financial MCP for AI agents

Claiming proves that you control this connector and unlocks listing details, thumbnails, health checks, and analytics. It does not change or interrupt the running server.

Complete one method below. Compare the methods and read troubleshooting steps.

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL
Repository
Little-Grebe-Inc/drillr-mcp-server
GitHub Stars
6
Server Listing
drillr-mcp-server

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 4.7/5 across 9 of 9 tools scored. Lowest: 4.1/5.

Server CoherenceA
Disambiguation5/5

Each tool has a clearly distinct purpose: company_search is qualitative discovery, run_sql is quantitative querying, news_search covers news, sec_report_list/search handle filings, ticker_lookup resolves identifiers, and list_tables/get_table_schema/fiscal_utility support exploration. Cross-references between tools (e.g., company_search explicitly defers to run_sql) prevent confusion.

Naming Consistency4/5

Most tools follow a predictable noun_verb or noun_noun pattern (company_search, news_search, ticker_lookup, run_sql, list_tables, get_table_schema). sec_report_list and sec_report_search are clearly related with descriptive suffixes. Minor deviation: fiscal_utility is vaguer than its siblings, but the pattern is otherwise consistent.

Tool Count5/5

9 tools is right-sized for a financial data platform — enough for comprehensive coverage (search, query, schema, news, filings) without redundancy. Each tool serves a distinct purpose and the count fits the domain well.

Completeness5/5

The tool set forms a coherent workflow: ticker_lookup → company_search/run_sql for fundamentals, news_search for events, sec_report_list/search for filings, and list_tables/get_table_schema for schema discovery. The only minor gap is the absence of a direct 'company profiles' tool separate from company_search, but run_sql covers quantitative needs adequately. The surface is complete for a read-only financial analysis MCP.

Available Tools

8 tools
get_table_schemaA
Read-only
Inspect

Use BEFORE run_sql when you're unsure which columns a table has.

Look up column definitions (name, type, description) for a data table.

ParametersJSON Schema
NameRequiredDescriptionDefault
table_nameYes
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds useful context by clarifying the output content (column definitions with name, type, description) and its role as a prerequisite to run_sql. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short, front-loaded sentences with no filler. The usage recommendation comes first, followed by a precise statement of what the tool returns.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only schema lookup with one parameter and a complete enum of tables, the description adequately covers return fields and timing. It could mention error or edge-case behavior, but those are not essential given the tool's simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description needed to compensate, but it only vaguely refers to 'a data table.' The enum in the schema lists the valid table names, but the description adds little meaning beyond what the parameter name already implies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Look up') with a clear resource ('column definitions') and even states what is returned ('name, type, description'). The 'Use BEFORE run_sql' clause helps distinguish this tool from the primary query sibling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly says when to use the tool ('BEFORE run_sql' when unsure which columns a table has) and names run_sql as the alternative. It does not fully discuss when not to use it or contrast it with list_tables, but the guidance is clear and actionable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_tablesA
Read-only
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
categoriesNoAltdata category names (see tool description for the list). Omit, or pass "all", for the category index.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false. Description adds batching limit (up to 5 categories), behavior when omitted or 'all', and what is returned (name, purpose, column names). No contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well-structured with purpose first, then details, usage guidance, and categories. Slightly long but every sentence serves a purpose. Could be slightly more concise but effective.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema, but description covers what is returned (name, purpose, column names) and directs to get_table_schema for types. Includes batching and categories. Complete for a listing tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with enum list and description. Description reinforces the categories list and adds batching instructions and behavior when omitted. Adds value beyond schema, so slightly above baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states 'List alternative-data tables under the given categories' with specific verb and resource. Distinguishes from siblings like get_table_schema and run_sql by explaining what each returns and when to use them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says 'Use this BEFORE run_sql when you want to explore alt-data' and mentions get_table_schema for more details. Provides clear when-to-use and alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_sqlA
Read-only
Inspect

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=[...])

ParametersJSON Schema
NameRequiredDescriptionDefault
sqlYesPostgreSQL SELECT query
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses key behaviors beyond the annotations: SELECT-only restriction, no CTE support, period column type constraints (TEXT, not date, with specific comparison syntax), and ticker filtering requirements. It aligns with readOnlyHint=true and destructiveHint=false, and adds the nuance that empty results may not be findings without schema verification.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but well-structured with clear sections: hard rules, coverage, tables by domain. It front-loads the most critical constraints (hard rules) before listing tables. Each section earns its place; the table listing is verbose but necessary for a query tool with heterogeneous tables. Slightly excessive length for a description, but effective organization prevents wasted space.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is thorough for a tool with one parameter and no output schema: it explains coverage (US, Japan, HK, China, Korea), table categories, and query constraints. It references sibling tools (get_table_schema, list_tables) to fill gaps. However, it lacks details on return format (e.g., row limits, pagination, error handling for invalid SQL), which would be useful for a raw SQL tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema covers the 'sql' parameter 100% with a description 'PostgreSQL SELECT query'. The description adds value by providing example query patterns (ticker IN ('AAPL','MSFT'), ticker NOT LIKE '%-%' for screening) and table-specific usage notes, which are not in the schema. However, since the schema already adequately describes the parameter, the baseline is 3, with the description's examples lifting it to 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description specifies 'PostgreSQL SELECT over financial / market / alt-data tables — returns structured rows', giving a clear verb (SELECT), resource (PostgreSQL tables), and scope (financial/market/alt-data). It distinguishes itself from sibling tools like get_table_schema, list_tables, and search tools by explicitly focusing on direct SQL querying over the database tables.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit when-to-use guidance: it tells the agent to call get_table_schema before treating empty results as findings, lists tables by domain, and specifies hard rules for query construction (e.g., no CTEs, period columns as TEXT, filter by ticker). This clearly signals when to use this tool versus alternatives like list_tables or get_table_schema.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sec_report_listA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYesStock ticker, e.g. NVDA, 6758.T, 00700.HK, 600519.SH
filing_typesNoFilter 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 — use values from the `filing_type` column of a prior unfiltered call.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses return structure (summary + up to 50 filings with fields), the default filtering behavior, and what types are included/excluded. This goes well beyond the annotations (readOnlyHint true, destructiveHint false) and provides meaningful context about operational behavior and output limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured: purpose first, then return format, then filter semantics. It is slightly lengthy, but every sentence carries necessary information—no fluff or redundancy. The clear bullet-like layout of returned fields and filter options improves scannability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given there is no output schema, the description fully compensates by listing the exact fields returned and the summary content. It covers purpose, usage, output, and filter semantics, making it complete for an agent to select and invoke the tool correctly in most cases.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, but the description adds significant semantics beyond the schema: it explains the default filing_types behavior, how to override with [], and the explicit allowlist option. It also specifies ticker examples in the schema, and the description reinforces the role of the ticker parameter in context.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: 'List indexed SEC filings for a given ticker with a summary header.' It uses a specific verb ('List') and identifies the resource (SEC filings for a ticker), and explicitly distinguishes it from the sibling tool sec_report_search ('For the actual content use sec_report_search instead').

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides explicit guidance on when to use this tool ('before searching content') and names the alternative for content search. It also explains the filing_types filter behavior with clear options (omit, [], explicit allowlist), which is practical usage guidance beyond simple when-to-use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ticker_lookupA
Read-only
Inspect

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesCompany name or ticker substring (case-insensitive). Matches historical names + tickers too.
marketNoOptional market filter: 'us' | 'jp' | 'hk' | 'cn' | 'kr'. Omit to search all markets.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds significant behavioral details beyond the annotations: ranking logic ('prefix-hit first, then name length'), result limit ('up to 5 matches'), and market suffix formatting (e.g., Japan `.T`, Hong Kong 00700.HK). This goes beyond the readOnlyHint/destructiveHint annotations to explain real output behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured: a one-sentence purpose, a concise input breakdown, and an output explanation. Every sentence adds necessary information—no filler, no repetition of schema details. It is front-loaded with the most important instruction ('Use this FIRST') and remains compact.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool is a simple lookup with no output schema, the description covers all essential aspects: what it accepts, what it returns, ranking behavior, and output format. It even explains market suffixes which is crucial for interpreting results. The description is complete for an agent to use the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already documents both parameters fully (100% coverage), including examples and market enum. The description adds value with concrete examples (e.g., 'Apple', '苹果', 'OpenAI') and clarifies that the market parameter can be omitted for global search. Since the schema carries most of the semantic weight, the description's extra examples and emphasis on the search scope earn a 4, not a 5.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb 'Resolve' with a clear resource ('company name, brand, or ticker substring to canonical ticker(s)'). It distinguishes itself from siblings by stating it is the first step before ticker-keyed tools, and it defines the scope of the query (company name/brand/nickname), making its purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use the tool: 'Use this FIRST when the user mentions a company by name/brand/nickname before running any ticker-keyed tool.' This also implies when not to use it (when you already have a canonical ticker), and names the alternative category (ticker-keyed tools). This is clear, actionable guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Wall Street data feed for AI agents, providing access to 100M+ source-traced SEC records, institutional holdings, insider trades, congress trading, and more via MCP tools.
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Provides live financial data for any LLM agent, including stock quotes, crypto prices, SEC filings, XBRL financials, FX rates, and macro indicators, through ten MCP tools.
    11
    490
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides 10 financial data tools (market data, economic indicators, news, insider trades, and calendars) via a single MCP layer, enabling any MCP-compatible LLM to access diverse financial data through a unified interface.
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Provides AI agents with clean, normalized access to financial data including company fundamentals, insider trades, SEC filings, macro series from FRED, real-time quotes, and ETF holdings.
    MIT

View all MCP Servers

Try in Browser

Your Connectors

Sign in to create a connector for this server.