Skip to main content
Glama
CryptoAnalysisMCP

CryptoAnalysisMCP

CryptoAnalysisMCP v1.3 πŸš€

Licence Swift Stars M-Pineapple/CryptoAnalysisMCP MCP server

Ask your MCP client about a coin. Get RSI, support/resistance and trading signals back in one call.

Quick start

  1. Clone and build

    git clone https://github.com/M-Pineapple/CryptoAnalysisMCP.git
    cd CryptoAnalysisMCP
    ./build-release.sh
  2. Point Claude Desktop at the binary in ~/Library/Application Support/Claude/claude_desktop_config.json

    {
      "mcpServers": {
        "crypto-analysis": {
          "command": "/path/to/CryptoAnalysisMCP/crypto-analysis-mcp"
        }
      }
    }
  3. Restart Claude Desktop and ask: Give me a full analysis of BTC

Daily candles work on the free CoinPaprika tier. A free API key is recommended for technical analysis. Full setup, including the optional key, is in Installation.

Not financial advice. Indicators, levels and signals are computed from public market data. They are not a recommendation to buy, sell or hold. See the Disclaimer and DISCLAIMER.md.

Supports 7+ MILLION tokens through DexPaprika integration! πŸŽ‰

A Model Context Protocol (MCP) server for comprehensive cryptocurrency technical analysis. Built with Swift, it provides real-time price data, technical indicators, chart pattern detection, and trading signals for over 7 million cryptocurrencies - from Bitcoin to the newest meme coin on any DEX!

⚠️ IMPORTANT FOR DAY TRADERS: This tool requires a $99/mo Pro subscription for intraday analysis. The free tier only supports daily candles, making it suitable for swing traders and long-term investors only.

Related MCP server: Name: CryptoScholar

⚠️ Disclaimer

CryptoAnalysisMCP is provided for informational and educational purposes only. It is not financial, investment, trading, or tax advice, and nothing it outputs should be treated as a recommendation to buy, sell, or hold any asset.

  • Technical indicators, chart patterns, and trading signals are computed from public market data using well-known formulas. They are imperfect, can be wrong, and offer no predictive guarantee.

  • Cryptocurrency markets are highly volatile. You can lose your entire investment β€” and more than you put in if you use leverage or margin. Never trade with money you cannot afford to lose.

  • Past performance β€” including any examples, backtests, or sample outputs in this repository β€” does not predict future returns.

  • The author and contributors are not licensed financial advisors. This project is not affiliated with, endorsed by, or operated by any exchange, broker, regulator, or data provider.

  • Always do your own research (DYOR), consult a qualified financial professional about your specific situation, and verify any data this tool produces against an authoritative source before acting on it.

  • The software is provided "as is", without warranty of any kind, per the MIT License. The author and contributors are not liable for any losses, damages, or consequences arising from your use of this tool.

By using CryptoAnalysisMCP you acknowledge and accept these terms. See DISCLAIMER.md for the full text.

πŸ†• What's New in v1.3

πŸ”„ Default SDK Transport

  • Moved from in-tree SimpleMCP to official mcp-swift-sdk v0.12.1 as the default transport

  • Legacy SimpleMCP available via --use-legacy flag (one-release safety valve; removed in v1.4)

  • Both transports expose the same 16 tools with identical schemas

βš™οΈ Swift 6.1 Toolchain

  • Full strict concurrency compliance with zero warnings

  • Modern async/await patterns throughout

  • Enhanced type safety and memory management

πŸ“¦ v1.2 Quality Bundle

  • DataProvider protocol for pluggable data sources (CoinPaprika primary, DexPaprika fallback)

  • Fixed mathematical precision in all technical indicators (RSI, MACD, OBV, Williams %R, Bollinger Bands)

  • 2,989+ integration and golden-vector tests ensure indicator accuracy

🐦 Follow @m_pineapple__ for updates!

Features

πŸ’‘ Not sure what to ask? Check our Crypto Analysis Prompts Guide for inspiration!

  • Universal Token Support: 7+ MILLION tokens through DexPaprika integration

  • Liquidity Pool Analytics: Monitor liquidity, volume, and pool data across DEXes

  • Dynamic Symbol Resolution: Automatically supports all cryptocurrencies

  • Real-time Price Data: Current prices, volume, market cap, and percentage changes

  • Technical Indicators: RSI, MACD, Moving Averages, Bollinger Bands, and more

  • Chart Pattern Detection: Head & shoulders, triangles, double tops/bottoms

  • Support & Resistance Levels: Automatic identification of key price levels

  • Trading Signals: Buy/sell/hold recommendations based on technical analysis

  • Multi-timeframe Analysis: 4-hour, daily, weekly, and monthly timeframes

  • Risk-adjusted Signal Filtering: Conservative, moderate, and aggressive thresholds for signal confidence

πŸ—ΊοΈ Roadmap

v1.4 (Planned)

  • Remove legacy SimpleMCP transport (SDK becomes mandatory)

Want to suggest a feature? Open an issue on GitHub!

❓ Frequently Asked Questions

Do I need a paid API key to use this MCP?

Short answer: Depends on your trading style.

⚠️ IMPORTANT: Day traders and scalpers NEED a Pro subscription ($99/mo). The free tier only provides daily candles, which is useless for intraday trading.

What works WITHOUT any API key:

  • βœ… Real-time price data (with slight delays)

  • βœ… Swing trading analysis (3-7 day trades)

  • βœ… Position trading (weeks to months)

  • βœ… Long-term investment analysis

  • βœ… All technical indicators on DAILY timeframe

  • βœ… 1 year of daily historical data

  • Basic price data for 7+ MILLION tokens via DexPaprika

  • Liquidity pool data across all major DEXes

  • DEX price comparison and aggregation

What REQUIRES a Pro API key ($99/mo):

  • ❌ Day trading (you need hourly/4h data)

  • ❌ Scalping (you need minute data)

  • ❌ Intraday patterns and signals

  • ❌ Real-time/low-latency updates

  • ❌ Historical data beyond 1 year

  • ❌ Any timeframe shorter than daily

How to get your FREE API key:

  1. Go to CoinPaprika API

  2. Click "Start Free"

  3. Register for an account

  4. Get your API key

  5. Add to Claude Desktop config:

{
  "mcpServers": {
    "crypto-analysis": {
      "command": "/path/to/crypto-analysis-mcp",
      "env": {
        "COINPAPRIKA_API_KEY": "your-free-api-key-here"
      }
    }
  }
}

The free tier includes:

  • βœ… 25,000 API calls per month

  • βœ… 1 year of daily historical data

  • βœ… 2,500+ cryptocurrencies

For advanced features, upgrade to CoinPaprika Pro:

  • ❌ 4-hour and hourly timeframes (Pro required)

  • ❌ Extended historical data beyond 1 year

  • ❌ Higher rate limits

  • ❌ Priority support

Can I use CoinMarketCap or CoinGecko API instead?

Currently: Not implemented. CryptoAnalysisMCP uses CoinPaprika as the primary data provider.

How to add support: As of v1.2.0, the DataProvider protocol makes it straightforward to add alternative data sources. If you're interested in CoinMarketCap or CoinGecko integration, contributions are welcome! Open an issue to discuss or submit a PR.

Why CoinPaprika first:

  • 3x more market coverage than competitors (71,000+ assets)

  • More generous free tier (25,000 API calls/month)

  • Better historical data access

  • Superior API reliability (99.9% uptime)

What cryptocurrencies are supported?

The MCP supports 7+ MILLION tokens via DexPaprika integration:

  • βœ… All 2,500+ CoinPaprika tokens (major coins with full analysis)

  • βœ… 7+ MILLION DEX tokens via DexPaprika (automatic fallback)

  • βœ… Every token on every DEX across 23+ blockchains

  • βœ… Brand new tokens - analyze tokens minutes after launch

  • βœ… Obscure meme coins - if it trades on a DEX, we have it

  • βœ… NO API KEY NEEDED for basic price data

Examples:

  • Major coins: BTC, ETH, SOL (full technical analysis via CoinPaprika)

  • Popular memes: DOGE, SHIB, PEPE, WOJAK (price data from any source)

  • New launches: That token that launched 5 minutes ago on Uniswap

  • Any ERC-20, BEP-20, SPL token, or token on any supported chain

Just use the ticker symbol - the MCP automatically finds it!

Why am I getting 402 Payment Required errors?

You're trying to use features that require a Pro subscription:

Common causes:

  • Using any timeframe other than 'daily' (4h, 1h, 15m, etc.)

  • Requesting data older than 1 year

  • Exceeding rate limits (rare)

Solutions:

  1. For swing trading/investing: Just use 'daily' timeframe - it's free!

  2. For day trading: You MUST upgrade to CoinPaprika Pro ($99/mo)

There is NO free option for day trading. If you need intraday data, you need to pay.

How accurate are the trading signals?

Trading signals are for informational purposes only β€” see the Disclaimer at the top of this README and the full DISCLAIMER.md. They are based on well-established technical indicators but no prediction is 100% accurate. Always do your own research and never invest more than you can afford to lose.

Can I use this for automated trading?

While technically possible, we strongly advise caution:

  • This MCP provides analysis, not execution

  • Requires additional safety mechanisms

  • Needs proper risk management

  • Should be thoroughly backtested

  • Consider paper trading first

How often does the data update?

Depends on your API tier:

  • Free tier: ~1-5 minute delays

  • Pro tier: 30-second updates for prices

  • Cached locally: 1-5 minutes to reduce API calls

Is my API key secure?

Yes! Your API key:

  • Is never hardcoded

  • Only read from environment variables

  • Never logged or transmitted

  • Only used for CoinPaprika API calls

  • Follows security best practices

Can I contribute to this project?

Absolutely! We welcome contributions:

  • Bug fixes

  • New indicators

  • Performance improvements

  • Documentation updates

  • Feature suggestions

See our Contributing section for guidelines.

Where can I get help?

  1. Check this FAQ first

  2. Read the documentation

  3. Search existing issues

  4. Open a new issue with details

  5. Join our community discussions

Why Swift instead of Python/JavaScript?

Swift offers:

  • Native macOS performance

  • Type safety and modern concurrency

  • Excellent memory management

  • Seamless Claude Desktop integration

  • Growing ecosystem for server-side development

Plus, we love Swift! 🍍

Prerequisites

  • macOS 10.15 or later

  • Swift 5.5 or later

  • Xcode 13+ (for development)

  • Claude Desktop

macOS only. CryptoAnalysisMCP is a Swift package for macOS (it uses Apple-only networking APIs) and is set up for Claude Desktop on macOS. It does not build or run on Linux or Windows.

Installation

Prerequisites

  1. Get a FREE CoinPaprika API Key (optional but recommended for technical analysis):

    • Visit CoinPaprika API

    • Click "Start Free" and register

    • Copy your API key for step 3

    • Note: Basic price data works without API key via DexPaprika!

Quick Install

  1. Clone the repository:

git clone https://github.com/M-Pineapple/CryptoAnalysisMCP.git
cd CryptoAnalysisMCP
  1. Build the project:

./build-release.sh
  1. Configure Claude Desktop by adding to ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "crypto-analysis": {
      "command": "/path/to/CryptoAnalysisMCP/crypto-analysis-mcp",
      "env": {
        "COINPAPRIKA_API_KEY": "your-free-api-key-here"
      }
    }
  }
}

As of v1.3.0 the server runs on the official mcp-swift-sdk transport by default. To opt back into the legacy SimpleMCP transport (one-release safety valve, removed in v1.4), pass "args": ["--use-legacy"] in the config above.

  1. Restart Claude Desktop

Global Installation (Optional)

sudo cp ./.build/release/CryptoAnalysisMCP /usr/local/bin/crypto-analysis-mcp

Then use this in Claude Desktop config:

