Skills MCP Server
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., "@Skills MCP Serverfind a skill for writing clean git commit messages"
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 MCP Server
An MCP (Model Context Protocol) server that exposes your Claude Skills library as a discoverable, searchable, and composable skill registry. Designed for seamless integration with Tasklet (via HTTP/SSE) and local MCP hosts like OpenCode, Claude Desktop, and Cursor (via STDIO).
Background and Motivation
AI agent environments like Tasklet require configuring custom skills and prompts manually through their UI, typically one skill at a time. When managing a rich personal library of 100 to 200+ specialized engineering skills, adding them individually by hand is tedious, slow, and impossible to maintain as instructions evolve.
Furthermore, dumping dozens of skills directly into an agent's static context or system prompt wastes thousands of tokens per turn and causes prompt dilution.
This MCP server was built to eliminate that bottleneck:
Zero Manual Copy-Pasting: Point the server at your existing local skills folder and all skills are immediately available.
On-Demand Retrieval: Models dynamically search (
search_skills) and load (get_skill) only the relevant skill instructions when a task calls for them, keeping context windows lean.Universal Portability: By implementing the standard Model Context Protocol (MCP SDK 2.2.0), the same local skills library can be accessed across Tasklet, Claude Desktop, Claude.ai Web, Cursor, Windsurf, and CLI agents.
Related MCP server: Skillz
Architecture Overview
┌─────────────────────────────────────────────────────────────────────┐
SKILL SOURCE (Canonical)
Local Skills Directory (~/.claude/skills)
│
┌───────────────┴───────────────┐
▼ ▼
┌─────────────┐ ┌─────────────┐
│ LOCAL MODE │ │ REMOTE MODE │
│ (STDIO) │ │ (HTTP+SSE) │
└──────┬──────┘ └──────┬──────┘
│ │
┌──────┴──────┐ ┌──────┴──────┐
▼ ▼ ▼ ▼
OpenCode Claude Desktop Tasklet Other MCP
Cursor Other Local Cloud Hosts
Hosts Hosts AgentFeatures
Dynamic Discovery: Automatically finds all skills in your skills directory
Smart Search: Natural language search across names, descriptions, tags, triggers, and categories
Multi-Skill Loading: Retrieve multiple skills at once for complex tasks
Profiles/Bundles: Composable skill profiles for common workflows (product-builder, senior-engineer, researcher, designer)
MCP Native: Full support for Tools, Resources, and Prompts
Dual Transport: STDIO for local, HTTP+SSE for remote (Tasklet)
Secure: Optional Bearer token auth for remote deployments
No Duplication: Reads your existing skills in-place; no copying required
Configuring Your Skills Directory
You can point the server to any local directory containing skills:
Windows:
C:\Users\<username>\.claude\skillsorD:\projects\my-skillsmacOS:
/Users/<username>/.claude/skillsLinux:
/home/<username>/.claude/skills
There are three ways to configure your skills path:
Command Line Flag (simplest):
python -m src.server --skill-root "path/to/your/skills"Configuration File (
config.json):{ "skill_root": "/path/to/your/skills", "profile_dir": "profiles", "port": 8080 }Environment Variable (
.envor shell):export SKILL_ROOT="/path/to/your/skills"
Client Setup
1. Claude Desktop (Local STDIO)
Add to %APPDATA%\Claude\claude_desktop_config.json (Windows) or ~/Library/Application Support/Claude/claude_desktop_config.json (macOS):
{
"mcpServers": {
"skills": {
"command": "python",
"args": [
"-m", "src.server",
"--transport", "stdio",
"--skill-root", "C:\\Users\\<username>\\.claude\\skills"
],
"cwd": "L:\\My Innovations\\Skills_MCP_Server"
}
}
}Restart Claude Desktop. All 10 skills tools are immediately available in chats.
2. Claude Browser Version (Claude.ai Web)
Because Claude.ai runs in the cloud, it cannot directly reach localhost:8080 on your physical workstation. Connect it via a secure SSE tunnel:
Step 1: Start the HTTP server pointing to your skills folder
cd L:\My Innovations\Skills_MCP_Server
python -m src.server --transport http --host 0.0.0.0 --port 8080 --skill-root "C:\Users\<username>\.claude\skills"Step 2: Expose the server to the internet using an SSH tunnel Run in a separate terminal:
ssh -R 80:localhost:8080 tinyfi.sh(Alternatively, use ngrok http 8080 or Cloudflare Tunnel).
This outputs a public URL: https://<tunnel-id>.tinyfi.sh.
Step 3: Connect inside Claude.ai (Browser)
Open Claude.ai in your browser.
Go to Settings -> Integrations / Connectors (or MCP settings).
Click Add Remote MCP Server.
Fill in the connection settings:
Name:
my-skillsTransport:
SSEURL:
https://<tunnel-id>.tinyfi.sh/mcp/sseAuthorization Header:
Bearer <AUTH_TOKEN>(if auth is enabled)
Save. Claude in your web browser now has direct access to your local skills library.
3. Cursor & Windsurf
In Cursor Settings -> Features -> MCP -> Add New MCP Server:
Type:
commandCommand:
python -m src.server --transport stdio --skill-root "C:\path\to\skills"Working Directory:
L:\My Innovations\Skills_MCP_Server
4. Antigravity IDE / Gemini IDE
Add to your workspace mcp_config.json:
{
"mcpServers": {
"skills": {
"command": "python",
"args": ["-m", "src.server", "--transport", "stdio", "--skill-root", "C:\\path\\to\\skills"],
"cwd": "L:\\My Innovations\\Skills_MCP_Server"
}
}
}MCP Capabilities
Tools
Tool | Purpose |
| Browse skill catalog with pagination & category filter |
| Natural language search for relevant skills |
| Load full instructions for a single skill |
| Batch load multiple skills efficiently |
| List available skill profiles/bundles |
| View profile definition and resolved skills |
| Get flat list of skill IDs from a profile (supports stages) |
| Reload registry after adding/removing skills |
| List all skill categories |
| Registry statistics |
Resources
URI Pattern | Description |
| Complete skill catalog as JSON |
| All categories with counts |
| Full skill content as Markdown |
| Supporting files (references, data) |
Prompts
Prompt | Purpose |
| Load single skill with optional context |
| Load multiple skills with clear boundaries |
| Load entire profile (resolves nested profiles) |
| Get AI recommendations for a task description |
Usage Examples
Agent Workflow: "Design a polished SaaS dashboard"
# 1. Agent searches for relevant skills
results = search_skills("design polished dashboard ui ux")
# → Returns: ui-ux-pro-max, impeccable, choosing-design-styles, design-consultation
# 2. Agent loads top matches
skills = get_skills(["ui-ux-pro-max.ui-ux-pro-max", "impeccable.impeccable", ...])
# → Returns full instructions for each skill, clearly separated
# 3. Agent applies combined expertise to the taskAgent Workflow: "Build a secure production API"
# Use profile for structured workflow
profile = resolve_profile("senior-engineer")
# → Returns: [investigate, diagnose, plan-eng-review, ponytail, tdd, review, cso, ...]
# Or load specific stages
research_skills = resolve_profile("product-builder", stage="research")
impl_skills = resolve_profile("product-builder", stage="implementation")Using Profiles
# profiles/product-builder.yaml
name: product-builder
stages:
research:
- research
- research-deep
design:
- ui-ux-pro-max
- impeccable
implementation:
- ponytail
- tdd
validation:
- qa
- reviewConfiguration
Environment Variables
Variable | Description | Default |
| Path to skills directory |
|
| Profiles directory |
|
|
|
|
| HTTP bind address |
|
| HTTP port |
|
| Log level |
|
| Bearer token for HTTP auth | (none) |
Config File (config.json)
{
"skill_root": "C:\\Users\\rajpr\\.claude\\skills",
"profile_dir": "profiles",
"transport": "stdio",
"host": "0.0.0.0",
"port": 8080,
"log_level": "INFO",
"auth_token": null
}Adding Skills
Simply add a new directory under C:\Users\rajpr\.claude\skills\ with a SKILL.md file:
skills/
my-new-skill/
SKILL.md # Required: frontmatter + instructions
references/ # Optional: supporting files
guide.md
data.jsonThen call refresh_skills tool or restart the server.
Skill Frontmatter Example:
---
name: my-skill
description: What this skill does
category: ui-ux
version: "1.0.0"
tags: [design, components]
triggers: ["design a button", "create component"]
allowed-tools: [Read, Write, Bash]
license: MIT
---
# My Skill
Instructions here...Adding Profiles
Create a YAML file in profiles/:
# profiles/my-workflow.yaml
name: my-workflow
description: My custom workflow
skills:
- skill-one
- skill-two
profiles:
- other-profile # Nested profile
stages:
phase1:
- skill-one
phase2:
- skill-twoRemote Deployment Architecture
For Tasklet (Cloud)
Since Tasklet runs in the cloud, it cannot access your local Windows filesystem. The remote server must have access to the skill content.
Recommended Approach:
Git-backed skills: Push
C:\Users\rajpr\.claude\skillsto a private Git repoCI/CD sync: On push, CI builds Docker image with skills embedded OR deploys to server that clones the repo
Server mounts: Docker volume or persistent disk with skills content
Git Repo (skills) → CI/CD → Docker Image → Cloud Run / K8s / VM
↓
Tasklet connectsDocker with Embedded Skills:
# In Dockerfile, copy skills at build time
COPY skills/ /skills/Or Runtime Sync (for frequent updates):
# In container startup script
git clone https://github.com/you/skills.git /skills
# Then run server with SKILL_ROOT=/skillsAuthentication
Always use AUTH_TOKEN for remote deployments:
# Generate secure token
python -c "import secrets; print(secrets.token_urlsafe(32))"
# Set in environment
export AUTH_TOKEN="generated-token-here"Tasklet connection must include: Authorization: Bearer <token>
Testing
# Run all tests
cd L:\My Innovations\Skills_MCP_Server
pytest tests/ -v
# Run specific test file
pytest tests/test_registry.py -v
pytest tests/test_search.py -v
pytest tests/test_profiles.py -v
pytest tests/test_server.py -vMCP Inspector Validation
# Install inspector
npm install -g @modelcontextprotocol/inspector
# Test STDIO mode
npx @modelcontextprotocol/inspector python -m src.server --transport stdio
# Test HTTP mode (in separate terminal)
python -m src.server --transport http --port 8080
# Then in inspector: connect to http://localhost:8080/mcp/sseTroubleshooting
Issue | Solution |
"No skills found" | Check |
"Connection refused" | Verify server is running, port accessible, firewall allows traffic |
"401 Unauthorized" | Check |
"Skill not found" | Run |
"Circular dependency" | Check profile YAML for circular |
STDIO: garbled output | Ensure no |
Security Considerations
Never expose HTTP without auth in production
Use HTTPS behind reverse proxy (nginx, Caddy, Cloudflare Tunnel)
Restrict network access to authorized client IPs only
Read-only skill mount (
:roin Docker)No arbitrary code execution: server only reads skill files
Future Extensibility
The architecture supports adding without rewrite:
Git-based skill sources (remote repos)
Semantic/vector search (embeddings)
Skill versioning & dependencies
Multi-user permissions
Skill marketplace
OAuth/OIDC integration
Multi-repository aggregation
License
MIT: See individual skill licenses in their respective directories.
This server cannot be deployed
Maintenance
Related MCP Connectors
Search and discover Agent Skills from the skills.sh registry. Powered by HAPI MCP server.
Search verified Claude Code plugins and skills; fetch portable SKILL.md sources. Read-only.
A registry of 5,900+ peer-authored skills any MCP agent can search and load on demand.
Governed AI agent skills — one library, distributed to devs and exposed to remote agents over MCP.
Related MCP Servers
- AlicenseAqualityCmaintenanceConverts AI Skills (following Claude Skills format) into MCP server resources, enabling LLM applications to discover, access, and utilize self-contained skill directories through the Model Context Protocol. Provides tools to list available skills, retrieve skill details and content, and read supporting files with security protections.327Apache 2.0
- AlicenseNot gradedqualityDmaintenanceTurns Claude-style skills (SKILL.md files with resources) into callable MCP tools for any agent. Discovers skills from a directory, exposes their instructions and resources, and can execute bundled helper scripts.162 PyPI401MIT
- 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.MIT
- 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