UNPKG

@noves/noves-mcp-server

Version:

MCP server that wraps Noves Intent service for natural language blockchain data

49 lines (48 loc) 2.57 kB
import { z } from 'zod'; /** * Input validation schemas for Noves MCP Server tools */ export const GetRecentTransactionsSchema = z.object({ chain: z.string().describe('Blockchain network (e.g., ethereum, polygon, arbitrum)'), walletAddress: z.string().describe('Wallet address to analyze'), limit: z.number().optional().describe('Number of transactions to return (default: 10)') }); export const GetTransactionDetailsSchema = z.object({ chain: z.string().describe('Blockchain network'), transactionHash: z.string().describe('Transaction hash to analyze') }); export const AnalyzeWalletSchema = z.object({ chain: z.string().describe('Blockchain network'), walletAddress: z.string().describe('Wallet address to analyze'), timeframe: z.string().optional().describe('Time period to analyze (e.g., "7d", "30d", "1y")') }); export const GetTranslatedTransactionSchema = z.object({ chain: z.string().describe('Blockchain network'), transactionHash: z.string().describe('Transaction hash to get human-readable description') }); export const GetTransactionTransfersSchema = z.object({ chain: z.string().describe('Blockchain network'), walletAddress: z.string().describe('Wallet address to analyze'), limit: z.number().optional().describe('Number of transactions to return (default: 5)') }); export const GetWalletSummarySchema = z.object({ chain: z.string().describe('Blockchain network'), walletAddress: z.string().describe('Wallet address to analyze'), limit: z.number().optional().describe('Number of recent transactions to include in summary (default: 10)') }); // New schemas for token price functionality export const GetCurrentTokenPriceSchema = z.object({ chain: z.string().describe('Blockchain network (e.g., ethereum, polygon, arbitrum)'), tokenAddress: z.string().describe('Token contract address') }); export const GetHistoricalTokenPriceSchema = z.object({ chain: z.string().describe('Blockchain network (e.g., ethereum, polygon, arbitrum)'), tokenAddress: z.string().describe('Token contract address'), timestamp: z.string().describe('Unix timestamp for historical price') }); export const GetTokenPriceComparisonSchema = z.object({ chain: z.string().describe('Blockchain network (e.g., ethereum, polygon, arbitrum)'), tokenAddress: z.string().describe('Token contract address'), fromTimestamp: z.string().describe('Start Unix timestamp for comparison'), toTimestamp: z.string().optional().describe('End Unix timestamp for comparison (default: current time)') });