agent-skill-loader
Agent Skill Loader 🧠
Agent Skill Loader 是一个模型上下文协议 (MCP) 服务器,它充当您的静态 Claude Code 技能库与动态 AI 代理(如 Claude Desktop、Cursor 或任何 MCP 客户端)之间的桥梁。
它将技能同时公开为 MCP Prompts(斜杠命令,无需工具调用)和 MCP Tools(用于程序化使用)。技能会从配置的目录中自动发现并保持实时更新 — 添加一个新的 SKILL.md,客户端会自动收到通知。
🚀 功能
MCP Prompts:技能在客户端中显示为斜杠命令。无需工具调用即可注入它们。
实时更新:当通过文件监视器添加或删除技能时,会触发
listChanged通知。发现:
list_skills— 扫描配置的技能目录,支持可选的搜索过滤器。动态学习:
read_skill— 获取SKILL.md的内容。持久化:
install_skill— 将技能永久复制到您的项目中。配置:
manage_search_paths— 在运行时添加/删除技能目录。故障排除:
debug_info— 诊断配置和路径问题。
Related MCP server: llama-mcp-server
🛠️ 设置
先决条件
Node.js >= 18
选项 A:从 npm 安装(推荐)
npm install -g agent-skill-loader然后在 .mcp.json 中注册:
"agent-skill-loader": {
"command": "agent-skill-loader"
}选项 B:从源码构建
git clone https://github.com/back1ply/agent-skill-loader.git
cd agent-skill-loader
npm install
npm run build然后在 .mcp.json 中注册:
"agent-skill-loader": {
"command": "node",
"args": ["<path-to-repo>/build/index.js"]
}📂 配置
服务器会自动检测其工作区并从以下位置聚合技能路径:
默认:
%USERPROFILE%\.claude\plugins\cache(标准位置)动态配置:
skill-paths.json(位于项目根目录)
环境变量
变量 | 描述 |
| 附加技能路径的 JSON 数组或分号/逗号分隔列表 |
| 覆盖自动检测到的工作区根目录 |
| 设置为 |
动态路径管理
您无需手动编辑配置文件。使用该工具在运行时管理路径:
添加:
manage_search_paths(operation="add", path="F:\\My\\Deep\\Skills")删除:
manage_search_paths(operation="remove", path="...")列表:
manage_search_paths(operation="list")创建/更新skill-paths.json。
🤖 使用方法
MCP Prompts(斜杠命令)
如果您的客户端支持 MCP Prompts(Claude Desktop、Cursor 等),技能会自动显示为斜杠命令。从斜杠命令菜单中选择一个技能即可直接注入其内容 — 无需工具调用。
工具
代理可以访问五个工具:
list_skills(query?):返回可用技能的 JSON 列表。可选的query按名称/描述子字符串进行过滤(不区分大小写)。read_skill(skill_name):返回技能的 markdown 指令。install_skill(skill_name, target_path?):将技能文件夹复制到.agent/skills/<name>。出于安全考虑,target_path必须位于当前工作区内。manage_search_paths(operation, path?):添加、删除或列出技能搜索路径。debug_info():返回诊断信息(路径、状态、警告)。
代理提示示例
"我需要编写一个 DAX 度量值,但不确定最佳实践是什么。"
代理将自动调用 list_skills,找到 writing-dax-measures,调用 read_skill,并以专家知识进行回答。或者用户可以直接作为斜杠命令调用该技能。
🔧 故障排除
如果技能未被发现,请使用 debug_info() 查看:
search_paths:正在扫描哪些目录
path_status:每个路径是否存在且可读
warnings:扫描过程中遇到的任何错误(权限被拒绝、空文件等)
输出示例:
{
"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" }
]
}📦 项目结构
src/index.ts:服务器主逻辑(工具 + 提示 + 监视器)。src/utils.ts:技能扫描、描述提取、提示助手、防抖。build/:编译后的 JavaScript 输出。package.json:依赖项 (@modelcontextprotocol/sdk,chokidar,zod)。
🤝 贡献
要添加新技能,请将包含 SKILL.md 文件的文件夹添加到受监视的目录之一。服务器会自动获取它们并发送 listChanged 通知 — 无需重启。
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/ 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_pathsARead-only
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 |
|---|---|---|---|
| operation | Yes | Operation to perform | |
| path | No | Absolute path to add or remove (not required for 'list') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations declare readOnlyHint: true, but the description describes write operations (add, remove). This is a clear contradiction. The description does not address other behavioral traits like error handling or authorization needs.
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 concise with two sentences, front-loading the purpose and adding key behavioral context (no restart, persistence). Every sentence adds value without redundancy.
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 (2 parameters, no output schema), the description covers the main actions and persistence behavior. However, the annotation contradiction weakens overall completeness, as the agent cannot trust the safety profile.
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 has 100% description coverage for both parameters. The tool description adds context about persistence and no restart needed, but does not add new parameter-level semantics beyond what the schema provides. Baseline score of 3 is appropriate.
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 tool's purpose: adding, removing, or listing dynamic skill search paths. It specifies the resource (dynamic skill search paths) and the verbs (add, remove, list). This distinguishes it from sibling tools like install_skill and read_skill, which handle different resources.
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 implies usage for runtime modifications without restarting the server, but does not explicitly state when to use this tool versus alternatives. However, since no sibling tool performs the same operation, the implicit guidance is sufficient.
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. Dates show when Glama detected each change.
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
Each tool has a clearly distinct purpose: debugging, installation, listing, path management, and reading skills. No overlapping functionality.
All tools follow a consistent verb_noun snake_case pattern (e.g., debug_info, install_skill), making them predictable and easy to understand.
With only 5 tools, the server is well-scoped for its purpose of managing skills. Each tool serves a necessary function without redundancy.
Core operations are covered (install, list, read, debug, manage paths), but a missing uninstall/remove skill tool is a minor gap that may require manual intervention.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer
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
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.-
- AlicenseAqualityDmaintenanceMCP server bridging Claude Code to local llama.cpp. Run local LLMs alongside Claude for experimentation, testing, and cost-effective inference.19131MIT
- 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.12208MIT
- 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.-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/back1ply/agent-skill-loader'
If you have feedback or need assistance with the MCP directory API, please join our Discord server