Ever notice the same roofer shows up in every town you search? Open their website and you'll usually find out why: a page for every one of those towns. Sometimes a page for every service in every town. Now Claude can pull that whole list for you, with a tool called Context.dev. (It turns any website into clean data. You plug it into Claude as an MCP: a connector that lets Claude use another app. The one tool this guide uses, web-map, only reads a list of a site's public pages.)
So I ran our own company against a competitor. Towns? We won, 69 to 25. Then the part that stung: they had a roofing page in 20 of those towns, and we had none. This is the whole setup from that video: connecting it to Claude Code (one command and a sign-in) or to the Claude app (no terminal), the exact prompt, a first test on your own site, what it costs (the two maps were 1 credit each, out of 1,000 free a month), and what breaks. One thing it can't tell you: whether any of those pages actually rank. A page in a town isn't the phone ringing in that town. That's the next video.
Start here: paste this into Claude Code
Install Claude Code first if you don't have it (step 1 under “Connect Context.dev to Claude Code” below), and make your free account at context.dev (no card). Then run these lines in your terminal: they make a folder, plug Context.dev in, and start Claude. Inside Claude Code, type /mcp, pick context and sign in in your browser. Then paste the prompt. It walks you through the rest and asks before anything spends a credit.
Using the Claude app instead? Do “Or: connect it to the Claude app” below, then paste the same prompt into a new chat with Context.dev switched on.
cd ~
mkdir town-pages
cd town-pages
claude mcp add --transport http --scope user context https://mcp.context.dev/mcp
claudeAbout me: I run a home-service business and I'm not technical, so use plain words and short sentences.
Goal: find the town and service pages one competitor has on their website that mine doesn't, and turn that into a list of pages to build. We'll use Context.dev, a web-data service you can use as an MCP (a connector that lets you use another app). Its web-map tool lists a website's pages and their titles. Follow this guide; it's the source of truth for every command and every price:
https://receiptsgroup.com/guides/competitor-town-pages
My website: <yoursite.com>
What I sell: <your services, like roofing, gutters, impact windows>
One competitor: <theirsite.com>
Steps:
1. Check you have Context.dev's tools (web-map and get-usage are the two we need). If you don't, tell me to type /mcp, pick context and sign in in my browser (slash commands are mine to type, not yours). Then explain in two sentences what an MCP is and what a Context.dev credit is.
2. If you're Claude Code: write CLAUDE.md in this folder from the guide's box, with my details filled in, and show it to me before you save it. In the Claude app, skip this and follow the rules below for the whole chat.
3. Run get-usage (it's free) and tell me my credit balance and when it refills.
4. First test, my own site: ask me, then run web-map on my website (1 credit). Tell me how many pages it found and sort them into kinds (town pages, service pages, blog posts, projects, other) with a count of each. Show me five town page addresses as examples.
5. The comparison: ask me, then run web-map on my competitor's website (1 credit). From both lists, find every town page and the service it's for.
6. Show me a table: one row per town either of us has a page for, then for each service a column for me and a column for them. Under it: the towns they have and I don't, the towns we both have where they have a service page I don't (grouped by service), and the towns only I have, with a count on each list.
7. My build list: the missing pages, the most common gap first, each with the town, the service and the page address I'd use, following my own site's pattern. In Claude Code, save it as a new file with today's date in the name; in the Claude app, just show it.
Rules for every Context.dev call:
- Before any call that costs credits, tell me the tool, the website and the price (web-map is 1 credit, 2 with a search phrase) and wait for my yes. Every call is charged when it runs, so the asking is your job.
- Use web-map and get-usage only. Don't use web-crawl, web-scrape, web-answers, people-enrich, submit-batch or create-monitor unless I ask: they cost more, and a monitor keeps spending credits every time it runs.
- Only my website and the one competitor I named.
- If a result says it was cut short (truncated), don't map the whole site again. Tell me, suggest a urlRegex filter that matches just the town pages you can see, and wait for my yes. urlRegex is RE2: no lookahead or lookbehind.
- If a call fails, tell me the error and stop. Don't retry it over and over.
- Use only what the maps show. Never invent a page, a town or a number. A page on the list doesn't mean it ranks or gets calls, so never say it does.
- Leave out any page named after a person (a customer's project, a review, a team member).
- Don't copy the competitor's titles or wording into my build list.
- Never ask me for, print or save a key, token or password.
House rules for this setup:
- Go one step at a time and wait for me after each step.
- If you use a technical word, explain it in plain English the first time.
- Ask me before you assume anything about my business, my accounts or my setup.
- Stop and check with me before anything that costs money or spends credits.
- Stop and check with me before anything that sends, posts or publishes to real people.
- Stop and check with me before you delete or overwrite anything.How the pieces connect
This is the manual way: every step, every command and every price. Claude follows it too.
- 1Your questionYou, in Claude Code or the Claude app→ which towns do they have pages for that I don't?
- 2The priceClaude, before every call that costs credits→ the tool, the site and the credits; it waits for your yes
- 3Two site mapsContext.dev web-map: your site, then theirs (1 credit each)→ every page address and title in Context.dev's index
- 4The sortingClaude reads the addresses (like /roofing-davie or /service-areas/davie)→ the town and the service for each page
- 5The tableClaude→ towns down the side, services across, you vs them
- 6Your build listYou decide, Claude writes it up→ the pages you're missing, the most common gap first
Map both sites again in a month or two and compare with the list you saved. New pages they built show up as new rows.
Words you'll see
- MCP: a connector that lets Claude use another app. Context.dev's lets Claude read websites.
- Claude Code: Anthropic's AI assistant that works in a folder on your computer. You talk to it in plain English inside a terminal (the text-only window where you type commands).
- Connector: what the Claude app calls an MCP you've added.
- Context.dev: a web-data service for AI tools. It scrapes, crawls, searches and maps websites. This guide uses one of its tools.
- web-map (a site map): Context.dev's tool that lists a website's page addresses with their titles, from its index (its stored record of what's on the web). It doesn't open the pages themselves.
- Credit: how Context.dev charges. A site map is 1. The free plan gets 1,000 a month.
- Domain: a website's address without the https://, like
yoursite.com. - Town page (or service area page): a page about your work in one town, like “Roof replacement in Davie”.
- urlRegex: a filter that keeps only the page addresses that match a pattern. Context.dev uses a pattern style called RE2.
Connect Context.dev to Claude Code
Install Claude Code (skip if you have it)
Skip this if
claude --versionalready prints a version. You need a paid Claude plan: Pro, Max, Team or Enterprise. The free plan doesn't include Claude Code. The first time you runclaude, it sends you to your browser to log in.curl -fsSL https://claude.ai/install.sh | bash # open a NEW terminal window, then: claude --versionirm https://claude.ai/install.ps1 | iexMake your free Context.dev account
Wherecontext.dev, in your browser.Create a free account. The free plan is 1,000 credits a month, one request at a time, and no card.
Make a folder for this
Your rules file and your build lists land in here, not all over your computer. If the folder's already there,
mkdircomplains; ignore it.cd ~ mkdir town-pages cd town-pagesPlug Context.dev in
WhereAt the plain terminal prompt, inside yourtown-pagesfolder. Not inside Claude Code.That's the one command from the video.
--scope useradds it for every folder on your computer, which is how Context.dev's own instructions do it. Want it in this folder only? Use the second line instead (Claude Code calls that the local scope). Pick one, not both.claude mcp add --transport http --scope user context https://mcp.context.dev/mcpclaude mcp add --transport http context https://mcp.context.dev/mcpSign in
WhereInside Claude Code: typeclaudefirst, then/mcp.Pick context in the list and sign in to Context.dev in your browser. Rather skip the menu?
claude mcp login contextat the plain terminal prompt runs the same sign-in./mcpPermissionsYou're letting Claude Code use your Context.dev account, which spends your credits. The sign-in creates an API key namedContext MCPin your Context.dev account (a key is a password for apps; you never need to see this one). Claude Code keeps the sign-in, andclaude mcp remove contextdeletes it.Check it's there
At the plain terminal prompt,
claude mcp listshows context. If it says! Needs authentication, do the sign-in step again. Or just ask Claude: “What Context.dev tools do you have?” You should seeweb-map,web-scrape,web-crawl,web-searchandget-usageamong them.claude mcp listWrite CLAUDE.md: the rules Claude follows every time
Here's the thing: Context.dev charges the moment a tool runs. It doesn't ask first. So the asking is Claude's job, and this file is where you tell it. Claude Code reads it at the start of every session. It's an instruction, not a lock, so watch the first few calls and say no if it skips the price.
# Town pages: me vs a competitor This folder compares my website's town and service pages with one competitor's, using Context.dev's web-map (it lists a site's pages and their titles). ## My business - Website: <yoursite.com> - What I sell: <your services> - The competitor I compare with: <theirsite.com> ## Every Context.dev call 1. Tell me the tool, the website and the credits first (web-map: 1, or 2 with a search phrase), and wait for my yes. 2. After it runs, tell me what it cost (credits_consumed) and what's left (credits_remaining). 3. web-map and get-usage only, unless I ask. Never create a monitor: it spends credits every time it runs. 4. If a result is cut short (truncated), stop and suggest a urlRegex filter (RE2: no lookahead or lookbehind). ## Never - Never invent a page, a town or a number. Only what the maps show. - Never say a page ranks or gets calls. The map can't tell. - Never put pages named after a person (customers, reviews, team) in a table or a file. - Never copy the competitor's wording into my build list. - Never retry a failing call over and over. Stop and tell me. - Never ask me for, print or save a key, token or password.
Or: connect it to the Claude app (no terminal)
Works in Claude on the web and in the desktop app, including the free Claude plan, which allows one custom connector. No folder and no CLAUDE.md here, so the rules ride along in the setup prompt. (Context.dev's install page says it's also in Claude's connector directory. The custom connector way below works either way.)
Open Connectors
Go to Customize, then Connectors.
Add Context.dev as a custom connector
Click + Add, then Add custom connector. Name it
Context, paste the address below and click Continue. Claude shows the sign-in settings it found; click Continue again.https://mcp.context.dev/mcpSign in and finish
Under Authentication, pick Sign in now. Keep the sign-in settings Claude found, and leave Request headers empty: that box is for API keys, and you're signing in through the browser instead. Click Add, then sign in to Context.dev in the window that opens. If no window opens, find Context in your connectors and click Connect. (Context.dev's own page shortens all this to: +, Add custom connector, the address, Connect.)
PermissionsClaude's help center is blunt about custom connectors: they connect Claude to services Anthropic hasn't verified, so only add ones you trust. Every web-map call spends your Context.dev credits.Switch it on in a chat
Start a new chat, click the + button at the lower left, then Connectors, and make sure Context is on. Then paste the setup prompt from “Start here”. Claude's help center says to pick Allow always only for tools you trust to run unsupervised. At 1 credit a map it's not about the money; I'd still say yes one call at a time, so you know exactly what ran.
On a Team or Enterprise plan
An Owner adds it once for everyone: Organization settings, Connectors, Add, hover over Custom, pick Web, then the same name and address. Everyone else goes to Customize, Connectors, finds Context and clicks Connect.
First test: your balance (free), then your own site (1 credit)
Checking your balance costs nothing, and mapping your own site costs 1 credit. Start there: it's your site, so you'll know right away if the list looks wrong. Paste this into Claude Code (or your Claude chat with Context on).
Use Context.dev. Run get-usage (it's free) and tell me my credit balance and when it refills.
Then ask me before you spend anything. After my yes, run web-map on <yoursite.com>. Tell me what it cost (credits_consumed) and what's left, how many pages it found, and sort them into kinds: town pages, service pages, blog posts, projects, other, with a count of each. Show me five town page addresses as examples. Leave out any page named after a person.Good: your balance and refill date, a map that cost 1 credit (every answer says what it cost in credits_consumed), and a count of your pages by kind that roughly matches what you know is on your site. Bad: Claude says it has no Context.dev tools, or the call comes back with a 401. See “When it breaks”. Odd: pages you know exist are missing, or have no title. Context.dev builds the map from its index, and its docs say new pages can show up without titles for a while. The fix is in “When it breaks”.
When I ran this on our own company's site on 2026-10-12, it found 69 town pages, all for impact windows. Roofing had one county page and no town pages. That's the hole from the video. Your results will be your own.
The exact prompt: you vs a competitor
This is the one from the video. Two site maps at 1 credit each, and Claude does the sorting for free. Swap in your own site, the competitor and what you sell.
Which towns do they have pages for that I don't?
Two web-map calls, your site and theirs. Claude asks first, then sorts every page address by town and service.
Which towns do they have pages for that we don't? Use Context.dev's web-map. Our site: <yoursite.com>. Theirs: <theirsite.com>. What we sell: <service 1>, <service 2>, <service 3>. 1. Tell me what it will cost (web-map is 1 credit a site) and wait for my yes. 2. Map both sites. If either result comes back cut short (truncated), stop and tell me before you run anything else. 3. From the page addresses and titles, find every town page and the service it's for. A town page with no service in it counts as a general town page. Put county pages in their own list. 4. Show me a table: one row per town either of us has a page for. Columns: the town, then for each service, "us" and "them" (yes or blank). 5. Under the table: towns they have and we don't; towns we both have where they have a service page we don't, grouped by service; towns only we have. A count at the top of each list. 6. Tell me what it cost (credits_consumed) and what's left. Only what the maps show. Don't say whether their pages rank or get calls: the map can't tell you that. Leave out any page named after a person.Turn it into a build list
Free: no Context.dev call, just Claude working from what's already in the chat. This is the part that makes the first two credits worth it.
From the table, write my build list: the pages I'm missing, the most common gap first (for example, a service page in towns where I already have a town page). For each one: the town, the service and the page address I'd use, following my own site's pattern. Don't copy their titles or wording. No numbers that weren't in the maps. Put today's date at the top and call it a snapshot. In Claude Code, save it as a new file with today's date in the name.Big site? Map just the town pages
Context.dev caps each answer at 40,000 characters, so a big site's map can come back cut short. Running the same map again gets the same cut and costs another credit. Filter it down instead.
Map <theirsite.com> again with web-map, but only the town pages. Look at the addresses you already have, write a urlRegex that matches just those (RE2, so no lookahead or lookbehind, 256 characters at most), and show it to me with the price (1 credit). Wait for my yes.Add a second competitor
Add a second competitor: <theirsite2.com>. Ask me first, map it with web-map (1 credit), and add a column for them under each service in the same table. Then tell me which gaps both competitors have covered and I haven't.Check again next month
Map <yoursite.com> and <theirsite.com> again with web-map (ask me first: 2 credits). Compare with the build list file from <date>: pages they added, pages that are gone, and which of my missing pages I've built since.
What I got on 2026-10-12 (a snapshot, not a scoreboard): our own company had 69 town pages; the competitor had 25 towns. But they had a roofing page in 20 of those towns and an impact-door page in 23. We had no town-level roofing pages at all. They had 1 town we didn't, and 2 counties. The two maps cost 1 credit each.
What it costs
| Tool | Plan | List price |
|---|---|---|
| Context.dev | Free: 1,000 credits a month, 1 request at a time, no card, no overage | $0 |
| Context.dev | Developer: 7,500 credits a month, 10 requests at a time | $19 a month |
| Context.dev | Pro: 125,000 credits a month, 100 requests at a time | $99 a month |
| Context.dev | Extra credits on paid plans (Auto-Topup, in blocks of 1,000) | $2.20 per 1,000 on Developer, $1.80 on Pro |
| Claude app | Free plan: one custom connector, no Claude Code | $0 |
| Claude Code | Claude Pro, billed monthly | $20 a month |
| Claude Code | Claude Pro, billed yearly | $17 a month ($200 up front) |
| Claude Code | Claude Max | From $100 a month |
| Check | Context.dev tool | Credits |
|---|---|---|
| Your balance and refill date | get-usage | 0 |
| A site's page list | web-map | 1 |
| A site's page list, sorted by a search phrase | web-map with search | 2 |
| One page's content | web-scrape | 1 (2 with browser actions) |
| Every page's content | web-crawl | 1 per page, up to 500 pages a call |
| A web search | web-search | 1 per 10 results |
| A researched answer | web-answers | 10 (fast) or 100 (ultra, the default) |
| A person's details (not needed here) | people-enrich | 20 per match |
| A monitor that re-checks a page on a schedule | create-monitor | 1 per page every time it runs |
| A call that fails: bad input, sign-in, timeout, too many at once, server error | any | 0 |
Rough math for this whole guide: balance check 0, your site 1, the competitor 1, the table and the build list 0 (that's Claude, not Context.dev). That's 2 credits. On the free plan's 1,000 a month you'll run out of competitors long before you run out of credits. What eats credits is crawls, research answers and monitors, which is why the prompt keeps Claude off them unless you ask.
One catch on the free plan: one request at a time. That's fine here, since Claude runs the two maps one after the other.
When it breaks
command not found: claude, or 'claude' is not recognized
claude mcp list says ! Needs authentication, or Claude says it has no Context.dev tools
claude, type /mcp, pick context and finish in your browser. Or run claude mcp login context at the plain terminal prompt.Context.dev works in one folder but not another
--scope user only adds it to the folder you ran it in. Start claude in that folder, or add it for every folder with the --scope user line.The sign-in keeps looping
claude mcp logout context, then claude mcp login context (or /mcp, pick context, Clear authentication, then sign in). In the Claude app, remove the connector and add it again.No Context.dev tools in a Claude app chat
/mcp, refresh the app, then click + at the lower left, Connectors, and switch Context on for that chat. On the free Claude plan you get one custom connector, so another one has to go first.Claude answers from memory instead of mapping the site
The answer says it was cut short (truncated)
urlRegex filter for just the town pages, or a smaller maxLinks.The urlRegex filter errors out, or matches nothing
/service-areas/. A rejected filter isn't charged; one that runs and finds nothing still counts as a map.Pages you know exist are missing, or have no title
sitemapUrl set to the site's sitemap (often /sitemap.xml; 1 credit), or with includeSubdomains on if the pages live on a subdomain like blog.. Or just open the site and check.Claude puts a page in the wrong town or service
401 USAGE_EXCEEDED
get-usage (free) to see when that is, or move to a paid plan. Don't retry: it won't change.401 DISABLED
429: too many requests
408 REQUEST_TIMEOUT
urlRegex filter.Next month's count is different
You want it gone
claude mcp remove context, which also deletes the sign-in it stored. Claude app: Customize, Connectors, then Remove (or the three dots) next to Context. Then, as Context.dev's install page says, disable the Context MCP key on your API keys page (context.dev/dashboard/api-keys), from the key's action menu.That's the setup
Two site maps, two credits, and every town page your competitor built that you didn't, sorted by service. Whether those pages actually rank is the next video; until then, my Manifold guide shows where a site ranks on Google.
Would you rather have someone build those pages on a site you own? That's our Custom SEO.
Checked on Oct 12, 2026 against
Every claim about a third-party tool in this guide (plans, prices, menu paths, commands, limits) was checked against these official pages on Oct 12, 2026. These screens change often: if something looks different, trust the page over this guide.
- Context.devWhat it is (a web data API for AI agents: scrape, map, crawl, search), the free account with no card.
- Context.dev: PricingFree 1,000 credits a month, 1 request at a time, no card, no overage; Developer $19, Pro $99; top-up rates; yearly saves two months (checked 2026-10-12).
- Context.dev Docs: Install the MCP
claude mcp add --transport http --scope user context https://mcp.context.dev/mcp,/mcporclaude mcp login context, the Claude app's custom connector, theContext MCPkey, the 40,000-character cap, troubleshooting, removing access. - Context.dev Docs: CreditsMap 1 credit (2 with
search), scrape, crawl, search, answers, people, monitors; what isn't charged;credits_consumedandcredits_remaining; the monthly free grant. - Context.dev Docs: MapURLs with titles; an inventory, not a guarantee of every page; new URLs can lack titles; no sitemap means home-page links.
- Context.dev Docs: Map filters and search
urlRegex(RE2, no lookarounds, 256 characters),maxLinks(10,000 default),includeSubdomains,sitemapUrl,search. - Context.dev API reference: MapThe response fields,
401 USAGE_EXCEEDED,408 REQUEST_TIMEOUT,429. - Context.dev Docs: Rate limitsConcurrency limits and the
429withRetry-After. - Context.dev Docs: Troubleshooting
USAGE_EXCEEDED,DISABLED(free keys switched off after repeated failed requests), and the other error codes. - Context.dev Docs: API keysThe API keys page and disabling or deleting a key from its action menu.
- Context.dev on Product HuntThe “Scrape Anything” launch: turn any website into clean data with one API call.
- Claude Code: MCP
claude mcp add --transport http, local and user scopes,/mcpandclaude mcp login/logout, Clear authentication,claude mcp listandremove, Needs authentication. - Claude Code: Advanced setupInstall commands,
claude --version, a paid plan required (the free plan doesn't include Claude Code). - Claude Code: Memory (CLAUDE.md)CLAUDE.md is loaded at the start of every session, as context, not enforced configuration.
- Claude Help: Custom connectorsCustomize, Connectors, + Add, Add custom connector, the sign-in options, the + menu in a chat, Allow always, one custom connector on the free plan, Team and Enterprise owners, removing one.
- Claude: Plans and pricingFree with connectors and without Claude Code; Pro at $20 monthly or $17 a month billed yearly ($200 up front); Max from $100 (checked 2026-10-12).
