mcp-local-rank-map-pack-tracker
LocalAbout mcp-local-rank-map-pack-tracker
An Apify-backed MCP server for tracking Google organic, map pack, and local finder rankings by keyword and location. It returns listing details and can compare results over time.
Key features
- 01Organic, map pack, and finder positions
- 02Searches by keyword and location
- 03Matched listing details
- 04Top domains and businesses
- 05Position history with state_key
Use cases
- 01Compare local rankings across cities
- 02Track a business for multiple search terms
- 03Review weekly ranking changes
MCP support
Exposes the `track_local_rankings` tool to MCP clients. It starts the Apify actor, waits for completion, and returns dataset rows.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
npx -y @mambalabsdev/mcp-local-rank-map-pack-trackerAPIFY_TOKENSecretApify API token from https://console.apify.com/account/integrationsLocal servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.
Tools
1Saved tool list · updated 1w ago
| Parameter | Type | Required | Description |
|---|---|---|---|
| country | string | No | Two letter country code for the Google market and proxy exit. Default US. |
| keywords | array | Yes | Search terms to check, for example plumber. Up to 500 keyword and location pairs per run. |
| language | string | No | Google interface language. Default en. |
| locations | array | Yes | Where each search is made from: a place name such as Austin, Texas, United States, or coordinates such as 30.2672,-97.7431. |
| state_key | string | No | Schedule name. Keeps positions between runs so each row carries the previous positions and the change. |
| business_name | string | No | The name on your Google Business Profile, used to find you on the map when your listing shows no website or a different one. |
| organic_depth | string | No | Organic positions to check: 10, 20, 30, or 50. Each 10 after the first is one extra page event. Default 10. |
| target_domain | string | No | Your website, for example weplumbatx.com. Give it, business_name, or both. |
| max_charge_usd | string | No | Optional. The run stops before any row that would take its charges over this amount. |
| include_local_finder | enum | No | Open the full map list (top 20) when you are not in the 3 result map pack; one extra page event. Default true.true | false |
Details
From the project READMELocal Rank and Map Pack Tracker MCP Server
An MCP server for the Mamba Labs Local Rank and Map Pack Tracker actor on Apify. Give it keywords, locations, and a domain or business name. Each run searches Google from each location and returns one row per keyword and location with the organic position, the map pack position, and the local finder position.
What's Inside
- What it does
- Quick start
- Prerequisites
- Example prompts
- Tool
- Inputs
- Pricing
- Your keys
- Full actor documentation
- License
What it does
- Each place name is turned into coordinates and the Google search is placed at that point, so a check for Austin returns the Austin map pack.
- Per row:
organic_position(up to 50 deep),local_pack_position(1 to 3),local_finder_position(top 20), and the matched listing's rating, review count, category, phone, website, and address. top_organic_domainsandtop_local_businessesname who holds the top spots.- With
state_key, each row carries the previous positions and the change, so a weekly schedule becomes a rank history. - An empty position means not found in the positions checked. Blocked rows come back free with a
row_statussaying so.
All of the work runs on Apify. This package is a thin client that starts the actor run, waits for it, and hands back the dataset rows.
Quick start
You need Node.js 18 or newer and an Apify account with an API token.
Add this to your Claude Desktop config (claude_desktop_config.json), Cursor, or any MCP client:
{
"mcpServers": {
"mamba-local-rank-map-pack-tracker": {
"command": "npx",
"args": [
"-y",
"@mambalabsdev/mcp-local-rank-map-pack-tracker"
],
"env": {
"APIFY_TOKEN": "your-apify-token"
}
}
}
}
Restart the client. The track_local_rankings tool appears.
Prerequisites
- Node.js 18 or newer.
- An Apify API token from console.apify.com/account/integrations, set as
APIFY_TOKEN. The server lists its tool without a token; a call needs one.
Example prompts
- "Where does weplumbatx.com rank for plumber and emergency plumber in Austin and Round Rock?"
- "Check the map pack position of We Plumb LLC for drain cleaning in 30.2672,-97.7431."
- "Track my dental clinic for dentist near me in five London boroughs every week and show what changed."
Tool
track_local_rankings. One tool. Example arguments:
{
"keywords": ["plumber", "emergency plumber"],
"locations": ["Austin, Texas, United States", "Round Rock, Texas, United States"],
"target_domain": "weplumbatx.com",
"business_name": "We Plumb LLC"
}
Inputs
Every buyer facing input of the actor, unchanged. Omitted inputs take the actor's own defaults. Numbers and booleans are sent as strings.
| Input | Type | Description |
|---|---|---|
keywords | array | Search terms. Required |
locations | array | Place names or coordinates. Required |
target_domain | string | Your website. Give it, business_name, or both |
business_name | string | The name on your Google Business Profile |
country | string | Google market and proxy exit. Default US |
language | string | Google interface language. Default en |
organic_depth | string | 10, 20, 30, or 50. Default 10 |
include_local_finder | string | true or false. Default true |
state_key | string | Schedule name for change tracking |
max_charge_usd | string | Optional cost cap for the run |
Pricing
Pay per event on Apify, billed to your Apify account. Prices in USD.
| Event | Free plan | Bronze | Silver | Gold |
|---|---|---|---|---|
rank-check, one keyword in one location, Google page one included | $0.055 | $0.05225 | $0.0495 | $0.04675 |
extra-page, organic page 2 and up, or the local finder | $0.0495 | $0.0171 | $0.0162 | $0.0153 |
apify-actor-start, per run start | $0.002 | $0.002 | $0.002 | $0.002 |
Blocked and error rows are free.
Your keys
The actor needs no key. It reads Google result pages through the Apify Google SERP proxy and holds no key of any kind. Mamba Labs pays the platform and proxy costs of the run.
Full actor documentation
apify.com/mambalabs/local-rank-map-pack-tracker
License
MIT. See LICENSE.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.