Skip to main content
Glama

Datai MCP Server

Datai Network

Datai MCP lets your AI agent understand a wallet’s DeFi, token, and NFT holdings in seconds.

Whether you're building with Eliza OS, Cursor, or any local agent stack — simply plug in a wallet address, and the MCP server delivers clean, real-time context powered by the Datai API.

Perfect for AI agents, LLM plugins, and devs needing agentic access to wallet data.

Datai MCP is a TypeScript-based MCP server that enables seamless interaction with a wallet's portfolio data through AI-powered interfaces, powered by the same API behind Datai Network's analytics engine.

Features

  • 8 Comprehensive DeFi Tools: Complete coverage of a wallet's DeFi positions and token balance analysis

  • Multi-Chain Support: Ethereum, Arbitrum, Polygon, Avalanche, BSC, Base, Optimism, and more to come

  • Multi-Protocol Support – Hundreds of DeFi protocols

  • Fast Setup – Just plug in your wallet address, and the MCP delivers fresh on-chain data

  • Built for AI Devs – Integrates with any MCP-ready agent framework (Eliza, Cursor, Claude)

  • Real-Time Data – Powered by Datai’s API wallet data pipeline

  • Debug-Friendly – Truncated responses for dev testing and memory-safe exploration

  • Error Handling: Comprehensive error management and validation

  • Performance Monitoring: Request timing and execution tracking

Related MCP server: Zerion Hosted MCP

Example Use Case: Building an AI Wallet Copilot

You're creating an AI agent that helps users understand their crypto portfolio. With Datai MCP:

  1. Your user connects their wallet.

  2. Your agent uses get_all_defi_positions to fetch their DeFi strategy.

  3. The agent summarizes key holdings, flags risk exposure, and recommends actions.

All without you needing to build a blockchain indexer.

Tools Available

Retrieve a wallet's portfolio data using the following tools:

Tool

Description

Parameters

get_all_defi_positions

Get all DeFi positions across all supported chains

wallet

get_defi_by_chain

Get DeFi positions for a specific blockchain

wallet, chain

get_defi_multi_chains

Get DeFi positions across multiple chains

wallet, chains[]

get_defi_by_protocol

Get DeFi positions for a specific protocol

wallet, protocol

get_defi_balances_by_chain

Get DeFi protocol balances by chain

wallet, chain

get_overall_balance_all_c

Get overall balance across all chains

wallet

get_overall_balance_by_chain

Get overall balance for a specific chain

wallet, chain

get_wallet_balances_by_chain

Get token balances for a specific chain

wallet, chain

Tip: Use get_all_defi_positions for a full portfolio scan, or chain/protocol-specific tools for targeted prompts.

Supported Chains

Supported Protocols

Integration with Cursor

To connect to the MCP server from Cursor:

  1. Open Cursor and go to Settings (gear icon in the top right)

  2. Click on "MCP" in the left sidebar

  3. Click "Add new global MCP server"

  4. Enter the following configuration:

Local Development Configuration

{
  "mcpServers": {
    "datai-fastmcp-server-local": {
      "command": "node",
      "args": ["/path/to/your/datai-mcp/dist/index.js"],
      "env": {
        "DATAI_API_KEY": "your_api_key_here",
        "DATAI_LIMIT": "1",
        "DATAI_DEBUG_TRUNCATE": "true",
        "DATAI_CONNECTION_TIMEOUT": "130000",
        "DATAI_RESPONSE_TIMEOUT": "90000",
        "PORT": "3099",
        "DEBUG": "true",
        "NODE_ENV": "production",
        "MCP_DISABLE_PINGS": "true"
      }
    }
  }
}

Production Configuration (NPX - Coming Soon)

{
  "mcpServers": {
    "datai-fastmcp-server": {
      "command": "npx",
      "args": ["-y", "datai-mcp-server@1.0.3"],
      "env": {
        "DATAI_API_KEY": "your_api_key_here",
        "DATAI_LIMIT": "1",
        "DATAI_DEBUG_TRUNCATE": "true",
        "DATAI_CONNECTION_TIMEOUT": "130000",
        "DATAI_RESPONSE_TIMEOUT": "90000",
        "PORT": "3099",
        "DEBUG": "true",
        "NODE_ENV": "production",
        "MCP_DISABLE_PINGS": "true"
      }
    }
  }
}

