MCPcopy
hub / github.com/towfiqi/serpbear

github.com/towfiqi/serpbear @v3.1.0 sqlite

repository ↗ · DeepWiki ↗ · release v3.1.0 ↗
279 symbols 770 edges 135 files 3 documented · 1%
README

SerpBear

SerpBear

Codacy Badge GitHub GitHub package.json version Docker Pulls StandWithPalestine

Documentation | Changelog | Docker Image

SerpBear is an Open Source Search Engine Position Tracking and Keyword Research App. It allows you to track your website's keyword positions in Google and get notified of their position change.

Easy to Use Search Engine Rank Tracker

Features

  • Unlimited Keywords: Add unlimited domains and unlimited keywords to track their SERP.
  • Email Notification: Get notified of your keyword position changes daily/weekly/monthly through email.
  • SERP API: SerpBear comes with built-in API that you can use for your marketing & data reporting tools.
  • Keyword Research: Ability to research keywords and auto-generate keyword ideas from your tracked website's content by integrating your Google Ads test account.
  • Google Search Console Integration: Get the actual visit count, impressions & more for Each keyword.
  • Mobile App: Add the PWA app to your mobile for a better mobile experience.
  • Zero Cost to RUN: Run the App on mogenius.com or Fly.io for free.

How it Works

The App uses third party website scrapers like ScrapingAnt, ScrapingRobot, SearchApi, SerpApi, HasData or Your given Proxy ips to scrape google search results to see if your domain appears in the search result for the given keyword.

The Keyword Research and keyword generation feature works by integrating your Google Ads test accounts into SerpBear. You can also view the added keyword's monthly search volume data once you integrate Google Ads.

When you integrate Google Search Console, the app shows actual search visits for each tracked keywords. You can also discover new keywords, and find the most performing keywords, countries, pages.you will be able to view the actual visits count from Google Search for the tracked keywords.

Getting Started

  • Step 1: Deploy & Run the App.
  • Step 2: Access your App and Login.
  • Step 3: Add your First domain.
  • Step 4: Get a free API key from ScrapingRobot or select a paid provider (see below) . Skip if you want to use Proxy ips.
  • Step 5: Setup the Scraping API/Proxy from the App's Settings interface.
  • Step 6: Add your keywords and start tracking.
  • Step 7: Optional. From the Settings panel, setup SMTP details to get notified of your keywords positions through email. You can use ElasticEmail and Sendpulse SMTP services that are free.

SerpBear Integrates with popular SERP scraping services

If you don't want to use proxies, you can use third party Scraping services to scrape Google Search results.

Service Cost SERP Lookup API
scrapingrobot.com Free 5000/mo Yes
serply.io $49/mo 5000/mo Yes
serpapi.com From $50/mo From 5,000/mo Yes
spaceserp.com $59/lifetime 15,000/mo Yes
SearchApi.io From $40/mo From 10,000/mo Yes
valueserp.com Pay As You Go $2.50/1000 req No
serper.dev Pay As You Go $1.00/1000 req No
hasdata.com From $29/mo From 10,000/mo Yes

Tech Stack

  • Next.js for Frontend & Backend.
  • Sqlite for Database.

Extension points exported contracts — how you extend this code

ScraperSettings (Interface)
(no doc)
types.d.ts
FooterProps (Interface)
(no doc)
components/common/Footer.tsx
KeywordIdeasUpdaterProps (Interface)
(no doc)
components/ideas/KeywordIdeasUpdater.tsx
CrazySerpResult (Interface)
(no doc)
scrapers/services/crazyserp.ts
SerperResult (Interface)
(no doc)
scrapers/services/serper.ts
SearchApiResult (Interface)
(no doc)
scrapers/services/searchapi.ts
SerplyResult (Interface)
(no doc)
scrapers/services/serply.ts
ValueSerpResult (Interface)
(no doc)
scrapers/services/valueserp.ts

Core symbols most depended-on inside this repo

updateSettings
called by 23
components/settings/Settings.tsx
verifyUser
called by 15
utils/verifyUser.ts
formattedNum
called by 15
utils/client/helpers.ts
parseKeywords
called by 11
utils/parseKeywords.ts
getAppSettings
called by 7
pages/api/settings.ts
useFetchSettings
called by 7
services/settings.ts
readLocalSCData
called by 6
utils/searchConsole.ts
filterKeywords
called by 6
utils/client/sortFilter.ts

Shape

Function 258
Interface 11
Class 6
Method 4

Languages

TypeScript100%

Modules by API surface

utils/scraper.ts11 symbols
utils/searchConsole.ts10 symbols
services/keywords.tsx9 symbols
utils/adwords.ts8 symbols
services/domains.tsx8 symbols
utils/generateEmail.ts7 symbols
services/settings.ts7 symbols
services/adwords.tsx6 symbols
pages/api/settings.ts5 symbols
pages/api/keywords.ts5 symbols
pages/api/domains.ts5 symbols
components/keywords/KeywordFilter.tsx5 symbols

Dependencies from manifests, versioned

@googleapis/searchconsole1.0.5 · 1×
@isaacs/ttlcache1.4.1 · 1×
@testing-library/jest-dom6.9.1 · 1×
@testing-library/react14.0.0 · 1×
@types/cookies0.7.7 · 1×
@types/cryptr4.0.3 · 1×
@types/jest29.5.8 · 1×
@types/jsonwebtoken8.5.9 · 1×
@types/node18.11.0 · 1×
@types/nodemailer6.4.6 · 1×
@types/react18.2.0 · 1×

For agents

$ claude mcp add serpbear \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact