Drillr — The financial MCP for AI agents
Server Details
The financial MCP for AI agents - 90+ financial tables, SEC filings, signals, alt-data.
- 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.
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.
Tool Definition Quality
Average 4.7/5 across 9 of 9 tools scored. Lowest: 4/5.
Each of the 9 tools has a clearly distinct purpose: company search, fiscal conversion, schema exploration, table listing, news search, SQL querying, SEC filing discovery, SEC content search, and ticker lookup. There is no overlap or ambiguity.
All tool names follow a consistent snake_case pattern, using descriptive verb_noun or noun_verb combinations (e.g., company_search, list_tables, ticker_lookup). No mixed conventions or abbreviations.
With 9 tools, the server is well-scoped for its financial domain. Each tool serves a necessary function without being excessive or sparse.
The tool set covers core workflows: company discovery, financial data querying, news, SEC filings, and schema exploration. Minor gaps such as lack of a dedicated analyst ratings tool are addressable via SQL, making the surface mostly complete.
Available Tools
9 toolscompany_searchARead-onlyInspect
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, and China A-shares. market accepts one lowercase value or a list from us | jp | hk | cn; omit it or pass [] for all four. 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.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Natural-language company description | |
| market | No | 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. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds that the tool returns a structured list with context snippets, and specifies coverage (US, Japan, Hong Kong, China A-shares). 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a bolded usage note, but some redundancy (e.g., repetition of market instructions in both the description and the schema). Still, it is efficient and front-loaded with key info.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description adequately explains return value (structured list with context snippets). It covers parameters, usage, coverage, and provides an example. The tool is straightforward and the description is complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%. The description adds meaningful context beyond the schema: explains that 'query' is a natural-language description and 'market' accepts a single value or list, with guidance on omission and that order doesn't set priority.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool is for qualitative company discovery, specifies the verb (search/discovery) and resource (companies), and lists searchable attributes (industry, business model, etc.). It also distinguishes from sibling tool 'run_sql' for numerical screening.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use (qualitative discovery) and when not to use (numerical screening, use run_sql instead). Provides detailed instructions for the market filter, including accepted values and behavior when omitted.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fiscal_utilityARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| ticker | Yes | Stock ticker. Coverage is primarily US; sparse JP/HK; no China A-share configuration. | |
| yyyy_mm | No | Calendar month yyyy-mm (required for reverse conversion) | |
| fiscal_year | No | Fiscal year (required for forward conversion) | |
| fiscal_quarter | No | Quarter 1-4, or 0 for full fiscal year (required for forward conversion) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=true and destructiveHint=false, so the description's addition of coverage limitations and conversion mode details adds value without contradiction. The tool is fully transparent about its behavior and constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences with no waste: first states purpose, second gives coverage warning, third and fourth explain dual usage modes. Front-loaded with key purpose and action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description adequately covers the tool's functionality and limitations. With no output schema, it could briefly mention the expected output format (e.g., period dates), but the dual-mode explanation is sufficient for an agent to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters are already well-documented. The description adds value by explaining which parameters are used for forward vs reverse conversion, and the yyyy_mm pattern. This slightly exceeds the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool converts between fiscal year/quarter and calendar months for a ticker, specifically for filtering period_end columns. It distinguishes itself from sibling tools by focusing on this unique conversion functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says when to use ('before filtering period_end columns') and provides coverage warnings (primarily US, sparse JP/HK, no China A-shares). It also explains the forward and reverse directions with required parameters, guiding correct invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_table_schemaARead-onlyInspect
Use BEFORE run_sql when you're unsure which columns a table has.
Look up column definitions (name, type, description) for a data table.
| Name | Required | Description | Default |
|---|---|---|---|
| table_name | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the description's addition of 'Look up column definitions' adds minor behavioral context. It does not elaborate on access restrictions, rate limits, or error behavior, which is acceptable given the annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: the first gives a usage guideline, the second states the output. No wasted words, front-loaded with key information. Highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple tool (one enum param, annotations present, no output schema), the description covers purpose, usage context, and output. It does not mention error handling or the sibling 'list_tables' for discovering available tables, but this is minor for a straightforward lookup tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but the single parameter 'table_name' is self-explanatory through its enum list. The description adds context by mentioning 'data table', but it does not detail parameter format or constraints beyond what the schema provides. Adequate but not exceptional.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool looks up column definitions (name, type, description) for a data table, with a specific verb and resource. It also distinguishes from the sibling 'run_sql' by recommending use before executing SQL when unsure of columns.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly guides when to use: 'Use BEFORE run_sql when you're unsure which columns a table has.' This provides clear context and links to a sibling tool. However, it does not mention when not to use or other alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_tablesARead-onlyInspect
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
| Name | Required | Description | Default |
|---|---|---|---|
| categories | No | Altdata category names (see tool description for the list). Omit, or pass "all", for the category index. |
Tool Definition Quality
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.
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.
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.
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.
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.
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.
news_searchARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Semantic query (English). One of query/theme/ticker/since/until required. | |
| since | No | ISO8601; filter time_event >= since. | |
| theme | No | Theme word, resolved to the nearest canonical theme. Not valid with search_type=claims. | |
| top_k | No | Story count. Default 10, max 50. | |
| until | No | ISO8601; filter time_event < until. | |
| ticker | No | 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. | |
| order_by | No | Result ordering. relevance (default) | event_time (newest event time first) | create_time (most recently ingested first). | |
| search_type | No | all (default) | events | claims (opinions/statements only). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations (readOnlyHint=true), the description details the output format (Markdown with Stories, Events, Claims tables), explains how stories are truncated, and describes columns like sources and time spans. It fully discloses behavioral traits without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a front-loaded purpose, followed by filter details, output explanation, and parameter constraints. It is slightly verbose but every sentence adds useful information; could be more terse without losing clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (8 parameters, no output schema), the description is complete: covers input requirements, market coverage, ticker formats, output structure, and edge cases (e.g., dropped stories). It adequately compensates for the lack of an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema coverage, the baseline is 3, but the description adds extra value by explaining ticker exchange suffixes, OR behavior for multiple tickers, and restrictions on search_type=claims. This goes beyond the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool is for news, events, and statements about companies/themes/markets. It is specific about the resource (news) and the action (search), but does not explicitly differentiate from sibling tools like company_search or ticker_lookup, though the context implies a distinct purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context, including required parameter combinations (e.g., at least one of query/theme/ticker/since/until) and when search_type=claims is invalid with theme. However, it does not explicitly state when not to use this tool or recommend alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_sqlARead-onlyInspect
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_endis 'YYYY-MM'. Compare as strings (period_end >= '2024-01'); a::datecast on it fails.Filter structured tables by ticker (
WHERE ticker IN ('AAPL','MSFT'); screening: addticker NOT LIKE '%-%'to drop preferred stock).
Core equity coverage: US, Japan, Hong Kong, and China A-shares. Tickers are US bare (AAPL), Japan .T (6758.T), Hong Kong .HK (00700.HK), and A-shares .SH/.SZ (600519.SH, 300750.SZ). financial_statements, company_snapshot, and price_volume_history span all four. Specialized tables vary — 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=[...])
| Name | Required | Description | Default |
|---|---|---|---|
| sql | Yes | PostgreSQL SELECT query |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint=true and destructiveHint=false annotations, the description discloses key behavioral constraints: SELECT-only (no CTEs), period columns as TEXT requiring string comparison, mandatory ticker filtering for structured tables, and coverage limitations across markets. It also warns that empty results may be due to schema variation, telling agents to call get_table_schema first. This adds substantial context beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Despite its length, the description is tightly structured and front-loaded: purpose first, then hard rules, then coverage, then table domains. Every sentence conveys necessary information—no filler. The strategic organization makes the volume of details easily scannable and actionable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool accepts arbitrary SQL over a large schema, the description is remarkably complete. It covers syntax restrictions, data types, ticker conventions, market coverage, table partitioning by domain, and explicitly defers schema details to get_table_schema and list_tables. Without an output schema, it still clarifies that results are structured rows, which is sufficient for an agent to understand expected behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The sole parameter 'sql' is described in the schema as 'PostgreSQL SELECT query', but the description greatly expands this by providing hard syntax rules, examples of valid ticker formats, and domain-specific table guidance. This goes far beyond the schema's minimal description, offering essential semantic context for writing correct queries.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening line clearly states the tool executes PostgreSQL SELECT queries over specific financial/market/alt-data tables and returns structured rows. This specific verb+resource combination distinguishes it from sibling tools like news_search or sec_report_search, which handle unstructured or document data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides detailed usage context: hard rules for query construction, required filters for certain tables, and explicit pointers to sibling tools (get_table_schema, list_tables) for schema exploration and discovery of specialized tables. This effectively guides when to use run_sql vs. when to use alternatives for schema discovery.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sec_report_listARead-onlyInspect
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; excludes ad-hoc 8-K/6-K); pass [] for all indexed types; pass explicit allowlist to override.
| Name | Required | Description | Default |
|---|---|---|---|
| ticker | Yes | Stock ticker, e.g. NVDA, 6758.T, 00700.HK, 600519.SH | |
| filing_types | No | Filter by filing type. Omit for default (periodic reports + IPO/shelf registrations + amendments; excludes ad-hoc disclosures). Pass [] for all indexed types. Pass an explicit allowlist to override — use values from the `filing_type` column of a prior unfiltered call. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is clear. The description adds detailed behavioral context: returns a summary with period coverage and per-type counts, plus a table of up to 50 filings with specific columns. It explains the default filtering logic for filing_types, which goes well beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured: first sentence states purpose and usage guidance, then enumerates return structure, finally explains parameter behavior. Every sentence adds value with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only list tool with 2 parameters and no output schema, the description covers return format, parameter behavior, and inter-tool guidance. It provides all necessary information for correct invocation, including edge cases for filing_types.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, but the description adds significant meaning: it explains the default behavior of filing_types (omit for main reports, pass [] for all, pass allowlist to override), and how to obtain valid values from a prior unfiltered call. This enriches the schema significantly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'List indexed SEC filings for a given ticker with a summary header.' It distinguishes itself from the sibling sec_report_search by specifying its use for discovery before content retrieval.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says when to use this tool ('discover which SEC filings exist for a ticker before searching content') and when to use the alternative ('For the actual content use sec_report_search instead'). It also explains how to use the filing_types parameter with three distinct options.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sec_report_searchARead-onlyInspect
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. 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, 300750.SZ).
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, 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. 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.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query | |
| top_k | No | ||
| ticker | Yes | Stock ticker, e.g. NVDA, 6758.T, 00700.HK, 600519.SH | |
| period_end | No | End period YYYY-MM | |
| filing_types | No | ||
| period_start | No | Start period YYYY-MM |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare read-only and non-destructive. Description adds that it's semantic search returning matching passages, covers specific markets and filing types, and explains scope limitations. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with front-loaded usage scenario. Every sentence adds value, no redundancy. Efficiently covers purpose, parameters, coverage, and alternatives without excess.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, description explains return type (matching passages). Covers all parameters, usage context, market coverage, limitations (e.g., no institutional filings), and provides guidance for common search targets.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Description adds significant meaning beyond schema: query phrasing advice, ticker format details per market, exhaustive filing type lists with codes, period format clarification, and top_k context. Compensates for 67% schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool performs semantic search over company-filed reports for narrative content. It distinguishes from sibling tools like run_sql (financial numbers) and insider_and_institution_activities (institutional filings).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use (narrative content from filings) and when not to (consolidated financial numbers, institutional filings), and provides alternatives using run_sql and other tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ticker_lookupARead-onlyInspect
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" — 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).
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Company name or ticker substring (case-insensitive). Matches historical names + tickers too. | |
| market | No | Optional market filter: 'us' | 'jp' | 'hk' | 'cn'. Omit to search all markets. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and destructiveHint=false. The description additionally explains ranking logic (prefix-hit first, name length) and market suffix conventions, which are beyond annotation scope.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two short paragraphs. The first sentence front-loads the purpose, then provides usage context, then parameter details. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, the description fully explains the return value: up to 5 matches, ranking method, and market suffix formats. All input parameters are covered with examples and behavior. No gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, yet the description adds valuable examples for the query parameter (e.g., 'Apple', 'AAPL') and explains the market parameter's effect when omitted. This meaningfully extends schema information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool resolves a company name, brand, or ticker substring to canonical ticker(s). It clearly indicates the verb and resource, and distinguishes this from sibling tools by advising to use it first before ticker-keyed tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'Use this FIRST when the user mentions a company by name/brand/nickname before running any ticker-keyed tool.' This provides clear when-to-use context and implies when not to use (when ticker is already known).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Servers
- Alicense-qualityBmaintenanceWall 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
- AlicenseAqualityAmaintenanceProvides 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.11659MIT
- Alicense-qualityDmaintenanceProvides 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
- Alicense-qualityCmaintenanceProvides 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
Your Connectors
Sign in to create a connector for this server.