MCPMCP-Tools/Medien

Medien

Fotos und andere Assets hochladen, taggen, organisieren und moderieren.

fetch_gbp_media

Writemedia:write

Fetch a location's Google Business Profile photos (owner-uploaded + user-generated) via the Google My Business v4 media APIs, dedup by the GBP media id, and store them in the client media library, tagged so they're traceable back to that GBP media item. Requires the location to have Google connected (returns status 'not_connected' otherwise). Google-only.

Parameter
locationIdstringerforderlich
The location's id (from list_locations).
Beispielanfrage
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "fetch_gbp_media",
    "arguments": {
      "locationId": "string"
    }
  }
}
Beispielantwort
{
  "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.

MCPMCP-Tools/Medien/moderate_pending_ugc_media

moderate_pending_ugc_media

Writemedia:write

Classify pending customer-submitted (UGC) photos in the media library as ok/needs_review/spam/skipped, using a business-context-aware vision prompt (client industry/description, mismatched-listing detection, platform-UI-chrome detection). Use this for requests like 'check for inappropriate photos customers uploaded', 'clean up the media library', or 'moderate new uploads' — it finds and flags anything spammy, unrelated, or inappropriate instead of waiting for the daily automatic sweep. Pass clientId to scope to one client; omit to sweep every client in this agency. Resumable: only touches rows that are unclassified or previously 'skipped' (retried after 24h).

Parameter
clientIdstringoptional
Client id (from list_clients) to scope to. Omit to sweep every client in this agency.
limitnumberoptional
Max rows to return (1–200, default 50).
Beispielanfrage
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "moderate_pending_ugc_media",
    "arguments": {}
  }
}
Beispielantwort
{
  "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.

MCPMCP-Tools/Medien/list_flagged_media

list_flagged_media

Readmedia:read

List customer-submitted (UGC) media library photos by moderation status — the read counterpart to moderate_pending_ugc_media. Use this to answer questions like 'what needs my attention', 'show me the spam photos', 'did any customer uploads look inappropriate', or 'what photos got flagged' by looking at the real current verdicts, instead of guessing. Returns id, mediaUrl, status, the classifier's one-line reason, createdAt, and the client/location it belongs to. Omit status to list every UGC photo regardless of verdict (including never-classified ones); omit clientId to search the whole agency.

Parameter
status"ok" | "needs_review" | "spam" | "skipped"optional
Filter to one moderation status. Omit to list photos in every status, including never-classified.
clientIdstringoptional
Client id (from list_clients) to scope to. Omit to search the whole agency.
locationIdstringoptional
Location id (from list_locations) to scope to.
limitnumberoptional
Max rows to return (1–200, default 50).
Beispielanfrage
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "list_flagged_media",
    "arguments": {}
  }
}
Beispielantwort
{
  "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.

MCPMCP-Tools/Medien/upload_asset

upload_asset

Writemedia:write

Upload a new file (e.g. a photo, image, PDF, or other file) into the agency's media library. Provide the file as a public https URL (fetched and stored — a URL pointing at a private/internal network address is rejected) or as base64 bytes. Max 100 MB. Optionally scope it to an account/client/location/brand, drop it straight into a folder, tag it, or associate it with locations. Returns the created asset (including its key, used by update_asset/delete_asset and folder/tag operations).

Parameter
urlstringoptional
A public https URL to fetch and store. Use this OR base64.
base64stringoptional
Raw file bytes as base64 (a data: URL prefix is accepted). Use this OR url.
mimestringoptional
The file's MIME type. Inferred from the URL response or a data: URL prefix when omitted; required for plain base64 without a data: URL prefix.
filenamestringoptional
Filename to store. Defaults to the URL's basename, or "upload".
titlestringoptional
Display title. Defaults to the filename.
scopeType"account" | "client" | "location" | "brand"optional
Which kind of entity this asset belongs to.
scopeIdstringoptional
The id of the scoped entity (required together with scopeType) — a client id (list_clients) or location id (list_locations) for those two scope types; account/brand scoping has no lookup tool in this MCP surface.
folderIdstringoptional
A folder id (from list_asset_folders) to place this asset into immediately.
tagsstring[]optional
Tag names to apply immediately (created if they don't already exist).
locationIdsstring[]optional
Location ids (from list_locations) to associate this asset with.
Beispielanfrage
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "upload_asset",
    "arguments": {}
  }
}
Beispielantwort
{
  "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.

MCPMCP-Tools/Medien/update_asset

update_asset

Writemedia:write

Edit a photo/image's (or other file's) tags, folder memberships, or location associations (any source — uploads, Sydekick-generated, or synced media), and, for uploads only, its title/scope. Each of tags/folderIds/locationIds you pass REPLACES the full current list for that field — pass the complete desired list, not just additions. locationIds replaces only the associations added here (the asset's `assignedLocationIds`); synced media and GBP-imported photos also carry a location stamped by the source itself, which shows in `locationIds` and cannot be removed from this side. NOTE: unlike editing an asset's locations in the app UI, assigning a location here does NOT push the image into that location's Google-publish queue — that bridge is UI-only. For synced/UGC media only, status sets the moderation verdict by hand (ok, needs_review, or spam) — the same thing the Flag/Mark OK actions in the app do; optionally pair it with statusReason. Identify the asset by its key (e.g. "upload:abc123", from upload_asset or the library listing).

Parameter
assetKeystringerforderlich
The asset's key, e.g. "upload:abc123" (required).
titlestringoptional
New title. Uploads only.
scopeType"account" | "client" | "location" | "brand"optional
New scope type. Uploads only.
scopeIdstringoptional
New scope id. Uploads only. A client id (list_clients) or location id (list_locations) for those two scope types; account/brand scoping has no lookup tool in this MCP surface.
tagsstring[]optional
Replaces the asset's full tag list.
folderIdsstring[]optional
Replaces the asset's full folder membership list (ids from list_asset_folders).
locationIdsstring[]optional
Replaces the asset's full list of locations assigned here (ids from list_locations). Locations stamped by the asset's own source are unaffected.
status"ok" | "needs_review" | "spam"optional
Sets the moderation verdict by hand. Synced/UGC media only.
statusReasonstringoptional
Optional note explaining the status, shown alongside it.
Beispielanfrage
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "update_asset",
    "arguments": {
      "assetKey": "string"
    }
  }
}
Beispielantwort
{
  "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.

MCPMCP-Tools/Medien/delete_asset

delete_asset

Writemedia:write

Archive an uploaded photo, image, or other file — this never permanently deletes it. The bytes, record, tags/folder memberships, and share links all stay in place; it just stops appearing anywhere in the library. Only uploads can be archived this way — Sydekick-generated or synced media assets are read-only here; remove them from folders or untag them instead. Identify the asset by its key (e.g. "upload:abc123").

Parameter
assetKeystringerforderlich
The asset's key to delete, e.g. "upload:abc123" (required).
Beispielanfrage
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "delete_asset",
    "arguments": {
      "assetKey": "string"
    }
  }
}
Beispielantwort
{
  "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.

MCPMCP-Tools/Medien/ai_edit_asset

ai_edit_asset

Writemedia:write

Regenerate a Sydekick-generated asset's image (or text) in place from a text prompt — the same "Edit with AI" action available in the Data tab. Generated assets only (uploads and synced media return an error). The first request after a period of inactivity can take a minute or more; later ones are faster. Identify the asset by its key (e.g. "generated:abc123"). Returns the refreshed asset at the same key.

Parameter
assetKeystringerforderlich
The generated asset's key, e.g. "generated:abc123" (required).
promptstringerforderlich
What to change, in plain language (required).
Beispielanfrage
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "ai_edit_asset",
    "arguments": {
      "assetKey": "string",
      "prompt": "string"
    }
  }
}
Beispielantwort
{
  "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.

MCPMCP-Tools/Medien/list_asset_folders

list_asset_folders

Readmedia:read

List the agency's media-library folders (each can hold a mix of uploads, Sydekick-generated assets, and synced media). Optionally scope to an entity. Use this to find a folderId for update_asset, add_asset_to_folder, or remove_asset_from_folder.

Parameter
scopeType"account" | "client" | "location" | "brand"optional
Filter by scope type.
scopeIdstringoptional
Filter by scope id — a client id (list_clients) or location id (list_locations) for those two scope types.
Beispielanfrage
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "list_asset_folders",
    "arguments": {}
  }
}
Beispielantwort
{
  "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.

MCPMCP-Tools/Medien/create_asset_folder

create_asset_folder

Writemedia:write

Create a new media-library folder. Optionally scope it to an account/client/location/brand.

Parameter
namestringerforderlich
Folder name (required).
descriptionstringoptional
A short description.
scopeType"account" | "client" | "location" | "brand"optional
Which kind of entity this folder belongs to.
scopeIdstringoptional
The id of the scoped entity — a client id (list_clients) or location id (list_locations) for those two scope types.
Beispielanfrage
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "create_asset_folder",
    "arguments": {
      "name": "string"
    }
  }
}
Beispielantwort
{
  "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.

MCPMCP-Tools/Medien/update_asset_folder

update_asset_folder

Writemedia:write

Rename or re-scope an existing media-library folder. Pass only the fields you want to change. Identify it by its id (from list_asset_folders).

Parameter
folderIdstringerforderlich
The id of the folder to update (required).
namestringoptional
New name.
descriptionstringoptional
New description.
scopeType"account" | "client" | "location" | "brand"optional
New scope type.
scopeIdstringoptional
New scope id — a client id (list_clients) or location id (list_locations) for those two scope types.
Beispielanfrage
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "update_asset_folder",
    "arguments": {
      "folderId": "string"
    }
  }
}
Beispielantwort
{
  "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.

MCPMCP-Tools/Medien/delete_asset_folder

delete_asset_folder

Writemedia:write

Delete a media-library folder. The assets that were in it are NOT deleted — they only lose their membership in this folder. Identify it by its id (from list_asset_folders).

Parameter
folderIdstringerforderlich
The id of the folder to delete (required).
Beispielanfrage
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "delete_asset_folder",
    "arguments": {
      "folderId": "string"
    }
  }
}
Beispielantwort
{
  "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.

MCPMCP-Tools/Medien/add_asset_to_folder

add_asset_to_folder

Writemedia:write

Add one or more assets to a folder. Idempotent — assets already in the folder are left as-is. Returns the folder's new total item count.

Parameter
folderIdstringerforderlich
The id of the folder (required, from list_asset_folders).
assetKeysstring[]erforderlich
Asset keys to add, e.g. ["upload:abc123"] (required).
Beispielanfrage
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "add_asset_to_folder",
    "arguments": {
      "folderId": "string",
      "assetKeys": [
        "string"
      ]
    }
  }
}
Beispielantwort
{
  "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.

MCPMCP-Tools/Medien/remove_asset_from_folder

remove_asset_from_folder

Writemedia:write

Remove one asset from a folder. The asset itself is untouched. Returns the folder's new item count.

Parameter
folderIdstringerforderlich
The id of the folder (required, from list_asset_folders).
assetKeystringerforderlich
The asset key to remove, e.g. "upload:abc123" (required).
Beispielanfrage
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "remove_asset_from_folder",
    "arguments": {
      "folderId": "string",
      "assetKey": "string"
    }
  }
}
Beispielantwort
{
  "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.

MCPMCP-Tools/Medien/list_asset_tags

list_asset_tags

Readmedia:read

List the agency's media-library tag vocabulary, each with its usage count. Use this before create_asset_tag/update_asset_tag/delete_asset_tag.

Beispielanfrage
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "list_asset_tags",
    "arguments": {}
  }
}
Beispielantwort
{
  "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.

MCPMCP-Tools/Medien/create_asset_tag

create_asset_tag

Writemedia:write

Create a new media-library tag, or return the existing one if this exact name already exists (idempotent). Apply it to assets via update_asset's tags field.

Parameter
namestringerforderlich
Tag name (required).
Beispielanfrage
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "create_asset_tag",
    "arguments": {
      "name": "string"
    }
  }
}
Beispielantwort
{
  "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.

MCPMCP-Tools/Medien/update_asset_tag

update_asset_tag

Writemedia:write

Rename a tag — applies everywhere it's used. If another tag already has the new name, this MERGES into it instead (moves every assignment onto the existing tag and removes this one) rather than creating a duplicate name. Identify it by its id (from list_asset_tags).

Parameter
tagIdstringerforderlich
The id of the tag to rename (required, from list_asset_tags).
namestringerforderlich
The new name (required).
Beispielanfrage
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "update_asset_tag",
    "arguments": {
      "tagId": "string",
      "name": "string"
    }
  }
}
Beispielantwort
{
  "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.

MCPMCP-Tools/Medien/delete_asset_tag

delete_asset_tag

Writemedia:write

Permanently delete a tag and remove it from every asset it was applied to. The assets themselves are untouched. Returns how many assets lost the tag. Identify it by its id (from list_asset_tags).

Parameter
tagIdstringerforderlich
The id of the tag to delete (required, from list_asset_tags).
Beispielanfrage
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "delete_asset_tag",
    "arguments": {
      "tagId": "string"
    }
  }
}
Beispielantwort
{
  "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.