Medien
Fotos und andere Assets hochladen, taggen, organisieren und moderieren.
fetch_gbp_media
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.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "fetch_gbp_media",
"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.
moderate_pending_ugc_media
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).
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "moderate_pending_ugc_media",
"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.
list_flagged_media
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.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "list_flagged_media",
"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.
upload_asset
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).
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "upload_asset",
"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.
update_asset
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).
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "update_asset",
"arguments": {
"assetKey": "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.
delete_asset
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").
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "delete_asset",
"arguments": {
"assetKey": "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.
ai_edit_asset
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.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "ai_edit_asset",
"arguments": {
"assetKey": "string",
"prompt": "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.
list_asset_folders
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.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "list_asset_folders",
"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.
create_asset_folder
Create a new media-library folder. Optionally scope it to an account/client/location/brand.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "create_asset_folder",
"arguments": {
"name": "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.
update_asset_folder
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).
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "update_asset_folder",
"arguments": {
"folderId": "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.
delete_asset_folder
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).
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "delete_asset_folder",
"arguments": {
"folderId": "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.
add_asset_to_folder
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.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "add_asset_to_folder",
"arguments": {
"folderId": "string",
"assetKeys": [
"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.
remove_asset_from_folder
Remove one asset from a folder. The asset itself is untouched. Returns the folder's new item count.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "remove_asset_from_folder",
"arguments": {
"folderId": "string",
"assetKey": "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.
create_asset_tag
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.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "create_asset_tag",
"arguments": {
"name": "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.
update_asset_tag
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).
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "update_asset_tag",
"arguments": {
"tagId": "string",
"name": "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.
delete_asset_tag
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).
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "delete_asset_tag",
"arguments": {
"tagId": "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.