{
  "mcpServers": {
    "crypto-analysis": {
      "command": "/usr/local/bin/crypto-analysis-mcp"
    }
  }
}

Usage

πŸ“ Example Prompts

New to crypto analysis? Check out our comprehensive Crypto Analysis Prompts Guide with 100+ example prompts for:

  • πŸƒ Day Trading

  • πŸ“Š Swing Trading

  • πŸ’Ό Long-term Investing

  • πŸ“ˆ Technical Indicators

  • 🎯 Risk Management

  • And much more!

Available Commands

Once configured, you can use these commands in Claude:

Get Current Price

crypto-analysis:get_crypto_price
  symbol: "BTC"

Technical Indicators

crypto-analysis:get_technical_indicators
  symbol: "ETH"
  timeframe: "daily"

Chart Pattern Detection

crypto-analysis:detect_chart_patterns
  symbol: "SOL"
  timeframe: "4h"

Trading Signals

crypto-analysis:get_trading_signals
  symbol: "ADA"
  risk_level: "moderate"
  timeframe: "daily"

Full Analysis

crypto-analysis:get_full_analysis
  symbol: "DOT"
  timeframe: "weekly"
  risk_level: "aggressive"

Support & Resistance

crypto-analysis:get_support_resistance
  symbol: "MATIC"
  timeframe: "daily"

Multi-timeframe Analysis

crypto-analysis:multi_timeframe_analysis
  symbol: "AVAX"

Liquidity & DEX Commands

Get Token Liquidity

crypto-analysis:get_token_liquidity
  symbol: "PEPE"
  network: "ethereum" (optional)

Search Tokens by Network

crypto-analysis:search_tokens_by_network
  network: "solana"
  query: "meme" (optional)
  limit: 20

Compare DEX Prices

crypto-analysis:compare_dex_prices
  symbol: "SHIB"
  network: "ethereum"

Get Network Pools

crypto-analysis:get_network_pools
  network: "ethereum"
  sort_by: "volume_usd"
  limit: 10

Get Available Networks

crypto-analysis:get_available_networks

πŸ’‘ Quick Examples

Here are some natural language prompts you can use:

1. Quick Analysis

"Give me a quick technical analysis of [SYMBOL]"
"Is [SYMBOL] bullish or bearish right now?"
"What's the trend for [SYMBOL]?"

2. Day Trading Focus

"Analyze [SYMBOL] for day trading opportunities"
"Show me scalping levels for [SYMBOL] today"
"What are the intraday support and resistance for [SYMBOL]?"

3. Swing Trading Analysis

"Provide swing trading setup for [SYMBOL] with 3-7 day outlook"
"Analyze [SYMBOL] patterns on daily timeframe for swing trades"
"Give me entry, stop loss, and targets for swing trading [SYMBOL]"

4. Full Institutional Analysis

"Do a complete Wall Street analyst report on [SYMBOL]"
"Analyze [SYMBOL] like a hedge fund would"
"Give me all technical indicators, patterns, and signals for [SYMBOL]"

5. Risk-Based Strategies

"Show me conservative trading strategy for [SYMBOL]"
"What's the aggressive play on [SYMBOL]?"
"Give me risk-adjusted entries for [SYMBOL]"

6. Specific Indicator Requests

"What's the RSI and MACD saying about [SYMBOL]?"
"Check Bollinger Bands squeeze on [SYMBOL]"
"Are there any chart patterns forming on [SYMBOL]?"

7. Meme Coin & DEX Token Analysis

"What's the price of WOJAK?"
"Analyze that new PEPE fork on Ethereum"
"Show me price data for [obscure token]"
"Track this Uniswap token: [contract address]"

8. Liquidity & DEX Analytics

"What's the liquidity for SHIB across all DEXes?"
"Show me the top pools on Solana"
"Compare PEPE prices on different DEXes"
"Find high liquidity meme coins on BSC"
"Which DEX has the best price for ETH?"
"Show me all tokens on Arbitrum with >$1M liquidity"

πŸ’‘ Replace [SYMBOL] with any cryptocurrency ticker (BTC, ETH, SOL, etc.)

πŸ‘‰ See 100+ more examples in our Crypto Analysis Prompts Guide

Supported Cryptocurrencies

The MCP supports 7+ MILLION tokens through our dual-provider system:

  1. CoinPaprika (Primary): 2,500+ major cryptocurrencies with full technical analysis

  2. DexPaprika (Fallback): 7+ million DEX tokens across 23+ blockchains - NO API KEY REQUIRED!

The MCP automatically:

  • Checks CoinPaprika first for established tokens (better data, more features)

  • Falls back to DexPaprika for any token not found

  • Caches results for optimal performance

  • Works with just the ticker symbol

Supported Networks via DexPaprika:

  • Ethereum, BSC, Polygon, Arbitrum, Optimism, Base

  • Solana, Avalanche, Fantom, Aptos, Sui

  • And 12+ more chains!

Just use any ticker symbol - if it exists on any DEX, we'll find it!

Configuration

⚠️ Important:

  • Basic price data works WITHOUT API key via DexPaprika

  • Technical analysis features still require a FREE CoinPaprika API key

Get your FREE API key:

  1. Visit CoinPaprika API

  2. Click "Start Free"

  3. Create an account

  4. Copy your API key

Add to Claude Desktop:

Option 1 - Environment Variable (Recommended):

{
  "mcpServers": {
    "crypto-analysis": {
      "command": "/path/to/crypto-analysis-mcp",
      "env": {
        "COINPAPRIKA_API_KEY": "your-api-key-here"
      }
    }
  }
}

Option 2 - System Environment:

export COINPAPRIKA_API_KEY="your-api-key-here"

Transport

CryptoAnalysisMCP v1.3+ runs on the official mcp-swift-sdk (v0.12.1) by default. A legacy in-tree SimpleMCP transport is retained for one release as an opt-out:

  • Default (recommended): no flag needed.

  • Opt out: add "args": ["--use-legacy"] to your Claude Desktop config.

  • --use-sdk: accepted as a no-op for v1.2.x backward compatibility; emits a one-time deprecation warning to stderr. Will be removed in v1.4.