Environment Variables

Variable

Description

Default

Required

DATAI_API_KEY

Your Datai API key

-

✅ Yes

DATAI_LIMIT

API response limit (1-100)

10

No

DATAI_DEBUG_TRUNCATE

Enable data truncation for debugging

false

No

DATAI_CONNECTION_TIMEOUT

Connection timeout in ms

130000

No

DATAI_RESPONSE_TIMEOUT

Response timeout in ms

90000

No

DEBUG

Enable debug logging

false

No

PORT

Server port

3099

No

Debug Mode

When DATAI_DEBUG_TRUNCATE is set to "true", the server will intelligently truncate API responses to prevent memory issues during development and testing. This provides:

  • Minimal Output: Reduces 1000+ line responses to ~15 lines

  • Structure Preservation: Shows data types, array lengths, object keys

  • Sample Data: First few items/values for verification

  • Clear Status: Indicates when truncation is active

Example truncated output:

{
  "__debug_truncated": true,
  "__summary": {
    "type": "array",
    "length": 25,
    "item_types": ["object"],
    "first_item_keys": ["chain", "name", "commonName", "logo", "site"]
  },
  "__sample_data": {
    "chain": "eth",
    "name": "uniswap3",
    "commonName": "Uniswap V3"
  },
  "__message": "✅ Tool working - data truncated for debugging"
}

Integration with Claude Desktop

To connect to the MCP server from Claude Desktop:

  1. Open Claude Desktop and go to Settings

  2. Click on "Developer" in the left sidebar

  3. Click the "Edit Config" Button

  4. Add the configuration to the claude_desktop_config.json file

  5. Save the file and restart Claude Desktop

Local Development

Prerequisites

Quick Start

  1. Clone the repository:

git clone https://github.com/Datai-Network/datai-fastmcp-server.git

cd datai-fastmcp-server
  1. Install dependencies:

npm install
  1. Build the project:

npm run build
  1. Configure your MCP client with the local configuration shown above

  2. Start using the tools in your MCP-compatible client!

Available Scripts

  • npm run build: Build the TypeScript project

  • npm run dev: Build and watch for changes

  • npm run test: Run test suite (coming soon)

API Integration

This server integrates with the Datai API to provide real-time wallet portfolio data:

  • Base URL: https://api-v1.mymerlin.io

  • Authentication: API key-based

  • Rate Limiting: Configurable via DATAI_LIMIT

  • Timeout Handling: Configurable connection and response timeouts

  • Error Handling: Comprehensive error transformation and logging

Sign up here to obtain your Datai API Key, email address required.

Security Considerations

  • API Key Protection: Never commit API keys to version control

  • Environment Variables: Use secure environment variable management

  • Input Validation: All inputs are validated using Zod schemas

  • Error Sanitization: Sensitive information is filtered from error messages

  • Timeout Protection: Prevents hanging requests with configurable timeouts

Important Note on Response Size and Agent Compatibility

The Datai MCP is designed to enrich AI agents with real-time wallet portfolio data (token balances, DeFi positions). However, certain wallets can generate very large responses, especially when:

  • Holding dozens or hundreds of tokens

  • Engaging with multiple DeFi protocols

  • Using many chains simultaneously

Potential Issues for AI Agents

As of this version, responses are not summarized. The full dataset is returned by default, unless truncated. This may lead to issues in agent environments, such as:

  • Exceeding LLM context limits (resulting in cut-off or ignored data)

  • Slower performance or longer reasoning time

  • Memory or token quota overruns in hosted environments

  • Confusing or degraded agent behavior due to input overload

Recommendations

Until summarization and modular querying are available, we recommend:

  • Using lightweight wallets for testing and debugging

  • Manually filtering or summarizing MCP responses before injecting into your agent

  • Keeping response size in mind when designing prompts or managing memory

  • Opening an issue or contacting us if you'd like early access to summary endpoints

