list_tools
List all 42+ AI tools monitored by tickerr.ai, including ChatGPT, Claude, Gemini, Cursor, GitHub Copilot, Perplexity, DeepSeek, Groq, Fireworks AI, and more. Get real-time status and API pricing data.
Instructions
List all 42+ AI tools monitored by tickerr.ai — ChatGPT, Claude, Gemini, Cursor, GitHub Copilot, Perplexity, DeepSeek, Groq, Fireworks AI, and more.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Implementation Reference
- src/index.ts:59-79 (handler)server.tool(...) call that defines the 'list_tools' tool. The handler function fetches /tools, groups by category, and returns a formatted text response listing all AI tools.
server.tool( 'list_tools', 'List all 42+ AI tools monitored by tickerr.ai — ChatGPT, Claude, Gemini, Cursor, GitHub Copilot, Perplexity, DeepSeek, Groq, Fireworks AI, and more.', {}, async () => { const data = await fetchJSON<{ tools: Tool[]; count: number }>('/tools') const byCategory: Record<string, Tool[]> = {} for (const t of data.tools) { const cat = t.category_slug ?? 'other' if (!byCategory[cat]) byCategory[cat] = [] byCategory[cat].push(t) } const lines: string[] = [`${data.count} AI tools tracked by tickerr.ai:\n`] for (const [cat, tools] of Object.entries(byCategory).sort()) { lines.push(`**${cat}**`) for (const t of tools) lines.push(` • ${t.name} (${t.slug})`) lines.push('') } return { content: [{ type: 'text' as const, text: lines.join('\n') }] } } ) - src/index.ts:59-79 (registration)The tool is registered via server.tool() on the McpServer instance, which is part of the MCP SDK. The registration includes the tool name 'list_tools' and its description.
server.tool( 'list_tools', 'List all 42+ AI tools monitored by tickerr.ai — ChatGPT, Claude, Gemini, Cursor, GitHub Copilot, Perplexity, DeepSeek, Groq, Fireworks AI, and more.', {}, async () => { const data = await fetchJSON<{ tools: Tool[]; count: number }>('/tools') const byCategory: Record<string, Tool[]> = {} for (const t of data.tools) { const cat = t.category_slug ?? 'other' if (!byCategory[cat]) byCategory[cat] = [] byCategory[cat].push(t) } const lines: string[] = [`${data.count} AI tools tracked by tickerr.ai:\n`] for (const [cat, tools] of Object.entries(byCategory).sort()) { lines.push(`**${cat}**`) for (const t of tools) lines.push(` • ${t.name} (${t.slug})`) lines.push('') } return { content: [{ type: 'text' as const, text: lines.join('\n') }] } } ) - src/index.ts:62-62 (schema)The input schema for 'list_tools' is an empty object '{}', meaning the tool takes no parameters. The return type is inferred as a text content block.
{},