UpRank
Investiga, redacta, puntúa y publica artículos citados para tu propio sitio; cada afirmación rastreada hasta una fuente y con estrictos controles de calidad.
Servidor MCP alojado
npx add-mcp 'https://uprank.devino.ca/api/mcp'Se instala en Claude Code, Codex, Cursor y más
Documentación
Servidor MCP para redacción de blogs con IA
Copia una frase, pégala en cualquier agente de codificación de IA, y este conectará el servidor MCP de uprank por sí mismo: 17 herramientas, 10 recursos, 4 indicaciones de orquestación.
Un servidor MCP de redacción de blogs permite que tu agente de codificación ejecute los pasos para escribir un artículo, como investigación, briefing, redacción y puntuación, como llamadas a herramientas en lugar de hacerlo en una ventana de chat. uprank expone 17 herramientas a través de MCP: investigación, briefings, borradores, puntuación contra 13 criterios estrictos, revisión, sugerencias de enlaces y registros de publicación para borradores de Strapi. Cada llamada ejecuta el mismo flujo y los mismos criterios que la aplicación, por lo que un artículo que tu agente redacte se rige por las mismas reglas.
Más rápido: Añadir a Claude
Claude en la web, escritorio o móvil: abre el diálogo de Añadir conector personalizado de Claude con el servidor MCP de uprank ya completado. Haz clic en Añadir y luego aprueba la pantalla de consentimiento de uprank como propietario del espacio de trabajo. No hay ningún token que copiar.
Lo que ejecuta el agente
Fetch and execute the appropriate instructions to set me up for uprank from https://uprank.devino.ca/agent-setup/prompt.md
El agente obtiene /agent-setup/prompt.md, te pide una vez un token MCP (emitido en /mcp), registra el servidor y lo verifica con article_list.
Configuración manual
Los mismos comandos que usa la indicación, por agente.
Comparación de agentes
Cómo añade cada guía el servidor y cómo comprobar que se ha cargado. Cada fila enlaza con la guía completa.
| Agente | Añadido con | Comando o archivo | Confirmar que se cargó |
|---|---|---|---|
| Claude Code | Comando CLI | claude mcp add --transport http --scope user uprank https://uprank.devino.ca/api/mcp --header 'Authorization: Bearer ${UPRANK_MCP_TOKEN}' | Ejecuta claude mcp list: uprank muestra ✔ Connected una vez que Claude Code ha alcanzado el servidor. claude mcp get uprank muestra esa entrada, y /mcp dentro de una sesión la lista con su número de herramientas. |
| Codex | Comando CLI | codex mcp add uprank --url https://uprank.devino.ca/api/mcp --bearer-token-env-var UPRANK_MCP_TOKEN Config: ~/.codex/config.toml | Ejecuta codex mcp list y comprueba que uprank está entre los servidores configurados. Dentro de la TUI de Codex, /mcp muestra los servidores MCP activos. |
| Cursor | Archivo de configuración | ~/.cursor/mcp.json | Abre Customize en la barra lateral y elige MCPs: uprank debería aparecer listado con su interruptor activado. Sus herramientas también aparecen en la lista de herramientas en la parte superior del panel de chat. |
| Windsurf | Archivo de configuración | ~/.config/devin/mcp_config.json | Abre el menú Actions (...) en la esquina superior derecha del panel Cascade. Su sección MCPs lista uprank con el número de herramientas habilitadas y un interruptor para activarlo o desactivarlo. |
| VS Code (Copilot) | Archivo de configuración | .vscode/mcp.json | Ejecuta MCP: List Servers desde la Paleta de Comandos y selecciona uprank para iniciarlo, detenerlo o reiniciarlo, o para mostrar su salida. También aparece listado en MCP SERVERS - INSTALLED en la vista de Extensiones. |
| OpenCode | Archivo de configuración | ~/.config/opencode/opencode.json | Ejecuta opencode mcp list: lista cada servidor MCP configurado y su estado de autenticación, por lo que uprank debería aparecer allí. |
Lo que obtienes
- 17 herramientas Investiga temas, genera briefings y borradores, puntúa, revisa, sugiere enlaces, registra publicaciones de borradores.
- 10 recursos Cuerpos completos de artículos, paquetes de evidencia, afirmaciones, evaluaciones de calidad, trazas de ejecución.
- 4 indicaciones Recetas de orquestación transparentes: crear, mejorar, actualizar, publicar.
Las 17 herramientas MCP
Cada llamada está limitada por los alcances de la credencial y ejecuta el mismo flujo y los mismos criterios de calidad que la aplicación.
pipeline_run
Ejecuta el flujo completo para un tema: investigación, evidencia, briefing, borrador, verificación de afirmaciones, puntuación.
pipeline_status
Lee el estado de una ejecución, el paso actual y cualquier error estructurado.
brand_ingest
Reconstruye el perfil de marca a partir de las páginas que listes: se requiere al menos una URL y se obtienen como máximo 40. No se puede pasar un sitemap a través de MCP.
brand_get
Lee el perfil de marca: voz, posicionamiento, puntos de prueba.
topic_research
Investiga una consulta semilla (obligatoria) en una única oportunidad de tema con un Paquete de Evidencia, para una campaña.
brief_generate
Genera y critica un briefing editorial para un tema.
article_generate
Redacta un artículo a partir de su briefing y Paquete de Evidencia.
article_score
Puntúa una versión según las dimensiones de calidad y los criterios estrictos.
article_revise
Revisa secciones débiles en una nueva versión, dentro de un bucle limitado.
links_suggest
Sugiere enlaces internos y externos para revisión.
media_select
Adjunta una imagen con licencia, o advierte visiblemente cuando no hay ninguna disponible.
publication_create_draft
Registra una publicación de borrador para un destino de publicación en uprank; idempotente y seguro de reintentar. No se envía nada al CMS: el borrador de Strapi se envía desde la pestaña Publishing del artículo, una vez que la versión supera sus criterios estrictos.
publication_publish
Registra una solicitud de publicación en vivo para una versión con una evaluación de calidad actual y aprobada; requiere publication:live y confirmar "PUBLISH LIVE". No se envía nada al CMS.
publication_status
Lee el estado de una publicación.
refresh_list
Lista artículos publicados, aprobados y que necesitan revisión; el motivo solo se establece cuando una afirmación sensible al tiempo ha caducado o la versión canónica no tiene una evaluación de calidad actual.
article_get
Lee un artículo y una de sus versiones.
article_list
Lista artículos con filtros de sitio, campaña, estado o búsqueda.
Tokens y alcances
Un token solo puede llamar a las herramientas cuyos alcances posee. Generado a partir de los alcances y contratos de herramientas que el servidor aplica.
- Emisión de un token. Un propietario de ESPACIO DE TRABAJO puede emitir un token manualmente en https://uprank.devino.ca/mcp: un nombre y los alcances que puede usar. El token sin procesar se muestra una sola vez y solo se almacena su hash. Un token emitido de esta manera no tiene fecha de caducidad y funciona hasta que se revoca.
- Cambio de alcances. Un token emitido en https://uprank.devino.ca/mcp conserva los alcances con los que se emitió. Para cambiarlos, emite un token nuevo y revoca el anterior. Una conexión de Añadir a Claude funciona igual: sus alcances se fijan cuando el propietario la aprueba.
- Añadir a Claude (OAuth). Añadir a Claude se conecta a través de OAuth, por lo que no hay ningún token que copiar. Solo un propietario de ESPACIO DE TRABAJO puede aprobar su pantalla de consentimiento, y solo para un espacio de trabajo que esa persona posea. El propietario no elige alcances allí: la conexión obtiene los alcances que el cliente solicitó de entre todos los alcances excepto publication:live, o todos esos alcances cuando el cliente no solicitó ninguno. Claude no es el único cliente que puede iniciar el flujo: cualquier cliente MCP que se registre puede llegar a la pantalla de consentimiento, que trata a un cliente cuyas devoluciones de llamada son de Claude o ChatGPT como verificado y advierte que cualquier otro cliente no está verificado. La conexión se almacena como una credencial, por lo que aparece en https://uprank.devino.ca/mcp con una insignia de "aplicación conectada", con un nombre como "OAuth: Claude".
- Duración de OAuth. Un token de acceso de Añadir a Claude dura 1 hora. El cliente lo renueva con un token de actualización que dura 30 días. Cada renovación emite un nuevo token de acceso y un nuevo token de actualización sobre la misma credencial, y el par anterior deja de funcionar. Una vez que el token de actualización se agota, o el propietario que aprobó la conexión ya no es propietario del espacio de trabajo, deja de renovarse y debe aprobarse de nuevo.
- Alcance faltante. Una llamada a herramienta sin todos los alcances que la herramienta necesita se rechaza con UNAUTHORIZED, indicando los alcances faltantes.
- Nunca por defecto. publication:live nunca se concede por defecto, y el diálogo de emisión lo marca como peligroso. Una conexión de Añadir a Claude no puede tenerlo en absoluto.
- Revocación. Un propietario de ESPACIO DE TRABAJO revoca un token o una conexión de Añadir a Claude desde la tabla de credenciales en https://uprank.devino.ca/mcp. Eso corta a todos los agentes que lo usan a la vez: la siguiente llamada se rechaza con un 401 ("Unknown, revoked, or expired MCP credential."), y una conexión revocada ya no puede renovarse. La revocación se audita. Un cliente OAuth también puede revocar su propia conexión a través del endpoint de revocación estándar (RFC 7009).
- Auditoría. Cada llamada a herramienta exitosa que cambia algo se escribe en el registro de auditoría, con el nombre de la herramienta y los alcances que requirió.
| Alcance | Herramientas que lo necesitan | Recursos que lo necesitan | Consejo |
|---|---|---|---|
| brand:read | brand_get | brandSite | En el primer token recomendado |
| brand:write | brand_ingest | Ninguno hoy | |
| campaign:read | topic_research | campaign, topic | En el primer token recomendado |
| campaign:write | Ninguna hoy | Ninguno hoy | |
| research:run | pipeline_run, topic_research | Ninguno hoy | Añadir a investigación, borrador, puntuación y revisión |
| article:read | pipeline_status, publication_status, refresh_list, article_get, article_list | evidencePack, article, articleVersion, claims, quality, workflowRun, publication | En el primer token recomendado |
| article:write | pipeline_run, brief_generate, article_generate, article_revise, links_suggest, media_select | Ninguno hoy | Añadir a investigación, borrador, puntuación y revisión |
| quality:run | article_score | Ninguno hoy | Añadir a investigación, borrador, puntuación y revisión |
| publication:draft | publication_create_draft | Ninguno hoy | |
| publication:live | publication_publish | Ninguno hoy | Nunca se concede por defecto |
| connection:read | Ninguna hoy | Ninguno hoy | |
| connection:write | Ninguna hoy | Ninguno hoy |
Una herramienta necesita todos los alcances listados para ella: pipeline_run necesita article:write y research:run; topic_research necesita research:run y campaign:read.
Solución de problemas
Lo que ves, la causa probable y qué hacer. Cada fila describe lo que hace el código del servidor.
| Lo que ves | Causa probable | Qué hacer |
|---|---|---|
| La pantalla de consentimiento dice “Solo un propietario del espacio de trabajo puede conectar una aplicación a uprank.” y no tiene botón Permitir. | Tu cuenta no es PROPIETARIA de ningún espacio de trabajo, y la pantalla solo lista los espacios de trabajo que posees. El servidor vuelve a comprobar el rol cuando pulsas Permitir, y se niega con “Solo un propietario de ese espacio de trabajo puede conectar una aplicación.” | Pide a un propietario del espacio de trabajo que conecte la aplicación, o que te emita un token en https://uprank.devino.ca/mcp. Volver te devuelve a la aplicación sin conectar. |
| La página de consentimiento dice “Esta conexión no puede continuar”, con “unknown client_id” o “The redirect_uri does not match any URI this app registered.” | La solicitud nombra una aplicación para la que uprank no tiene registro, o una dirección de callback que esa aplicación no registró. uprank las rechaza sin devolverte a la aplicación. | Inicia la conexión de nuevo desde la aplicación. Si sigue fallando, envía un correo a soporte. |
| La conexión funciona, pero muestra el espacio de trabajo incorrecto, o nada de lo que esperas. | Una conexión pertenece al único espacio de trabajo elegido en la pantalla de consentimiento. La pantalla muestra una opción de Espacio de trabajo solo cuando posees más de uno, y preselecciona tu espacio de trabajo actual cuando lo posees. Una llamada de herramienta no puede nombrar otro espacio de trabajo. | Para cambiar, un propietario revoca la conexión en la tabla de credenciales en https://uprank.devino.ca/mcp, y luego conecta de nuevo y elige el otro espacio de trabajo. |
| Cada llamada falla con HTTP 401 y “Unknown, revoked, or expired MCP credential.” | El token es desconocido, fue revocado o ha expirado. Un token de acceso de Add to Claude dura 1 hora y se renueva con un token de refresco que dura 30 días. Una conexión no puede renovarse una vez que el token de refresco se ha agotado, o una vez que el propietario que la aprobó ya no es propietario del espacio de trabajo (uprank entonces la revoca). Un token emitido manualmente no tiene fecha de caducidad, por lo que suele estar revocado o mal escrito. El 401 lleva una cabecera WWW-Authenticate que apunta a los clientes OAuth a los metadatos de autorización de uprank. | Para una conexión de Add to Claude, conecta de nuevo y aprueba la pantalla de consentimiento como propietario. Para un token, compruébalo en la tabla de credenciales en https://uprank.devino.ca/mcp; si está revocado o perdido, un propietario emite uno nuevo. |
| HTTP 401 con “Missing or malformed Authorization header (expected "Bearer <token>").” | La solicitud no llevaba token de portador, o la cabecera no tenía esa forma. | Envía la cabecera Authorization: Bearer <token>. Para un token emitido manualmente, la guía de tu agente muestra dónde lee el token (UPRANK_MCP_TOKEN). |
| Una herramienta que esperas no está en la lista de herramientas. | El servidor solo lista las herramientas cuyos alcances tiene la credencial. Una herramienta que necesita un alcance que la credencial no tiene no se anuncia. | La tabla de alcances anterior muestra qué alcance necesita cada herramienta. Un token conserva los alcances con los que fue emitido, por lo que un propietario emite un nuevo token con el alcance adicional. |
| Una llamada de herramienta devuelve un error con código UNAUTHORIZED y “Missing MCP scope(s): …”. | La credencial no tiene todos los alcances que la herramienta necesita. Una herramienta llamada por nombre se comprueba igual que una listada. Los alcances faltantes se nombran en el mensaje y en details.missing. | Usa una credencial que tenga los alcances nombrados. Algunas herramientas necesitan más de uno, como dice la línea bajo la tabla de alcances. |
| publication_publish no está en la lista de herramientas para una conexión de Add to Claude. | Una conexión de Add to Claude nunca tiene publication:live, incluso si la aplicación lo solicita, por lo que la herramienta no se anuncia. La pantalla de consentimiento dice “Never live publishing.” | Solo si quieres que un agente registre solicitudes de publicación en vivo: un propietario emite un token en https://uprank.devino.ca/mcp con publication:live, marcado como peligroso en el diálogo de emisión, y se lo da al agente. La llamada también necesita confirm: "PUBLISH LIVE" y una evaluación de calidad aprobada. Registra una solicitud de publicación en vivo en uprank y no envía nada al CMS. No hay aprobación humana separada, así que concédelo solo a un agente de confianza. |
| publication_publish devuelve QUALITY_GATE_FAILED: “No current quality assessment exists for this version; score it before publishing.” o “The article version has not passed its hard quality gates; live publishing is blocked.” | La versión no tiene una evaluación de calidad actual, o su evaluación falló una compuerta estricta. La comprobación se ejecuta antes de registrar nada, por lo que una negativa no deja rastro. | Ejecuta article_score, o revisa el artículo hasta que las compuertas pasen, y luego publica de nuevo. El suggestedAction del error dice cuál. Los umbrales se listan en https://uprank.devino.ca/quality-gates. |
| Una llamada de herramienta devuelve VALIDATION_FAILED: “Input failed schema validation.” | Los argumentos no coinciden con el esquema de entrada de la herramienta. details.issues lista cada problema como “path: message”. El error está marcado como retryable: false. Un cuerpo de solicitud que no es JSON válido recibe HTTP 400 y el mismo código. | Corrige los argumentos que details.issues nombra y llama de nuevo. Repetir la misma llamada falla de la misma manera. |
| HTTP 429 con código RATE_LIMITED: “Rate limit exceeded for this MCP credential; retry after a short delay.” | Cada credencial tiene un depósito de 60 llamadas que se rellena a 1 llamada por segundo. Solo las llamadas de herramientas y lecturas de recursos cuentan; el apretón de manos y las llamadas de lista no. El error está marcado como retryable: true. | Espera unos segundos y llama de nuevo. En una ejecución larga, espacia las llamadas a aproximadamente una por segundo. |
| Una herramienta devuelve solo un workflowRunId y ningún resultado (pipeline_run, brand_ingest, topic_research, brief_generate, article_generate, article_score, article_revise, links_suggest, media_select). | Estas herramientas inician una ejecución en el servidor y devuelven de inmediato. El trabajo continúa después de que la llamada regresa. | Llama a pipeline_status con el workflowRunId. Devuelve el estado (PENDING, RUNNING, SUCCEEDED, FAILED o CANCELLED), el paso actual y el progreso de 0 a 100. |
| pipeline_status devuelve estado FAILED con un objeto de error. | La ejecución se detuvo en un paso, y currentStep lo nombra. error contiene code, message, retryable y, cuando el código los establece, suggestedAction y step. El código marca una falla transitoria con retryable: true. | Lee error.message y error.suggestedAction y corrige lo que nombran. Cuando retryable es true puedes iniciar la herramienta de nuevo. |
| Un error con código MODEL_OUTPUT_INVALID. | El servidor usa este código para una falla inesperada que no tiene un código más específico, y para una ejecución cuyo ejecutor lanzó una excepción. Está marcado como retryable: true. | Intenta la llamada de nuevo. Si se repite, envía un correo a soporte con el código, el mensaje y el workflowRunId. |
| media_select termina, pero el artículo no tiene imagen. | No hay ningún proveedor de medios configurado. La herramienta no falla y nunca inserta un marcador de posición. Registra un activo de medios faltante (“No media provider configured.”) y el artículo se completa sin imagen. La pestaña Media lista el activo con una insignia de “missing”. | Nada falló, así que no hay nada que reintentar. Sin un proveedor de medios, el artículo no tiene imagen hasta que se adjunte una. |
| publication_create_draft tiene éxito, pero no aparece nada en Strapi. | La herramienta registra una publicación de borrador en uprank. No envía nada al CMS. | Envía el borrador desde la pestaña Publishing del artículo en la aplicación, una vez que la versión pase sus compuertas estrictas. |
| Quieres desconectar un agente, o un token puede haberse filtrado. | Un token y una conexión de Add to Claude son ambas credenciales. Funcionan hasta que expiran o un propietario las revoca. | Un propietario la revoca en la tabla de credenciales en https://uprank.devino.ca/mcp. La siguiente llamada se rechaza con un 401, y una conexión revocada ya no puede renovarse. |
¿Sigue atascado? Envía un correo a [email protected] con el nombre de tu espacio de trabajo y, cuando lo haya, el workflowRunId, el código de error y el mensaje.
Preguntas frecuentes
¿Qué agentes de codificación funcionan con el servidor MCP de uprank?
Cualquier agente que pueda llamar a un servidor MCP streamable-HTTP con un token de portador. Hay guías de configuración para Claude Code, Codex, Cursor, Windsurf, VS Code (Copilot), OpenCode, y la frase de incorporación en esta página funciona en cada uno de ellos.
¿Puede un agente publicar en vivo sin revisión?
No, a menos que lo permitas. publication_publish necesita una credencial que tenga publication:live, que nunca se concede por defecto, la confirmación literal confirm: "PUBLISH LIVE", y una evaluación de calidad aprobada y no obsoleta en la versión del artículo; de lo contrario, la llamada se rechaza con UNAUTHORIZED o QUALITY_GATE_FAILED. No hay una comprobación de aprobación humana separada, así que concede publication:live solo a un agente de confianza. Hoy la llamada registra una solicitud de publicación en vivo en uprank y no envía nada al CMS. Cada llamada se audita.
¿Qué permite un token MCP?
Solo lo que permiten sus alcances. Un primer token es de solo lectura: article:read, brand:read, campaign:read. Añade research:run, article:write, quality:run para investigar, redactar, puntuar y revisar, y publication:draft para registrar publicaciones de borrador. Un propietario del espacio de trabajo emite el token en https://uprank.devino.ca/mcp; el token crudo se muestra una vez y se almacena con hash.
¿Ejecuta las mismas comprobaciones que la aplicación?
Sí. Las herramientas llaman al mismo pipeline y servicios de dominio que la aplicación, por lo que article_score evalúa las mismas 13 compuertas estrictas: 6 puntuaciones mínimas y 7 comprobaciones de integridad. La tenencia y los alcances provienen de la credencial, nunca de la entrada de la solicitud.
¿A qué CMS publica?
Strapi. Un destino de publicación contiene tu tipo de contenido y mapeo de campos, y publication_create_draft registra una publicación de borrador para él. El envío a Strapi se hace desde la pestaña Publishing del artículo, como borrador, una vez que la versión pase sus compuertas estrictas. Ningún otro CMS tiene un publicador todavía. Cómo funciona la conexión: https://uprank.devino.ca/strapi-ai-blog-writer.
Lectura adicional
- Quality gates: cada dimensión, peso y compuerta estricta que las herramientas aplican.
- AI blog writer for Strapi: mapeo de campos, formatos de cuerpo y qué hace el envío de borrador.