MCP vs Skills vs Instructions
(Awesomes github copilot - buena página para encontrar skills e instructions reutilizables)
MCP (Model Context Protocol)
Un MCP Server es un componente que implemente el protocolo MCP, un estándar abierto diseñado para conectar LLMs y agentes de IA con datos y herramientas externas de forma segura y estándar.
El MCP server expone el contexto que necesita e indica las acciones que el agente puede usar a demanda.
Dotan a los LLMs de capacidades adicionales permitiendo:
- Acceso a datos en tiempo real: conectar la IA a APIs, BBDD, archivos locales…
- Automatizaciones: permiten conectar un componente a tools externas para ejecutar acciones (ejecutar flujos, crear registros, aprobar procesos)
Sin esto, los LLMs por sí solos están limitados a sus datos de entrenamiento.
(ejemplo de consumo real de MCP de Github desde Cursor. Gracias a él Cursor puede modificar issues o crear/cerrar PRs)
{
"mcpServers": {
"github": {
"url": "https://api.githubcopilot.com/mcp/",
"headers": {
"Authorization": "Bearer github_pat_"
}
}
}
}
Componentes
MCP se compone de 3 partes:
- Host: es tu aplicación de IA. Claude Desktop, Cursor, etc. Es aquello que necesita conectarse a algo.
- Client: está dentro del host y administra conexiones MCP. Gestiona autenticación, hacer routing de requests al servidor correcto y administrar el ciclo de vida de la sesión.
- Server: expone una herramienta o data source a través de 3 primitivos
- Tools: Acciones que el modelo puede hacer
"Crea un ticket de JIRA" - Resources: Datos que el modelo puede leer
"Los últimos 50 mensajes de #IA" - Prompts: Templates reusables que combinan ambas para workflows comunes
"Resume la actividad de JIRA de hoy y crea un reporte"
- Tools: Acciones que el modelo puede hacer
Skills
Las skills son un estandar abierto que extiende lo que un agente es capaz de hacer con conocimiento y workflows especializados y reutilizables. Estas se cargan dinámicamente, generalmente en un SKILL.md y el propio agente decide cuando es necesario utilizarlas en base a la tarea que tiene entre manos.
Una vez declaradas el LLM puede decidir usarlas automáticamente o se pueden usar mediante /{nombre-skill} {opt-params}
(ejemplo de SKILL.md con Caveman, el cual reduce el número de tokens consumidos manteniendo la calidad de la respuesta)
