UpRank
Pesquise, redija, pontue e publique artigos citados para o seu próprio site; cada afirmação rastreada até uma fonte e com rígidos controles de qualidade aplicados.
Servidor MCP hospedado
npx add-mcp 'https://uprank.devino.ca/api/mcp'Instala no Claude Code, Codex, Cursor e outros
Documentação
Servidor MCP para escrita de blogs com IA
Copie uma frase, cole-a em qualquer agente de codificação de IA, e ele conecta o servidor MCP uprank por conta própria: 17 ferramentas, 10 recursos, 4 prompts de orquestração.
Um servidor MCP para escrita de blogs permite que seu agente de codificação execute as etapas de escrita de um artigo, como pesquisa, briefing, rascunho e pontuação, como chamadas de ferramenta em vez de em uma janela de chat. O uprank expõe 17 ferramentas via MCP: pesquisa, briefings, rascunhos, pontuação contra 13 portões rígidos, revisão, sugestões de links e registros de publicação para rascunhos do Strapi. Cada chamada executa o mesmo pipeline e os mesmos portões que o aplicativo, então um artigo que seu agente rascunha é submetido às mesmas regras.
Mais rápido: Adicionar ao Claude
Claude na web, Desktop ou mobile: abre o diálogo "Adicionar conector personalizado" do Claude com o servidor MCP do uprank preenchido. Clique em Adicionar e aprove a tela de consentimento do uprank como proprietário do workspace. Nenhum token para copiar.
O que o agente executa
Fetch and execute the appropriate instructions to set me up for uprank from https://uprank.devino.ca/agent-setup/prompt.md
O agente busca /agent-setup/prompt.md, pede uma vez um token MCP (emitido em /mcp), registra o servidor e o verifica com article_list.
Configuração manual
Os mesmos comandos que o prompt usa, por agente.
Os agentes comparados
Como cada guia adiciona o servidor e como verificar se ele carregou. Cada linha vincula ao guia completo.
| Agente | Adicionado com | Comando ou arquivo | Confirmar carregamento |
|---|---|---|---|
| Claude Code | Comando CLI | claude mcp add --transport http --scope user uprank https://uprank.devino.ca/api/mcp --header 'Authorization: Bearer ${UPRANK_MCP_TOKEN}' | Execute claude mcp list: uprank mostra ✔ Connected assim que o Claude Code alcançar o servidor. claude mcp get uprank mostra essa entrada, e /mcp dentro de uma sessão a lista com sua contagem de ferramentas. |
| 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 | Execute codex mcp list e verifique se uprank está entre os servidores configurados. Dentro do TUI do Codex, /mcp mostra os servidores MCP ativos. |
| Cursor | Arquivo de configuração | ~/.cursor/mcp.json | Abra Customize na barra lateral e escolha MCPs: uprank deve estar listado com o alternador ativado. Suas ferramentas também aparecem na lista de ferramentas no topo do painel de chat. |
| Windsurf | Arquivo de configuração | ~/.config/devin/mcp_config.json | Abra o menu Actions (...) no canto superior direito do painel Cascade. A seção MCPs lista uprank com o número de ferramentas habilitadas e um alternador para ligar ou desligar. |
| VS Code (Copilot) | Arquivo de configuração | .vscode/mcp.json | Execute MCP: List Servers na Paleta de Comandos e selecione uprank para iniciar, parar ou reiniciar, ou para mostrar sua saída. Ele também está listado em MCP SERVERS - INSTALLED na visualização Extensions. |
| OpenCode | Arquivo de configuração | ~/.config/opencode/opencode.json | Execute opencode mcp list: ele lista cada servidor MCP configurado e seu status de autenticação, então uprank deve aparecer lá. |
O que você obtém
- 17 ferramentas Pesquise tópicos, gere briefings e rascunhos, pontue, revise, sugira links, registre publicações de rascunhos.
- 10 recursos Corpos completos de artigos, pacotes de evidências, alegações, avaliações de qualidade, rastreamentos de execução.
- 4 prompts Receitas transparentes de orquestração: criar, melhorar, atualizar, publicar.
As 17 ferramentas MCP
Cada chamada é limitada pelos escopos da credencial e executa o mesmo pipeline e portões de qualidade que o aplicativo.
pipeline_run
Execute o pipeline completo para um tópico: pesquisa, evidências, briefing, rascunho, verificação de alegações, pontuação.
pipeline_status
Leia o status de uma execução, a etapa atual e qualquer erro estruturado.
brand_ingest
Reconstrua o perfil da marca a partir das páginas que você listar: pelo menos uma URL é obrigatória e no máximo 40 são buscadas. Um sitemap não pode ser passado via MCP.
brand_get
Leia o perfil da marca: voz, posicionamento, pontos de prova.
topic_research
Pesquise uma consulta semente (obrigatória) em uma única oportunidade de tópico com um Pacote de Evidências, para uma campanha.
brief_generate
Gere e critique um briefing editorial para um tópico.
article_generate
Rascunhe um artigo a partir de seu briefing e Pacote de Evidências.
article_score
Pontue uma versão nas dimensões de qualidade e portões rígidos.
article_revise
Revise seções fracas em uma nova versão, dentro de um loop limitado.
links_suggest
Sugira links internos e externos para revisão.
media_select
Anexe uma imagem licenciada, ou avise visivelmente quando nenhuma estiver disponível.
publication_create_draft
Registre uma publicação de rascunho para um alvo de publicação no uprank; idempotente e seguro para repetir. Nada é enviado ao CMS: o rascunho do Strapi é enviado pela aba Publishing do artigo, uma vez que a versão passe em seus portões rígidos.
publication_publish
Registre uma solicitação de publicação ao vivo para uma versão com avaliação de qualidade atual e aprovada; requer publication:live e confirme "PUBLISH LIVE". Nada é enviado ao CMS.
publication_status
Leia o estado de uma publicação.
refresh_list
Liste artigos publicados, aprovados e que precisam de revisão; o motivo é definido apenas quando uma alegação sensível ao tempo expirou ou a versão canônica não tem avaliação de qualidade atual.
article_get
Leia um artigo e uma de suas versões.
article_list
Liste artigos com filtros de site, campanha, status ou busca.
Tokens e escopos
Um token só pode chamar as ferramentas cujos escopos ele possui. Gerado a partir dos escopos e contratos de ferramenta que o servidor impõe.
- Emitindo um token. Um proprietário de workspace OWNER pode emitir um token manualmente em https://uprank.devino.ca/mcp: um nome e os escopos que ele pode usar. O token bruto é mostrado uma única vez e apenas seu hash é armazenado. Um token emitido dessa forma não tem data de expiração e funciona até ser revogado.
- Alterando escopos. Um token emitido em https://uprank.devino.ca/mcp mantém os escopos com os quais foi emitido. Para alterá-los, emita um novo token e revogue o antigo. Uma conexão "Adicionar ao Claude" funciona da mesma forma: seus escopos são fixados quando o proprietário a aprova.
- Adicionar ao Claude (OAuth). "Adicionar ao Claude" conecta via OAuth, então não há token para copiar. Apenas um proprietário de workspace OWNER pode aprovar sua tela de consentimento, e apenas para um workspace que essa pessoa possua. O proprietário não escolhe escopos lá: a conexão recebe os escopos que o cliente solicitou de todos os escopos, exceto publication:live, ou todos esses escopos quando o cliente não solicitou nenhum. O Claude não é o único cliente que pode iniciar o fluxo: qualquer cliente MCP que se registre pode alcançar a tela de consentimento, que trata um cliente cujos callbacks são do Claude ou do ChatGPT como verificado e avisa que qualquer outro cliente não é verificado. A conexão é armazenada como uma credencial, então aparece em https://uprank.devino.ca/mcp com um selo de "aplicativo conectado", nomeado como "OAuth: Claude".
- Vida útil do OAuth. Um token de acesso "Adicionar ao Claude" dura 1 hora. O cliente o renova com um token de atualização que dura 30 dias. Cada renovação emite um novo token de acesso e um novo token de atualização na mesma credencial, e o par antigo para de funcionar. Quando o token de atualização expira, ou o proprietário que aprovou a conexão não é mais proprietário do workspace, ele para de renovar e precisa ser aprovado novamente.
- Escopo ausente. Uma chamada de ferramenta sem todos os escopos que a ferramenta precisa é recusada com UNAUTHORIZED, nomeando os escopos ausentes.
- Nunca por padrão. publication:live nunca é concedido por padrão, e o diálogo de emissão o marca como perigoso. Uma conexão "Adicionar ao Claude" não pode tê-lo de forma alguma.
- Revogação. Um proprietário de workspace OWNER revoga um token ou uma conexão "Adicionar ao Claude" na tabela de credenciais em https://uprank.devino.ca/mcp. Isso corta todos os agentes que o usam de uma vez: a próxima chamada é recusada com um 401 ("Credencial MCP desconhecida, revogada ou expirada."), e uma conexão revogada não pode mais renovar. A revogação é auditada. Um cliente OAuth também pode revogar sua própria conexão pelo endpoint de revogação padrão (RFC 7009).
- Auditoria. Toda chamada de ferramenta bem-sucedida que altera algo é gravada no log de auditoria, com o nome da ferramenta e os escopos que ela exigiu.
| Escopo | Ferramentas que precisam dele | Recursos que precisam dele | Conselho |
|---|---|---|---|
| brand:read | brand_get | brandSite | No primeiro token recomendado |
| brand:write | brand_ingest | Nenhum hoje | |
| campaign:read | topic_research | campaign, topic | No primeiro token recomendado |
| campaign:write | Nenhum hoje | Nenhum hoje | |
| research:run | pipeline_run, topic_research | Nenhum hoje | Adicione a pesquisa, rascunho, pontuação e revisão |
| article:read | pipeline_status, publication_status, refresh_list, article_get, article_list | evidencePack, article, articleVersion, claims, quality, workflowRun, publication | No primeiro token recomendado |
| article:write | pipeline_run, brief_generate, article_generate, article_revise, links_suggest, media_select | Nenhum hoje | Adicione a pesquisa, rascunho, pontuação e revisão |
| quality:run | article_score | Nenhum hoje | Adicione a pesquisa, rascunho, pontuação e revisão |
| publication:draft | publication_create_draft | Nenhum hoje | |
| publication:live | publication_publish | Nenhum hoje | Nunca concedido por padrão |
| connection:read | Nenhum hoje | Nenhum hoje | |
| connection:write | Nenhum hoje | Nenhum hoje |
Uma ferramenta precisa de todos os escopos listados para ela: pipeline_run precisa de article:write e research:run; topic_research precisa de research:run e campaign:read.
Solução de problemas
O que você vê, a causa provável e o que fazer. Cada linha descreve o que o código do servidor faz.
| O que você vê | Causa provável | O que fazer |
|---|---|---|
| A tela de consentimento diz “Only a workspace owner can connect an app to uprank.” e não tem botão Allow. | Sua conta não é OWNER de nenhum workspace, e a tela lista apenas os workspaces que você possui. O servidor verifica o papel novamente quando você pressiona Allow e recusa com “Only an owner of that workspace can connect an app.” | Peça a um owner do workspace para conectar o app ou emitir um token para você em https://uprank.devino.ca/mcp. Voltar retorna ao app sem conectar. |
| A página de consentimento diz “This connection can’t continue”, com “unknown client_id” ou “The redirect_uri does not match any URI this app registered.” | A solicitação nomeia um app para o qual a uprank não tem registro, ou um endereço de callback que esse app não registrou. A uprank recusa esses casos sem enviá-lo de volta ao app. | Inicie a conexão novamente pelo app. Se continuar falhando, envie um e-mail para o suporte. |
| A conexão funciona, mas mostra o workspace errado ou nada do que você espera. | Uma conexão pertence ao único workspace escolhido na tela de consentimento. A tela mostra uma opção de Workspace apenas quando você possui mais de um, e ela pré-seleciona seu workspace atual quando você o possui. Uma chamada de ferramenta não pode nomear outro workspace. | Para alternar, um owner revoga a conexão na tabela de credenciais em https://uprank.devino.ca/mcp, e depois conecta novamente e escolhe o outro workspace. |
| Toda chamada falha com HTTP 401 e “Unknown, revoked, or expired MCP credential.” | O token é desconhecido, foi revogado ou expirou. Um token de acesso Add to Claude dura 1 hora e é renovado com um refresh token que dura 30 dias. Uma conexão não pode renovar depois que o refresh token expira, ou quando o owner que a aprovou não é mais owner do workspace (a uprank então a revoga). Um token emitido manualmente não tem data de expiração, então geralmente é revogado ou digitado errado. O 401 traz um cabeçalho WWW-Authenticate que aponta clientes OAuth para os metadados de autorização da uprank. | Para uma conexão Add to Claude, conecte novamente e aprove a tela de consentimento como owner. Para um token, verifique-o na tabela de credenciais em https://uprank.devino.ca/mcp; se estiver revogado ou perdido, um owner emite um novo. |
| HTTP 401 com “Missing or malformed Authorization header (expected "Bearer <token>").” | A solicitação não trouxe token bearer, ou o cabeçalho não estava nesse formato. | Envie o cabeçalho Authorization: Bearer <token>. Para um token emitido manualmente, o guia do seu agente mostra onde ele lê o token (UPRANK_MCP_TOKEN). |
| Uma ferramenta que você espera não está na lista de ferramentas. | O servidor lista apenas as ferramentas cujos escopos a credencial possui. Uma ferramenta que precisa de um escopo que a credencial não tem não é anunciada. | A tabela de escopos acima mostra qual escopo cada ferramenta precisa. Um token mantém os escopos com os quais foi emitido, então um owner emite um novo token com o escopo extra. |
| Uma chamada de ferramenta retorna um erro com código UNAUTHORIZED e “Missing MCP scope(s): …”. | A credencial não possui todos os escopos que a ferramenta precisa. Uma ferramenta chamada pelo nome é verificada da mesma forma que uma listada. Os escopos ausentes são nomeados na mensagem e em details.missing. | Use uma credencial que possua os escopos nomeados. Algumas ferramentas precisam de mais de um, como diz a linha abaixo da tabela de escopos. |
| publication_publish não está na lista de ferramentas para uma conexão Add to Claude. | Uma conexão Add to Claude nunca possui publication:live, mesmo que o app peça, então a ferramenta não é anunciada. A tela de consentimento diz “Never live publishing.” | Somente se você quiser que um agente registre solicitações de publicação ao vivo: um owner emite um token em https://uprank.devino.ca/mcp com publication:live, marcado como perigoso no diálogo de emissão, e o dá ao agente. A chamada também precisa de confirm: "PUBLISH LIVE" e uma avaliação de qualidade aprovada. Ela registra uma solicitação de publicação ao vivo na uprank e não envia nada para o CMS. Não há aprovação humana separada, então conceda apenas a um agente em quem você confia. |
| publication_publish retorna QUALITY_GATE_FAILED: “No current quality assessment exists for this version; score it before publishing.” ou “The article version has not passed its hard quality gates; live publishing is blocked.” | A versão não tem avaliação de qualidade atual, ou sua avaliação falhou em um gate rígido. A verificação ocorre antes de qualquer registro, então uma recusa não deixa rastros. | Execute article_score, ou revise o artigo até que os gates passem, e publique novamente. O suggestedAction do erro diz qual. Os limites estão listados em https://uprank.devino.ca/quality-gates. |
| Uma chamada de ferramenta retorna VALIDATION_FAILED: “Input failed schema validation.” | Os argumentos não correspondem ao esquema de entrada da ferramenta. details.issues lista cada problema como “path: message”. O erro é marcado como retryable: false. Um corpo de solicitação que não é JSON válido recebe HTTP 400 e o mesmo código. | Corrija os argumentos que details.issues nomeia e chame novamente. Repetir a mesma chamada falha da mesma forma. |
| HTTP 429 com código RATE_LIMITED: “Rate limit exceeded for this MCP credential; retry after a short delay.” | Cada credencial tem um bucket de 60 chamadas que recarrega a 1 chamada por segundo. Apenas chamadas de ferramenta e leituras de recurso contam; o handshake e as chamadas de lista não. O erro é marcado como retryable: true. | Aguarde alguns segundos e chame novamente. Em uma execução longa, espaçe as chamadas para cerca de uma por segundo. |
| Uma ferramenta retorna apenas um workflowRunId e nenhum resultado (pipeline_run, brand_ingest, topic_research, brief_generate, article_generate, article_score, article_revise, links_suggest, media_select). | Essas ferramentas iniciam uma execução no servidor e retornam imediatamente. O trabalho continua após a chamada retornar. | Chame pipeline_status com o workflowRunId. Ele retorna o status (PENDING, RUNNING, SUCCEEDED, FAILED ou CANCELLED), a etapa atual e o progresso de 0 a 100. |
| pipeline_status retorna status FAILED com um objeto de erro. | A execução parou em uma etapa, e currentStep a nomeia. error contém code, message, retryable e, quando o código os define, suggestedAction e step. O código marca uma falha transitória com retryable: true. | Leia error.message e error.suggestedAction e corrija o que eles nomeiam. Quando retryable for true, você pode iniciar a ferramenta novamente. |
| Um erro com código MODEL_OUTPUT_INVALID. | O servidor usa esse código para uma falha inesperada sem código mais específico, e para uma execução cujo executor lançou uma exceção. É marcado como retryable: true. | Tente a chamada novamente. Se repetir, envie um e-mail para o suporte com o código, a mensagem e o workflowRunId. |
| media_select termina, mas o artigo não tem imagem. | Nenhum provedor de mídia está configurado. A ferramenta não falha e nunca insere um placeholder. Ela registra um ativo de mídia ausente (“No media provider configured.”) e o artigo é concluído sem imagem. A aba Media lista o ativo com um selo “missing”. | Nada falhou, então não há nada para tentar novamente. Sem um provedor de mídia, o artigo não tem imagem até que uma seja anexada. |
| publication_create_draft é bem-sucedido, mas nada aparece no Strapi. | A ferramenta registra uma publicação de rascunho na uprank. Ela não envia nada para o CMS. | Envie o rascunho pela aba Publishing do artigo no app, uma vez que a versão passe nos gates rígidos. |
| Você quer desconectar um agente, ou um token pode ter vazado. | Um token e uma conexão Add to Claude são ambos credenciais. Eles funcionam até expirarem ou um owner os revogar. | Um owner revoga na tabela de credenciais em https://uprank.devino.ca/mcp. A próxima chamada é recusada com um 401, e uma conexão revogada não pode mais renovar. |
Ainda preso? Envie um e-mail para [email protected] com o nome do seu workspace e, quando houver, o workflowRunId, o código do erro e a mensagem.
Perguntas comuns
Quais agentes de codificação funcionam com o servidor MCP da uprank?
Qualquer agente que possa chamar um servidor MCP streamable-HTTP com um token bearer. Há guias de configuração para Claude Code, Codex, Cursor, Windsurf, VS Code (Copilot), OpenCode, e a frase de integração nesta página funciona em cada um deles.
Um agente pode publicar ao vivo sem revisão?
Não, a menos que você permita. publication_publish precisa de uma credencial que possua publication:live, que nunca é concedida por padrão, a confirmação literal confirm: "PUBLISH LIVE", e uma avaliação de qualidade aprovada e não obsoleta na versão do artigo; caso contrário, a chamada é recusada com UNAUTHORIZED ou QUALITY_GATE_FAILED. Não há verificação separada de aprovação humana, então conceda publication:live apenas a um agente em quem você confia. Hoje, a chamada registra uma solicitação de publicação ao vivo na uprank e não envia nada para o CMS. Toda chamada é auditada.
O que um token MCP permite?
Apenas o que seus escopos permitem. Um primeiro token é somente leitura: article:read, brand:read, campaign:read. Adicione research:run, article:write, quality:run para pesquisar, rascunhar, pontuar e revisar, e publication:draft para registrar publicações de rascunho. Um workspace OWNER emite o token em https://uprank.devino.ca/mcp; o token bruto é mostrado uma vez e armazenado com hash.
Ele executa as mesmas verificações que o app?
Sim. As ferramentas chamam o mesmo pipeline e serviços de domínio que o app, então article_score avalia os mesmos 13 gates rígidos: 6 pontuações mínimas e 7 verificações de integridade. Locação e escopos vêm da credencial, nunca da entrada da solicitação.
Para qual CMS ele publica?
Strapi. Um destino de publicação contém seu tipo de conteúdo e mapeamento de campos, e publication_create_draft registra uma publicação de rascunho para ele. O envio para o Strapi é feito pela aba Publishing do artigo, como rascunho, uma vez que a versão passe nos gates rígidos. Nenhum outro CMS tem um publisher ainda. Como a conexão funciona: https://uprank.devino.ca/strapi-ai-blog-writer.
Leia mais
- Quality gates: cada dimensão, peso e gate rígido que as ferramentas aplicam.
- AI blog writer for Strapi: mapeamento de campos, formatos de corpo e o que o envio de rascunho faz.