account_view_account_summary
Retrieve a summary of any NEAR account's details using a public RPC endpoint.
Instructions
Get summary information about any NEAR account. This calls a public RPC endpoint to get this information.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| accountId | Yes | ||
| networkId | No | mainnet |
Implementation Reference
- src/services.ts:729-767 (handler)The handler function for the 'account_view_account_summary' tool. It connects to NEAR via RPC, retrieves the account, fetches balance, state, and access keys, then returns a summary as JSON.
async (args, _) => { console.log('args', args); const connection = await connect({ networkId: args.networkId, nodeUrl: getEndpointsByNetwork(args.networkId)[0]!, }); const accountResult: Result<Account, Error> = await getAccount( args.accountId, connection, ); if (!accountResult.ok) { return { content: [{ type: 'text', text: `Error: ${accountResult.error}` }], }; } const account = accountResult.value; const balance = await account.getAccountBalance(); const state = await account.state(); const accessKeys = await account.getAccessKeys(); const accountInfo = { balance: { totalBalance: NearToken.parse_yocto_near(balance.total).as_near(), availableBalance: NearToken.parse_yocto_near( balance.available, ).as_near(), stakedBalance: NearToken.parse_yocto_near(balance.staked).as_near(), }, state: { blockHeight: state.block_height, codeHash: state.code_hash, storageUsage: state.storage_usage, }, accessKeys: accessKeys, }; return { content: [{ type: 'text', text: stringify_bigint(accountInfo) }], }; }, ); - src/services.ts:720-767 (registration)The tool registration via mcp.tool() with the name 'account_view_account_summary', including its schema (accountId: string, networkId: enum) and description.
mcp.tool( 'account_view_account_summary', noLeadingWhitespace` Get summary information about any NEAR account. This calls a public RPC endpoint to get this information.`, { accountId: z.string(), networkId: z.enum(['testnet', 'mainnet']).default('mainnet'), }, async (args, _) => { console.log('args', args); const connection = await connect({ networkId: args.networkId, nodeUrl: getEndpointsByNetwork(args.networkId)[0]!, }); const accountResult: Result<Account, Error> = await getAccount( args.accountId, connection, ); if (!accountResult.ok) { return { content: [{ type: 'text', text: `Error: ${accountResult.error}` }], }; } const account = accountResult.value; const balance = await account.getAccountBalance(); const state = await account.state(); const accessKeys = await account.getAccessKeys(); const accountInfo = { balance: { totalBalance: NearToken.parse_yocto_near(balance.total).as_near(), availableBalance: NearToken.parse_yocto_near( balance.available, ).as_near(), stakedBalance: NearToken.parse_yocto_near(balance.staked).as_near(), }, state: { blockHeight: state.block_height, codeHash: state.code_hash, storageUsage: state.storage_usage, }, accessKeys: accessKeys, }; return { content: [{ type: 'text', text: stringify_bigint(accountInfo) }], }; }, ); - src/services.ts:725-728 (schema)Zod input schema for the tool: accountId (string) and networkId (enum: 'testnet' | 'mainnet', default 'mainnet').
{ accountId: z.string(), networkId: z.enum(['testnet', 'mainnet']).default('mainnet'), },