Skip to main content
Glama

Server Quality Checklist

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

  • Disambiguation4/5

    Each tool targets a distinct part of the ledger lifecycle, but verification-related tools overlap in behavior: ledger_verify, prove_my_conduct, and verify_peer_ledger all return three-valued chain verdicts. The descriptions are explicit about local vs peer vs proof use cases, so an agent can disambiguate with care.

    Naming Consistency3/5

    Naming is mixed: ledger_append and ledger_verify use a noun_verb pattern, while prove_my_conduct, verify_peer_ledger, and declare_break use verb_noun patterns. All names are snake_case and readable, but the inconsistent structural convention makes the set less predictable.

    Tool Count5/5

    Five tools is well-scoped for a specialized ledger server. Each tool covers a meaningful operation without unnecessary bloat, and the count fits comfortably within the expected range for a focused tool set.

    Completeness3/5

    The core append, verify, declare-break, proof, and peer-verification operations are present, but there is no tool to export or read the local ledger as JSONL, which verify_peer_ledger explicitly consumes. This is a notable gap that forces agents to obtain the ledger text through out-of-band means.

  • Average 4.2/5 across 5 of 5 tools scored.

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

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

  • This server has been verified by its author.

  • 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

  • Behavior4/5

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

    With no annotations provided, the description carries the full disclosure burden and largely meets it: it explains the three-valued chain_verified verdict (true only if EVERY row verified, null for bounded scans, false if altered) and the property that earlier head_hash holders can re-verify the history. It does not cover failure modes, irreversibility of writes, or authentication requirements, which keeps it just short of a 5.

    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 purpose is front-loaded in one efficient sentence, and the dense middle content justifies itself by explaining a genuinely subtle three-valued return contract in the absence of an output schema. The only slight redundancy is stating the head is handed to the principal and later that earlier holders can check it — a minor overlap, not filler.

    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 no output schema and no annotations, the description fully specifies the return contract — the meaning of rows, head_hash, and each branch of the three-valued chain_verified — while the schema fully covers both parameters. The remaining gaps are the lack of explicit sibling-tool routing and unstated failure/authorization behavior, but the core calling contract is complete enough for correct 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?

    Schema description coverage is 100% and the schema already documents both parameters thoroughly: events gets ordering plus empty-list read-back semantics, and namespace gets character/path-safety constraints. The description adds no parameter-level meaning beyond the schema, so the baseline of 3 applies because the schema carries that burden.

    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 first sentence names a specific action ('Log a batch of things you just did') and a specific resource ('your own tamper-evident ledger'), plus the concrete deliverable ('one chain head you can hand your principal as proof'). This distinguishes it from siblings like verify_peer_ledger (which concerns peers) and declare_break (which marks broken rows). The verb, resource, and output are all explicit.

    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 implicitly scopes the tool to 'your own' ledger, suggesting verify_peer_ledger for external ledgers, but it never names the alternative or states the selection condition. There is also no explicit guidance on when to reach for prove_my_conduct versus ledger_append for record-writing needs. The agent must infer the routing rather than being told.

    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, the description carries the full burden and largely succeeds: it discloses zero side effects, no access to the peer's machine, and a three-valued ok result with an explicit warning not to treat null as a pass. It also explains first_break as a line number and nuances declared_breaks. The one flaw is referencing `verified_scope` without defining it, leaving a gap in an otherwise thorough behavioral disclosure.

    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 long (~180 words) but dense and front-loaded with the trigger scenario and core operation. Every sentence earns its place given there is no output schema to offload return-value semantics. The dangling reference to `verified_scope` is a minor structural wart, and the 'mark of honesty, not integrity' phrasing is slightly elaborate, but overall the length is justified by the complexity.

    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 annotations and no output schema, the description explains most of the return semantics (ok, first_break, declared_breaks) and side effects. However, `rows` is never described, and the description explicitly instructs the agent to read `verified_scope` without defining it — a real gap for an agent trying to interpret the result. Error behavior for malformed JSONL is also unaddressed, leaving the description mildly incomplete for a complex trust-decision 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 coverage is 100%, so the baseline is 3. The description adds contextual reinforcement (verification operates 'over the text alone') but does not materially enrich the parameters beyond what the schema already says, particularly for strict, which the schema documents fully. No deduction, but no credit beyond baseline.

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

    Purpose5/5

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

    The description states a specific verb, resource, and scenario: decide whether to trust another agent's exported ledger as JSONL text by recomputing its hash chain. The framing ('no access to their machine, no writes on yours') implicitly but clearly distinguishes it from sibling tools like ledger_verify, which operate on one's own ledger, and ledger_append/declare_break, which mutate or annotate it.

    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 opening line gives a clear, concrete trigger condition: use this when another agent hands you its exported ledger and you must decide whether to trust it. It does not explicitly name alternatives or state when not to use it (e.g., 'use ledger_verify for your own ledger'), so it stops short of a 5, but the context is unambiguous.

    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 behavioral disclosure burden. It reveals that the log is tamper-evident and hash-chained, that appending is the operation, and that the tool returns the record's chain hash. It could mention permanence or permission requirements more explicitly, but the core write behavior is transparent.

    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, with the primary action and return value front-loaded, followed by a concise usage directive. Every sentence contributes information and there is no redundant or filler text.

    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 single-parameter tool with full schema coverage, the description adequately covers what the tool does, when to use it, and what it returns. It does not explicitly mention the auto-added ts field, but that is already in the schema. Minor gaps such as error behavior or permissions do not make it insufficient.

    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% and the schema already documents that 'record' can be any JSON object describing the action, with a ts timestamp added if absent. The description adds no parameter-specific detail beyond calling it an 'action record,' so the schema 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 opens with 'Append one action record to a tamper-evident, hash-chained log,' which states a specific verb, resource, and effect. It also names the return value (chain hash) and clearly separates this append-side tool from verification siblings like ledger_verify and prove_my_conduct.

    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 gives explicit usage context: 'Use this to log every consequential action (tool calls, payments, decisions) so the history can later be proven unaltered.' It does not explicitly call out when not to use it or contrast it with alternatives, but the intended use case is clear.

    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 provided, the description carries the full burden and handles it well. It discloses the three-valued verdict, the subtle ok=null case where prechain rows are skipped unverified, the verified_scope value, and exactly what strict=true changes. This is rich behavioral disclosure beyond the schema.

    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 tightly packed sentences with no filler. The core action is front-loaded, and every clause earns its place by explaining verdict semantics, edge cases, or the strict flag.

    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 there is no output schema, the description fully covers return values, the three verdict states, the prechain edge case, and the strict parameter. The behavior is sufficiently complete for an agent to call and interpret the tool 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 baseline is 3. The description largely repeats the strict parameter semantics already present in the schema, adding only the phrase 'hard failure instead of a skip.' This adds little meaning beyond what the schema already provides.

    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 states a clear verb and resource: 'Verify the hash chain over the log,' and goes on to detail the exact verdicts returned. It does not explicitly distinguish itself from the sibling tool verify_peer_ledger, although the focus on local 'log' semantics and prechain behavior provides reasonable differentiation.

    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 gives clear context for when to use the tool—when hash-chain verification is needed—and explains the strict=true opt-in for stricter behavior. It does not explicitly name alternatives or state when not to use this tool over verify_peer_ledger, 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.

  • 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 so thoroughly. It discloses append-only behavior, permanent retention, the effect on the verdict (ok=null), the one-break-at-a-time limit, and the refusal condition when nothing is broken.

    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 dense but every sentence earns its place: context, action, side effects, limits, and failure conditions are all covered without redundancy. The key behavior is front-loaded with the append-only clarification following immediately.

    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 tool with no annotations and no output schema, the description is remarkably complete. It explains the semantics, permanence, refusal behavior, and constraints, leaving no critical gap that would prevent an agent from invoking 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 baseline is 3. The description reinforces that a reason is required and references the ledger context, but it does not add materially new parameter-level meaning beyond what the schema already provides.

    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 names a specific verb and resource: declaring a break by appending a row to one's own ledger. It clearly distinguishes itself from siblings by limiting scope to the agent's own ledger and by explicitly describing the append semantics and refusal behavior.

    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 clearly implies when to use it: after verification has found a break, on the agent's own ledger, and only when something is actually broken. It does not explicitly name sibling alternatives, but the scope and refusal conditions provide enough guidance to select it correctly.

    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

ledger MCP server

Copy to your README.md:

Score Badge

ledger 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/dan8433-user/ledger'

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