We are actively improving the agent compatibility layer - including modular endpoints and data summarization options in upcoming releases.

Contributing

We welcome contributions! Please ensure:

  1. All code follows TypeScript best practices

  2. Comprehensive error handling is implemented

  3. Input validation is present for all tools

  4. Logging is FastMCP compliant

  5. Tests are included for new features

License

This project is licensed under the MIT License - see the LICENSE file for details.

About Datai

Datai is building the agentic data layer for Web3. We provide high-quality, real-time data pipelines powering agents, AI copilots, and smart protocols. The Datai MCP is one step in our journey to make wallet data accessible, actionable, and agent-ready.

Explore more: https://datai.network

Feedback or Support?

We’re building this for the agent dev community and highly appreciate your input:

  • Create an issue in the GitHub repository

  • Check the documentation for common solutions

  • Review the debug output when DATAI_DEBUG_TRUNCATE=true

Available Tools

8 tools
get_all_defi_positionsA

Get comprehensive DeFi positions for a wallet across ALL supported blockchain networks and protocols. Provides complete portfolio overview including lending, liquidity pools, yield farming, staking, and other DeFi activities across 10+ chains and 15+ protocols.

ParametersJSON Schema
NameRequiredDescriptionDefault
walletYesEthereum wallet address (42-character hex string starting with 0x) to get comprehensive DeFi positions for. Example: 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045

TDQS

A3.6/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden of behavioral disclosure. While it mentions the scope ('across ALL supported blockchain networks and protocols') and types of positions included, it doesn't disclose important behavioral traits like rate limits, authentication requirements, response format, pagination, or error conditions. The description provides some context but leaves significant gaps for a tool that presumably makes complex external API calls.

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 appropriately sized and front-loaded with the core purpose in the first sentence. The second sentence adds valuable context about scope and coverage. Both sentences earn their place by providing distinct information, though some phrasing could be slightly more concise.

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's complexity (querying multiple chains/protocols), lack of annotations, and no output schema, the description is moderately complete but has significant gaps. It explains the comprehensive scope well but doesn't address behavioral aspects, return format, or limitations. For a complex DeFi query tool with no structured safety/behavior annotations, the description should do more to guide the agent.

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 schema already fully documents the single 'wallet' parameter with format examples and validation patterns. The description adds no additional parameter semantics beyond what's in the schema - it doesn't clarify edge cases, multiple wallet formats, or how different address types affect results. Baseline 3 is appropriate when schema does all the parameter documentation.

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 with specific verbs ('Get comprehensive DeFi positions') and resources ('for a wallet across ALL supported blockchain networks and protocols'). It distinguishes from siblings by emphasizing comprehensiveness across all chains/protocols, unlike tools like 'get_defi_by_chain' or 'get_defi_by_protocol' which are more limited in scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context about when to use this tool ('complete portfolio overview across 10+ chains and 15+ protocols'), but doesn't explicitly state when NOT to use it or name specific alternatives. It implies usage for comprehensive overviews vs. more targeted sibling tools, but lacks explicit exclusions or named comparisons.

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

get_defi_balances_by_chainA
Read-onlyIdempotent

Get DeFi protocol balances for a wallet on a specific blockchain network. Provides aggregated balance information grouped by protocol for diversification analysis and risk assessment.

ParametersJSON Schema
NameRequiredDescriptionDefault
walletYesEthereum wallet address (42-character hex string starting with 0x) to get DeFi protocol balances for
chainYesBlockchain network to query. Supported: 'eth' (Ethereum), 'arb' (Arbitrum), 'matic' (Polygon), 'avax' (Avalanche), 'bsc' (BSC), 'base' (Base), 'op' (Optimism)

TDQS

A4/5.0
Behavior4/5

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

