Skip to main content
Glama
p1xelapp

solana-nft-mcp

by p1xelapp

Wallet profile

get_wallet_profile
Read-only

Analyze a Solana wallet's NFT holdings: collection shares, floor values, and wallet age. Answer ownership and valuation questions from on-chain data.

Instructions

What a wallet holds and what that means: items grouped by collection with counts and share of the wallet, which collection dominates, how many are listed or compressed, the creator royalty each collection asks for, share of total supply where a supply is known, a floor-times-count CEILING (never called a value) for the largest holdings, and the wallet's age and transaction count from the chain. Answers 'what do they collect', 'how much of X do they own', 'how big a holder are they', 'is this a fresh wallet', 'what is it worth at floor' - with each number labelled for what it is. Read-only; needs no key.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
walletYesWallet address
maxItemsNoCap on items fetched (500 per request). Default 1000.
priceTopNoHow many of the largest collections to price at floor (one paced Magic Eden request each; registry collections add one supply read). Default 5.
includeAgeNoRead the wallet's first/last transaction from the chain (up to 3 RPC calls). Default true.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.17.2

TDQS

A4.2/5.0
Behavior5/5

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

The description goes well beyond the annotations. It explicitly states 'Read-only; needs no key', aligning with readOnlyHint and openWorldHint. It discloses the 'CEILING (never called a value)' nuance, preventing misinterpretation of financial worth. It also transparently mentions pacing for external API requests ('one paced Magic Eden request each', 'up to 3 RPC calls'), informing the agent of potential latency or rate limits. This is rich behavioral disclosure beyond what annotations provide.

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 a single, information-dense paragraph. It front-loads the core purpose ('What a wallet holds and what that means') and then enumerates specific outputs and answerable questions. While somewhat lengthy, every sentence contributes distinct information; there is no redundancy or filler. It is efficiently structured for an agent to scan and understand the scope.

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 compensates by enumerating nearly all the data points returned: grouped items, counts, shares, dominant collection, listed/compressed counts, royalties, supply share, floor ceiling, wallet age, and transaction count. It also covers usage context (read-only, no key, pacing) and the intended questions. For a tool with 4 parameters and this complexity, the description fully equips an agent to understand what to expect and how to interpret results.

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 each parameter (wallet, maxItems, priceTop, includeAge) has clear descriptions including defaults and constraints. The tool description itself does not add parameter-specific semantics; it focuses on outputs. However, it does provide context about why these parameters matter (e.g., priceTop controls how many collections are priced), but that is also in the schema. Thus the description adds no new parameter meaning beyond the schema, warranting the baseline score.

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: analyzing a wallet's holdings, grouped by collection, with counts, dominance, listed/compressed counts, royalties, supply share, and a floor-based ceiling. It explicitly lists the questions it answers, such as 'what do they collect' and 'how big a holder are they', distinguishing it from sibling tools like get_wallet_holdings which likely just returns raw items. The verb 'profile' plus the detailed explanation of outputs makes its function unambiguous.

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 wallet profiling but does not explicitly state when to choose this tool over alternatives. It lists the kinds of insights it provides, which helps an agent infer its use case, but it never names sibling tools like get_wallet_holdings or get_collection_stats or provides exclusion criteria. The 'Read-only; needs no key' note gives some operational guidance but does not address selection among similar tools.

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