MCPHerramientas MCP/Listados
Listados
Estado de los listados en directorios, duplicados y análisis de perfil entre publishers.
- Readget_duplicate_listingsList duplicate listings detected for a SINGLE location, grouped by publisher. Location-scoped — requires clientId AND locationId. Returns yourListing (the location's canonical name/address/phone), counts per status, and per-publisher groups where each duplicate carries NAP field-match flags (businessNameMatches / addressMatches / phoneMatches) plus the detector's matchScore. Optional status filter: potential (detected), flagged (suppression requested), deleted (suppressed), failed (removal submission failed). Read-only.
- Readget_profile_analyticsProfile analytics for one location: profile views, website clicks, phone calls, direction requests, monthly trends. Use for location performance, reputation trending, engagement.
- Readget_listings_rollupListings health summary across all of a client's locations: publisher sync rate, connection issues, duplicate listings, per-location sync status, per-publisher coverage breakdown, weakest publishers, which locations need attention. Use for listings issues, directory coverage, listing health check. When you tell the user about listing sync, state it as a percentage only; never quote synced/total counts (e.g. never '39/57' or '39 of 57').
- Readget_profile_analytics_rollupProfile analytics aggregated across ALL of a client's locations (the Listings → All locations → Profile Analytics view): profile views, all actions, website visits, phone calls, direction requests, button clicks, followers, post engagement across the client's connected publishers (Google, Facebook, Apple, Bing), plus a followers gauge and data-coverage across locations. Also returns a per-location `leaderboard` (top locations by profile views, with Δ% vs the prior window and a sparkline). Client-scoped — requires clientId (no locationId). Optional from/to (ISO), sources (subset of google/facebook/apple/bing), comparison (vs a prior window), granularity, leaderboardLimit (top-N locations, default 25, max 100), leaderboardSearch (filter leaderboard by location name). Defaults to the last 30 days. Read-only — data is served from the aggregation tables (refreshed daily by background jobs). You don't pass an agency — it comes from your credentials, and a client from another agency is never returned.
- Readget_location_directoriesThe directory/premium-listings table for a SINGLE location (the location's Premium Listings tab): every directory the location is (or can be) listed on, each with its publisher name, connected account, sync status (synced / requires action / never connected) with the error detail, weight tier (very_high / high / medium / low), live URL, whether it needs verification, and `optedOut` — true when the agency has excluded that publisher for this location (see opt_out_publisher_listing). Opted-out rows are HIDDEN by default, exactly as they are for the client: an agency session can pass includeOptedOut: true to see them, which is the only way to find out what has been excluded (a client's own session never sees them, whatever it passes). A row with `excludedForListingSync: true` is still a real directory, but it does not count toward any sync percentage — leave it out of synced/total when you summarise coverage. Also returns cards: connectionScore (% of premium connectors synced), requiresAction count, and the location-info card (name, address, phone, store code). Requires locationId. Read-only. You don't pass an agency — it comes from your credentials, and a location from another agency is never returned. When you tell the user about listing sync, state it as a percentage only; never quote synced/total counts (e.g. never '39/57' or '39 of 57').
- Readget_location_listing_overviewListings overview for one location: publisher sync status, GBP completeness, directory connections, duplicates, what needs fixing. Use for listing health check, directory audit. When you tell the user about listing sync, state it as a percentage only; never quote synced/total counts (e.g. never '39/57' or '39 of 57').
- Writeresolve_duplicate_listingResolve duplicate listings for a location (from get_duplicate_listings). Pass the duplicate listing id(s) and an action: "flag" requests the publisher remove the duplicate (marks it for removal — a background job then submits the removal to that directory), or "dismiss" marks them "not a duplicate" so they stop showing up. This acts on duplicates currently detected OR previously failed to suppress (a failed suppression can be retried via "flag"); ids already flagged/removed/dismissed (or not yours) are returned in `skipped`. Returns { updated, skipped }. You don't pass an agency — it comes from your credentials.
- Readget_duplicate_listings_rollupClient-wide duplicate-listings rollup across ALL of a client's locations (Listings → All locations → Duplicates). Returns a `summary` (potentialTotal, locationsAffected, confidence bands high/med/low, topPublishers[] — up to 5 worst-offending publishers with counts, publisherSites[] — every publisher site in the visible set with its numeric siteId, i.e. the values `publisherSiteId` accepts) and a paginated `queue` of duplicates with model matchScore + band, per-row NAP match flags, the owning location, and links. Filters: filter (potential|flagged|deleted|failed), band (high|med|low), publisherSiteId, locationId, search; sort (confidence|detected|lastSynced); page/perPage (perPage max 100). Pass clientId to scope to one client, or omit to roll up across the agency. Read-only.
- Writedisconnect_publisher_listingUnlink one publisher (google | facebook | apple | bing) from a location's native directory sync IN OS — archives the location's connection for that publisher and resets its listing status to NOT_LISTED. This does NOT call the publisher to delete or unpublish the live listing on their site; it only stops OS from managing/syncing it. Reversible — reconnecting the location revives it. Identify the location by its id (from list_locations).
- Writefanout_listing_updatesPush a location's current business-info fields out to every connected major directory/publisher in one call (a manual re-sync, e.g. after fixing stale data outside the normal update flow). Pass specific field names to limit which fields are pushed, or omit to push the full default set. Returns a per-publisher result. Identify the location by its id (from list_locations).
- Writeopt_out_publisher_listingExclude ONE publisher/directory from ONE location's listings. To the client the listing stops existing: it disappears from their portal, from the location's Listings overview, and from every count, score and denominator — so a directory the agency has decided not to work on stops dragging the client's numbers down. OS also stops syncing it: no new listing work is created for that publisher, and work that has been queued but not yet sent to the directory is canceled (the ids come back as `canceledOrderItemIds`). What it does NOT do: it never contacts the publisher, so a live listing already on their site stays up and unchanged, and the location's connected account for that publisher is left alone — nothing is disconnected, deleted or unpublished. Nothing is thrown away either: the row keeps its status, live link, connection and history, so opt_in_publisher_listing puts it back exactly as it was rather than starting over. This is per location. To exclude a publisher for an entire client, change the client's publisher set instead (list_publisher_sets / update_publisher_set) — and note the publisher set always wins: if the set already excludes a site, opting back in here cannot restore it. Identify the location by its id (from list_locations), and the publisher either by name (google | facebook | apple | bing) or, for any other directory, by its numeric siteId (from list_sites). Requires an identified agency user — the change is recorded in the audit trail against the person who made it.
- Writeopt_in_publisher_listingReverse opt_out_publisher_listing: put ONE publisher/directory back into ONE location's listings. The listing becomes visible to the client again — in their portal, in the location's Listings overview and in every count and score — and OS resumes syncing it on the next edit or publish. Its previous status, live link, connection and history were never deleted, so it returns as it was rather than starting from nothing. Nothing is sent to the publisher by this call itself. If the publisher is still excluded by the CLIENT's publisher set, this cannot bring it back — the set is the wider promise and always wins; change the set (update_publisher_set) or move the client to another one (assign_publisher_set) instead. Identify the location by its id (from list_locations), and the publisher either by name (google | facebook | apple | bing) or, for any other directory, by its numeric siteId (from list_sites). Use get_location_directories with includeOptedOut: true to see what is currently excluded. Requires an identified agency user — the change is recorded in the audit trail against the person who made it.