Annotations already provide readOnlyHint=true, destructiveHint=false, openWorldHint=true, and idempotentHint=true. The description adds valuable context about the output structure ('aggregated balance information grouped by protocol') and purpose ('for diversification analysis and risk assessment'), which helps the agent understand what kind of data to expect beyond the safety profile already covered by annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences with zero waste. The first sentence states the core functionality, and the second explains the output format and use case. Every word contributes meaningful information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (2 parameters, no output schema), rich annotations covering safety and behavior, and 100% schema coverage, the description provides good contextual completeness. It explains the output structure and purpose, though it could benefit from mentioning limitations like supported protocols or data freshness.

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%, with both parameters fully documented in the schema. The description doesn't add any parameter-specific details beyond what's already in the schema (e.g., wallet format specifics or chain enum values), so it meets the baseline of 3 when schema does the heavy lifting.

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 specific action ('Get DeFi protocol balances'), target resource ('for a wallet on a specific blockchain network'), and scope ('aggregated balance information grouped by protocol'). It distinguishes from siblings by focusing on per-chain protocol grouping rather than multi-chain, overall balances, or protocol-specific queries.

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 context ('for diversification analysis and risk assessment') but doesn't explicitly state when to use this tool versus alternatives like 'get_defi_multi_chains' or 'get_overall_balance_by_chain'. No explicit exclusions or prerequisites are provided.

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

get_defi_by_chainA
Read-onlyIdempotent

Get DeFi positions for a wallet on a specific blockchain network. Provides detailed information about lending, liquidity pools, yield farming, and other DeFi activities on the specified chain.

ParametersJSON Schema
NameRequiredDescriptionDefault
walletYesEthereum wallet address (42-character hex string starting with 0x) to get DeFi positions for
chainYesBlockchain network to query. Supported: 'eth' (Ethereum), 'arb' (Arbitrum), 'matic' (Polygon), 'avax' (Avalanche), 'bsc' (BSC), 'base' (Base), 'op' (Optimism)

TDQS

A4/5.0
Behavior3/5

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

Annotations already provide excellent behavioral coverage (readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true). The description adds useful context about what information is returned ('detailed information about lending, liquidity pools, yield farming, and other DeFi activities'), but doesn't disclose additional behavioral traits like rate limits, authentication needs, or response format details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is perfectly concise with two sentences that each earn their place. The first sentence states the core purpose, and the second sentence elaborates on what information is provided. There's zero wasted language or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the rich annotations (covering safety, idempotency, and open-world nature) and complete parameter documentation in the schema, the description provides adequate context. However, without an output schema, the description could benefit from more detail about the return format or structure of the DeFi position data.

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?

With 100% schema description coverage, the input schema already fully documents both parameters. The description doesn't add any parameter-specific semantics beyond what's in the schema descriptions, so it meets the baseline of 3. It doesn't explain parameter interactions or provide usage examples.

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 with specific verb ('Get') and resource ('DeFi positions for a wallet on a specific blockchain network'). It distinguishes from siblings by specifying it's for a single chain (vs. multi-chain tools like get_defi_multi_chains) and focuses on positions rather than just balances (vs. get_defi_balances_by_chain).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use this tool ('for a wallet on a specific blockchain network'), which implicitly distinguishes it from multi-chain alternatives. However, it doesn't explicitly state when NOT to use it or name specific alternative tools, keeping it from a perfect score.

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

get_defi_by_protocolA
Read-onlyIdempotent

Get DeFi positions for a wallet filtered by a specific protocol across all chains. Provides detailed analysis of exposure to a particular DeFi protocol for risk assessment and yield optimization.

ParametersJSON Schema
NameRequiredDescriptionDefault
walletYesEthereum wallet address (42-character hex string starting with 0x) to get DeFi positions for
protocolYesDeFi protocol to filter by. Examples: 'uniswap', 'aave', 'compound', 'makerdao', 'curve', 'balancer', 'sushiswap', 'quickswap', 'traderjoe', 'pancakeswap'

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already indicate read-only, non-destructive, idempotent, and open-world behavior. The description adds valuable context beyond annotations by specifying that it provides 'detailed analysis of exposure' and works 'across all chains', which helps the agent understand the tool's scope and output nature. No contradictions with annotations are present.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core functionality in the first sentence and uses a second sentence to explain the purpose without redundancy. Every sentence adds value (filtering details and use cases), and there is no wasted text, making it efficient and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (multi-chain DeFi analysis), annotations cover safety and behavior well, and the schema fully describes parameters. However, the lack of an output schema means the description could benefit from more details on return values (e.g., types of positions, metrics provided). It adequately covers the tool's purpose and usage but leaves output specifics ambiguous.

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%, with clear descriptions for both parameters (wallet and protocol). The description adds some semantic context by mentioning 'filtered by a specific protocol' and 'for a wallet', but does not provide additional details beyond what the schema already covers, such as specific protocol examples or wallet format nuances. Baseline 3 is appropriate given high schema coverage.

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 with specific verbs ('Get DeFi positions', 'filtered by a specific protocol across all chains') and distinguishes it from siblings by emphasizing protocol-specific filtering rather than chain-based or comprehensive position retrieval. It explicitly mentions the resource (DeFi positions) and scope (wallet, protocol, all chains).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for usage ('for risk assessment and yield optimization') and implies when to use this tool (when focusing on a specific protocol across chains). However, it does not explicitly state when not to use it or name alternatives among the sibling tools, such as 'get_all_defi_positions' for unfiltered results or 'get_defi_by_chain' for chain-specific filtering.

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

get_defi_multi_chainsA
Read-onlyIdempotent

Get DeFi positions for a wallet across multiple specified blockchain networks. Allows targeted multi-chain analysis by selecting specific chains of interest for comparison and portfolio analysis.

ParametersJSON Schema
NameRequiredDescriptionDefault
walletYesEthereum wallet address (42-character hex string starting with 0x) to get DeFi positions for
chainsYesArray of blockchain networks to query. Example: ['eth', 'arb', 'base']. Supported: eth, arb, matic, avax, bsc, base, op

TDQS

A4/5.0
Behavior3/5

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

Annotations already provide strong behavioral hints (readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true). The description adds useful context about the tool's purpose for 'comparison and portfolio analysis' but doesn't disclose additional behavioral traits like rate limits, authentication needs, or what specific data is returned. With comprehensive annotations, the bar is lower, and the description adds some value without contradicting annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is perfectly concise with two sentences that each earn their place. The first sentence states the core functionality, and the second sentence explains the value proposition and use case. No wasted words, and information is front-loaded appropriately.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the comprehensive annotations (covering safety, idempotence, and open-world nature) and 100% schema coverage, the description provides adequate context for a read-only query tool. The main gap is the lack of output schema, but the description hints at what will be returned ('DeFi positions' for 'comparison and portfolio analysis'). For a tool with good structured metadata, this description is reasonably complete.

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%, with both parameters well-documented in the schema. The description adds minimal semantic context beyond the schema - it mentions 'selecting specific chains of interest' which aligns with the 'chains' parameter, but doesn't provide additional meaning about parameter usage or constraints. Baseline 3 is appropriate when the schema does the heavy lifting.

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 specific action ('Get DeFi positions'), target resource ('for a wallet'), and scope ('across multiple specified blockchain networks'). It distinguishes from sibling tools by emphasizing multi-chain analysis rather than single-chain or protocol-specific queries, which helps differentiate from tools like 'get_defi_by_chain' or 'get_defi_by_protocol'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context about when to use this tool: for 'targeted multi-chain analysis by selecting specific chains of interest for comparison and portfolio analysis.' It implies this is for focused multi-chain queries rather than comprehensive scans, but doesn't explicitly state when NOT to use it or name specific alternatives among the sibling tools.

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

get_overall_balance_all_cA
Read-onlyIdempotent

Get overall balance for a wallet across ALL supported blockchain networks in multiple currencies. Provides complete portfolio valuation including USD, EUR, AUD, and other major currencies for comprehensive wealth tracking.

