MCPHerramientas MCP/Seguimiento de posicionamiento SEO

Seguimiento de posicionamiento SEO

Seguimiento de rankings de palabras clave, puntos de cuadrícula, competidores y recomendaciones de IA.

get_ranking_overview

Readlistings:read

How this location ranks on Google (Google Maps / local-pack rank tracker) — Local-search Ranking Analytics OVERVIEW for a single location. Requires locationId. Returns: tracked keywords with their current avg grid rank; the available report months; the grid (per-point ranks) for the active/aggregated keyword; grid stats (top3Pct, top10Pct, avgRank); stat cards (best & worst keyword by avg rank, biggest gainer & dropper month-over-month, count of keywords not ranking); and the map center. Optional keywordId (focus one keyword's grid) and month (a specific report month) — omit for the aggregated latest view. Backs the SEO → Ranking Analytics 'Overview' tab.

Parámetros
locationIdstringobligatorio
Location id — the id from list_locations. Either id shape works.
keywordIdstringopcional
Focus a single tracked keyword's grid (from get_ranking_overview keywords[]). Omit for aggregated.
monthstringopcional
Report month YYYY-MM (from months[]). Omit for latest.
Solicitud de ejemplo
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_ranking_overview",
    "arguments": {
      "locationId": "string"
    }
  }
}
Respuesta de ejemplo
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "..."
      }
    ]
  }
}

La forma de la respuesta se muestra a modo ilustrativo — el contenido real depende de la herramienta y de tus datos.

MCPHerramientas MCP/Seguimiento de posicionamiento SEO/get_ranking_grid_point

get_ranking_grid_point

Readlistings:read

Drill into ONE grid cell of the rank map: the businesses ranked at that point for a keyword (rank, name, rating, review count, category, address, website, and whether it's you). Requires locationId, keywordId (from get_ranking_overview), and the cell's row + col (0-indexed grid coordinates). Optional month (defaults to latest). This is the 'click a grid point' drill-down.

Parámetros
locationIdstringobligatorio
Location id — the id from list_locations. Either id shape works.
keywordIdstringobligatorio
Tracked keyword id (from get_ranking_overview keywords[])
rownumberobligatorio
Grid row index (0-based)
colnumberobligatorio
Grid column index (0-based)
monthstringopcional
Report month YYYY-MM (optional; defaults to latest)
Solicitud de ejemplo
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_ranking_grid_point",
    "arguments": {
      "locationId": "string",
      "keywordId": "string",
      "row": 0,
      "col": 0
    }
  }
}
Respuesta de ejemplo
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "..."
      }
    ]
  }
}

La forma de la respuesta se muestra a modo ilustrativo — el contenido real depende de la herramienta y de tus datos.

MCPHerramientas MCP/Seguimiento de posicionamiento SEO/get_ranking_competitors

get_ranking_competitors

Readlistings:read

Who's beating this location on Google (Google Maps ranking) — Competitor DOMINANCE LEADERBOARD for a location's local-search grid. Requires locationId. Returns each competitor (and you, flagged isYou) with: rating, review count, avg grid rank, % of grid points in the top 3 (top3Pct), grid points covered, category, website, a per-keyword top-3 breakdown, and (when resolved) feature & hours comparison vs you. Backs the SEO → Ranking Analytics 'Competitors' tab leaderboard.

Parámetros
locationIdstringobligatorio
Location id — the id from list_locations. Either id shape works.
Solicitud de ejemplo
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_ranking_competitors",
    "arguments": {
      "locationId": "string"
    }
  }
}
Respuesta de ejemplo
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "..."
      }
    ]
  }
}

La forma de la respuesta se muestra a modo ilustrativo — el contenido real depende de la herramienta y de tus datos.

MCPHerramientas MCP/Seguimiento de posicionamiento SEO/get_ranking_rollup

get_ranking_rollup

Readlistings:read

Google ranking across locations — Multi-location Ranking roll-up across a client's (or the whole agency's) locations: per-location avg grid rank, top3Pct, top10Pct, best keyword, and the location's tags. Optional clientId scopes to one client; omit for agency-wide. Optional tags narrows to locations carrying ANY of the given internal tags (from list_location_tags). Aggregated from stored ranking reports.

Parámetros
clientIdstringopcional
Scope to one client (from list_clients; omit for agency-wide)
tagsstring[]opcional
Internal tags — narrow to locations carrying ANY of these (from list_location_tags). Each row also carries its location's tags.
Solicitud de ejemplo
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_ranking_rollup",
    "arguments": {}
  }
}
Respuesta de ejemplo
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "..."
      }
    ]
  }
}

