Skip to main content
Glama

MisarSEO MCP Server

run_local_pack_rank_check

Runs a local pack rank check now — one live scrape of Google's public local search results (not the paid Places API). Returns "found" with a real 1-based position, "not_found" (parsed cleanly, business absent), or "unavailable" (scraper disabled, blocked, or unparsable) — never a fabricated position. Fails with SEO_DATA_UNAVAILABLE where the deployment has not enabled the scraper. Tightly rate limited, so do not loop it.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
configIdYesConfig ID, from the matching get_* tool called without configId.
projectIdYesRequired. The MisarSEO project ID to scope this call to. Get one from list_projects.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.5/5.0
Behavior5/5

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

Goes well beyond annotations by enumerating the three return states (found with 1-based position, not_found, unavailable) and guaranteeing no fabricated positions, plus the SEO_DATA_UNAVAILABLE failure mode and rate-limit constraint. This is exactly the kind of behavioral detail an agent needs before invoking a non-idempotent, open-world scrape.

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

Conciseness5/5

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

Front-loaded with the action and scope, then layers return semantics, failure mode, and the rate-limit warning without a wasted clause. Dense but every sentence carries distinct information.

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, the description carries the return-value contract itself, covering all three outcomes and the error case, so an agent can interpret results correctly. Nothing essential is missing for calling or parsing this tool.

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 both configId and projectId are already documented with their provenance (get_* tools, list_projects). The description adds no parameter-level detail, which is acceptable given the schema does the work.

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 (runs) plus resource (live local pack rank check) and immediately scopes it as a real-time scrape of Google's public results, explicitly not the paid Places API. This distinguishes it clearly from retrieval siblings like get_local_pack_rank.

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?

Gives a clear triggering context (run a check now) and an explicit exclusion ('do not loop it' due to tight rate limits), plus the failure condition SEO_DATA_UNAVAILABLE when the scraper is disabled. It stops short of naming a specific alternative sibling to use instead, so it is not a full when/when-not routing statement.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.