About genius-mcp-server
genius-mcp-server connects MCP clients to the Genius API for searching songs, artists, and pages and retrieving song or artist details. It is for applications that need read access to Genius content through MCP tools, resources, and a reusable prompt.
Key features
- 01Search songs, artists, and pages
- 02List an artist’s songs
- 03Retrieve song details by ID
- 04Retrieve artist details by ID
- 05Reusable Genius search prompt
Use cases
- 01Find songs or artists by query
- 02List tracks for a known artist
- 03Look up a song or artist by ID
MCP support
Exposes Genius search and artist-song listing as tools, song and artist details as resources, and a search prompt to MCP clients. It communicates with clients over stdio.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
Tools
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project READMEgenius-mcp-server
Un servidor Model Context Protocol (MCP) para interactuar con la API de Genius. Permite a las aplicaciones cliente MCP (como Claude for Desktop o VS Code GitHub Copilot) buscar letras, artistas y obtener detalles de canciones/artistas desde Genius.com.
Características
Este servidor MCP expone las siguientes funcionalidades de la API de Genius:
- Herramientas (Tools): Permiten a los LLMs ejecutar acciones o buscar información.
genius-search: Busca canciones, artistas o páginas web por un término dado.genius-list-artist-songs: Lista canciones de un artista específico por su ID.
- Recursos (Resources): Permiten a los clientes o LLMs acceder a datos específicos.
genius-song: Obtiene detalles de una canción por su ID (URI templategenius://songs/{id}).genius-artist: Obtiene detalles de un artista por su ID (URI templategenius://artists/{id}).
- Prompts (Prompts): Plantillas reutilizables para iniciar interacciones comunes.
genius-search-prompt: Un prompt básico para iniciar una búsqueda en Genius.
Requisitos
- Node.js (versión 16 o superior) instalado.
- npm (viene con Node.js) o uv instalado.
- Una API Key de Genius (Client Access Token) para acceder a la API.
Obtener una API Key de Genius
- Visita la página de Genius API Client management.
- Crea un nuevo API client si no tienes uno.
- Haz clic en "Generate Access Token" para obtener tu Client Access Token. Este token solo permite acceso de lectura a endpoints públicos, que es suficiente para las herramientas y recursos implementados en este servidor básico.
- Guarda este token de forma segura. No lo compartas públicamente.
Instalación y Ejecución con npx
La forma más fácil de ejecutar este servidor es usando npx. npx descargará y ejecutará el servidor directamente desde npm sin necesidad de instalación global.
-
Abre tu terminal o línea de comandos.
-
Establece tu API Key de Genius como una variable de entorno. Reemplaza
TU_CLIENT_ACCESS_TOKEN_AQUIcon tu clave real.# En MacOS / Linux (bash, zsh, etc.) export GENIUS_CLIENT_ACCESS_TOKEN=TU_CLIENT_ACCESS_TOKEN_AQUI # En Windows (Command Prompt) set GENIUS_CLIENT_ACCESS_TOKEN=TU_CLIENT_ACCESS_TOKEN_AQUI # En Windows (PowerShell) $env:GENIUS_CLIENT_ACCESS_TOKEN="TU_CLIENT_ACCESS_TOKEN_AQUI" -
Ejecuta el servidor usando
npxy tu nombre de paquete (asegúrate de que sea el nombre correcto que usaste enpackage.jsonal publicar):npx -y genius-mcp-server # Usando el nombre de paquete 'genius-mcp-server' como ejemploEl servidor se iniciará y esperará conexiones de clientes MCP a través de stdio. Verás mensajes de inicialización en tu terminal (en stderr).
Para detener el servidor, presiona
Ctrl+C.
Configuración con Clientes MCP
Para usar este servidor con una aplicación cliente MCP como Claude for Desktop, necesitas configurar el cliente para que lance tu servidor usando npx y pase la API Key de Genius como variable de entorno.
Aquí tienes un ejemplo para Claude for Desktop:
-
Abre el archivo de configuración de Claude Desktop:
- macOS/Linux:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.jsonSi no existe, créalo.
- macOS/Linux:
-
Añade una entrada para tu servidor en la sección
mcpServers. ¡ReemplazaTU_CLIENT_ACCESS_TOKEN_AQUIcon tu clave real!{ "mcpServers": { "genius-api": { // Nombre que aparecerá en la interfaz de Claude "command": "npx", "args": [ "-y", "genius-mcp-server" // <-- El nombre de tu paquete publicado en npm ], "env": { "GENIUS_ACCESS_TOKEN": "TU_CLIENT_ACCESS_TOKEN_AQUI" // Pasa la clave como variable de entorno } } } }Nota de seguridad: Pasar secretos como variables de entorno en archivos de configuración puede no ser la opción más segura si otras aplicaciones tienen acceso a esos archivos o procesos. Algunos clientes MCP (como VS Code Copilot) pueden ofrecer mecanismos de gestión de secretos más seguros. Para Claude Desktop con
claude_desktop_config.json, esta es la forma común. -
Guarda el archivo
claude_desktop_config.jsony reinicia completamente Claude for Desktop. -
Una vez reiniciado, busca los iconos de MCP, en la interfaz de Claude. Tu servidor "Genius API" debería aparecer, listando las herramientas y recursos disponibles. Los prompts pueden aparecer como comandos de barra diagonal (
/).
Cómo Usar el Servidor con un LLM (Ejemplo con Claude)
Una vez que el servidor esté conectado a tu cliente MCP (ej. Claude), el LLM podrá usar las herramientas y acceder a los recursos.
- Buscar: Pregunta a Claude algo como:
- "Find songs by Taylor Swift on Genius."
- "Search Genius for the song 'Lose Yourself'."
- "Look up the artist Kendrick Lamar on Genius."
Claude debería reconocer la intención de búsqueda y pedirte aprobación para usar la herramienta
genius-search.
- Obtener detalles de Canción/Artista: Para usar los recursos
genius-songogenius-artist, el LLM o el cliente necesitarán saber el ID numérico (obtenido previamente con una búsqueda, por ejemplo). La forma en que un LLM solicita leer un recurso depende de la implementación del cliente. Podrías necesitar una herramienta adicional que tome un ID y genere un prompt para el LLM incluyendo el contenido del recurso, o un cliente que tenga una UI para explorar recursos. - Usar el Prompt de Búsqueda: Si tu cliente soporta prompts como comandos de barra diagonal, puedes intentar escribir
/genius-search-promptpara generar el prompt predefinido.
Desarrollo Local
Si quieres modificar o contribuir al servidor:
- Clona el repositorio.
- Instala dependencias:
npm install - Crea un archivo
.enven la raíz con tu Client Access Token:GENIUS_ACCESS_TOKEN=TU_CLAVE. - Compila el código TypeScript:
npm run build - Ejecuta localmente (con la variable de entorno configurada en tu terminal):
npm startonpm run dev(para compilar y ejecutar).
Contribución
¡Las contribuciones son bienvenidas! Siéntete libre de abrir issues o pull requests en el repositorio para mejorar este servidor (añadir más endpoints, manejar User Access Tokens/OAuth, etc.).
Licencia
Este proyecto está licenciado bajo la licencia ISC.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.