list_skills
Retrieve development skills with descriptions and IDs, optionally filtered by tags like clean-code or testing, to identify relevant capabilities for AI-powered development workflows.
Instructions
List all available development skills with descriptions and IDs
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | Optional: filter by tags (clean-code, testing, etc.) |
Implementation Reference
- src/server.ts:223-251 (handler)The core handler logic for the 'list_skills' tool within the CallToolRequestSchema switch statement. It retrieves skill prompts from the 'skills' category, optionally filters by tags provided in arguments, maps relevant fields, and returns a formatted JSON list as text content.case "list_skills": const skillsPrompts = await this.promptManager.searchPromptsByCategory("skills"); let skillsList = skillsPrompts.map((skill) => ({ id: skill.id, title: skill.title, description: skill.description, tags: skill.tags, effectiveness: skill.effectiveness, })); if (args && Array.isArray(args.tags) && args.tags.length > 0) { const tags: string[] = args.tags; skillsList = skillsList.filter((item) => { return item.tags.some((item) => tags.includes(item)); }); } logger.info(`Listed ${skillsList.length} skills`); return { content: [ { type: "text", text: JSON.stringify(skillsList, null, 2), }, ], };
- src/prompt-manager.ts:220-240 (helper)Helper function in PromptManager used by the list_skills handler to fetch all prompts in the 'skills' category (searchPromptsByCategory('skills')).searchPromptsByCategory(category: string) { const lowercaseQuery = category.toLowerCase(); const results: PromptWithScore[] = []; for (const prompt of this.prompts.values()) { let score = 0; // Check tags // Check category if (prompt.category.toLowerCase().includes(lowercaseQuery)) { score += 1; } if (score > 0) { results.push({ ...prompt, searchScore: score }); } } // Sort by score (descending) return results; }