Einträge
Verzeichniseintrags-Status, Duplikate und Profilanalysen über Publisher hinweg.
get_duplicate_listings
List 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.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_duplicate_listings",
"arguments": {
"clientId": "string",
"locationId": "string"
}
}
}{
"jsonrpc": "2.0",
"id": 1,
"result": {
"content": [
{
"type": "text",
"text": "..."
}
]
}
}Die Antwortform dient nur zur Veranschaulichung — der tatsächliche Inhalt hängt vom Tool und Ihren Daten ab.
get_profile_analytics
Profile analytics for a SINGLE location across its connected publishers (Google, Facebook, Apple, Bing): profile views, all actions, website visits, phone calls, direction requests, button clicks, followers, post engagement — plus Google's impression split (maps/search/desktop/mobile) and top search keywords. Location-scoped — requires clientId AND locationId. Optional from/to (ISO), sources (subset of google/facebook/apple/bing), comparison (vs a prior window), granularity. Defaults to the last 30 days. Data is served from the aggregation tables (refreshed daily by background jobs).
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_profile_analytics",
"arguments": {
"clientId": "string",
"locationId": "string"
}
}
}{
"jsonrpc": "2.0",
"id": 1,
"result": {
"content": [
{
"type": "text",
"text": "..."
}
]
}
}Die Antwortform dient nur zur Veranschaulichung — der tatsächliche Inhalt hängt vom Tool und Ihren Daten ab.
get_listings_rollup
Client-level listings rollup across ALL of a client's locations (the Listings → All locations view). Returns a `summary` (locations, publishersTotal, publishersSynced, connectionIssues, duplicates, reviews, avgRating), a per-LOCATION `rows` table (name, city, publishers, synced, connectionIssues, duplicates, reviews, unreplied, avgRating, googleVerified, googleConnected), and `insights`: overall listing health %, a distribution (fully-synced / healthy / at-risk), the weakest publishers (lowest coverage), a per-PUBLISHER directories coverage table (total, synced, requiresAction, notConnected, pct), a ranked "needs attention" set, and a deterministic headline + fixFirst. IMPORTANT: `googleVerified` is false both when a location has never connected Google AND when it's connected but Google hasn't verified it yet — always check `googleConnected` first to tell those apart; a never-connected location needs to connect, not "verify". Pass a clientId to scope to one client, or omit to roll up across all of the agency's clients. Read-only. You don't pass an agency — it comes from your credentials.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_listings_rollup",
"arguments": {}
}
}{
"jsonrpc": "2.0",
"id": 1,
"result": {
"content": [
{
"type": "text",
"text": "..."
}
]
}
}Die Antwortform dient nur zur Veranschaulichung — der tatsächliche Inhalt hängt vom Tool und Ihren Daten ab.
get_profile_analytics_rollup
Profile 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.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_profile_analytics_rollup",
"arguments": {
"clientId": "string"
}
}
}{
"jsonrpc": "2.0",
"id": 1,
"result": {
"content": [
{
"type": "text",
"text": "..."
}
]
}
}Die Antwortform dient nur zur Veranschaulichung — der tatsächliche Inhalt hängt vom Tool und Ihren Daten ab.
get_location_directories
The 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, and whether it needs verification. 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.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_location_directories",
"arguments": {
"locationId": "string"
}
}
}{
"jsonrpc": "2.0",
"id": 1,
"result": {
"content": [
{
"type": "text",
"text": "..."
}
]
}
}Die Antwortform dient nur zur Veranschaulichung — der tatsächliche Inhalt hängt vom Tool und Ihren Daten ab.
get_location_listing_overview
The listings Overview for a SINGLE location: health stats (publishers, synced, notConnected, googleVerifiedLocations, duplicates, connectionIssues), the Google Business Profile completeness widget (connected, score out of 100, and which of the 8 checklist items are done vs todo — Verified, Hours set, Primary category, Website linked, 3+ photos, Description, Services/menu, Attributes), a deterministic Sydekick summary (headline + ranked "fix first" items with impact), prioritized opportunities, and the citation index (how many directories the location is indexed on, current vs prior). Requires locationId. Read-only. You don't pass an agency — it comes from your credentials.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_location_listing_overview",
"arguments": {
"locationId": "string"
}
}
}{
"jsonrpc": "2.0",
"id": 1,
"result": {
"content": [
{
"type": "text",
"text": "..."
}
]
}
}Die Antwortform dient nur zur Veranschaulichung — der tatsächliche Inhalt hängt vom Tool und Ihren Daten ab.
resolve_duplicate_listing
Resolve 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.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "resolve_duplicate_listing",
"arguments": {
"duplicateListingIds": [
"string"
],
"action": "flag"
}
}
}{
"jsonrpc": "2.0",
"id": 1,
"result": {
"content": [
{
"type": "text",
"text": "..."
}
]
}
}Die Antwortform dient nur zur Veranschaulichung — der tatsächliche Inhalt hängt vom Tool und Ihren Daten ab.
get_duplicate_listings_rollup
Client-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.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_duplicate_listings_rollup",
"arguments": {}
}
}{
"jsonrpc": "2.0",
"id": 1,
"result": {
"content": [
{
"type": "text",
"text": "..."
}
]
}
}Die Antwortform dient nur zur Veranschaulichung — der tatsächliche Inhalt hängt vom Tool und Ihren Daten ab.
disconnect_publisher_listing
Unlink 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).
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "disconnect_publisher_listing",
"arguments": {
"locationId": "string",
"publisher": "google"
}
}
}{
"jsonrpc": "2.0",
"id": 1,
"result": {
"content": [
{
"type": "text",
"text": "..."
}
]
}
}Die Antwortform dient nur zur Veranschaulichung — der tatsächliche Inhalt hängt vom Tool und Ihren Daten ab.
fanout_listing_updates
Push 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).
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "fanout_listing_updates",
"arguments": {
"locationId": "string"
}
}
}{
"jsonrpc": "2.0",
"id": 1,
"result": {
"content": [
{
"type": "text",
"text": "..."
}
]
}
}Die Antwortform dient nur zur Veranschaulichung — der tatsächliche Inhalt hängt vom Tool und Ihren Daten ab.