SEC EDGAR MCP
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@SEC EDGAR MCPGet Apple's latest 10-K filing"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
SEC EDGAR MCP
MCP server for accessing SEC EDGAR filings. Connects AI assistants to company filings, financial statements, and insider trading data with exact numeric precision.
Built on sec-edgar-toolkit.
https://github.com/user-attachments/assets/d310eb42-b3ca-467d-92f7-7d132e6274fe
This project is not affiliated with or endorsed by the U.S. Securities and Exchange Commission. EDGAR and SEC are trademarks of the SEC.
Quick Start
{
"mcpServers": {
"sec-edgar-mcp": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"-e", "SEC_EDGAR_USER_AGENT=Your Name (your@email.com)",
"stefanoamorelli/sec-edgar-mcp:latest"
]
}
}
}The -i flag is required for MCP's JSON-RPC communication.
For other installation methods (pip, uv), see the documentation.
Related MCP server: sec-edgar-mcp
Tools
Category | Tools |
Company | CIK lookup, company info, company facts |
Filings | 10-K, 10-Q, 8-K retrieval, section extraction |
Financials | Balance sheet, income statement, cash flow (XBRL-parsed) |
Insider Trading | Form 3/4/5 transactions |
All responses include SEC filing URLs for verification.
HTTP Transport
For platforms like Dify, use streamable HTTP instead of stdio:
python -m sec_edgar_mcp.server --transport streamable-http --port 9870No authentication is included. Use only on private networks.
Evaluations
Promptfoo-based test suite. See evals/ for details.
cd evals && npm install && npm run evalDocumentation
Full docs: sec-edgar-mcp.amorelli.tech
Contributors
Citation
If you use this software in research, please cite it:
@software{amorelli_sec_edgar_mcp_2025,
title = {{SEC EDGAR MCP (Model Context Protocol) Server}},
author = {Amorelli, Stefano},
version = {1.0.6},
year = {2025},
month = {9},
url = {https://doi.org/10.5281/zenodo.17123166},
doi = {10.5281/zenodo.17123166}
}See CITATION.cff for additional formats.
License
AGPL-3.0. For commercial licensing: stefano@amorelli.tech
Available Tools
21 toolsanalyze_8kA
Analyze an 8-K current report for material events.
Args: identifier: Company ticker symbol or CIK number accession_number: The 8-K filing accession number
Returns: Analysis of reported items: Material agreements Results of operations (earnings) Officer/director changes Regulation FD disclosures Other material events
| Name | Required | Description | Default |
|---|---|---|---|
| identifier | Yes | ||
| accession_number | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description lists returned item codes but does not disclose potential limitations such as data recency, authentication requirements, or error scenarios. With no annotations provided, the description carries the full burden of transparency but falls short.
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 concise with clear Args and Returns sections, no redundant information, and is well-structured for quick comprehension.
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 covers output format with item codes and meanings. However, it omits details like data source, error handling, or usage examples, which would enhance completeness.
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 description explains identifier as 'Company ticker symbol or CIK number' and accession_number as 'The 8-K filing accession number', adding meaningful context beyond the raw schema.
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 analyzes an 8-K current report for material events, which is specific and distinct from sibling tools like analyze_form4_transactions or get_filing_sections.
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?
While the description implies usage for 8-K analysis, it provides no explicit guidance on when to use it versus alternatives, nor does it mention prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyze_form4_transactionsD
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | ||
| limit | No | ||
| identifier | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Tool has no description.
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?
Tool has no description.
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?
Tool has no description.
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?
Tool has no description.
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?
Tool has no description.
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?
Tool has no description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyze_insider_sentimentA
Analyze insider trading patterns and frequency.
Args: identifier: Company ticker symbol or CIK number months: Number of months to analyze (default: 6)
Returns: Filing frequency analysis (high/moderate/low) and recent activity summary.
This provides frequency analysis only. For buy/sell sentiment, use analyze_form4_transactions to examine actual transaction details.
| Name | Required | Description | Default |
|---|---|---|---|
| months | No | ||
| identifier | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It discloses the tool's scope (frequency analysis only, not buy/sell) and what it returns. However, it does not mention any behavioral traits like data freshness or limitations beyond the scope note, which would elevate it to a 5.
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 concise, well-structured with separate sections for Args, Returns, and a note. Every sentence adds value, and the note is strategically placed to clarify scope without redundancy.
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 explains return values (frequency analysis and activity summary), which is adequate. However, it lacks examples or specifics on data format, and the context signals indicate low schema coverage, so it could be slightly more detailed to achieve a perfect score.
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 input schema has 0% description coverage, but the tool description compensates fully by explaining identifier is a ticker or CIK number and months is the analysis period with a default of 6. This adds meaningful context not present in the schema.
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 analyzes insider trading patterns and frequency, specifying it returns a filing frequency analysis (high/moderate/low) and recent activity summary. It distinguishes itself from the sibling tool analyze_form4_transactions by noting the difference, making the purpose unambiguous.
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 provides guidance: this tool is for frequency analysis only, and if buy/sell sentiment is needed, it directs users to use analyze_form4_transactions. This clearly tells when to use this tool versus an alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compare_periodsD
| Name | Required | Description | Default |
|---|---|---|---|
| metric | Yes | ||
| end_year | Yes | ||
| identifier | Yes | ||
| start_year | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Tool has no description.
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?
Tool has no description.
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?
Tool has no description.
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?
Tool has no description.
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?
Tool has no description.
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?
Tool has no description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discover_company_metricsA
Discover what financial metrics are available for a company.
Use this tool to find available XBRL concepts before using get_key_metrics.
Args: identifier: Company ticker symbol or CIK number search_term: Filter metrics by name (optional)
Returns: List of available XBRL concepts with data counts.
| Name | Required | Description | Default |
|---|---|---|---|
| identifier | Yes | ||
| search_term | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states that the tool returns a list of available XBRL concepts with data counts, but does not disclose any behavioral traits such as rate limits, authentication needs, or side effects. The description is adequate but not rich for a discovery tool.
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 concise and well-structured with a clear purpose sentence, a tip in a dedicated tag, and parameter explanations. Every sentence adds value, though the tip and returns slightly repeat 'available XBRL concepts'. Overall, it is efficient and front-loaded.
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's simplicity (2 params, no output schema, no annotations), the description is fairly complete. It covers purpose, usage hint, parameter meanings, and return value. It could mention that the optional search_term has no default behavior in the description, but the schema fills that gap. For the tool's complexity, it is sufficiently 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?
The input schema has 0% description coverage, meaning the schema only provides type and default. The description adds meaning by explaining that 'identifier' is a company ticker symbol or CIK number, and 'search_term' filters metrics by name. This significantly aids understanding beyond the schema.
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 discovers available financial metrics for a company, specifically XBRL concepts. It uses specific verb 'discover' and resource 'financial metrics', and the tip distinguishes it from sibling tool get_key_metrics, making the purpose unambiguous.
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 a tip to use this tool before get_key_metrics, offering clear guidance on when to use it relative to a sibling. However, it lacks explicit when-not-to-use or alternative scenarios, missing a small point for completeness.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discover_xbrl_conceptsB
Discover all XBRL concepts available in a filing.
Use this to explore available data before extracting specific concepts.
Args: identifier: Company ticker symbol or CIK number accession_number: Specific filing accession number (optional) form_type: Form type if no accession number provided (default: "10-K") namespace_filter: Filter by namespace (e.g., "us-gaap")
Returns: All discovered concepts, namespaces, and sample values.
| Name | Required | Description | Default |
|---|---|---|---|
| form_type | No | 10-K | |
| identifier | Yes | ||
| accession_number | No | ||
| namespace_filter | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It mentions discovering concepts and returning sample values, but it fails to disclose behavioral traits like error handling (e.g., invalid identifier), rate limits, or whether the operation is read-only. The tip suggests exploration, but no side effects or constraints are stated.
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 concise, with a clear main action followed by a tip and structured Args/Returns sections. Every sentence contributes value, though the redundancy between the first sentence and the tip could be merged.
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 has 4 parameters and no output schema, the description provides adequate context for typical use: exploration before extraction. However, it lacks details on output structure, pagination, or how to interpret the returned concepts and namespaces.
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 input schema has no descriptions (0% coverage), so the description's Args section must compensate. It lists the four parameters with their names and optionality, but adds little beyond that (e.g., no format or example values). The default values for accession_number and form_type are noted in the schema but not in the description.
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 'Discover all XBRL concepts available in a filing' with a specific verb and resource. The tip 'Use this to explore available data before extracting specific concepts' hints at a distinct use case but does not explicitly differentiate from siblings like get_xbrl_concepts.
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 tip provides some guidance on when to use the tool ('explore available data before extracting specific concepts'), but it does not specify when not to use it or mention alternatives. The description implies a sequential workflow but lacks explicit usage conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_cik_by_tickerA
Convert a stock ticker symbol to its SEC CIK (Central Index Key).
Args: ticker: Stock ticker symbol (e.g., "AAPL", "NVDA", "MSFT")
Returns: CIK number for use with other SEC EDGAR tools.
| Name | Required | Description | Default |
|---|---|---|---|
| ticker | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It only states the basic conversion operation, without mentioning error handling for invalid tickers, idempotency, or rate limits.
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 with two sentences and a clear example, containing no extraneous information.
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 simple lookup tool with one parameter and no output schema, the description adequately covers purpose, parameter, and return value, making it fully 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?
The input schema has 0% description coverage, so the description compensates by defining the ticker parameter as a stock ticker symbol with examples (AAPL, NVDA, MSFT), adding meaningful context beyond the schema.
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 a stock ticker to its SEC CIK. The verb 'Convert' and specific resource 'stock ticker symbol to its SEC CIK' are precise and distinguish it from sibling tools that analyze filings or financials.
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 implies usage before other SEC EDGAR tools by stating the CIK is for use with them, but it does not provide explicit when-to-use or when-not-to-use guidance, nor does it mention alternatives like search_companies.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_company_factsD
| Name | Required | Description | Default |
|---|---|---|---|
| identifier | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Tool has no description.
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?
Tool has no description.
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?
Tool has no description.
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?
Tool has no description.
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?
Tool has no description.
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?
Tool has no description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_company_infoA
Retrieve company information from SEC records.
Args: identifier: Company ticker symbol or CIK number
Returns: Company details including name, CIK, SIC code, exchange, and fiscal year end.
| Name | Required | Description | Default |
|---|---|---|---|
| identifier | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description fully carries the burden. It explicitly states it's a read operation (retrieve) and describes the output. No destructive behavior is disclosed, which is appropriate for a simple retrieval tool.
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 concise, with clear Args and Returns sections. Every sentence adds value with no fluff.
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 the description lists the returned fields adequately. It could mention potential errors or data freshness, but for a simple info retrieval it is sufficiently 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 has 0% coverage for the single parameter. The description adds full meaning: 'Company ticker symbol or CIK number', which compensates completely for the missing schema description.
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 retrieves company information from SEC records, and lists the returned fields (name, CIK, SIC, etc.). It distinguishes from siblings like get_cik_by_ticker (which only gets CIK) and get_company_facts (more detailed).
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?
No explicit guidance on when to use or not use this tool compared to siblings. The usage is implied (for basic company info), but no alternatives or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_filing_contentA
Get the content of a specific SEC filing with paging support.
Args: identifier: Company ticker symbol or CIK number accession_number: The accession number of the filing offset: Character offset into the filing content (default: 0) max_chars: Maximum number of characters to return (default: 50000)
Returns: Dictionary containing filing content page and pagination metadata
| Name | Required | Description | Default |
|---|---|---|---|
| offset | No | ||
| max_chars | No | ||
| identifier | Yes | ||
| accession_number | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden. It discloses the return type (dictionary with content page and pagination metadata) and explains paging support. However, it does not mention error handling, rate limits, or authentication requirements, which would improve transparency.
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 Args and Returns sections, and the purpose is front-loaded in the first sentence. It is concise without unnecessary words, though it could potentially be slightly more compact without losing meaning.
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 explains the parameters and return value, which is adequate for a straightforward data retrieval tool. However, it does not specify what the 'content' includes (e.g., raw HTML, text, structured data) nor how the pagination metadata is formatted. Given no output schema, these details would enhance completeness.
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?
Despite 0% schema description coverage, the description's Args section explains each parameter in detail: identifier as ticker or CIK, accession_number as the filing accession number, offset as character offset, and max_chars as maximum characters. This fully compensates for the lack of 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 it retrieves the content of a specific SEC filing with paging support, using a specific verb 'Get' and resource 'filing content'. This distinguishes it from siblings like get_filing_sections which likely returns sections instead of raw content.
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 does not provide any guidance on when to use this tool versus alternatives such as get_filing_sections or other analysis tools. It lacks explicit 'when to use' or 'when not to use' context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_filing_sectionsA
Extract specific sections from 10-K or 10-Q filings.
Args: identifier: Company ticker symbol or CIK number accession_number: Filing accession number form_type: Form type ("10-K" or "10-Q")
Returns: Extracted sections including business description, risk factors, and MD&A.
| Name | Required | Description | Default |
|---|---|---|---|
| form_type | Yes | ||
| identifier | Yes | ||
| accession_number | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden for behavioral disclosure. It only states it extracts sections and returns them, but provides no details on side effects, authentication needs, or data format beyond a brief list of example sections.
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 very concise, with a single introductory sentence and a structured Args list. Every sentence adds value, and there is no redundant or extraneous text.
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 covers the core functionality and parameters, but lacks details on error handling, rate limits, or the exact structure of the returned data. Given the simplicity of the tool (3 required params, no nested objects), completeness is adequate but not comprehensive.
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?
Although schema coverage is 0%, the description provides clear parameter explanations within the Args list (e.g., identifier as ticker or CIK, accession_number, form_type with allowed values). This adds significant meaning beyond the schema property names alone, though examples or format hints are missing.
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 extracts specific sections from 10-K or 10-Q filings, specifying the verb (extract), resource (sections from filings), and the types of forms (10-K, 10-Q). It distinguishes from sibling tools like get_filing_content.
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 implies usage when needing sections from filings, but does not explicitly state when to use this tool versus alternatives like get_filing_content or search functions. No when-not-to-use guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_financialsD
| Name | Required | Description | Default |
|---|---|---|---|
| identifier | Yes | ||
| statement_type | No | all |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Tool has no description.
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?
Tool has no description.
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?
Tool has no description.
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?
Tool has no description.
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?
Tool has no description.
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?
Tool has no description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_form4_detailsD
| Name | Required | Description | Default |
|---|---|---|---|
| identifier | Yes | ||
| accession_number | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Tool has no description.
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?
Tool has no description.
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?
Tool has no description.
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?
Tool has no description.
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?
Tool has no description.
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?
Tool has no description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_insider_summaryA
Get a summary of insider trading activity.
Args: identifier: Company ticker symbol or CIK number days: Number of days to analyze (default: 180)
Returns: Summary with filing counts by form type, unique insiders, and recent activity.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | ||
| identifier | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that it returns a summary with specific fields, but it does not mention any behavioral aspects such as read-only nature, data freshness, or if it requires any special permissions. With no annotations, this is adequate but not detailed.
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 very concise with four sentences, clearly organized with 'Args' and 'Returns'. Every sentence adds value without redundancy.
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 the return structure. However, it could be more complete by noting the scope of insider activity (e.g., recent filings) and how it differs from other insider tools. Overall, sufficient for a summary 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?
The description explains that 'identifier' is a ticker or CIK number and 'days' is the number of days to analyze with a default of 180. This adds meaning beyond the schema, which only provides titles and types. Schema coverage is 0%, so the description compensates well.
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 returns 'a summary of insider trading activity', which is a specific verb+resource. It specifies the output includes filing counts, unique insiders, and recent activity, distinguishing it from detailed transaction tools like get_insider_transactions.
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?
No guidance is provided on when to use this tool versus sibling tools like analyze_insider_sentiment or get_insider_transactions. There is no mention of when-not-to-use or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_insider_transactionsD
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | ||
| limit | No | ||
| form_types | No | ||
| identifier | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Tool has no description.
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?
Tool has no description.
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?
Tool has no description.
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?
Tool has no description.
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?
Tool has no description.
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?
Tool has no description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_key_metricsD
| Name | Required | Description | Default |
|---|---|---|---|
| metrics | No | ||
| identifier | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Tool has no description.
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?
Tool has no description.
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?
Tool has no description.
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?
Tool has no description.
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?
Tool has no description.
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?
Tool has no description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_recent_filingsA
Get recent SEC filings for a company or across all filers.
Args: identifier: Company ticker/CIK (optional, omit for all recent filings) form_type: Filter by form type (e.g., "10-K", "10-Q", "8-K", "4") days: Number of days to look back (default: 30) limit: Maximum filings to return (default: 50)
Returns: List of filings with dates, form types, accession numbers, and SEC URLs.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | ||
| limit | No | ||
| form_type | No | ||
| identifier | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It states it returns a list with specific fields, but does not disclose any behavioral traits like read-only nature, rate limits, or authorization needs. Adequate but could be more transparent.
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?
Description is a well-structured docstring with a summary line, Args section, and Returns section. It is concise with no fluff, front-loading the main purpose.
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 explains return values (list with dates, form types, accession numbers, SEC URLs). With 4 parameters and no output schema, it is fairly complete, though missing details on ordering, pagination, or error handling.
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 0%, so description fully compensates. It explains each parameter (identifier, form_type, days, limit) with meaning and defaults, adding significant value beyond the schema which only provides names and types.
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?
Description clearly states the tool gets recent SEC filings for a company or across all filers. The verb 'get' and resource 'recent SEC filings' are specific, and it distinguishes from sibling tools like get_filing_content and get_filing_sections.
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?
Description provides parameters like identifier (optional), form_type, days, limit, implying when to use. However, it does not explicitly mention alternatives or when not to use, lacking explicit guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_recommended_toolsA
Get recommended tools for analyzing a specific SEC form type.
Args: form_type: SEC form type (e.g., "10-K", "8-K", "4", "DEF 14A")
Returns: Recommended tools and usage tips for the form type.
| Name | Required | Description | Default |
|---|---|---|---|
| form_type | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses that the tool returns recommended tools and usage tips, which is basic behavioral information. It does not mention read-only nature, authentication, or any constraints, but for a recommendation tool, this is minimally adequate.
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 exceptionally concise, with a single sentence for the purpose, followed by structured arg and return sections. Every word adds value, and there is no redundancy or unnecessary information.
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 simple tool with one parameter and no output schema, the description is sufficiently complete. It explains what the tool does, what input it expects, and what output it provides. However, it could be slightly improved by noting that recommendations are based on the form type and may suggest sibling tools.
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 0%, so the description must compensate. It does so by providing examples and clarifying that form_type is an SEC form type (e.g., '10-K'). This adds meaning beyond the raw schema property name, though a full list of valid values or format could further improve it.
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 retrieves recommended tools for analyzing a specific SEC form type, using a specific verb 'Get' and a defined resource. It distinguishes itself from sibling tools, which are analysis tools rather than recommendation 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?
The description provides clear context by listing example form types, implying the tool is for users needing guidance on which tool to use. However, it does not explicitly state when not to use this tool or mention alternative approaches.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_segment_dataD
| Name | Required | Description | Default |
|---|---|---|---|
| identifier | Yes | ||
| segment_type | No | geographic |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Tool has no description.
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?
Tool has no description.
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?
Tool has no description.
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?
Tool has no description.
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?
Tool has no description.
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?
Tool has no description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_xbrl_conceptsD
| Name | Required | Description | Default |
|---|---|---|---|
| concepts | No | ||
| form_type | No | 10-K | |
| identifier | Yes | ||
| accession_number | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Tool has no description.
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?
Tool has no description.
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?
Tool has no description.
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?
Tool has no description.
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?
Tool has no description.
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?
Tool has no description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_companiesB
Search for companies by name in SEC records.
Args: query: Company name search query limit: Maximum results to return (default: 10)
Returns: List of matching companies with CIK and ticker information.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It mentions the return type (list with CIK and ticker) but lacks behavioral details like any side effects, authentication needs, rate limits, or data freshness. It only gives minimal functional info.
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 relatively concise but includes an Args/Returns section that partially duplicates information already in the schema and expected output. It is front-loaded with the purpose but could be tighter without losing meaning.
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 simple search tool with no output schema, the description covers the basic purpose and parameters. However, it lacks details on error handling, pagination, result ordering, or limitations. It is mostly adequate but has clear 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?
The schema has 0% description coverage, so the description compensates by explaining both parameters: 'query: Company name search query' and 'limit: Maximum results to return (default: 10)'. This adds meaning beyond the schema's type and default values.
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 searches for companies by name in SEC records. The verb 'search', resource 'companies', and source 'SEC records' are specific, distinguishing it from sibling tools like get_cik_by_ticker or get_company_info.
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 no guidance on when to use this tool versus alternatives, no exclusion criteria, and no context about prerequisites or limitations. The usage is only implied through the description.
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. Dates show when Glama detected each change.
21 tool updates
v1.0.8- First observed
analyze_8k - First observed
analyze_form4_transactions - First observed
analyze_insider_sentiment - First observed
compare_periods - First observed
discover_company_metrics - First observed
discover_xbrl_concepts - First observed
get_cik_by_ticker - First observed
get_company_facts - First observed
get_company_info - First observed
get_filing_content - First observed
get_filing_sections - First observed
get_financials - First observed
get_form4_details - First observed
get_insider_summary - First observed
get_insider_transactions - First observed
get_key_metrics - First observed
get_recent_filings - First observed
get_recommended_tools - First observed
get_segment_data - First observed
get_xbrl_concepts - First observed
search_companies
TDQS
Multiple tools have overlapping purposes, especially in the insider trading (5 tools) and financial metrics (7 tools) areas. While each has distinct nuances, the boundaries are unclear and could lead to agent confusion.
Most tools follow a verb_noun pattern (analyze_, discover_, get_, search_), but there are minor inconsistencies such as 'get_cik_by_ticker' with a preposition and 'compare_periods' without a clear prefix. Overall readable and predictable.
21 tools is slightly above the typical well-scoped range (3-15), but given the breadth of SEC EDGAR data (filings, financials, insider trading), the count is still reasonable and each tool serves a specific need.
The tool set covers major areas: company lookup, filings, financial metrics, and insider trading. Minor gaps exist, such as no historical filing list beyond a few days and no full-text search across filings, but core workflows are supported.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
SEC EDGAR financials, insider trading, and economic data for AI agents. US GAAP + IFRS.
Real SEC, 13F, insider, congress & macro data your AI agent can cite. Hosted MCP, 24 tools.
The financial MCP for AI agents - 90+ financial tables, SEC filings, signals, alt-data.
MCP server giving AI agents one-connection access to China A-share market intelligence: financials,
Related MCP Servers
- AlicenseAqualityBmaintenanceMCP server providing read-only access to SEC EDGAR filings, allowing LLMs to look up companies, search filings, and retrieve securities offering data.31MIT
- AlicenseNot gradedqualityDmaintenanceHosted MCP server that gives AI agents real-time access to SEC EDGAR filings search, 10-K/8-K reading, XBRL financial facts, and insider-trade (Form 4) alerts.251MIT
- AlicenseNot gradedqualityDmaintenanceMCP server for SEC EDGAR that provides real-time access to filings, financial statements, and full-text search across all EDGAR documents.Apache 2.0
- AlicenseAqualityAmaintenanceAn MCP server that enables models to access SEC EDGAR filings, filing text, and XBRL financial facts with caching, rate limiting, and iXBRL stripping.8MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/stefanoamorelli/sec-edgar-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server