La forma de la respuesta se muestra a modo ilustrativo — el contenido real depende de la herramienta y de tus datos.

MCPHerramientas MCP/Seguimiento de posicionamiento SEO/get_ranking_recommendations

get_ranking_recommendations

Readlistings:read

Sydekick 'Next Recommendations' for improving a location's local-search ranking (computed on first request, then cached). Requires locationId. Returns generatedAt and a list of recommendations — each with impact (high/medium/low), the Google Business Profile (GBP) field, title, reasoning, expected impact, a todo checklist, and the suggested Synup action. Backs the 'Next Recommendations' tab. Note: first call may take longer if it needs to generate.

Parámetros
locationIdstringobligatorio
Location id — the id from list_locations. Either id shape works.
Solicitud de ejemplo
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_ranking_recommendations",
    "arguments": {
      "locationId": "string"
    }
  }
}
Respuesta de ejemplo
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "..."
      }
    ]
  }
}

La forma de la respuesta se muestra a modo ilustrativo — el contenido real depende de la herramienta y de tus datos.

MCPHerramientas MCP/Seguimiento de posicionamiento SEO/get_ranking_ai_insight

get_ranking_ai_insight

Readlistings:read

Sydekick Insight for a location's ranking performance (computed on first request, then cached). Requires locationId. Returns generatedAt, keyword/coverage gaps (with priority), geographic weaknesses (zones where you rank poorly + who dominates), anomalies (with severity + likely cause), and a rating insight (review target). Backs the 'Sydekick Insight' tab. Note: first call may take longer if it needs to generate.

Parámetros
locationIdstringobligatorio
Location id — the id from list_locations. Either id shape works.
Solicitud de ejemplo
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_ranking_ai_insight",
    "arguments": {
      "locationId": "string"
    }
  }
}
Respuesta de ejemplo
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "..."
      }
    ]
  }
}

La forma de la respuesta se muestra a modo ilustrativo — el contenido real depende de la herramienta y de tus datos.

MCPHerramientas MCP/Seguimiento de posicionamiento SEO/add_seo_competitor

add_seo_competitor

Writelistings:write

Add a competitor to track on a location's local-search ranking grid, by business name (resolved to a Google place near the location when possible). Tracking a competitor here also makes it available to the Reviews and AEO modules for the same location (competitors are shared across modules). Re-adding a previously-removed competitor re-activates it. Requires locationId and name.

Parámetros
locationIdstringobligatorio
Location id — the id from list_locations. Either id shape works.
namestringobligatorio
The competitor's business name (required).
Solicitud de ejemplo
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "add_seo_competitor",
    "arguments": {
      "locationId": "string",
      "name": "string"
    }
  }
}
Respuesta de ejemplo
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "..."
      }
    ]
  }
}

La forma de la respuesta se muestra a modo ilustrativo — el contenido real depende de la herramienta y de tus datos.

MCPHerramientas MCP/Seguimiento de posicionamiento SEO/remove_seo_competitor

remove_seo_competitor

Writelistings:write

Stop tracking a competitor. This archives it (soft delete) — historical ranking data already collected for it is retained. Since competitors are shared across modules, this also removes it from Reviews/AEO for the same location. Identify it by its competitorId (from get_ranking_competitors or add_seo_competitor).

Parámetros
competitorIdstringobligatorio
The id of the competitor to remove (required).
Solicitud de ejemplo
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "remove_seo_competitor",
    "arguments": {
      "competitorId": "string"
    }
  }
}
Respuesta de ejemplo
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "..."
      }
    ]
  }
}

La forma de la respuesta se muestra a modo ilustrativo — el contenido real depende de la herramienta y de tus datos.

MCPHerramientas MCP/Seguimiento de posicionamiento SEO/get_seo_keyword_suggestions

get_seo_keyword_suggestions

Readlistings:read

Get Sydekick-suggested keywords worth tracking for a location's local-search ranking (computed on first request, then cached — pass force to regenerate). This only suggests — it does NOT start tracking them; pass the ones you want to add_seo_keywords. Requires locationId.

Parámetros
locationIdstringobligatorio
Location id — the id from list_locations. Either id shape works.
forcenumberopcional
Pass 1 to force regeneration instead of using the cache.
Solicitud de ejemplo
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_seo_keyword_suggestions",
    "arguments": {
      "locationId": "string"
    }
  }
}
Respuesta de ejemplo
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "..."
      }
    ]
  }
}

La forma de la respuesta se muestra a modo ilustrativo — el contenido real depende de la herramienta y de tus datos.

MCPHerramientas MCP/Seguimiento de posicionamiento SEO/add_seo_keywords

add_seo_keywords

Writelistings:write

Start tracking one or more keywords on a location's local-search ranking grid (geo-grid rank tracker). Up to 25 keywords total per location — extras beyond the cap are silently dropped. Re-adding an already-tracked keyword just re-activates it. Requires the location to have latitude/longitude set (throws otherwise). Optionally set gridSize (3, 5, or 7 — default 7) and distanceKm (default 1.5) the first time you configure a location's grid. excluded skips specific grid points from measurement (e.g. a lake, a rival's territory) — pass the (row, col) cells to exclude, 0-indexed from the grid's top-left.

Parámetros
locationIdstringobligatorio
Location id — the id from list_locations. Either id shape works. Required.
keywordsstring[]obligatorio
Keywords to track (required, up to 25 total per location).
gridSize3 | 5 | 7opcional
Grid size (default 7).
distanceKmnumberopcional
Distance between grid points in km (default 1.5).
excludedobject[]opcional
Grid points to exclude from measurement, as {row, col} pairs.
rownumberopcional
Row index, 0-indexed.
colnumberopcional
Column index, 0-indexed.
Solicitud de ejemplo
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "add_seo_keywords",
    "arguments": {
      "locationId": "string",
      "keywords": [
        "string"
      ]
    }
  }
}
Respuesta de ejemplo
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "..."
      }
    ]
  }
}

La forma de la respuesta se muestra a modo ilustrativo — el contenido real depende de la herramienta y de tus datos.

MCPHerramientas MCP/Seguimiento de posicionamiento SEO/remove_seo_keyword

remove_seo_keyword

Writelistings:write

Stop tracking a keyword on a location's ranking grid. PERMANENTLY DELETES its historical reports and every grid-cell rank point ever recorded for it — there is no undo and no archive; re-adding the same keyword later starts its history over from zero. Identify it by its keywordId (from get_ranking_overview's keywords[]).

Parámetros
keywordIdstringobligatorio
The id of the tracked keyword to remove (required, from get_ranking_overview's keywords[]).
Solicitud de ejemplo
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "remove_seo_keyword",
    "arguments": {
      "keywordId": "string"
    }
  }
}
Respuesta de ejemplo
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "..."
      }
    ]
  }
}

La forma de la respuesta se muestra a modo ilustrativo — el contenido real depende de la herramienta y de tus datos.

MCPHerramientas MCP/Seguimiento de posicionamiento SEO/update_seo_grid_config

update_seo_grid_config

Writelistings:write

Update a location's rank-grid measurement config: grid size, distance between points, excluded grid points, or whether water points count toward stats (includeWaterPoints — water cells are always scraped either way; this only controls whether they're counted and shown). Pass only the fields you want to change. Config set here takes effect going forward, same as passing gridSize/distanceKm/excluded to add_seo_keywords the first time a location's grid is configured.

Parámetros
locationIdstringobligatorio
Location id — the id from list_locations. Either id shape works. Required.
gridSize3 | 5 | 7opcional
Grid size.
distanceKmnumberopcional
Distance between grid points in km.
excludedobject[]opcional
Grid points to exclude from measurement, as {row, col} pairs.
rownumberopcional
Row index, 0-indexed.
colnumberopcional
Column index, 0-indexed.
includeWaterPointsbooleanopcional
Whether water grid points count toward stats.
Solicitud de ejemplo
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "update_seo_grid_config",
    "arguments": {
      "locationId": "string"
    }
  }
}
Respuesta de ejemplo
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "..."
      }
    ]
  }
}

La forma de la respuesta se muestra a modo ilustrativo — el contenido real depende de la herramienta y de tus datos.

MCPHerramientas MCP/Seguimiento de posicionamiento SEO/generate_seo_report

generate_seo_report

Writelistings:write

Trigger (re)generation of ranking-grid reports in the background — either for one tracked keyword, every keyword on a location, or a specific past month. This queues the scrape/compute job and returns immediately (generating:true); poll get_ranking_overview afterward to see the result once it lands. Pass keywordId, or locationId (to regenerate every keyword on that location), or both.

