Skip to main content
Glama

Drillr — The financial MCP for AI agents

Server Details

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

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.
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
Little-Grebe-Inc/drillr-mcp-server
GitHub Stars
8
Server Listing
drillr-mcp-server

TDQS

A4.2/5.0

Scored across 10 tools

Disambiguation4/5

Most tools have clearly distinct purposes (e.g., filing_list vs filing_search, list_tables vs get_table_schema). However, ai_adoption and industry_inflections both analyze earnings-call-derived insights, and company_search vs ticker_lookup could be confused for company discovery, though descriptions clarify the distinction.

Naming Consistency4/5

Tool names mostly follow a clear noun/verb pattern: run_sql, list_tables, get_table_schema, filing_list, filing_search, company_search, ticker_lookup. Minor deviations: ai_adoption and industry_inflections are noun phrases rather than verb_noun, but the pattern is still readable and predictable.

Tool Count5/5

10 tools is well-scoped for a financial data platform covering company discovery, filings, news, alt-data, and SQL access. Each tool covers a distinct data access pattern without feeling bloated.

Completeness4/5

The surface covers company search, filings, news, alt-data exploration, and SQL querying—a solid lifecycle for financial research. Minor gaps: no direct tool for downloading raw filing documents or exporting data, and ai_adoption/industry_inflections are specialized but not exhaustive for all alt-data categories.

Available Tools

10 tools
ai_adoptionA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoOne-based page number. Default 1.
limitNoResults per page. Default 10, max 10.
sinceNoOnly return observations with update_date on or after this date. Use YYYY-MM-DD.
tickerNoOptional US ticker filter, up to 10 symbols. Accepts one symbol or a list. Company names are not resolved.
company_nameNoCase-insensitive partial company-name match. Empty means no filter.
application_nameNoCase-insensitive partial application-name match. Empty means no filter.

TDQS

A4/5.0
Behavior4/5

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

Annotations already mark this as read-only and non-destructive, so the description adds value by stating the result ordering (update_date descending) and the empty-array behavior on no matches. It also details the fields returned, giving agents a clear picture of the output.

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

Conciseness3/5

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

The description is front-loaded with the main action and filter options, but it is long and lists all output fields, which could be trimmed if an output schema were present. It is still organized and each sentence earns its place, though it is not highly concise.

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 tool with six parameters and no output schema, the description covers the filters, output structure, and ordering. It also explains the default browse mode and empty results. It is complete enough for an agent to call it correctly, though pagination behavior is left to the schema.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already documents each parameter. The description adds minor usage hints like the date format for 'since' and partial matching semantics, but does not add significant meaning beyond the schema. Baseline 3 is appropriate.

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 opens with a clear verb and resource: 'Search concrete enterprise AI applications disclosed in US company earnings calls.' It specifies the domain and distinguishes it from sibling search tools by focusing on AI adoption data. The list of output fields further clarifies what the tool returns.

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?

The description states the intended use cases: 'identify where and how a company applies AI, assess deployment maturity, scope, and disclosed value, and inspect the supporting evidence.' It also gives a default behavior for no filters: 'Use no filters to browse the most recently updated observations.' It does not name alternatives, but the context is clear.

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

filing_listA
Read-only
Inspect

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.

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.

TDQS

A4.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is clear. The description adds valuable behavioral context beyond annotations: it explains the default behavior of the 'filing_types' filter (omit for main reports only, excludes ad-hoc), and describes the exact return structure (summary + table up to 50 filings). It also mentions the need to pass [] for all indexed types or an allowlist. It doesn't mention pagination limits beyond 50, but that is explicit in the return. Strong supplemental context.

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: it starts with the primary purpose, then the alternative, then the behavior, and ends with filter details. It is dense but every sentence earns its place. The formatting with line breaks for returns and filter details improves readability. It is concise given the complexity it covers.

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's moderate complexity (2 params, no output schema), the description is complete for effective invocation. It doesn't need to explain return values because it explicitly lists the summary fields and table columns. It covers the nuanced filing_types behavior thoroughly, which is the main source of confusion. Annotations cover mutability. No gaps that would prevent correct use.

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 description coverage is 100%, so baseline 3. However, the description adds significant meaning beyond the schema: it explains the default behavior of filing_types in detail (what types are included/excluded) and instructs to pass [] for all indexed types or an explicit allowlist. It also clarifies the purpose of the return values (summary + table). This goes beyond the schema's straightforward parameter descriptions, enriching the agent's understanding of how to use the filter.

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 is very specific about its purpose: discovering which SEC filings exist for a ticker before searching content. It clearly states the resource (SEC filings for a ticker) and the action (list). Sibling differentiation is excellent: it explicitly contrasts with 'filing_search' for content, and other siblings like 'list_tables' or 'run_sql' are clearly different. The summary header and return table are described.

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 provides explicit guidance on when to use this tool: 'to discover which SEC filings exist... before searching content'. It also explicitly states when to use the alternative: 'For the actual content use filing_search instead.' This is a clear when/when-not with named alternative. No further exclusions needed.

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

