CryptoAnalysisMCP
CryptoAnalysisMCP is an MCP server for cryptocurrency market data, technical analysis, and DEX/liquidity analytics.
Get current prices and market data for cryptocurrencies.
Calculate technical indicators such as RSI, MACD, SMA, EMA, and Bollinger Bands.
Detect chart patterns like head & shoulders, triangles, and double tops/bottoms.
Identify support and resistance levels.
Generate buy/sell/hold trading signals with conservative, moderate, or aggressive risk levels.
Run full technical analysis and multi-timeframe trend analysis.
Query DEX liquidity, pools, pool analytics, and historical pool OHLCV data.
Search tokens by network or with advanced liquidity/volume filters.
List supported networks and DEXes.
Compare token prices across DEXes on the same network.
Support broad token coverage via CoinPaprika and DexPaprika, including many DEX tokens across multiple blockchains.
Provides cryptocurrency technical analysis for Bitcoin, including real-time price data, RSI, MACD, moving averages, Bollinger Bands, chart pattern detection, support/resistance levels, and trading signals.
Provides cryptocurrency technical analysis for Ethereum, including real-time price data, technical indicators, chart pattern detection, support/resistance levels, and trading signals.
Provides cryptocurrency technical analysis for Solana, including real-time price data, technical indicators, chart pattern detection, support/resistance levels, and trading signals.
CryptoAnalysisMCP v1.3 π
Ask your MCP client about a coin. Get RSI, support/resistance and trading signals back in one call.
Quick start
Clone and build
git clone https://github.com/M-Pineapple/CryptoAnalysisMCP.git cd CryptoAnalysisMCP ./build-release.shPoint Claude Desktop at the binary in
~/Library/Application Support/Claude/claude_desktop_config.json{ "mcpServers": { "crypto-analysis": { "command": "/path/to/CryptoAnalysisMCP/crypto-analysis-mcp" } } }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
SimpleMCPto officialmcp-swift-sdkv0.12.1 as the default transportLegacy
SimpleMCPavailable via--use-legacyflag (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
DataProviderprotocol 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
SimpleMCPtransport (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:
Go to CoinPaprika API
Click "Start Free"
Register for an account
Get your API key
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:
For swing trading/investing: Just use 'daily' timeframe - it's free!
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?
Check this FAQ first
Read the documentation
Search existing issues
Open a new issue with details
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
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
Clone the repository:
git clone https://github.com/M-Pineapple/CryptoAnalysisMCP.git
cd CryptoAnalysisMCPBuild the project:
./build-release.shConfigure 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-sdktransport by default. To opt back into the legacySimpleMCPtransport (one-release safety valve, removed in v1.4), pass"args": ["--use-legacy"]in the config above.
Restart Claude Desktop
Global Installation (Optional)
sudo cp ./.build/release/CryptoAnalysisMCP /usr/local/bin/crypto-analysis-mcpThen 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: 20Compare 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: 10Get 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:
CoinPaprika (Primary): 2,500+ major cryptocurrencies with full technical analysis
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
API Key (Optional but Recommended)
β οΈ 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:
Visit CoinPaprika API
Click "Start Free"
Create an account
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": nullfor 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
Bottom Line: If you're a day trader, you MUST get the Pro subscription. There's no workaround.
Free vs Paid Tiers
Timeframes
Free Tier (No API Key):
daily- Daily candles only β
Pro Tier ($99/mo) - All timeframes:
5m- 5-minute candles15m- 15-minute candles30m- 30-minute candles1h- 1-hour candles4h- 4-hour candlesdaily- Daily candlesweekly- 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 signalsmoderate- 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 testProject 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 fileContributing
Contributions are welcome! Please feel free to submit a Pull Request.
Fork the repository
Create your feature branch (
git checkout -b feature/AmazingFeature)Commit your changes (
git commit -m 'Add some AmazingFeature')Push to the branch (
git push origin feature/AmazingFeature)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
Ensure the path in
claude_desktop_config.jsonis absoluteCheck that the binary has execute permissions:
chmod +x crypto-analysis-mcpRestart 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:
Ensure Swift 5.5+ is installed:
swift --versionClean the build:
swift package cleanUpdate 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
Dev Project Coordinator. Local desk for AI agents to track coding and non-coding projects, with Analytics and Kanban views.
Warp Command Runner. Run terminal commands from any MCP host into Warp.
Msty Admin MCP. Administer Msty Studio from an MCP client.
Member Berries. Calendar, Notes and Reminders on macOS with a local day memory.
SeaShell. Bridge Wave Terminal, Claude Desktop and Claude Code sessions.
TextEdit MCP. Create RTF documents for macOS TextEdit.
HubSpot Auditor. Read-only scored audit of a HubSpot portal.
Support
For issues, questions, or suggestions, please open an issue on GitHub.
Connect
Follow me for updates and crypto analysis insights:
π¦ Twitter/X: @m_pineapple__
π GitHub: @M-Pineapple
Made with β€οΈ by π
Available Tools
16 toolscompare_dex_pricesB
Compare token prices across different DEXes on the same network
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Token symbol | |
| network | Yes | Network name (e.g., ethereum, solana) |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Cryptocurrency symbol | |
| timeframe | No | Timeframe: 4h, daily, weekly (default: daily) |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description 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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Cryptocurrency symbol (e.g., BTC, ETH, ADA) |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| network | Yes | Network name (e.g., ethereum, solana) |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Cryptocurrency symbol | |
| timeframe | No | Timeframe: 4h, daily, weekly (default: daily) | |
| risk_level | No | Risk level: conservative, moderate, aggressive (default: moderate) |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of pools (default: 20) | |
| network | Yes | Network name (e.g., ethereum, solana, bsc) | |
| sort_by | No | Sort by: volume_usd, liquidity_usd, price_change (default: volume_usd) |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| network | Yes | Network name | |
| pool_address | Yes | Pool contract address |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| network | Yes | Network name | |
| end_date | No | End date (YYYY-MM-DD) - optional | |
| interval | No | Time interval: 5m, 15m, 30m, 1h, 4h, 1d, 1w (default: 1d) | |
| start_date | Yes | Start date (YYYY-MM-DD) | |
| pool_address | Yes | Pool contract address |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full 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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Cryptocurrency symbol | |
| timeframe | No | Timeframe: 4h, daily, weekly (default: daily) |
TDQS
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.
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.
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.
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.
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.
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)
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Cryptocurrency symbol | |
| timeframe | No | Timeframe: 4h, daily, weekly (default: daily) | |
| indicators | No | Specific indicators to calculate (optional) |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Token symbol (e.g., PEPE, BOBO) | |
| network | No | Network name (e.g., ethereum, solana, bsc) - optional |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Cryptocurrency symbol | |
| timeframe | No | Timeframe: 4h, daily, weekly (default: daily) | |
| risk_level | No | Risk level: conservative, moderate, aggressive (default: moderate) |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Cryptocurrency symbol |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of results (default: 20) | |
| query | Yes | Search query for token name or symbol | |
| min_volume | No | Minimum 24h volume in USD (optional) | |
| min_liquidity | No | Minimum liquidity in USD (optional) |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of results (default: 20, max: 100) | |
| query | No | Search query for token name or symbol (optional) | |
| network | Yes | Network name (e.g., ethereum, solana, bsc, polygon) |
TDQS
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.
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.
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.
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.
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.
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.
16 tool updates
v1.3.2- First observed
compare_dex_prices - First observed
detect_chart_patterns - First observed
get_available_networks - First observed
get_crypto_price - First observed
get_dex_info - First observed
get_full_analysis - First observed
get_network_pools - First observed
get_pool_analytics - First observed
get_pool_ohlcv - First observed
get_support_resistance - First observed
get_technical_indicators - First observed
get_token_liquidity - First observed
get_trading_signals - First observed
multi_timeframe_analysis - First observed
search_tokens_advanced - First observed
search_tokens_by_network
TDQS
Scored across 16 tools
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.
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.
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.
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
Related MCP Connectors
Crypto trading intelligence MCP β 34+ endpoints, x402 pay-per-use, AI agent strategy & execution
Live crypto technical analysis for agents: 200+ causal indicators, signals and liquidity sweeps.
Crypto market signals, technical indicators, and sentiment analysis for AI agents.
> TradingMCP puts a market analyst inside your AI assistant. Paste one URL into Claude, ChatGPT, Cursor, VS Code or any MCP client and ask in plain language: screen for breakouts, run a multi-timeframe analysis, backtest a strategy with walk-forward validation, scan for smart-money and volume signals, or get a one-prompt morning market brief. In clients that support MCP Apps, price charts and the Markets panel are drawn right in the chat. > 40+ tools covering crypto (real-time), stocks, ETFs, FX, futures and commodities across major global exchanges. > Hosted, nothing to install: Pro $9/month (2,500 tool calls) or Pro+ $29/month (10,000). Paid upfront with a 14-day money-back guarantee; your API key arrives right after checkout. > Built on the open-source tradingview-mcp core (MIT, ~5k GitHub stars): self-host it free, or use the hosted version with zero ops. > For research and education, not financial advice. Not affiliated with TradingView
Related MCP Servers
- AlicenseBqualityDmaintenanceProvides 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.2034 npmMIT
- AlicenseNot gradedqualityBmaintenanceCrypto 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.2MIT
- AlicenseAqualityDmaintenanceReal-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 client6MIT
- FlicenseNot gradedqualityDmaintenanceExposes TradingView technical indicators and OHLCV data through MCP tools for Claude Desktop or any MCP-aware client.26-