Skip to main content
Glama
kukapay

wallet-inspector-mcp

by kukapay

Wallet Inspector MCP

An MCP server that empowers AI agents to inspect any wallet’s balance and onchain activity across major EVM chains and Solana chain.

GitHub License Python Version Status

Features

  • Multi-Chain Support: Queries Solana, Ethereum, Polygon, Binance Smart Chain (BSC), Base, Arbitrum and more.

  • Flexible Output: Balances in ASCII tables, activities and transactions in structured text.

Related MCP server: @y0exchange/mcp

Installation

Prerequisites

  • Python: Version 3.10 or higher.

  • Dune SIM API Key: Obtain from Dune Analytics.

  • Dependency Manager: uv (recommended) or pip.

Setup

  1. Clone the Repository:

    git clone https://github.com/kukapay/wallet-inspector-mcp.git
    cd wallet-inspector-mcp
  2. Install Dependencies:

    Using uv (recommended):

    uv async

    Or using pip:

    pip install mcp[cli] python-dotenv tabulate
  3. Installing to Claude Desktop:

    Install the server as a Claude Desktop application:

    uv run mcp install cli.py --name "Wallet Inspector"

    Configuration file as a reference:

    {
       "mcpServers": {
           "Wallet Inspector": {
               "command": "uv",
               "args": [ "--directory", "/path/to/wallet-inspector-mcp", "run", "main.py" ],
               "env": { "DUNE_SIM_API_KEY": "your_dune_sim_api_key_here"},               
           }
       }
    }

    Replace /path/to/wallet-inspector-mcp with your actual installation path, and your_dune_sim_api_key_here with your Dune SIM API key.

Usage

Interacting with the Server

Use an MCP-compatible client (e.g., Claude Desktop CLI) to query the server. Example natural language queries:

  • Balance Queries:

    • "Check the balance of wallet 0xd8da6bf26964af9d7eed9e03e53415d37aa96045."

    • "What is the balance for wallet DYw8jCTfwHNRJhhmFcbXvVDTqWMEVFBX6ZKUmG5CNSKK?"

    • "Get balances for 0x1234567890abcdef1234567890abcdef12345678 on EVM chains."

  • Activity Queries (EVM only):

    • "Show activity for wallet 0xd8da6bf26964af9d7eed9e03e53415d37aa96045."

    • "Get transaction history for 0x1234567890abcdef1234567890abcdef12345678 on EVM chains."

  • Transaction Queries:

    • "List transactions for wallet 0xd8da6bf26964af9d7eed9e03e53415d37aa96045 with limit 50."

    • "Show transaction history for wallet DYw8jCTfwHNRJhhmFcbXvVDTqWMEVFBX6ZKUmG5CNSKK."

    • "Get the latest 10 transactions for 0x1234567890abcdef1234567890abcdef12345678."

Example Outputs

  • Balance Output:

    Wallet 0xd8da6bf26964af9d7eed9e03e53415d37aa96045 balances:
    
    +----------+-----------------+-------------+
    | Chain    | Token Amount    | USD Value   |
    +==========+=================+=============+
    | ethereum | 605.371497 ETH  | $1842034.66 |
    +----------+-----------------+-------------+
    | polygon  | 100.500000 MATIC| $50.25      |
    +----------+-----------------+-------------+
    | bsc      | 10.000000 BNB   | $600.00     |
    +----------+-----------------+-------------+
    
    Wallet DYw8jCTfwHNRJhhmFcbXvVDTqWMEVFBX6ZKUmG5CNSKK balances:
    
    +----------+---------------+-------------+
    | Chain    | Token Amount  | USD Value   |
    +==========+===============+=============+
    | solana   | 1.000000 SOL  | $20.50      |
    +----------+---------------+-------------+
  • Activity Output (EVM only):

    Wallet 0xd8da6bf26964af9d7eed9e03e53415d37aa96045 activity:
    
    Chain ID: 8453
    Block Time: 2025-02-20T13:52:29+00:00
    Tx Hash: 0x184544c8d67a0cbed0a3f04abe5f958b96635e8c743c070f70e24b1c06cd1aa6
    Type: Receive
    Asset Type: ERC20
    Value: 123.069653 ENT
    USD Value: $0.14
  • Transaction Output:

    Wallet 0xd8da6bf26964af9d7eed9e03e53415d37aa96045 transactions:
    
    Chain: ethereum
    Block Time: 2023-11-07T05:31:56Z
    Tx Hash: 0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef
    From: 0xd8da6bf26964af9d7eed9e03e53415d37aa96045
    To: 0x1234567890abcdef1234567890abcdef12345678
    Value: 0.000320 ETH
    
    Wallet DYw8jCTfwHNRJhhmFcbXvVDTqWMEVFBX6ZKUmG5CNSKK transactions:
    
    Chain: solana
    Block Time: 2023-03-28T09:20:00Z
    Tx Hash: 5SzSbWKM9yZC7cCGMhUhvnYdWQytrk9NBaWwug1gQBKKwNEBvBKqPSfVeYYnZwUuUyvcCHgYhDkTRrB6YBfwzfv8
    From: DYw8jCTfwHNRJhhmFcbXvVDTqWMEVFBX6ZKUmG5CNSKK
    To: 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin
    Value: 0.010000 SOL

Tools

get_wallet_balance

  • Description: Retrieves the balance of a specified wallet address across supported EVM and Solana blockchains.

  • Parameters:

    • wallet_address (str): The wallet address to query (e.g., '0x123...' for EVM chains or 'DYw8jCT...' for Solana).

  • Returns: An ASCII table with balance details (chain, token amount, USD value) or an error message.

  • Supported Chains: Solana,arbitrum,arbitrum,avalanche_c,base,berachain,bnb,ethereum and more.

get_wallet_activity

  • Description: Queries transaction activity for a specified wallet address on supported EVM blockchains.

  • Parameters:

    • wallet_address (str): The EVM-compatible wallet address to query (e.g., '0x123...').

  • Returns: Formatted text with activity details (chain_id, block_time, tx_hash, type, asset_type, value, value_usd) or an error message.

  • Supported Chains: Arbitrum,arbitrum,avalanche_c,base,berachain,bnb,ethereum and more.

get_wallet_transactions

  • Description: Fetches the transaction history of a specified wallet address on supported EVM and Solana blockchains.

  • Parameters:

    • wallet_address (str): The wallet address to query (e.g., '0x123...' for EVM chains or 'DYw8jCT...' for Solana).

    • limit (int, optional): Maximum number of transactions to return (default: 100).

  • Returns: Formatted text with transaction details (chain, block_time, tx_hash, from, to, value) or an error message.

  • Supported Chains: Solana,arbitrum,arbitrum,avalanche_c,base,berachain,bnb,ethereum and more.

License

This project is licensed under the MIT License. See the LICENSE file for details.

Available Tools

3 tools
get_wallet_activityA
Query the activity of a specified wallet address on supported EVM blockchains.

Parameters:
    wallet_address (str): The wallet address to query (e.g., '0x123...'). 
                         Must be a valid EVM-compatible address for chains like Ethereum, Polygon, or BSC.

Returns:
    str: Formatted text with activity information (chain_id, block_time, tx_hash, type, asset_type, value, value_usd) 
         or an error message.
ParametersJSON Schema
NameRequiredDescriptionDefault
wallet_addressYes

TDQS

A3.6/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden of behavioral disclosure. It mentions the tool queries activity and returns formatted text or error messages, but lacks critical details like rate limits, authentication requirements, data freshness, pagination, or what constitutes 'activity' versus transactions. The return format description is helpful but insufficient for full 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?

The description is efficiently structured with a clear purpose statement followed by well-organized parameter and return sections. Every sentence adds value: the opening defines scope, parameter details provide crucial constraints, and return information clarifies output format. No wasted words.

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?

Given the tool's moderate complexity (querying blockchain activity), no annotations, and no output schema, the description is partially complete. It covers the parameter well and describes the return format, but lacks behavioral context like rate limits, error conditions beyond generic 'error message', and differentiation from sibling tools. The return format description helps but doesn't fully compensate for missing annotations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds significant value beyond the input schema, which has 0% description coverage. It provides clear semantics for the single parameter: wallet_address must be a valid EVM-compatible address with examples and supported chains listed. This fully compensates for the schema's lack of documentation.

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 with specific verb ('Query') and resource ('activity of a specified wallet address on supported EVM blockchains'). It distinguishes from sibling tools get_wallet_balance and get_wallet_transactions by focusing on 'activity' rather than balance or transactions 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 its siblings (get_wallet_balance, get_wallet_transactions). It mentions supported EVM blockchains but doesn't specify use cases, prerequisites, or exclusions for this activity query tool.

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

get_wallet_balanceA
Query the balance of a specified wallet address across supported EVM and Solana blockchains.

Parameters:
    wallet_address (str): The wallet address to query (e.g., '0x123...' for EVM chains like Ethereum, 
                         Polygon, BSC, or 'DYw8jCT...' for Solana). Must be a valid address for the target chain.

Returns:
    str: Formatted table with balance information (chain, token amount, USD value) for supported chains or an error message.
ParametersJSON Schema
NameRequiredDescriptionDefault
wallet_addressYes

TDQS

A4.3/5.0
Behavior4/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 adds valuable behavioral context: it discloses the supported blockchains (EVM and Solana), the return format (formatted table with chain, token amount, USD value), and error handling (error message on failure). However, it lacks details on rate limits, authentication needs, or specific error conditions.

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 appropriately sized and front-loaded: the first sentence states the core purpose, followed by structured sections for parameters and returns, with each sentence adding essential 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?

Given the tool's moderate complexity (1 parameter, no output schema, no annotations), the description is mostly complete: it covers purpose, parameters, returns, and supported blockchains. However, it could improve by addressing authentication, rate limits, or specific error scenarios for full contextual coverage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description compensates fully for the 0% schema description coverage by providing detailed semantics: it explains the wallet_address parameter with examples for EVM and Solana formats, clarifies it must be valid for the target chain, and specifies the supported chains, adding significant meaning beyond the basic schema.

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 action ('Query the balance') and resource ('a specified wallet address across supported EVM and Solana blockchains'), distinguishing it from sibling tools like 'get_wallet_activity' and 'get_wallet_transactions' which focus on different wallet data aspects.

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 the wallet address parameter and supported blockchains, but does not explicitly state when to use this tool versus alternatives like the sibling tools, nor does it provide context on prerequisites or exclusions.

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

get_wallet_transactionsA
Query the transactions of a specified wallet address on supported EVM and Solana blockchains.

Parameters:
    wallet_address (str): The wallet address to query (e.g., '0x123...' for EVM chains like Ethereum, 
                         Polygon, BSC, or 'DYw8jCT...' for Solana). Must be a valid address for the target chain.
    limit (int): Maximum number of transactions to return (default: 100).

Returns:
    str: Formatted text with transaction information (chain, block_time, tx_hash, from, to, value, value_usd) 
         or an error message.
ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
wallet_addressYes

TDQS

A4.1/5.0
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. It discloses some behavioral traits: it's a query/read operation (implied by 'query'), mentions supported blockchains and address formats, and specifies the return format. However, it lacks details on error handling, rate limits, authentication needs, or pagination beyond the limit parameter.

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 well-structured and appropriately sized, with a clear purpose statement followed by parameter and return sections. Every sentence adds value: the first defines scope, and subsequent lines detail parameters and output 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?

Given no annotations and no output schema, the description does a good job covering purpose, parameters, and return format. However, it could be more complete by addressing potential errors, rate limits, or how it differs from sibling tools, which would help an agent use it correctly in context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds significant meaning beyond the input schema, which has 0% description coverage. It explains wallet_address with examples for EVM and Solana chains and clarifies limit as a maximum with a default. This fully compensates for the schema's lack of parameter documentation.

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 with specific verb ('query') and resource ('transactions of a specified wallet address'), and distinguishes it from siblings by specifying the exact data returned (transactions vs. activity or balance). It explicitly mentions supported blockchains (EVM and Solana), providing clear scope.

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 the tool queries transactions, but does not explicitly state when to use this vs. siblings like get_wallet_activity or get_wallet_balance. It provides some context with supported blockchains but lacks explicit guidance on alternatives or exclusions.

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 updatesv1.0.0
    • First observedget_wallet_activity
    • First observedget_wallet_balance
    • First observedget_wallet_transactions

TDQS

A3.8/5.0

Scored across 3 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: get_wallet_activity focuses on general activity (like transfers, interactions), get_wallet_balance retrieves current token holdings, and get_wallet_transactions fetches detailed transaction lists. There is no overlap in functionality, making tool selection straightforward for an agent.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern with 'get_wallet_' as a prefix, followed by a specific noun (activity, balance, transactions). This uniformity enhances readability and predictability across the toolset.

Tool Count3/5

With only 3 tools, the set feels thin for a wallet inspector domain, lacking operations like updating or managing wallets, or querying specific transaction details. While the tools cover basic read operations, the scope is minimal and may limit agent capabilities.

Completeness2/5

The toolset is severely incomplete for a wallet inspector. It only provides read operations (get) without any create, update, or delete capabilities, and misses key functions like analyzing transaction patterns, checking token approvals, or interacting with smart contracts, leaving significant gaps for agent workflows.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that gives AI agents real-time access to DeFi across multiple chains, enabling non-custodial crypto trading, portfolio queries, and transaction execution.
    14
    7
    MIT