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
Tool call template
This tool declares no required parameters. Add optional parameters from the input schema as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {},
"name": "list_skills"
}
}Input 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; }