list_legends
Browse legendary tech founders, investors, and crypto builders to chat with. Filter by category or choose a fun presentation style for engaging conversations.
Instructions
List all legendary founders and investors you can chat with.
The council includes:
Tech Titans: Elon Musk, Steve Jobs, Jeff Bezos, Jensen Huang
Investors: Warren Buffett, Charlie Munger, Peter Thiel, Marc Andreessen
Startup Sages: Paul Graham, Sam Altman, Naval Ravikant, Reid Hoffman
Crypto Builders: CZ, Anatoly Yakovenko, Mert Mumtaz, Michael Heinrich
Each legend has unique thinking frameworks, principles, and perspectives.
Set vibe="fun" for a more entertaining presentation.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | Filter by category (e.g., "crypto", "investor", "founder", "tech") | |
| vibe | No | Output style: "serious" (default) or "fun" for meme mode |
Implementation Reference
- src/tools/list-legends.ts:41-57 (handler)Core handler function that retrieves legend summaries, applies optional category filtering, and returns the count and list of legends.export function listLegends(input?: ListLegendsInput): ListLegendsResult { let legends = getLegendSummaries(); // Filter by category if provided if (input?.category) { const cat = input.category.toLowerCase(); legends = legends.filter(l => l.tags.some(t => t.toLowerCase().includes(cat)) || l.expertise.some(e => e.toLowerCase().includes(cat)) ); } return { count: legends.length, legends, }; }
- src/tools/list-legends.ts:115-143 (schema)Tool definition including name, description, and input schema for validation.export const listLegendsTool = { name: 'list_legends', description: `List all legendary founders and investors you can chat with. The council includes: - **Tech Titans**: Elon Musk, Steve Jobs, Jeff Bezos, Jensen Huang - **Investors**: Warren Buffett, Charlie Munger, Peter Thiel, Marc Andreessen - **Startup Sages**: Paul Graham, Sam Altman, Naval Ravikant, Reid Hoffman - **Crypto Builders**: CZ, Anatoly Yakovenko, Mert Mumtaz, Michael Heinrich Each legend has unique thinking frameworks, principles, and perspectives. Set vibe="fun" for a more entertaining presentation.`, inputSchema: { type: 'object' as const, properties: { category: { type: 'string', description: 'Filter by category (e.g., "crypto", "investor", "founder", "tech")', }, vibe: { type: 'string', enum: ['serious', 'fun'], description: 'Output style: "serious" (default) or "fun" for meme mode', }, }, required: [] as string[], }, };
- src/tools/index.ts:22-31 (registration)Registration of the list_legends tool (as listLegendsTool) in the allTools array used by the MCP server.export const allTools = [ suggestTool, // First! Claude should see this first for proactive use listLegendsTool, summonLegendTool, getLegendContextTool, getLegendInsightTool, searchLegendsTool, partyModeTool, autoMatchTool, ];
- src/index.ts:68-80 (handler)MCP server dispatch handler that executes list_legends tool by calling listLegends and formatting output.case 'list_legends': { const input = (args || {}) as { category?: string; vibe?: 'serious' | 'fun' }; const result = listLegends(input); const markdown = formatLegendsMarkdown(result, input.vibe || 'serious'); return { content: [ { type: 'text', text: markdown, }, ], }; }
- src/tools/list-legends.ts:62-112 (helper)Helper function to format the legends list as markdown in serious or fun vibe.export function formatLegendsMarkdown(result: ListLegendsResult, vibe: 'serious' | 'fun' = 'serious'): string { const lines: string[] = []; if (vibe === 'fun') { lines.push(`# 🎭 The Council of Legends (${result.count})`); lines.push(''); lines.push('*Your personal board of advisors. They\'ve built trillion-dollar companies, lost billions, and lived to tell the tale.*'); lines.push(''); lines.push('---'); lines.push(''); for (const legend of result.legends) { const emoji = LEGEND_VIBES[legend.id] || '💡'; lines.push(`### ${legend.name}`); lines.push(`**ID:** \`${legend.id}\` ${emoji}`); lines.push(''); } lines.push('---'); lines.push(''); lines.push('*"The best time to get advice from a legend was 20 years ago. The second best time is now."*'); lines.push(''); lines.push('Use `summon_legend` to start a conversation.'); } else { lines.push(`# Available Legends (${result.count})`); lines.push(''); lines.push('Chat with legendary founders and investors. Each brings unique frameworks and perspectives.'); lines.push(''); for (const legend of result.legends) { lines.push(`## ${legend.name}`); lines.push(`**ID:** \`${legend.id}\``); lines.push(`*${legend.description}*`); if (legend.expertise.length > 0) { lines.push(`**Expertise:** ${legend.expertise.join(', ')}`); } if (legend.tags.length > 0) { lines.push(`**Tags:** ${legend.tags.join(', ')}`); } lines.push(''); } lines.push('---'); lines.push(''); lines.push('**Disclaimer:** These are AI personas for educational purposes. Not affiliated with real individuals.'); lines.push(''); lines.push('Use `summon_legend` with a legend ID to start a conversation.'); } return lines.join('\n'); }