ParametersJSON Schema
NameRequiredDescriptionDefault
walletYesEthereum wallet address (42-character hex string starting with 0x) to get overall balance for across all chains

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already cover key behavioral traits (read-only, open-world, idempotent, non-destructive), so the bar is lower. The description adds valuable context by specifying the scope ('across ALL supported blockchain networks') and output details ('multiple currencies...for comprehensive wealth tracking'), which enhances understanding beyond annotations. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose in the first sentence, followed by additional details in a second sentence. Both sentences earn their place by clarifying scope and output without redundancy. It is appropriately sized and efficiently structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (multi-network balance retrieval), annotations provide good behavioral coverage, and the schema fully documents the single parameter. However, there is no output schema, and the description does not detail return values (e.g., structure of balance data). It is mostly complete but could benefit from more output information.

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%, providing full details on the 'wallet' parameter (Ethereum or Solana address formats). The description adds minimal semantics by mentioning 'wallet' in context but does not provide additional meaning beyond the schema. Baseline 3 is appropriate as the schema handles parameter documentation adequately.

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 with specific verbs ('Get overall balance') and resources ('wallet across ALL supported blockchain networks'), and distinguishes it from sibling tools by emphasizing 'ALL' networks versus the sibling 'get_overall_balance_by_chain' which is chain-specific. It specifies the output includes multiple currencies for portfolio valuation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implicitly suggests usage for comprehensive wealth tracking across all networks, but does not explicitly state when to use this tool versus alternatives like the sibling 'get_overall_balance_by_chain' or other DeFi-focused tools. It provides clear context but lacks explicit exclusions or named alternatives.

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

get_overall_balance_by_chainA
Read-onlyIdempotent

Get comprehensive overall balance for a wallet on a specific blockchain network in multiple currencies (USD, EUR, AUD, GBP, JPY, CAD, CHF). Provides aggregated portfolio valuation across all assets held on the specified chain.

ParametersJSON Schema
NameRequiredDescriptionDefault
walletYesEthereum wallet address (42-character hex string starting with 0x) to get overall balance for. Example: 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045
chainYesBlockchain network identifier to query. Supported values: 'eth' (Ethereum), 'arb' (Arbitrum), 'matic' (Polygon), 'avax' (Avalanche), 'bsc' (Binance Smart Chain), 'base' (Base), 'op' (Optimism)

TDQS

A4/5.0
Behavior4/5

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

Annotations already provide readOnlyHint=true, destructiveHint=false, idempotentHint=true, and openWorldHint=false, covering safety and idempotency. The description adds valuable behavioral context beyond annotations: it specifies the output includes 'multiple currencies (USD, EUR, AUD, GBP, JPY, CAD, CHF)' and that it provides 'aggregated portfolio valuation', which clarifies the return format and scope. No contradictions with annotations exist.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is efficiently structured in two sentences: the first states the core functionality and output currencies, the second clarifies the aggregated valuation scope. Every phrase adds value (e.g., listing currencies, specifying 'across all assets'), with no redundant or vague language. It's front-loaded with key information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (2 parameters, no output schema), the description is largely complete: it covers purpose, behavioral traits (currency outputs, aggregation), and usage context. Annotations provide safety and idempotency info. The main gap is lack of explicit guidance on when to use versus siblings, but overall it's sufficient for an agent to understand and invoke the tool correctly.

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%, with detailed descriptions for both parameters (wallet address formats and chain enum values). The description doesn't add parameter-specific semantics beyond what's in the schema, but it reinforces the purpose of querying 'a wallet on a specific blockchain network', aligning with the parameters. Baseline 3 is appropriate given the schema fully documents parameters.

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 specific action ('Get comprehensive overall balance'), target resource ('for a wallet on a specific blockchain network'), and scope ('aggregated portfolio valuation across all assets held on the specified chain'). It distinguishes from siblings like 'get_wallet_balances_by_chain' by emphasizing overall/aggregated valuation rather than individual asset balances.

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 context by specifying 'on a specific blockchain network' and 'across all assets held on the specified chain', suggesting this tool is for chain-specific aggregated valuation. However, it doesn't explicitly state when to use this versus alternatives like 'get_overall_balance_all_c' (which might cover multiple chains) or 'get_wallet_balances_by_chain' (which might provide per-asset details). No explicit exclusions or prerequisites are mentioned.

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

get_wallet_balances_by_chainA
Read-onlyIdempotent

Get token balances for a wallet on a specific blockchain network. Provides detailed information about all token holdings including amounts, USD values, and token metadata for portfolio analysis.

