skills-mcp-server
skills-mcp-server
Un servidor MCP (Model Context Protocol) de alto rendimiento que expone un catálogo de más de 1300 habilidades de IA mediante búsqueda clasificada por BM25, metadatos estructurados y respuestas eficientes en cuanto a contexto.
Creado para resolver un problema: miles de habilidades destruyen tu ventana de contexto. Este servidor las indexa, las clasifica y sirve solo lo que necesitas.
┌────────────────────────────────────────────────────────────┐
│ IDE / AI Client │
│ (Claude, Cursor, Gemini, Copilot, Windsurf, ...) │
│ │
│ "find me a skill for React dashboards" │
└──────────────────────┬─────────────────────────────────────┘
│ MCP Protocol
▼
┌────────────────────────────────────────────────────────────┐
│ skills-mcp-server │
│ │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ Indexer │ │ BM25 │ │ 6 MCP │ │
│ │ 1300+ │──│ Search │──│ Tools │ │
│ │ skills │ │ Engine │ │ │ │
│ └──────────┘ └──────────┘ └──────────┘ │
│ │
│ Transports: stdio | HTTP/SSE | AWS Lambda │
└────────────────────────────────────────────────────────────┘Características
Búsqueda clasificada por BM25 — No es coincidencia de palabras clave. Puntuación de relevancia real con ponderación de campos (nombre 3x, descripción 2x, etiquetas 2x, cuerpo 1x)
Eficiente en contexto — Lee metadatos de habilidades (~500 caracteres), resumen (~2K caracteres) o contenido completo (limitado a 25K caracteres). Tú controlas cuánto contexto gastar
Metadatos estructurados — Frontmatter YAML analizado en campos tipados: nombre, descripción, etiquetas, categoría, riesgo, autor, herramientas
Paginación en todas partes — Cada herramienta de lista/búsqueda admite
offsetylimit3 modos de transporte — stdio para IDEs locales, HTTP/SSE para acceso remoto, AWS Lambda para serverless
Inicio rápido — Más de 1300 habilidades indexadas en ~1.5 segundos. ~3MB de huella de memoria (frente a 65MB en bruto)
6 herramientas especializadas — Explorar, listar, buscar, leer, inspeccionar, actualizar
Inicio rápido
Requisitos previos
Node.js 18+
El directorio
skills/con archivos SKILL.md (ver Formato de habilidad)
Instalación y compilación
git clone https://github.com/LucasRomanzin/skills-mcp-server.git
cd skills-mcp-server
npm install
npm run buildEjecutar localmente (stdio)
node dist/index.jsEjecutar como servidor HTTP (SSE)
node dist/http.js
# Server starts on http://localhost:3000
# MCP endpoint: http://localhost:3000/mcp
# Health check: http://localhost:3000/healthHerramientas MCP
skills_browse_categories
Lista todas las categorías de habilidades con sus conteos. Usa esto primero.
Input: { response_format?: "markdown" | "json" }
Output: Table with 9 categories and skill countsskills_search
Búsqueda de texto completo clasificada por BM25 a través de nombres, descripciones, etiquetas y contenido.
Input: { query: string, category?: string, risk?: string, offset?: 0, limit?: 10 }
Output: Ranked results with name, description, category, tags, scoreskills_list_by_category
Lista las habilidades dentro de una categoría específica con paginación.
Input: { category: string, offset?: 0, limit?: 20 }
Output: Paginated skill list with metadataskills_read
Lee el contenido de la habilidad con control de contexto.
Input: { slug: string, section?: "metadata" | "summary" | "full", file?: string }
section="metadata" → ~500 chars (frontmatter fields + file list)
section="summary" → ~2500 chars (metadata + first 2000 chars of body)
section="full" → up to 25000 chars (complete content, truncated if larger)skills_inspect
Obtén metadatos estructurados para múltiples habilidades + habilidades relacionadas por superposición de etiquetas.
Input: { slugs: string[] (1-10), response_format?: "json" }
Output: Metadata + related_skills for each slugskills_refresh_index
Reconstruye el índice en memoria después de añadir/eliminar/modificar habilidades en el disco.
Input: {}
Output: Previous count, new count, durationConfiguración del IDE
Claude Desktop / Claude Code
{
"mcpServers": {
"skills": {
"command": "node",
"args": ["/path/to/skills-mcp-server/dist/index.js"],
"env": {
"SKILLS_DIR": "/path/to/skills-mcp-server/skills"
}
}
}
}Remoto (HTTP/SSE) — Cursor, VS Code, cualquier cliente MCP
{
"mcpServers": {
"skills": {
"url": "http://localhost:3000/mcp"
}
}
}AWS Lambda (después de desplegar)
{
"mcpServers": {
"skills": {
"url": "https://<function-url-id>.lambda-url.<region>.on.aws/mcp"
}
}
}Consulta docs/SETUP.md para obtener guías de configuración paso a paso completas para todos los modos e IDEs.
Modos de despliegue
Modo | Comando | Caso de uso | Streaming SSE |
stdio |
| IDEs locales (Claude, Cursor, Gemini CLI) | N/A |
HTTP |
| Servidor de desarrollo, EC2, VPS, Docker | Sí |
Lambda | SAM deploy | Serverless, auto-escalado, pago por uso | Sí (streaming de respuesta) |
Formato de habilidad
Cada habilidad es un directorio bajo skills/ que contiene al menos un archivo SKILL.md con frontmatter YAML:
skills/
├── CATALOG.md # Category-to-skill mapping (auto-generated)
├── my-skill/
│ ├── SKILL.md # Required: frontmatter + content
│ ├── references/ # Optional: additional .md files
│ └── scripts/ # Optional: helper scriptsEstructura de SKILL.md
---
name: my-skill
description: What this skill does in one sentence.
tags:
- react
- dashboard
- frontend
risk: safe
source: community
author: your-name
tools:
- claude-code
- cursor
---
# My Skill
## Overview
...
## When to Use This Skill
...Campos de Frontmatter
Campo | Tipo | Requerido | Descripción |
| string | Sí | Identificador de la habilidad |
| string | Sí | Descripción de una línea |
| string[] | No | Palabras clave buscables |
| enum | No |
|
| string | No | Origen ( |
| string | No | Nombre del creador |
| string[] | No | Herramientas de IA compatibles |
Arquitectura
src/
├── index.ts # stdio entry point
├── http.ts # Express HTTP/SSE entry point
├── lambda.ts # AWS Lambda handler
├── server.ts # McpServer factory (shared)
├── constants.ts # CHARACTER_LIMIT, pagination defaults
├── types.ts # TypeScript interfaces
├── indexer.ts # Frontmatter parser + skill index builder
├── catalog.ts # CATALOG.md parser → category mapping
├── search.ts # BM25 scoring engine
├── tools/
│ ├── browse.ts # skills_browse_categories
│ ├── list.ts # skills_list_by_category
│ ├── search.ts # skills_search
│ ├── read.ts # skills_read
│ ├── inspect.ts # skills_inspect
│ └── refresh.ts # skills_refresh_index
└── utils/
├── frontmatter.ts # gray-matter wrapper + tag normalization
├── format.ts # Markdown/JSON response formatters
├── truncate.ts # CHARACTER_LIMIT enforcement
└── paginate.ts # Generic paginationMotor de búsqueda
La implementación de BM25 indexa cada habilidad como un documento ponderado:
Campo | Peso | Ejemplo |
| 3x | "react-patterns" repetido 3 veces |
| 2x | "Modern React patterns..." repetido 2 veces |
| 2x | "react frontend hooks" repetido 2 veces |
| 1x | "development" |
| 1x | Primeros 500 caracteres del cuerpo |
La puntuación utiliza BM25 con k1=1.5, b=0.75. Los resultados se ordenan por puntuación de relevancia descendente.
Rendimiento: la búsqueda en más de 1300 habilidades se completa en <10ms.
Variables de entorno
Variable | Predeterminado | Descripción |
|
| Ruta al directorio de habilidades |
|
| Puerto del servidor HTTP (solo http.ts) |
Stack tecnológico
TypeScript — Modo estricto, ESM
MCP SDK v1.29+ —
StreamableHTTPServerTransport,WebStandardStreamableHTTPServerTransportgray-matter — Análisis de frontmatter YAML
Zod — Esquemas de validación de entrada
BM25 — Implementación personalizada (~80 líneas), cero dependencias externas
Licencia
MIT
This server cannot be installed
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/LucasRomanzin/skills-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server