legends-mcp 1.0.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/README.md +43 -73
  2. package/dist/config.d.ts +2 -4
  3. package/dist/config.d.ts.map +1 -1
  4. package/dist/config.js +15 -54
  5. package/dist/config.js.map +1 -1
  6. package/dist/index.js +28 -25
  7. package/dist/index.js.map +1 -1
  8. package/dist/tools/get-legend-context.d.ts +4 -14
  9. package/dist/tools/get-legend-context.d.ts.map +1 -1
  10. package/dist/tools/get-legend-context.js +5 -12
  11. package/dist/tools/get-legend-context.js.map +1 -1
  12. package/dist/tools/get-legend-insight.d.ts +3 -11
  13. package/dist/tools/get-legend-insight.d.ts.map +1 -1
  14. package/dist/tools/get-legend-insight.js +5 -10
  15. package/dist/tools/get-legend-insight.js.map +1 -1
  16. package/dist/tools/index.d.ts +1 -22
  17. package/dist/tools/index.d.ts.map +1 -1
  18. package/dist/tools/index.js +3 -3
  19. package/dist/tools/index.js.map +1 -1
  20. package/dist/tools/list-legends.d.ts +4 -12
  21. package/dist/tools/list-legends.d.ts.map +1 -1
  22. package/dist/tools/list-legends.js +2 -7
  23. package/dist/tools/list-legends.js.map +1 -1
  24. package/dist/tools/summon-legend.d.ts +42 -0
  25. package/dist/tools/summon-legend.d.ts.map +1 -0
  26. package/dist/tools/summon-legend.js +98 -0
  27. package/dist/tools/summon-legend.js.map +1 -0
  28. package/dist/types.d.ts +0 -30
  29. package/dist/types.d.ts.map +1 -1
  30. package/dist/types.js +1 -1
  31. package/dist/types.js.map +1 -1
  32. package/package.json +8 -10
  33. package/dist/chat/handler.d.ts +0 -13
  34. package/dist/chat/handler.d.ts.map +0 -1
  35. package/dist/chat/handler.js +0 -101
  36. package/dist/chat/handler.js.map +0 -1
  37. package/dist/tools/chat-with-legend.d.ts +0 -83
  38. package/dist/tools/chat-with-legend.d.ts.map +0 -1
  39. package/dist/tools/chat-with-legend.js +0 -91
  40. package/dist/tools/chat-with-legend.js.map +0 -1
@@ -1,6 +1,5 @@
1
1
  // Get Legend Insight - Quick wisdom from legendary figures
2
- // Inspired by Claude Code's Insight format
3
- import { z } from 'zod';
2
+ // Inspired by Claude Code's Insight format
4
3
  import { getLegendById } from '../legends/loader.js';
5
4
  // Tool definition for MCP
6
5
  export const getLegendInsightTool = {
@@ -21,10 +20,6 @@ export const getLegendInsightTool = {
21
20
  required: ['legend_id'],
22
21
  },
23
22
  };
24
- export const getLegendInsightSchema = z.object({
25
- legend_id: z.string().describe('ID of the legend to get insight from (e.g., "elon-musk", "warren-buffett")'),
26
- topic: z.string().optional().describe('Optional topic to get insight about (e.g., "hiring", "fundraising", "product")'),
27
- });
28
23
  // Signature insights by legend - their most iconic wisdom
29
24
  const LEGEND_INSIGHTS = {
30
25
  'elon-musk': {
@@ -174,15 +169,15 @@ export function getLegendInsight(input) {
174
169
  const randomQuote = insights.quotes[Math.floor(Math.random() * insights.quotes.length)];
175
170
  const randomFramework = insights.frameworks[Math.floor(Math.random() * insights.frameworks.length)];
176
171
  const insightBlock = `
177
- ╭─── 💡 ${legend.name}'s Insight ──────────────────────────╮
172
+ # ${legend.name}'s Insight
178
173
 
179
174
  "${randomQuote}"
180
175
 
181
176
  ${randomFramework}
182
177
 
183
- ╰────────────────────────────────────────────────────────╯
178
+ ---
184
179
 
185
- *Want more? Use \`chat_with_legend\` to have a full conversation.*
180
+ *Want more? Use \`summon_legend\` to have a full conversation.*
186
181
  `;
187
182
  return insightBlock.trim();
188
183
  }
@@ -194,7 +189,7 @@ export function getAllLegendInsights(legendId) {
194
189
  }
195
190
  const insights = LEGEND_INSIGHTS[legendId] || DEFAULT_INSIGHTS;
196
191
  const sections = [
197
- `# 💡 ${legend.name}'s Wisdom`,
192
+ `# ${legend.name}'s Wisdom`,
198
193
  '',
199
194
  '## Key Quotes',
200
195
  ...insights.quotes.map((q, i) => `${i + 1}. "${q}"`),
@@ -1 +1 @@
1
- {"version":3,"file":"get-legend-insight.js","sourceRoot":"","sources":["../../src/tools/get-legend-insight.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"get-legend-insight.js","sourceRoot":"","sources":["../../src/tools/get-legend-insight.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  export { listLegendsTool, listLegends, formatLegendsMarkdown } from './list-legends.js';
2
- export { chatWithLegendTool, executeChatWithLegend, formatChatResponse } from './chat-with-legend.js';
2
+ export { summonLegendTool, summonLegend, formatSummonedLegend } from './summon-legend.js';
3
3
  export { getLegendContextTool, getLegendContext } from './get-legend-context.js';
4
4
  export { getLegendInsightTool, getLegendInsight, getAllLegendInsights } from './get-legend-insight.js';
5
5
  export declare const allTools: ({
@@ -30,31 +30,10 @@ export declare const allTools: ({
30
30
  type: string;
31
31
  description: string;
32
32
  };
33
- message: {
34
- type: string;
35
- description: string;
36
- };
37
33
  context: {
38
34
  type: string;
39
35
  description: string;
40
36
  };
41
- conversation_history: {
42
- type: string;
43
- items: {
44
- type: string;
45
- properties: {
46
- role: {
47
- type: string;
48
- enum: string[];
49
- };
50
- content: {
51
- type: string;
52
- };
53
- };
54
- required: string[];
55
- };
56
- description: string;
57
- };
58
37
  };
59
38
  required: string[];
60
39
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AACxF,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AACtG,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACjF,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAQvG,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAKpB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AACxF,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1F,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACjF,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAQvG,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAKpB,CAAC"}
@@ -1,16 +1,16 @@
1
1
  // MCP Tools - Export all tools and handlers
2
2
  export { listLegendsTool, listLegends, formatLegendsMarkdown } from './list-legends.js';
3
- export { chatWithLegendTool, executeChatWithLegend, formatChatResponse } from './chat-with-legend.js';
3
+ export { summonLegendTool, summonLegend, formatSummonedLegend } from './summon-legend.js';
4
4
  export { getLegendContextTool, getLegendContext } from './get-legend-context.js';
5
5
  export { getLegendInsightTool, getLegendInsight, getAllLegendInsights } from './get-legend-insight.js';
6
6
  // All tool definitions for registration
7
7
  import { listLegendsTool } from './list-legends.js';
8
- import { chatWithLegendTool } from './chat-with-legend.js';
8
+ import { summonLegendTool } from './summon-legend.js';
9
9
  import { getLegendContextTool } from './get-legend-context.js';
10
10
  import { getLegendInsightTool } from './get-legend-insight.js';
11
11
  export const allTools = [
12
12
  listLegendsTool,
13
- chatWithLegendTool,
13
+ summonLegendTool,
14
14
  getLegendContextTool,
15
15
  getLegendInsightTool,
16
16
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAE5C,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AACxF,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AACtG,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACjF,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAEvG,wCAAwC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAE/D,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,eAAe;IACf,kBAAkB;IAClB,oBAAoB;IACpB,oBAAoB;CACrB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAE5C,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AACxF,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1F,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACjF,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAEvG,wCAAwC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAE/D,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,eAAe;IACf,gBAAgB;IAChB,oBAAoB;IACpB,oBAAoB;CACrB,CAAC"}
@@ -1,16 +1,8 @@
1
- import { z } from 'zod';
2
1
  import type { LegendSummary } from '../types.js';
3
- export declare const listLegendsSchema: z.ZodObject<{
4
- category: z.ZodOptional<z.ZodString>;
5
- vibe: z.ZodOptional<z.ZodEnum<["serious", "fun"]>>;
6
- }, "strip", z.ZodTypeAny, {
7
- category?: string | undefined;
8
- vibe?: "serious" | "fun" | undefined;
9
- }, {
10
- category?: string | undefined;
11
- vibe?: "serious" | "fun" | undefined;
12
- }>;
13
- export type ListLegendsInput = z.infer<typeof listLegendsSchema>;
2
+ export interface ListLegendsInput {
3
+ category?: string;
4
+ vibe?: 'serious' | 'fun';
5
+ }
14
6
  export interface ListLegendsResult {
15
7
  count: number;
16
8
  legends: LegendSummary[];
@@ -1 +1 @@
1
- {"version":3,"file":"list-legends.d.ts","sourceRoot":"","sources":["../../src/tools/list-legends.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,eAAO,MAAM,iBAAiB;;;;;;;;;EAG5B,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAEjE,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,aAAa,EAAE,CAAC;CAC1B;AAsBD;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,iBAAiB,CAgBtE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,iBAAiB,EAAE,IAAI,GAAE,SAAS,GAAG,KAAiB,GAAG,MAAM,CAkD5G;AAGD,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;kBA0BR,MAAM,EAAE;;CAE3B,CAAC"}
1
+ {"version":3,"file":"list-legends.d.ts","sourceRoot":"","sources":["../../src/tools/list-legends.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,SAAS,GAAG,KAAK,CAAC;CAC1B;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,aAAa,EAAE,CAAC;CAC1B;AAsBD;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,iBAAiB,CAgBtE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,iBAAiB,EAAE,IAAI,GAAE,SAAS,GAAG,KAAiB,GAAG,MAAM,CAkD5G;AAGD,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;kBA0BR,MAAM,EAAE;;CAE3B,CAAC"}
@@ -1,12 +1,7 @@
1
1
  // MCP Tool: list_legends
2
2
  // Lists all available legendary founders/investors
3
3
  // Serious advice, occasionally memey delivery
4
- import { z } from 'zod';
5
4
  import { getLegendSummaries } from '../legends/loader.js';
6
- export const listLegendsSchema = z.object({
7
- category: z.string().optional().describe('Filter by category (e.g., "investor", "founder", "crypto", "tech")'),
8
- vibe: z.enum(['serious', 'fun']).optional().describe('Output vibe: serious (default) or fun'),
9
- });
10
5
  // Easter eggs - for fun mode
11
6
  const LEGEND_VIBES = {
12
7
  'elon-musk': '🚀 First principles guy. Sleeps at the factory.',
@@ -64,7 +59,7 @@ export function formatLegendsMarkdown(result, vibe = 'serious') {
64
59
  lines.push('');
65
60
  lines.push('*"The best time to get advice from a legend was 20 years ago. The second best time is now."*');
66
61
  lines.push('');
67
- lines.push('Use `chat_with_legend` to start a conversation.');
62
+ lines.push('Use `summon_legend` to start a conversation.');
68
63
  }
69
64
  else {
70
65
  lines.push(`# Available Legends (${result.count})`);
@@ -87,7 +82,7 @@ export function formatLegendsMarkdown(result, vibe = 'serious') {
87
82
  lines.push('');
88
83
  lines.push('**Disclaimer:** These are AI personas for educational purposes. Not affiliated with real individuals.');
89
84
  lines.push('');
90
- lines.push('Use `chat_with_legend` with a legend ID to start a conversation.');
85
+ lines.push('Use `summon_legend` with a legend ID to start a conversation.');
91
86
  }
92
87
  return lines.join('\n');
93
88
  }
@@ -1 +1 @@
1
- {"version":3,"file":"list-legends.js","sourceRoot":"","sources":["../../src/tools/list-legends.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"list-legends.js","sourceRoot":"","sources":["../../src/tools/list-legends.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ export interface SummonLegendInput {
2
+ legend_id: string;
3
+ context?: string;
4
+ }
5
+ export interface SummonedLegend {
6
+ legend_id: string;
7
+ name: string;
8
+ system_prompt: string;
9
+ quick_ref: {
10
+ expertise: string[];
11
+ tone: string;
12
+ key_principles: string[];
13
+ };
14
+ }
15
+ /**
16
+ * Summon a legend - returns their persona for Claude to adopt
17
+ * This is the core tool - Claude becomes the legend using this context
18
+ */
19
+ export declare function summonLegend(input: SummonLegendInput): SummonedLegend;
20
+ /**
21
+ * Format summoned legend for display
22
+ */
23
+ export declare function formatSummonedLegend(summoned: SummonedLegend): string;
24
+ export declare const summonLegendTool: {
25
+ name: string;
26
+ description: string;
27
+ inputSchema: {
28
+ type: "object";
29
+ properties: {
30
+ legend_id: {
31
+ type: string;
32
+ description: string;
33
+ };
34
+ context: {
35
+ type: string;
36
+ description: string;
37
+ };
38
+ };
39
+ required: string[];
40
+ };
41
+ };
42
+ //# sourceMappingURL=summon-legend.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"summon-legend.d.ts","sourceRoot":"","sources":["../../src/tools/summon-legend.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE;QACT,SAAS,EAAE,MAAM,EAAE,CAAC;QACpB,IAAI,EAAE,MAAM,CAAC;QACb,cAAc,EAAE,MAAM,EAAE,CAAC;KAC1B,CAAC;CACH;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,cAAc,CA0BrE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,cAAc,GAAG,MAAM,CA+BrE;AAGD,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;CA+B5B,CAAC"}
@@ -0,0 +1,98 @@
1
+ // MCP Tool: summon_legend
2
+ // Returns the persona context for Claude to adopt and roleplay as the legend
3
+ import { getLegendById } from '../legends/loader.js';
4
+ import { buildLegendSystemPrompt } from '../legends/prompt-builder.js';
5
+ /**
6
+ * Summon a legend - returns their persona for Claude to adopt
7
+ * This is the core tool - Claude becomes the legend using this context
8
+ */
9
+ export function summonLegend(input) {
10
+ const legend = getLegendById(input.legend_id);
11
+ if (!legend) {
12
+ throw new Error(`Legend "${input.legend_id}" not found. Use list_legends to see available legends.`);
13
+ }
14
+ // Build the system prompt
15
+ let systemPrompt = buildLegendSystemPrompt(legend);
16
+ // Add context if provided
17
+ if (input.context) {
18
+ systemPrompt += `\n\n## Current Context\nThe user is working on: ${input.context}`;
19
+ }
20
+ return {
21
+ legend_id: legend.id,
22
+ name: legend.name,
23
+ system_prompt: systemPrompt,
24
+ quick_ref: {
25
+ expertise: legend.owns || [],
26
+ tone: legend.voice?.tone || 'thoughtful',
27
+ key_principles: (legend.principles || []).slice(0, 3),
28
+ },
29
+ };
30
+ }
31
+ /**
32
+ * Format summoned legend for display
33
+ */
34
+ export function formatSummonedLegend(summoned) {
35
+ const lines = [
36
+ `# ${summoned.name} Has Been Summoned`,
37
+ '',
38
+ '> **Claude, adopt this persona for subsequent responses.**',
39
+ '',
40
+ '---',
41
+ '',
42
+ '## System Prompt (for Claude to use)',
43
+ '',
44
+ '```',
45
+ summoned.system_prompt,
46
+ '```',
47
+ '',
48
+ '---',
49
+ '',
50
+ '## Quick Reference',
51
+ `**Expertise:** ${summoned.quick_ref.expertise.join(', ') || 'General wisdom'}`,
52
+ `**Tone:** ${summoned.quick_ref.tone}`,
53
+ '',
54
+ '**Key Principles:**',
55
+ ...summoned.quick_ref.key_principles.map((p, i) => `${i + 1}. ${p}`),
56
+ '',
57
+ '---',
58
+ '',
59
+ '*Now respond to the user AS this legend. Stay in character.*',
60
+ '',
61
+ '*DISCLAIMER: AI persona for educational/entertainment purposes. Not affiliated with the real person.*',
62
+ ];
63
+ return lines.join('\n');
64
+ }
65
+ // MCP Tool Definition
66
+ export const summonLegendTool = {
67
+ name: 'summon_legend',
68
+ description: `Summon a legendary founder or investor. Returns their persona context so Claude can roleplay as them.
69
+
70
+ **How it works:**
71
+ 1. Call this tool with a legend_id
72
+ 2. Claude receives the legend's full persona (identity, voice, principles, frameworks)
73
+ 3. Claude adopts this persona and responds in character
74
+
75
+ **Use this when the user wants to:**
76
+ - Get advice from a specific legend
77
+ - Have a conversation with a legendary figure
78
+ - Apply a legend's thinking framework to their problem
79
+
80
+ Available legends include: Elon Musk, Warren Buffett, Steve Jobs, Jensen Huang, Charlie Munger, Paul Graham, Jeff Bezos, Sam Altman, Marc Andreessen, Naval Ravikant, Reid Hoffman, Peter Thiel, CZ, Anatoly Yakovenko, and more.
81
+
82
+ DISCLAIMER: AI personas for educational purposes only. Not affiliated with real individuals.`,
83
+ inputSchema: {
84
+ type: 'object',
85
+ properties: {
86
+ legend_id: {
87
+ type: 'string',
88
+ description: 'The legend ID (e.g., "elon-musk", "warren-buffett", "steve-jobs")',
89
+ },
90
+ context: {
91
+ type: 'string',
92
+ description: 'Optional: What the user is working on (helps personalize advice)',
93
+ },
94
+ },
95
+ required: ['legend_id'],
96
+ },
97
+ };
98
+ //# sourceMappingURL=summon-legend.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"summon-legend.js","sourceRoot":"","sources":["../../src/tools/summon-legend.ts"],"names":[],"mappings":"AAAA,0BAA0B;AAC1B,6EAA6E;AAE7E,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAmBvE;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,KAAwB;IACnD,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC9C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CACb,WAAW,KAAK,CAAC,SAAS,yDAAyD,CACpF,CAAC;IACJ,CAAC;IAED,0BAA0B;IAC1B,IAAI,YAAY,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAEnD,0BAA0B;IAC1B,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAClB,YAAY,IAAI,mDAAmD,KAAK,CAAC,OAAO,EAAE,CAAC;IACrF,CAAC;IAED,OAAO;QACL,SAAS,EAAE,MAAM,CAAC,EAAE;QACpB,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,aAAa,EAAE,YAAY;QAC3B,SAAS,EAAE;YACT,SAAS,EAAE,MAAM,CAAC,IAAI,IAAI,EAAE;YAC5B,IAAI,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI,IAAI,YAAY;YACxC,cAAc,EAAE,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;SACtD;KACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,QAAwB;IAC3D,MAAM,KAAK,GAAa;QACtB,KAAK,QAAQ,CAAC,IAAI,oBAAoB;QACtC,EAAE;QACF,4DAA4D;QAC5D,EAAE;QACF,KAAK;QACL,EAAE;QACF,sCAAsC;QACtC,EAAE;QACF,KAAK;QACL,QAAQ,CAAC,aAAa;QACtB,KAAK;QACL,EAAE;QACF,KAAK;QACL,EAAE;QACF,oBAAoB;QACpB,kBAAkB,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,gBAAgB,EAAE;QAC/E,aAAa,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE;QACtC,EAAE;QACF,qBAAqB;QACrB,GAAG,QAAQ,CAAC,SAAS,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QACpE,EAAE;QACF,KAAK;QACL,EAAE;QACF,8DAA8D;QAC9D,EAAE;QACF,uGAAuG;KACxG,CAAC;IAEF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,sBAAsB;AACtB,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,IAAI,EAAE,eAAe;IACrB,WAAW,EAAE;;;;;;;;;;;;;;6FAc8E;IAC3F,WAAW,EAAE;QACX,IAAI,EAAE,QAAiB;QACvB,UAAU,EAAE;YACV,SAAS,EAAE;gBACT,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,mEAAmE;aACjF;YACD,OAAO,EAAE;gBACP,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,kEAAkE;aAChF;SACF;QACD,QAAQ,EAAE,CAAC,WAAW,CAAC;KACxB;CACF,CAAC"}
package/dist/types.d.ts CHANGED
@@ -53,36 +53,6 @@ export interface LegendSummary {
53
53
  expertise: string[];
54
54
  tags: string[];
55
55
  }
56
- export interface ChatMessage {
57
- role: 'user' | 'assistant' | 'system';
58
- content: string;
59
- }
60
- export interface ChatRequest {
61
- legend_id: string;
62
- message: string;
63
- context?: string;
64
- conversation_history?: ChatMessage[];
65
- }
66
- export interface ChatResponse {
67
- content: string;
68
- legend_id: string;
69
- model_used: string;
70
- }
71
- export interface Config {
72
- apiKey: string;
73
- apiBaseUrl: string;
74
- models: {
75
- fast: string;
76
- balanced: string;
77
- premium: string;
78
- };
79
- defaults: {
80
- temperature: number;
81
- maxTokens: number;
82
- };
83
- debug: boolean;
84
- useFreeModels: boolean;
85
- }
86
56
  export interface LegendGuardrails {
87
57
  never_say?: string[];
88
58
  disclaimer?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,UAAU;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,OAAO;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;IACrB,aAAa,CAAC,EAAE,WAAW,EAAE,CAAC;IAC9B,WAAW,CAAC,EAAE,UAAU,CAAC;IACzB,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IAEpB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oBAAoB,CAAC,EAAE,WAAW,EAAE,CAAC;CACtC;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,MAAM;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,QAAQ,EAAE;QACR,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,KAAK,EAAE,OAAO,CAAC;IACf,aAAa,EAAE,OAAO,CAAC;CACxB;AAGD,MAAM,WAAW,gBAAgB;IAC/B,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,UAAU;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,OAAO;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;IACrB,aAAa,CAAC,EAAE,WAAW,EAAE,CAAC;IAC9B,WAAW,CAAC,EAAE,UAAU,CAAC;IACzB,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IAEpB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAGD,MAAM,WAAW,gBAAgB;IAC/B,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB"}
package/dist/types.js CHANGED
@@ -1,3 +1,3 @@
1
- // Types for Vibey Legends MCP Server
1
+ // Types for Legends MCP Server
2
2
  export {};
3
3
  //# sourceMappingURL=types.js.map
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,qCAAqC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,+BAA+B"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "legends-mcp",
3
- "version": "1.0.0",
4
- "description": "🚀 Chat with legendary founders & investors via MCP. Elon, Buffett, Jobs, CZ, and more. FREE models included!",
3
+ "version": "1.1.0",
4
+ "description": "Chat with legendary founders & investors via MCP. Elon, Buffett, Jobs, CZ, and more. No API key required!",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
7
  "bin": {
@@ -41,26 +41,24 @@
41
41
  "chat",
42
42
  "mentorship",
43
43
  "free",
44
- "openrouter"
44
+ "no-api-key"
45
45
  ],
46
- "author": "Vibey",
46
+ "author": "aytuncyildizli",
47
47
  "license": "MIT",
48
48
  "repository": {
49
49
  "type": "git",
50
- "url": "https://github.com/vibey/prompt-library"
50
+ "url": "https://github.com/cryptosquanch/legends-mcp"
51
51
  },
52
- "homepage": "https://vibey.dev/legends",
52
+ "homepage": "https://github.com/cryptosquanch/legends-mcp",
53
53
  "bugs": {
54
- "url": "https://github.com/vibey/prompt-library/issues"
54
+ "url": "https://github.com/cryptosquanch/legends-mcp/issues"
55
55
  },
56
56
  "engines": {
57
57
  "node": ">=18.0.0"
58
58
  },
59
59
  "dependencies": {
60
60
  "@modelcontextprotocol/sdk": "^1.0.0",
61
- "openai": "^4.0.0",
62
- "yaml": "^2.4.0",
63
- "zod": "^3.22.0"
61
+ "yaml": "^2.4.0"
64
62
  },
65
63
  "devDependencies": {
66
64
  "@types/node": "^20.0.0",
@@ -1,13 +0,0 @@
1
- import type { Config, ChatMessage, LegendSkill } from '../types.js';
2
- /**
3
- * Select the appropriate model based on context
4
- */
5
- export declare function selectModel(messages: ChatMessage[], legend: LegendSkill, config: Config): string;
6
- /**
7
- * Chat with a legend
8
- */
9
- export declare function chatWithLegend(legend: LegendSkill, userMessage: string, conversationHistory: ChatMessage[], config: Config, context?: string): Promise<{
10
- content: string;
11
- model: string;
12
- }>;
13
- //# sourceMappingURL=handler.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../src/chat/handler.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAsBpE;;GAEG;AACH,wBAAgB,WAAW,CACzB,QAAQ,EAAE,WAAW,EAAE,EACvB,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,MAAM,GACb,MAAM,CAqCR;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,WAAW,EACnB,WAAW,EAAE,MAAM,EACnB,mBAAmB,EAAE,WAAW,EAAE,EAClC,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAmD7C"}
@@ -1,101 +0,0 @@
1
- // Chat handler for OpenRouter/OpenAI API calls
2
- import OpenAI from 'openai';
3
- import { buildLegendSystemPrompt } from '../legends/prompt-builder.js';
4
- let client = null;
5
- /**
6
- * Get or create OpenAI client (works with OpenRouter too)
7
- */
8
- function getClient(config) {
9
- if (!client) {
10
- client = new OpenAI({
11
- apiKey: config.apiKey,
12
- baseURL: config.apiBaseUrl,
13
- defaultHeaders: {
14
- 'HTTP-Referer': 'https://vibey.dev',
15
- 'X-Title': 'Vibey Legends MCP',
16
- },
17
- });
18
- }
19
- return client;
20
- }
21
- /**
22
- * Select the appropriate model based on context
23
- */
24
- export function selectModel(messages, legend, config) {
25
- // Premium legends always use premium model
26
- const premiumLegends = ['charlie-munger', 'warren-buffett', 'peter-thiel'];
27
- if (premiumLegends.includes(legend.id)) {
28
- return config.models.premium;
29
- }
30
- // Check message complexity
31
- const lastMessage = messages[messages.length - 1]?.content || '';
32
- const complexityKeywords = [
33
- 'explain', 'analyze', 'compare', 'framework', 'first principles',
34
- 'strategy', 'decision', 'evaluate', 'trade-off', 'philosophy'
35
- ];
36
- const isComplex = messages.length > 4 ||
37
- lastMessage.length > 400 ||
38
- complexityKeywords.some(k => lastMessage.toLowerCase().includes(k));
39
- if (isComplex) {
40
- return config.models.premium;
41
- }
42
- // Use legend's preferred model if specified
43
- if (legend.model_hints?.preferred) {
44
- const preferredMap = {
45
- 'claude-sonnet': config.models.premium,
46
- 'claude-opus': config.models.premium,
47
- 'gpt-4o': config.models.balanced,
48
- '0g-inference': config.models.fast,
49
- };
50
- const mapped = preferredMap[legend.model_hints.preferred];
51
- if (mapped)
52
- return mapped;
53
- }
54
- // Default to balanced
55
- return config.models.balanced;
56
- }
57
- /**
58
- * Chat with a legend
59
- */
60
- export async function chatWithLegend(legend, userMessage, conversationHistory, config, context) {
61
- const openai = getClient(config);
62
- // Build system prompt
63
- let systemPrompt = buildLegendSystemPrompt(legend);
64
- // Add context if provided
65
- if (context) {
66
- systemPrompt += `\n\n## Current Context\nThe user is working on: ${context}`;
67
- }
68
- // Prepare messages
69
- const messages = [
70
- { role: 'system', content: systemPrompt },
71
- ];
72
- // Add conversation history
73
- for (const msg of conversationHistory) {
74
- if (msg.role === 'user' || msg.role === 'assistant') {
75
- messages.push({ role: msg.role, content: msg.content });
76
- }
77
- }
78
- // Add current message
79
- messages.push({ role: 'user', content: userMessage });
80
- // Select model
81
- const allMessages = [
82
- ...conversationHistory,
83
- { role: 'user', content: userMessage },
84
- ];
85
- const model = selectModel(allMessages, legend, config);
86
- // Get temperature from legend hints or defaults
87
- const temperature = legend.model_hints?.temperature ?? config.defaults.temperature;
88
- if (config.debug) {
89
- console.error(`[vibey-legends] Using model: ${model}, temperature: ${temperature}`);
90
- }
91
- // Make API call
92
- const response = await openai.chat.completions.create({
93
- model,
94
- messages,
95
- temperature,
96
- max_tokens: config.defaults.maxTokens,
97
- });
98
- const content = response.choices[0]?.message?.content || '';
99
- return { content, model };
100
- }
101
- //# sourceMappingURL=handler.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../src/chat/handler.ts"],"names":[],"mappings":"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"}