Skip to main content
Glama

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 uv

Related MCP server: DPS-Superskills-MCP

Install

uv tool install git+https://github.com/aviddiviner/skillsmcp.git

This installs skillsmcp as a command on your PATH. To update later:

uv tool upgrade skillsmcp

Configure

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 skillsmcp

Tools

The server exposes three MCP tools:

Tool

Description

list_skills

Discover all available skills with names and descriptions

activate_skill

Load a skill's full instructions by name

read_skill_file

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.md

Example 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):

  1. Project-level (highest priority):

    • <project>/.agents/skills/

    • <project>/.claude/skills/

  2. 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 skillsmcp

Learn More

License

MIT

Available Tools

3 tools
activate_skillA

Activate a skill by name, loading its full instructions and listing supporting files.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesThe name of the skill to activate (as returned by list_skills).
project_rootsNoOptional list of project root directories to scan. Same behavior as in list_skills.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_rootsNoOptional 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

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_pathYesPath to the file relative to the skill directory (e.g. "scripts/extract.py").
skill_nameYesThe name of the skill that owns the file.
project_rootsNoOptional list of project root directories to scan. Same behavior as in list_skills.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

  1. 3 tool updatesv0.2.0
    • First observedactivate_skill
    • First observedlist_skills
    • First observedread_skill_file

TDQS

A4/5.0

Scored across 3 tools

Disambiguation5/5

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.

Naming Consistency5/5

All tool names follow a consistent verb_noun snake_case pattern: list_skills, activate_skill, read_skill_file. The naming is predictable and uniform.

Tool Count5/5

With 3 tools, the server is well-scoped for its purpose of managing and accessing skills. Each tool serves a necessary function without redundancy.

Completeness5/5

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

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers