Skip to main content
Glama
mambalabsdev

Local Rank and Map Pack Tracker MCP Server

Local Rank and Map Pack Tracker MCP Server

Smithery Glama score MCP Registry npm version npm downloads license mcpservers.org

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

Related MCP server: Google Local MCP Server

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_domains and top_local_businesses name 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_status saying 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

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.

Available Tools

1 tool
track_local_rankingsTrack local rankingsA
Read-only

Check where a business ranks on Google for each keyword in each location, with the search placed at that location. Give keywords, locations (place names or coordinates), and target_domain and or business_name. One row per keyword and location: organic_position (up to 50 deep), local_pack_position (the 3 result map pack on page one), local_finder_position (top 20 map list), the matched listing's rating, review count, category, phone, and website, the top 10 organic domains and top map listings, and, with state_key, the previous positions and the change. An empty position means not found in the positions checked. Blocked rows come back free with a row_status saying so. A run that does not succeed is returned as an error with its run ID. Read-only; requires an APIFY_TOKEN; Apify charges per rank check and per extra Google page read.

ParametersJSON Schema
NameRequiredDescriptionDefault
countryNoTwo letter country code for the Google market and proxy exit. Default US.
keywordsYesSearch terms to check, for example plumber. Up to 500 keyword and location pairs per run.
languageNoGoogle interface language. Default en.
locationsYesWhere each search is made from: a place name such as Austin, Texas, United States, or coordinates such as 30.2672,-97.7431.
state_keyNoSchedule name. Keeps positions between runs so each row carries the previous positions and the change.
business_nameNoThe name on your Google Business Profile, used to find you on the map when your listing shows no website or a different one.
organic_depthNoOrganic positions to check: 10, 20, 30, or 50. Each 10 after the first is one extra page event. Default 10.
target_domainNoYour website, for example weplumbatx.com. Give it, business_name, or both.
max_charge_usdNoOptional. The run stops before any row that would take its charges over this amount.
include_local_finderNoOpen the full map list (top 20) when you are not in the 3 result map pack; one extra page event. Default true.

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations: it discloses the APIFY_TOKEN requirement, that Apify charges per rank check and per extra page read, that blocked rows are returned free with a row_status, and that failed runs come back as an error carrying the run ID. These are cost, auth, and failure-mode details an agent cannot infer from readOnlyHint/openWorldHint alone.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Information-dense and front-loaded with the core purpose, and essentially every sentence carries needed detail (depth limit, map pack definition, block handling, cost). The return-field enumeration is a long run-on list and could be broken up for scanability, which keeps it from a 5.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, 10 parameters, and no annotations covering cost or failure behavior, the description carries the full burden and does: it explains each returned field group, what an empty position means, how blocked rows are surfaced, and how failures are reported.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so every parameter is already documented in the schema, which sets the baseline at 3. The description adds little new per-parameter syntax, though it does reinforce the target_domain/business_name either-or choice and clarifies that state_key is what unlocks previous-position deltas.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: 'Check where a business ranks on Google for each keyword in each location, with the search placed at that location.' The geo-specific framing distinguishes it from a generic rank checker, and with no siblings there is nothing further to disambiguate.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Tells the agent what inputs are needed ('Give keywords, locations (place names or coordinates), and target_domain and or business_name') and when optional features apply ('with state_key, the previous positions and the change'). It stops short of explicit when-not-to-use or exclusions, but with no alternatives available the guidance is practically complete.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool updatev1.0.0
    • First observedtrack_local_rankings

TDQS

A4.4/5.0

Scored across 1 tool

Disambiguation5/5

There is only one tool, so there is no possibility of selecting the wrong tool or confusing overlapping purposes. Its purpose is clearly scoped to local rank and map pack tracking.

Naming Consistency5/5

The single tool name track_local_rankings follows a clear verb_noun snake_case convention. There are no inconsistent naming styles to compare against.

Tool Count3/5

A single tool is thin for a server surface, even though this tool is unusually comprehensive. It bundles many related operations into one monolithic call rather than exposing separate capabilities.

Completeness4/5

The tool covers core rank tracking deeply: organic, local pack, local finder, listing metadata, top competitors, state comparison, blocked rows, and errors. Minor gaps remain around managing or retrieving prior runs beyond the state_key mechanism.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables professional SEO/SEM research with geolocalized keyword discovery, competitor analysis, and SERP ranking insights using DataForSEO API.
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables searching Google Local for businesses by keyword and location, returning details like name, address, phone, hours, ratings, and more. Useful for lead generation, local SEO, and market analysis.
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Enables AI assistants to search Google SERPs, track rankings across locations, run Lighthouse SEO audits, find broken internal links, analyze backlinks, and get keyword volume data through a hosted service.
    15
    182 npm
    MIT
  • F
    license
    Not graded
    quality
    B
    maintenance
    Enables tracking keyword positions over time, creating rank trackers, checking current ranks, and retrieving historical ranking data programmatically.
    -