Herramientas MCP
Las 37 herramientas del servidor MCP de Feedjolt, agrupadas por recurso, cada una con su scope requerido - además de los comportamientos que sorprenden: los guardarraíles al eliminar tableros y estados, borrador vs. publicación del changelog, y las reglas de edición de comentarios.
Cada herramienta requiere un scope en el principal que la llama - read, write o delete. Esa concesión sale de la pantalla de consentimiento OAuth o de una clave de API. Consulta Permisos para ver qué significa cada scope y cómo concederlo.
Posts
| Herramienta | Scope | Propósito |
|---|---|---|
list_posts | read | Listar/filtrar posts por tablero, estado o etiqueta, con paginación |
search_posts | read | Buscar posts por palabra clave en el título |
get_post | read | Detalle completo del post: cuerpo, estado, etiquetas y hasta 200 comentarios |
create_post | write | Crear un post en un tablero, con autoría de esta clave |
update_post | write | Actualizar el título, cuerpo o visibilidad interna de un post |
change_post_status | write | Mover un post a un nuevo estado, con nota interna opcional |
move_post | write | Mover un post a otro tablero |
add_tag_to_post | write | Etiquetar un post (debe usar una etiqueta existente) |
remove_tag_from_post | write | Eliminar una etiqueta de un post |
assign_post_owner | write | Asignar (o borrar) el admin responsable de un post |
set_post_featured | write | Destacar o quitar el destacado de un post en el portal |
merge_posts | write | Fusionar un duplicado en un post canónico |
unmerge_posts | write | Revertir una fusión, restaurando el post original |
delete_post | delete | Eliminar permanentemente un post, sus votos y sus comentarios |
Tableros
| Herramienta | Scope | Propósito |
|---|---|---|
list_boards | read | Listar todos los tableros con su visibilidad y número de posts |
create_board | write | Crear un tablero |
update_board | write | Actualizar un tablero, incluido archivarlo |
delete_board | delete | Eliminar un tablero vacío únicamente - ver más abajo |
Etiquetas
| Herramienta | Scope | Propósito |
|---|---|---|
list_tags | read | Listar todas las etiquetas con su número de posts |
create_tag | write | Crear una etiqueta |
update_tag | write | Renombrar o recolorear una etiqueta |
delete_tag | delete | Eliminar una etiqueta - los posts se mantienen, solo pierden la etiqueta |
Estados
| Herramienta | Scope | Propósito |
|---|---|---|
list_statuses | read | Listar todos los estados del workspace |
create_status | write | Crear un estado |
update_status | write | Actualizar el nombre, color, visibilidad en roadmap u orden de un estado |
delete_status | delete | Eliminar un estado, reasignando sus posts - ver más abajo |
Comentarios
| Herramienta | Scope | Propósito |
|---|---|---|
list_comments | read | Listar comentarios de un post, con paginación |
post_comment | write | Añadir un comentario (público o interno) |
update_comment | write | Editar, fijar o cambiar la visibilidad de un comentario - ver más abajo |
delete_comment | delete | Eliminar permanentemente un comentario, de cualquier autor y cualquier post |
Changelog
| Herramienta | Scope | Propósito |
|---|---|---|
get_changelog | read | Entradas recientes publicadas del changelog |
create_changelog_entry | write | Crear una entrada de changelog como borrador - ver más abajo |
update_changelog_entry | write | Actualizar el título, cuerpo o posts enlazados de una entrada |
publish_changelog_entry | write | Publicar un borrador - ver más abajo |
delete_changelog_entry | delete | Eliminar permanentemente una entrada, publicada o en borrador |
Roadmap
| Herramienta | Scope | Propósito |
|---|---|---|
get_roadmap | read | Columnas del roadmap agrupadas por estados visibles en el roadmap |
Orden
| Herramienta | Scope | Propósito |
|---|---|---|
reorder_items | write | Fijar el orden de visualización de tableros, etiquetas o estados en una sola llamada |
Comportamientos que conviene conocer
delete_board rechaza tableros con posts
delete_board solo funciona en un tablero con cero posts, y no existe ningún argumento para forzarlo. Eliminar un tablero arrastra en cascada todos sus posts, votos y comentarios - de forma permanente, sin deshacer - así que MCP no lo hará bajo ninguna circunstancia, sin importar cómo se formule la petición.
Para retirar un tablero sin perder su contenido, llama a update_board con archived: true. El tablero desaparece de los listados activos; todos sus posts quedan intactos.
delete_status requiere un destino de reasignación
Los posts referencian su estado con una restricción de base de datos que impide eliminar un estado en uso, así que delete_status exige un reassign_to_status_id obligatorio. Cada post en el estado condenado se mueve primero a ese destino, y cada movimiento genera su propia entrada de historial de estado - igual que un cambio de estado manual.
Hay dos estados que nunca se pueden eliminar así: el estado por defecto del workspace, y el último estado restante. Convierte otro estado en el predeterminado, o crea un segundo estado, antes de eliminar cualquiera de los dos.
create_changelog_entry siempre crea un borrador
create_changelog_entry solo crea un borrador - nunca es visible para los clientes. Publicar es una llamada aparte y deliberada: publish_changelog_entry. Publicar envía un correo a cada suscriptor y dispara los webhooks del changelog, así que llega a clientes reales en el momento en que se ejecuta. Revisa el contenido de la entrada con update_changelog_entry antes de publicarla, no después.
update_comment solo puede editar su propio texto
update_comment edita tres cosas independientes - body, is_pinned, is_internal - pero no siguen la misma regla. Editar body solo funciona en un comentario que esta clave de API publicó ella misma; el servicio rechaza el intento de reescribir el texto de otro autor. Fijar y cambiar la visibilidad no tienen esa restricción - una clave puede fijar u ocultar/mostrar cualquier comentario del workspace sin importar quién lo escribió. delete_comment tampoco tiene restricción: elimina cualquier comentario, lo que la hace útil para limpiar spam.
Otras cosas que conviene saber
create_postcuenta contra la cuota mensual de posts del workspace - la misma cuota que respeta el botón "Nuevo post" del dashboard. Falla en cuanto se alcanza la cuota.get_postylist_commentsdevuelven comentarios internos además de los públicos - los agentes MCP ven todo lo que ve un admin. No reenvíes un comentario conis_internal: truea un cliente final.merge_postsse puede revertir conunmerge_posts, pero la restauración es degradada: los votos, comentarios y etiquetas se quedan en el post destino. El post restaurado vuelve con 0 votos.move_postrechaza mover un post a un tablero archivado, y rechaza un "movimiento" al tablero en el que el post ya está.reorder_itemsdescarta silenciosamente cualquier ID que no pertenezca al workspace (error tipográfico, workspace equivocado, ya eliminado) en lugar de dar error. Comparareorderedconsubmitteden la respuesta para ver si algo se descartó.
Lo que MCP todavía no puede hacer
Las herramientas MCP operan sobre los datos de feedback de un workspace - posts, tableros, etiquetas, estados, comentarios, changelog, roadmap. No tocan la configuración del workspace, la facturación, los miembros del equipo y sus roles, ni la configuración de webhooks, widget o branding. Eso se queda en el dashboard.
Permisos de MCP
Los tres scopes de MCP - read, write, delete - qué cubre cada uno para concesiones OAuth y claves de API, cómo se heredan las claves creadas antes de que existieran los scopes, y cómo conceder o cambiar los scopes.
Resolución de problemas MCP
Soluciona errores comunes del MCP de Feedjolt: 402 plan requerido, 401 no autorizado, 403 scope insuficiente, 429 límite de tasa, etiqueta no encontrada, y los guardarraíles al eliminar tableros y estados.
