Skip to main content
Glama

Server Quality Checklist

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

  • Disambiguation4/5

    analyze_stock and stock_report both target single stocks and return financial information, but analyze_stock is query-driven with LLM investment points while stock_report is a structured risk-focused briefing. screen_stocks and compare_stocks are clearly distinct for multi-stock scenarios.

    Naming Consistency4/5

    Three tools follow verb_noun pattern (analyze_stock, screen_stocks, compare_stocks), but stock_report breaks the pattern as noun_noun. Singular/plural inconsistency also appears (stock vs stocks).

    Tool Count5/5

    Four tools provide a focused set for A-share analysis: single-stock analysis, screening, detailed report, and comparison. This is well-scoped and each tool has a clear purpose.

    Completeness4/5

    Core analysis workflows are covered (analyze, screen, report, compare), but there is no direct tool for historical price data or sector-level scans. Minor gap that agents can work around via analyze_stock.

  • Average 3.8/5 across 4 of 4 tools scored. Lowest: 3.2/5.

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

    • No community issues in the last 6 months
    • 6 commits in the last 12 weeks
    • No stable releases found
    • No critical vulnerability alerts
    • No high-severity vulnerability alerts
    • No code scanning findings
    • CI is passing
  • Add a LICENSE file by following GitHub's guide. Once GitHub recognizes the license, the system will automatically detect it within a few hours.

    If the license does not appear after some time, you can manually trigger a new scan using the MCP server admin interface.

    MCP servers without a LICENSE cannot be installed.

  • 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?

    With no annotations provided, the description carries the full burden of behavioral disclosure, yet it reveals little beyond the output shape. It does not state whether the tool performs live data lookups, whether it is read-only, what happens for invalid or non-A-share symbols, or any potential failure modes. The 'A 股' scope is a useful constraint but insufficient for a financial data tool.

    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 compact and well-structured: a single purpose sentence followed by a lean Args block. Every line earns its place, the most important information is front-loaded, and the parameter documentation follows a standard readable format with no filler.

    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?

    For a simple two-parameter tool, the description covers the essentials — purpose and parameter semantics — adequately. However, with zero annotations and no output schema, it should offset those gaps by disclosing more behavioral context, such as data sources, read-only guarantees, or failure behavior, and by hinting at when it should be selected over analyze_stock. Those clear gaps keep it at minimum viable rather than better.

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

    Parameters4/5

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

    Schema description coverage is 0%, so the description must compensate, and it does: the Args section explains symbol's accepted formats (code or name, with concrete examples '600519 / 贵州茅台') and include_risk's meaning and default value (True). This adds real value beyond the bare schema; the only minor gap is the lack of stricter format constraints for symbol beyond the example.

    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 uses a specific verb ('生成' / 'generate') and a specific resource ('单只 A 股标的的公司概览与风险点简报' — company overview and risk briefing for a single A-share stock). The '单只' (single) scope differentiates it from screen_stocks and compare_stocks, but it never distinguishes itself from the near-sibling analyze_stock, leaving ambiguity about when each single-stock tool is appropriate.

    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?

    There is no guidance on when to use this tool versus its alternatives. It neither names sibling tools nor states exclusion conditions (e.g., 'for broader screening, use screen_stocks'), and the closest sibling analyze_stock is not mentioned at all. The single-stock scope is an implication of the purpose, not explicit usage guidance.

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

  • Behavior3/5

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

    With no annotations, the description bears full responsibility for behavioral disclosure. It clearly states what the tool returns (price, key financials, LLM points) and that it uses an LLM, but it omits potential side effects like data freshness, error behavior, or whether real-time data is used.

    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 concise and well-structured: a short purpose statement followed by a compact Args section. Every sentence adds value, with no redundancy or unnecessary detail.

    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 absence of annotations and output schema, the description provides adequate coverage of purpose and parameters but lacks depth on output format specifics, financial metrics included, or selection criteria against sibling tools. It is sufficient for a simple tool but leaves some gaps.

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

    Parameters4/5

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

    Schema description coverage is 0%, so the description compensates by explaining each parameter with concrete examples. It clarifies that 'query' is a natural language request and 'symbol' is optional with a specific code/name format, adding value beyond the bare 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?

    Description clearly states the tool analyzes A-share stocks using natural language and returns price, key financials, and LLM-generated investment points. This specific verb+resource+output distinguishes it from siblings like screen_stocks (screening) and compare_stocks (comparing).

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

    Usage Guidelines3/5

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

    The description provides usage context through query and symbol examples, implying when to use the tool (for natural language stock analysis). However, it does not explicitly mention when not to use it or alternatives such as stock_report or screen_stocks, leaving tool-selection guidance vague.

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

  • Behavior3/5

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

    No annotations are provided, so the description carries the transparency burden. It discloses that the output is an LLM-generated conclusion, which is a notable behavioral trait, and mentions default core financial indicators. However, it does not cover limitations, permission requirements, or output structure.

    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 two short paragraphs, front-loading the purpose and then listing parameters. Every sentence earns its place with no redundancy.

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

    Completeness4/5

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

    The tool is simple (2 params), and the description covers purpose, parameters, and output nature. However, without an output schema, it could further specify the structure of the comparison conclusion or constraints on the number of symbols, leaving a small gap.

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

    Parameters4/5

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

    Schema descriptions are absent (0% coverage), but the description explains both parameters: symbols as a list of codes/names with an example, and metrics as optional English keys with default behavior. This adds essential meaning beyond the bare schema, though valid metric keys are not enumerated.

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

    Purpose5/5

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

    The description clearly states the tool compares key indicators of multiple A-share stocks and returns LLM-generated conclusions. This distinguishes it from sibling tools like analyze_stock (single stock analysis) and stock_report (single stock report).

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

    Usage Guidelines3/5

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

    The description implies usage for multi-stock comparison but does not explicitly state when to use this tool over alternatives. No when-not conditions or alternative tool names are mentioned.

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

  • Behavior3/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. It does disclose a key behavioral trait—returns a score-sorted candidate list—and describes the top_n range. However, it does not explicitly state that the operation is read-only, what happens on invalid queries, or any rate/result limits beyond top_n.

    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 concise and well-structured: a single front-loaded purpose sentence followed by a clean Args list. No wasted words, and every sentence adds value.

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

    Completeness5/5

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

    For a simple 2-parameter tool with no output schema, the description is complete: it covers the query semantics, top_n behavior, and the return format (scored candidate list). No critical gaps for the intended use case.

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

    Parameters5/5

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

    Schema description coverage is 0%, but the description's Args section fully compensates. It explains query with a concrete example ('低估值且高 ROE 的白酒股') and defines top_n's default and range (1-50). This goes beyond the bare schema types.

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

    Purpose5/5

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

    The description states a specific verb ('筛选' / screen), a specific resource ('A 股标的' / A-share stocks), and a concrete output ('返回按得分排序的候选清单' / returns a candidate list sorted by score). This clearly distinguishes it from siblings like analyze_stock and compare_stocks, which perform different operations.

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

    Usage Guidelines3/5

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

    The description implies usage: use when you want to filter stocks by natural language criteria. However, it provides no explicit when-to-use, when-not-to-use, or exclusions relative to the sibling tools. There is no mention of alternatives or complementary tools, so the guidance is only implicit.

    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

finsage MCP server

Copy to your README.md:

Score Badge

finsage 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/MikeWang1994/finsage'

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