Skip to main content
Glama

get_assets

Retrieve all native and token assets held by a wallet. Filter by network and convert values to a preferred display currency.

Instructions

Get all assets (native + tokens) held by the wallet.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
networkNoQuery assets for specific network (e.g., "polygon-mainnet" or CAIP-2 "eip155:137"). Use "all" for all networks. Required for EVM wallets; auto-resolved for Solana.
display_currencyNoDisplay currency for asset value conversion (e.g. KRW, EUR). Defaults to server setting.
wallet_idNoTarget wallet ID. Required for multi-wallet sessions; auto-resolved when session has a single wallet.

Implementation Reference

  • The registerGetAssets function registers the 'get_assets' tool on the MCP server. The handler makes a GET request to '/v1/wallet/assets' with optional query params: network, display_currency, wallet_id. Returns the result via toToolResult().
    export function registerGetAssets(server: McpServer, apiClient: ApiClient, walletContext?: WalletContext): void {
      server.tool(
        'get_assets',
        withWalletPrefix('Get all assets (native + tokens) held by the wallet.', walletContext?.walletName),
        {
          network: z.string().optional().describe('Query assets for specific network (e.g., "polygon-mainnet" or CAIP-2 "eip155:137"). Use "all" for all networks. Required for EVM wallets; auto-resolved for Solana.'),
          display_currency: z.string().optional().describe('Display currency for asset value conversion (e.g. KRW, EUR). Defaults to server setting.'),
          wallet_id: z.string().optional().describe('Target wallet ID. Required for multi-wallet sessions; auto-resolved when session has a single wallet.'),
        },
        async (args) => {
          const params = new URLSearchParams();
          if (args.network) params.set('network', args.network);
          if (args.display_currency) params.set('display_currency', args.display_currency);
          if (args.wallet_id) params.set('walletId', args.wallet_id);
          const qs = params.toString();
          const result = await apiClient.get('/v1/wallet/assets' + (qs ? '?' + qs : ''));
          return toToolResult(result);
        },
      );
    }
  • Zod schema for get_assets tool input: network (optional string), display_currency (optional string), wallet_id (optional string).
    {
      network: z.string().optional().describe('Query assets for specific network (e.g., "polygon-mainnet" or CAIP-2 "eip155:137"). Use "all" for all networks. Required for EVM wallets; auto-resolved for Solana.'),
      display_currency: z.string().optional().describe('Display currency for asset value conversion (e.g. KRW, EUR). Defaults to server setting.'),
      wallet_id: z.string().optional().describe('Target wallet ID. Required for multi-wallet sessions; auto-resolved when session has a single wallet.'),
    },
  • Tool registration call: registerGetAssets(server, apiClient, walletContext) invoked in createMcpServer().
    registerGetAssets(server, apiClient, walletContext);
  • Import of registerGetAssets from './tools/get-assets.js'.
    import { registerGetAssets } from './tools/get-assets.js';
  • ApiClient.get() method used by the handler to issue the HTTP GET request. Delegates to the internal request() method which handles auth, 401, 503, network errors.
    async get<T>(path: string): Promise<ApiResult<T>> {
      return this.request<T>('GET', path);
    }
Behavior2/5

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

No annotations are provided, so the description must disclose behavioral traits. It only states the operation is a 'Get' implying read-only, but does not specify if large asset lists are paginated, which networks are supported beyond what's in parameter description, or whether the response includes metadata (e.g., price, decimals). The description lacks depth on behavior.

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 short sentence with no wasted words. It is concise and front-loaded. Loses one point for lack of structure (e.g., bullet points), but it is efficient.

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 has no output schema and 3 well-documented parameters, the description is adequate but not complete. Missing details like pagination behavior, response format, and whether NFTs are included in 'tokens'. It leaves some ambiguity for agents.

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 semantics are already well-documented in the input schema. The description adds no additional parameter meaning beyond the schema. Baseline score of 3 is appropriate.

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 verb 'Get' and the resource 'all assets (native + tokens) held by the wallet'. It explicitly includes both native and token assets, differentiating it from siblings like get_balance (native only) and get_tokens (likely tokens only). The scope is unambiguous.

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 alternatives. It does not mention that for token-specific queries one should use get_tokens, or for balance use get_balance. No usage context or exclusions are given.

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

Install Server

Other Tools

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/minhoyoo-iotrust/WAIaaS'

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