Back to tracker
Plugin tracker
Tools
Explore what tracked Claude Connectors and ChatGPT Plugins can actually do. Search by tool, Plugin, Brand, category, verb, or access requirement.
Latest snapshot2026-09-12USmethodology registry-public-v1
Searchable tools
113,018
Authless tools
7,424
Auth required
100,766
Described tools
61,167
113,018 tools
- Grant or Revoke Document Annotation for a Roledochub · Grant or revoke free document annotation (write/draw anywhere) for a role's signer.
Annotation is free-form content only — it does NOT make form fields fillable.
A field can be completed only by the signer whose role it is assigned to
(via field assignment); granting annotations leaves unassigned fields
read-only for the signer.
Side effects: changes what the signer is allowed to do in the document.
Granting annotations is one way to resolve a send_blocked "must be assigned
at least one field or have annotations enabled" finding.
Required inputs:
- documentId: the document the role belongs to — for a sign request
draft, the draft's own documentId, not the template id.
- documentRoleId: a role id from a send preview's recipients or a blocker's
affectedRecipients.
- canAnnotate: true to grant, false to revoke. No default.
Returns: {"status": "success", "documentRoleId": str, "canAnnotate": bool}
Use when: enabling or disabling free annotation for a signer on a draft.
Not for: assigning specific fields to a role.DocHubDocHub
PluginoptionalProductivity - List Documents in DocHubdochub · List documents from DocHub with optional filters.
Supports filtering by title substring, labels (AND logic), privacy level,
ownership, date range, and template vs non-template documents. Returns paginated results
sorted by createdAt descending by default, so newly created/imported documents appear first.
Returns:
{
"status": "success",
"documents": [
{
"id": str,
"title": str,
"fullUrl": str,
"isTemplate": bool,
"documentRolesData": [
{
"id": str,
"name": str | null,
"email": str | null,
"queuePosition": int | null,
"signerType": "default" | "in_person",
}
],
}
],
"pagination": {
"currentPage": int,
"nextPage": int | null,
"prevPage": int | null,
"totalCount": int,
},
"warnings": [str]
}
warnings: non-fatal notices (for example, label names that were not found and
were skipped). Template documents (isTemplate=true) expose documentRolesData
role ids used when creating a template-based sign request draft.
Use when: searching or browsing documents, filtering by labels/privacy/owner/dates/templates.
Not for: looking up a specific document by a known ID.DocHubDocHub
PluginoptionalProductivity - List Form Fields on DocHub Documentdochub · List form fields for a document.
isFillable marks fields whose value can be set; the listing exposes each
field's id, type, and role assignment. documentUrl is the DocHub link for
the document (null when unavailable).
Returns:
{
"status": "success",
"documentUrl": str | null,
"formfields": [
{
"id": str,
"ffType": str,
"isRequired": bool,
"isFillable": bool,
"isChecked": bool | null,
"choices": list | null,
"fieldTitle": str | null,
"value": any | null,
"pageNumber": int,
"documentRole": {
"id": str,
"name": str,
"email": str | null,
"queuePosition": int | null,
"signerType": "default" | "in_person",
} | null,
}
],
}
Use when: Inspecting document fields for signing/setup flows.
Not for: general document metadata, or listing documents.DocHubDocHub
PluginoptionalProductivity - List Sign Requests in DocHubdochub · List sign requests from DocHub with optional filters.
Supports filtering by status, sender, and date range.
Returns paginated results.
Returns:
{
"status": "success",
"signRequests": [{
"id": str, "status": str, "createdAt": str,
"sender": "me" | "others",
"signers": [{"name": str, "isCurrentUser": bool, "status": str}],
"document": {"id": str, "title": str, "fullUrl": str}
}],
"pagination": {
"currentPage": int,
"prevPage": int | null,
"nextPage": int | null,
"totalCount": int,
}
}
Use when: checking pending/completed/failed sign requests, filtering by status or date.
Not for: looking up a specific sign request by ID, or importing files.DocHubDocHub
PluginoptionalProductivity - Modify a Previously Generated Documentdochub · Modify a previously generated document by applying changes to its template
and/or data and recompiling to PDF. Requires the `runId` from a previous
generation response. On success the modified document is saved to DocHub
and its URL and an inline PDF preview are returned.
Parameters:
- runId: the runId from a previous generation response
- modification: natural-language description of the change
- additionalFacts (optional): new data fields the modification needs
- filename (optional): preferred output filename
Response `status` is "success" (contains `documentId`, `documentUrl`, and
`pdfUrl`) or "error" (contains a user-ready `message` and an `errorCode`;
`upgrade_required` and `ai_rate_limit_exceeded` indicate plan/allowance
limits).
Use when: changing a document that was just generated — e.g. adjusting a
value, adding or removing a section, or adding a signer line.
Not for: creating a new document or editing arbitrary DocHub documents.DocHubDocHub
PluginoptionalProductivity - Send Sign Requestdochub · Send/finalize a prepared DocHub sign request draft. Sending triggers
DocHub's signer notification flow.
The call proceeds through up to three stages, reflected by `status`:
- "send_blocked": DocHub's send dry-run found blockers; nothing is sent.
`blockers` lists each one with a `reasonCode`, a human-readable
`message`, and its `affectedRecipients`. `documentFields` lists the
draft's fields (type, page, assignment) for field-assignment blockers.
A re-call without confirmationToken re-runs validation.
- "confirmation_required": validation passed. The response carries a
one-time `confirmationToken` and a `preview` of exactly what will be
sent (recipients with assignedFields and canAnnotate, invitation
`emailSubject`/`emailBody`, and any `warnings`). `reason` is "missing"
when no token was supplied, or "invalid" when a supplied token was
expired, already used, or no longer matches the draft. A re-call with
the same parameters plus a current token and
confirmRecipientEmails (the recipient emails from the preview,
order-free) performs the send. A mismatched or missing
confirmRecipientEmails returns reason "invalid" with a fresh token and
preview; the previous token stays usable. When the preview lists no
recipient emails (in-person signing), confirmRecipientEmails may be
omitted.
- "success": the request was sent.
Required inputs:
- signRequestId: sign request draft id from a create response or a list/get lookup.
- confirmRecipientEmails: on the confirm call, the recipient emails shown
in the preview (not required when the preview lists no recipient emails).
Returns (by status):
Send blocked: {
"status": "send_blocked",
"action": "dochub_send_sign_request",
"message": str,
"documentTitle": str | null,
"blockers": [{"reasonCode": str, "message": str,
"affectedRecipients": [{"name": str | null, "email": str | null,
"queuePosition": int | null,
"documentRoleId": str | null}]}],
"warnings": [same shape as blockers],
"instructions": str,
"documentFields": [{"id": str, "ffType": str | null, "pageNumber": int | null,
"isRequired": bool | null, "assignedRoleName": str | null}]
}
Confirmation required: {
"status": "confirmation_required",
"action": "dochub_send_sign_request",
"reason": "missing" | "invalid",
"message": str,
"confirmationToken": str,
"instructions": str,
"preview": {
"documentTitle": str | null,
"recipients": [{"name": str | null, "email": str | null,
"queuePosition": int | null, "canAnnotate": bool | null,
"documentRoleId": str | null, "assignedFields": int | null}],
"emailSubject": str | null,
"emailBody": str | null,
"warnings": [{"reasonCode": str, "message": str}]
} | null
}
Success: {
"status": "success",
"signRequestId": str,
"signRequestStatus": str,
"documentUrl": str
}
Use when: finalizing and sending an existing draft sign request — the
e-signature invitation goes out to the signers.
Not for: creating a sign request draft.DocHubDocHub
PluginoptionalProductivity - Update Sign Request Draftdochub · Update a PREPARING sign request draft: its title and/or invitation email content.
Side effects: none toward signers — drafts send nothing. Sent requests cannot
be updated (the API returns a validation error).
Required inputs:
- signRequestId: the draft's id, returned by creation and by the
sign-request listing and details.
Plus at least one of:
- title: new title for the draft's document — what signers see and what the
default invitation subject interpolates.
- emailContent: invitation overrides with subject and/or body. Partial update:
a provided field replaces the stored value, an omitted field keeps its
current value.
Returns:
Success: {
"status": "success",
"signRequestId": str,
"title": str | null,
"emailSubject": str | null,
"emailBody": str | null
}
emailSubject/emailBody are the effective invitation content after the
update as stored by DocHub (authoritative — both are returned even when
only one was changed). title echoes the requested value when it was part
of the update, null otherwise.
A pending send confirmation token is invalidated when the invitation email
changes — the send flow then shows a fresh preview and asks for approval
again.
Use when: the user wants a different title or invitation wording on a draft
before sending (e.g. after seeing the applied defaults or the send preview).
Not for: sent/in-progress requests; changing recipients (done in the DocHub
editor at the draft's documentUrl); assigning fields or granting annotations
— the field-assignment and role-annotation tools cover those.DocHubDocHub
PluginoptionalProductivity - Get EzzyBills Developer Specificationget · Returns the authoritative EzzyBills developer specification for generating applications from user prompts. Use this whenever the user asks to build, generate, scaffold, or create an EzzyBills application. Returns eleven structured sections: coreArchitecture, authContract, universalRules, contentSecurityRules, actionRiskRules, apiCatalogue, workflowRecipes, applicationProfiles, idRules, specificationGaps, and generationRules (compatibility alias). This tool does not call the live EzzyBills account and does not require EzzyBills credentials.EzzyBillsEzzyBills
PluginnoneFinance - Add keywords to a Google Ads ad group (paused)google · Adds search keywords to an existing ad group. Every keyword is ALWAYS created PAUSED, even when the ad group is already paused: enabling keywords goes through google_update_object one at a time, because that is the only path to spending. keywords is a list of up to 100 objects, each {text, match_type, cpc_bid?}: match_type is EXACT, PHRASE, or BROAD; cpc_bid is optional and in the account currency (never micros). Keyword text follows Google's limits (80 characters, 10 words). The batch is applied atomically and charges one operation per keyword. The response reads the stored keywords back from Google, so report those values.adplaneAdplane
PluginrequiredMarketing - Add negative keywords to a Google Ads accountgoogle · Adds negative keywords to one Google Ads account, at campaign, ad group, or shared-list scope. Negative keywords only restrict where ads show; nothing this tool does can spend money. items is a list of up to 100 objects, each {scope, scope_id, text, match_type}: scope is campaign, ad_group, or shared_list; scope_id is the id of that campaign, ad group, or existing shared negative-keyword list (this tool does not create new lists); match_type is EXACT, PHRASE, or BROAD. Keyword text follows Google's limits (80 characters, 10 words). The batch is applied atomically and charges one operation per item. The response reads the stored negatives back from Google, so report those values rather than what was requested.adplaneAdplane
PluginrequiredMarketing - Create a Google Ads Search campaign (paused)google · Creates a new Google Ads Search campaign with its own daily budget. It is ALWAYS created PAUSED and cannot serve or spend until google_update_object enables it, which you should do only when the user explicitly asks to launch. daily_budget is in the account currency (50 means 50.00, never micros). campaign_type is SEARCH (the only supported type). bidding_strategy is MAXIMIZE_CLICKS by default, or MAXIMIZE_CONVERSIONS, MANUAL_CPC, or MAXIMIZE_CONVERSION_VALUE. target_cpa is an optional average cost-per-conversion target in the account currency, only with MAXIMIZE_CONVERSIONS; target_roas is an optional return-on-ad-spend target as a ratio of conversion value to cost (4 means 400 percent), only with MAXIMIZE_CONVERSION_VALUE. locations is an optional list of two-letter ISO country codes; if you omit it, Google targets ALL locations, and the response says so, so confirm targeting with the user before enabling. Networks default to Google Search only (no search partners, no Display). The campaign is declared as not containing EU political advertising, which Google requires on every create; EU political ads are banned on Google and cannot be created with this tool. After creating, build the structure with google_create_ad_group, google_add_keywords, and google_create_ad. The response is Google's own stored view of the campaign, read back from the API, so report those values.adplaneAdplane
PluginrequiredMarketing - Create a Google Ads ad group (paused)google · Creates an ad group inside an existing Search campaign, ALWAYS PAUSED. cpc_bid is an optional default bid for the ad group's keywords, in the account currency (2.5 means 2.50, never micros). Add keywords with google_add_keywords and an ad with google_create_ad; nothing serves until google_update_object enables the campaign, the ad group, and the keywords. The response is Google's own stored view, read back from the API, so report those values.adplaneAdplane
PluginrequiredMarketing - Create a Google Ads responsive search ad (paused)google · Creates a responsive search ad in an existing ad group, ALWAYS PAUSED. This completes the campaign structure but nothing serves until google_update_object enables it, which you should do only when the user explicitly asks to launch. Google's limits are enforced: 3 to 15 headlines of up to 30 characters, 2 to 4 descriptions of up to 90 characters, an absolute http(s) final_url, and optional display paths of up to 15 characters (path2 requires path1). Google mixes headlines and descriptions per query, so write each to stand alone. The response includes the ad's policy approval status read back from Google; policy rejections name the policy topics.adplaneAdplane
PluginrequiredMarketing - Create a Meta ad (paused)meta · Creates an ad by attaching an existing creative to an existing ad set. ALWAYS PAUSED: this completes the campaign structure but nothing delivers until meta_update_object sets status to ACTIVE, which you should do only when the user explicitly asks to launch.adplaneAdplane
PluginrequiredMarketing - Create a Meta ad creativemeta · Creates an ad creative: the headline, body text, media, destination URL, and call-to-action button an ad shows. Requires a page_id from meta_list_accounts, because every Meta ad is published by a Facebook Page. message is the main body text; headline is the bold line by the media. By default this builds a single-image link creative. To build a single-video creative instead, pass video_id (from meta_upload_video) together with a thumbnail image (image_hash from meta_upload_image, or image_url) which Meta requires on a video creative; the destination link then rides in the call-to-action. If the video is still processing, this can fail until it is ready. A creative is not deliverable on its own, so this creates nothing that can spend; meta_create_ad attaches it to an ad set.adplaneAdplane
PluginrequiredMarketing - Create a Meta ad set (paused)meta · Creates an ad set inside an existing campaign, ALWAYS PAUSED. This is where budget, targeting, and optimization live. targeting must at minimum name geo_locations, e.g. {"geo_locations": {"countries": ["US"]}, "age_min": 25}. You do NOT need to set targeting_automation yourself; the advantage_audience parameter handles it (defaults to False = use your targeting as given, no automatic audience expansion). Budgets are in the account currency (50 means 50.00). If the campaign already has a budget, do not set one here. When optimization_goal is OFFSITE_CONVERSIONS you must pass promoted_object naming the pixel and event, e.g. {"pixel_id": "123", "custom_event_type": "LEAD"}; without it the ad set will not optimize for conversions. Times are ISO 8601 with an offset, e.g. "2026-08-01T09:00:00-0700".adplaneAdplane
PluginrequiredMarketing - Create a Meta campaign (paused)meta · Creates a new Meta campaign. It is ALWAYS created PAUSED and cannot spend money until meta_update_object activates it. objective is required and cannot be changed later, so confirm it with the user first. special_ad_categories is required by Meta: pass NONE unless the ads are about credit, employment, housing, social issues/elections/politics, gambling, or financial products, in which case ask the user rather than guessing. Leave both budget arguments unset to put budgets on the ad sets instead, which is the more predictable setup; setting a budget here turns on campaign budget optimization and its ad sets must then have none. With a campaign budget, bid_strategy defaults to LOWEST_COST_WITHOUT_CAP (automatic bidding, no per-ad-set bid needed); only set it if you specifically want a bid or cost cap, which then requires bid_amount on each ad set. A budgetless campaign takes its bid strategy per ad set instead, so none is sent here. Call meta_get_schema for valid values and the required/conditional-field list.adplaneAdplane
PluginrequiredMarketing - List Meta campaigns, ad sets, ads, or creativesmeta · Lists the current configuration of campaigns, ad sets, ads, or ad creatives on one Meta ad account, including status and budgets. This is the structural view; use meta_run_report for performance. Narrow with campaign_id or adset_id. Budgets are returned in the account currency. effective_status is the one to read when asking why something is not delivering: it reflects the parent's state and any review outcome, while status only reflects this object's own setting.adplaneAdplane
PluginrequiredMarketing - List connected Google Ads accountsgoogle · Lists the Google Ads accounts this user has connected, with their IDs, names, currencies, and time zones. Call this first in a conversation to resolve which customer_id to use; do not guess or reuse IDs from earlier conversations. All monetary values from other tools are reported in each account's currency_code shown here. If the account the user mentions is not listed, tell them to add it at https://adplane.ai/accounts. Do not try other IDs.adplaneAdplane
PluginrequiredMarketing - List connected Meta ad accountsmeta · Lists the Meta (Facebook/Instagram) ad accounts this user has connected, plus the Facebook Pages available for ad creatives. Call this first in a conversation to resolve which account_id to use; do not guess or reuse IDs from earlier conversations. All money values in other Meta tools are in each account's currency. Also reports when the Meta connection expires, which matters because Meta connections lapse after about 60 days and must be renewed by the user. Each account carries promotable_page_ids: the Pages configured for that account's Promote/boost flow. This is a NARROW set and is not the list of Pages usable in a creative: building a creative only needs a Page role on the connecting user, which every Page in the top-level pages list already has, so a Page absent from promotable_page_ids (even an empty list) can still be used as a creative's page_id. Treat promotable_page_ids as a hint about promote-flow setup, not a gate on creative building; for creatives, use any Page from the top-level pages list. A page in neither promotable_page_ids nor the top-level pages list is not visible to this login. promotable_page_ids of null means Meta could not report the promote-flow set for that account just now. Every Page in the top-level pages list is usable as a creative's page_id (being in that list means you have the Page role a creative needs), so that list is the set to choose a page_id from. Each such Page also carries business_id: the Business that owns it, or null when it has no owning Business. A null business_id is normal and does not affect usability: Pages you administer by role rather than by Business ownership are fully usable in creatives.adplaneAdplane
PluginrequiredMarketing - Look up Meta report fields and campaign settingsmeta · Returns everything the other Meta tools will accept: insight levels, report fields, breakdowns, and the exact enum values for campaign objectives, optimization goals, billing events, bid strategies, statuses, and call-to-action types. You MUST call this before using a field or enum value you have not already used successfully in this conversation. Values not returned here are rejected.adplaneAdplane
PluginrequiredMarketing - Look up available report types and fieldsgoogle · Returns the report types (resources) you can query with google_run_report and the exact fields each supports. You MUST call this before using a field you have not already used successfully in this conversation; field names that are not returned by this tool will be rejected. Common resources: campaign, ad_group, keyword_view, search_term_view, ad_group_ad, customer, geographic_view, campaign_budget. For Performance Max: asset_group, campaign_search_term_insight, and performance_max_placement_view.adplaneAdplane
PluginrequiredMarketing - Permanently delete a never-spent Meta campaignmeta · Permanently deletes ONE Meta campaign that has never spent money, for cleaning up a failed or abandoned campaign that was never launched. This is IRREVERSIBLE and is the only Meta tool that destroys anything, so use it only when the user explicitly asks to delete, and prefer archiving (meta_update_object with status ARCHIVED) whenever the campaign might be wanted again. Only campaigns can be deleted; archive ad sets, ads, and creatives instead. The campaign must have zero lifetime spend: if it has ever spent, or its spend cannot be read, the delete is refused and you are told to archive instead. Deleting a campaign also removes its ad sets and ads.adplaneAdplane
PluginrequiredMarketing - Permanently remove a never-spent Google Ads campaigngoogle · Permanently removes ONE Google Ads campaign that has never spent money, for cleaning up an abandoned scaffold that was never launched. Google has no undo for this: REMOVED is permanent, hides the campaign, and cannot be reversed, so use this only when the user explicitly asks to remove or delete, and prefer pausing (google_update_object with status PAUSED) whenever the campaign might be wanted again. Campaigns only; there is no way to remove ad groups, ads, or keywords with this tool. The campaign must have zero lifetime spend: if it has ever spent, or its spend cannot be read or verified, the removal is refused and you are told to pause instead. Removing a campaign also removes its ad groups, keywords, and ads. The response's confirmed_removed reports whether a follow-up read saw the REMOVED status.adplaneAdplane
PluginrequiredMarketing - Pingping · Health check: confirms the OAuth connection works end to end.adplaneAdplane
PluginrequiredMarketing - Preflight-check a Meta ad account before buildingmeta · Checks whether one Meta ad account is actually ready to build and run ads: account status, payment method, accepted ad terms, available Facebook Pages, app publishability, pixel presence, the account spend cap, and connection expiry. Call this BEFORE creating campaigns on an account you have not built on in this conversation; the failures it detects (no payment method, missing certification, app not publishable) otherwise surface only midway through a build, after campaigns and ad sets already exist. Read-only and changes nothing. Each check reports ok, warning, action_needed, or unknown; action_needed items block building or delivery, and the response's ready flag is false while any remain. unknown means Meta's API cannot report that fact, so read the detail for what to watch for rather than treating it as a failure.adplaneAdplane
PluginrequiredMarketing - Rename, pause, activate, or re-budget a Meta objectmeta · Changes one existing campaign, ad set, or ad. This is the ONLY tool that can start spending: setting status to ACTIVE makes the object eligible to deliver, so only do it when the user has explicitly asked to launch or resume, and say plainly that it will begin spending. PAUSED stops delivery and is reversible; ARCHIVED hides it and is how you retire something. Budgets and bids are in the account currency. The response is Meta's own view of the object after the change, so report those values rather than what was requested.adplaneAdplane
PluginrequiredMarketing - Rename, pause, enable, re-budget, or re-bid a Google Ads objectgoogle · Changes one existing Google Ads campaign, ad group, ad, or keyword. This is the ONLY tool that can start spending: setting status to ENABLED makes the object eligible to serve, so only do it when the user has explicitly asked to launch or resume, and say plainly that it will begin spending. PAUSED stops serving and is reversible. There is no REMOVED status here; nothing this tool does can delete. The changeable fields depend on object_type: a campaign takes name, status, daily_budget, bidding_strategy, target_cpa, and target_roas; an ad_group takes name, status, and cpc_bid; an ad takes status only; a keyword takes status and cpc_bid. Money is in the account currency (50 means 50.00, never micros). bidding_strategy is MAXIMIZE_CLICKS, MAXIMIZE_CONVERSIONS, MANUAL_CPC, or MAXIMIZE_CONVERSION_VALUE. target_cpa is the average cost-per-conversion target and applies only to MAXIMIZE_CONVERSIONS; target_roas is the target return on ad spend as a ratio of conversion value to cost (4 means 400 percent) and applies only to MAXIMIZE_CONVERSION_VALUE. Setting a target alone requires the campaign to already be on its strategy; to switch strategies at the same time, pass bidding_strategy explicitly. A target of 0 clears the stored target. A campaign attached to a shared portfolio bidding strategy is refused for these fields, because changing it here would detach the campaign from the strategy its sibling campaigns share. Changing the strategy or a target on a serving campaign restarts Google's bid-strategy learning phase, so mention that when you do it. A campaign on a shared budget is refused for daily_budget, because changing it would change every campaign on that budget. For ads and keywords, object_id can be the composite adGroupId~id form shown in report resource_names; a bare id also works when it is unambiguous. The response is Google's own view of the object after the change, read back from the API, so report those values rather than what was requested.adplaneAdplane
PluginrequiredMarketing - Render a preview of how a Meta ad or creative looksmeta · Returns Meta's own rendering of how an ad or creative appears in a given placement, as a ready-to-embed iframe. Read-only and changes nothing. Pass exactly one of creative_id or ad_id (from meta_list_objects); passing both or neither is an error. ad_format picks the placement (defaults to MOBILE_FEED_STANDARD); call meta_get_schema for the valid values. The response's preview_src URL carries a token that expires within minutes, so treat this as a short-lived rendering aid to check the ad, not a durable link to save or share.adplaneAdplane
PluginrequiredMarketing - Run a Google Ads performance reportgoogle · Runs a read-only report against one Google Ads account. Money fields are returned in the account currency, already converted (never micros). date_range accepts a preset like LAST_30_DAYS or an explicit "2026-06-01..2026-06-30"; the response echoes the exact dates used; always state them when presenting results to the user. Data reflects the account's own time zone and may lag real time by ~3 hours. If results are truncated, either refine with filters or pass the returned cursor to get the next page. Each filter is an object {field, op, value}: op is one of eq, neq, gt, gte, lt, lte, contains, not_contains, in, not_in (in and not_in take a list value; contains and not_contains work on string fields only, so match enums with eq or in). order_by is {field, direction} with direction asc or desc (defaults to asc), and field must be one of the requested fields. Use google_get_report_schema to find valid fields; do not invent field names.adplaneAdplane
PluginrequiredMarketing - Run a Meta Ads performance reportmeta · Runs a read-only insights report against one Meta ad account. Money values are in the account currency. date_range accepts a preset like LAST_30_DAYS or an explicit "2026-06-01..2026-06-30"; the response echoes the exact dates used, so state them when presenting results. Set level to control aggregation (account, campaign, adset, ad). Meta reports rates like ctr and cpc per row; the response totals only make sense for additive metrics such as impressions, clicks, and spend. Use action_types (e.g. ["lead", "purchase"]) to pull specific conversion counts and costs into their own columns. Each filter is an object {field, operator, value} (Meta's own shape, not the Google one): operator is one of EQUAL, NOT_EQUAL, GREATER_THAN, GREATER_THAN_OR_EQUAL, LESS_THAN, LESS_THAN_OR_EQUAL, IN_RANGE, CONTAIN, NOT_CONTAIN, IN, NOT_IN. Call meta_get_schema for valid fields; do not invent field names.adplaneAdplane
PluginrequiredMarketing - Run a raw GAQL query (read-only)google · Executes a raw GAQL (Google Ads Query Language) SELECT query against the Google Ads API (query language reference: https://developers.google.com/google-ads/api/docs/query/overview). Read-only: mutations are impossible through this tool. Prefer google_run_report unless you need GAQL features it lacks. Same response format as google_run_report, including automatic conversion of *_micros money fields to account currency (column names lose the _micros suffix). Keep queries narrow (explicit date range, LIMIT); oversized results are truncated with a cursor. Use google_get_report_schema for valid fields.adplaneAdplane
PluginrequiredMarketing - Search Meta ad targeting interests and behaviorsmeta · Searches Meta's ad targeting taxonomy (interests, behaviors, demographics, job titles, and similar) by free text and returns the IDs an ad set's targeting spec accepts. Use this BEFORE building targeting beyond geo and age: taxonomy IDs must come from here, never from memory, because an invented or stale ID is rejected or silently targets the wrong audience. Each result's type names the key it goes under in the targeting spec's flexible_spec, e.g. a result with type interests becomes {"flexible_spec": [{"interests": [{"id": "...", "name": "..."}]}]}. Results include Meta's estimated audience size bounds; prefer specific mid-sized entries over the broadest match.adplaneAdplane
PluginrequiredMarketing - Upload a video to a Meta ad accountmeta · Adds a video to one Meta ad account's video library by giving Meta the video's public URL. Meta fetches the video from that URL itself; nothing is proxied through this server, so the URL must be a public http(s) link to the video file (mp4, mov, and similar), not a page that contains it. This server does a quick best-effort check that the URL looks like a video, but Meta is the final validator once it fetches the file, so a URL that passes the check can still be rejected by Meta, and a reachable-only-by-Meta URL is accepted and left for Meta to judge. Returns a video_id that meta_create_ad_creative accepts as its video_id parameter, along with the video's current processing status. Video processing is asynchronous and can take a while: a creative or ad built on a video that is still processing may fail until it is ready, and the response's notice says so. Read the returned status and, if it is still processing, wait before building the creative or retry if creation reports the video is not ready. It adds a library asset only; nothing it does can spend money.adplaneAdplane
PluginrequiredMarketing - Upload an image to a Meta ad accountmeta · Downloads an image from a public URL and uploads it to one Meta ad account's image library, returning the image_hash that meta_create_ad_creative accepts. Use this so the ad's image is a deliberate choice rather than whatever Meta scrapes off the landing page. The URL must serve the image file itself (JPEG, PNG, GIF, or WebP, up to 8 MB) over public http(s), not a page that contains it. Uploading the same image again returns the same hash, so repeating this call is safe. It adds a library asset only; nothing it does can spend money.adplaneAdplane
PluginrequiredMarketing - Calculate pregnancy weekcalculate · Calculate the current pregnancy week, due date, trimester, and baby's fruit-size comparison from the last menstrual period or a known due date, and display it on an interactive pregnancy wheelPregnancy WheelPregnancy Wheel
PluginnoneHealth & Wellness - Get pregnancy week infoget · Get the fruit-size comparison, approximate length/weight, and any milestone for a specific pregnancy week (4-42)Pregnancy WheelPregnancy Wheel
PluginnoneHealth & Wellness - Buscar un cliente propioconcierge · Busca por nombre entre los clientes de la agente autenticada. Devuelve máximo cinco nombres e identificadores opacos; nunca teléfono, correo, notas ni documentos.Concierge RadarConcierge Radar
PluginrequiredTravel & Hospitality - Consultar cotización de hotelconcierge · Consulta el avance de una búsqueda iniciada por la agente autenticada y devuelve hasta cinco opciones. Si todavía está trabajando, respeta retry_after_seconds antes de consultar de nuevo. Presenta cada opción como lista vertical y escribe el proveedor junto al hotel; nunca omitas el proveedor ni uses una tabla ancha.Concierge RadarConcierge Radar
PluginrequiredTravel & Hospitality - Crear borrador de cotizaciónconcierge · Crea un borrador privado desde una opción final del motor, un cliente propio y un precio de venta total confirmado. No genera liga, no envía y no reserva.Concierge RadarConcierge Radar
PluginrequiredTravel & Hospitality - Crear cliente sólo con su nombreconcierge · Crea un cliente privado únicamente con su nombre, sólo después de que la agente lo confirme explícitamente. No acepta ni devuelve teléfono, correo, notas o documentos.Concierge RadarConcierge Radar
PluginrequiredTravel & Hospitality - Generar liga de propuestaconcierge · Genera una liga pública de siete días sólo con el código temporal obtenido al revisar y tras confirmación explícita. No la envía ni marca la propuesta como enviada.Concierge RadarConcierge Radar
PluginrequiredTravel & Hospitality - Iniciar cotización de hotelconcierge · Inicia una búsqueda real de hospedaje para la agente autenticada. Devuelve un work_id para consultar el avance. Si presenta opciones parciales, usa una lista vertical y muestra siempre el proveedor junto al hotel. No crea una propuesta, no reserva y no compra.Concierge RadarConcierge Radar
PluginrequiredTravel & Hospitality - Revisar propuesta antes de actuarconcierge · Devuelve el resumen exacto y un código temporal para generar o revocar una liga. Muéstralo a la agente y espera su confirmación explícita.Concierge RadarConcierge Radar
PluginrequiredTravel & Hospitality - Revocar liga de propuestaconcierge · Desactiva la liga pública actual sólo con el código temporal obtenido al revisar y confirmación explícita. Si se publica otra vez tendrá un código distinto.Concierge RadarConcierge Radar
PluginrequiredTravel & Hospitality - Add a brand to the libraryonboard · Pull a brand into Upspring so you can analyze it. Takes an onboard_ref from a resolve_advertiser match. ALWAYS confirm with the user before calling this — it starts a real, minutes-long process. Rate-limited per day. Returns a job_id; poll it with get_onboard_status.UpspringUpspring
PluginrequiredMarketing - Check onboarding progressget · Check whether a brand you onboarded is ready yet, using the job_id from onboard_advertiser.UpspringUpspring
PluginrequiredMarketing - Compare two advertiserscompare · Head-to-head creative-strategy comparison of two advertisers: labeled divergences, whitespace (dimensions one uses that the other does not), and shared/exclusive cultural trends.UpspringUpspring
PluginrequiredMarketing - Find advertisersquery · Browse or fuzzy-search advertisers (brands/companies) in the corpus by name, vertical, or category. Returns advertiser ids used by the other tools.UpspringUpspring
PluginrequiredMarketing - Find similar adsfind · Find ads resembling a specific corpus ad (reference_ad_id — true visual similarity), a described creative (visual_description — matches on what the creative shows and argues), a public image URL (image_url — true visual similarity, same as reference_ad_id but for an image outside the corpus), or a public video URL (video_url — same, matched on its opening). When a user shows you an image and asks for ads like it: if they gave you an actual URL, use image_url; if they pasted the image into the conversation, LOOK at it and pass what you see as visual_description. Exactly one seed per call.UpspringUpspring
PluginrequiredMarketing
What is Tool Explorer?
Tool Explorer indexes the callable tool names and descriptions attached to public registry profiles. It is useful for seeing what agents can actually invoke, not just which profile exists.
How do category and verb filters work?
Category filters use the live registry category rollup. Verb filters use the public tool insights rollup, so the page stays backed by the same read models as the tracker charts.
Why do auth requirements matter?
Auth requirements show whether a tool is likely usable without account connection, requires authentication, is private, or is unknown in the current snapshot.