KAIA-MCP Server
Planned support for Chainlink CCIP (Cross-Chain Interoperability Protocol) for cross-chain operations on the KAIA blockchain.
Provides real-time token price data from CoinMarketCap API for cryptocurrencies and KAIA ecosystem tokens.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@KAIA-MCP Servercheck my wallet balance and show current APY for KLAY on KiloLend"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
KAIA-MCP Server
AI × DeFi Infrastructure for the Kaia Ecosystem
The KAIA-MCP Server enables AI agents to interact directly with DeFi protocols on the KAIA blockchain.
Built on the Model Context Protocol (MCP), it connects tools like Claude Desktop or Cursor.ai with live blockchain data and transaction execution.
Features
Multi-Protocol Support
Lending: KiloLend (Compound v2 fork) for supply, borrow, and repay
DEX: DragonSwap V3 for quotes and swaps
Price API: Real-time token prices from CoinMarketCap & CoinGecko API
AI-Managed Vaults: Automated cross-protocol strategies to boost yield (planned)
Market Intelligence: Real-time APYs, utilization, and TVL
Smart Wallet: Unified position and balance tracking
Related MCP server: Saros MCP Server
Using with Claude Desktop
Install Claude Desktop if you haven't already
Open Claude Desktop settings
Add the KAIA MCP client to your configuration:
{
"mcpServers": {
"kaia-mcp": {
"command": "npx",
"args": [
"-y",
"@tamago-labs/kaia-mcp"
],
"env": {
"KAIA_RPC_URL": "https://public-en.node.kaia.io",
"KAIA_AGENT_MODE": "transaction",
"KAIA_PRIVATE_KEY": "YOUR_PRIVATE_KEY"
},
"disabled": false
}
}
}Agent Modes
Read-Only Mode (Default)
Purpose: Safe exploration and data analysis without transaction capabilities
Use Case: Perfect for research, market analysis, and monitoring positions
Capabilities: Query market data, check wallet balances, monitor positions, get swap quotes
Security: No private key required - completely safe for data access
Configuration: Set
KAIA_AGENT_MODEto "readonly" or omit the private key
Transaction Mode
Purpose: Full DeFi operations with the ability to execute transactions
Use Case: Active trading, lending, borrowing, and portfolio management
Capabilities: All read-only features plus execute transactions, supply/borrow assets, transfer tokens, execute DEX swaps
Security: Requires
KAIA_PRIVATE_KEY- ensure secure key managementConfiguration: Set
KAIA_AGENT_MODEto "transaction" and provide a valid private key
Architecture
This MCP server follows a clean, modular architecture designed for multi-protocol support:
src/
├── agent/
│ └── wallet.ts # Unified WalletAgent for all operations
├── mcp/ # MCP tool definitions and implementations
│ ├── index.ts # Main MCP server entry point and tool registry
│ ├── kilolend/ # KiloLend protocol tools
│ ├── dragonswap/ # DragonSwap V3 protocol tools
│ ├── price-api/ # Price API tools for token prices
│ └── wallet/ # General wallet operations
├── tools/ # Core utility functions
│ └── price-api/ # Price API core functions
├── contracts/ # Smart contract interfaces and ABIs
│ ├── comptroller.ts # KiloLend Comptroller contract
│ ├── ctoken.ts # KiloLend cToken contracts
│ ├── erc20.ts # Standard ERC-20 interface
│ ├── wkaia.ts # WKAIA contract interface
│ └── dragonswap/ # DragonSwap contract ABIs
├── utils/ # Utility functions and helpers
│ ├── errors.ts # Error handling classes
│ ├── formatting.ts # Token amount formatting utilities
│ └── validation.ts # Input validation functions
├── config.ts # Configuration management and environment setup
├── types.ts # TypeScript type definitions
└── index.ts # Main server entry pointInstallation
npm install
npm run buildConfiguration
Environment Variables
Create a .env file based on .env.example:
# Required
KAIA_RPC_URL="https://public-en.node.kaia.io" # KAIA Mainnet RPC URL
# Optional
KAIA_PRIVATE_KEY="your_private_key_here" # Wallet private key (for transaction mode)
KAIA_AGENT_MODE="readonly" # "readonly" or "transaction" (defaults to readonly)
KAIA_NETWORK="kaia" # Network (only kaia supported currently)Available Tools
Wallet Tools
Read-Only Tools
Tool | Description |
| Get wallet information and token balances |
Transaction Tools
Tool | Description |
| Send native KAIA tokens |
| Send ERC-20 tokens |
| Wrap KAIA to WKAIA |
| Unwrap WKAIA to KAIA |
| Check token allowance for operations |
| Approve tokens for operations |
KiloLend Tools
Read-Only Tools
Tool | Description |
| Check account liquidity and health factor |
| Get all lending markets with rates |
| Get protocol statistics and TVL |
Transaction Tools
Tool | Description |
| Enter markets to enable collateral usage |
| Supply assets to lending market |
| Borrow from lending market |
| Repay borrowed positions |
| Redeem cTokens (withdraw by cToken amount) |
| Redeem underlying tokens (withdraw by underlying amount) |
Price API Tools
Read-Only Tools
Tool | Description |
| Get all available prices from KiloLend price API |
| Get prices for specific tokens (e.g., ['KAIA', 'BTC', 'ETH']) |
| Get KAIA ecosystem token prices only (KAIA, BORA, MBX, SIX, SOMNIA, stKAIA) |
| Get major cryptocurrency prices (BTC, ETH) |
| Quick price overview of KAIA, BTC, and ETH |
DragonSwap Tools
Read-Only Tools
Tool | Description |
| Get DragonSwap pool information |
| Get swap quotes without executing |
| Get best routing path for swaps (supports multi-hop) |
Transaction Tools
Tool | Description |
| Execute token swaps on DragonSwap |
Supported Tokens
KiloLend Supported Tokens
KAIA: Native KAIA token
USDT: Tether USD (
0xd077a400968890eacc75cdc901f0356c943e4fdb)SIX: SIX token (
0xEf82b1C6A550e730D8283E1eDD4977cd01FAF435)BORA: BORA token (
0x02cBE46fB8A1F579254a9B485788f2D86cAD51aa)MBX: MARBLEX token (
0xD068c52d81f4409B9502dA926aCE3301cc41f623)stKAIA: Lair Staked KAIA (
0x42952B873ed6f7f0A7E4992E2a9818E3A9001995)
DragonSwap Supported Tokens
KAIA: Native token
WKAIA: Wrapped KAIA (
0x19aac5f612f524b754ca7e7c41cbfa2e981a4432)USDT: Official USDT(
0xd077a400968890eacc75cdc901f0356c943e4fdb)USDT: Wormhole USDT(
0x5c13e303a62fc5dedf5b52d66873f2e59fedadc2)BORA: BORA Token (
0x02cBE46fB8A1F579254a9B485788f2D86cAD51aa)MBX: MARBLEX Token (
0xD068c52d81f4409B9502dA926aCE3301cc41f623)stKAIA: Lair Staked KAIA (
0x42952B873ed6f7f0A7E4992E2a9818E3A9001995)
Future Protocol Support
We're actively working on adding support for:
Additional Lending Protocols: More lending platforms
Staking Protocols: Liquid staking and Lair Finance integration
Cross-Chain Messaging: Chainlink CCIP for cross-chain operations
Yield Farming: Cross-protocol yield optimization
Contract Addresses
Kaia Mainnet
KiloLend (Compound v2)
Comptroller:
0x0B5f0Ba5F13eA4Cb9C8Ee48FB75aa22B451470C2Markets:
cUSDT:
0x498823F094f6F2121CcB4e09371a57A96d619695cSIX:
0xC468dFD0C96691035B3b1A4CA152Cb64F0dbF64ccBORA:
0x7a937C07d49595282c711FBC613c881a83B9fDFDcMBX:
0xE321e20F0244500A194543B1EBD8604c02b8fA85cKAIA:
0x98Ab86C97Ebf33D28fc43464353014e8c9927aB3cStKAIA:
0x0BC926EF3856542134B06DCf53c86005b08B9625
DragonSwap V3
Router:
0xA324880f884036E3d21a09B90269E1aC57c7EC8aQuoter V2:
0x673d88960D320909af24db6eE7665aF223fec060Factory:
0x7431A23897ecA6913D5c81666345D39F27d946A4
Troubleshooting
If you're using Ubuntu or another Linux environment with NVM, you'll need to manually configure the path. Follow these steps:
Install the KAIA MCP under your current NVM-managed Node.js version.
npm install -g @tamago-labs/kaia-mcpDue to how NVM installs libraries, you may need to use absolute paths in your config. Replace the example values below with your actual username and Node version:
{
"mcpServers": {
"kaia-mcp": {
"command": "/home/YOUR_NAME/.nvm/versions/node/YOUR_NODE_VERSION/bin/node",
"args": [
"/home/YOUR_NAME/.nvm/versions/node/YOUR_NODE_VERSION/bin/@tamago-labs/kaia-mcp"
],
"env": {
"KAIA_RPC_URL": "https://public-en.node.kaia.io",
"KAIA_AGENT_MODE": "transaction",
"KAIA_PRIVATE_KEY": "YOUR_PRIVATE_KEY"
}
}
}
}Restart Claude Desktop and it should work now.
Environment Variable Issues
If you encounter issues with environment variables not being recognized:
Check required variables: Make sure
KAIA_RPC_URLis always setVerify mode settings:
KAIA_AGENT_MODEshould be either "readonly" or "transaction"Private key format:
KAIA_PRIVATE_KEYmust be 64 hex characters (with or without 0x prefix)Debug logging: The server will log all configuration on startup to stderr
Work with Local Files
When working with local files especially when using KAIA CLI tools for smart contract development to create, build, and test a Move package on your machine—you'll need to import an additional MCP server library of filesystem made by Claude team. Use with:
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"${workspaceFolder}"
],
"env":{
},
"disabled": false
}workspaceFolder refers to your working directory. You can provide more than one argument. Subfolders or specific files can then be referenced in your AI prompt.
If you're using Linux and encounter issues during setup, please refer to the troubleshooting section.
License
MIT License - see LICENSE file for details.
Available Tools
13 toolsdragonswap_get_pool_infoB
Get detailed information about a DragonSwap V3 pool
| Name | Required | Description | Default |
|---|---|---|---|
| token0 | Yes | First token address or symbol (e.g., 'KAIA', 'USDT', '0x1234...') | |
| token1 | Yes | Second token address or symbol (e.g., 'KAIA', 'USDT', '0x1234...') | |
| fee | No | Fee tier in basis points (100=0.01%, 500=0.05%, 1000=0.1%, 3000=0.3%, 10000=1%) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must cover behavioral traits. It fails to indicate that the tool is read-only, does not describe authentication needs, rate limits, or any side effects, and does not specify what 'detailed information' entails.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one sentence of 9 words, extremely concise and front-loaded with the purpose. However, its brevity sacrifices necessary behavioral and contextual detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and a parameter count of 3, the description is too sparse. It does not explain return values, data structure, or any constraints, leaving the agent with insufficient context for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides complete descriptions for all three parameters (100% coverage), including examples for token addresses and fee basis points. The description adds no additional meaning beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 'detailed information about a DragonSwap V3 pool', distinguishing it from sibling tools like dragonswap_get_quote and dragonswap_get_route which handle trading operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives (e.g., when you need pool liquidity information vs. a swap quote). The description is purely declarative with no usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dragonswap_get_quoteA
Get a quote for swapping tokens on DragonSwap V3 DEX. Note: USDT uses 6 decimals, most other tokens use 18 decimals. For stKAIA, you can use either 'stKAIA' or 'STAKED_KAIA'.
| Name | Required | Description | Default |
|---|---|---|---|
| tokenIn | Yes | Input token address or symbol (e.g., 'KAIA', 'USDT', 'stKAIA', '0x1234...') | |
| tokenOut | Yes | Output token address or symbol (e.g., 'KAIA', 'USDT', 'stKAIA', '0x1234...') | |
| amountIn | Yes | Amount of input tokens to swap (in human-readable format, e.g., '1.5') | |
| amountInDecimals | No | Number of decimals for the input token (auto-detected if not provided, USDT=6, most tokens=18) | |
| slippage | No | Slippage tolerance in basis points (e.g., 50 = 0.5%) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses token decimal behavior and naming flexibility, which is helpful. However, it does not reveal if the tool is read-only, error handling, rate limits, or other behavioral aspects beyond the noted token nuances.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: first clearly states purpose, second adds crucial token-specific exceptions. No redundant information. Efficient and well-front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, yet description does not mention what the quote returns (e.g., estimated output price, execution details). Parameter documentation is mostly in schema, but the tool's output and life cycle context (e.g., use before swap) are missing. Adequate but not comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds value by clarifying USDT uses 6 decimals (which may override auto-detect) and that stKAIA has alternative symbols. This aids parameter interpretation beyond the schema's descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get a quote'), the resource ('for swapping tokens'), and the specific DEX ('DragonSwap V3 DEX'). This distinguishes it from siblings like dragonswap_get_pool_info and dragonswap_get_route.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides token-specific notes (USDT decimals, stKAIA naming) but does not explicitly state when to use this tool versus alternatives like dragonswap_get_route or when to use this as a prerequisite for a swap. Usage is implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dragonswap_get_routeA
Get the best routing path for swapping tokens (supports multi-hop for better prices) on DragonSwap V3 DEX
| Name | Required | Description | Default |
|---|---|---|---|
| tokenIn | Yes | Input token address or symbol (e.g., 'KAIA', 'USDT', '0x1234...') | |
| tokenOut | Yes | Output token address or symbol (e.g., 'KAIA', 'USDT', '0x1234...') | |
| amountIn | Yes | Amount of input tokens to swap (in human-readable format, e.g., '1.5') | |
| amountInDecimals | No | Number of decimals for the input token (default: 18) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry behavioral transparency. It indicates a read-like operation (getting a route) and mentions multi-hop, but does not disclose if it modifies state, requires authentication, or has rate limits. The description is vague about potential side effects or requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is clear and direct. It could be slightly improved by structuring with a bullet or separating the multi-hop note, but it is concise and front-loads the key purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the 4 parameters and no output schema, the description could be more complete. It explains the tool's main function but omits output details, error cases, and performance characteristics. While adequate, it leaves room for improvement.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% coverage with detailed descriptions for all parameters. The description adds the context of multi-hop but does not elaborate on parameter usage beyond what schema provides. Baseline score of 3 is appropriate as schema already handles semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Get the best routing path' and specifies the resource 'swapping tokens' on 'DragonSwap V3 DEX'. It distinguishes from siblings like dragonswap_get_pool_info and dragonswap_get_quote by focusing on routing path rather than pool details or a simple quote.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions 'supports multi-hop for better prices', implying use when a multi-hop path might yield better rates, but does not explicitly state when to use this tool versus alternatives like dragonswap_get_quote. No exclusion criteria or when-not-to-use guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_all_pricesA
Get comprehensive market data including prices, market capitalization, 24h trading volume, and 24h price changes for all available tokens from the KiloLend price API (KAIA ecosystem tokens and major cryptocurrencies)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It lists returned data fields but lacks behavioral context such as response format, pagination, rate limits, or error conditions. For a read-only tool, minimal yet insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence effectively communicates purpose and scope. Front-loaded with action verb and specific resource. No redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter list tool with no output schema, description lists all relevant data fields. Could be improved by mentioning response structure or potential limits, but adequately complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has zero parameters. With 0 params, baseline is 4. Description adds no parameter info, but none needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Get comprehensive market data' with specific data types (prices, market cap, volume, changes) for 'all available tokens' from KiloLend price API. Distinguishes from sibling tools like get_kaia_ecosystem_prices and get_major_crypto_prices which are subsets.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage for retrieving all tokens vs sibling tools for specific subsets. No explicit when-to-use or when-not-to-use, but the context is clear enough for an agent to decide.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_kaia_ecosystem_pricesA
Get comprehensive market data including prices, market capitalization, 24h trading volume, and 24h price changes for KAIA ecosystem tokens only (KAIA, BORA, MBX, SIX, stKAIA)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description only states it retrieves market data which implies a read operation. No behavioral details like caching, data freshness, or availability guarantees are disclosed. Adequate for a simple query tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence that is clear, front-loaded with the purpose, and contains no extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Lacks output schema, but description explains what data is returned (prices, market cap, volume, 24h change). Could mention the return format (e.g., object or list) but overall covers the key aspects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters to describe, but the description enriches understanding by listing the specific tokens and data fields returned. Baseline for 0 params is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it gets comprehensive market data specifically for KAIA ecosystem tokens, listing the tokens and data fields. Distinguishes from siblings like get_all_prices by specifying the ecosystem scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implicitly defines its use for KAIA ecosystem tokens, but no explicit when-to-use or alternatives guidance. Could mention that for broader market data, use get_all_prices.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_major_crypto_pricesB
Get comprehensive market data including prices, market capitalization, 24h trading volume, and 24h price changes for major cryptocurrencies (BTC, ETH)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. The description only lists data returned, but omits behavioral traits such as data freshness, rate limits, or whether it is read-only. The agent lacks important context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with front-loaded action verb 'Get' and clear list of data fields. No extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-parameter tool, the description adequately covers what data is returned and for which assets. However, it does not mention the return format or structure, which would be helpful given no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has no parameters, so schema coverage is 100%. Baseline is 4. The description explains the tool's output, adding value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it provides market data for major cryptocurrencies (BTC, ETH) including prices, market cap, volume, and price changes. It distinguishes from siblings like get_all_prices by specifying 'major', but could more explicitly differentiate from similar tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like get_all_prices or get_token_prices. The description does not mention any context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_quick_pricesA
Get quick comprehensive market overview including prices, market capitalization, 24h trading volume, and 24h price changes for KAIA, BTC, and ETH
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description does not disclose behavioral traits such as response format, rate limits, or authentication requirements. It only describes the data content, which is minimal for a tool with no structured metadata.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that fully conveys the tool's purpose and scope without any redundant or unnecessary information. It is front-loaded with the action and key details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of parameters and output schema, the description is adequate. It specifies the tokens and data fields included, though it does not describe the response structure. It is sufficient for an agent to understand what the tool returns.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, so the description cannot add meaning beyond the schema. The baseline of 4 applies because the schema coverage is 100% and the description does not need to compensate for missing parameter details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves a market overview (prices, market cap, volume, price changes) specifically for KAIA, BTC, and ETH. This specific scope distinguishes it from sibling tools like get_all_prices or get_major_crypto_prices, which cover broader sets of tokens.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. There is no mention of scenarios where this tool is preferred, nor are sibling tools referenced for comparison.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_token_pricesB
Get comprehensive market data including prices, market capitalization, 24h trading volume, and 24h price changes for specific token symbols (e.g., 'KAIA', 'BTC', 'ETH', 'BORA')
| Name | Required | Description | Default |
|---|---|---|---|
| symbols | Yes | Array of token symbols to get comprehensive market data for (e.g., ['KAIA', 'BTC', 'ETH']) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Only describes data fields returned, not behavioral traits like read-only, authentication requirements, rate limits, or error handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single coherent sentence, front-loaded with action and scope. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Lists key return fields (prices, market cap, volume, price changes) but lacks details on response format, error cases, or how data is structured. No output schema to compensate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, baseline is 3. Description adds context by listing return fields and more examples, but does not significantly deepen understanding beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Starts with 'Get comprehensive market data' and lists specific data fields (prices, market cap, volume, price changes). Provides examples of token symbols. Name and input schema imply it's for arbitrary user-specified tokens, but does not explicitly differentiate from sibling tools like get_all_prices or get_quick_prices.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. Does not mention when-not to use or provide any selection criteria relative to sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kaia_get_wallet_infoC
Get comprehensive wallet information including all token balances
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It does not disclose behavioral traits such as whether it requires authentication, rate limits, or what 'comprehensive' entails (e.g., includes native token, all ERC20s, NFTs). The description is too minimal for transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, concise and front-loaded. Every word is purposeful with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description should explain return values and scope. 'Comprehensive' is vague, and the agent does not know what information will be retrieved (e.g., native KAIA only, all tokens, NFTs?). The description is incomplete for safe tool selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters (0 params), so baseline is 4. The description adds no parameter information beyond the schema, but the schema is already empty, so no additional value is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it gets wallet information including token balances. It is specific but does not explicitly distinguish from sibling tools, though siblings are different types (pools, quotes, prices, lending), so context makes the purpose clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives. No exclusions or conditions are mentioned. The agent is left to infer usage from context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kilolend_get_account_liquidityB
Check account liquidity, health factor, and borrowing capacity on KiloLend
| Name | Required | Description | Default |
|---|---|---|---|
| account_address | No | Account address to check (optional, defaults to current wallet) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must bear the burden. It says 'Check' implying a read operation but doesn't confirm side effects, permissions, or data sensitivity. Minimal behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no filler, front-loaded with the core action. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description should explain return values. It mentions checking liquidity, health factor, and borrowing capacity but doesn't specify format or structure, leaving agents underinformed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single optional parameter, and the description adds no extra meaning beyond the schema's own description. Baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Check' and names three resources (account liquidity, health factor, borrowing capacity) on KiloLend, clearly distinguishing it from sibling tools like dragonswap_get_pool_info or kaia_get_wallet_info.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for checking account state but provides no explicit when-to-use or when-not-to-use guidance. Alternatives like kilolend_get_lending_stats exist but are not mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kilolend_get_kilo_pointsB
Get user KILO points balance
| Name | Required | Description | Default |
|---|---|---|---|
| account_address | No | Account address to check (optional, defaults to current wallet) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It only says 'Get', implying a read operation, but does not explicitly state it is read-only, nor does it mention any side effects, auth requirements, or rate limits. Minimal behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no wasted words, efficiently communicating the core function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of output schema and annotations, the description does not sufficiently explain return format, units, or other behavioral details. For a simple balance check, more context (e.g., 'returns an integer representing points') would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with the parameter description already explaining 'Account address to check (optional, defaults to current wallet)'. The tool description adds no further meaning, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get user KILO points balance' clearly specifies the action (get) and the resource (KILO points balance), distinguishing it from sibling tools like kilolend_get_account_liquidity or kilolend_get_lending_markets.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, nor any prerequisites or exclusions. The description simply states the function without context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kilolend_get_lending_marketsB
Get all lending markets KiloLend with their current rates and statistics
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full responsibility. It implies a read operation but does not explicitly state safety, auth needs, or side effects. Lacks detail beyond the obvious.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence of 12 words with no excess. Every word is necessary and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description hints at output content ('rates and statistics') but does not specify structure (list vs. object) or pagination. Acceptable for a simple list tool but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, so schema coverage is trivially 100%. The description does not need to explain parameters, and adds no redundant information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get'), the resource ('all lending markets'), and the returned data ('current rates and statistics'). It distinguishes from sibling tools like 'kilolend_get_account_liquidity' which is account-specific, but could be more specific about what 'statistics' includes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 context, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kilolend_get_lending_statsA
Get overall KiloLend protocol statistics and TVL information
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose any behavioral traits beyond the basic purpose. For a read-only tool with no parameters, the description lacks details on response format, rate limits, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that front-loads the purpose. Every word is necessary, with no fluff or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that there are no parameters and no output schema, the description provides a minimum viable explanation. However, it could be more specific about which statistics are included (e.g., total value locked, total borrows, etc.) to fully inform the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters, so the description does not need to explain them. The baseline score of 4 is appropriate as the schema covers 100% of parameters (none).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 'overall KiloLend protocol statistics and TVL information', which is distinct from sibling tools like kilolend_get_account_liquidity that focus on individual accounts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use guidance is provided. The usage is implied as a general query for protocol-level stats, but alternatives are not discussed.
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.
13 tool updates
v0.5.3- First observed
dragonswap_get_pool_info - First observed
dragonswap_get_quote - First observed
dragonswap_get_route - First observed
get_all_prices - First observed
get_kaia_ecosystem_prices - First observed
get_major_crypto_prices - First observed
get_quick_prices - First observed
get_token_prices - First observed
kaia_get_wallet_info - First observed
kilolend_get_account_liquidity - First observed
kilolend_get_kilo_points - First observed
kilolend_get_lending_markets - First observed
kilolend_get_lending_stats
TDQS
Scored across 13 tools
The price tools (get_all_prices, get_kaia_ecosystem_prices, get_major_crypto_prices, get_quick_prices, get_token_prices) heavily overlap, making it unclear which one to use. The other groups are distinct, but the redundancy in the price category hurts disambiguation.
Naming uses snake_case with prefixes (dragonswap_, kilolend_, kaia_) and a generic 'get_' for price tools. The pattern is mostly consistent but the price tools lack a domain prefix and vary in specificity, creating some inconsistency.
13 tools is a reasonable number for a server covering three domains. However, the redundant price tools could be consolidated, slightly reducing the count to improve focus.
The server is read-only: DragonSwap lacks swap execution, KiloLend lacks deposit/borrow/repay actions, and wallet info has no transaction capabilities. The price coverage is thorough but operational gaps are significant.
Maintenance
Related MCP Connectors
Non-custodial DeFi tools for AI agents on Solana: swaps, perps, lending, staking, equities.
DeFi safety layer for AI agents: wallet safety, token risk, tx decode/simulate. 20 tools.
Agentic AI runtime: persistent memory, vault, autonomous agents, deep research, DeFi execution.
Non-custodial DeFi for AI agents: swaps, concentrated liquidity (V3/V4) zaps + ranges, 5 EVM chains
Related MCP Servers
- AlicenseCqualityDmaintenanceEnables AI agents to interact with cryptocurrency ecosystems through wallet management, trading operations (swaps, DCA, limit orders), staking, and multi-chain support starting with Solana.37GPL 3.0
- AlicenseBqualityDmaintenanceEnables AI agents to interact with Saros DeFi through natural language, providing tools for liquidity pool management, portfolio analytics, farming positions, and swap quotes on Solana.5MIT
- AlicenseCqualityCmaintenanceEnables AI agents to interact with any EVM-compatible blockchain through natural language, supporting token swaps, cross-chain bridges, staking, lending, governance, gas optimization, and portfolio tracking across networks like Ethereum, BSC, Polygon, Arbitrum, and more.10017 npm40-
- AlicenseAqualityDmaintenanceEnables AI agents to interact with HyperLend protocol and Kittenswap DEX on Hyperliquid EVM network. Supports DeFi operations including lending, borrowing, withdrawing assets, and token swapping with comprehensive portfolio management.85 npmMIT