AltoRank
Überblick
Beschreibung vom Entwickler (englisches Original)
Readiness audits, Search Console, keyword research, and SEO drafts into a review queue.
Die drei Säulen von PopNx MCP
Diese drei werden nie zu einer Punktzahl zusammengefasst: Meinungen, Messungen und Beliebtheit sind verschiedene Dinge.
- Stimmen der NutzeriNoch keine BewertungenBewertungen starten in einem späteren Schritt zusammen mit Benutzerkonten
- Unsere Basischecksi1 von 1 bestandenAnhand öffentlicher Informationen geprüft; Code noch nicht gescannt
- NutzungiGanz neu★ –
Was du damit machen kannst
Für diesen Server haben wir noch keine Zusammenfassung in einfacher Sprache geschrieben. Unten stehen die Fakten, die wir aus der Registry gelesen haben.
- Verbindung: Läuft in der Cloud
- Transport: Streamable HTTP
- Kategorie: Suche & KI-Gedächtnis
Installation
Wähle die KI-App, die du nutzt, und kopiere die Einstellungen.
Bevor du installierst
- Basischecks: 1 von 1 bestanden
- Läuft auf dem Server des Entwicklers: Was du fragst, läuft über dessen Server.
- Die Registry nennt keinen Schlüssel zum Eintragen.
Du brauchst
- Läuft in der CloudNichts zu installieren; die Verbindung läuft übers Internet
Welche App nutzt du?
Wähle oben deine App. Wir merken sie uns, damit der Button beim nächsten Mal „In … installieren“ anzeigt.
Funktioniert in Claude im Web, auf dem Desktop und auf dem Handy:
- Öffne Settings → Connectors
- Tippe auf Add custom connector
- Füge die Adresse unten ein und tippe auf Add
- Wenn eine Anmeldung verlangt wird, melde dich beim Dienst des Entwicklers an
https://app.altorank.co/api/mcpFühre das in deinem Terminal aus
claude mcp add --transport http altorank https://app.altorank.co/api/mcpOder kopier die Einstellungen selbst
In .cursor/mcp.json in deinem Projekt oder in ~/.cursor/mcp.json einfügen
{
"mcpServers": {
"altorank": {
"url": "https://app.altorank.co/api/mcp"
}
}
}Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.
Oder kopier die Einstellungen selbst
In .vscode/mcp.json in deinem Projekt einfügen
{
"servers": {
"altorank": {
"type": "http",
"url": "https://app.altorank.co/api/mcp"
}
}
}Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.
ChatGPT verbindet sich nur mit Servern im Internet:
- Öffne ChatGPT im Web → Settings → Connectors (Apps)
- Tippe auf Create oder Add (bei manchen Tarifen musst du zuerst Developer mode unter Advanced einschalten)
- Füge die Adresse unten ein, gib ihr einen Namen und speichere
- Wenn eine Anmeldung verlangt wird, melde dich beim Dienst des Entwicklers an
https://app.altorank.co/api/mcpMenünamen können sich je nach Tarif und mit der Zeit leicht unterscheiden.
Deine Auswahl bleibt in einem Cookie auf diesem Gerät; kein Konto nötig.
Diese Einstellungen werden aus dem Registry-Eintrag des Entwicklers erzeugt. Wenn in der README etwas anderes steht, folge der README.
Was er kann
Die Tool-Liste dieses Servers haben wir noch nicht gelesen; wir prüfen die Endpunkte reihum.
Basischecksi
Wir prüfen Informationen, die jeder sehen kann; den Code haben wir nicht gelesen. Checks, die nicht zutreffen, werden nicht mitgezählt. · Geprüft am 8. Nov. 2026
- ✓ Bestanden
Entwickler passt zum Repo
Der Registry-Name wurde über die Domain altorank.co bestätigt (die Registry prüft, wem die Domain gehört)
- … Noch nicht geprüft
Wird noch gepflegt
Dieses Repo haben wir noch nicht von GitHub gelesen
- … Noch nicht geprüft
Hat eine Lizenz
Dieses Repo haben wir noch nicht von GitHub gelesen
- … Noch nicht geprüft
Endpunkt antwortet
Noch nicht geprüft; wir prüfen die Endpunkte reihum
- … Noch nicht geprüft
Anmeldung mit OAuth
Noch nicht geprüft; wir prüfen die Endpunkte reihum
- … Noch nicht geprüft
Keine versteckten Anweisungen in Tool-Beschreibungen
Noch nicht geprüft; wir lesen die Tool-Liste, wenn wir den Endpunkt prüfen
Im Vergleich mit anderen in Suche & KI-Gedächtnisi
- Mehr Sterne als 0 % der anderen 5684 Server in dieser Kategorie
- Neuer in der Registry veröffentlicht als 40 % der anderen 5684 Server in dieser Kategorie
- Basischecks gleich gut wie oder besser als bei 100 % der anderen 5684 Server in dieser Kategorie
Verglichen mit allen aktiven Servern dieser Kategorie in der Registry. Sterne zählen nur, wenn dem Herausgeber das Repo gehört.
Häufige Fragen
Ist AltoRank sicher?
Er hat 1 von 1 zutreffenden Basischecks bestanden. Den Code haben wir nicht gelesen. Bevor du einen Schlüssel oder Token hinzufügst, sieh nach, welche Zugriffe der Server verlangt, und nutze einen Schlüssel, der nur die Berechtigungen hat, die du brauchst.
Welche Schlüssel oder Codes braucht er?
Die Registry nennt keinen erforderlichen Schlüssel, manche Server bitten dich aber bei der ersten Nutzung, dich anzumelden.
Läuft er auf meinem Computer oder in der Cloud?
Er läuft in der Cloud des Entwicklers. Du verbindest dich übers Internet, ohne etwas zu installieren, aber was du sendest, läuft über die Server des Entwicklers.
Wird er noch gepflegt?
Das GitHub-Repo wurde zuletzt – geändert, und die neueste Version (0.3.0) kam vor 2 Monaten in die Registry.
Welche Apps können ihn nutzen?
Apps, die MCP unterstützen, etwa Claude Desktop, Claude Code, Cursor und VS Code. Er verbindet sich per URL, also funktionieren auch Apps, die Remote-MCP-Server akzeptieren, zum Beispiel ChatGPT im Entwicklermodus.
Was kann ich stattdessen nutzen?
In derselben Kategorie: Context7, Codebase Memory, Exa
Alternativen
Server derselben Kategorie von anderen Entwicklern, sortiert nach Sternen.
So liest du eine Karte:↓ Downloads pro Wochei★ GitHub-SterneiDrei Säulen: Bewertungen · Checks · NutzungiAktualisiert = neueste Version in der Registry veröffentlichti
Codebase Memory
Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.
Exa
Connect AI agents to Exa for web search, content fetching, and multi-step research.
README vom Entwickler
README öffnen
Unverändert aus dem Repo des Entwicklers übernommen. PopNx MCP hat den Inhalt weder geprüft noch empfiehlt es ihn. HTML, Bilder und Skripte wurden entfernt. Links führen von dieser Website weg.
AltoRank: open-source, self-hosted AI SEO content writer (Outrank alternative)
An open-source alternative to Outrank and Jasper. AltoRank researches a keyword, writes the article, scores it and fact-checks it: a figure that cites a page is looked for on that page, and one with no source is flagged for the reviewer. Every draft can be copied as Markdown (front matter included) or HTML, or downloaded as a .md file, for you to paste wherever you publish. Approve it, paste it, then Mark as published records the live URL, and the article is tracked from there: indexing and rank.
AltoRank never publishes to your site without an approval recorded under a named person. Approve each draft by hand, or set a rule that approves drafts after a hold unless you hold them (the rule publishes through a CMS connection, which is built but not yet verified end to end; see Status). Agents can research and draft through the MCP server and the agent API. Neither can approve, and neither can publish anything a person has not already approved (the one publish-side call retries a failed publish of an approved article).
Self-host it free under AGPL-3.0, or use the hosted app at app.altorank.co. Open source, the whole product. No feature-gated tier, no ee/ directory.
Status
The hosted app at app.altorank.co is this repository, deployed from main (docs/deploy.md). A self-hosted install runs the same code against your own Supabase and your own API keys. Research, drafting, scoring, fact-checking, audits, rank tracking and Search Console / Bing sync run today; the table below has the detail. What is not finished yet:
- No paying customers, no case studies. Nothing here has a growth figure attached to it, and that is on purpose.
- CMS publishing is built but not yet verified end to end. The thirteen adapters are in
apps/web/lib/cms/and the connection form covers all of them, but none has been watched publishing to a live site yet, so the platform tiles on/connectask you to request an integration instead of offering Connect. Every draft can be copied as Markdown or HTML today. Details under What works today. - AI visibility tracking is built but not switched on. The probe, the daily cron and the
/geopage exist, but nothing in the app turns tracking on for a workspace or adds the prompts it measures, so the sidebar marks it "soon" (apps/web/lib/constants.ts). - The CLI is publishable, not yet on npm.
packages/altorank-clibundlesapps/web/scripts/cli.tsinto analtorankbinary (npx altorank auth whoamionce it is published); until then,npm run clifromapps/webdrives the same agent API from a checkout.skills/altorank/SKILL.mdis the skill file a coding agent reads, and it does install withnpx; see below.
Whether you want to read how it works, run it yourself or send a patch, everything is here.
The publishing decision
One gate, two ways through it. lib/publishing/core.ts refuses any article that is not approved or scheduled with approved_by set. Only the server writes those columns: a signed-in user's own database client cannot make an article approved, scheduled or live (migration 109), and an edit to approved text sends it back to review. What can write an approval:
- A person, from the editor (
approveArticle), recorded asapproved_by. The button checks for an active plan and refuses a bare, unsourced figure. - A rule a named member of the account set (
auto_approve, migration 079): the publish cron runs stricter checks than the Approve button - active plan, somewhere to publish, no unsourced figure, no named reviewer still to sign off, no failing audit item, SEO score at or above the floor - after a hold window (default 24h) during which the drafted email carries a Hold link.approved_byis whoever turned the rule on;approval_kindsaysauto. Held drafts carry the reason on their own row. Seelib/publishing/auto-approve.ts.
live is written after an approved publish, by Mark as published on an approved article, and by one thing that is not a publish: the nightly found-on-site check (lib/found-on-site/detect.ts) marks a draft live when its text is already on the customer's own site. That records something done outside AltoRank, sends nothing to a CMS, carries no approval, and can be undone from the editor.
What cannot write an approval: an agent. No MCP tool or agent API call approves an article or publishes a draft - not disabled, absent. The one publish-side call, altorank_retry_publish (POST /articles/{id}/retry-publish), re-runs a failed publish of an article a person already approved, and is refused for anything else. The MCP tools are all registered in apps/web/lib/mcp/server.ts, and its server instructions say so to the agent.
Competing tools ship the words "you stay in control" as copy. The difference is checkable here: every live row is an approved article (by click or by rule) or one found already published on the customer's own site.
What works today
| Keyword research + SERP analysis | DataForSEO |
| Domain audit | 9 readiness checks, crawl, PageSpeed |
| Article generation | research → draft → score → fact-check |
| Brand voice | per-workspace voice profiles |
| Publishing | Markdown and HTML export of every draft; 13 adapters (below), built but not yet verified end to end |
| Locales | 35 (apps/web/lib/seo/locales.ts) |
| Rank tracking | scheduled SERP checks |
| Search analytics | Google Search Console; Bing Webmaster Tools (clicks and impressions per day) |
| AI visibility | not switched on yet: built (lib/geo/, the /api/cron/geo sweeps, the /geo page) to sample whether AI answers name you and who they name instead, but nothing in the app turns it on for a workspace yet |
Publishing destinations (apps/web/lib/cms/adapter.ts) — thirteen adapters covering ten CMS platforms; WordPress is reachable two ways, and git and webhook are publishing targets rather than CMSs. Framer, Ghost, git, HubSpot, Magento, Notion, Shopify, Webflow, webhook, Wix, WooCommerce, WordPress, and the WordPress plugin — a second, recommended route to WordPress that installs a plugin and takes a per-site token instead of an application password (apps/web/lib/cms/wordpress-plugin.ts), which is why WordPress appears twice.
None of the thirteen has yet been verified end to end against a live site, so CONNECTABLE_CMS in apps/web/lib/cms/connectable.ts is empty on purpose and every CMS tile on /connect offers "Request integration" instead of Connect; adding an id to that set brings that tile's Connect button back. The connection form itself is unchanged and still covers all thirteen: the page's "New connection" button, a draft's publish panel and /connect?connect= all open it. Without a connection, the editor copies any draft as Markdown (front matter included) or HTML, or downloads it as a .md file.
Install the plugin
Claude Code. From a terminal:
claude plugin marketplace add AltoRank/altorank
claude plugin install altorank@altorank
Or inside a Claude Code session: /plugin marketplace add AltoRank/altorank, then /plugin install altorank@altorank.
plugins/altorank/ bundles the hosted MCP server (https://app.altorank.co/api/mcp, OAuth, no API key to copy) with a skill written for those tools. The same folder carries the portable plugin.json + mcp.json that ChatGPT and Codex read, and .agents/plugins/marketplace.json lists it for them.
Install the skill
npx skills add AltoRank/altorank
That puts skills/altorank/SKILL.md where Claude Code, Cursor, Codex, Copilot, Windsurf, Gemini CLI, Cline and the other agents the skills CLI supports will read it. The skill teaches an agent to drive the agent API (/api/agent/v1): preflight the key, check a site's readiness, list or suggest keywords, generate a draft into a human's review queue, edit a draft by find-and-replace, move the content plan. It never approves, deletes or publishes a draft; the API has no such calls. Its one publish-side call retries a failed publish of an article a person already approved.
It needs an API key, created at /settings/api-keys in the dashboard and exported as ALTORANK_API_KEY. Self-hosted installs also set ALTORANK_BASE_URL. skills/altorank/commands/ holds five thin slash commands for the common calls; the skills CLI does not register slash commands, so copy them into .claude/commands/ (Claude Code) or your agent's equivalent if you want them.
Running it
Requires Node 22+, and a Supabase project (local via Docker, or hosted). The full deployment story, hosted and self-hosted, is in docs/deploy.md; the Cloudflare assessment is in docs/deploy-cloudflare.md.
npm install
cp docker/.env.example apps/web/.env.local # every variable, with what each one enables npm run dev
Required before a self-hosted install works end to end:
- your Supabase URL, its anon key and its
SUPABASE_SERVICE_ROLE_KEY NEXT_PUBLIC_APP_URL, the address people open the app at. Every emailed link (signup confirmation, invites, password reset) is built from it, and the Docker build bakes it into the image, so set it beforedocker compose up --build; compose refuses to build without it.ANTHROPIC_API_KEYENCRYPTION_KEYandCRON_SECRET(openssl rand -hex 32for each).docker composerefuses to start withoutCRON_SECRET, and without it no scheduled job runs.RESEND_API_KEYandRESEND_FROM_EMAIL(a sender on a domain verified in your Resend account). Signup confirms by email, so without them nobody can create an account and nobody can reset a password.
Add DATAFORSEO_LOGIN / DATAFORSEO_PASSWORD for keyword volume and rank tracking; without them those steps skip rather than fail. Everything else in the example file is optional and each one disables exactly one feature. The file says which. Product analytics (the two NEXT_PUBLIC_POSTHOG_* variables, project token and host) are optional too: without them the browser console says analytics are off and nothing else changes.
Other entry points:
npm run test # vitest, unit tier: mocks only, needs no services
npm run test:db # vitest, db tier: *.db.test.ts against the local Supabase only npm run smoke # research → prompt → model → fact check, against real APIs
and from apps/web:
npm run mcp # MCP server over stdio, for driving the engine from an AI assistant
npm run cli -- --help # the agent API from a shell; auth with ALTORANK_API_KEY npm run readiness -- # the agent-readiness checks on their own
Hosted MCP endpoint
The same tools are served at /api/mcp (Streamable HTTP) by the running app, so an MCP client adds one URL as a connector instead of running the stdio server: https://app.altorank.co/api/mcp on the hosted install, or your own origin when you self-host. Authentication is a bearer token, either an API key from /settings/api-keys or the token the built-in OAuth flow issues:
- discovery at
/.well-known/oauth-authorization-serverand/.well-known/oauth-protected-resource/api/mcp - dynamic client registration at
/api/oauth/register(public clients, PKCE S256 only) - consent at
/oauth/authorize, owner or admin only, write scope opt-in - token at
/api/oauth/token, authorization-code grant, no refresh token
The token a connector receives is an api_keys row (migration 080), so it is listed, expires and is revoked on /settings/api-keys like any other key. Claude Code registers it with claude mcp add --transport http altorank https://app.altorank.co/api/mcp; ChatGPT and Claude.ai take the same URL as a custom connector.
Nur der Anfang wird gezeigt; den Rest findest du im Repo