Parámetros
locationIdstringopcional
Location id — the id from list_locations. Either id shape works. Regenerates every tracked keyword on this location if keywordId is omitted.
keywordIdstringopcional
A single tracked keyword id to regenerate (from get_ranking_overview's keywords[]).
monthstringopcional
A specific past report month YYYY-MM to regenerate. Omit for the current month.
Solicitud de ejemplo
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "generate_seo_report",
    "arguments": {}
  }
}
Respuesta de ejemplo
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "..."
      }
    ]
  }
}

La forma de la respuesta se muestra a modo ilustrativo — el contenido real depende de la herramienta y de tus datos.

MCPHerramientas MCP/Seguimiento de posicionamiento SEO/download_seo_report

download_seo_report

Readlistings:read

Build the branded, section-configurable SEO ranking report — the same "Download Report" action in the app. Returns rendered HTML, not a binary PDF file: there's no headless-Chrome renderer available server-side, so turning this into an actual PDF (as the app's own UI does, client-side) is on the caller. preset controls the date window (e.g. "lastMonth"; pass from/to instead for a custom range). sections lets you include/exclude report sections by key: coverPage, executiveSummary, performanceSnapshot, agencyActivityLog, gridRankSnapshots, keywordPerformanceTable, monthOverMonthTrend, competitorLandscape, aiRecommendations — omitted keys use the report's own defaults. Distinct from generate_seo_report, which only enqueues a background rank-grid scan and returns no document.

Parámetros
locationIdstringobligatorio
Location id — the id from list_locations. Either id shape works. Required.
preset"lastMonth" | "last3Months" | "last6Months" | "last12Months" | "custom"opcional
Date-range preset (default "lastMonth"). Use "custom" with from/to for an arbitrary range.
fromstringopcional
Custom range start (ISO date). Requires to.
tostringopcional
Custom range end (ISO date). Requires from.
keywordsstring[]opcional
Limit to these tracked keyword ids (from get_ranking_overview's keywords[]). Omit for all.
sectionsobjectopcional
Which report sections to include, by key (see the tool description for the full key list). Omitted keys use the report's own defaults.
coverPagebooleanopcional
Include the coverPage section.
executiveSummarybooleanopcional
Include the executiveSummary section.
performanceSnapshotbooleanopcional
Include the performanceSnapshot section.
agencyActivityLogbooleanopcional
Include the agencyActivityLog section.
gridRankSnapshotsbooleanopcional
Include the gridRankSnapshots section.
keywordPerformanceTablebooleanopcional
Include the keywordPerformanceTable section.
monthOverMonthTrendbooleanopcional
Include the monthOverMonthTrend section.
competitorLandscapebooleanopcional
Include the competitorLandscape section.
aiRecommendationsbooleanopcional
Include the aiRecommendations section.
notesstringopcional
Free-text notes to include on the report.
locale"en" | "es" | "fr" | "de" | "pt"opcional
Language for the rendered report (default "en").
Solicitud de ejemplo
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "download_seo_report",
    "arguments": {
      "locationId": "string"
    }
  }
}
Respuesta de ejemplo
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "..."
      }
    ]
  }
}

La forma de la respuesta se muestra a modo ilustrativo — el contenido real depende de la herramienta y de tus datos.

MCPHerramientas MCP/Seguimiento de posicionamiento SEO/regenerate_seo_recommendations

regenerate_seo_recommendations

Writelistings:write

Force-regenerate the Sydekick 'Next Recommendations' for a location instead of using the cached version (get_ranking_recommendations reads the cache; use this when the underlying data has clearly changed, e.g. after a big profile update). Requires locationId.

Parámetros
locationIdstringobligatorio
Location id — the id from list_locations. Either id shape works.
Solicitud de ejemplo
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "regenerate_seo_recommendations",
    "arguments": {
      "locationId": "string"
    }
  }
}
Respuesta de ejemplo
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "..."
      }
    ]
  }
}

La forma de la respuesta se muestra a modo ilustrativo — el contenido real depende de la herramienta y de tus datos.

MCPHerramientas MCP/Seguimiento de posicionamiento SEO/regenerate_seo_ai_insight

regenerate_seo_ai_insight

Writelistings:write

Force-regenerate the Sydekick Insight for a location's ranking performance instead of using the cached version (get_ranking_ai_insight reads the cache). Requires locationId.

Parámetros
locationIdstringobligatorio
Location id — the id from list_locations. Either id shape works.
Solicitud de ejemplo
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "regenerate_seo_ai_insight",
    "arguments": {
      "locationId": "string"
    }
  }
}
Respuesta de ejemplo
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "..."
      }
    ]
  }
}

La forma de la respuesta se muestra a modo ilustrativo — el contenido real depende de la herramienta y de tus datos.