Poke-MCP
Obtiene datos de Pokémon desde la PokeAPI y los expone a través de una interfaz MCP estandarizada.
Documentación
Resumen
Poke-MCP es un servidor de Protocolo de Contexto de Modelo (MCP) que proporciona información de Pokémon a través de una interfaz estandarizada. Se conecta a la PokeAPI para obtener datos de Pokémon y los expone a través de herramientas MCP que pueden ser utilizadas por cualquier cliente compatible con MCP, como Claude Desktop App, Continue, Cline y otros.
Este servidor ahora admite transporte HTTP mediante Server-Sent Events (SSE) para comunicación en tiempo real, lo que lo hace accesible a través de HTTP en lugar de solo stdio.
Características
- Obtener información sobre Pokémon específicos por nombre
- Descubrir Pokémon aleatorios
- Encontrar Pokémon aleatorios de regiones específicas (Kanto, Johto, Hoenn, etc.)
- Obtener Pokémon aleatorios de tipos específicos (Fuego, Agua, Eléctrico, etc.)
- Interfaz de consulta en lenguaje natural para información de Pokémon
Cómo Funciona
Poke-MCP está construido usando el Protocolo de Contexto de Modelo, que permite a las aplicaciones de IA acceder a herramientas externas y fuentes de datos de manera estandarizada. El servidor:
- Se conecta a la PokeAPI para obtener datos de Pokémon
- Expone varias herramientas a través de la interfaz MCP
- Procesa solicitudes de clientes MCP
- Devuelve información formateada de Pokémon
Herramientas MCP
El servidor proporciona las siguientes herramientas:
- get-pokemon: Obtener información detallada sobre un Pokémon específico por nombre
- random-pokemon: Obtener información sobre un Pokémon aleatorio
- random-pokemon-from-region: Obtener un Pokémon aleatorio de una región específica
- random-pokemon-by-type: Obtener un Pokémon aleatorio de un tipo específico
- pokemon-query: Responder consultas en lenguaje natural sobre Pokémon
Arquitectura
El servidor está construido usando:
- TypeScript
- SDK de TypeScript para MCP (@modelcontextprotocol/sdk)
- Zod para validación de entrada
- Transporte HTTP con Server-Sent Events (SSE) para comunicación MCP
- Servidor HTTP integrado de Node.js
Instalación
Instalación mediante Smithery
Para instalar Pokémcp para Claude Desktop automáticamente mediante Smithery:
npx -y @smithery/cli install @NaveenBandarage/poke-mcp --client claude
Instalación Manual
# Clone the repository
git clone https://github.com/yourusername/poke-mcp.git
cd poke-mcp
# Install dependencies
npm install
# Build the project
npm run build
Uso
Ejecutar el Servidor HTTP
Para iniciar el servidor en modo HTTP:
# Start the server (defaults to port 3000)
npm start
# Or specify a custom port
PORT=8080 npm start
El servidor estará disponible en:
- Endpoint de información:
http://127.0.0.1:3000/- Información del servidor y estado - Endpoint SSE:
http://127.0.0.1:3000/sse- Conexión Server-Sent Events para clientes MCP - Endpoint de mensajes:
http://127.0.0.1:3000/message- Endpoint POST para enviar mensajes MCP
Con Claude Desktop App (Transporte HTTP)
- Descargar e instalar Claude Desktop App
- Abrir la configuración de Claude Desktop
- Ir a la configuración de desarrollador y editar el archivo de configuración
- Agregar la siguiente configuración para transporte HTTP:
{
"mcpServers": {
"pokedex": {
"transport": {
"type": "sse",
"url": "http://127.0.0.1:3000/sse"
}
}
}
}
- Iniciar el servidor Poke-MCP:
npm start - Reiniciar Claude Desktop
- Ahora deberías ver las herramientas de Pokémon disponibles en Claude
Uso Heredado (stdio)
Para compatibilidad hacia atrás, aún puedes ejecutar el servidor con transporte stdio revirtiendo a la implementación stdio.
Ejemplos de Consultas
Una vez conectado a un cliente MCP, puedes hacer preguntas como:
- "Cuéntame sobre Pikachu"
- "Dame un Pokémon aleatorio"
- "Muéstrame un Pokémon aleatorio de Kanto"
- "¿Cuál es un Pokémon de tipo Agua aleatorio?"
Estructura del Proyecto
- src/index.ts: Implementación principal del servidor
- src/types.ts: Definiciones de tipos TypeScript para datos de Pokémon
- package.json: Dependencias y scripts del proyecto
- tsconfig.json: Configuración de TypeScript
Agregar Nuevas Características
Para agregar nuevas herramientas o mejorar las existentes:
- Definir nuevas funciones auxiliares para obtener y formatear datos
- Registrar nuevas herramientas usando el método server.tool()
- Implementar la lógica de la herramienta para manejar solicitudes y devolver respuestas
Licencia
ISC
Agradecimientos
- PokeAPI por proporcionar los datos de Pokémon
- Protocolo de Contexto de Modelo por la interfaz estandarizada
Este proyecto demuestra cómo construir servidores MCP personalizados que pueden extender los asistentes de IA con conocimientos y capacidades específicas de dominio.
