Skills Manager MCP Server
Click on "Install 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., "@Skills Manager MCP Serverlist my 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.
Skills Manager
A visual web interface for managing Claude MCP Skills with Claude Code CLI integration.
Project Overview
This project provides a browser-based UI for managing skills in an MCP (Model Context Protocol) server. Skills are markdown-based instruction sets that Claude can load on-demand to gain specialized knowledge.
Related MCP server: agent-skill-loader
Architecture
┌─────────────────────────────────────────────────────────────────┐
│ Skills Manager │
├─────────────────────────────────────────────────────────────────┤
│ │
│ ┌──────────────────┐ ┌──────────────────────────┐ │
│ │ Claude Desktop │ │ Browser UI │ │
│ │ (MCP Client) │ │ skills-manager.html │ │
│ └────────┬─────────┘ └────────────┬─────────────┘ │
│ │ │ │
│ │ stdio/MCP │ HTTP REST │
│ │ │ │
│ ┌────────▼─────────┐ ┌────────────▼─────────────┐ │
│ │ server.py │ │ skills_manager_api.py │ │
│ │ (MCP Server) │ │ (Flask API :5050) │ │
│ └────────┬─────────┘ └────────────┬─────────────┘ │
│ │ │ │
│ └────────────┬───────────────────┘ │
│ │ │
│ ▼ │
│ ┌──────────────┐ │
│ │ skills/ │ │
│ │ (folder) │ │
│ └──────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘File Structure
skills-mcp/
├── server.py # MCP server (FastMCP) - connects to Claude Desktop
├── skills_manager_api.py # Flask HTTP API server (port 5050)
├── skills_manager_app.py # Standalone all-in-one app (for .exe build)
├── skills-manager.html # Web UI (single-file, Tailwind + Lucide)
├── requirements.txt # Python dependencies
├── build.bat # Windows build script for .exe
├── skills/ # Skills directory
│ ├── my-skill/
│ │ ├── SKILL.md # Main skill content
│ │ ├── _meta.json # Metadata (tags, description)
│ │ ├── scripts/ # Optional helper scripts
│ │ └── references/ # Optional reference docs
│ └── another-skill/
│ └── ...
└── dist/ # Built executable + assets
├── SkillsManager.exe
├── skills-manager.html
└── README.mdSetup
Prerequisites
Python 3.10+
Node.js (optional, for Claude Code CLI)
Claude Code CLI (optional, for AI features)
Installation
cd skills-mcp
pip install -r requirements.txtRunning the API Server
python skills_manager_api.pyOpens at: http://localhost:5050
Running the MCP Server (for Claude Desktop)
The MCP server runs automatically when Claude Desktop starts (configured in claude_desktop_config.json).
Manual test:
python server.pyDaily Skills Catalogue Audit
The repo ships an automated review system that grades every skill daily and
surfaces improvement opportunities. See reports/ for the latest output.
What it does
Pass 1 (deterministic, every run): structural defects — missing files, description drift between
_meta.jsonand SKILL.md frontmatter, broken references, unknowndepends_ontargets, oversized SKILL.md files, thin asset-less skills, duplicate sub-skill triggers, stale reviews.Pass 2 (one skill per run): content audit of the skill whose
last_reviewed_atis oldest. Runs a deterministic rubric (description distinctness vs. tag-cluster siblings, library version mentions, asset richness, cross-references), proposes arelevance_tier(A/B/C/D), and optionally calls the Claude CLI for an LLM-assisted rubric.Pass 3 (weekly): catalogue-level review — sibling description overlap, router necessity, tag-cluster drift vs. last week's snapshot, source distribution.
Running locally
# Add the audit metadata fields once (idempotent):
python scripts/backfill_audit_meta.py
# Daily run (writes reports/YYYY-MM-DD.md):
python scripts/run_daily_audit.py
# With weekly Pass 3 + the LLM rubric:
python scripts/run_daily_audit.py --weekly --use-llmThe GitHub Actions workflow .github/workflows/skills-audit.yml runs the
daily audit at 06:30 UTC and commits the resulting report. The Monday run
also performs Pass 3.
Metadata fields added to _meta.json
Field | Type | Meaning |
| ISO date or null | When Pass 2 last audited this skill |
| int 0–100 or null | Composite of distinctness + asset richness + freshness + cross-references |
| "A" / "B" / "C" / "D" / null | A = irreplaceable, B = trim & keep, C = redundant with base-model output, D = obsolete |
The Skills Manager UI shows these as a filter dropdown and a per-card badge.
Development
Key Files to Edit
File | Purpose |
| Frontend UI (vanilla JS, Tailwind CSS, Lucide icons) |
| Backend REST API (Flask) |
| MCP server for Claude Desktop integration |
| Standalone app (combines API + launcher for .exe) |
API Endpoints
Method | Endpoint | Description |
GET |
| List all skills |
GET |
| Get skill details |
POST |
| Create new skill |
PUT |
| Update skill |
DELETE |
| Delete skill |
POST |
| Import skill from folder path |
POST |
| Import files via JSON |
GET |
| Browse filesystem |
GET |
| Check Claude CLI availability |
POST |
| Run Claude with prompt |
POST |
| Generate skill with AI |
Frontend Structure
The UI is a single HTML file with embedded CSS and JavaScript:
Modals: Import, Folder Browser, File Upload, Generate, View, Claude Console
State:
skills[],selectedFolderPath,browsePathCache{}, etc.Key Functions:
browsePath(path)- Navigate filesystemimportSelectedFolder()- Copy folder to skills/uploadFiles()- Upload files as new skillgenerateSkill()- AI skill generationrunConsoleCommand()- Execute Claude prompts
Building the Executable
# Windows
build.bat
# Or manually
pip install pyinstaller
python -m PyInstaller --onefile --name "SkillsManager" --console ^
--add-data "skills-manager.html;." skills_manager_app.pyOutput: dist/SkillsManager.exe
Skill Format
SKILL.md Structure
---
name: skill-name
description: When Claude should use this skill
---
# Skill Name
## Overview
What this skill helps with.
## When to Use
- Trigger condition 1
- Trigger condition 2
## Quick Start
\`\`\`code
Example usage
\`\`\`
## Best Practices
- Practice 1
- Practice 2
## Examples
Practical examples here._meta.json Structure
{
"name": "skill-name",
"description": "One-line description",
"tags": ["tag1", "tag2"],
"sub_skills": [],
"source": "imported"
}Claude Desktop Configuration
Location: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"skills": {
"command": "python",
"args": ["C:/Users/<YOUR_USERNAME>/skills-mcp/server.py"]
}
}
}MCP Tools (for Claude)
The MCP server exposes these tools to Claude:
Tool | Description |
| List all available skills |
| Load a skill's SKILL.md content |
| Search skills by metadata |
| Full-text search across all skills |
| Load multiple skills at once |
| Refresh skill index |
| Check skill integrity |
Known Issues / TODO
Folder browser doesn't show drive letters on initial load (starts at root drives)
No confirmation before overwriting existing skills
File upload doesn't preserve folder structure from drag-drop
Claude Console output doesn't syntax highlight
No skill versioning or backup
Tech Stack
Backend: Python 3.11, Flask, Flask-CORS, FastMCP
Frontend: Vanilla JS, Tailwind CSS (CDN), Lucide Icons (CDN)
Build: PyInstaller
Protocol: MCP (Model Context Protocol)
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
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/Bbeierle12/Skill-MCP-Claude'
If you have feedback or need assistance with the MCP directory API, please join our Discord server