@lagoon-protocol/lagoon-mcp 0.1.2 → 0.2.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.
- package/README.md +54 -0
- package/dist/server.js +1 -1
- package/dist/skills/curator-evaluation.d.ts +15 -0
- package/dist/skills/curator-evaluation.d.ts.map +1 -0
- package/dist/skills/curator-evaluation.js +424 -0
- package/dist/skills/curator-evaluation.js.map +1 -0
- package/dist/skills/customer-support.d.ts +15 -0
- package/dist/skills/customer-support.d.ts.map +1 -0
- package/dist/skills/customer-support.js +512 -0
- package/dist/skills/customer-support.js.map +1 -0
- package/dist/skills/index.d.ts +91 -0
- package/dist/skills/index.d.ts.map +1 -0
- package/dist/skills/index.js +100 -0
- package/dist/skills/index.js.map +1 -0
- package/dist/skills/loader.d.ts +120 -0
- package/dist/skills/loader.d.ts.map +1 -0
- package/dist/skills/loader.js +263 -0
- package/dist/skills/loader.js.map +1 -0
- package/dist/skills/onboarding.d.ts +15 -0
- package/dist/skills/onboarding.d.ts.map +1 -0
- package/dist/skills/onboarding.js +383 -0
- package/dist/skills/onboarding.js.map +1 -0
- package/dist/skills/portfolio-review.d.ts +15 -0
- package/dist/skills/portfolio-review.d.ts.map +1 -0
- package/dist/skills/portfolio-review.js +464 -0
- package/dist/skills/portfolio-review.js.map +1 -0
- package/dist/skills/protocol-health.d.ts +15 -0
- package/dist/skills/protocol-health.d.ts.map +1 -0
- package/dist/skills/protocol-health.js +451 -0
- package/dist/skills/protocol-health.js.map +1 -0
- package/dist/skills/risk-expert.d.ts +15 -0
- package/dist/skills/risk-expert.d.ts.map +1 -0
- package/dist/skills/risk-expert.js +456 -0
- package/dist/skills/risk-expert.js.map +1 -0
- package/dist/skills/shared.d.ts +82 -0
- package/dist/skills/shared.d.ts.map +1 -0
- package/dist/skills/shared.js +136 -0
- package/dist/skills/shared.js.map +1 -0
- package/dist/skills/types.d.ts +137 -0
- package/dist/skills/types.d.ts.map +1 -0
- package/dist/skills/types.js +11 -0
- package/dist/skills/types.js.map +1 -0
- package/dist/tools/discover-tools.d.ts +44 -0
- package/dist/tools/discover-tools.d.ts.map +1 -0
- package/dist/tools/discover-tools.js +108 -0
- package/dist/tools/discover-tools.js.map +1 -0
- package/dist/tools/registry.d.ts.map +1 -1
- package/dist/tools/registry.js +12 -2
- package/dist/tools/registry.js.map +1 -1
- package/dist/utils/validators.d.ts +2 -2
- package/dist/utils/validators.d.ts.map +1 -1
- package/dist/utils/validators.js +2 -1
- package/dist/utils/validators.js.map +1 -1
- package/package.json +14 -1
- package/skills/README.md +141 -0
- package/skills/lagoon-curator-evaluation/SKILL.md +281 -0
- package/skills/lagoon-curator-evaluation/scoring-rubric.md +121 -0
- package/skills/lagoon-customer-support/SKILL.md +95 -0
- package/skills/lagoon-customer-support/response-templates.md +196 -0
- package/skills/lagoon-onboarding/SKILL.md +251 -0
- package/skills/lagoon-onboarding/risk-interpretation.md +188 -0
- package/skills/lagoon-onboarding/tool-sequences.md +217 -0
- package/skills/lagoon-portfolio-review/SKILL.md +156 -0
- package/skills/lagoon-portfolio-review/rebalancing-criteria.md +85 -0
- package/skills/lagoon-portfolio-review/review-framework.md +70 -0
- package/skills/lagoon-protocol-health/SKILL.md +171 -0
- package/skills/lagoon-protocol-health/kpi-thresholds.md +50 -0
- package/skills/lagoon-protocol-health/report-templates.md +149 -0
- package/skills/lagoon-risk-expert/SKILL.md +131 -0
- package/skills/lagoon-risk-expert/risk-frameworks.md +124 -0
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lagoon Skills Type Definitions
|
|
3
|
+
*
|
|
4
|
+
* Skills are procedural knowledge modules that teach Claude HOW to use
|
|
5
|
+
* Lagoon MCP tools effectively. They complement MCP's data connectivity
|
|
6
|
+
* with domain expertise and workflow guidance.
|
|
7
|
+
*
|
|
8
|
+
* @module skills/types
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Represents a Lagoon skill with instructions and metadata.
|
|
12
|
+
* Skills can be used in two contexts:
|
|
13
|
+
* 1. Claude Desktop: Raw SKILL.md files loaded via JSON config
|
|
14
|
+
* 2. Backend API: TypeScript modules injected into system prompts
|
|
15
|
+
*/
|
|
16
|
+
export interface LagoonSkill {
|
|
17
|
+
/** Unique identifier (kebab-case) */
|
|
18
|
+
name: string;
|
|
19
|
+
/** Human-readable description for skill selection */
|
|
20
|
+
description: string;
|
|
21
|
+
/** Keywords/phrases that trigger this skill */
|
|
22
|
+
triggers: string[];
|
|
23
|
+
/** Target audience for this skill */
|
|
24
|
+
audience: SkillAudience;
|
|
25
|
+
/** Main skill instructions (content from SKILL.md) */
|
|
26
|
+
instructions: string;
|
|
27
|
+
/** Optional supporting resources */
|
|
28
|
+
resources?: SkillResources;
|
|
29
|
+
/** Skill metadata */
|
|
30
|
+
metadata: SkillMetadata;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Target audience categories for skills
|
|
34
|
+
*/
|
|
35
|
+
export type SkillAudience = 'customer-new' | 'customer-existing' | 'customer-advanced' | 'internal-ops' | 'internal-bd' | 'internal-support';
|
|
36
|
+
/**
|
|
37
|
+
* Supporting resources for a skill
|
|
38
|
+
*/
|
|
39
|
+
export interface SkillResources {
|
|
40
|
+
/** Tool usage patterns and parameters */
|
|
41
|
+
toolSequences?: string;
|
|
42
|
+
/** Domain-specific interpretation guides */
|
|
43
|
+
interpretation?: string;
|
|
44
|
+
/** Threshold definitions and criteria */
|
|
45
|
+
thresholds?: string;
|
|
46
|
+
/** Report templates */
|
|
47
|
+
templates?: string;
|
|
48
|
+
/** Additional named resources */
|
|
49
|
+
[key: string]: string | undefined;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Skill metadata for versioning and categorization
|
|
53
|
+
*/
|
|
54
|
+
export interface SkillMetadata {
|
|
55
|
+
/** Skill version (semver) */
|
|
56
|
+
version: string;
|
|
57
|
+
/** Category for grouping */
|
|
58
|
+
category: SkillCategory;
|
|
59
|
+
/** MCP tools this skill primarily uses */
|
|
60
|
+
primaryTools: string[];
|
|
61
|
+
/** Estimated context tokens when loaded */
|
|
62
|
+
estimatedTokens: number;
|
|
63
|
+
/** Last updated date */
|
|
64
|
+
lastUpdated: string;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Skill categories for organization
|
|
68
|
+
*/
|
|
69
|
+
export type SkillCategory = 'onboarding' | 'portfolio' | 'risk' | 'operations' | 'support' | 'strategy';
|
|
70
|
+
/**
|
|
71
|
+
* Result of skill detection
|
|
72
|
+
*/
|
|
73
|
+
export interface SkillDetectionResult {
|
|
74
|
+
/** The detected skill, if any */
|
|
75
|
+
skill: LagoonSkill | null;
|
|
76
|
+
/** Confidence score (0-1) */
|
|
77
|
+
confidence: number;
|
|
78
|
+
/** Matched triggers */
|
|
79
|
+
matchedTriggers: string[];
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Options for skill loading
|
|
83
|
+
*/
|
|
84
|
+
export interface SkillLoadOptions {
|
|
85
|
+
/** Include supporting resources */
|
|
86
|
+
includeResources?: boolean;
|
|
87
|
+
/** Maximum token budget (will truncate if exceeded) */
|
|
88
|
+
maxTokens?: number;
|
|
89
|
+
/** Filter by audience */
|
|
90
|
+
audience?: SkillAudience[];
|
|
91
|
+
/** Filter by category */
|
|
92
|
+
category?: SkillCategory[];
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Skill registry for managing available skills
|
|
96
|
+
*/
|
|
97
|
+
export interface SkillRegistry {
|
|
98
|
+
/** All registered skills */
|
|
99
|
+
skills: LagoonSkill[];
|
|
100
|
+
/** Get skill by name */
|
|
101
|
+
getSkill(name: string): LagoonSkill | undefined;
|
|
102
|
+
/** Detect relevant skill for a message */
|
|
103
|
+
detectSkill(message: string): SkillDetectionResult;
|
|
104
|
+
/** Get skills filtered by options */
|
|
105
|
+
getSkills(options?: SkillLoadOptions): LagoonSkill[];
|
|
106
|
+
/** Get skill content formatted for system prompt */
|
|
107
|
+
getSkillPrompt(name: string, options?: SkillLoadOptions): string;
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Options for building a skill-aware system prompt
|
|
111
|
+
*/
|
|
112
|
+
export interface BuildPromptOptions {
|
|
113
|
+
/** Minimum confidence threshold (0-1) to include a skill. Default: 0.5 */
|
|
114
|
+
confidenceThreshold?: number;
|
|
115
|
+
/** Include skill resources in the prompt. Default: true */
|
|
116
|
+
includeResources?: boolean;
|
|
117
|
+
/** Maximum tokens for skill content. Default: no limit */
|
|
118
|
+
maxTokens?: number;
|
|
119
|
+
/** Custom separator between base prompt and skill. Default: '\n\n---\n\n' */
|
|
120
|
+
separator?: string;
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Result of building a skill-aware prompt
|
|
124
|
+
*/
|
|
125
|
+
export interface BuildPromptResult {
|
|
126
|
+
/** The complete system prompt with skill injected (if matched) */
|
|
127
|
+
systemPrompt: string;
|
|
128
|
+
/** Name of the detected skill, or null if none matched */
|
|
129
|
+
detectedSkill: string | null;
|
|
130
|
+
/** Confidence score of the detection (0 if no skill) */
|
|
131
|
+
confidence: number;
|
|
132
|
+
/** Triggers that matched in the user message */
|
|
133
|
+
matchedTriggers: string[];
|
|
134
|
+
/** Estimated tokens added by the skill (0 if no skill) */
|
|
135
|
+
tokensAdded: number;
|
|
136
|
+
}
|
|
137
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/skills/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lagoon Skills Type Definitions
|
|
3
|
+
*
|
|
4
|
+
* Skills are procedural knowledge modules that teach Claude HOW to use
|
|
5
|
+
* Lagoon MCP tools effectively. They complement MCP's data connectivity
|
|
6
|
+
* with domain expertise and workflow guidance.
|
|
7
|
+
*
|
|
8
|
+
* @module skills/types
|
|
9
|
+
*/
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/skills/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* discover_tools Tool
|
|
3
|
+
*
|
|
4
|
+
* Meta-tool for progressive tool discovery.
|
|
5
|
+
* Enables models to search and explore available tools by category or keyword.
|
|
6
|
+
* Reduces initial context overhead by allowing on-demand tool loading.
|
|
7
|
+
*
|
|
8
|
+
* Use cases:
|
|
9
|
+
* - Discover available capabilities before making specific tool calls
|
|
10
|
+
* - Filter tools by category (vault, portfolio, analytics, etc.)
|
|
11
|
+
* - Search for tools by keyword in names or descriptions
|
|
12
|
+
* - Get tool input schemas for specific tools
|
|
13
|
+
*
|
|
14
|
+
* Performance: ~100-200 tokens per query. No caching needed (static data).
|
|
15
|
+
*/
|
|
16
|
+
import { CallToolResult } from '@modelcontextprotocol/sdk/types.js';
|
|
17
|
+
import { z } from 'zod';
|
|
18
|
+
/**
|
|
19
|
+
* Input schema for discover_tools
|
|
20
|
+
*/
|
|
21
|
+
export declare const discoverToolsInputSchema: z.ZodObject<{
|
|
22
|
+
category: z.ZodOptional<z.ZodEnum<["vault", "portfolio", "analytics", "transactions", "export", "all"]>>;
|
|
23
|
+
keyword: z.ZodOptional<z.ZodString>;
|
|
24
|
+
includeSchema: z.ZodDefault<z.ZodBoolean>;
|
|
25
|
+
}, "strip", z.ZodTypeAny, {
|
|
26
|
+
includeSchema: boolean;
|
|
27
|
+
category?: "vault" | "portfolio" | "analytics" | "all" | "transactions" | "export" | undefined;
|
|
28
|
+
keyword?: string | undefined;
|
|
29
|
+
}, {
|
|
30
|
+
category?: "vault" | "portfolio" | "analytics" | "all" | "transactions" | "export" | undefined;
|
|
31
|
+
keyword?: string | undefined;
|
|
32
|
+
includeSchema?: boolean | undefined;
|
|
33
|
+
}>;
|
|
34
|
+
export type DiscoverToolsInput = z.infer<typeof discoverToolsInputSchema>;
|
|
35
|
+
/**
|
|
36
|
+
* Create the executeDiscoverTools function
|
|
37
|
+
*
|
|
38
|
+
* This is a pure function that doesn't require DI container
|
|
39
|
+
* since it only reads static tool metadata.
|
|
40
|
+
*
|
|
41
|
+
* @returns Configured tool executor function
|
|
42
|
+
*/
|
|
43
|
+
export declare function createExecuteDiscoverTools(): (input: DiscoverToolsInput) => Promise<CallToolResult>;
|
|
44
|
+
//# sourceMappingURL=discover-tools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discover-tools.d.ts","sourceRoot":"","sources":["../../src/tools/discover-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACpE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAcxB;;GAEG;AACH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;EAanC,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAiC1E;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,IAAI,CAC5C,KAAK,EAAE,kBAAkB,KACtB,OAAO,CAAC,cAAc,CAAC,CAwD3B"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* discover_tools Tool
|
|
3
|
+
*
|
|
4
|
+
* Meta-tool for progressive tool discovery.
|
|
5
|
+
* Enables models to search and explore available tools by category or keyword.
|
|
6
|
+
* Reduces initial context overhead by allowing on-demand tool loading.
|
|
7
|
+
*
|
|
8
|
+
* Use cases:
|
|
9
|
+
* - Discover available capabilities before making specific tool calls
|
|
10
|
+
* - Filter tools by category (vault, portfolio, analytics, etc.)
|
|
11
|
+
* - Search for tools by keyword in names or descriptions
|
|
12
|
+
* - Get tool input schemas for specific tools
|
|
13
|
+
*
|
|
14
|
+
* Performance: ~100-200 tokens per query. No caching needed (static data).
|
|
15
|
+
*/
|
|
16
|
+
import { z } from 'zod';
|
|
17
|
+
// Tool categories for filtering
|
|
18
|
+
// Maps category names to tool names that belong to each category
|
|
19
|
+
const TOOL_CATEGORIES = {
|
|
20
|
+
vault: ['get_vault_data', 'search_vaults', 'compare_vaults', 'simulate_vault'],
|
|
21
|
+
portfolio: ['get_user_portfolio', 'optimize_portfolio'],
|
|
22
|
+
analytics: ['get_vault_performance', 'get_price_history', 'analyze_risk', 'predict_yield'],
|
|
23
|
+
transactions: ['get_transactions'],
|
|
24
|
+
export: ['export_data', 'query_graphql'],
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* Input schema for discover_tools
|
|
28
|
+
*/
|
|
29
|
+
export const discoverToolsInputSchema = z.object({
|
|
30
|
+
category: z
|
|
31
|
+
.enum(['vault', 'portfolio', 'analytics', 'transactions', 'export', 'all'])
|
|
32
|
+
.optional()
|
|
33
|
+
.describe('Filter tools by category. Omit or use "all" for all categories.'),
|
|
34
|
+
keyword: z
|
|
35
|
+
.string()
|
|
36
|
+
.optional()
|
|
37
|
+
.describe('Search tool names and descriptions for this keyword (case-insensitive).'),
|
|
38
|
+
includeSchema: z
|
|
39
|
+
.boolean()
|
|
40
|
+
.default(false)
|
|
41
|
+
.describe('Include input schema details. Default: false (just name + description).'),
|
|
42
|
+
});
|
|
43
|
+
/**
|
|
44
|
+
* Get tool registry dynamically to avoid circular dependencies
|
|
45
|
+
* This function imports the registry at runtime
|
|
46
|
+
*/
|
|
47
|
+
async function getToolRegistry() {
|
|
48
|
+
// Dynamic import to avoid circular dependency
|
|
49
|
+
const { TOOL_REGISTRY } = await import('./registry.js');
|
|
50
|
+
return TOOL_REGISTRY;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Create the executeDiscoverTools function
|
|
54
|
+
*
|
|
55
|
+
* This is a pure function that doesn't require DI container
|
|
56
|
+
* since it only reads static tool metadata.
|
|
57
|
+
*
|
|
58
|
+
* @returns Configured tool executor function
|
|
59
|
+
*/
|
|
60
|
+
export function createExecuteDiscoverTools() {
|
|
61
|
+
return async (input) => {
|
|
62
|
+
try {
|
|
63
|
+
// Get tool registry dynamically
|
|
64
|
+
const registry = await getToolRegistry();
|
|
65
|
+
// Start with all tools except discover_tools itself
|
|
66
|
+
let tools = registry.filter((t) => t.name !== 'discover_tools');
|
|
67
|
+
// Filter by category if specified
|
|
68
|
+
if (input.category && input.category !== 'all') {
|
|
69
|
+
const categoryTools = TOOL_CATEGORIES[input.category] || [];
|
|
70
|
+
tools = tools.filter((t) => categoryTools.includes(t.name));
|
|
71
|
+
}
|
|
72
|
+
// Filter by keyword if specified
|
|
73
|
+
if (input.keyword) {
|
|
74
|
+
const keyword = input.keyword.toLowerCase();
|
|
75
|
+
tools = tools.filter((t) => t.name.toLowerCase().includes(keyword) || t.description.toLowerCase().includes(keyword));
|
|
76
|
+
}
|
|
77
|
+
// Format response
|
|
78
|
+
const result = {
|
|
79
|
+
availableCategories: Object.keys(TOOL_CATEGORIES),
|
|
80
|
+
matchedTools: tools.map((t) => ({
|
|
81
|
+
name: t.name,
|
|
82
|
+
description: t.description,
|
|
83
|
+
...(input.includeSchema ? { inputSchema: t.schema } : {}),
|
|
84
|
+
})),
|
|
85
|
+
totalTools: tools.length,
|
|
86
|
+
tip: tools.length === 0
|
|
87
|
+
? 'No tools matched your criteria. Try a different category or keyword.'
|
|
88
|
+
: 'Use category or keyword filters to narrow results. Set includeSchema=true for input details.',
|
|
89
|
+
};
|
|
90
|
+
return {
|
|
91
|
+
content: [{ type: 'text', text: JSON.stringify(result, null, 2) }],
|
|
92
|
+
isError: false,
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
catch (error) {
|
|
96
|
+
return {
|
|
97
|
+
content: [
|
|
98
|
+
{
|
|
99
|
+
type: 'text',
|
|
100
|
+
text: `Error discovering tools: ${error instanceof Error ? error.message : String(error)}`,
|
|
101
|
+
},
|
|
102
|
+
],
|
|
103
|
+
isError: true,
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=discover-tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discover-tools.js","sourceRoot":"","sources":["../../src/tools/discover-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/tools/registry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACpE,OAAO,EAAE,SAAS,EAA0B,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/tools/registry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACpE,OAAO,EAAE,SAAS,EAA0B,MAAM,KAAK,CAAC;AAmBxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAqBxD;;;GAGG;AACH,MAAM,WAAW,cAAc,CAAC,MAAM,GAAG,OAAO;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IAC1B,eAAe,EAAE,CAAC,SAAS,EAAE,gBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC;CAC9F;AAED;;;GAGG;AAEH,eAAO,MAAM,aAAa,EAAE,cAAc,CAAC,GAAG,CAAC,EAoL9C,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,gBAAgB,GAAG,IAAI,CA8BlF;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,EAAE,CAEvC;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAEjE"}
|
package/dist/tools/registry.js
CHANGED
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { ZodObject } from 'zod';
|
|
8
8
|
// Tool factory functions
|
|
9
|
+
import { createExecuteDiscoverTools, discoverToolsInputSchema } from './discover-tools.js';
|
|
9
10
|
import { createExecuteQueryGraphQL } from './query-graphql.js';
|
|
10
11
|
import { createExecuteGetVaultData } from './vault-data.js';
|
|
11
12
|
import { createExecuteGetUserPortfolio } from './user-portfolio.js';
|
|
@@ -29,6 +30,15 @@ import { createToolHandler } from '../utils/tool-handler.js';
|
|
|
29
30
|
*/
|
|
30
31
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
31
32
|
export const TOOL_REGISTRY = [
|
|
33
|
+
{
|
|
34
|
+
name: 'discover_tools',
|
|
35
|
+
description: 'Search and discover available Lagoon MCP tools by category or keyword. ' +
|
|
36
|
+
'Categories: vault, portfolio, analytics, transactions, export. ' +
|
|
37
|
+
'Use this to understand available capabilities before calling specific tools. ' +
|
|
38
|
+
'Performance: ~100-200 tokens. No caching needed.',
|
|
39
|
+
schema: discoverToolsInputSchema,
|
|
40
|
+
executorFactory: () => createExecuteDiscoverTools(),
|
|
41
|
+
},
|
|
32
42
|
{
|
|
33
43
|
name: 'query_graphql',
|
|
34
44
|
description: 'Execute raw GraphQL queries against the Lagoon backend. ' +
|
|
@@ -62,7 +72,7 @@ export const TOOL_REGISTRY = [
|
|
|
62
72
|
name: 'search_vaults',
|
|
63
73
|
description: 'Search and filter vaults with advanced criteria and 10-minute caching. ' +
|
|
64
74
|
'Supports 20+ filter options including asset, chain, TVL, curator, visibility. ' +
|
|
65
|
-
'Returns paginated results (default
|
|
75
|
+
'Returns paginated results (default 20, max 1000) with sort options. ' +
|
|
66
76
|
'Best for: vault discovery, filtering by criteria, TVL-sorted lists, multi-vault analysis. ' +
|
|
67
77
|
'Performance: ~300-500 tokens per page. ' +
|
|
68
78
|
'Cache key based on filter hash for efficient repeated searches.',
|
|
@@ -91,7 +101,7 @@ export const TOOL_REGISTRY = [
|
|
|
91
101
|
'Returns detailed transaction data with timestamps, block numbers, hashes, and type-specific fields. ' +
|
|
92
102
|
'Best for: analyzing historical vault activity, tracking user deposits/withdrawals, monitoring state changes, generating transaction reports. ' +
|
|
93
103
|
'Performance: ~400-600 tokens per query (varies with transaction count). ' +
|
|
94
|
-
'Features 15-minute caching and pagination support (default
|
|
104
|
+
'Features 15-minute caching and pagination support (default 20, max 1000).',
|
|
95
105
|
schema: getTransactionsInputSchema,
|
|
96
106
|
executorFactory: createExecuteGetTransactions,
|
|
97
107
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/tools/registry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAa,SAAS,EAAe,MAAM,KAAK,CAAC;AAExD,yBAAyB;AACzB,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,6BAA6B,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,gCAAgC,EAAE,MAAM,wBAAwB,CAAC;AAC1E,OAAO,EAAE,4BAA4B,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,4BAA4B,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,8BAA8B,EAAE,MAAM,yBAAyB,CAAC;AACzE,OAAO,EAAE,0BAA0B,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAK3F,gBAAgB;AAChB,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,2BAA2B,EAC3B,uBAAuB,EACvB,8BAA8B,EAC9B,0BAA0B,EAC1B,wBAAwB,EACxB,uBAAuB,EACvB,qBAAqB,EACrB,sBAAsB,EACtB,uBAAuB,EACvB,4BAA4B,GAC7B,MAAM,wBAAwB,CAAC;AAEhC,iBAAiB;AACjB,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAa7D;;;GAGG;AACH,8DAA8D;AAC9D,MAAM,CAAC,MAAM,aAAa,GAA0B;IAClD;QACE,IAAI,EAAE,eAAe;QACrB,WAAW,EACT,0DAA0D;YAC1D,qFAAqF;YACrF,gEAAgE;YAChE,0CAA0C;QAC5C,MAAM,EAAE,uBAAuB;QAC/B,eAAe,EAAE,yBAAyB;KAC3C;IACD;QACE,IAAI,EAAE,gBAAgB;QACtB,WAAW,EACT,2DAA2D;YAC3D,iDAAiD;YACjD,mGAAmG;YACnG,wEAAwE;YACxE,qCAAqC;QACvC,MAAM,EAAE,uBAAuB;QAC/B,eAAe,EAAE,yBAAyB;KAC3C;IACD;QACE,IAAI,EAAE,oBAAoB;QAC1B,WAAW,EACT,8CAA8C;YAC9C,gEAAgE;YAChE,oFAAoF;YACpF,iGAAiG;YACjG,qEAAqE;QACvE,MAAM,EAAE,2BAA2B;QACnC,eAAe,EAAE,6BAA6B;KAC/C;IACD;QACE,IAAI,EAAE,eAAe;QACrB,WAAW,EACT,yEAAyE;YACzE,gFAAgF;YAChF,
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/tools/registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -267,12 +267,12 @@ export declare const exportDataInputSchema: z.ZodObject<{
|
|
|
267
267
|
}, "strip", z.ZodTypeAny, {
|
|
268
268
|
chainId: number;
|
|
269
269
|
vaultAddresses: string[];
|
|
270
|
-
dataType: "
|
|
270
|
+
dataType: "transactions" | "price_history" | "vaults" | "performance";
|
|
271
271
|
format: "csv" | "json";
|
|
272
272
|
}, {
|
|
273
273
|
chainId: number;
|
|
274
274
|
vaultAddresses: string[];
|
|
275
|
-
dataType: "
|
|
275
|
+
dataType: "transactions" | "price_history" | "vaults" | "performance";
|
|
276
276
|
format: "csv" | "json";
|
|
277
277
|
}>;
|
|
278
278
|
export declare const analyzeRiskInputSchema: z.ZodObject<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validators.d.ts","sourceRoot":"","sources":["../../src/utils/validators.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AAGH,eAAO,MAAM,qBAAqB,aAK/B,CAAC;AAGJ,eAAO,MAAM,aAAa,aAAmE,CAAC;
|
|
1
|
+
{"version":3,"file":"validators.d.ts","sourceRoot":"","sources":["../../src/utils/validators.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AAGH,eAAO,MAAM,qBAAqB,aAK/B,CAAC;AAGJ,eAAO,MAAM,aAAa,aAAmE,CAAC;AAI9F,eAAO,MAAM,qBAAqB,2BAKpB,CAAC;AAGf,eAAO,MAAM,oBAAoB,2BAIpB,CAAC;AAEd;;GAEG;AAGH,eAAO,MAAM,uBAAuB;;;;;;;;;EAGlC,CAAC;AAGH,eAAO,MAAM,uBAAuB;;;;;;;;;EAGlC,CAAC;AAGH,eAAO,MAAM,2BAA2B;;;;;;;;;EAQtC,CAAC;AAGH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyDlC,CAAC;AAGH,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;EAazC,CAAC;AAGH,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmCrC,CAAC;AAGH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;EAYnC,CAAC;AAGH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;EAYlC,CAAC;AAGH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;EAWhC,CAAC;AAGH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;EASjC,CAAC;AAGH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;EAYlC,CAAC;AAGH,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8BvC,CAAC;AAEH;;GAEG;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AACxE,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AACxE,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAChF,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AACxE,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AACtF,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAC9E,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAC1E,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AACxE,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACpE,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACtE,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AACxE,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC"}
|
package/dist/utils/validators.js
CHANGED
|
@@ -14,12 +14,13 @@ export const ethereumAddressSchema = z
|
|
|
14
14
|
// Chain ID (positive integer)
|
|
15
15
|
export const chainIdSchema = z.number().int().positive('Chain ID must be a positive integer');
|
|
16
16
|
// Pagination first parameter
|
|
17
|
+
// Default reduced from 100 to 20 for token efficiency (~80% reduction per query)
|
|
17
18
|
export const paginationFirstSchema = z
|
|
18
19
|
.number()
|
|
19
20
|
.int()
|
|
20
21
|
.positive()
|
|
21
22
|
.max(1000, 'Maximum page size is 1000')
|
|
22
|
-
.default(
|
|
23
|
+
.default(20);
|
|
23
24
|
// Pagination skip parameter
|
|
24
25
|
export const paginationSkipSchema = z
|
|
25
26
|
.number()
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validators.js","sourceRoot":"","sources":["../../src/utils/validators.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AAEH,4CAA4C;AAC5C,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC;KACnC,MAAM,EAAE;KACR,KAAK,CACJ,qBAAqB,EACrB,4EAA4E,CAC7E,CAAC;AAEJ,8BAA8B;AAC9B,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC,CAAC;AAE9F,6BAA6B;AAC7B,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC;KACnC,MAAM,EAAE;KACR,GAAG,EAAE;KACL,QAAQ,EAAE;KACV,GAAG,CAAC,IAAI,EAAE,2BAA2B,CAAC;KACtC,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"validators.js","sourceRoot":"","sources":["../../src/utils/validators.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,15 +1,28 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lagoon-protocol/lagoon-mcp",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "MCP server for Lagoon DeFi vault analytics - FOR INFORMATIONAL USE ONLY, NOT FINANCIAL ADVICE. Natural language access to vault data, portfolios, and performance metrics",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
7
7
|
"types": "./dist/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"types": "./dist/index.d.ts",
|
|
11
|
+
"import": "./dist/index.js"
|
|
12
|
+
},
|
|
13
|
+
"./skills": {
|
|
14
|
+
"types": "./dist/skills/index.d.ts",
|
|
15
|
+
"import": "./dist/skills/index.js"
|
|
16
|
+
}
|
|
17
|
+
},
|
|
8
18
|
"bin": {
|
|
9
19
|
"lagoon-mcp": "./dist/index.js"
|
|
10
20
|
},
|
|
11
21
|
"files": [
|
|
12
22
|
"dist",
|
|
23
|
+
"!dist/**/__tests__",
|
|
24
|
+
"!dist/**/*.test.*",
|
|
25
|
+
"skills",
|
|
13
26
|
"README.md",
|
|
14
27
|
"LICENSE"
|
|
15
28
|
],
|
package/skills/README.md
ADDED
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
# Lagoon Skills
|
|
2
|
+
|
|
3
|
+
Claude Skills that enhance the Lagoon MCP with procedural knowledge and domain expertise.
|
|
4
|
+
|
|
5
|
+
## What are Skills?
|
|
6
|
+
|
|
7
|
+
Skills are specialized instruction sets that teach Claude HOW to use MCP tools effectively. While MCP provides data connectivity (tools to fetch vault data, analyze risk, etc.), Skills provide procedural knowledge (when to use which tool, how to interpret results for different audiences).
|
|
8
|
+
|
|
9
|
+
**MCP (Data Layer)** + **Skills (Knowledge Layer)** = **Domain Expert Experience**
|
|
10
|
+
|
|
11
|
+
## Available Skills
|
|
12
|
+
|
|
13
|
+
### Customer-Facing Skills
|
|
14
|
+
|
|
15
|
+
| Skill | Audience | Purpose | Status |
|
|
16
|
+
|-------|----------|---------|--------|
|
|
17
|
+
| `lagoon-onboarding` | New Users | Guide new users to first vault selection | Active |
|
|
18
|
+
| `lagoon-portfolio-review` | Existing Users | Quarterly portfolio health checks | Active |
|
|
19
|
+
| `lagoon-risk-expert` | Advanced Users | Comprehensive risk evaluation | Active |
|
|
20
|
+
|
|
21
|
+
### Internal Team Skills
|
|
22
|
+
|
|
23
|
+
| Skill | Audience | Purpose | Status |
|
|
24
|
+
|-------|----------|---------|--------|
|
|
25
|
+
| `lagoon-protocol-health` | Operations | Daily/weekly KPI monitoring | Active |
|
|
26
|
+
| `lagoon-curator-evaluation` | Business Development | Partnership assessment with scoring | Active |
|
|
27
|
+
| `lagoon-customer-support` | Support Team | Support response templates | Active |
|
|
28
|
+
|
|
29
|
+
## Skill Structure
|
|
30
|
+
|
|
31
|
+
Each skill follows the Claude Skills specification:
|
|
32
|
+
|
|
33
|
+
```
|
|
34
|
+
skill-name/
|
|
35
|
+
├── SKILL.md # Required: Main instructions with YAML frontmatter
|
|
36
|
+
└── [optional files] # Supporting resources, examples, scripts
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
### SKILL.md Format
|
|
40
|
+
|
|
41
|
+
```yaml
|
|
42
|
+
---
|
|
43
|
+
name: skill-name
|
|
44
|
+
description: Clear description of purpose and activation triggers
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
# Skill Title
|
|
48
|
+
|
|
49
|
+
[Instructions that Claude follows when this skill is active]
|
|
50
|
+
|
|
51
|
+
## When This Skill Activates
|
|
52
|
+
[Trigger conditions]
|
|
53
|
+
|
|
54
|
+
## Workflow
|
|
55
|
+
[Step-by-step procedures]
|
|
56
|
+
|
|
57
|
+
## Communication Guidelines
|
|
58
|
+
[Tone, language, disclaimers]
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## Using Skills
|
|
62
|
+
|
|
63
|
+
### With Claude.ai
|
|
64
|
+
|
|
65
|
+
1. Navigate to Settings > Features > Skills
|
|
66
|
+
2. Upload the skill folder or individual SKILL.md
|
|
67
|
+
3. Skills activate automatically based on conversation context
|
|
68
|
+
|
|
69
|
+
### With Claude Code
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
# Install from marketplace (when available)
|
|
73
|
+
/plugin marketplace add lagoon/skills
|
|
74
|
+
|
|
75
|
+
# Or install locally
|
|
76
|
+
/plugin install ./skills/lagoon-onboarding
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
### With Claude Desktop
|
|
80
|
+
|
|
81
|
+
Add to your Claude configuration:
|
|
82
|
+
|
|
83
|
+
```json
|
|
84
|
+
{
|
|
85
|
+
"skills": [
|
|
86
|
+
{
|
|
87
|
+
"path": "/path/to/lagoon-mcp/skills/lagoon-onboarding"
|
|
88
|
+
}
|
|
89
|
+
]
|
|
90
|
+
}
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
## Relationship to MCP Prompts
|
|
94
|
+
|
|
95
|
+
The Lagoon MCP includes 6 prompts that provide guidance frameworks. Skills extend this by:
|
|
96
|
+
|
|
97
|
+
1. **Adding procedural detail**: Exact tool sequences and parameters
|
|
98
|
+
2. **Adapting to audiences**: Different guidance for beginners vs experts
|
|
99
|
+
3. **Progressive loading**: Skills load only when relevant (~100 tokens initially)
|
|
100
|
+
4. **Supporting resources**: Additional files for complex workflows
|
|
101
|
+
|
|
102
|
+
### Migration Path
|
|
103
|
+
|
|
104
|
+
| MCP Prompt | Recommended Skill | Enhancement |
|
|
105
|
+
|------------|-------------------|-------------|
|
|
106
|
+
| `onboarding-first-vault` | `lagoon-onboarding` | Full workflow, profile assessment |
|
|
107
|
+
| `financial-analysis` | `lagoon-portfolio-review` | Structured review process |
|
|
108
|
+
| `curator-performance` | `lagoon-curator-evaluation` | Scoring rubric, deal-breakers |
|
|
109
|
+
| `protocol-overview` | `lagoon-protocol-health` | KPI thresholds, alerting |
|
|
110
|
+
| `portfolio-optimization` | `lagoon-portfolio-review` | MPT strategy guidance |
|
|
111
|
+
| `competitor-comparison` | (future) | Methodology, data sources |
|
|
112
|
+
|
|
113
|
+
## Creating New Skills
|
|
114
|
+
|
|
115
|
+
1. Create a folder: `skills/your-skill-name/`
|
|
116
|
+
2. Add `SKILL.md` with frontmatter and instructions
|
|
117
|
+
3. Add supporting resources as needed
|
|
118
|
+
4. Test with Claude to verify activation triggers
|
|
119
|
+
|
|
120
|
+
### Best Practices
|
|
121
|
+
|
|
122
|
+
- **Clear triggers**: Define specific activation conditions
|
|
123
|
+
- **Tool sequences**: Document exact tool workflows
|
|
124
|
+
- **User profiles**: Adapt guidance to different audience levels
|
|
125
|
+
- **Disclaimers**: Include appropriate legal/risk disclaimers
|
|
126
|
+
- **Examples**: Provide sample conversations and outputs
|
|
127
|
+
|
|
128
|
+
## Maintenance
|
|
129
|
+
|
|
130
|
+
Skills should be versioned alongside the MCP:
|
|
131
|
+
- Update tool references when MCP tools change
|
|
132
|
+
- Review and update risk thresholds periodically
|
|
133
|
+
- Add new skills based on user feedback and usage patterns
|
|
134
|
+
|
|
135
|
+
## Contributing
|
|
136
|
+
|
|
137
|
+
When creating new skills:
|
|
138
|
+
1. Follow the existing structure and naming conventions
|
|
139
|
+
2. Include comprehensive activation triggers
|
|
140
|
+
3. Test with real MCP tool outputs
|
|
141
|
+
4. Document any dependencies on specific MCP versions
|