Skip to main content
Glama
erhnysr
by erhnysr

Server Quality Checklist

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

  • Disambiguation5/5

    Each tool targets a distinct resource: name resolution, account, transaction, faucet, network, and events. No overlapping purposes; even the two status tools (faucet and network) are clearly separated by domain.

    Naming Consistency4/5

    Five tools use the 'get_' prefix, but 'resolve_name' and 'query_events' deviate from that pattern. All follow a verb_noun structure with consistent lowercase styling, so the inconsistency is minor.

    Tool Count5/5

    Six tools is well-scoped for a blockchain read-only server. Each tool covers a distinct domain area without unnecessary redundancy.

    Completeness4/5

    The set covers core read operations: accounts, transactions, names, network health, faucet state, and event queries. It lacks block-level queries and any transaction submission, but those may be intentionally excluded since withdrawal requires the CLI.

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

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

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

  • This repository includes a README.md file.

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

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

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

  • If you are the author, simply .

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

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

    Then . Browse examples.

  • Add related servers to improve discoverability.

How to sync the server with GitHub?

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

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

How is the quality score calculated?

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

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

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

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

Tool Scores

  • Behavior3/5

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

    Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is known. The description adds value by listing the returned data fields but does not disclose any other behavioral aspects like error handling or rate limits. No contradictions 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, direct sentence that immediately states the tool's function and output. No filler 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 simple read-only tool with complete schema coverage and informative annotations, the description adequately summarizes the return content. Although there is no output schema, the listed return categories give a sufficient overview. It could be more explicit about the response format, but it is not necessary for this low-complexity 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 both parameters (signature and statusOnly) well documented, including defaults and types. The tool description adds little beyond mentioning 'by signature', but the schema already carries the semantic weight.

    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 a Thru transaction by signature, using a specific verb and resource. It distinguishes itself from siblings by focusing on transactions rather than accounts, names, or network status. The return fields are also listed.

    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 makes it clear when to use this tool: when you have a signature and need transaction details. It does not explicitly mention alternatives or exclusions, but the context is straightforward. Adding a note about using query_events for searching transactions would improve it.

    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 and openWorldHint=true, which covers the safety profile. The description adds the scope of each query mode but does not disclose additional behavioral traits such as error conditions, response format, or exact pagination behavior, making it adequate but not enriched beyond 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 two sentences, front-loaded with the main purpose, and efficiently enumerates the three usage modes without redundancy. Every clause contributes to understanding, making it highly concise and well-structured.

    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?

    Despite lacking an output schema, the description covers all major functional aspects: fetching by id, listing account history, and chain-wide paging. It does not detail return values or error handling, but given the strong annotations and complete schema coverage, the description is sufficiently complete for a query 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 has 100% description coverage, with each parameter (limit, account, eventId, pageToken, includePayload) already explained. The tool description adds high-level usage context (e.g., eventId for fetching one, account for history, pageToken implicitly for paging) but does not introduce meaning beyond what the schema provides, so the baseline 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 identifies the tool as querying events emitted by Thru programs, with a specific verb and resource. It distinguishes from sibling tools by focusing on events and offering three concrete modes (by id, by account, chain-wide), which goes beyond a generic 'query events' phrasing.

    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 for when to use each mode: fetching a single event, listing an account's history, or paging through recent events chain-wide. However, it does not explicitly mention alternatives like get_transaction or state when not to use this tool, so it lacks explicit exclusions.

    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 and openWorldHint, so the description need not repeat safety. It adds behavioral detail: deriving the program address, decoding the account, and returning owner and records. This goes beyond the annotations, though it doesn't cover error cases.

    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, front-loaded with the main purpose, and every sentence provides essential information without fluff. Excellent structure.

    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 resolver with no output schema, the description adequately explains inputs and outputs. It lacks explicit error cases or detailed return format, but is sufficient given the tool's simplicity and rich schema.

    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 detailed descriptions for both 'name' and 'record' including examples. The description's mention of the input forms is redundant. No additional meaning is provided beyond the schema, so baseline 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 specific verb 'Resolve' and the resource 'Thru name service entry', and explains the transformation to an on-chain account with owner and records. This distinguishes it from siblings like get_account, which fetch by address.

    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 context is clear: use when you have a name to resolve. However, it does not explicitly mention when not to use it or provide alternatives (e.g., get_account for direct addresses), so it falls short of a full 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, and the description adds a useful behavioral detail: balances are returned as raw integer strings, which is important for numeric handling. It doesn't describe error cases or includeData behavior, but the schema covers includeData, so this is an acceptable level of transparency.

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

    Conciseness5/5

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

    Two concise sentences, front-loaded with the action and resource, no redundant wording. Every sentence earns its place.

    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?

    Given the tool's simplicity (2 params, no output schema), the description adequately covers what the tool does and what it returns. The annotations cover safety, and the schema covers parameter details, so combined with the description, it is complete for an agent to select and invoke 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% for both parameters (address and includeData), so the description doesn't need to add extra semantics. The mention of 'public key' aligns with the schema's address description but adds no new information.

    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: looking up a Thru account by public key and returning specific fields (balance, nonce, owner program, size, flags). It distinguishes itself from sibling tools like get_transaction or get_network_status by focusing on account-level data.

    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?

    Provides clear context for when to use: whenever you need account details by public key. It does not explicitly mention exclusions or alternatives, but the sibling list and specific wording make the usage context obvious.

    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 mark it as readOnly and openWorld, so safety is established. The description adds value by detailing exactly what health metrics are checked (node readiness, consensus, chain id, block heights, versions), giving the agent a concrete expectation of behavior 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?

    Single sentence, direct and information-dense. It front-loads the action and resource, then lists specific health aspects with no filler 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 no-parameter read-only status check, the description covers the essential scope (what health includes). It doesn't detail the exact output structure, but given the simplicity and the absence of parameters, the description is sufficiently complete for an agent to invoke and interpret results.

    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 the schema is empty. The description correctly avoids inventing parameters and the baseline of 4 applies since no parameter semantics are needed.

    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 the specific verb 'Check' and clearly identifies the resource ('the configured Thru RPC endpoint') followed by concrete sub-aspects (node readiness, consensus state, chain id, block heights, versions). This distinguishes it from sibling tools focused on accounts, transactions, or events.

    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 context of use is clear: call this when you need endpoint health or status information. It doesn't explicitly mention exclusions or alternative tools, but the scope is well-defined enough that an agent can infer when it's appropriate.

    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?

    Annotations already declare readOnlyHint=true and openWorldHint=true. The description adds valuable context beyond that: it explains that the faucet is on-chain rather than HTTP, and that withdrawals require a signed transaction with a funded fee payer. This discloses behavior not captured by annotations and helps the agent understand the operational 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 two sentences: the first states what the tool does, the second clarifies read-only status and provides a path for the alternative action. Every sentence earns its place, with no filler or redundant wording.

    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?

    With no parameters, no output schema, and annotations covering safety, the description provides complete information. It explains the expected output (balance and withdraw limit) and gives essential context about the on-chain nature and withdrawal process, making the tool fully usable.

    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 has zero parameters, so baseline is 4. The description correctly avoids inventing parameters and instead focuses on what the tool reports. No parameter documentation is needed.

    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 ('Report') and identifies the exact resource ('on-chain Thru faucet account') with the precise data it returns ('current balance and the per-transaction withdraw limit'). This clearly distinguishes it from sibling tools like get_account or get_transaction, which are general-purpose.

    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?

    It explicitly states the tool is read-only and contrasts it with the alternative for withdrawal: 'Thru exposes no HTTP faucet, so actually withdrawing requires submitting a signed transaction to the faucet program with a funded fee payer (use the `thru` CLI: `thru faucet withdraw`).' This gives clear when-to-use and when-not-to-use guidance, naming the exact alternative.

    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

thru-mcp-server MCP server

Copy to your README.md:

Score Badge

thru-mcp-server 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/erhnysr/thru-mcp-server'

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