Co-Pilot
Updated 3 months ago

skill-mcp-claude

BBbeierle12
0.0k
bbeierle12/skill-mcp-claude
78
Agent Score

πŸ’‘ Summary

A web interface for managing Claude MCP skills with integrated API and CLI support.

🎯 Target Audience

AI developers looking to manage skills for Claude.Data scientists needing a user-friendly interface for skill management.Software engineers integrating AI capabilities into applications.Technical project managers overseeing AI projects.Educators teaching AI concepts using Claude.

πŸ€– AI Roast: β€œPowerful, but the setup might scare off the impatient.”

Security AnalysisMedium Risk

Risk: Medium. Review: shell/CLI command execution; outbound network access (SSRF, data egress); filesystem read/write scope and path traversal; dependency pinning and supply-chain risk. Run with least privilege and audit before enabling in production.

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.

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.md
└── .vscode/                  # VS Code configuration
    β”œβ”€β”€ settings.json
    └── launch.json

Setup

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

Running the API Server

python skills_manager_api.py

Opens 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.py

Development

Key Files to Edit

| File | Purpose | |------|---------| | skills-manager.html | Frontend UI (vanilla JS, Tailwind CSS, Lucide icons) | | skills_manager_api.py | Backend REST API (Flask) | | server.py | MCP server for Claude Desktop integration | | skills_manager_app.py | Standalone app (combines API + launcher for .exe) |

API Endpoints

| Method | Endpoint | Description | |--------|----------|-------------| | GET | /api/skills | List all skills | | GET | /api/skills/<name> | Get skill details | | POST | /api/skills | Create new skill | | PUT | /api/skills/<name> | Update skill | | DELETE | /api/skills/<name> | Delete skill | | POST | /api/import/folder | Import skill from folder path | | POST | /api/import/json | Import files via JSON | | GET | /api/browse?path= | Browse filesystem | | GET | /api/claude/status | Check Claude CLI availability | | POST | /api/claude/run | Run Claude with prompt | | POST | /api/claude/generate-skill | 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 filesystem
    • importSelectedFolder() - Copy folder to skills/
    • uploadFiles() - Upload files as new skill
    • generateSkill() - AI skill generation
    • runConsoleCommand() - 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.py

Output: 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/Bbeie/skills-mcp/server.py"] } } }

MCP Tools (for Claude)

The MCP server exposes these tools to Claude:

| Tool | Description | |------|-------------| | list_skills() | List all available skills | | get_skill(name) | Load a skill's SKILL.md content | | search_skills(query) | Search skills by metadata | | search_content(query) | Full-text search across all skills | | get_skills_batch([...]) | Load multiple skills at once | | reload_index() | Refresh skill index | | validate_skills() | 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)
5-Dim Analysis
Clarity8/10
Novelty7/10
Utility9/10
Completeness8/10
Maintainability7/10
Pros & Cons

Pros

  • User-friendly web interface for skill management.
  • Supports both API and CLI for flexibility.
  • Markdown-based skills allow easy customization.

Cons

  • Initial setup requires multiple components.
  • Lacks confirmation prompts for critical actions.
  • Known issues with folder browsing and file uploads.

Related Skills

pytorch

S
toolCode Lib
92/ 100

β€œIt's the Swiss Army knife of deep learning, but good luck figuring out which of the 47 installation methods is the one that won't break your system.”

agno

S
toolCode Lib
90/ 100

β€œIt promises to be the Kubernetes for agents, but let's see if developers have the patience to learn yet another orchestration layer.”

nuxt-skills

S
toolCo-Pilot
90/ 100

β€œIt's essentially a well-organized cheat sheet that turns your AI assistant into a Nuxt framework parrot.”

Disclaimer: This content is sourced from GitHub open source projects for display and rating purposes only.

Copyright belongs to the original author Bbeierle12.