get_tokens_correlation
Identify top and bottom 10 correlated tokens for specific crypto assets from the top 100 market cap using Token Metrics API. Analyze relationships by token ID, name, symbol, category, or exchange.
Instructions
Fetch token(s) Top 10 and Bottom 10 correlated tokens from the top 100 market cap tokens from Token Metrics API.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | Comma Separated category name. Example: yield farming,defi | |
| exchange | No | Comma Separated exchange name. Example: binance,gate | |
| limit | No | Limit the number of results returned. Default is 50. Maximum is 100. | |
| page | No | Enables pagination and data retrieval control by skipping a specified number of items before fetching data. Page should be a non-negative integer, with 1 indicating the beginning of the dataset. | |
| symbol | No | Comma-separated string of token symbols (e.g., 'BTC,ETH,ADA') | |
| token_id | No | Comma-separated string of token IDs (e.g., '1,2,3') | |
| token_name | No | Comma Separated Crypto Asset Names (e.g., Bitcoin, Ethereum) |
Implementation Reference
- src/tools/correlation.ts:71-81 (handler)Implements the core execution logic for the get_tokens_correlation tool by validating the API key, building request parameters, and calling the Token Metrics API at the /correlation endpoint.
protected async performApiRequest( input: CorrelationInput, ): Promise<TokenMetricsResponse> { this.validateApiKey(); const params = this.buildParams(input); return (await this.makeApiRequest( "/correlation", params, )) as TokenMetricsResponse; } - src/tools/correlation.ts:24-69 (schema)Defines the tool metadata, name, description, and detailed input schema for the get_tokens_correlation tool.
getToolDefinition(): Tool { return { name: "get_tokens_correlation", description: "Fetch token(s) Top 10 and Bottom 10 correlated tokens from the top 100 market cap tokens from Token Metrics API.", inputSchema: { type: "object", properties: { token_id: { type: "string", description: "Comma-separated string of token IDs (e.g., '1,2,3')", }, token_name: { type: "string", description: "Comma Separated Crypto Asset Names (e.g., Bitcoin, Ethereum)", }, symbol: { type: "string", description: "Comma-separated string of token symbols (e.g., 'BTC,ETH,ADA')", }, category: { type: "string", description: "Comma Separated category name. Example: yield farming,defi", }, exchange: { type: "string", description: "Comma Separated exchange name. Example: binance,gate", }, limit: { type: "number", description: "Limit the number of results returned. Default is 50. Maximum is 100.", }, page: { type: "number", description: "Enables pagination and data retrieval control by skipping a specified number of items before fetching data. Page should be a non-negative integer, with 1 indicating the beginning of the dataset.", }, }, required: [], }, } as Tool; } - src/tools/index.ts:29-53 (registration)Registers the CorrelationTool instance (providing get_tokens_correlation) in the central AVAILABLE_TOOLS array used by the MCP server.
export const AVAILABLE_TOOLS: BaseTool[] = [ new TokenDataTool(), new PriceTool(), new HourlyOHLCVTool(), new DailyOHLCVTool(), new TokenInvestorGradeTool(), new MarketMetricsTool(), new TokenTradingSignalTool(), new AiReportTool(), new CryptoInvestorTool(), new TopTokensTool(), new ResistanceSupportTool(), new SentimentTool(), new QuantMetricsTool(), new ScenarioAnalysisTool(), new CorrelationTool(), new IndicesTool(), new IndicesHoldingsTool(), new IndicesPerformanceTool(), new TokenHourlyTradingSignalTool(), new MoonshotTokensTool(), new TokenTmGradeTool(), new TokenTmGradeHistoricalTool(), new TokenTechnologyGradeTool(), ];