VNCNT Labs SEO & Search Data

Keyword volume, keyword ideas, domain SEO, Trends volume, AI visibility, Maps rank. Pay per result.

Hosted MCP Server

npx add-mcp 'https://mcp.apify.com/?tools=vncntlabs/keyword-search-volume,vncntlabs/keyword-ideas,vncntlabs/domain-seo-data,vncntlabs/google-trends-search-volume,vncntlabs/ai-search-visibility-tracker,vncntlabs/google-maps-rank-tracker,vncntlabs/google-ads-transparency,vncntlabs/google-news-scraper'

Installs into Claude Code, Codex, Cursor and more

Documentation

VNCNT Labs Apify examples

Minimal, runnable code for three tutorials on pulling SEO and search data through the Apify API. Each folder has the same call four ways: curl, Python (apify-client), Node.js (apify-client) and, where the tutorial uses it, an n8n workflow. The mcp/ folder connects Claude, ChatGPT or Cursor to the same Actors through Apify's MCP server.

FolderTutorialApify Actor
01-keyword-search-volumeBulk Google + Amazon keyword search volume (tutorial)Keyword Search Volume
02-competitor-seo-reportA competitor SEO report for any domain (tutorial coming soon)Domain SEO Data
03-google-trends-volumeGoogle Trends with real monthly-search numbers (tutorial coming soon)Google Trends with Search Volume

Setup

You need an Apify account and an API token (Apify Console > Settings > API & Integrations).

export APIFY_TOKEN=your_apify_token_here   # or copy .env.example to .env and load it; never commit it

pip install -r requirements.txt             # Python 3.10+
npm install                                 # Node 18+

Every example reads the token from the APIFY_TOKEN environment variable. Nothing in this repo contains a real token.

Run

# Python
python 01-keyword-search-volume/python_example.py
# Node
node 01-keyword-search-volume/node_example.mjs
# curl (synchronous: returns the dataset rows as JSON)
./01-keyword-search-volume/curl.sh

Each Python and Node script uses the tutorial's input by default. Pass a JSON file to use your own input:

python 02-competitor-seo-report/python_example.py my-input.json

test-inputs/ holds the smallest useful input for each Actor (1 keyword, 1 domain, 1 term). scripts/smoke_test.sh runs all six Python and Node examples with them.

Note for Python: apify-client 3.x returns a Run object, so the dataset ID is run.default_dataset_id. Code written for 1.x/2.x uses run["defaultDatasetId"] instead.

n8n

Import 01-keyword-search-volume/n8n-workflow.json (Workflows > Import from file). Then create a Header Auth credential with name Authorization and value Bearer <your token>, and select it on the HTTP Request node. Each keyword becomes one n8n item.

Claude, ChatGPT, Cursor (MCP)

FileUse it when
mcp/remote-oauth.jsonYour client supports remote MCP servers. You sign in to Apify in the browser, and no token goes in the file.
mcp/remote-bearer.jsonYou'd rather use a token. Clients that expand environment variables read ${APIFY_TOKEN}. Otherwise, paste your token.
mcp/local-stdio.jsonYour client only supports local servers (needs Node 18+). Replace the placeholder token.

Each config loads only the three Actors above plus Apify's Actor-search tools. Then ask something like "Get US Google and Amazon search volume for these 40 keywords and sort by volume per KD point."

Costs

All three Actors are pay-per-event, and you pay only for results returned. Current prices are on each Actor's Store page, and you can cap a run with maxTotalChargeUsd (Keyword Search Volume input) or the maximum charge setting on any run.

License

MIT, see LICENSE. The data comes from the Actors' providers under their terms. Not affiliated with Google or Amazon.