agent-skill-loader
Agent Skill Loader đź§
Agent Skill Loader ist ein Model Context Protocol (MCP) Server, der als BrĂĽcke zwischen Ihrer statischen Claude Code Skills-Bibliothek und dynamischen KI-Agenten (wie Claude Desktop, Cursor oder jedem anderen MCP-Client) fungiert.
Er stellt Skills sowohl als MCP Prompts (Slash-Befehle, keine Tool-Aufrufe erforderlich) als auch als MCP Tools (für die programmatische Nutzung) bereit. Skills werden automatisch aus konfigurierten Verzeichnissen erkannt und bleiben aktiv — fügen Sie eine neue SKILL.md hinzu und der Client wird automatisch benachrichtigt.
🚀 Funktionen
MCP Prompts: Skills erscheinen als Slash-Befehle in Clients. Kein Tool-Aufruf erforderlich, um sie einzufĂĽgen.
Live-Updates:
listChanged-Benachrichtigung wird ausgelöst, wenn Skills hinzugefügt oder entfernt werden (via Datei-Watcher).Discovery:
list_skills— scannt konfigurierte Skill-Verzeichnisse, mit optionalem Suchfilter.Dynamisches Lernen:
read_skill— ruft den Inhalt derSKILL.mdab.Persistenz:
install_skill— kopiert einen Skill dauerhaft in Ihr Projekt.Konfiguration:
manage_search_paths— fügt Skill-Verzeichnisse zur Laufzeit hinzu oder entfernt sie.Fehlerbehebung:
debug_info— diagnostiziert Konfigurations- und Pfadprobleme.
Related MCP server: llama-mcp-server
🛠️ Einrichtung
Voraussetzungen
Node.js >= 18
Option A: Installation via npm (Empfohlen)
npm install -g agent-skill-loaderDann in .mcp.json registrieren:
"agent-skill-loader": {
"command": "agent-skill-loader"
}Option B: Build aus dem Quellcode
git clone https://github.com/back1ply/agent-skill-loader.git
cd agent-skill-loader
npm install
npm run buildDann in .mcp.json registrieren:
"agent-skill-loader": {
"command": "node",
"args": ["<path-to-repo>/build/index.js"]
}đź“‚ Konfiguration
Der Server erkennt automatisch seinen Arbeitsbereich und aggregiert Skill-Pfade aus:
Standard:
%USERPROFILE%\.claude\plugins\cache(Standard-Speicherort)Dynamische Konfiguration:
skill-paths.json(befindet sich im Projekt-Root)
Umgebungsvariablen
Variable | Beschreibung |
| JSON-Array oder durch Semikolon/Komma getrennte Liste zusätzlicher Skill-Pfade |
| Ăśberschreibt den automatisch erkannten Arbeitsbereichs-Root |
| Auf |
Dynamische Pfadverwaltung
Sie mĂĽssen Konfigurationsdateien nicht manuell bearbeiten. Verwenden Sie das Tool, um Pfade zur Laufzeit zu verwalten:
HinzufĂĽgen:
manage_search_paths(operation="add", path="F:\\My\\Deep\\Skills")Entfernen:
manage_search_paths(operation="remove", path="...")Auflisten:
manage_search_paths(operation="list")erstellt/aktualisiertskill-paths.json.
🤖 Verwendung
MCP Prompts (Slash-Befehle)
Wenn Ihr Client MCP Prompts unterstützt (Claude Desktop, Cursor, etc.), erscheinen Skills automatisch als Slash-Befehle. Wählen Sie einen Skill aus dem Slash-Befehlsmenü, um dessen Inhalt direkt einzufügen — keine Tool-Aufrufe erforderlich.
Tools
Der Agent hat Zugriff auf fĂĽnf Tools:
list_skills(query?): Gibt eine JSON-Liste der verfĂĽgbaren Skills zurĂĽck. Optional filtertquerynach Teilstrings in Name/Beschreibung (GroĂź-/Kleinschreibung wird ignoriert).read_skill(skill_name): Gibt die Markdown-Anweisungen fĂĽr einen Skill zurĂĽck.install_skill(skill_name, target_path?): Kopiert den Skill-Ordner nach.agent/skills/<name>. Aus SicherheitsgrĂĽnden musstarget_pathinnerhalb des aktuellen Arbeitsbereichs liegen.manage_search_paths(operation, path?): Skill-Suchpfade hinzufĂĽgen, entfernen oder auflisten.debug_info(): Gibt Diagnoseinformationen zurĂĽck (Pfade, Status, Warnungen).
Beispiel fĂĽr einen Agent-Prompt
"Ich muss ein DAX-Measure schreiben, bin mir aber bei den Best Practices unsicher."
Der Agent ruft automatisch list_skills auf, findet writing-dax-measures, ruft read_skill auf und antwortet mit Expertenwissen. Alternativ kann der Benutzer den Skill direkt als Slash-Befehl aufrufen.
đź”§ Fehlerbehebung
Wenn Skills nicht erkannt werden, verwenden Sie debug_info(), um Folgendes zu sehen:
search_paths: Welche Verzeichnisse gescannt werden
path_status: Ob jeder Pfad existiert und lesbar ist
warnings: Alle Fehler, die während des Scannens aufgetreten sind (Zugriff verweigert, leere Dateien, etc.)
Beispielausgabe:
{
"workspace_root": "C:/projects/agent-skill-loader",
"search_paths": {
"base": ["C:/Users/pc/.claude/plugins/cache"],
"dynamic": ["F:/My/Skills"],
"effective": ["C:/Users/pc/.claude/plugins/cache", "F:/My/Skills"]
},
"path_status": [
{ "path": "C:/Users/pc/.claude/plugins/cache", "exists": true, "readable": true },
{ "path": "F:/My/Skills", "exists": false, "readable": false }
],
"skills_found": 12,
"warnings": [
{ "path": "F:/My/Skills", "reason": "Directory does not exist" }
]
}📦 Projektstruktur
src/index.ts: Haupt-Serverlogik (Tools + Prompts + Watcher).src/utils.ts: Skill-Scanning, Extraktion von Beschreibungen, Prompt-Helfer, Debounce.build/: Kompilierte JavaScript-Ausgabe.package.json: Abhängigkeiten (@modelcontextprotocol/sdk,chokidar,zod).
🤝 Mitwirken
Um neue Skills hinzuzufügen, erstellen Sie einen Ordner mit einer SKILL.md-Datei in einem der überwachten Verzeichnisse. Der Server erkennt diese automatisch und sendet eine listChanged-Benachrichtigung — kein Neustart erforderlich.
Available Tools
5 toolsdebug_infoARead-only
Returns diagnostic information about server configuration, search paths, and any warnings from the last scan. Use this when skills aren't being found or to verify configuration.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true, and the description adds details on the content of the diagnostic info, consistent with a read-only operation. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the tool's function and followed by usage context. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with no parameters and no output schema, the description adequately covers what the tool returns and when to use it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has zero parameters, so schema coverage is 100%. Baseline of 4 is appropriate since no param explanation needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it returns diagnostic information about server configuration, search paths, and warnings, using a specific verb and resource. It distinguishes from sibling tools (which deal with skills) by being diagnostic.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says to use it when skills aren't found or to verify configuration. Provides clear context, though it doesn't mention when not to use or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
install_skillADestructive
Copies an entire skill directory (including SKILL.md and any supporting files) to the target workspace. By default, installs to .agent/skills/<skill_name> in the current working directory.
| Name | Required | Description | Default |
|---|---|---|---|
| skill_name | Yes | Name of the skill to install | |
| target_path | No | Destination path within current workspace. Defaults to .agent/skills/<skill_name>. Must be within the current working directory for security. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations set destructiveHint=true, and the description reinforces this with 'Copies... to target workspace' and adds details about path constraints (must be within current working directory). No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with key action, no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Explains main action, default path, and security constraint. Lacks information about return values or overwrite behavior, but is sufficient for a copy/install tool with no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema covers both parameters with full descriptions. The description adds minimal extra value beyond the schema, only reiterating default behavior and workspace security.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Copies an entire skill directory' and specifies the target workspace. It distinguishes from siblings like list_skills and read_skill by focusing on installation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains default behavior and security constraints, but does not explicitly state when not to use or suggest alternatives like list_skills or read_skill for non-destructive tasks.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_skillsARead-only
Returns a JSON list of all available skills with their names, descriptions, and source directories. Use this to discover what skills are available before reading or installing them.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Optional filter: return only skills whose name or description contains this substring (case-insensitive) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true; description reinforces readonly nature and adds detail about return fields (names, descriptions, source directories) without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise, front-loaded sentences with zero wasted words; purpose and usage guidance are efficiently communicated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given simplicity of tool, no output schema, description adequately explains return content (names, descriptions, source directories) and optional filtering, making it complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and description does not add meaning beyond the schema's parameter description; baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states tool returns a JSON list of all available skills with detailed fields, and distinguishes from sibling tools by mentioning its role before reading or installing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly advises usage for discovery before reading or installing skills, providing clear context of when to use; could be improved by also stating when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manage_search_pathsADestructiveIdempotent
Add, remove, or list dynamic skill search paths without restarting the server. Persists to skill-paths.json in the workspace root.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | Absolute path to add or remove (not required for 'list') | |
| operation | Yes | Operation to perform |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the safety profile (destructiveHint=true, readOnlyHint=false, idempotentHint=true), so the description's burden is lighter. It still adds meaningful behavior beyond the annotations by disclosing the persistence file (skill-paths.json in the workspace root) and the no-restart property, which tells the agent changes are durable and immediately effective.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with zero filler; the operation set and the persistence side effect are both stated up front with nothing redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a small two-parameter, no-output-schema tool with annotations covering safety, the definition is nearly complete: it covers operations, persistence location, and the restart-free behavior. Minor gaps remain around error cases (invalid path, duplicates) and whether removal affects already-loaded skills.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters are already documented in the schema, including the note that path is unneeded for 'list'. The description adds no further syntax, format, or validation detail (e.g., whether the path must already exist), so it sits at the baseline for schema-covered parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names specific verbs (add, remove, list) and a precise resource (dynamic skill search paths), so the agent knows exactly what class of operation this is. It implicitly separates itself from the skill-content siblings (install_skill, read_skill) by scoping to search-path configuration, though it never names a sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to reach for this tool versus install_skill or list_skills, nor any exclusion criteria or prerequisites. The operation enum implies the three modes but the description never states a use case that would select this tool over alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_skillARead-only
Fetches and returns the full SKILL.md content for a specific skill. The content includes instructions and context that can be used to learn the skill's capabilities.
| Name | Required | Description | Default |
|---|---|---|---|
| skill_name | Yes | The name of the skill to read (e.g., 'writing-dax-measures') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the description adds context about the content structure ('instructions and context'), but does not disclose other behavioral traits like error handling or limitations. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loaded with the primary purpose, and contains no extraneous information. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (single parameter, read-only), the description adequately explains the return value ('full SKILL.md content' with instructions and context). However, it omits details about potential errors or output format, but for a read tool this is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers 100% of parameters and provides a clear description for 'skill_name.' The description does not add additional meaning beyond the schema, so baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Fetches and returns the full SKILL.md content for a specific skill,' which clearly defines the action (fetch) and resource (SKILL.md content). It is distinct from siblings like list_skills (lists skill names) and install_skill (installs).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
While the description implies usage when needing full content of a skill, it does not explicitly state when to use it versus alternatives (e.g., when not to use, prerequisites). Guidance is inferred but not directly provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
v1.0.0- Changed
list_skills2 fields changed- added
Input schema / additionalPropertiesAdded value: +false - added
Input schema / properties / queryAdded value: +{ + "description": "Optional filter: return only skills whose name or description contains this substring (case-insensitive)", + "type": "string" +}
5 tool updates
- First observed
debug_info - First observed
install_skill - First observed
list_skills - First observed
manage_search_paths - First observed
read_skill
TDQS
Scored across 5 tools
Each tool has a clearly distinct purpose: manage_search_paths handles configuration, debug_info provides diagnostics, install_skill copies directories, list_skills enumerates available skills, and read_skill retrieves content. There is no meaningful overlap between them.
All tool names use snake_case with a consistent verb_noun structure (manage_search_paths, debug_info, install_skill, list_skills, read_skill). The pattern is predictable and easy to parse.
Five tools is well-scoped for a skill loader: discovery, reading, installation, path management, and debugging. Each tool earns its place without redundancy.
The core lifecycle of discovering, reading, and installing skills is covered, plus configuration and diagnostics. However, there is no tool to uninstall or remove an installed skill or update an existing one, which are minor gaps.
Maintenance
Related MCP Connectors
MCP server for AI dialogue using various LLM models via AceDataCloud
Augments MCP Server - A comprehensive framework documentation provider for Claude Code
Cloud-hosted MCP server for durable AI memory
MCP server for OpenAI API (chat completions, image generation, embeddings) via AceDataCloud
Related MCP Servers
- AlicenseNot gradedqualityNot gradedmaintenanceAn MCP server that transforms Claude-style skills and resources into callable tools for any MCP-compatible agent or client. It automatically discovers, exposes, and executes scripts from skills organized in local directories or packaged archives.MIT
- AlicenseAqualityDmaintenanceMCP server bridging Claude Code to local llama.cpp. Run local LLMs alongside Claude for experimentation, testing, and cost-effective inference.1913 npm1MIT
- AlicenseAqualityDmaintenanceMCP server that integrates OpenClaw AI assistant with Claude Code, enabling chat, task management, messaging, memory, alerts, agent spawning, and web search through configurable tools.1296 npmMIT
- FlicenseNot gradedqualityDmaintenanceAn MCP server that provides intelligent discovery, search, and on-demand loading of Claude Code skills and agents, reducing token usage by lazy loading.-