delete_negative_keyword_lists
Permanently delete one or more entire Google Ads negative keyword lists, only when the user has explicitly asked.
Destructive search
Deletes, archives, launches or moves budget. Do not give an agent this one without a human gate.
What it does
Permanently delete one or more entire Google Ads negative keyword lists, only when the user has explicitly asked.
PURPOSE:
Wipe negative keyword lists that the user has named for deletion. The platform
supports a multi-id delete in one HTTP call, so batch every list the user
identified into a single tool call instead of calling once per list.
ONLY CALL THIS TOOL WHEN THE USER HAS EXPLICITLY NAMED LISTS TO DELETE.
Examples that qualify:
- "Delete the 'Old competitors' list"
- "Drop these three lists: A, B, C"
- "Yes, delete the one I just showed you"
Examples that do NOT qualify:
- "Create a new list called X" — even if the 20-list account cap blocks the
create call, do NOT pick a list and delete it. Surface the cap to the user
(via list_negative_keywords_list so they see what's there), and ask which
list(s) THEY want to delete before calling this tool.
- "Clean up my lists" — too vague; first list_negative_keywords_list, present
the current set, and let the user pick which to drop.
WARNING:
This deletes the LIST itself (every keyword in it goes with it, and any
campaigns attaching the list lose the attachment). To remove specific
keywords inside a list without dropping the list, use
remove_keywords_from_negative_list instead.
LOOKING UP LIST IDS:
Call list_negative_keywords_list to map the names the user gave you to ids.
The 'id' field returned there is what you pass here.
COMMON USE CASES:
1. Delete a single list the user named:
delete_negative_keyword_lists(listIds=[43256533])
2. Delete several at once (mirrors the UI's "Select rows -> Delete" action):
delete_negative_keyword_lists(listIds=[43256533, 43258891, 43261107])
PARAMETERS:
- listIds (array of integers, required, min 1): IDs of the negative keyword
lists the user asked to delete, as returned by list_negative_keywords_list.
RESPONSE FORMAT:
Returns the platform response. The channels service typically responds with
204 No Content on success, in which case the wrapper returns a code 204 +
Success envelope with the ids that were deleted.
CHANNEL SCOPE:
BOTH search channels are supported: pass channel=MICROSOFT_ADS for Microsoft
Ads (Bing) and channel=GOOGLE_ADS for Google. The two channels hold SEPARATE
lists, so never substitute one channel for the other to get "close enough"
results.Arguments
| Argument | Type | Notes | |
|---|---|---|---|
listIds |
array | required | IDs of the negative keyword lists to delete (from list_negative_keywords_list). |
channel |
string | Ad channel scope. Both search channels are supported. These are PER-CHANNEL resources: GOOGLE_ADS and MICROSOFT_ADS hold separate sets, and one is invisible to the other. Defaults to GOOGLE_ADS when the user does not say which. one of: GOOGLE_ADS, MICROSOFT_ADS |
Request
curl
curl -s -X POST https://mcp-server.metadata.io/mcp \
-H "Authorization: $METADATA_PAT" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-H "MCP-Protocol-Version: 2025-11-25" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"delete_negative_keyword_lists","arguments":{"listIds":[]}}}'
Response
No recorded response. This tool can delete, archive, launch or move budget, so it is never executed to build these docs.
The request above is still the exact shape to send. Nothing on this page is invented.
Related
Other search tools: