Skip to main content
Glama

PlainText Wallet Approval Checker

Server Details

Explains wallet approvals and signature requests in plain language: SAFE, CAUTION or RISK.

Ownership verified
Status
Healthy
Uptime
58.3% over 40 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
Fizzl13/SmartContractExplainer
GitHub Stars
1

TDQS

A4.2/5.0

Scored across 3 tools

Disambiguation5/5

The two core tools are clearly separated: check_wallet_approvals performs a live on-chain lookup, while explain_approval processes an approval JSON payload the user already holds. feedback is unambiguously a meta tool, so an agent can select correctly without confusion.

Naming Consistency4/5

check_wallet_approvals and explain_approval follow a consistent verb_noun snake_case pattern, but feedback breaks the convention as a bare noun. The deviation is minor and still readable.

Tool Count4/5

Three tools is reasonable for a narrow, single-purpose approval checker, with two functional tools plus a feedback channel. It is on the lean side but nothing feels like filler.

Completeness4/5

The server is a read-only checker, and it covers both the on-chain audit case and the explain-existing-data case, which are the two real entry points. Missing operations like batch or multi-chain checks are minor given its stated scope.

Available Tools

3 tools
check_wallet_approvalsCheck Wallet ApprovalsAInspect

Check an EVM wallet's live token/NFT approvals and get a plain-language safety verdict (SAFE, CAUTION, or RISK) with an explanation. The verdict comes from presign-guard's approval audit (who each spender is, which to revoke).

NameRequiredDescriptionDefault
kindNoApproval type to check (default: token)
chainNoChain to check approvals on (default: ethereum)
addressYesEVM wallet address to check, e.g. 0x...

Output Schema

NameRequiredDescription
verdictYesSAFE, CAUTION or RISK
explanationYesPlain-language explanation of what the approval or payload allows

TDQS

A4/5.0
Behavior4/5

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

No annotations are provided, so the description carries the full burden. It discloses that the tool performs a read of live on-chain approvals, that the output is a three-tier verdict with an explanation, and that the verdict comes from presign-guard's audit. It does not explicitly say the operation is read-only or that no transaction is sent, which would be useful given the audit 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?

Two sentences, front-loaded with the core action and outcome, with no wasted words.

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

Completeness4/5

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

Given an output schema exists, the description need not explain return values. It covers purpose, scope, and the source of the verdict, but omits whether the operation is read-only and any rate-limit or permission notes.

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 all three parameters are self-documented with defaults and enums. The description adds context that the check is on an EVM wallet and that token/NFT is selectable, but does not add syntax or meaning beyond the schema, so the 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?