get_table_schemaA
Read-only
Inspect

Column definitions (name, type, description) for a data table, plus its usage note where one exists: required filters, ticker format, and market coverage.

ParametersJSON Schema
NameRequiredDescriptionDefault
table_nameYes

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already cover read-only and non-destructive behavior. The description adds useful context by clarifying that the output is metadata (column definitions) rather than table data, and that a usage note with required filters, ticker format, and market coverage may be included where one exists.

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 a single, front-loaded sentence that states the core return value first and the optional usage-note detail second. There is no filler, redundancy, or repeated schema information.

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?

For a simple one-parameter, read-only metadata tool with no output schema, the description explains the return value sufficiently: column names, types, descriptions, and optional usage notes. The enum schema covers valid inputs, so nothing critical is missing for correct invocation.

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

Parameters3/5

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

The single parameter table_name is self-explanatory and the enum exhaustively enumerates valid table names, so the agent can invoke the tool correctly despite 0% schema description coverage. However, the description itself adds little semantic detail about the parameter beyond referring to 'a data table'.

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 that the tool returns column definitions (name, type, description) for a data table, plus an optional usage note. It names a specific resource and output, and the behavior is distinct from siblings like list_tables or run_sql.

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

Usage Guidelines3/5

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

The description implies it is the tool for inspecting table metadata, but it never explicitly states when to use it instead of alternatives like list_tables or run_sql. The usage context is inferable from context but not made explicit.

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

industry_inflectionsA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoOne-based page number. Default 1.
limitNoResults per page. Default 10, max 10.
tickerNoOptional company filter, up to 10 US ticker symbols. Returns themes where any supplied ticker is a source company or an affected company. Use symbols such as AAPL, not company names.
keywordNoOptional case-insensitive text contained in the theme name or research summary, up to 200 characters.
impact_companiesNoInclude the per-company company_impacts list. Default false.

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and non-destructive, so the description doesn't need to emphasize safety. It adds value by disclosing the response format, ordering, and no-match message. However, it doesn't mention any rate limits or potential performance implications, which could be relevant given the pagination limit of 10. Overall, it adds context beyond annotations but not exhaustive.

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 well-organized, starting with the main purpose, then filter behavior, then return format details. It's a bit verbose but each sentence serves a purpose: clarifying defaults, ordering, no-match text, and result structure. Could be slightly tightened, but it's structured and front-loaded with the key functionality.

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?

Given the tool's moderate complexity (5 optional parameters, no output schema, and structured output), the description covers essential aspects: filter semantics, ordering, default behavior, no-match response, and detailed return fields. It lacks explanations for some return fields (e.g., impact_scope, attention_verdict) but provides enough for an agent to call it correctly. Sibling differentiation is implied but not explicit.

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

Parameters3/5

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

Schema description coverage is 100% — each parameter has a description that explains its purpose (e.g., ticker filter, keyword, impact_companies). The tool description adds context on how filters combine (AND) and the default pagination, which the schema doesn't state. But the schema already covers parameter meaning well, so the description adds marginal value.

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 identifies the tool as searching for 'industry inflections' identified from earnings calls, specifying the resource and its key attributes. It distinguishes this from siblings like 'company_search' or 'news_search' by focusing on structured research of earnings calls and the specific data fields returned.

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 states that all filters are optional and combine with AND, the default behavior (newest first page), and the exact ordering. It also describes the no-match return value, which guides agents on what to expect. This is sufficient guidance for when to use this tool versus alternatives, as it's a specialized search tool.

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.

TDQS