Both transports expose the same 16 tools with the same input schemas (verified by an integration test on every build). Wire-format differences:

  • The SDK serializes JSON with sorted keys.

  • The SDK emits "description": null for tools without a description; the legacy path omits the key.

Neither difference is semantically meaningful, but anyone diffing their JSON-RPC traffic across versions should be aware.

Trading Style Compatibility

image

Bottom Line: If you're a day trader, you MUST get the Pro subscription. There's no workaround.

Free vs Paid Tiers

image

Timeframes

Free Tier (No API Key):

  • daily - Daily candles only βœ…

Pro Tier ($99/mo) - All timeframes:

  • 5m - 5-minute candles

  • 15m - 15-minute candles

  • 30m - 30-minute candles

  • 1h - 1-hour candles

  • 4h - 4-hour candles

  • daily - Daily candles

  • weekly - Weekly candles

πŸ’‘ Note: Attempting to use any timeframe other than 'daily' without a Pro key will result in an error.

Risk Levels

  • conservative - Lower risk, focus on strong signals

  • moderate - Balanced approach (default)

  • aggressive - Higher risk, more sensitive signals

Development

Building from Source

# Clone the repository
git clone https://github.com/M-Pineapple/CryptoAnalysisMCP.git
cd CryptoAnalysisMCP

# Build debug version
swift build

# Build release version
swift build -c release

# Run tests
swift test

Project Structure

CryptoAnalysisMCP/
β”œβ”€β”€ Sources/
β”‚   └── CryptoAnalysisMCP/
β”‚       β”œβ”€β”€ Main.swift                    # Entry point
β”‚       β”œβ”€β”€ SimpleMCP.swift               # MCP protocol implementation
β”‚       β”œβ”€β”€ CryptoDataProvider.swift      # CoinPaprika API integration
β”‚       β”œβ”€β”€ DexPaprikaDataProvider.swift  # πŸ†• DexPaprika integration
β”‚       β”œβ”€β”€ TechnicalAnalyzer.swift       # Indicators & calculations
β”‚       β”œβ”€β”€ ChartPatternRecognizer.swift  # Pattern detection
β”‚       β”œβ”€β”€ SupportResistanceAnalyzer.swift # Support/resistance levels
β”‚       β”œβ”€β”€ AnalysisFormatters.swift      # Output formatting
β”‚       └── Models.swift                  # Data models
β”œβ”€β”€ Tests/                                # Unit tests
β”œβ”€β”€ Package.swift                         # Swift package manifest
└── README.md                             # This file

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository

  2. Create your feature branch (git checkout -b feature/AmazingFeature)

  3. Commit your changes (git commit -m 'Add some AmazingFeature')

  4. Push to the branch (git push origin feature/AmazingFeature)

  5. Open a Pull Request

License

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

Acknowledgments

  • Built with Swift and the Model Context Protocol

  • Powered by CoinPaprika API for cryptocurrency data

  • πŸ†• Enhanced with DexPaprika for 7+ million DEX tokens

  • Technical analysis algorithms based on industry standards

  • Special thanks to the CoinPaprika team for their support!

Troubleshooting

MCP not appearing in Claude

  1. Ensure the path in claude_desktop_config.json is absolute

  2. Check that the binary has execute permissions: chmod +x crypto-analysis-mcp

  3. Restart Claude Desktop after configuration changes

API Rate Limits

The free tier of CoinPaprika has rate limits. If you encounter 402 errors, consider:

  • Using daily timeframe (most compatible with free tier)

  • Adding an API key for higher limits

  • Implementing request throttling

Build Issues

If you encounter build errors:

  1. Ensure Swift 5.5+ is installed: swift --version

  2. Clean the build: swift package clean

  3. Update dependencies: swift package update

πŸ’– Support This Project

If this saves you time, a star helps others find it.

If CryptoAnalysisMCP has helped enhance your crypto analysis workflow or saved you time with technical indicators, consider supporting its development:

Your support helps me:

  • Maintain and improve CryptoAnalysisMCP with new features

  • Keep the project open-source and free for everyone

  • Dedicate more time to addressing user requests and bug fixes

  • Explore new indicators and analysis techniques

Thank you for considering supporting my work! πŸ™

More MCP servers by M-Pineapple

Support

For issues, questions, or suggestions, please open an issue on GitHub.

Connect

Follow me for updates and crypto analysis insights:


Made with ❀️ by 🍍

Available Tools

16 tools
compare_dex_pricesB

Compare token prices across different DEXes on the same network

NameRequiredDescriptionDefault
symbolYesToken symbol
networkYesNetwork name (e.g., ethereum, solana)

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It does not state whether this is a live read, which DEXes are covered, what the comparison output looks like (best price, spread, list of quotes), or whether any permissions or rate limits apply. 'Compare' implies a non-destructive read, but the agent must guess at the rest.

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?

A single sentence with zero filler, and the scoping constraint ('on the same network') is front-loaded alongside 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.

Completeness2/5

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

With no annotations and no output schema, the description should explain what the comparison returns (e.g., per-DEX quotes, best venue, spread) and any coverage limits. It leaves the return value and DEX coverage entirely unspecified, which is a meaningful gap for a comparison tool whose output shape is unknown.

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 coverage is 100%, with both 'symbol' and 'network' documented in the schema, so the baseline is 3. The description adds the useful semantic that network must match across DEXes ('on the same network'), but it does not add format guidance beyond the schema's example networks.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Compare') and resource ('token prices across different DEXes on the same network'), which tells an agent this is a cross-venue price comparison rather than a single-price lookup. It does not explicitly differentiate itself from siblings like get_crypto_price or get_dex_info, but the scope is clear enough to distinguish by inference.

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 phrase 'on the same network' implies the tool's operating context and the constraint that both DEXes must share a network, but there is no explicit when-to-use or when-not-to-use guidance, and no sibling is named as an alternative. Usage is inferable but not directed.

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

detect_chart_patternsC