States a specific verb (check) and resource (EVM wallet's live token/NFT approvals), and specifies what it returns (a plain-language safety verdict). It is clearly distinguishable from the siblings explain_approval and feedback.

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 description of what it does, but there is no explicit when-to-use guidance nor a comparison against the sibling explain_approval, which is likely the alternative for approving or explaining a single approval.

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

explain_approvalExplain Approval PayloadAInspect

Explain an arbitrary approval/permission JSON payload in plain language, when you already have the data instead of needing an on-chain lookup.

NameRequiredDescriptionDefault
dataYesArbitrary approval/permission JSON payload to explain

Output Schema

NameRequiredDescription
verdictYesSAFE, CAUTION or RISK
explanationYesPlain-language explanation of what the approval or payload allows

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description must carry behavioral information. It discloses that the tool works on provided data without requiring an on-chain lookup, which implies local processing. However, it does not state that the operation is read-only, side-effect-free, or what permissions it needs, leaving gaps that annotations would normally cover.

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 efficient sentence that front-loads the core purpose and follows with the usage condition. No words are wasted.

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

Completeness4/5

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

Given a single-parameter tool with a complete schema and an output schema present, the description is nearly complete for invocation. Missing only explicit behavioral details (e.g., read-only nature) that annotations would have supplied, but these are not critical for an explain 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 parameter is fully documented in the schema. The description adds no additional semantics about the 'data' parameter beyond restating that it accepts an arbitrary approval/permission JSON payload, matching the schema's own description.

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 (Explain) and resource (approval/permission JSON payload), specifies scope (arbitrary) and output form (plain language). It distinguishes itself from sibling check_wallet_approvals by contrasting with 'an on-chain lookup', allowing an agent to identify the tool without opening schemas.

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 a clear condition for use ('when you already have the data') and an implicit alternative ('instead of needing an on-chain lookup'). It does not explicitly name the sibling tool check_wallet_approvals, but the contrast is sufficient for an agent to choose correctly.

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

feedbackSend feedback (free)AInspect

Report a bug, a missing feature or anything else about this service, in a structured way. Free. A person reads every report; nothing is run or changed automatically.

NameRequiredDescriptionDefault
typeNobug, feature (something missing) or other
contactNoOptional: how to reach you about it
messageYesWhat happened or what you need
endpointNoOptional: the route or tool it is about, e.g. /v1/token

Output Schema

NameRequiredDescription
idYesReport id, to refer to it later
noteNo
typeNo
serviceNo
receivedYestrue: a person will read it

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description must carry the behavioral profile, and it does: the tool is free, a human reads every report, and no automated side effects occur. What's missing is any note on response behavior or follow-up expectations, but the core non-destructive, human-reviewed nature is disclosed.

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

Conciseness5/5

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

Three short sentences, zero padding, with the action and its scope front-loaded ahead of the supporting behavioral notes. Every sentence earns its place.

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

Completeness4/5

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

An output schema exists, so return values need no explanation. For a simple four-parameter submission tool, the description covers purpose and side-effect profile adequately, though it doesn't tell the agent what to expect after submitting.

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 message, type, contact, and endpoint. The description adds no field-level syntax or format guidance beyond what the schema states, 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?

States a specific verb and resource: "Report a bug, a missing feature or anything else about this service." The purpose is unambiguous and the sibling tools (check_wallet_approvals, explain_approval) are unrelated, so no differentiation is needed.

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 clear this is the channel for bug reports, feature requests, and general issues, and adds a key condition: nothing is run or changed automatically, so an agent shouldn't expect remediation. No explicit exclusions or named alternatives appear, but the sibling set makes those unnecessary.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 3 tool updates
    • Changedcheck_wallet_approvals1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": {},
        +  "properties": {
        +    "explanation": {
        +      "description": "Plain-language explanation of what the approval or payload allows",
        +      "type": "string"
        +    },
        +    "verdict": {
        +      "description": "SAFE, CAUTION or RISK",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "verdict",
        +    "explanation"
        +  ],
        +  "type": "object"
        +}
    • Changedexplain_approval1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": {},
        +  "properties": {
        +    "explanation": {
        +      "description": "Plain-language explanation of what the approval or payload allows",
        +      "type": "string"
        +    },
        +    "verdict": {
        +      "description": "SAFE, CAUTION or RISK",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "verdict",
        +    "explanation"
        +  ],
        +  "type": "object"
        +}
    • Changedfeedback1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": {},
        +  "properties": {
        +    "id": {
        +      "description": "Report id, to refer to it later",
        +      "type": "string"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "received": {
        +      "description": "true: a person will read it",
        +      "type": "boolean"
        +    },
        +    "service": {
        +      "type": "string"
        +    },
        +    "type": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "received",
        +    "id"
        +  ],
        +  "type": "object"
        +}
  2. 1 tool update
    • Addedfeedback
  3. 2 tool updates
    • First observedcheck_wallet_approvals
    • First observedexplain_approval

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Non-custodial agent wallet with a transaction preflight that decodes an unsigned EVM tx and flags drain patterns (unlimited/large approval, approve-all, token & NFT transferFrom, proxy upgrade, on-chain permit, approvals hidden in multicall) before signing.
    9
    41 PyPI
    1
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Decodes Ethereum calldata and returns a safety verdict with plain-English explanations of what the transaction does, flagging dangerous actions like unlimited approvals or gasless permits.
    2
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI agents to query multichain balances, inspect smart contracts, and draft DeFi interactions while enforcing anti-drainer protections such as approval blocking, destination whitelisting, spend caps, and human approval gates.
    15 npm
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.