Skip to main content
Glama
matteoantoci

MCP Tiingo Server

by matteoantoci

Server Quality Checklist

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

  • Disambiguation5/5

    Each tool targets a distinct financial data endpoint (e.g., EOD, forex, fundamentals, dividends, splits, news). Related tools like dividend distributions vs. dividend yield are clearly separated by their data type.

    Naming Consistency5/5

    All tool names follow a consistent 'get_' prefix followed by a descriptive resource name in snake_case. No mixed conventions or vague verbs.

    Tool Count5/5

    11 tools is well-scoped for a financial data server covering multiple asset classes and data categories. Each tool represents a meaningful data category without unnecessary bloat.

    Completeness4/5

    The tool set covers major Tiingo API areas like EOD prices, forex, fundamentals, dividends, splits, and news. Minor gaps exist (e.g., crypto data, real-time equities), but the core workflows are well-supported.

  • Average 3.3/5 across 11 of 11 tools scored.

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

    • No community issues in the last 6 months
    • 0 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
  • 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?

    No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states the basic fetch operation and lists statement types, but does not disclose authorization needs, rate limits, data coverage, response format, or any side effects. This is minimal transparency that leaves important runtime behavior unspecified.

    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, focused sentence of approximately 16 words that front-loads the verb and the primary resource. There is no filler or redundant content, making it appropriately concise and well-structured.

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

    Completeness2/5

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

    With no output schema and no annotations, the description needs to cover more behavioral context, but it does not. Although it lists the four statement types, it omits how optional parameters shape the query, what the returned data structure looks like, and whether the data is as-reported or adjusted. These gaps leave the description insufficiently complete for reliable tool invocation.

    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 descriptions for all five parameters, giving 100% coverage, so the baseline is 3. The description does not add extra meaning beyond the schema—for example, it doesn't explain how year/quarter interact with startDate/endDate or what happens when date parameters are omitted. It provides no added parameter-level insight.

    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 action ('Fetches') and resource ('historical fundamental statement data' with Balance Sheet, Income Statement, Cash Flow, Overview). It is specific enough to understand the tool's scope, but it does not explicitly differentiate from sibling tools like get_fundamentals_daily_metrics or get_fundamentals_meta.

    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. There is no mention of exclusions, prerequisites, or comparison with the sibling fundamental data tools, leaving the agent without explicit usage direction.

    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, the description carries the full burden of disclosing behavior. It only says 'fetches,' implying a read operation, but provides no details on side effects, permissions, rate limits, or return format. 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, concise sentence with no wasted words. It is front-loaded with the action and subject. However, it is slightly vague ('meta data') and could benefit from a clarifying phrase, so it doesn't earn a 5.

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

    Completeness2/5

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

    Given no output schema and no annotations, the description should explain what the tool returns and how it relates to siblings. It does neither, leaving the agent with incomplete information about the tool's purpose and output.

    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, and the schema coverage is trivially 100%. The baseline for no parameters is 4, and the description adds no unnecessary parameter details since there are none to document.

    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 fetches fundamental meta data for companies, with a specific verb and resource. However, it does not distinguish this from sibling tools like get_fundamentals_statements or get_fundamentals_definitions, so it misses the top score.

    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?

    No guidance is provided on when to use this tool versus alternatives. There is no mention of typical scenarios, prerequisites, or exclusions, leaving the agent to infer usage from the name alone.

    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, the description must carry the burden of behavioral disclosure. It only says "fetches," which implies a read operation, but does not explain output format, pagination, rate limits, default behavior, or how filters interact. For a tool with 10 optional parameters and no output schema, this is a notable transparency 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?

    A single sentence that fronts the essential action and resource. It's efficient and readable, though "various filtering options" is somewhat weak filler. Still, it earns its place as a concise summary.

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

    Completeness2/5

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

    The tool has 10 optional params, no annotations, and no output schema, so the description needs to compensate with behavioral context. It does not describe what the response contains, how filters combine, or any defaults. This is incomplete for a realistically complex tool.

    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 100%, with each parameter already described in the input schema. The description's "various filtering options" adds no new semantic value, but the schema does the heavy lifting, so the baseline 3 is appropriate.

    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?

    "Fetches news articles from Tiingo" clearly states the action and resource, and distinguishes this tool from sibling tools that handle prices and fundamentals. The phrase "with various filtering options" is vague, so it doesn't earn a 5, but the core purpose is unambiguous.

    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?

    Usage is implied by the tool name and sibling context: use this when news articles are needed, not price or fundamental data. The description does not explicitly state when to choose this over alternatives or when not to use it, so it provides only implicit guidance.

    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?

    There are no annotations, so the description carries the full burden of behavioral disclosure. It implies a read-only operation but does not explicitly state safety, return format, or any constraints such as date-range handling. The description is minimal and does not add behavioral context beyond the action itself.

    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 concise sentence that is front-loaded with the action and resource. It contains no redundant or verbose wording.

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

    Completeness2/5

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

    Given the lack of annotations and output schema, the description is insufficiently complete. It does not explain what constitutes a 'distribution' or clarify the optional date parameters' role. The tool may return data, but no context on expected results or usage scenarios is provided.

    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 100%, so the schema already fully documents the parameters. The description adds no additional meaning beyond restating 'given a ticker,' which is already in the schema. Baseline 3 is appropriate.

    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 fetches historical dividend and distribution data for a ticker, using a specific verb ('Fetches') and resource. It distinguishes from sibling tools like get_dividend_yield by focusing on historical distributions rather than yield metrics.

    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?

    No guidance is provided on when to use this tool versus alternatives. Siblings include get_dividend_yield, which could be confused with this tool, but the description offers no comparative context or exclusion criteria.

    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. It only states that it fetches data, implying a read operation, but does not disclose behavior such as default date ranges, handling of invalid tickers, rate limits, or output format. For a data retrieval tool without output schema, 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, concise sentence that immediately states the action and resource. It contains no filler or redundant repetition of the tool name. Every word contributes to the meaning, making it appropriately sized and front-loaded.

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

    Completeness2/5

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

    Given the absence of an output schema and annotations, the description should provide additional context about return values, date range handling, or potential caveats. It does none of this, leaving the agent uncertain about what data will be returned or how the optional parameters affect the output. The tool has moderate complexity (4 parameters, temporal filters), so this is a significant gap.

    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 provides descriptions for all four parameters (ticker, columns, endDate, startDate), covering 100% of them. The description adds no extra semantic meaning beyond what the schema already provides, so the baseline score of 3 applies.

    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: 'Fetches historical dividend yield data for a given ticker.' It uses a specific verb ('fetches') and a specific resource ('historical dividend yield data'), which distinguishes it from sibling tools like get_dividend_distributions (which deals with distributions) and get_fundamentals_daily_metrics (which covers other metrics).

    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?

    No guidance is provided regarding when to use this tool versus alternatives. It does not mention that this is for historical yield analysis, nor does it exclude use cases such as live yield or distribution data. There are no explicit alternatives or contextual cues beyond the name itself.

    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, the description carries the full burden. It only uses 'fetches,' which implies a read operation, but does not disclose return format, pagination, defaults, authentication needs, or any potential side effects, which is insufficient for a tool with no other behavioral cues.

    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 9-word sentence with no filler. It is direct, front-loaded, and every word earns its place, making it excellent for a simple fetch 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?

    The description is adequate for a simple read-only tool, and the schema covers all parameters. However, without an output schema or annotations, the description does not explain return format, date range defaults, or how this tool complements siblings, leaving moderate gaps.

    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 schema already provides full descriptions for all 4 parameters, so the description adds no additional meaning. Since schema coverage is 100%, the baseline of 3 is appropriate; the description neither enhances nor detracts.

    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 'Fetches daily fundamental metrics for a given ticker' is specific and clear, using a distinct verb and resource. It differentiates from siblings like get_fundamentals_statements and get_fundamentals_meta by emphasizing 'daily' metrics.

    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?

    No guidance is provided on when to use this tool versus alternatives. The description does not mention any use cases, exclusions, or reference sibling tools, leaving the agent to infer suitability from the name alone.

    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 only states the basic action (fetching data) without detailing response format, date-range behavior, pagination, or error conditions. It does not add meaningful transparency beyond what the tool name already conveys.

    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 sentence that is front-loaded with the key verb and resource. Every word earns its place and there is no extraneous content.

    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 tool is relatively simple and the schema provides good parameter definitions, but with no output schema and no annotations, the description should at least hint at the return shape or filtering behavior. It does neither beyond stating 'historical split data', leaving some ambiguity for an agent. Overall, it's adequate but not rich.

    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 100%, so the schema already explains all parameters: ticker (required), startExDate, and endExDate. The description's phrase 'for a given ticker' adds minimal context but does not explain the date parameters or their interaction. Baseline 3 applies because the schema handles parameter semantics adequately.

    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 'Fetches historical split data for a given ticker' uses a specific verb ('Fetches'), identifies the resource ('historical split data'), and the ticker scope. It clearly distinguishes from sibling tools like get_dividend_distributions or get_end_of_day_prices because it targets splits specifically.

    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 does not mention exclusions, preconditions, or related tools. The usage context is only implied by the tool name and resource, so an agent gets no explicit decision support.

    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 provided, the description carries the burden of disclosing behavior. It clearly indicates a read operation ('Fetches') and mentions optionality of date range and format. However, it does not specify output format details, pagination, rate limits, or error behavior, and the term 'format' is ambiguous (could refer to resample frequency or output formatting).

    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, front-loaded sentence that immediately states the action and resource, then mentions key optional parameters. There is no redundant or repetitive content, making it appropriately concise.

    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 tool with no output schema, the description gives the essential return (prices) but lacks detail on output structure, asset class scope, and differentiation from siblings like get_forex_prices. The ambiguity around 'format' and lack of usage boundaries leave significant gaps for an agent deciding when and how to invoke this tool.

    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 already provides descriptions for all four parameters (100% coverage), so the main description adds limited value beyond echoing that there is an optional date range. The mention of 'format' is not clearly mapped to resampleFreq, which could cause minor confusion, but the schema's parameter descriptions are sufficient.

    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 a specific action ('Fetches') on a specific resource ('End-of-Day prices') with the object being 'a given ticker symbol'. This distinguishes it from sibling tools like get_forex_prices or get_fundamentals_statements, which focus on other data types.

    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 parameter-level usage ('optional date range and format') but does not explain when to choose this tool over alternatives. It lacks explicit guidance on asset class coverage (e.g., stocks vs forex) or exclusions, leaving the agent to infer from the tool name and sibling context.

    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 provided, the description carries the full burden of behavioral disclosure. It states the tool fetches historical intraday data with optional date range and frequency, but does not disclose output format, data granularity, or limitations such as supported date ranges. It provides basic context but lacks depth.

    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, concise sentence that directly states the tool's function and key parameters. It is front-loaded and contains no unnecessary words, making it highly efficient.

    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 covers the core purpose and parameter options, but given the absence of an output schema and annotations, it does not describe the return structure or default behavior for optional parameters. It is adequate but not fully complete for an agent to understand the full behavior.

    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 100%, so the schema already documents all four parameters. The description only summarizes them ('date range and frequency') without adding new semantic detail beyond what is already in the schema, earning the baseline score.

    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 uses a specific verb ('fetches') and resource ('historical intraday Forex prices'), clearly distinguishing it from sibling tools like get_end_of_day_prices by emphasizing 'intraday'. This makes the tool's purpose unambiguous.

    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 intraday forex data through the word 'intraday', but it does not explicitly state when to use this tool versus alternatives or mention any exclusions. No alternative tool names are referenced, so guidance is only implied rather than explicit.

    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?

    There are no annotations, so the description must carry the behavioral burden. It does disclose that this is a read operation ('Fetches') and adds 'real-time' and 'Top-of-Book/Last', but it does not explain data limitations, authorization needs, or the meaning of 'Last' in this context.

    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, compact sentence that immediately states the function and scope. No unnecessary words or repetitions.

    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 fetch tool, the description is adequate but incomplete: it lacks differentiation from the similar get_forex_prices tool and does not describe the return format or top-of-book terminology. The absence of an output schema means the description should clarify what data is returned, which it does not.

    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 100%, giving a baseline of 3. The phrase 'one or more ticker symbols' adds a slight clarification that multiple symbols can be requested, but it does not explain the relationship between 'ticker' and 'tickers' nor which parameter is required.

    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 action ('Fetches') and the resource ('real-time Forex Top-of-Book/Last data'), and notes support for one or more ticker symbols. This differentiates it from sibling tools like get_forex_prices and get_end_of_day_prices by specifying the real-time top-of-book nature.

    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 real-time top-of-book data, but does not explicitly say when to choose this over get_forex_prices or other siblings. No exclusions or alternative recommendations are provided, leaving the selection based on the tool name and resource description.

    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 provided, the description carries the full burden of behavioral disclosure. The verb 'fetches' implies a read-only operation, but the description does not add context about response format, whether the values are static, or any potential limits. For a zero-parameter reference tool, this is adequate but minimal.

    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, concise sentence that immediately conveys the tool's purpose. There is no unnecessary detail or repetition, earning a perfect score for efficiency.

    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 simple, zero-parameter tool with no output schema, the description adequately covers the core functionality: it returns available fundamental metrics and their definitions. It could be slightly more explicit about the return format (e.g., 'a list of metric names with definitions'), but the current wording is clear enough for an agent to understand the tool's role.

    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 no parameters, so the description does not need to explain parameter meanings. The schema shows an empty properties object, and the description sufficiently indicates that the tool returns available metrics and definitions. Per the rubric, zero parameters warrant a baseline score of 4.

    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: 'Fetches available fundamental metrics and their definitions.' It uses a specific verb ('Fetches') and identifies the resource ('available fundamental metrics and their definitions'), making it easy to distinguish from sibling tools like get_fundamentals_statements or get_fundamentals_daily_metrics, which focus on data retrieval rather than definitions.

    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 does not mention that it is a reference lookup for understanding metric definitions, nor does it contrast with siblings such as get_fundamentals_meta or get_fundamentals_statements. The agent is left to infer usage from the name alone.

    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

mcp-tiingo MCP server

Copy to your README.md:

Score Badge

mcp-tiingo 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/matteoantoci/mcp-tiingo'

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