Skip to main content
Glama
henrysouchien

edgar-mcp

Server Quality Checklist

67%
Profile completionA complete profile improves this server's visibility in search results.
  • Latest release: v0.1.0

  • Disambiguation5/5

    Each tool has a clearly distinct purpose with no ambiguity: get_filings retrieves metadata, get_filing_sections parses qualitative content, get_financials extracts structured financial data, get_metric fetches specific metrics, list_metrics enumerates available metrics, and search_metrics enables natural-language discovery. The boundaries are well-defined and complementary.

    Naming Consistency5/5

    All tool names follow a consistent verb_noun pattern with snake_case throughout (e.g., get_filings, get_filing_sections, get_financials, get_metric, list_metrics, search_metrics). The naming is predictable and enhances readability across the set.

    Tool Count5/5

    With 6 tools, the count is well-scoped for the SEC filing analysis domain. Each tool earns its place by covering distinct aspects like metadata retrieval, content parsing, data extraction, and metric access, without being overly sparse or bloated.

    Completeness4/5

    The tool set provides comprehensive coverage for analyzing SEC filings, including metadata, qualitative sections, financial data, and metrics. A minor gap exists in lacking explicit update or delete operations, but this is reasonable for a read-only data retrieval server focused on financial analysis workflows.

  • Average 3.1/5 across 6 of 6 tools scored.

    See the Tool Scores section below for per-tool breakdowns.

    • No community issues in the last 6 months
    • 14 commits in the last 12 weeks
    • No stable releases found
    • No critical vulnerability alerts
    • No high-severity vulnerability alerts
    • No code scanning findings
    • CI status not available
  • This repository is licensed under MIT License.

  • This repository includes a README.md file.

  • No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.

    Tip: use the "Try in Browser" feature on the server page to seed initial usage.

  • Add a glama.json file to provide metadata about your server.

  • If you are the author, simply .

    If the server belongs to an organization, first add glama.json to the root of your repository:

    {
      "$schema": "https://glama.ai/mcp/schemas/server.json",
      "maintainers": [
        "your-github-username"
      ]
    }

    Then . Browse examples.

  • Add related servers to improve discoverability.

How to sync the server with GitHub?

Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.

To manually sync the server, click the "Sync Server" button in the MCP server admin interface.

How is the quality score calculated?

The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).

Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.

Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).

Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.

