MCPHerramientas MCP/Clientes

Clientes

Crea, lee, actualiza y gestiona los clientes (negocios) de tu agencia.

list_clients

Readclients:read

List the client businesses this agency manages, newest first. This is the starting point for anything about clients: use it to find a client and its id before calling get_client_by_id, or to answer questions like "how many active clients do we have?", "which clients are assigned to a rep?", or "show clients with a health score under 40". All filters are optional and are combined together (a client must match all of them); status, representativeIds, and goals each accept multiple values and match any of them. Returns a page of client summaries plus a running `total` and a `nextCursor` — each summary has the client's name, industry, status, goal, health score, number of locations, Google rating and review count, plan, created date, and assigned representative. To page through more, call again passing the returned `nextCursor`. You don't pass an agency — it comes from your credentials. Sensitive data (login credentials, portal secrets) is never returned.

Parámetros
searchstringopcional
Free-text search over the client's name, industry, or contact email (case-insensitive, partial matches allowed).
status("complete" | "draft")[]opcional
Client status. Use "complete" for active (fully onboarded) clients and "draft" for ones still being set up. Pass both to include all.
representativeIdsstring[]opcional
The assigned account representative(s). Pass one or more team-member ids (from list_team_members); a client matches if its representative is any of them.
goals("improve_rankings" | "get_reviews" | "fix_listings")[]opcional
The client's primary goal. Allowed values: "improve_rankings" (improve search rankings), "get_reviews" (get more/better reviews), "fix_listings" (fix business listings).
healthMinnumberopcional
Lowest health score to include, 0–100 (the client's overall health rating).
healthMaxnumberopcional
Highest health score to include, 0–100.
locationsMinnumberopcional
Fewest locations a client must have. Clients with an unknown location count are skipped when a locations filter is set.
locationsMaxnumberopcional
Most locations a client can have.
createdAfterstringopcional
Only clients created on or after this date (e.g. "2026-01-01").
createdBeforestringopcional
Only clients created on or before this date.
cursorstringopcional
Leave empty for the first page; to get the next page, pass the `nextCursor` from the previous response.
limitnumberopcional
How many clients to return per page (1–200, default 50).
Solicitud de ejemplo
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "list_clients",
    "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/Clientes/get_client_by_id

get_client_by_id

Readclients:read

Get the full details of a single client by its id. Use this once you know which client you want — typically after list_clients gives you the id — when the list summary isn't enough. Returns everything about that one client: full business profile and contact info, the assigned representative and who created the client, health score and rating/review metrics, whether the customer-portal invite is pending or accepted, listings data, and which plan the client is on. You don't pass an agency — it comes from your credentials, and a client from another agency is never returned. Sensitive data (login credentials, portal secrets) is never included. To look up or find a client id first, use list_clients.

Parámetros
clientIdstringobligatorio
The id of the client to fetch (get it from list_clients).
Solicitud de ejemplo
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_client_by_id",
    "arguments": {
      "clientId": "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/Clientes/create_client

create_client

Writeclients:write

Add a new client (a business your agency will manage) and run its onboarding automatically — it assigns a plan, sets up the client's customer-portal login, and computes an initial health score. You must provide three things: the business name, the client's primary contact email (this becomes their portal login and can't be changed later), and the id of the team member who will own the client. Optionally include Google Business details (get them from search_google_business) to fill in the profile, and a tracking keyword to start monitoring the client's local search rank. IMPORTANT: when you pass a placeId, this also creates the client's FIRST LOCATION from that Google place — which is what starts the listings, reviews and AEO work — and returns its id as `locationId`. Do not follow this with create_location_from_google or create_location for the same business: that would create a duplicate location. If you passed a placeId and `locationId` still comes back null, `locationSkipped` says why (for example `location_limit` means the agency is at its plan's location cap, and the client will have no listings or reviews until a location is added) — tell the user rather than retrying. Fails if a client with the same business name already exists (including an archived one — the error names its id so you can call reactivate_client instead of creating a new one). New clients are visible to your whole team. You don't pass an agency — it comes from your credentials.

Parámetros
businessNamestringobligatorio
The client's business name. Must be unique within your agency.
primaryContactEmailstringobligatorio
The client's primary contact email. Becomes their customer-portal login and cannot be changed later.
primaryRepresentativeIdstringobligatorio
The id of the team member who will own this client (their user id, from list_team_members).
websitestringopcional
The client's website URL.
industrystringopcional
The client's business category or industry (e.g. a Google Business category name).
goal"improve_rankings" | "get_reviews" | "fix_listings"opcional
The client's primary goal: "improve_rankings", "get_reviews", or "fix_listings".
gbpLinkstringopcional
The client's Google Business Profile URL (from search_google_business).
placeIdstringopcional
The client's Google Place id (from search_google_business).
latitudenumberopcional
The client location's latitude (from search_google_business).
longitudenumberopcional
The client location's longitude (from search_google_business).
googleRatingnumberopcional
The client's current Google star rating, if known (from search_google_business).
googleReviewCountnumberopcional
The client's current Google review count, if known (from search_google_business).
trackingKeywordstringopcional
A keyword to track the client's local search rank for. Requires placeId, latitude, and longitude to also be set.
clientPlanIdstringopcional
Which customer-portal plan to assign. Omit to use your agency's default plan — there's currently no tool to look up other plan ids.
notesstringopcional
An internal note about the client — visible only to your team, never to the client.
Solicitud de ejemplo
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "create_client",
    "arguments": {
      "businessName": "string",
      "primaryContactEmail": "string",
      "primaryRepresentativeId": "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/Clientes/update_client

update_client

Writeclients:write

Edit an existing client's editable fields. Pass only the fields you want to change. The client's primaryContactEmail (their portal login) can never be changed here. Identify the client by its id (from list_clients, create_client, or — for an archived client, which list_clients and get_client_by_id never return — the id create_client's duplicate_archived error names). Works on an archived client too, without reactivating it first. Returns the updated client, or throws if not found. You don't pass an agency — it comes from your credentials.

Parámetros
clientIdstringobligatorio
The id of the client to update (required).
businessNamestringopcional
The client's business name.
industrystringopcional
The client's business category or industry.
websitestringopcional
The client's website URL. A short link (e.g. a URL shortener) is auto-expanded to its real destination before it's stored.
primaryContactNamestringopcional
The primary contact's name.
phonestringopcional
The client's phone number.
locationCountnumberopcional
The client's reported location count (informational — not the actual count of created locations).
citystringopcional
The client's city.
phoneCountryCodestringopcional
The ISO-3166-1 alpha-2 country code the client's phone number belongs to (e.g. "US", "IN") — the region, not the dial code.
countrystringopcional
The client's country, as an ISO-3166-1 alpha-2 code (e.g. "US", "GB").
statestringopcional
The client's state, province or region.
trackingKeywordstringopcional
A keyword to track the client's local search rank for.
notesstringopcional
An internal note about the client — visible only to your team, never to the client.
gbpLinkstringopcional
The client's Google Business Profile URL. A scheme (https://) is added automatically if you omit it.
clientPlanIdstringopcional
Which customer-portal plan to assign. There's currently no tool to look up other plan ids — omit to leave the client's current plan unchanged.
primaryRepresentativeIdstringopcional
The user id of the team member who owns this client (from list_team_members).
visibility"public" | "private"opcional
Who can see this client on the dashboard: "public" (the whole team) or "private" (owners always still see it; every other member needs an explicit access grant that no tool currently exists to give). Switching an existing client to "private" immediately hides it from every non-owner member who doesn't already hold one — there is no way to grant individual members access back through MCP, only to switch it back to "public".
Solicitud de ejemplo
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "update_client",
    "arguments": {
      "clientId": "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/Clientes/delete_client

delete_client

Writeclients:write

Request deletion of a client. This never permanently destroys anything. If the client has any locations this SCHEDULES it: the client and every one of its locations are archived at the end of the current billing period, and until then everything stays fully active and still billed — the archival can be called off with cancel_scheduled_client_deletion while it's still pending, or undone with reactivate_client once it has actually archived. A client with no locations at all (or none still live) is archived immediately instead of being scheduled (also undoable with reactivate_client). The response's `outcome` field says which happened ("scheduled" or "archived") — report that back rather than assuming. Identify the client by its id (from list_clients).

Parámetros
clientIdstringobligatorio
The id of the client to delete (required).
Solicitud de ejemplo
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "delete_client",
    "arguments": {
      "clientId": "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/Clientes/cancel_scheduled_client_deletion

cancel_scheduled_client_deletion

Writeclients:write

Call off a pending client deletion, so a client scheduled to archive at the end of the billing period carries on as normal. This also releases the locations that were scheduled along with it. Only works while the deletion is still pending — once the period has ended and the client is actually archived, call reactivate_client instead.

Parámetros
clientIdstringobligatorio
The id of the client whose pending deletion should be cancelled (required).
Solicitud de ejemplo
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "cancel_scheduled_client_deletion",
    "arguments": {
      "clientId": "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/Clientes/reactivate_client

reactivate_client

Writeclients:write

Restore an archived client, bringing back the client and every location that archived along with it in the same request (a location archived separately, before or independently of that request, is not touched). Undoes what delete_client's schedule did once it actually reached the end of the billing period (a still-PENDING one should use cancel_scheduled_client_deletion instead — this tool is for a client that is already archived). A client that isn't currently archived is left unchanged rather than erroring. list_clients and get_client_by_id never return archived clients, so the only way to learn an archived client's id through this MCP surface is create_client's error when the business name matches one — it names the id to pass here.

Parámetros
clientIdstringobligatorio
The id of the archived client to restore (required).
Solicitud de ejemplo
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "reactivate_client",
    "arguments": {
      "clientId": "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/Clientes/invite_client

invite_client

Writeclients:write

Send (or resend) the client-portal invite email to a client's primary contact — a passwordless magic link they use to log into their customer portal. Resending does NOT invalidate a previously sent link: every link minted stays independently valid until it's used once or reaches its own 7-day expiry, so a resend leaves both the old and new email usable. Fails if the client has no primaryContactEmail set. Identify the client by its id (from list_clients). Returns the invite link that was sent.

Parámetros
clientIdstringobligatorio
The id of the client to invite (required).
Solicitud de ejemplo
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "invite_client",
    "arguments": {
      "clientId": "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/Clientes/search_google_business

search_google_business

Readclients:read

Search Google for a business by name and return the top matches, each enriched with full details (name, address, addressComponents, phone, website, GBP URL, category, businessStatus, rating, reviewCount, placeId, latitude, longitude). Use to find a business to onboard, then pass the chosen match's fields to create_client. Returns an empty list if nothing matches or Google is unavailable.

Parámetros
querystringobligatorio
Business name to search for
limitnumberopcional
Max candidates to enrich (1–5, default 3)
Solicitud de ejemplo
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "search_google_business",
    "arguments": {
      "query": "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/Clientes/list_google_accounts

list_google_accounts

Readclients:read

List the Google Business Profile accounts already connected for a client, so you can pick one to import locations from. Returns each account's connectionId, the signed-in email, whether its credentials are still valid, its fetch status, how many locations are already connected, and how many have been fetched and are available to import. Start here for a Google import; if an account has 0 available, call trigger_google_fetch, then get_google_listings. You don't pass an agency — it comes from your credentials.

Parámetros
clientIdstringobligatorio
The client whose connected Google accounts to list (from list_clients).
Solicitud de ejemplo
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "list_google_accounts",
    "arguments": {
      "clientId": "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/Clientes/trigger_google_fetch

trigger_google_fetch

Writeclients:write

Start fetching the locations under a connected Google account so they become browsable/importable. This runs in the background; poll list_google_accounts and watch the account's fetchStatus and available count, then call get_google_listings. Starts (or restarts) the background fetch and returns once it's queued. You don't pass an agency — it comes from your credentials.

Parámetros
clientIdstringobligatorio
The client that owns the Google account (from list_clients).
connectionIdstringobligatorio
The Google account to fetch (from list_google_accounts).
Solicitud de ejemplo
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "trigger_google_fetch",
    "arguments": {
      "clientId": "string",
      "connectionId": "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/Clientes/get_google_listings

get_google_listings

Readclients:read

Browse the Google locations that have been fetched for a connected account (call trigger_google_fetch first if none are available). With no folder, returns the list of Google Business account folders (each with a location count). With a folder, returns that folder's locations — each with its fetchedListingId, resource name, name, address, verification state, whether it's already imported (connected), and whether its category maps to a supported one. Pass the fetchedListingIds you want to create_location_from_google. Optionally filter a folder by search text. You don't pass an agency — it comes from your credentials.

Parámetros
clientIdstringobligatorio
The client that owns the Google account (from list_clients).
connectionIdstringobligatorio
The Google account to browse (from list_google_accounts).
folderstringopcional
A folder id from the folder list. Omit to get the folder list first.
searchstringopcional
Filter a folder's locations by name, address, or postal code.
Solicitud de ejemplo
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_google_listings",
    "arguments": {
      "clientId": "string",
      "connectionId": "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/Clientes/create_location_from_google

create_location_from_google

Writeclients:write

Import one or more fetched Google locations into new business locations under a client, pulling their full Google profile (name, address, hours, categories, photos, etc.). Get the fetchedListingIds from get_google_listings. Imports up to 10 per call. Each new location is submitted to the other directories automatically (it's already live on Google). Returns the created location ids (and any that failed, with the reason). You don't pass an agency — it comes from your credentials.

Parámetros
clientIdstringobligatorio
The client to create the locations under (from list_clients).
connectionIdstringobligatorio
The Google account the listings belong to (from list_google_accounts).
fetchedListingIdsstring[]obligatorio
The fetchedListingIds to import (from get_google_listings). Up to 10 per call.
Solicitud de ejemplo
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "create_location_from_google",
    "arguments": {
      "clientId": "string",
      "connectionId": "string",
      "fetchedListingIds": [
        "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.