Deploy to Cloudflare
The reference instance lives at seo-navigator-mcp.autumn-recipe-cac7.workers.dev. This page is for people who want to run their own copy.
Prerequisites
Section titled “Prerequisites”- Cloudflare account (free plan is fine for testing — D1 included)
- Node.js 18+ on PATH
giton PATH- Wrangler CLI:
npm install -g wrangler(ornpx wranglerper-command)
1. Clone and install
Section titled “1. Clone and install”git clone https://github.com/supportsn/seo-navigator-mcpcd seo-navigator-mcpnpm installnpx wrangler loginwrangler login opens a browser, prompts you to authorize, then drops a token
into your local config. After that everything happens via the CLI.
2. Create the D1 database
Section titled “2. Create the D1 database”npx wrangler d1 create blog_mcpOutput includes a database_id. Paste it into wrangler.toml:
[[d1_databases]]binding = "DB"database_name = "blog_mcp"database_id = "<paste-here>"Then apply migrations:
npx wrangler d1 migrations apply blog_mcp --remote3. Set secrets
Section titled “3. Set secrets”The worker needs a master token (super-admin password) at minimum. Generate one:
$token = -join ((48..57) + (97..102) | Get-Random -Count 64 | ForEach-Object {[char]$_})$token | npx wrangler secret put MASTER_TOKENSave the token in a password manager — you’ll need it to log into /admin.
Optional, only if you plan to use Duda or GitHub App or Cloudflare Pages:
# Duda — Team plan or higher onlyecho "<duda_api_user>" | npx wrangler secret put DUDA_API_USERecho "<duda_api_pass>" | npx wrangler secret put DUDA_API_PASS
# GitHub App (Phase J — required for markdown sync and Astro tools)# See /claude/tokens/ for how to create the GitHub App.echo "<app_id>" | npx wrangler secret put GITHUB_APP_IDecho "<app_slug>" | npx wrangler secret put GITHUB_APP_SLUGecho "<client_id>" | npx wrangler secret put GITHUB_APP_CLIENT_IDecho "<client_secret>" | npx wrangler secret put GITHUB_APP_CLIENT_SECRETGet-Content "<path-to-pem>" -Raw | npx wrangler secret put GITHUB_APP_PRIVATE_KEY
# Cloudflare Pages API (optional — enables check_astro_deploy tool)echo "<cf_api_token>" | npx wrangler secret put CLOUDFLARE_API_TOKENecho "<cf_account_id>" | npx wrangler secret put CLOUDFLARE_ACCOUNT_ID4. Deploy
Section titled “4. Deploy”npx wrangler deployThe CLI prints your worker URL, format https://seo-navigator-mcp.<account-subdomain>.workers.dev.
5. Log into admin
Section titled “5. Log into admin”Open https://<your-worker>.workers.dev/admin/login, switch to the Master
token tab, paste the value you just generated, and sign in.
From there:
- Create your first user account at
/admin/users(super-admin only) - Register your first WordPress / Duda / Astro site at
/admin/sites - Mint a token for Claude Desktop at
/admin/tokens - Wire Claude per Claude Desktop setup
Updating
Section titled “Updating”Pull latest code from GitHub, then:
git pullnpm installnpx wrangler d1 migrations apply blog_mcp --remotenpx wrangler deployMigrations are idempotent — already-applied ones are skipped. Secrets persist across deploys.
Free tier limits as of 2026:
| Resource | Free limit | Realistic monthly usage |
|---|---|---|
| Worker requests | 100k/day | ~1k for solo, well under |
| D1 reads | 5M/day | <10k for typical workflows |
| D1 writes | 100k/day | <500 for typical workflows |
| Wall time | 10ms CPU per request | Plenty — most calls are <5ms |
Effectively free for personal use. Paid plan ($5/month) only matters if you serve multiple agencies on one worker.