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
- Get advertiser briefget · One advertiser's creative playbook: humanized summary, signature signals, hook themes with verbatim example hooks, and current top ads. When available, also includes reddit — what people say about the brand on Reddit (summary, sentiment, themes, verbatim quotes).UpspringUpspring
PluginrequiredMarketing - Get full ad descriptorsget · The full textual package for up to 10 ads: long-form creative narration (scenes, claims, voice), synopsis, labeled creative dimensions, verbatim hook, offer facts, and the landing page one-liner. Use this to reason about creatives WITHOUT processing the raw asset. Ids we hold no record of come back in not_found.UpspringUpspring
PluginrequiredMarketing - Get taxonomyget · Discover the industry taxonomy: verticals, categories, and the dimension vocabularies (valid snake_case ids with human labels) used by query_industry_ads filters.UpspringUpspring
PluginrequiredMarketing - Get viewable ad mediaget · Viewable media URLs (image/video) for up to 10 ads, plus status and launch date. ONLY call this when the user explicitly asks to SEE, view, or watch the actual creative — for understanding and reasoning about ads, use get_ad_descriptors instead (the text tells you everything without loading media).UpspringUpspring
PluginrequiredMarketing - List my workspaceslist · The workspaces this user granted this connection, each with its ad accounts, plus which one is the current DEFAULT target. Own-ads calls target the default unless you pass ad_account/space_id. Industry tools are workspace-independent.UpspringUpspring
PluginrequiredMarketing - List watched advertisersget · The advertisers this workspace follows (its watchlist). Start here when the question is about "my competitors" or "the brands we track".UpspringUpspring
PluginrequiredMarketing - My account performanceget · Account-level performance snapshots (spend, ROAS, CTR, CPA, purchases, leads, cost per lead, conversion rate...) for YOUR OWN ad account, daily or monthly. "Conversion" is dynamic — pass conversion_event to headline leads/purchases/registrations/etc.; each response also carries a full conversions map. Performance data is available from 2026-02-01 to 2026-08-31. Defaults to ad account act_2042363319624030 in "Upspring MCP " unless you pass ad_account (and space_id when it is ambiguous).UpspringUpspring
PluginrequiredMarketing - My ads performanceget · Per-ad performance rows (spend, ROAS, CTR, CPA, purchases, hook rate, leads, cost per lead, conversion rate...) for YOUR OWN ads, sortable by any metric. "Conversion" is dynamic — pass conversion_event to headline leads/purchases/registrations/etc.; each row also carries a full conversions map. Performance data is available from 2026-02-01 to 2026-08-31. Defaults to ad account act_2042363319624030 in "Upspring MCP " unless you pass ad_account (and space_id when it is ambiguous). Pass scope: "all_granted" to aggregate across every granted workspace instead of just one (opt-in; logged distinctly).UpspringUpspring
PluginrequiredMarketing - My ads performance for a custom date rangeget · Per-ad performance for YOUR OWN ads across ANY custom date range, not just whole months. Fetched LIVE for the exact dates, so recent windows reflect the freshest attributed numbers, and metrics honor this workspace attribution window (override per call with attribution_windows). Each ad returns spend, impressions, clicks, ctr, cpc, cpm, reach, frequency, plus a conversions map of every conversion type (purchase, lead, registration, ...) with count and value, and headline leads / cost_per_lead / conversion_rate. The response also carries account_total (an aggregate over EVERY ad in the range) and total (the full ad count); the per-ad rows are the top ones by spend, use offset to page. Meta ad accounts only for now. Defaults to ad account act_2042363319624030 in "Upspring MCP " unless you pass ad_account (and space_id when it is ambiguous).UpspringUpspring
PluginrequiredMarketing - My brand profileget · The customer's own brand grounding: brand context, marketing calendar, performance goals, account creative profile (creative-DNA fingerprint), playbook, and saved knowledge. START HERE for any question about the user's own brand, strategy, or "in our style" requests — then use the other get_my_* tools for numbers.UpspringUpspring
PluginrequiredMarketing - My creative detailget · Fetch ONE of YOUR OWN ad creatives by its Upspring creative id: its content (copy, headlines, landing pages), its property tags (Content Type, Theme, Emotion Tone, Visual Style, ...), and a recent performance snapshot (spend, ROAS, purchases, CPA, CTR, plus leads / cost-per-lead / conversion rate where available). Pass include_descriptors to also get the full scene-by-scene textual description of the creative. Use this for the deepest read of a single creative, e.g. from the Upspring app's "Open in Claude" button or a creative_id from get_my_ads_by_date_range. To skim many creatives at once, use get_my_creative_descriptors. Defaults to ad account act_2042363319624030 in "Upspring MCP " unless you pass ad_account (and space_id when it is ambiguous).UpspringUpspring
PluginrequiredMarketing - My creative patternsget · Creative-DNA patterns across YOUR OWN ads (which creative attributes correlate with performance). Performance data is available from 2026-02-01 to 2026-08-31. Defaults to ad account act_2042363319624030 in "Upspring MCP " unless you pass ad_account (and space_id when it is ambiguous).UpspringUpspring
PluginrequiredMarketing - My top adsget · YOUR OWN best (or worst) performing ads in a date range — leads, cost per lead, and conversion rate are shown per creative alongside spend/ROAS/CPA. "Conversion" is dynamic — pass conversion_event to headline leads/purchases/registrations/etc. Performance data is available from 2026-02-01 to 2026-08-31. Defaults to ad account act_2042363319624030 in "Upspring MCP " unless you pass ad_account (and space_id when it is ambiguous). Pass scope: "all_granted" to aggregate across every granted workspace instead of just one (opt-in; logged distinctly).UpspringUpspring
PluginrequiredMarketing - Query industry adsquery · Query the industry/competitor ad corpus. With group_by: a distribution (share per dimension value, with human labels, descriptions, and verbatim examples). Without group_by: a ranked ad list ("best" = strongest performance signal, "recent" = newest) with creative DNA and one-line descriptions per ad; each ad carries human-readable labels for its creative dimensions. Follow up with get_ad_descriptors on shortlisted ad_ids for the full creative narration. Each ad also carries source_id — the Meta Ad Library id shown in the Upspring app, for cross-referencing a specific ad with the user.UpspringUpspring
PluginrequiredMarketing - Read my creatives as textget · Textual, scene-by-scene descriptions of SEVERAL of YOUR OWN creatives at once, so you can read and reason over many creatives without watching the videos. Pass creative_id values from get_my_ads_by_date_range (up to 15). Returns, per creative, a compact opening gist plus its property tags (and scene_count); pass full=true for the complete scene-by-scene text (heavier, use for a small set). This is the tool for analyzing creative patterns across your ads at scale; use get_my_creative for the single deepest read of one creative. Defaults to ad account act_2042363319624030 in "Upspring MCP " unless you pass ad_account (and space_id when it is ambiguous).UpspringUpspring
PluginrequiredMarketing - Resolve a brandresolve · Look up whether a brand is in Upspring. Returns status "ready" (already here — the row carries advertiser_id for the other tools), "onboardable" (we can pull it in — each match carries an onboard_ref for onboard_advertiser), or "not_found". Use this whenever a user names a brand you cannot find with query_advertisers.UpspringUpspring
PluginrequiredMarketing - Switch workspaceswitch · Repoint the DEFAULT own-ads target to another workspace you granted this connection. Convenience only — you can also target any granted ad account per call via ad_account/space_id. Takes effect on subsequent calls.UpspringUpspring
PluginrequiredMarketing - API: bitsweave_catalog_demoapi · Bitsweave catalog demo — 1 operation. Call with { query } to SEARCH its operations (a no-argument call lists none); discover more via tools_search and execute via tools_call against brokers_api_invoke.BitsWeaveBitsWeave
PluginrequiredAI - Accountsaccounts · BitsWeave accounts tools (2): accounts_me, accounts_setActiveOrg. Call (no arguments) to list its callable tools with their input schemas; execute them via tools_call.BitsWeaveBitsWeave
PluginrequiredAI - Brokers Apibrokers · BitsWeave api broker tools (8): brokers_api_disableApi, brokers_api_enableApi, brokers_api_getOperation, brokers_api_invoke, brokers_api_listBrokerApis, …. Call (no arguments) to list its callable tools with their input schemas; execute them via tools_call.BitsWeaveBitsWeave
PluginrequiredAI - Brokers Emailbrokers · BitsWeave email broker tools (1): brokers_email_sendMessage. Call (no arguments) to list its callable tools with their input schemas; execute them via tools_call.BitsWeaveBitsWeave
PluginrequiredAI - Brokers Installationsbrokers · BitsWeave installations broker tools (9): brokers_installations_completeInstall, brokers_installations_disable, brokers_installations_discoverAccounts, brokers_installations_enable, brokers_installations_get, …. Call (no arguments) to list its callable tools with their input schemas; execute them via tools_call.BitsWeaveBitsWeave
PluginrequiredAI - Brokers Message Schemasbrokers · BitsWeave messageSchemas broker tools (2): brokers_messageSchemas_get, brokers_messageSchemas_list. Call (no arguments) to list its callable tools with their input schemas; execute them via tools_call.BitsWeaveBitsWeave
PluginrequiredAI - Brokers Messagesbrokers · BitsWeave messages broker tools (2): brokers_messages_get, brokers_messages_list. Call (no arguments) to list its callable tools with their input schemas; execute them via tools_call.BitsWeaveBitsWeave
PluginrequiredAI - Brokers Record Mappingsbrokers · BitsWeave recordMappings broker tools (9): brokers_recordMappings_create, brokers_recordMappings_createMany, brokers_recordMappings_createModelBundle, brokers_recordMappings_createSchemaAndMap, brokers_recordMappings_delete, …. Call (no arguments) to list its callable tools with their input schemas; execute them via tools_call.BitsWeaveBitsWeave
PluginrequiredAI - Call a tooltools · Execute any BitsWeave tool by its dispatch name (e.g. brokers_grafana_queryLogs) with a JSON input matching its schema. Discover names and schemas via the seed tools (brokers_*, documents, customRecords, …) or tools_search / tools_get.BitsWeaveBitsWeave
PluginrequiredAI - Contextcontext · BitsWeave context tools (10): context_graph, context_graphStream, context_hydrate, context_prepareSummary, context_search, …. Call (no arguments) to list its callable tools with their input schemas; execute them via tools_call.BitsWeaveBitsWeave
PluginrequiredAI - Custom Recordscustomrecords · BitsWeave customRecords tools (27): customRecords_records_create, customRecords_records_delete, customRecords_records_get, customRecords_records_link, customRecords_records_listLinks, …. Call (no arguments) to list its callable tools with their input schemas; execute them via tools_call.BitsWeaveBitsWeave
PluginrequiredAI - Documentsdocuments · BitsWeave documents tools (11): documents_create, documents_delete, documents_fragments_add, documents_fragments_list, documents_fragments_remove, …. Call (no arguments) to list its callable tools with their input schemas; execute them via tools_call.BitsWeaveBitsWeave
PluginrequiredAI - Get tool schematools · Get one tool's full metadata + input schema + output schema by its underscored dispatch id (e.g. `customRecords_records_create`). Resolves against the CALLER's own dispatch surface — a tool the caller can't see returns NOT_FOUND.BitsWeaveBitsWeave
PluginrequiredAI - Hydrate contextcontext · Hydrate a focal identifier set into per-entity snapshots (kind / id / payload / bytes). Unknown kinds drop silently. Org is inferred from the idents.BitsWeaveBitsWeave
PluginrequiredAI - Notificationsnotifications · BitsWeave notifications tools (2): notifications_acknowledge, notifications_list. Call (no arguments) to list its callable tools with their input schemas; execute them via tools_call.BitsWeaveBitsWeave
PluginrequiredAI - Organizationorganization · BitsWeave organization tools (20): organization_agents_create, organization_agents_list, organization_create, organization_get, organization_invitations_accept, …. Call (no arguments) to list its callable tools with their input schemas; execute them via tools_call.BitsWeaveBitsWeave
PluginrequiredAI - Records: decisionrecords · Records of type 'decision' (Decision, 9 fields). Call (no arguments) for its fields, relations, an example payload, and a live snapshot; then create / query / upsert / link via tools_call against customRecords_records_*.BitsWeaveBitsWeave
PluginrequiredAI - Records: labelrecords · Records of type 'label' (Label, 4 fields). Call (no arguments) for its fields, relations, an example payload, and a live snapshot; then create / query / upsert / link via tools_call against customRecords_records_*.BitsWeaveBitsWeave
PluginrequiredAI - Records: noterecords · Records of type 'note' (Note, 4 fields). Call (no arguments) for its fields, relations, an example payload, and a live snapshot; then create / query / upsert / link via tools_call against customRecords_records_*.BitsWeaveBitsWeave
PluginrequiredAI - Records: projectrecords · Records of type 'project' (Project, 4 fields). Call (no arguments) for its fields, relations, an example payload, and a live snapshot; then create / query / upsert / link via tools_call against customRecords_records_*.BitsWeaveBitsWeave
PluginrequiredAI - Records: taskrecords · Records of type 'task' (Task, 8 fields). Call (no arguments) for its fields, relations, an example payload, and a live snapshot; then create / query / upsert / link via tools_call against customRecords_records_*.BitsWeaveBitsWeave
PluginrequiredAI - Records: task_eventrecords · Records of type 'task_event' (Task Event, 6 fields). Call (no arguments) for its fields, relations, an example payload, and a live snapshot; then create / query / upsert / link via tools_call against customRecords_records_*.BitsWeaveBitsWeave
PluginrequiredAI - Search contextcontext · Hybrid search over the org's context graph. Embeds a free-text query and fuses semantic (vector) + lexical (full-text) ranking over each entity's node-digest gist, returning the best-matching entities as ranked idents (kind / id / score / vectorScore / textScore / snippet). Feed the returned idents into context.traverse / context.hydrate / context.summary. Optional `kinds` narrows to an ident-kind allowlist. Org comes from the caller's active-org binding.BitsWeaveBitsWeave
PluginrequiredAI - Search toolstools · Search the agent tool catalog: a read-only, scope-gated keyword search over the agent-dispatch surface. Conjunctive case-insensitive keyword match over each tool's name + description (all keywords must hit; empty query lists all). `asAgentId` previews a named agent's surface (its scopes ∩ tool allowlist, byte-identical to that agent's live dispatch list) and requires the org agents-read scope. Returns rows (name, dispatchName, description, domain, scope, broker flag, schema-token cost) plus a surface aggregate (toolCount, totalTokens, budget) over the FULL surface for the per-agent prompt-budget header. Installable broker tools stay listed when the org has not installed them: `installed` is false and `installUrl` is the af-web install page so the agent can tell the user how to add the broker.BitsWeaveBitsWeave
PluginrequiredAI - Sessionsession · BitsWeave session tools (15): session_activity_feed, session_activity_list, session_close, session_create, session_events_append, …. Call (no arguments) to list its callable tools with their input schemas; execute them via tools_call.BitsWeaveBitsWeave
PluginrequiredAI - Summarize contextcontext · Stream a prose summary of the procedure-log context traverse for a focal identifier set. Resolves prompt + model from platform.config (fallback: llm.resolveConfig). Yields a `skeleton` structure frame first, then `prose` content-delta frames. Org inferred from the idents.BitsWeaveBitsWeave
PluginrequiredAI - Work Permissionsworkpermissions · BitsWeave workPermissions tools (7): workPermissions_create, workPermissions_gateableTools, workPermissions_get, workPermissions_list, workPermissions_policies_batch, …. Call (no arguments) to list its callable tools with their input schemas; execute them via tools_call.BitsWeaveBitsWeave
PluginrequiredAI - Check playabilityresolve · Ground ONE piece of content you found yourself. Have more than one? Use resolve_content_batch — it takes up to 25 refs in a single call and is the normal path; this tool is the single-candidate convenience form. Takes a ContentRef; this app implements the podcast_episode profile only (episode_id, guid, feed_url, or an episode page URL, plus title / show_title / published_at hints) and imports it just in time from Podcast Index and the publisher's canonical RSS feed when the library lacks it — that episode plus the feed's 50 most recent items, NOT the whole back catalog; use import_feed when the user wants the show itself. Only this server can declare content playable — never tell the user something is playable because you saw it on the web. Unavailable is a normal, successful answer, with a machine-readable reason (subscription_only, private_feed_required, spotify_exclusive, apple_subscription, removed_by_publisher, no_public_feed, audio_unreachable, unsupported_content_type for a medium this app cannot play, or resolution_failed when the resolver itself failed and a retry may succeed) you can relay plainly and route around, e.g. by offering an external link. Whole show rather than one episode? Use import_feed. Like the batch form, when it is due this carries standing_feedback: what the user has written about their listening, verbatim, notes about this show placed first, unfiltered by topic because that judgement is yours.RovynRovyn
PluginrequiredConsumer & Lifestyle - Check playability (batch)resolve · Validate a BATCH of candidates you found yourself (web search, memory, a show's site) in one call — up to 25 refs. This is the normal way to ground a list: resolve first, then build a plan from what came back playable. Each ref carries a content_type; this app implements podcast_episode only, and needs at least one of episode_id / guid / feed_url / episode_url — title, show_title, published_at are hints that improve matching but are not a valid ref on their own (for a title-only finding, import_feed the show, then search_episodes within it). Results are returned in input order with input_index, and a per-item verdict: 'playable' with grounded content (episode_id ready for create_plan), or 'unavailable' with a machine-readable reason (subscription_only, private_feed_required, spotify_exclusive, apple_subscription, removed_by_publisher, no_public_feed, audio_unreachable, unsupported_content_type, resolution_failed — that last one is the server's own failure, retry or re-ref it) you can tell the user in plain language. One bad ref never fails the batch. Each ref imports its own episode plus that feed's 50 most recent items, not the show's whole back catalog. Found a whole SHOW rather than specific episodes? Use import_feed instead. Single ref? resolve_content is the same thing for one. When it is due the response also carries standing_feedback: what the user has written about their listening, verbatim, with notes about the shows you just named sorted to the front and the newest after them. Read it before you build the list — one listen is never a permanent preference, but a note about a show you are weighing is the most relevant thing in this payload. It is unfiltered by topic on purpose: deciding which note bears on this build is your job, not the server's.RovynRovyn
PluginrequiredConsumer & Lifestyle - Create a listening plancreate · Create a consumption plan (an 'edition') from a scoped Brief and ordered picks, and get back a player_link the user taps to open it in the Rovyn app. ENTRY DISCIPLINE, in order: (1) check the user's LIBRARY first — search_episodes and list_shows are grounded, instant, and carry the user's own standing notes; most requests can be filled entirely from there. (2) Go to the open web only for what the library lacks — and a ref you send must be REAL: an episode_url/feed_url/guid you actually retrieved THIS session, from a live web result or from these tools. Never reconstruct a URL, guid, or feed from memory — remembered refs resolve as unavailable and can zero out the plan (no_playable_content). (3) If you cannot search the web and the library has nothing, say so and ask — never guess refs to fill a slot. Recommendations do NOT have to be catalog ids. Each is either { content_id, why } or { ref: { content_type: 'podcast_episode', episode_url | feed_url | guid, title?, show_title?, published_at? }, why } — real web findings are batch-resolved right here, no pre-resolve step. V1 plays podcast episodes only: a ref of any other content_type is rejected outright, never silently dropped. Picks that cannot be grounded do not fail the call: they come back in 'unresolved' with input_index and a reason (subscription_only, spotify_exclusive, apple_subscription, no_public_feed, audio_unreachable…) — always tell the user what dropped out and why, then substitute via update_plan. Zero playable recommendations is the one hard error (no_playable_content). An edition should usually draw from MORE THAN ONE show: different voices on the same question is most of what a curated edition is for, and nothing here narrows your search corpus — single-show is right only when the goal names a show or series, or the user asked for a course from one voice. When every playable pick in a call comes from one show, the response says so in 'note' — an observation to act on or explain to the user, never an error and never a rejected plan. The response also carries total_duration_seconds so you never have to sum durations yourself; brief.available_minutes is advisory guidance for YOU, not a server-enforced cap — the server never trims the list, you are the editor. Three of the strings you send are read by the USER, not by a log: 'title' names the edition in the app's chrome (a short noun phrase); brief.goal is the HEADLINE, set in large serif on the shelf card — one scannable line, aim ≤ ~60 chars, because a paragraph there truncates mid-sentence and the card stops being readable (put coverage, rationale, and constraints in brief.preferences or a pick's 'why' instead); and every 'why' is shown beside its episode, so write it for them. This call carries standing_feedback whenever the server can read it — what the user has written about their listening, verbatim, notes about these picks' shows first and unfiltered by topic because it is the build and that judgement is yours — and 'note' says so. It arrives after the edition is written but before the user has seen it: if anything there cuts against a pick or the 'why' you wrote for it, revise with update_plan before you hand over the player_link.RovynRovyn
PluginrequiredConsumer & Lifestyle - Get a planget · Fetch one plan: its brief, its recommendations in order with your original 'why' rationale, and a per-recommendation consumption_state (not_started | in_progress | completed | removed) — this is how you check mid-week whether the user got to it and what they dropped. Also returns total_duration_seconds (playable runtime, removed recommendations excluded), so you never have to sum durations to answer 'how much is left?'. Works across assistants: with the user's permission you can read a plan a different assistant created, which is how someone switches assistants without losing their queue. For how something LANDED (progress, the user's own words) use get_recent_receipts instead.RovynRovyn
PluginrequiredConsumer & Lifestyle - Get consumption receiptsget · Find out how your last recommendations actually landed, so the next edition is better. Each receipt has two layers. 'consumption' is what the app observed — outcome (completed | partial | skipped | removed), progress_percent, time_spent_minutes: behavior, not opinion, and never raw playback logs, which never leave the server. 'user_feedback' is the user's own words, verbatim and chronological, exactly as they typed or said them; read them as written and let them outrank both the structured_feedback chips and every number in 'consumption'. Filter with since, plan_id, limit. Read the numbers carefully: unfinished may mean the commute ended, a completion may be autoplay, a forward skip may be an ad, and one session is not a permanent preference. Receipts are the USER'S, so they include content from plans other assistants created — which is why this tool is gated on receipts:read. This is the full-fidelity path: the standing_feedback block that rides the other tools is excerpts, cut at 500 characters and capped at 40 notes; this tool returns receipts whole. Pass content_id to get one specific truncated note back in full. It cannot search text, cannot filter to receipts that carry notes, and cannot page past its own newest 100 — so it redeems a named receipt, not an old tail.RovynRovyn
PluginrequiredConsumer & Lifestyle - Import a showimport · Import a WHOLE show into the library from a feed URL, an Apple Podcasts show link, or a show title, then search or list within it. This is the only call that pulls an entire back catalog — resolving an episode writes just that episode plus the feed's 50 most recent items — so run it on a show resolution already touched to COMPLETE it. Prefer this over resolve_content_batch when your web search turned up a show rather than specific episodes ('the user should follow Latent Space'), when you want several episodes from one show, or when you want to browse a back catalog you cannot enumerate from the web. Also prefer it when a feed is awkward to fetch yourself — the server's fetcher handles gzip, redirects, feed quirks, and Podcasting 2.0 tags, so hand it the URL rather than parsing XML in-context. Pass exactly one of feed_url / apple_url / show_title. Returns show_id, the canonical feed_url, episode_count, and latest_published_at; the show is then visible to list_shows and search_episodes. No matching feed → show_not_found.RovynRovyn
PluginrequiredConsumer & Lifestyle
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.