Detect chart patterns like head & shoulders, triangles, double tops/bottoms

NameRequiredDescriptionDefault
symbolYesCryptocurrency symbol
timeframeNoTimeframe: 4h, daily, weekly (default: daily)

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are supplied, so the description carries the full burden and discloses almost nothing beyond the pattern names. It does not say whether detection runs over historical OHLCV, whether results include confidence or price targets, how many patterns are returned, or how much data the timeframe requires.

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?

A single compact sentence that leads with the verb and backs it with concrete pattern examples. Nothing is wasted, though the sentence does no more than the minimum.

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

Completeness2/5

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

There is no output schema and the description explains nothing about the return value, which for a pattern detector is the critical unknown (detected pattern list, direction, confidence, range). With no annotations either, an agent cannot predict the response shape.

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 coverage is 100% and both parameters (symbol, timeframe with accepted values and default) are already documented in the schema. The description adds no additional meaning such as how timeframe affects pattern reliability, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (detect) and resource (chart patterns) and enumerates examples (head & shoulders, triangles, double tops/bottoms), so an agent knows exactly what it produces. It does not distinguish itself from analytical siblings such as get_technical_indicators, get_support_resistance, or multi_timeframe_analysis.

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

Usage Guidelines2/5

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

There is no statement of when to use this rather than the many overlapping technical-analysis siblings, nor any prerequisites or exclusions. The only hint of usage is the implicit 'this is technical analysis' framing.

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

get_available_networksA

Get list of all supported blockchain networks

NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. 'Get list of' implies a read-only, side-effect-free enumeration, which is good, but it says nothing about whether the list is static or configured, or how entries are identified (names vs. IDs) for use in sibling tools. For a simple zero-param listing tool this is a moderate rather than severe gap.

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?

A single front-loaded sentence with no filler or redundancy, appropriately sized for a trivial listing tool. It is efficient but offers no additional qualifying detail.

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?

With no output schema and no annotations, the description is the only source of truth, and it leaves the return shape (what fields each network entry has, what identifier other tools expect) unspecified. Adequate for an agent to decide to call it, but incomplete for using the result correctly downstream.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters and the input schema is an empty object, so there is nothing for the description to disambiguate. Baseline 4 applies for a parameterless tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('Get list of all supported blockchain networks'), which is unambiguous about what the tool returns. It implicitly distinguishes itself from siblings like get_network_pools by making clear this is the network inventory, though it never names an alternative explicitly.

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?

Usage is only implied: an agent can infer this is a discovery step to find valid network identifiers before calling get_network_pools or get_token_liquidity. The description never says when to call it or that its output feeds other tools, so the routing logic is left to inference.

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

get_crypto_priceC

Get current price and market data for a cryptocurrency

NameRequiredDescriptionDefault
symbolYesCryptocurrency symbol (e.g., BTC, ETH, ADA)

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It does not disclose the data source/exchange, quote currency, freshness/latency, rate limits, or authentication requirements, which matter for a price tool.

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?

One efficient, front-loaded sentence with no wasted words. It is appropriately sized for a simple read tool, though it could include one clause on data source or currency.

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?

For a simple one-parameter read tool with no output schema, this is minimally adequate: it tells the agent what is returned in broad terms. It is incomplete on data provenance, quote currency, and whether 'market data' includes volume/market cap, which the agent would need to set expectations.

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% and the single parameter is documented with examples (BTC, ETH, ADA). The description adds no additional meaning beyond the schema, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Get') and resource ('current price and market data for a cryptocurrency'), so the agent knows exactly what it returns. However, it does not distinguish itself from siblings such as get_technical_indicators, get_trading_signals, or compare_dex_prices, which also return crypto market data.

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

Usage Guidelines2/5

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

No guidance on when to use this versus the many sibling analysis tools, no exclusions, and no prerequisites. The agent must infer usage from the name alone.

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

get_dex_infoB

Get information about DEXes available on a network

NameRequiredDescriptionDefault
networkYesNetwork name (e.g., ethereum, solana)

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden, and it discloses nothing beyond the one-line purpose β€” no indication of what the returned 'information' contains, whether results are cached/static, or how large the listing may be. For a read-only lookup the risk is low, but the disclosure gap is real.

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?

One short sentence, front-loaded with the verb and resource, with zero filler. Nothing could be trimmed without losing the scope qualifier.

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?

With no output schema and no annotations, the description should hint at what the response looks like (e.g., DEX names, ids, chains) so an agent can plan downstream calls. It is adequate for a simple lookup but leaves the return shape entirely unspecified.

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% and the single 'network' parameter is already documented with examples (ethereum, solana). The description's phrase 'on a network' merely restates the schema, adding no format or validation detail beyond it, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Get information') and resource ('DEXes') scoped to a network, which reads clearly and is distinct from siblings like get_network_pools or get_pool_analytics. The weak point is that 'information' is unspecific about what fields are returned, but the resource is unambiguous.

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

Usage Guidelines3/5

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

The per-network framing implies when it is useful (discovering which DEXes exist on a chain), but there is no explicit when-to-use/when-not guidance and no reference to alternatives such as get_network_pools or compare_dex_prices.

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

get_full_analysisB

Get comprehensive technical analysis including all indicators, patterns, and signals

NameRequiredDescriptionDefault
symbolYesCryptocurrency symbol
timeframeNoTimeframe: 4h, daily, weekly (default: daily)
risk_levelNoRisk level: conservative, moderate, aggressive (default: moderate)

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description carries the full disclosure burden, yet it says nothing about whether this is a read-only aggregation, how expensive/slow a multi-signal computation is, whether results are cached, or how errors on partial data are handled. Only the obvious 'get implies read' is conveyed.

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?

A single front-loaded sentence with zero filler. It is efficient, though the brevity borders on under-specification for an aggregate analysis tool.

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?