A4.8/5.0
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).

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

ParametersJSON Schema
NameRequiredDescriptionDefault
sqlYesPostgreSQL SELECT query

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already indicate readOnlyHint=true and destructiveHint=false, and the description reinforces this with 'SELECT only' and 'query fails otherwise' for rule violations. It discloses critical behavioral traits: period columns are TEXT and must be compared as strings, CTEs are disallowed, and certain tables require mandatory filters. This goes well beyond the annotations by explaining the data model quirks and failure conditions, giving the agent a thorough understanding of how the tool behaves.

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-organized into logical sections: purpose, hard rules, and table categories. It front-loads the core purpose and then dives into necessary details. Every sentence serves a purpose—either clarifying rules or listing tables—so there's minimal redundancy. While it's verbose, the complexity of the tool justifies the length, and the structure aids comprehension. It could be slightly more concise, but it's still efficient for the information conveyed.

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?

For a tool with this level of complexity (multiple table domains, strict query rules), the description is remarkably complete. It covers the key constraints, table inventory, and references to companion tools (get_table_schema, list_tables) for deeper schema exploration. The return type is mentioned ('structured rows'). The only thing not covered is the exact schema of each table, but that's delegated to get_table_schema, so the description does its job without overreaching.

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?

There is only one parameter (sql) with a minimal schema description ('PostgreSQL SELECT query'). The tool description vastly enriches this by explaining the expected query format, constraints, and examples (e.g., WHERE ticker IN ('AAPL','MSFT')). It also lists the tables and hints on filtering, effectively teaching the agent how to construct valid queries. This far exceeds the schema's minimal documentation, making parameter semantics exceptionally clear.

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 opens with a precise statement: 'PostgreSQL SELECT over financial / market / alt-data tables — returns structured rows.' It names a specific verb (run) and resource (SQL query over financial tables), and clearly distinguishes itself from sibling tools like company_search and news_search by focusing on structured SQL access. The mention of returning structured rows further clarifies the output, leaving no ambiguity about what the tool does.

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?

The description provides explicit usage context: it's for SELECT queries on structured tables, with hard rules and a detailed table listing by domain. It also references get_table_schema and list_tables for additional schema and category info, effectively guiding the agent on how to proceed. While it doesn't explicitly state 'use this instead of X' for each sibling, the scope is clear, and the guidance on filtering by ticker and time_frame is actionable. The only minor gap is the absence of explicit 'when not to use' statements for alternative tools, but the domain-specific focus makes the usage obvious.

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

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.

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

TDQS

A3.9/5.0
Behavior5/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds valuable behavioral detail: it discloses the ranking logic (prefix-hit first, then name length), the result cap (up to 5 matches), and the fact that symbols carry a market suffix. This goes beyond what annotations provide, giving the agent clear expectations of how results are ordered and limited.

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 well-organized with an opening purpose statement followed by a clear 'Input' section and a note on output. It is concise and front-loaded, making it easy to scan. However, the market value list is redundant and partially incorrect, which is a structural flaw that detracts from its efficiency.

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

Completeness3/5

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

The description covers the input parameters, the result limit, and ranking logic, but it omits behavior for no-match cases (e.g., what happens if no ticker matches) and does not mention that historical names are also matched (which the schema notes). Given the tool's simplicity and the absence of an output schema, this leaves minor but relevant gaps that could affect correct usage.

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?

The description adds useful examples for 'query' and clarifies the expected input format, but it introduces a serious inconsistency: it lists market values as 'us' | 'jp' | 'cn' while the schema enum includes five values ('us', 'jp', 'hk', 'cn', 'kr'). This misleading subset could cause an agent to omit valid market filters or mistakenly believe other markets are unsupported. Since schema coverage is 100%, the description should align exactly with the schema, and this discrepancy actively harms parameter understanding.

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 states a clear, specific action: resolving a company name, brand, or ticker substring to canonical ticker(s). It names the resource (tickers) and the operation (resolve), and the examples make the intent unambiguous. While it does not explicitly differentiate from the sibling 'company_search', the purpose is self-contained and obvious.

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

Usage Guidelines3/5

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

