Tutoriales
Usa Modyard desde un agente
Claude puede buscar en Modyard, leer el código de un mod y publicar los tuyos, todo por MCP. Para leer no hace falta cuenta. Para publicar, una clave de API en Claude Code u OAuth en claude.ai y Claude Desktop.
3 min de lectura
Qué ofrece el endpoint
Modyard sirve un endpoint MCP en https://mods.gonzaloverdugo.com/mcp. Lo que puede hacer un agente depende de la credencial que lleve:
| Tool | Sin clave | Con clave de API |
|---|---|---|
modyard_search_mods | sí | sí |
modyard_get_mod | sí | sí |
modyard_get_mod_files | sí | sí |
modyard_list_my_mods | sí | |
modyard_publish_mod | sí |
Con las tres tools de lectura Claude encuentra mods, mira sus versiones y lo que pueden tocar, y lee cada fichero. Eso ya te sirve aunque no publiques nunca: puedes pedirle a Claude que revise un mod por ti antes de instalarlo.
Leer, sin cuenta
Añade el endpoint a Claude Code como servidor HTTP:
claude mcp add --transport http modyard https://mods.gonzaloverdugo.com/mcpY pregunta con normalidad, por ejemplo:
- "Busca en Modyard un mod que enseñe los comandos Bash en la línea de estado y que no use la red."
- "Lee todos los ficheros de bash-logger y explícame qué hace cada hook."
- "¿quiet-band reescribe o bloquea alguna llamada a herramienta? Cítame el código."
Claude usa modyard_search_mods, modyard_get_mod y modyard_get_mod_files y te responde a partir del código real. La lista de lo que toca es la misma que ves en la ficha del mod, con los mismos límites: ayuda a leer, no sustituye una revisión. En qué puede tocar un mod te contamos por qué el código sigue importando.
Publicar desde Claude Code, con una clave de API
Cada clave de API pertenece a un publicador. Las crea un propietario en ajustes, con uno de dos permisos: lectura, o lectura y escritura. Empiezan por mdy_ y solo se enseñan una vez, así que cópiala cuando aparezca.
Añade el endpoint con la clave en una cabecera. Si ya lo tenías sin ella, quítalo antes con claude mcp remove modyard:
claude mcp add --transport http modyard https://mods.gonzaloverdugo.com/mcp \
--header "Authorization: Bearer mdy_..."Con una clave aparecen dos tools más (para publicar, con permiso de lectura y escritura):
modyard_list_my_modsenumera los mods de tu publicador, con sus versiones y si están visibles u ocultos.modyard_publish_modpublica el zip de la carpeta de un plugin, igual que el formulario de publicar.
Una sesión típica mientras escribes un mod con Claude:
- "Valida y prueba ./bash-logger." Claude ejecuta
claude plugin validateyclaude plugin test. - "Sube la versión a 0.1.1 y publícalo." Claude edita
plugin.json, comprime la carpeta y llama amodyard_publish_mod. - "¿Qué dice Modyard que puede tocar?" Claude te lo lee del resultado.
Todas las reglas de publicación siguen valiendo: nombres únicos en todo Modyard, versiones que no se modifican y siempre mayores, límites de tamaño. Las tienes en publica un mod.
Trata la clave como una contraseña. Mejor añade el servidor con alcance de usuario en tu propia máquina que en el .mcp.json compartido de un proyecto, donde acabaría en el repositorio.
claude.ai y Claude Desktop, con OAuth
claude.ai y Claude Desktop se conectan por OAuth, así que no pegas ninguna clave. Añade un conector personalizado con esta URL:
https://mods.gonzaloverdugo.com/mcp/publisherLa primera vez, Modyard te pide entrar con Google y te enseña una pantalla de consentimiento donde eliges para qué publicador actúa el conector, si perteneces a varios. El conector puede leer y, con el permiso mods:write, publicar en ese publicador. Para actuar en otro, vuelve a conectar y elígelo al dar el consentimiento. Si quitas el conector, pierde el acceso.
A partir de ahí puedes pedir lo mismo que en Claude Code: buscar, leer, ver tus mods y publicar.
La API REST, para scripts
Las tools MCP siguen las mismas reglas que una API REST normal, que viene mejor en una CI o en un script de shell.
Buscar mods. q es texto libre, touch deja los mods que tocan una categoría, without quita los que tocan cualquiera de las que pongas y sort puede ser recent, downloads o name:
curl "https://mods.gonzaloverdugo.com/api/v1/mods?q=logger&without=network,processes&sort=downloads"Leer un mod:
curl https://mods.gonzaloverdugo.com/api/v1/mods/bash-loggerPublicar una versión, con una clave de lectura y escritura:
curl -X POST https://mods.gonzaloverdugo.com/api/v1/mods \
-H "Authorization: Bearer mdy_..." \
-F archive=@bash-logger.zipBorrar un mod, lo que deja su nombre libre para cualquiera:
curl -X DELETE https://mods.gonzaloverdugo.com/api/v1/mods/bash-logger \
-H "Authorization: Bearer mdy_..."Un paso de CI mínimo que publica en cada etiqueta podría ser este, con la clave guardada como secreto:
VERSION=$(jq -r .version bash-logger/.claude-plugin/plugin.json)
zip -qr bash-logger.zip bash-logger
curl -fsS -X POST https://mods.gonzaloverdugo.com/api/v1/mods \
-H "Authorization: Bearer $MODYARD_KEY" \
-F archive=@bash-logger.zip
echo "Published bash-logger $VERSION"Si la versión ya existe o no es mayor que la última, la petición falla y el paso falla con ella, que es justo lo que quieres.
Cuál usar
- ¿Solo quieres mirar? El endpoint MCP sin clave, o la página de mods.
- ¿Escribes mods con Claude Code? MCP con una clave de lectura y escritura.
- ¿Trabajas en claude.ai o Claude Desktop? El conector personalizado con OAuth.
- ¿Publicas desde una CI? La API REST con la clave en los secretos de tu CI.