For a no-annotation, no-output-schema tool that bundles many analyses, the description omits what the response actually contains (structure, per-indicator breakdown) and any behavioral caveats. It is minimally adequate but leaves the agent guessing about return shape and cost.

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 symbol, timeframe, and risk_level all documented in the schema, so the description need not repeat them. It adds no meaning beyond the schema (e.g., effect of risk_level on signals), so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb (get) and resource (comprehensive technical analysis) plus enumerates the scope: all indicators, patterns, and signals. It is clear what the tool returns, but it never names the sibling tools it aggregates (get_technical_indicators, detect_chart_patterns, get_trading_signals), so an agent must infer the aggregate-vs-single distinction itself.

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?

"Comprehensive ... including all indicators, patterns, and signals" implies the tool is the one-stop alternative to the granular siblings, but the description never states when to use this versus them, nor any cost/latency tradeoff for the broader call. Usage is left implied rather than stated.

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

get_network_poolsB

Get top liquidity pools on a specific network

NameRequiredDescriptionDefault
limitNoNumber of pools (default: 20)
networkYesNetwork name (e.g., ethereum, solana, bsc)
sort_byNoSort by: volume_usd, liquidity_usd, price_change (default: volume_usd)

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. The verb 'Get' signals a read operation, but there is no explicit read-only confirmation, no mention of rate limits, pagination, or return behavior.

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 a single front-loaded sentence with no wasted words. Its brevity is appropriate for a simple read tool, even though other dimensions suffer from under-specification.

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?

The tool is low-complexity and the schema fully documents its parameters, but there is no output schema and no annotations. The description does not explain return values, default result size, or ordering beyond what the schema states.

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 documents network, limit, and sort_by. The description adds 'top' and 'specific network' but no syntax, defaults, or filtering semantics beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Get top liquidity pools on a specific network.' It is clear and scoped, though it does not explicitly distinguish itself from nearby siblings such as get_pool_analytics or get_token_liquidity.

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

Usage Guidelines2/5

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

The description implies the tool is for listing top pools on a network, but it gives no explicit when-to-use guidance, no exclusions, and no named alternatives. An agent must infer its role from the name alone.

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

get_pool_analyticsC

Get detailed analytics for a specific liquidity pool

NameRequiredDescriptionDefault
networkYesNetwork name
pool_addressYesPool contract address

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are supplied, so the description carries the full behavioral burden and discloses almost nothing: not whether results are cached/realtime, not the time window covered, not whether the pool must exist on the given network. Only the implicit read-only nature of 'get' is conveyed.

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?

A single front-loaded sentence with no filler. It is efficient, though the efficiency comes partly from saying very little.

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

Completeness2/5

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

With no output schema and no annotations, the description would need to explain what 'analytics' comprises (TVL, volume, fees, APR, time range). It does not, leaving the agent unable to predict the response or judge relevance.

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 required parameters documented, so the schema already does the heavy lifting. The description adds no format hints (e.g., address case sensitivity, supported network naming), so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a verb and resource ('get detailed analytics for a specific liquidity pool'), which is more than a tautology, but 'analytics' is an undefined umbrella term. Siblings like get_pool_ohlcv and get_token_liquidity carve out similar territory, and the description gives no signal about how this differs.

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

Usage Guidelines2/5

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

There is no indication of when to choose this over get_pool_ohlcv, get_token_liquidity, or get_full_analysis, and no prerequisites or exclusions are stated. The agent must infer usage entirely from the name.

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

get_pool_ohlcvC

Get historical OHLCV (candlestick) data for a liquidity pool

NameRequiredDescriptionDefault
networkYesNetwork name
end_dateNoEnd date (YYYY-MM-DD) - optional
intervalNoTime interval: 5m, 15m, 30m, 1h, 4h, 1d, 1w (default: 1d)
start_dateYesStart date (YYYY-MM-DD)
pool_addressYesPool contract address

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the full behavioral burden. 'Get' implies a read-only operation, but the description does not state permissions, rate limits, error behavior, or data source, leaving significant gaps for a data retrieval tool.

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

Conciseness4/5

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

The description is a single, front-loaded sentence with no wasted words. It is efficient, though its terseness contributes to gaps in other dimensions rather than being a conciseness issue.

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?

The tool has no output schema and no annotations, so the description should ideally explain return format or data limitations. The schema fully documents parameters, making the definition minimally adequate, but it omits what the response looks like and any constraints on data availability.

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 every parameter is already documented in the input schema. The description adds no additional meaning beyond what the schema provides, which is the baseline expectation when schema coverage is high.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Get') and resource ('historical OHLCV (candlestick) data') scoped to 'a liquidity pool', making the operation clear. However, it does not differentiate this tool from siblings like get_pool_analytics or get_technical_indicators, so it falls short of full sibling differentiation.

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

Usage Guidelines2/5

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

There is no indication of when to use this tool versus alternatives, no prerequisites, and no exclusions. The agent receives no guidance on selecting this over other pool-related analytics tools.

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

get_support_resistanceC

Find key support and resistance levels

NameRequiredDescriptionDefault
symbolYesCryptocurrency symbol
timeframeNoTimeframe: 4h, daily, weekly (default: daily)

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of disclosure and does not meet it. It does not say how levels are computed, whether it is a read-only analysis, how many levels are returned, or what happens with an unsupported timeframe. Only the word 'find' weakly implies a read operation.

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?

A single short sentence with no wasted words, and the core capability is front-loaded. Brevity is the issue only in that too little is said, not in verbosity.

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

Completeness2/5

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

Given no annotations and no output schema, the description should explain what the response contains, such as whether levels are price points with strength scores, and how timeframe affects results. For example, it should clarify whether daily is the default, while the schema covers the enum values. As written, it leaves the agent unable to predict the output.

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%: both symbol and timeframe are documented, including the timeframe enum values and the default of daily. The description adds no further meaning about parameters, so the schema baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource: finding support and resistance levels. That is clear enough that an agent knows the general capability. However, it offers no differentiation from nearby siblings such as get_technical_indicators, detect_chart_patterns, or multi_timeframe_analysis.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives, and no mention of prerequisites such as the need for historical price data. The agent must infer from the name alone whether to call this tool or get_technical_indicators.

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

get_technical_indicatorsC

Calculate technical indicators (RSI, MACD, SMA, EMA, Bollinger Bands)

NameRequiredDescriptionDefault
symbolYesCryptocurrency symbol
timeframeNoTimeframe: 4h, daily, weekly (default: daily)
indicatorsNoSpecific indicators to calculate (optional)

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It implies a read-only computation but never states that nothing is mutated, that it requires historical candle data, whether timeframes must be pre-supported, or what the response contains β€” significant gaps for a bare tool.

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?

A single efficient sentence with the actionable content (which indicators) up front and no filler. It is sparse rather than padded, though it could carry one more clause about usage or output without bloat.

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

Completeness2/5

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

With no output schema and no annotations, the description should explain the shape of the returned indicator series and any constraints on timeframe/symbol coverage; it explains neither. For a 3-parameter analytical tool in a crowded sibling set, this leaves the agent guessing.

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 coverage is 100%, so the required symbol, timeframe options, and optional indicator array are already fully documented in the schema. The description's indicator list adds marginal mapping to the 'indicators' parameter but no syntax, accepted values, or defaults beyond what the schema states.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Calculate technical indicators') and enumerates the actual indicator families computed, so an agent knows exactly what comes back. It does not differentiate from siblings like get_trading_signals, detect_chart_patterns, or multi_timeframe_analysis, which overlap heavily in this namespace.

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

Usage Guidelines2/5

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

No statement of when to use this versus get_trading_signals, get_support_resistance, or multi_timeframe_analysis, and no prerequisites (e.g. whether OHLCV data must exist for the symbol/timeframe). Usage is inferable only from the name and indicator list.

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

get_token_liquidityC

Get liquidity information for a token across all DEXes

NameRequiredDescriptionDefault
symbolYesToken symbol (e.g., PEPE, BOBO)
networkNoNetwork name (e.g., ethereum, solana, bsc) - optional

TDQS

C2.9/5.0
Behavior2/5

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

No annotations exist, so the description must carry the full behavioral burden and it does not. It doesn't say what 'liquidity information' includes (TVL, depth, slippage, price impact), whether results are aggregated across DEXes, whether a missing network searches all chains, or whether the call is read-only and rate-limited.

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?

One short sentence, front-loaded with the action and resource. Nothing wasted, though there is also very little content to structure.

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

Completeness2/5

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

For a tool with no annotations and no output schema, the description should specify what liquidity metrics are returned and how multi-DEX aggregation behaves. As written, an agent knows only the topic, not the result shape or scope semantics.

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 both parameters (symbol, optional network) are already documented with examples. The description adds only the 'across all DEXes' aggregation framing, which hints that network is an optional narrowing filter, but adds no real syntax or semantics beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Get') and resource ('liquidity information for a token') with a scope qualifier ('across all DEXes'). It is distinguishable from pool-level siblings like get_network_pools and get_pool_analytics, but it never explicitly contrasts with those alternatives.

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

Usage Guidelines2/5

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

There is no guidance on when to call this instead of get_network_pools, get_dex_info, get_pool_analytics, or compare_dex_prices. The agent must infer usage from the name alone.

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

get_trading_signalsC

Generate buy/sell/hold signals based on technical analysis

NameRequiredDescriptionDefault
symbolYesCryptocurrency symbol
timeframeNoTimeframe: 4h, daily, weekly (default: daily)
risk_levelNoRisk level: conservative, moderate, aggressive (default: moderate)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full disclosure burden, yet it says nothing about how signals are derived, whether they are per-timeframe, whether confidence or indicator breakdowns accompany them, or whether they should be treated as advice. "Based on technical analysis" is the only behavioral hint provided.

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?

A single front-loaded sentence with no filler β€” efficient, though its economy borders on under-specification rather than crispness.

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

Completeness2/5

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

No output schema and no annotations, so the description should explain the shape and trustworthiness of a signal (fields, per-timeframe behavior, caveats) but does not. For a compute-style analysis tool with three knobs, this leaves real gaps an agent cannot resolve elsewhere.

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 coverage is 100% and each parameter already documents its accepted values and defaults, so the schema does the heavy lifting. The description adds nothing about how timeframe or risk_level change the resulting signal, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and output ("Generate buy/sell/hold signals") plus the basis ("technical analysis"), so the agent knows what it produces. However, it draws no line against close siblings such as get_technical_indicators, multi_timeframe_analysis, or get_full_analysis, which could easily overlap.

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

Usage Guidelines2/5

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

No guidance on when to pick this over get_technical_indicators, multi_timeframe_analysis, or get_full_analysis, and no prerequisites or exclusions. The agent must infer the choice from the name alone.

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

multi_timeframe_analysisC

Analyze trends and signals across multiple timeframes

NameRequiredDescriptionDefault
symbolYesCryptocurrency symbol

TDQS

C2.5/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of disclosure. It does not state whether the tool is read-only, what data sources or timeframes are used, whether results are cached or delayed, or what the response contains, leaving significant behavioral gaps for an analysis tool.

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

Conciseness3/5

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

The description is a single short sentence with no wasted words, but it is under-specified rather than appropriately concise. It front-loads the action but omits key context that would make the sentence more useful.

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

Completeness2/5

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

Given the complexity implied by 'multiple timeframes' and the absence of annotations or an output schema, the description is incomplete. It does not explain which timeframes are analyzed, what outputs to expect, or how to interpret the results, so an agent lacks enough context to call it confidently.

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%, and the single parameter is documented as a 'Cryptocurrency symbol'. The description adds no meaning beyond the schema, so the baseline of 3 is appropriate for a well-documented one-parameter schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a verb ('Analyze') and a resource area ('trends and signals across multiple timeframes'), so the general purpose is understandable. However, it does not specify which timeframes, what signals, or how this differs from sibling analysis tools such as get_trading_signals, get_technical_indicators, or get_full_analysis.

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

Usage Guidelines2/5

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

There is no explicit guidance on when to use this tool versus alternatives. The description implies it is for multi-timeframe analysis, but an agent must infer that from the name and cannot tell when to choose it over get_full_analysis or get_trading_signals.

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

search_tokens_advancedC

Advanced token search across all networks with filters

NameRequiredDescriptionDefault
limitNoNumber of results (default: 20)
queryYesSearch query for token name or symbol
min_volumeNoMinimum 24h volume in USD (optional)
min_liquidityNoMinimum liquidity in USD (optional)

TDQS

C2.5/5.0
Behavior2/5

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

With no annotations, the description carries the full burden and discloses almost nothing: no mention of result ranking/ordering, no pagination behavior with the limit parameter, no indication of how min_volume/min_liquidity interact with query, and no note on what a result contains. "Advanced" conveys no behavioral fact.

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

Conciseness3/5

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

A single sentence with no wasted clauses, so it is compact. However, it is under-specified rather than concise β€” the words "advanced" and "with filters" occupy space without earning it, and there is no front-loaded statement of distinction.

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

Completeness2/5

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

For a 4-parameter cross-network search tool with no annotations and no output schema, the description says nothing about return values, ordering, empty-result behavior, or how filters combine. The schema covers inputs, but an agent still lacks the context needed to interpret or trust the results.

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 all four parameters (query, limit, min_volume, min_liquidity) are already documented in the schema. The description's only contribution is the vague word "filters," adding no syntax, format, or interaction semantics beyond the schema β€” baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a verb and resource ("token search") and a scope ("across all networks"), which does partially distinguish it from search_tokens_by_network. But "advanced" and "with filters" are filler that don't say what makes it advanced or which filters are available, so the core differentiator remains opaque.

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

Usage Guidelines2/5

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

No explicit when-to-use or when-not-to-use guidance, and the obvious sibling search_tokens_by_network is never named. The only implied routing signal is "across all networks," which an agent must infer selects this tool when no single network is targeted.

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

search_tokens_by_networkC

Search for tokens on a specific blockchain network

NameRequiredDescriptionDefault
limitNoNumber of results (default: 20, max: 100)
queryNoSearch query for token name or symbol (optional)
networkYesNetwork name (e.g., ethereum, solana, bsc, polygon)

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries full behavioral burden, yet it discloses nothing beyond the one-line purpose: no return shape, no pagination/limit interaction, no indication whether results are ranked, and no note that this is a read-only lookup. The only behavioral hint is the implicit scoping to a single network.

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?

A single efficient sentence with the network scoping front-loaded and no filler. It is concise but borders on under-specified rather than maximally useful.

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?

For a simple read-only search with a fully documented schema and a required network param, the definition is minimally viable. It omits what results contain, how the optional query matches, and how it relates to the advanced search sibling, leaving gaps an agent must guess at.

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 three params fully documented (limit with default/max, query for name/symbol, network with examples), so the schema does the heavy lifting. The description adds no parameter meaning beyond restating the network scoping already in the schema, making baseline 3 appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (search) and resource (tokens) with a scope qualifier (a specific blockchain network). It does not name or distinguish itself from the sibling search_tokens_advanced, so an agent must infer the difference from the name alone.

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

Usage Guidelines2/5

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

There is no guidance on when to use this instead of search_tokens_advanced, nor on prerequisites like knowing a valid network name (get_available_networks exists as a sibling but is not referenced). Usage must be inferred entirely from the name.

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.

  1. 16 tool updatesv1.3.2
    • First observedcompare_dex_prices
    • First observeddetect_chart_patterns
    • First observedget_available_networks
    • First observedget_crypto_price
    • First observedget_dex_info
    • First observedget_full_analysis
    • First observedget_network_pools
    • First observedget_pool_analytics
    • First observedget_pool_ohlcv
    • First observedget_support_resistance
    • First observedget_technical_indicators
    • First observedget_token_liquidity
    • First observedget_trading_signals
    • First observedmulti_timeframe_analysis
    • First observedsearch_tokens_advanced
    • First observedsearch_tokens_by_network

TDQS

B3.1/5.0

Scored across 16 tools

Disambiguation4/5

Most tools target a clearly distinct resource (pools, tokens, networks, DEXes, indicators), and the pool tools split cleanly into listing, analytics, and OHLCV. The main overlap is search_tokens_by_network vs search_tokens_advanced, and get_full_analysis aggregates several other tools (signals, indicators, patterns), though its description makes that aggregation explicit.

Naming Consistency4/5

Names are uniformly snake_case with an action-first pattern (get_, search_, detect_, compare_), which makes them predictable. Minor deviations like multi_timeframe_analysis lacking a leading verb keep it from a perfect score.

Tool Count4/5

16 tools is on the heavy side of the ideal range but each corresponds to a real analytical capability (prices, pools, indicators, patterns, signals, networks). No obviously redundant tools inflate the count, though get_full_analysis partially duplicates the sum of others.

Completeness4/5

The surface covers the core crypto analysis lifecycle: discovery (networks, tokens, pools, DEXes), pricing and cross-DEX comparison, historical OHLCV, indicators, pattern detection, and signals. Gaps are minorβ€”e.g., OHLCV is only exposed for liquidity pools, not for tokens/coins generally, and there is no token detail/metadata tool beyond search.

Maintenance

ActivityMaintained
ResponsivenessUnresponsive

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    Provides a comprehensive suite of 20 tools for cryptocurrency trading and technical analysis across 100+ exchanges like Binance and MEXC via CCXT. It enables users to execute orders, track positions, and scan for market opportunities through Claude Desktop using natural language.
    20
    34 npm
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Crypto technical analysis inside Claude. Get live TA from Binance (EMA, RSI, MACD, ADX, TSS score), macro market context (ARS/MRS scores), coin ranking, and a grounded bull/bear debate β€” no chart-switching needed.
    2
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Real-time crypto market intelligence MCP. Get prices, trending coins, market overview, top coins by market cap, and portfolio value β€” all through natural language in Claude, Cursor, or any MCP client
    6
    MIT