skillsmcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@skillsmcplist available skills"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
skillsmcp
MCP server that exposes Agent Skills to AI agents via the Model Context Protocol.
Agent Skills are reusable, portable instruction sets that guide AI coding agents. This server makes them discoverable and activatable as MCP tools, following the progressive disclosure pattern from the Agent Skills specification.
Prerequisites
uv — fast Python package manager
Install with Homebrew:
brew install uvRelated MCP server: DPS-Superskills-MCP
Install
uv tool install git+https://github.com/aviddiviner/skillsmcp.gitThis installs skillsmcp as a command on your PATH. To update later:
uv tool upgrade skillsmcpConfigure
Zed
Add to your settings (~/.config/zed/settings.json):
{
"context_servers": {
"skillsmcp": {
"command": "uvx",
"args": ["skillsmcp"]
}
}
}Claude Desktop
Add to your Claude config (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"skillsmcp": {
"command": "uvx",
"args": ["skillsmcp"]
}
}
}Other MCP Clients
Any client that supports MCP's stdio transport can use this server. Run it directly:
uvx skillsmcpTools
The server exposes three MCP tools:
Tool | Description |
| Discover all available skills with names and descriptions |
| Load a skill's full instructions by name |
| Read supporting files from a skill's directory |
All tools accept an optional project_roots parameter — a list of project directories to scan for project-level skills. User-level skills (~/.agents/skills/, ~/.claude/skills/) are always included. When project_roots is not provided, the server falls back to its working directory.
Adding Skills
Skills are directories containing a SKILL.md file with YAML frontmatter:
~/.agents/skills/
└── my-skill/
├── SKILL.md
├── scripts/
│ └── helper.py
└── references/
└── REFERENCE.mdExample SKILL.md:
---
name: my-skill
description: A short description of what this skill does and when to use it.
---
# My Skill
Instructions for the AI agent go here...Skill Directories
The server scans the following directories in precedence order (first-found wins for name collisions):
Project-level (highest priority):
<project>/.agents/skills/<project>/.claude/skills/
User-level:
~/.agents/skills/~/.claude/skills/
Project-level skills override user-level skills with the same name.
Development
git clone https://github.com/aviddiviner/skillsmcp.git
cd skillsmcp
# Install in development mode
uv sync
# Run the server directly
uv run skillsmcpLearn More
Agent Skills specification — the full format spec
Example skills — official skill examples
skills.sh — browse and install community skills
FastMCP — the Python MCP framework powering this server
License
MIT
Available Tools
3 toolsactivate_skillA
Activate a skill by name, loading its full instructions and listing supporting files.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | The name of the skill to activate (as returned by list_skills). | |
| project_roots | No | Optional list of project root directories to scan. Same behavior as in list_skills. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries the transparency burden. It discloses the immediate effects (loading instructions, listing files) but does not mention any state changes, prerequisites, or side effects of activation. The description is accurate but incomplete.
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?
A single, front-loaded sentence communicates the core action and its two immediate outcomes. 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?
The description is adequate for a simple tool with an output schema available. It captures the essential behavior and is not missing critical context, though it could mention how project_roots interacts with activation.
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 already documents all parameters with clear descriptions, including the note that 'name' comes from list_skills. The description merely says 'by name,' adding no new semantic value. Baseline 3 for full schema coverage.
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 uses a specific verb ('Activate') and resource ('skill'), and clarifies the outcome: loading instructions and listing supporting files. This clearly distinguishes it from siblings like list_skills (which only lists skills) and read_skill_file (which reads specific files).
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 use after selecting a skill but never explicitly states when to use this versus list_skills or read_skill_file. No exclusions are given; the reader must infer that activation is a higher-level operation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_skillsA
List all available agent skills with their names and descriptions.
Scans project-level and user-level skill directories for SKILL.md files. Returns a JSON array of objects with name, description, and path for each skill.
| Name | Required | Description | Default |
|---|---|---|---|
| project_roots | No | Optional list of project root directories to scan for project-level skills. When provided, each root is checked for .agents/skills/ and .claude/skills/ subdirectories. User-level skill directories (~/.agents/skills/, ~/.claude/skills/) are always included. If not provided, falls back to the server's working directory. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It explains the scanning scope (project-level and user-level directories, SKILL.md files) and the return format (JSON array with name, description, path). This goes beyond a simple 'list' and gives useful operational detail, though it does not cover edge cases like missing directories.
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: the first states the core purpose, the second adds scanning and return details. It is front-loaded, concise, and every word contributes. No redundant or vague language.
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 low-complexity list tool with one optional parameter and an output schema, the description is complete. It covers what action is performed, where skills are scanned, and what the return format is. It does not explain the concept of 'agent skills,' but that is likely assumed context. Sibling differentiation is not addressed but is not necessary for completeness.
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 for project_roots has a 100% coverage description, fully explaining the parameter's behavior. The tool description does not mention parameters, but the schema already provides the necessary semantic detail, so the baseline 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 function with a specific verb and resource: 'List all available agent skills with their names and descriptions.' It distinguishes from siblings (activate_skill, read_skill_file) by focusing on enumeration, not activation or file reading.
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 when to use the tool (to list available skills) and provides context about scanning project and user directories, but it does not explicitly mention alternatives or exclusions (e.g., 'use read_skill_file to view contents'). The usage is clear but not directly contrasted with sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_skill_fileB
Read a supporting file from a skill's directory.
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes | Path to the file relative to the skill directory (e.g. "scripts/extract.py"). | |
| skill_name | Yes | The name of the skill that owns the file. | |
| project_roots | No | Optional list of project root directories to scan. Same behavior as in list_skills. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of disclosing behavioral traits. It only states 'Read' and yields no information about side effects, error handling, file access restrictions, or return behavior. This is insufficient for a tool that could access file contents.
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 a single, direct sentence that states the essential purpose without any fluff. It is front-loaded and immediately conveys the tool's function, making it an ideal length for this simple read operation.
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?
The tool has an output schema and fully documented parameters, which cover the 'what' and 'how'. However, the description omits behavioral context such as file-not-found behavior, security restrictions, or whether project_roots affects scope. For a read tool with no annotations, this lack of behavioral completeness leaves gaps, but it is minimally adequate given the structured schema information.
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 schema descriptions cover all parameters (100% coverage) with clear meanings (e.g., 'Path to the file relative to the skill directory'), so the description does not need to add parameter details. The description itself does not mention parameters, providing no additional value beyond the schema, warranting the baseline score.
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 ('Read') and resource ('a supporting file from a skill's directory'), which is specific and distinct from sibling tools like list_skills and activate_skill. It leaves no ambiguity about the tool's function.
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 provides no explicit guidance on when to use this tool versus its siblings, nor does it mention exclusions or prerequisites. Although the purpose implies usage, no alternatives or context are given to guide an agent's decision-making.
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.
3 tool updates
v0.2.0- First observed
activate_skill - First observed
list_skills - First observed
read_skill_file
TDQS
Scored across 3 tools
Each tool has a clearly distinct purpose: listing skills, activating a skill, and reading a skill's supporting files. No overlap or ambiguity exists between them.
All tool names follow a consistent verb_noun snake_case pattern: list_skills, activate_skill, read_skill_file. The naming is predictable and uniform.
With 3 tools, the server is well-scoped for its purpose of managing and accessing skills. Each tool serves a necessary function without redundancy.
The tool surface covers the full life cycle of interacting with skills: discovery (list), retrieval of details (activate), and access to supporting files. No obvious missing operations for the stated domain.
Maintenance
Related MCP Connectors
Governed AI agent skills — one library, distributed to devs and exposed to remote agents over MCP.
Search & install 6,500+ AI agent skills from skills-hub.ai inside any MCP tool.
A registry of 5,900+ peer-authored skills any MCP agent can search and load on demand.
Your org's AI agents, tasks, runs, search, and brain files as MCP tools and resources.
Related MCP Servers
- AlicenseNot gradedqualityFmaintenanceLoads Agent Skills from markdown files, exposing them as MCP tools or system prompts for AI agents.31MIT
- AlicenseAqualityBmaintenanceExposes 31 high-assurance agentic coding skills as MCP tools and resources, enabling AI agents to invoke structured workflows across DISCIPLINE, TECHNIQUE, KNOWLEDGE LAYER, and REFERENCE registers.5Apache 2.0
- AlicenseNot gradedqualityAmaintenanceExposes an agent's skills as MCP tools, allowing any MCP client to route requests and load skills on demand from a single .3md file.28 npm1MIT
- AlicenseNot gradedqualityDmaintenanceMCP server that adapts, activates, and shares local Agent Skills for runtimes like OpenAI Agents SDK and Claude Code, enabling dynamic discovery and shareable HTML/image artifacts.18 npm2MIT