Connect Context.dev to Claude, map your site and one competitor's, and get a town-by-service table of the pages they have and you don't. Free to start.
Swipe or tap Next · checked on 2026-10-12
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.
Make the folder, add Context.dev, start Claude
cd ~
mkdir town-pages
cd town-pages
claude mcp add --transport http --scope user context https://mcp.context.dev/mcp
claudeThe setup prompt (copy all of it) · lines 1-1 of 36. Copy all copies the whole prompt; read it in full on the page.
About me: I run a home-service business and I'm not technical, so use plain words and short sentences.About 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.This is the manual way: every step, every command and every price. Claude follows it too.
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.
yoursite.com.This shows what a competitor built, not what works. A page in a town doesn't mean it shows up on Google there, or that it's ever made the phone ring. And Context.dev's own docs call a site map an inventory, not a guarantee of every page, so it can miss some. Treat the table as a list of questions, not a scoreboard. Whether those pages rank is the next video.
Every page on the list is one anybody can open on their site. Use it to see the gaps, then write your own pages in your own words. If you share the table, blur their name, and don't post it as a claim about them. And check your own list before you share it: project and review pages are often named after customers.
Skip this if claude --version already 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 run claude, it sends you to your browser to log in.
Install (Mac, Linux, WSL)
curl -fsSL https://claude.ai/install.sh | bash
# open a NEW terminal window, then:
claude --versionInstall (Windows PowerShell)
irm https://claude.ai/install.ps1 | iexCreate a free account. The free plan is 1,000 credits a month, one request at a time, and no card.
Your rules file and your build lists land in here, not all over your computer. If the folder's already there, mkdir complains; ignore it.
Make the folder and go into it
cd ~
mkdir town-pages
cd town-pagestown-pages folder. Not inside Claude Code.That's the one command from the video. --scope user adds 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.
Every folder (the one from the video)
claude mcp add --transport http --scope user context https://mcp.context.dev/mcpOr: this folder only
claude mcp add --transport http context https://mcp.context.dev/mcpclaude first, then /mcp.Pick context in the list and sign in to Context.dev in your browser. Rather skip the menu? claude mcp login context at the plain terminal prompt runs the same sign-in.
Type this in Claude Code
/mcpContext MCP in your Context.dev account (a key is a password for apps; you never need to see this one). Claude Code keeps the sign-in, and claude mcp remove context deletes it.At the plain terminal prompt, claude mcp list shows 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 see web-map, web-scrape, web-crawl, web-search and get-usage among them.
Check from the terminal
claude mcp listHere'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.
CLAUDE.md · Part 1 of 2 · Copy copies all 22 lines
# 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).# 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.CLAUDE.md · Part 2 of 2 · Copy copies all 22 lines
## 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.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.)
Go to Customize, then Connectors.
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.
The connector address
https://mcp.context.dev/mcpUnder 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.)
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.
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.
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).
Prompt: the first test
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.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.
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.
Two web-map calls, your site and theirs. Claude asks first, then sorts every page address by town and service.
Prompt: the comparison (2 credits) · lines 1-3 of 12. Copy all copies the whole prompt; read it in full on the page.
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>.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.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.
Prompt: the build list (free)
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.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.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.
Prompt: only the town pages (1 credit)
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.Prompt: one more competitor (1 credit)
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.Prompt: what changed (2 credits)
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.
web-map reads Context.dev's index of page addresses and titles: 1 credit for the whole list. A crawl opens every page and costs 1 credit a page (up to 500 a call). To see which towns have pages, the addresses are enough. If Claude reaches for a crawl, ask it why.
Checked 2026-10-12 on context.dev/pricing and claude.com/pricing. Context.dev also lists bigger plans (Growth, Scale, Enterprise) and says yearly billing saves two months. Unused credits normally don't roll over. On the free plan there's no overage: when credits run out, calls stop with 401 USAGE_EXCEEDED. Prices change: check before you buy.
get-usageweb-mapweb-map with searchweb-scrapeweb-crawlweb-searchweb-answerspeople-enrichcreate-monitorFrom Context.dev's credits page, checked 2026-10-12. Every answer says what it cost (credits_consumed) and what's left (credits_remaining). A page-not-found (404) is billed at the base price. The two maps in my video cost 1 credit each.
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.
command not found: claude, or 'claude' is not recognizedOpen a new terminal window after installing. Still missing? The install folder isn't on your PATH yet: Claude Code's install troubleshooting page has the fix for your system.
claude mcp list says ! Needs authentication, or Claude says it has no Context.dev toolsYou added it but didn't sign in. Start claude, type /mcp, pick context and finish in your browser. Or run claude mcp login context at the plain terminal prompt.
The command without --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.
Context.dev's fix: remove the old sign-in and connect again. In Claude Code, 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.
Check the address ends in /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.
Name the tool and ask for a live lookup: “Use Context.dev's web-map on theirsite.com.” That's Context.dev's own advice. Also check you haven't told Claude to skip the tool when it asked.
truncated)Context.dev caps each answer at 40,000 characters, and a big site's list doesn't fit. Don't run the same map again (same cut, another credit). Use the “Big site?” prompt: a urlRegex filter for just the town pages, or a smaller maxLinks.
urlRegex filter errors out, or matches nothingIt's RE2, which has no lookahead or lookbehind, and it tops out at 256 characters. It matches the whole address, https:// and all. Ask Claude for something simpler, like a pattern that just matches /service-areas/. A rejected filter isn't charged; one that runs and finds nothing still counts as a map.
The map comes from Context.dev's index, which its docs call an inventory, not a guarantee of every page. New pages can show up without titles for a while, and a site with no sitemap only gives the links on its home page. Ask Claude to map it again with 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.
It's reading addresses and titles, not the pages. Ask it to show you the addresses behind any row that looks off, and to keep blog posts out of the town list. You know your towns better than it does.
401 USAGE_EXCEEDEDYou're out of credits. The free plan has no overage, so calls stop until your monthly refill. Ask Claude to run get-usage (free) to see when that is, or move to a paid plan. Don't retry: it won't change.
401 DISABLEDYour key's been switched off. Context.dev's docs say free accounts can have all their keys turned off after repeated failed requests, which is why the prompt tells Claude to stop on errors. Stop retrying, check your API keys page and your email from Context.dev, or contact their support.
429: too many requestsThe free plan runs one request at a time, and Claude sent two at once. Nothing was charged. Ask it to run the maps one after the other.
408 REQUEST_TIMEOUTThe map hit its deadline. Not charged. Try once more; if it times out again, map a smaller piece with a urlRegex filter.
Normal. Sites add and remove pages, and the index updates. Compare the same two sites the same way each time, and read the change, not one number.
Claude Code: 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.
What each page backs up is listed at the end of the full guide.
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.
Want help setting this up? Receipts Group builds these systems.
Open the full guide as a page (every file in full, plus the table of contents).