ParametersJSON Schema
NameRequiredDescriptionDefault
walletYesEthereum wallet address (42-character hex string starting with 0x) to get token balances for
chainYesBlockchain network to query. Supported: 'eth' (Ethereum), 'arb' (Arbitrum), 'matic' (Polygon), 'avax' (Avalanche), 'bsc' (BSC), 'base' (Base), 'op' (Optimism)

TDQS

A4/5.0
Behavior4/5

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

Annotations already provide readOnlyHint=true, destructiveHint=false, openWorldHint=true, and idempotentHint=true. The description adds valuable context beyond annotations by specifying what information is returned ('detailed information about all token holdings including amounts, USD values, and token metadata') and the purpose ('for portfolio analysis'), though it doesn't mention rate limits or authentication requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is efficiently structured in two sentences: the first states the core functionality, and the second elaborates on the returned data and purpose. Every sentence adds value without redundancy, and key information is front-loaded appropriately.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (2 parameters, read-only operation), rich annotations, and 100% schema coverage, the description provides good contextual completeness. It explains what data is returned and the use case, though without an output schema, it could benefit from more detail on response format or pagination. The annotations cover safety and idempotency well.

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%, with both parameters well-documented in the schema. The description doesn't add any parameter-specific information beyond what's already in the schema (e.g., it doesn't clarify parameter interactions or provide examples). With complete schema coverage, the 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 specific action ('Get token balances'), target resource ('for a wallet on a specific blockchain network'), and scope ('all token holdings including amounts, USD values, and token metadata'). It distinguishes itself from sibling tools like 'get_all_defi_positions' or 'get_defi_balances_by_chain' by focusing specifically on token balances rather than broader DeFi positions.

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 context ('for portfolio analysis') but doesn't explicitly state when to use this tool versus alternatives like 'get_defi_balances_by_chain' or 'get_overall_balance_by_chain'. It mentions the specific blockchain requirement but doesn't provide guidance on tool selection among siblings.

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. Dates show when Glama detected each change.

  1. 8 tool updatesv1.0.3
    • First observedget_all_defi_positions
    • First observedget_defi_balances_by_chain
    • First observedget_defi_by_chain
    • First observedget_defi_by_protocol
    • First observedget_defi_multi_chains
    • First observedget_overall_balance_all_c
    • First observedget_overall_balance_by_chain
    • First observedget_wallet_balances_by_chain

TDQS

A3.6/5.0
Disambiguation2/5

Multiple tools have unclear boundaries and overlapping purposes, causing potential confusion. For example, 'get_defi_balances_by_chain' and 'get_wallet_balances_by_chain' both retrieve balances on a specific chain, while 'get_defi_by_chain' and 'get_defi_multi_chains' overlap in multi-chain analysis. The descriptions help somewhat, but the distinctions are not clearly defined.

Naming Consistency4/5

The naming follows a mostly consistent verb_noun pattern with 'get_' prefix throughout, making tools readable and predictable. However, there are minor deviations like 'get_all_defi_positions' (adjective before noun) and 'get_overall_balance_all_c' (abbreviated 'all_c'), which slightly break the pattern but do not severely impact usability.

Tool Count3/5

With 8 tools, the count is reasonable for a DeFi portfolio analysis server, but it feels borderline due to the significant overlap and redundancy among tools. The server could benefit from consolidation, as some tools (e.g., 'get_defi_by_chain' and 'get_defi_multi_chains') serve similar purposes, making the set feel slightly heavy for its scope.

Completeness4/5

The tool surface covers the domain of DeFi and wallet portfolio analysis well, with tools for overall balances, DeFi positions, and chain/protocol-specific queries. Minor gaps exist, such as no tools for historical data or transaction analysis, but agents can work around these for core tasks like portfolio overview and risk assessment.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Provides AI agents with real-time financial market intelligence including stock quotes, crypto data, technical analysis, and portfolio insights. Enables natural language queries for current prices, technical indicators, asset comparisons, and portfolio analysis.
    17
    6
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables AI agents to manage and analyze personal investment portfolios, including fund and stock holdings, net value tracking, XIRR calculations, penetration analysis, and backtesting.
    Apache 2.0

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/Datai-Network/datai-mcp-server'

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