The description implies its use case (converting names/brands to tickers) but provides no explicit guidance on when to prefer this tool over alternatives like 'company_search' or 'news_search'. It does not mention exclusions or alternative tools, leaving the agent to infer the appropriate selection from the purpose alone.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool update
    • Changednews_search1 field changed
      • changedInput schema / properties / ticker / description
        Previous value: -"Exact ticker symbol(s) — a single symbol, an array, or a comma-separated string; multiple tickers are an OR/overlap filter. US symbols bare (AAPL); other markets carry their exchange suffix — 7203.T, 00700.HK, 600519.SH. Company names/brands are NOT resolved here; resolve a name via ticker_lookup/company_search first."New value: +"Exact ticker symbol(s) — a single symbol, an array, or a comma-separated string; multiple tickers are an OR/overlap filter. Exchange-suffixed (AAPL, 7203.T, 600519.SH). Company names/brands are NOT resolved here."
  2. 7 tool updates
    • Addedai_adoption
    • Addedfiling_list
    • Addedfiling_search
    • Addedindustry_inflections
    • Removedsec_report_list
    • Removedsec_report_search
    • Changedticker_lookup1 field changed
      • changedInput schema / properties / market / description
        Previous value: -"Optional market filter: 'us' | 'jp' | 'hk' | 'cn' | 'kr'. Omit to search all markets."New value: +"Optional market filter: 'us' | 'jp' | 'cn'. Omit to search all markets."
  3. 1 tool update
    • Removedfiscal_utility
  4. 1 tool update
    • Removedsearch_data_catalog
  5. 1 tool update
    • Addedsearch_data_catalog
  6. 1 tool update
    • Removedsearch_data_catalog
  7. 1 tool update
    • Addedsearch_data_catalog
  8. 2 tool updates
    • Changedcompany_search2 fields changed
      • changedInput schema / properties / market / anyOf
        Previous value: -[
        -  {
        -    "enum": [
        -      "us",
        -      "jp",
        -      "hk",
        -      "cn"
        -    ],
        -    "type": "string"
        -  },
        -  {
        -    "items": {
        -      "$ref": "#/properties/market/anyOf/0"
        -    },
        -    "maxItems": 4,
        -    "type": "array"
        -  }
        -]New value: +[
        +  {
        +    "enum": [
        +      "us",
        +      "jp",
        +      "hk",
        +      "cn",
        +      "kr"
        +    ],
        +    "type": "string"
        +  },
        +  {
        +    "items": {
        +      "$ref": "#/properties/market/anyOf/0"
        +    },
        +    "maxItems": 5,
        +    "type": "array"
        +  }
        +]
      • changedInput schema / properties / market / description
        Previous value: -"Optional market filter. Pass one lowercase value or a list from 'us' | 'jp' | 'hk' | 'cn'. Omit or pass [] for all four; list order does not set priority."New value: +"Optional market filter. Pass one lowercase value or a list from 'us' | 'jp' | 'hk' | 'cn' | 'kr'. Omit or pass [] for all five; list order does not set priority."
    • Changedticker_lookup2 fields changed
      • changedInput schema / properties / market / description
        Previous value: -"Optional market filter: 'us' | 'jp' | 'hk' | 'cn'. Omit to search all markets."New value: +"Optional market filter: 'us' | 'jp' | 'hk' | 'cn' | 'kr'. Omit to search all markets."
      • changedInput schema / properties / market / enum
        Previous value: -[
        -  "us",
        -  "jp",
        -  "hk",
        -  "cn"
        -]New value: +[
        +  "us",
        +  "jp",
        +  "hk",
        +  "cn",
        +  "kr"
        +]
  9. 1 tool update
    • Changedlist_tables4 fields changed
      • changedInput schema / properties / categories / description
        Previous value: -"Altdata category names (see tool description for the list)"New value: +"Altdata category names (see tool description for the list). Omit, or pass \"all\", for the category index."
      • changedInput schema / properties / categories / items / enum
        Previous value: -[
        -  "Energy & Power",
        -  "Data Centers",
        -  "Semiconductors",
        -  "Compute Pricing",
        -  "Model Development",
        -  "Inference Economics",
        -  "Macro & Trade",
        -  "Prediction Markets",
        -  "Critical Minerals"
        -]New value: +[
        +  "Energy & Power",
        +  "Data Centers",
        +  "Semiconductors",
        +  "Compute Pricing",
        +  "Model Development",
        +  "Inference Economics",
        +  "Macro & Trade",
        +  "Prediction Markets",
        +  "Critical Minerals",
        +  "all"
        +]
      • removedInput schema / properties / categories / minItems
        Removed value: -1
      • removedInput schema / required
        Removed value: -[
        -  "categories"
        -]
  10. 2 tool updates
    • Changedcompany_search6 fields changed
      • addedInput schema / properties / market / anyOf
        Added value: +[
        +  {
        +    "enum": [
        +      "us",
        +      "jp",
        +      "hk",
        +      "cn"
        +    ],
        +    "type": "string"
        +  },
        +  {
        +    "items": {
        +      "$ref": "#/properties/market/anyOf/0"
        +    },
        +    "maxItems": 4,
        +    "type": "array"
        +  }
        +]
      • changedInput schema / properties / market / description
        Previous value: -"Optional market filter: 'us' | 'jp' — the knowledge base covers US + Japan companies only. Omit to search both."New value: +"Optional market filter. Pass one lowercase value or a list from 'us' | 'jp' | 'hk' | 'cn'. Omit or pass [] for all four; list order does not set priority."
      • removedInput schema / properties / market / enum
        Removed value: -[
        -  "us",
        -  "jp"
        -]
      • removedInput schema / properties / market / type
        Removed value: -"string"
      • changedInput schema / properties / query / description
        Previous value: -"natural language query"New value: +"Natural-language company description"
      • addedInput schema / properties / query / minLength
        Added value: +1
    • Changedfiscal_utility1 field changed
      • changedInput schema / properties / ticker / description
        Previous value: -"Stock ticker (e.g. AAPL, MSFT, NVDA)"New value: +"Stock ticker. Coverage is primarily US; sparse JP/HK; no China A-share configuration."
  11. 5 tool updates
    • Changedcompany_search1 field changed
      • addedInput schema / properties / market
        Added value: +{
        +  "description": "Optional market filter: 'us' | 'jp' — the knowledge base covers US + Japan companies only. Omit to search both.",
        +  "enum": [
        +    "us",
        +    "jp"
        +  ],
        +  "type": "string"
        +}
    • Changednews_search1 field changed
      • changedInput schema / properties / ticker / description
        Previous value: -"Exact ticker symbol(s) — a single symbol, an array, or a comma-separated string; multiple tickers are an OR/overlap filter. Bare symbols only, no exchange suffix. Company names/brands are NOT resolved here; resolve a name via ticker_lookup/company_search first."New value: +"Exact ticker symbol(s) — a single symbol, an array, or a comma-separated string; multiple tickers are an OR/overlap filter. US symbols bare (AAPL); other markets carry their exchange suffix — 7203.T, 00700.HK, 600519.SH. Company names/brands are NOT resolved here; resolve a name via ticker_lookup/company_search first."
    • Changedsec_report_list1 field changed
      • changedInput schema / properties / ticker / description
        Previous value: -"Stock ticker, e.g. NVDA, AAPL"New value: +"Stock ticker, e.g. NVDA, 6758.T, 00700.HK, 600519.SH"
    • Changedsec_report_search1 field changed
      • changedInput schema / properties / ticker / description
        Previous value: -"Stock ticker, e.g. NVDA, AAPL"New value: +"Stock ticker, e.g. NVDA, 6758.T, 00700.HK, 600519.SH"
    • Changedticker_lookup2 fields changed
      • changedInput schema / properties / market / description
        Previous value: -"Optional market filter: 'us' | 'jp'. Omit to search both."New value: +"Optional market filter: 'us' | 'jp' | 'hk' | 'cn'. Omit to search all markets."
      • changedInput schema / properties / market / enum
        Previous value: -[
        -  "us",
        -  "jp"
        -]New value: +[
        +  "us",
        +  "jp",
        +  "hk",
        +  "cn"
        +]
  12. 4 tool updates
    • Addednews_search
    • Removedsignal_list
    • Addedticker_lookup
    • Removedticker_resolve

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    An MCP server that wraps SEC EDGAR APIs to provide company financial data, screening metrics, and disclosure signals for investment diligence, with every figure traced to its source filing.
    8
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Hosted MCP server providing read-only access to US public company fundamentals, segment breakdowns, peer comparisons, and earnings data sourced directly from SEC filings.
    MIT
  • 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
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.