# uprank > uprank is an editorial control room for evidence-backed content: it researches, drafts, scores and publishes articles for your own site, with every claim traced to a source gathered before drafting and nothing published until it clears hard quality gates. - What it is: a multi-tenant web app that researches, drafts, scores and publishes articles for a company's own site. - Who it is for: teams that need brand-safe, cited articles on their own blog, not content volume. - Pipeline: brand profile → research into an Evidence Pack → brief → draft → claim check → scoring → revision → CMS draft. - Quality: 11 scored dimensions and 13 hard gates; an article that fails any gate cannot be published. - Publishing: Strapi, as drafts by default. Draft creation is idempotent; live publishing needs an explicit confirmation and is audited. - Agents: a remote MCP server (streamable HTTP, bearer token or OAuth) with 17 tools; a connection sees the ones its scopes allow, and live publishing needs a hand-issued credential. Guides for Claude Code, Codex, Cursor, Windsurf, VS Code (Copilot), OpenCode. - What it does not do: promise rankings, invent citations, fake first-hand expertise, or publish an article that fails a hard gate. ## Quality gates An article that fails any of these cannot be approved, pushed to a CMS or published. There is no minimum overall score. - Evidence ≥ 85 - Information gain ≥ 70 - Practical value ≥ 75 - Brand fit ≥ 80 - Readability ≥ 75 - Risk ≤ 20 - No invented citations: Every citation must point to a source in the article’s Evidence Pack, gathered before drafting. - No broken required links: Every cited link is checked each time the article is scored, before it can be published. - High-risk claims are supported: Each high-risk claim is checked against its source; any unsupported or contradicted one blocks the article. - Time-sensitive claims are fresh: Claims that depend on dates, prices or versions must fall inside their freshness window. - At least one information-gain element: For example a decision framework, worked example, checklist, comparison, template or labelled research synthesis. - Licensed images only: Every external image carries license metadata. - Unique title: No other article on the same site may use the same title (ignoring case and extra spaces), checked each time the article is scored. ## Docs - [How uprank scores articles](https://uprank.devino.ca/quality-gates): the quality dimensions, weights and hard gates ([Markdown version](https://uprank.devino.ca/quality-gates.md)) - [How to fact-check AI content before you publish](https://uprank.devino.ca/how-to-fact-check-ai-content): a step-by-step method for fact-checking any AI draft, and which gates automate each step - [An AI writer that doesn't hallucinate sources](https://uprank.devino.ca/ai-writer-that-doesnt-hallucinate): why AI writers invent sources, and what uprank refuses to publish - [AI blog writer for Strapi: fact-checked drafts in your CMS](https://uprank.devino.ca/strapi-ai-blog-writer): how uprank connects to Strapi 5: field mapping, body formats, draft-only pushes, limits - [FAQ](https://uprank.devino.ca/faq): product, agents, tokens, publishing - [Full text](https://uprank.devino.ca/llms-full.txt): every public page in one Markdown file ## Agents - [Add to Claude](https://claude.ai/customize/connectors?modal=add-custom-connector&connectorName=Uprank&connectorUrl=https%3A%2F%2Fuprank.devino.ca%2Fapi%2Fmcp): fastest for Claude (web, Desktop, mobile): opens Claude's Add custom connector dialog with the uprank MCP server filled in (OAuth sign-in, no token) - [Agent setup prompt](https://uprank.devino.ca/agent-setup/prompt.md): paste-and-run instructions for coding agents - [Agent setup guides](https://uprank.devino.ca/agent-setup): how to connect each agent by hand - [Claude Code setup](https://uprank.devino.ca/agent-setup/claude-code): One CLI command registers the remote MCP server for the current user. - [Codex setup](https://uprank.devino.ca/agent-setup/codex): Register the server with the Codex CLI; the bearer header is read from the env var. - [Cursor setup](https://uprank.devino.ca/agent-setup/cursor): Add the server to the global MCP config (or .cursor/mcp.json in a project). - [Windsurf setup](https://uprank.devino.ca/agent-setup/windsurf): Add the server to the Cascade MCP config. - [VS Code (Copilot) setup](https://uprank.devino.ca/agent-setup/vscode): Add an HTTP server entry to the workspace .vscode/mcp.json. - [OpenCode setup](https://uprank.devino.ca/agent-setup/opencode): Add a remote MCP entry to opencode.json. - [MCP endpoint](https://uprank.devino.ca/api/mcp): streamable HTTP, bearer token or OAuth (MCP authorization with dynamic client registration) ## Optional - [Create a workspace](https://uprank.devino.ca/signup) - [Privacy policy](https://uprank.devino.ca/privacy): what uprank collects, who receives it, and how to get it deleted