¡Hola developer 👋🏻! En este repositorio encontrarás ejemplos prácticos de cómo crear servidores MCP (Model Context Protocol) y usarlos con GitHub Copilot Chat. Aprenderás a implementar tanto el transporte stdio como el transporte remoto (SSE) para integrar servicios externos con modelos de lenguaje.
- ¿Qué es Model Context Protocol?
- Componentes del MCP
- Características
- Tecnologías
- Requisitos Previos
- Instalación
- Uso
- Estructura del Proyecto
- MCP Inspector
- Contribuir
- Sígueme
Model Context Protocol (MCP) es un protocolo que permite a los modelos de lenguaje interactuar con otros sistemas y servicios a través de un conjunto de APIs estandarizadas. Esto permite a los modelos de lenguaje acceder a información externa y realizar acciones en otros sistemas, lo que amplía su funcionalidad y utilidad. En la documentación oficial se compara con un USB-C, que permite conectar diferentes dispositivos y sistemas.
- MCP Server: Es el servidor que implementa el protocolo y permite a los modelos de lenguaje interactuar con otros sistemas y servicios. El MCP Server actúa como intermediario entre el modelo de lenguaje y los sistemas externos.
- MCP Client: Es el cliente que se conecta al MCP Server y envía solicitudes para interactuar con otros sistemas y servicios. El MCP Client puede ser un modelo de lenguaje o cualquier otro sistema que necesite interactuar con el MCP Server. Este puede ser la aplicación de escritorio de Claude o un IDE como Visual Studio Code y GitHub Copilot Chat 😃.
- 🎥 Integración con YouTube API: Buscar canales de YouTube y obtener información detallada
- 🔄 Dos implementaciones de transporte: stdio para uso local y SSE para uso remoto
- 🛠️ Servidor MCP completo: Implementación funcional del protocolo Model Context Protocol
- 🎯 Ejemplos prácticos: Código listo para usar y adaptar a tus necesidades
- 🤖 Compatible con GitHub Copilot Chat: Integración directa con tu IDE favorito
- 📝 Código TypeScript: Tipado estático para mayor seguridad y mejor experiencia de desarrollo
- Node.js - Runtime de JavaScript
- TypeScript - Superset tipado de JavaScript
- @modelcontextprotocol/sdk - SDK oficial del protocolo MCP
- Google APIs - Cliente oficial de YouTube API v3
- Express - Framework web para el servidor remoto (mcp-remote)
- dotenv - Gestión de variables de entorno
- Zod - Validación de esquemas
- Node.js v18.0.0 o superior
- npm o yarn instalado
- YouTube API Key - Puedes obtener una desde Google Cloud Console
- GitHub Copilot Chat (opcional) - Para probar la integración con VS Code
Este servidor implementa el transporte stdio y permite interactuar con el modelo de lenguaje a través de la entrada y salida estándar.
git clone https://github.com/0GiS0/youtube-mcp-server.git
cd youtube-mcp-server/mcp-stdionpm installcp .env-sample .envEdita el archivo .env y añade tu API Key de YouTube:
YOUTUBE_API_KEY=tu_api_key_aquinpm run buildEste servidor implementa el transporte SSE (Server-Sent Events) y permite interactuar con el modelo de lenguaje a través de eventos del servidor.
git clone https://github.com/0GiS0/youtube-mcp-server.git
cd youtube-mcp-server/mcp-remotenpm installcp .env-sample .envEdita el archivo .env y añade tu API Key de YouTube:
YOUTUBE_API_KEY=tu_api_key_aquinpm run build
npm startEl servidor estará disponible en http://localhost:3000
Para usar estos servidores MCP con GitHub Copilot Chat, necesitas configurarlos en tu archivo de configuración de MCP.
- Abre la configuración de GitHub Copilot Chat
- Agrega la configuración del servidor MCP stdio en tu archivo de configuración
- Asegúrate de que el servidor esté corriendo (
npm start) - Configura GitHub Copilot Chat para conectarse al endpoint del servidor
- El servidor expone las herramientas MCP a través de HTTP
El servidor MCP incluye la herramienta get_youtube_channel que permite:
- Buscar canales de YouTube por nombre
- Obtener información detallada del canal
- Acceder a estadísticas y metadatos
Ejemplo de uso en el chat:
"Busca el canal de YouTube @0GiS0"
El MCP Server procesará la solicitud y devolverá información del canal usando la YouTube API.
youtube-mcp-server/
├── mcp-stdio/ # Servidor MCP con transporte stdio
│ ├── src/
│ │ └── index.ts # Implementación del servidor stdio
│ ├── .env-sample # Ejemplo de variables de entorno
│ ├── package.json # Dependencias del proyecto
│ └── tsconfig.json # Configuración de TypeScript
├── mcp-remote/ # Servidor MCP con transporte SSE
│ ├── src/
│ │ └── index.js # Implementación del servidor remoto
│ ├── .env-sample # Ejemplo de variables de entorno
│ ├── Dockerfile # Configuración para Docker
│ ├── package.json # Dependencias del proyecto
│ └── tsconfig.json # Configuración de TypeScript
├── images/ # Recursos gráficos
└── README.md # Este archivo
Para probar un servidor MCP puedes hacerlo usando directamente el Chat de GitHub Copilot, pero hay veces que es más sencillo usar MCP Inspector. Esta herramienta te permite inspeccionar y probar las herramientas del servidor de forma interactiva.
Para lanzarlo, usa este comando:
npx @modelcontextprotocol/inspectorNota: El Inspector MCP te permite probar las herramientas del servidor, ver los esquemas de entrada/salida y depurar el comportamiento del servidor antes de integrarlo con tu cliente MCP.
Las contribuciones son bienvenidas. Por favor:
- Fork el repositorio
- Crea una rama para tu feature (
git checkout -b feature/AmazingFeature) - Commit tus cambios (
git commit -m 'Add some AmazingFeature') - Push a la rama (
git push origin feature/AmazingFeature) - Abre un Pull Request
Si te ha gustado este proyecto y quieres ver más contenido como este, no olvides suscribirte a mi canal de YouTube y seguirme en mis redes sociales: