jupiter_token_search
Search Solana tokens by name, symbol, or address to get metadata, verification status, and trading metrics.
Instructions
Search for Solana tokens by name, symbol, or mint address. Returns metadata, verification status, organic scores, and trading metrics.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Token name, symbol, or mint address | |
| limit | No | Max results (default 10) |
Implementation Reference
- src/tools/tokens.ts:5-30 (registration)The registerTokenTools function registers the 'jupiter_token_search' tool with its schema and handler.
export function registerTokenTools(register: ToolRegistrar, client: JupiterClient) { register( "jupiter_token_search", "Search for Solana tokens by name, symbol, or mint address. Returns metadata, verification status, organic scores, and trading metrics.", { query: z.string().describe("Token name, symbol, or mint address"), limit: z.number().optional().describe("Max results (default 10)"), }, async (args) => { const result = await client.tokenSearch(args.query, args.limit); return JSON.stringify(result, null, 2); }, ); register( "jupiter_token_info", "Get detailed token metadata for a specific mint — verification status, organic score, daily volume, holder count.", { mint: z.string().describe("Token mint address"), }, async (args) => { const result = await client.tokenInfo(args.mint); return JSON.stringify(result, null, 2); }, ); } - src/tools/tokens.ts:13-16 (handler)The async handler that calls client.tokenSearch() and returns the JSON result.
async (args) => { const result = await client.tokenSearch(args.query, args.limit); return JSON.stringify(result, null, 2); }, - src/tools/tokens.ts:9-12 (schema)Input schema for the tool: query (required string) and limit (optional number).
{ query: z.string().describe("Token name, symbol, or mint address"), limit: z.number().optional().describe("Max results (default 10)"), }, - src/client.ts:95-99 (helper)The JupiterClient.tokenSearch() method that calls the /tokens/v2/search API endpoint.
async tokenSearch(query: string, limit?: number) { return this.request("/tokens/v2/search", { params: { query, limit }, }); } - src/index.ts:40-58 (registration)The generic register() function that wraps McpServer.tool() with error handling, used to register all tools including jupiter_token_search.
function register( name: string, description: string, shape: Record<string, z.ZodType>, handler: (args: any) => Promise<string>, ) { server.tool(name, description, shape, async (args) => { try { const text = await handler(args); return { content: [{ type: "text" as const, text }] }; } catch (err: any) { return { content: [{ type: "text" as const, text: `Error: ${err.message}` }], isError: true, }; } }); toolCount++; }