Skip to main content
Glama

Server Quality Checklist

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

  • Disambiguation5/5

    Each tool targets a distinct aspect: portfolio summary aggregates across chains, positions list all, position finds one, actions provide lifecycle events, value history and performance provide different time series, and export handles CSV output. No two tools overlap in purpose.

    Naming Consistency5/5

    All tools follow a consistent verb_vfat_noun pattern: get_ or export_ prefix, vfat_ domain marker, and a specific resource or metric. Singular/plural forms are used logically for list vs. single item.

    Tool Count5/5

    Seven tools is well-scoped for a DeFi metrics server, covering summary, list, detail, history, performance, and export without excess. Each tool earns its place.

    Completeness5/5

    The toolset covers the full read-only analytics surface for vfat positions: portfolio-level summary, position listing, detail lookup, transaction actions, value history, performance metrics, and CSV export. No obvious gaps for the stated purpose.

  • Average 4/5 across 7 of 7 tools scored.

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

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

    Annotations already provide readOnlyHint, idempotentHint, and destructiveHint=false. The description adds return format ('RFC-style CSV text') and dataset options, but does not disclose further behavioral traits like response size, error handling, or authentication needs. No contradiction with 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, well-structured sentence that front-loads the verb 'Exports' and delivers the key information without 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?

    For a tool with 7 parameters and no output schema, the description states the output format (CSV text) and the three dataset types, which is reasonably complete. However, it does not detail the CSV structure or edge cases, but the dataset enum provides necessary context.

    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 all parameters documented. The description repeats dataset options but does not add new meaning beyond the schema. Baseline 3 is appropriate since the schema handles parameter semantics.

    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 purpose: exporting transaction actions, value history, or performance history as CSV text. It distinguishes itself from sibling 'get' tools by emphasizing CSV export for reproducible analysis, which differentiates it from likely JSON-returning functions.

    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 'reproducible analysis' but does not explicitly state when to use this tool over alternatives or provide exclusions. It lacks direct references to sibling tools or when-not-to-use scenarios, leaving the user to infer.

    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?

    Beyond the read-only and non-destructive annotations, the description adds useful behavioral context: it is cross-chain (implying multiple network queries) and relies on a provider for USD valuations. No contradictions with annotations are present.

    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 without redundancy. Every word contributes to conveying the tool's purpose and output composition.

    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?

    With no output schema, the description lists the returned components but does not detail the exact structure or format (e.g., how range status is represented). It is adequate for a compact summary tool but leaves some ambiguity about the response shape.

    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 provides complete documentation for the single parameter (admin_address) with pattern and description. The tool description adds no additional parameter semantics, so a baseline score of 3 is appropriate given the high schema coverage.

    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 with a specific verb ('Returns') and resource ('compact cross-chain position count, protocol breakdown, range status and provider-derived USD totals'). It distinguishes itself from sibling tools that focus on individual positions or actions by highlighting the cross-chain aggregate 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?

    Usage is implied through the word 'summary' and the compact nature of the output, suggesting use for a high-level overview. However, the description does not explicitly state when to use this tool over siblings like get_vfat_positions or get_vfat_position, nor does it mention any exclusions.

    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?

    Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds the scoping constraint (positions reported for an EVM admin address) but does not disclose return format, error behavior, or pagination, which is acceptable given the simple read-only 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?

    The description is a single, front-loaded sentence with no redundant words. It efficiently conveys the tool's purpose and scope without waste.

    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 lookup with rich annotations (read-only, idempotent) and no output schema, the description is complete. It explains what the tool does, the key inputs, and the context (position for an EVM admin address), which is sufficient for an agent to select and invoke it correctly.

    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 thoroughly documents both parameters. The description adds marginal context by linking token_id to the admin address (position found 'among the positions reported' for that address), but the schema already provides the essential semantics.

    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 finds a single position by NFT/token ID for a given EVM admin address. It uses a specific verb ('Finds') and resource ('position'), and the scope ('among the positions reported for an EVM admin address') distinguishes it from siblings like get_vfat_positions (plural) and get_vfat_position_actions.

    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: use when you have a specific token ID and admin address to retrieve one position. However, it does not explicitly mention when not to use it or name alternative tools (e.g., get_vfat_positions for all positions), so it lacks explicit when/when-not 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?

    Annotations already cover the read-only, idempotent, and non-destructive nature. The description adds useful detail about the content (lifecycle actions) but does not disclose additional behavioral aspects like pagination, ordering, or error cases. With annotations present, this is acceptable but not exceptional.

    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 clear sentence, front-loaded with the main action and resource, and includes a concise list of included action types. No fluff or 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?

    For a tool with 7 parameters and no output schema, the description gives a solid summary of what the tool returns but does not specify the return structure (e.g., array vs object, grouping format) or any default behavior for time filters. It is adequate but not fully 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?

    The input schema provides 100% coverage with descriptions for all parameters. The tool description itself does not add any extra meaning beyond the schema, so baseline of 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 returns transaction-grouped lifecycle actions for a single vfat/Sickle position, listing specific action types (deposits, rebalances, etc.), which distinguishes it from sibling tools like get_vfat_position_value_history or get_vfat_portfolio_summary.

    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 provides clear context that this tool is for a single NFT position's actions, implying use when detailed transaction history is needed. However, it does not explicitly mention alternatives or exclusion cases, so it falls short of a 5.

    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?

    Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint, covering the safety profile. The description adds value by specifying the exact metrics returned (APR, ROI, PnL, realized PnL, balance) and the chronological time series nature, which is useful context beyond the 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, well-structured sentence that front-loads the core purpose ('Returns...') and packs all essential information without unnecessary words. Every phrase contributes to understanding the tool.

    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 read-only tool with a full schema (6 params, all described) and strong annotations, the description sufficiently explains the tool's purpose and output content. It could mention the structure of the time series (e.g., array of objects) but is otherwise complete given the schema and annotations.

    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 baseline is 3. The description adds no additional parameter-level semantics beyond what the schema already provides, such as the role of from/to in filtering the time series. It relies entirely on the schema for parameter meaning.

    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 chronological APR, ROI, PnL, realized PnL and balance time series for one vfat/Sickle NFT position.' This is a specific verb+resource with a clear scope (one position) and distinguishes it from siblings like portfolio summary (multi-position) and position value history (value-only).

    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 by specifying 'for one vfat/Sickle NFT position,' which suggests this is for a single position's performance over time. However, it does not explicitly mention alternatives or when not to use it, leaving the agent to infer distinctions from sibling names.

    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?

    The description adds behavioral context beyond the read-only/idempotent annotations by explaining the output is a chronological time series and spans migrations/rebalances. It does not contradict annotations, but it could disclose details like pagination or data availability limitations.

    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 is clear and free of redundant information. Every phrase contributes to understanding the tool's output and scope.

    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?

    With no output schema, the description adequately explains the return values (position value, token balances, in-range status) and the historical scope across migrations. It could be more detailed about time range handling, but the schema covers parameters and the description is sufficient for a read-only 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%, so the parameters are already fully documented. The description does not add significant meaning to parameters, but it aligns with the high coverage baseline without needing to compensate.

    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 chronological time series of position value, normalized token balances, and in-range status across migrations and rebalances. It uses a specific verb and resource, and the scope differentiates it from siblings like get_vfat_position (current state) and get_vfat_position_performance (performance metrics).

    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 historical value tracking across migrations/rebalances, but it does not explicitly state when to use this tool over alternatives or provide exclusions. It gives context but lacks direct comparison to sibling tools.

    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?

    Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false. The description adds useful context about the return content ('provider metrics and underlying position fields') and scope ('all current'), which goes beyond the annotations without contradicting them.

    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 front-loads the main action and resource. It includes enough detail without wasting words, making it easy to parse and understand.

    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 a simple input (one parameter with full schema coverage), strong annotations, and no output schema. The description provides a clear scope and hints at the data returned, which is sufficient for a list-type read operation. It could be more explicit about the return format, but given the simplicity, it is adequately 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?

    The input schema fully describes the single parameter with a pattern and a clear description ('EVM admin/owner address used by vfat'). The description text repeats the notion of an EVM admin address but does not add new parameter semantics, so a baseline score of 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 verb 'Returns' and the specific resource 'all current vfat/Sickle positions reported for an EVM admin address'. It also elaborates on the content ('including provider metrics and underlying position fields'), which distinguishes it from sibling tools like get_vfat_position (singular) and portfolio summary.

    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 implicitly communicates its use case by emphasizing 'all current positions', which differentiates it from more focused tools. However, it does not explicitly mention alternatives or when not to use it, so it stops short of a 5.

    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

vfat-metrics-mcp MCP server

Copy to your README.md:

Score Badge

vfat-metrics-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/Raumberg/vfat-metrics-mcp'

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