Skip to main content
Glama

Server Quality Checklist

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

  • Disambiguation5/5

    Each tool serves a unique, clearly delineated role: capabilities for introspection, resolve for entity mapping, discover for field search, fetch for data retrieval, events for timeline data, backtest for running strategies, benchmark for performance comparison, and status for system health. No two tools overlap in their core function.

    Naming Consistency5/5

    All tool names are single lowercase words (capabilities, resolve, discover, fetch, events, backtest, benchmark, status), following a minimal and uniform naming convention with no mixing of styles such as underscores or camelCase.

    Tool Count5/5

    8 tools provide a well-scoped interface for quantitative finance research, covering the full workflow from exploration to validation without unnecessary redundancy or excessive granularity.

    Completeness5/5

    The set provides a complete lifecycle: capabilities and discover facilitate exploration, resolve handles entity identification, fetch retrieves data, events offers time-series events, backtest tests strategies, benchmark compares against factors, and status monitors the system. There are no evident gaps for the stated purpose.

  • Average 4.1/5 across 8 of 8 tools scored. Lowest: 3.5/5.

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

    • No community issues in the last 6 months
    • 484 commits in the last 12 weeks
    • Last stable release on
    • No critical vulnerability alerts
    • No high-severity vulnerability alerts
    • No code scanning findings
    • CI is passing
  • 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

  • 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 does disclose some behavioral traits by enumerating the data returned (cache size, configured keys, etc.), which suggests a read-only observation operation. However, it doesn't explicitly state that the tool is non-mutating, safe to call, or free of side effects, leaving some ambiguity for a tool without annotations.

    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, tightly packed sentence that front-loads the four key pieces of status information. No wasted words, and the structure is easy to parse. It is appropriately sized for a tool with no input parameters.

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

    Completeness4/5

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

    Given that there are no input parameters and an output schema exists (which likely details return structures), the description is sufficiently complete. It covers the essential scope of the tool. The phrase 'specs tried so far' is slightly vague but does not undermine overall completeness for a status-checking tool.

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

    Parameters4/5

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

    The input schema is an empty object with no parameters, so the baseline of 4 applies. The description doesn't need to explain parameter meanings, and there are none to clarify. The description's list of returned items adds context beyond the empty 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 indicates the tool's purpose by listing the specific status information it exposes (cache size, configured keys, sources available, specs tried). It doesn't use an explicit verb like 'get' or 'show', but the noun-phrase structure is unambiguous. It distinguishes from sibling tools like 'resolve' and 'fetch' by focusing on status observation rather than actions.

    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 the tool or how it compares to alternatives. It doesn't mention scenarios like 'check current cache state' or exclusion criteria. With siblings like 'discover' and 'events', the lack of usage context leaves the agent to infer appropriate timing.

    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 carries the burden. It discloses the data sources and timestamp granularity, which is useful. However, it does not mention any limits, pagination, or side effects. No contradiction.

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

    Conciseness5/5

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

    Two concise sentences with front-loaded purpose. No wasted words.

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

    Completeness3/5

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

    The description gives a good overview but lacks parameter semantics and explicit usage guidance. Output schema exists, so return structure is covered, but input guidance is sparse.

    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 description must clarify parameters. It does not explain 'entity', 'as_of', or 'limit' beyond their names. The description focuses on output, not inputs.

    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 returns a timeline of events for an entity with exact public timestamps, and lists the specific filing types covered. This distinguishes it from siblings like 'fetch' and 'discover', 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 Guidelines3/5

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

    The description implies usage for event studies by noting the minute-level public timestamps, but does not explicitly state when to prefer this over sibling tools or any exclusions. Provides context but no direct comparison.

    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 burden. It states the core behavior and dataset options but does not disclose potential failure modes, whether it is read-only, or any network/access requirements. This is adequate but not rich.

    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 first sentence front-loads the main action, and the dataset list is compact. The rhetorical question adds useful context, though it could be trimmed. Overall, the description is concise and well-structured.

    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?

    Since an output schema exists, return values need not be described. However, the description omits the role of 'run_id' and does not clarify the relationship with sibling tools like 'backtest'. It gives enough to guess but not full operational context.

    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 coverage is 0%. The description lists valid dataset values, but it never mentions the 'run_id' parameter, its purpose, or how it maps to the schema. It partially compensates for the dataset parameter but ignores the required one.

    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 the verb 'Score' and the resource 'a backtest against the published Fama-French factors', which is specific and distinguishes it from siblings like 'backtest' (runs backtests) and 'discover'. The added question about discovering vs rebuilding a factor further clarifies the tool's unique role.

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

    Usage Guidelines4/5

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

    It provides clear context: use this tool to evaluate a backtest against Fama-French factors, and it lists the available datasets. However, it does not explicitly state when not to use it or mention alternatives like 'status' or 'events'.

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

  • Behavior5/5

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

    With no annotations, the description carries the full burden and does an excellent job: it discloses that the engine only sees point-in-time data, costs are charged on turnover, validation is purged cross-validation, and multiple testing correction is applied. It also explains the reset_trials behavior.

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

    Conciseness4/5

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

    The description is well-structured with front-loaded purpose, followed by key behavioral details and parameter-specific notes. It is a bit longer than minimal but every sentence adds useful information, so it earns its place.

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

    Completeness4/5

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

    For a complex tool with 9 parameters, the description covers the core methodology, safety/cost behavior, validation scheme, and signal choices. Output schema exists for return values, so this is adequate. Minor gaps remain on parameter details, but overall it is fairly complete.

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

    Parameters3/5

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

    Schema description coverage is 0%, so the description must compensate. It enumerates valid signal values (momentum_12_1, etc.) and explains reset_trials, but does not clarify start/end, universe, long_pct/short_pct, or rebalance parameters. This is partial compensation given the 9 parameters.

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

    Purpose5/5

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

    The description opens with 'Run a cross-sectional backtest', which is a specific verb+resource that clearly identifies the tool's function. It distinguishes from siblings like 'benchmark' by emphasizing the cross-sectional, point-in-time, and costed nature.

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

    Usage Guidelines4/5

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

    It provides clear context: costs are always charged, no zero-cost mode, and a conditional guideline for reset_trials when starting an unrelated enquiry. However, it does not explicitly compare to alternatives or state when NOT to use this tool.

    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 tool resolves identifiers to a canonical entity key and lists supported formats. However, it does not describe error handling, whether operation is read-only, or any side effects. Some behavioral disclosure exists but not exhaustive.

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

    Conciseness5/5

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

    The description is concise and front-loaded: the first sentence states the core purpose, the second lists accepted inputs and usage guidance. Every word 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 (one parameter, no annotations, output schema exists). The description adequately covers the input types and when to use it. Minor gap: doesn't mention behavior for invalid identifiers, but given the output schema is available, the description is still largely complete.

    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 fully compensates by explaining what the 'identifier' parameter accepts (ticker, CIK with both formats, FRED series, French dataset name). This adds significant meaning beyond the bare 'string' type 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 tool's function: turning any identifier into an entity key that other verbs accept. It names specific input types (ticker, CIK, FRED series, French dataset name), making it distinct from siblings like fetch or discover.

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

    Usage Guidelines4/5

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

    The description explicitly says 'Start here when unsure what an entity is called,' giving a clear when-to-use. It also lists accepted identifier formats. It doesn't contrast directly with sibling tools, but the 'every other verb accepts' phrasing implies the workflow context.

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

  • Behavior4/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 discloses the global search scope and the XBRL behavior with `entity`, but does not mention rate limits, result format, or pagination. However, the output schema may cover return values, and the tool is read-only in nature.

    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?

    Two sentences deliver the core action and key differentiator. No filler or repetition.

    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 has 3 parameters and an output schema, and the description covers the main behavior and special case with `entity`. It does not discuss how results are returned or any limitations, but the presence of an output schema suggests that information is structured elsewhere. Given the simple search nature, it is largely complete.

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

    Parameters3/5

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

    Schema description coverage is 0%, so the description must compensate. It explains the `entity` parameter in depth ('reliable way to find the exact field name for fundamentals'), and implicitly defines `query` as 'plain-English query'. It does not describe `limit`, leaving a gap.

    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?

    States 'Search every source's catalog for fields matching a plain-English query.' This clearly identifies verb, resource, and scope, and distinguishes from siblings by noting 'There is no per-source tool.'

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

    Usage Guidelines5/5

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

    Explicitly says 'This is how breadth is reached. There is no per-source tool,' which tells the agent when to use this instead of per-source alternatives. Also says with `entity` set, it searches XBRL concepts as the reliable way to find exact field names for fundamentals, providing specific usage guidance.

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

  • Behavior5/5

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

    With no annotations, the description carries full behavioral disclosure. It explains point-in-time semantics, how as_of drops non-public rows, includes restatements, and how quarter selects a reporting period. The field-form catalog also sets expectations about what can be fetched. This is rich, non-obvious behavior clearly explained.

    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 efficiently organized: a one-line purpose, a list of field forms with examples, and two key parameter explanations. Every sentence adds value, and the line breaks make it scannable. Despite length, there is no fluff.

    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?

    Complex tool with 8 parameters, no annotations, and an output schema. The description covers field forms, point-in-time behavior, and reporting period selection. It omits explicit guidance on date range parameters (start/end) and limit, but those are relatively intuitive. It comes close to complete but has minor 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 coverage is 0%, so the description must compensate. It thoroughly explains the critical `field` parameter with many examples and covers `as_of` and `quarter` semantically. However, it does not describe `start`, `end`, `limit`, or `form`, leaving some ambiguity for a full parameter set. Still, the most important and confusing parameters are well handled.

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

    Purpose5/5

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

    The description opens with 'Fetch any field from any source, as point-in-time rows,' using a specific verb and resource type. It clearly distinguishes from siblings: 'discover' is for field discovery, while this is the actual fetching tool. The broad but explicit scope makes the purpose unmistakable.

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

    Usage Guidelines4/5

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

    It explicitly says 'Run discover first if unsure' and explains when as_of and quarter matter. While it doesn't enumerate alternatives like events or backtest, the field-form examples and point-in-time semantics give clear context for when this tool is appropriate. It lacks an explicit 'when not to use' but the guidance is strong.

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

  • Behavior4/5

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

    With no annotations provided, the description carries the full burden. It discloses that example calls run as written and that the tool returns metadata, implying a safe read-only operation. However, it does not explicitly state side effects, permissions, or error behavior, leaving some gaps.

    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?

    Three sentences, front-loaded with the core message, and every sentence adds value. No fluff or repetition of schema information.

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

    Completeness5/5

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

    For a zero-parameter tool with an output schema, the description is complete. It explains what the tool returns, how to sequence it (call first), and its relationship to a sibling tool, covering all essential context.

    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?

    The tool has zero parameters, so parameter semantics baseline is 4. The description focuses on the returned fields' arguments rather than the tool's own input, which is appropriate given the empty 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 tool returns a full inventory of what 'Vintage' can answer, including field prefixes, required arguments, and example calls. It distinguishes itself from the discover sibling by noting that discover searches within this surface.

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

    Usage Guidelines5/5

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

    Explicitly says 'Call this first,' giving direct when-to-use guidance. It also names discover as an alternative that searches inside the returned surface, effectively providing a when-not-to-use signal.

    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

vintage MCP server

Copy to your README.md:

Score Badge

vintage 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/RezaSoleymanifar/vintage'

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