Kaia MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| LOG_LEVEL | No | debug, info, warn, error | info |
| KAIA_RPC_URL | No | Kaia mainnet RPC endpoint | https://public-en.node.kaia.io |
| RATE_LIMIT_RPC | No | Max RPC requests per second | 10 |
| RPC_TIMEOUT_MS | No | RPC request timeout (ms) | 30000 |
| KAIASCAN_API_KEY | No | KaiaScan API key (optional) | |
| KAIASCAN_TIMEOUT_MS | No | KaiaScan request timeout (ms) | 15000 |
| KAIA_KAIROS_RPC_URL | No | Kairos testnet RPC | https://public-en-kairos.node.kaia.io |
| RATE_LIMIT_KAIASCAN | No | Max KaiaScan requests per second | 5 |
| KAIA_DEFAULT_NETWORK | No | mainnet or kairos | mainnet |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
| prompts | {} |
| resources | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_kaia_balanceB | Get KAIA balance for an address. Returns formatted KAIA and raw peb. |
| get_account_infoB | Get account info (type, balance, nonce, accountKey) for an address via Kaia RPC kaia_getAccount. |
| get_account_tokensB | Get fungible token balances for an address via KaiaScan API. |
| get_account_nftsC | Get NFT inventories for an address via KaiaScan API. |
| get_transactionB | Get a human-readable summary of a transaction by hash (from, to, value, blockNumber, gas, gasPrice, input truncated). |
| get_transaction_receiptB | Get transaction receipt: status, blockNumber, gasUsed, contractAddress (if creation), logs count. |
| get_account_transactionsB | Get list of transactions for an account via KaiaScan API (tx hash, from, to, value, time, status). |
| estimate_gasA | Estimate gas for a transaction (from, to optional for contract creation, value, data). Returns estimated gas and optionally KAIA at current gas price. |
| get_block_numberC | Get the current block number for the network. |
| get_blockB | Get block by number or hash. Returns block number, hash, parentHash, timestamp, miner, gasUsed, gasLimit, transactions count or list. |
| get_block_rewardsC | Get block rewards and burns for a block via KaiaScan API (rewards and burns summary). |
| get_token_infoB | Get fungible token metadata (name, symbol, decimals, total supply) by contract address. Uses KaiaScan Get Fungible Token (api/v1/tokens/:contractAddress). |
| get_token_holdersC | Get top holders of a fungible token. Uses KaiaScan Get Holders Of Fungible Token (api/v1/tokens/:contractAddress/holders). |
| get_token_transfersB | Get recent transfers of a fungible token. Uses KaiaScan Get Transfers Of Fungible Token (api/v1/tokens/:contractAddress/transfers). |
| get_token_allowanceA | Get ERC-20/KIP-7 allowance: the amount a spender can transfer from an owner. Use for DeFi approvals (e.g. DEX, staking). Returns raw allowance and human-readable amount if decimals known. |
| get_nft_infoB | Get NFT collection metadata (name, symbol, total supply) by contract address. Uses KaiaScan Get Non Fungible Token (api/v1/nfts/:contractAddress). |
| get_nft_itemB | Get a single NFT item by contract and token ID (owner, tokenURI, metadata). Uses KaiaScan Get Nft Token Item (api/v1/nfts/:contractAddress/tokenids/:tokenId). |
| get_nft_transfersC | Get NFT transfer history for a collection. Uses KaiaScan Get Transfers Of Non Fungible Token (api/v1/nfts/:contractAddress/transfers). |
| read_contractA | Read a view/pure contract function (no state change). Requires contract address, function name, and ABI (JSON string or array). Use get_contract_abi first if you do not have the ABI. Returns decoded result as readable text. |
| get_contract_abiB | Get the ABI of a verified contract from KaiaScan. Path: GET /api/v1/contracts/:contractAddress/abi. Returns ABI JSON as text. |
| get_contract_sourceB | Get verified contract source code from KaiaScan. Path: GET /api/v1/contracts?contractAddresses=:address (contract info); if source is not available returns 'Unverified'. |
| get_gas_priceA | Get current gas price from the network. Returns gas price in peb, Gpeb (1e9 peb), and optionally KAIA per unit. |
| get_kaia_priceA | Get KAIA price in USD and other stats from KaiaScan. Path: GET /api/v1/kaia. Returns usd_price, btc_price, usd_price_changes (24h), market_cap, total_supply, volume. |
| get_chain_infoB | Get chain info for the network: chainId, chain name, native currency. Uses getChain() and RPC getChainId(). |
| encode_function_dataA | Encode function call data from ABI, function name, and optional args. Uses viem encodeFunctionData. Returns hex data string. Use for building transaction calldata. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| analyze-wallet | Analyze a Kaia wallet: balance, recent transactions, and token holdings. |
| investigate-transaction | Investigate a transaction: status, gas usage, token transfers, and internal transactions. |
| token-research | Research a token: supply, holders, recent activity, and transfers. |
| nft-lookup | Look up an NFT: owner, metadata, and transfer history. |
| gas-report | Generate a gas report: current price, fee history, and recommendations. |
| smart-contract-audit | Review a contract: fetch ABI and source code, identify contract type. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| Mainnet status | Current mainnet status: block height, gas price, KAIA price (RPC + KaiaScan). |
| Kairos testnet status | Current Kairos testnet status: block height, gas price, KAIA price (RPC + KaiaScan). |
| Popular mainnet tokens | List of popular token addresses on mainnet with name, symbol, and address. |
| Top KAIA accounts | Top 100 KAIA holders from KaiaScan (Get Top Accounts). |
| RPC methods reference | Static reference of Kaia RPC methods (kaia_*, klay_*, eth_*). |
TDQS
Scored across 25 tools
Most tools target distinct resources and actions, especially blocks, transactions, contracts, and NFTs. A few overlaps exist, such as get_kaia_balance vs. get_account_info (which also returns balance) and get_account_tokens vs. token metadata/holder tools, but descriptions usually clarify the boundaries.
The set mostly follows a snake_case prefix_verb/noun convention, especially with get_* tools. Minor deviations like read_contract, estimate_gas, and encode_function_data are semantically appropriate rather than confusing.
25 tools is on the heavy side for an MCP server, even though the Kaia blockchain domain is broad. The surface is usable but could likely be consolidated, especially around account, token, and contract queries.
The server covers a wide read-only surface: balances, accounts, tokens, NFTs, transactions, blocks, gas, contract ABI/source, and contract reads. Notable gaps include no send/broadcast transaction tool and no explicit event-log query, though these may be outside the intended read-only scope.