Tool Scores

  • Behavior2/5

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

    No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the tool returns 'current/prior values with YoY comparison,' which hints at read-only behavior, but doesn't cover critical aspects like authentication needs, rate limits, error handling, or data freshness. For a financial data tool with no annotation coverage, this is a significant gap.

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

    Conciseness4/5

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

    The description is a single, well-structured sentence that efficiently conveys the core purpose. It's front-loaded with the main action and avoids unnecessary details. However, it could be slightly more concise by integrating parameter hints more directly, but overall it's appropriately sized.

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

    Completeness3/5

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

    Given the tool's complexity (7 parameters, financial data) and the presence of an output schema (which likely covers return values), the description is moderately complete. It states the purpose and output format but lacks usage guidelines, detailed parameter semantics, and behavioral context. With no annotations and low schema coverage, it should do more to be fully adequate.

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

    Parameters2/5

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

    Schema description coverage is 0%, meaning none of the 7 parameters are documented in the schema. The description only vaguely references 'common name or XBRL tag' (related to 'metric_name') and implies temporal aspects ('current/prior values'), but doesn't explain parameters like 'ticker', 'year', 'quarter', 'full_year_mode', 'source', or 'date_type'. It adds minimal value beyond the schema, failing to compensate for the coverage gap.

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

    Purpose4/5

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

    The description clearly states the tool's purpose: 'Get a specific financial metric by common name or XBRL tag and return current/prior values with YoY comparison.' This specifies the verb ('Get'), resource ('financial metric'), and scope ('return current/prior values with YoY comparison'). However, it doesn't explicitly differentiate from sibling tools like 'list_metrics' or 'search_metrics', which likely serve different purposes.

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

    Usage Guidelines2/5

    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. It doesn't mention sibling tools like 'list_metrics' (which might list available metrics) or 'search_metrics' (which might search metrics), nor does it specify prerequisites or exclusions. Usage is implied by the purpose but lacks explicit context.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the tool returns a list with URLs, dates, and fiscal period assignments, which gives some context about output format. However, it doesn't disclose critical behavioral traits such as whether this is a read-only operation, potential rate limits, authentication needs, error handling, or pagination behavior. For a tool with no annotations, this leaves significant gaps.

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

    Conciseness4/5

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

    The description is appropriately concise with two sentences that efficiently convey the tool's purpose and what it returns. It's front-loaded with the main action ('Fetch SEC filing metadata'), and the second sentence adds necessary detail about filing types and returned data. There's no wasted verbiage, making it easy to parse.

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

    Completeness3/5

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

    Given the tool's complexity (3 required parameters, no annotations, but with an output schema), the description is partially complete. It explains what the tool does and the types of filings returned, which is helpful. However, it lacks details on parameter usage, behavioral traits, and how it differs from siblings. The presence of an output schema means the description doesn't need to explain return values, but other gaps remain, making it adequate but with clear room for improvement.

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

    Parameters3/5

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

    The input schema has 3 parameters (ticker, year, quarter) with 0% description coverage, meaning the schema provides no semantic information. The description doesn't add any parameter-specific details—it doesn't explain what 'ticker' represents, the format of 'year' and 'quarter', or how they filter results. However, since the tool has an output schema (as per context signals), the baseline is adjusted; the description implies parameters are used to fetch metadata but doesn't compensate for the low schema coverage.

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

    Purpose4/5

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

    The description clearly states the tool's purpose: 'Fetch SEC filing metadata for a company' specifies the verb (fetch) and resource (SEC filing metadata). It distinguishes from siblings like 'get_filing_sections' (which likely extracts sections) and 'get_financials' (which likely provides financial data), but doesn't explicitly contrast them. The description is specific about what types of filings are returned (10-Q, 10-K, 8-K), which adds clarity.

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

    Usage Guidelines2/5

    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. It doesn't mention when to choose 'get_filings' over 'get_financials' or 'search_metrics', nor does it specify prerequisites or exclusions. The context is implied (fetching metadata for SEC filings), but explicit usage guidelines are missing.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions parsing and returning narrative/tables with metadata, but lacks details on permissions, rate limits, data sources, or error handling. For a tool with 8 parameters and no annotation coverage, this is a significant gap in transparency.

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

    Conciseness5/5

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

    The description is a single, well-structured sentence that efficiently conveys the core functionality. It is front-loaded with the main action and output, with no wasted words. Every part of the sentence earns its place by specifying the source (SEC filings), action (parse), and result (narrative/tables with metadata).

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

    Completeness3/5

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

    Given the tool's complexity (8 parameters, no annotations, but with an output schema), the description is moderately complete. The output schema likely covers return values, reducing the need for output details in the description. However, for a parsing tool with many configuration options, more guidance on parameter usage and behavioral context would improve completeness.

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

    Parameters2/5

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

    Schema description coverage is 0%, so the description must compensate for undocumented parameters. It only vaguely references 'sections' and 'format' without explaining what specific sections are available (e.g., 'Management Discussion'), what 'summary' vs 'full' entails, or the purpose of parameters like 'tables_only' and 'output'. The description adds minimal value beyond the schema.

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

    Purpose4/5

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

    The description clearly states the tool's purpose: parsing qualitative sections from SEC 10-K or 10-Q filings and returning narrative/tables with metadata. It specifies the verb ('parse'), resource ('qualitative sections from SEC 10-K or 10-Q filings'), and output type. However, it doesn't explicitly differentiate from sibling tools like 'get_filings' or 'get_financials', which likely retrieve different aspects of filings.

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

    Usage Guidelines2/5

    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. It doesn't mention sibling tools like 'get_filings' (which might retrieve entire filings) or 'get_financials' (which might focus on quantitative data), leaving the agent without context for tool selection. Usage is implied only by the purpose statement.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions 'search' and 'return ranked candidates,' which implies a read-only operation with ranking, but it lacks details on permissions, rate limits, error handling, or what 'ranked candidates' entails. For a tool with 9 parameters and no annotation coverage, this is insufficient.

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

    Conciseness5/5

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

    The description is a single, well-structured sentence that efficiently conveys the core functionality. It's front-loaded with the main action and outcome, with no wasted words or redundancy, making it easy to parse quickly.

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

    Completeness3/5

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

    Given the complexity (9 parameters, 0% schema coverage, no annotations) and the presence of an output schema, the description is incomplete. It covers the basic purpose but lacks parameter explanations, usage context, and behavioral details. The output schema may help with return values, but overall, it's inadequate for a tool of this complexity.

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

    Parameters2/5

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

    Schema description coverage is 0%, so the description must compensate for undocumented parameters. It only references 'natural-language query,' which maps to the 'query' parameter, but ignores the other 8 parameters (e.g., ticker, year, quarter, source). This leaves most parameters unexplained, failing to add meaningful semantics beyond the bare schema.

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

    Purpose4/5

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

    The description clearly states the tool's purpose: 'Search available filing metrics by natural-language query and return ranked candidates.' It specifies the action (search), resource (filing metrics), and method (natural-language query). However, it doesn't explicitly differentiate from sibling tools like 'list_metrics' or 'get_metric', which appear related to metrics retrieval.

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

    Usage Guidelines2/5

    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. It doesn't mention sibling tools like 'list_metrics' or 'get_metric', nor does it specify prerequisites, exclusions, or contextual cues for selection. Usage is implied only by the action described.

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

  • Behavior2/5

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

    With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool extracts data and returns JSON, but lacks critical details such as authentication requirements, rate limits, error handling, or whether it performs destructive operations. For a tool with 6 parameters and no annotation coverage, this is a significant gap in transparency.

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

    Conciseness5/5

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

    The description is highly concise and front-loaded, using only two sentences that directly state the tool's purpose and output. Every word earns its place, with no redundant or vague phrasing, making it efficient for an agent to parse quickly.

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

    Completeness3/5

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

    Given the tool's complexity (6 parameters, no annotations) and the presence of an output schema, the description is minimally adequate. It covers the core purpose and output format, but lacks behavioral context and usage guidelines. The output schema likely details the JSON structure, reducing the need for return value explanation, but overall completeness is limited.

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

    Parameters3/5

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

    The description adds no parameter-specific information beyond implying financial data extraction. With 0% schema description coverage and 6 parameters (including enums for 'source' and 'output'), the schema alone documents the parameters. The description doesn't compensate for the coverage gap, so it meets the baseline of 3 where the schema handles parameter documentation.

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

    Purpose5/5

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

    The description clearly states the specific action ('Extract all financial facts from SEC filings') and resource ('SEC filings'), distinguishing it from siblings like get_filings or get_filing_sections by focusing on financial data extraction rather than document retrieval. It also specifies the structured output format, which further clarifies its unique purpose.

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

    Usage Guidelines2/5

    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 like get_metric or search_metrics. It mentions the data source (SEC filings) but doesn't specify prerequisites, exclusions, or comparative contexts with sibling tools, leaving the agent to infer usage scenarios.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries the full burden of behavioral disclosure. While it mentions the tool's purpose in the workflow, it doesn't describe key behavioral traits such as whether this is a read-only operation, what authentication is required, rate limits, pagination behavior (despite having a 'limit' parameter), or what the output looks like. The description is insufficient for a tool with 8 parameters and no 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.

    Conciseness5/5

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

    The description is a single, well-structured sentence that efficiently communicates the tool's purpose and usage context. Every word earns its place, with no redundant information or unnecessary elaboration. It's appropriately sized for a list operation tool.

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

    Completeness3/5

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

    While the description clearly explains the tool's purpose and relationship to 'get_metric', it lacks crucial information about parameters and behavioral traits. The presence of an output schema helps somewhat, but for a tool with 8 parameters (3 required) and no annotations, the description should provide more context about how to use the tool effectively. It's minimally adequate but has significant gaps.

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

    Parameters2/5

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

    With 0% schema description coverage for 8 parameters, the description provides no information about any parameters. It doesn't explain what 'ticker', 'year', 'quarter', 'full_year_mode', 'source', 'date_type', 'limit', or 'include_values' mean or how they affect the listing. The description fails to compensate for the complete lack of parameter documentation in the schema.

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

    Purpose5/5

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

    The description clearly states the specific action ('List available metric tags') and resource ('for a filing period'), and explicitly distinguishes it from its sibling tool 'get_metric' by explaining its preparatory role. It provides a concrete verb+resource combination with clear sibling differentiation.

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

    Usage Guidelines5/5

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

    The description explicitly states when to use this tool ('so an agent can choose an exact metric_name before calling get_metric') and names the alternative tool ('get_metric'). This provides clear guidance on the tool's purpose in the workflow and distinguishes it from other sibling tools like 'search_metrics' or 'get_financials'.

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

GitHub Badge

Glama performs regular codebase and documentation scans to:

  • Confirm that the MCP server is working as expected.
  • Confirm that there are no obvious security issues.
  • Evaluate tool definition quality.

Our badge communicates server capabilities, safety, and installation instructions.

Card Badge

edgar-mcp MCP server

Copy to your README.md:

Score Badge

edgar-mcp MCP server

Copy to your README.md:

Latest Blog Posts

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/henrysouchien/edgar-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server