The MCP tool directory.
Each row is one tool from one provider. Tools sharing a name across providers (e.g. search) are listed separately because they aren't interchangeable.
[ 83 tools indexed ]
[ all tools ]
23 / 83
resize_image
[ remote ] Account requiredResizes an existing image to fit within the given max dimensions, preserving aspect ratio. Creates a new image — the original is kept. Returns the new image URL.
send_invoice
[ remote ] Account requiredEmail a finalized invoice to a recipient — this SENDS A REAL EMAIL with the stored artifact attached and cannot be recalled; confirm the recipient address before calling. Flips status finalized → sent and records sentAt / sentToEmail. Can be called again to re-send. Response: { invoice { status:'sent', sentAt, sentToEmail, ... } }. Errors: { error: { code: 'invalid_state' | 'bad_input' | 'not_found' | 'subscription_required', ... } }.
start_deep_research
[ remote ] Account requiredSpends one researched cluster from the plan. Researches a topic deeply into a durable dossier: four search engines are each asked their own questions, the best sources found are fetched and read, and the claims extracted from them are merged into one list with source URLs, dates, the points where sources disagree, and the questions the research could not settle. Runs as a background job — poll get_research_dossier or wait_for. Research a topical cluster once and let its articles draw different subsets; researching per article costs more and is what makes articles in one cluster sound alike. Pass planId + workstreamId to research a workstream (its title, goal, audience and brand keywords are used automatically, and the workstream's existing dossier is reused), or topic for a free-form one. A workstream-bound run also proposes articles from the dossier when it finishes.
update_brand
[ remote ] Account requiredDEPRECATED — use update_brand_description, update_brand_competitors, update_brand_blocked_domains instead. They split the same blast radius into per-concern tools, which permission-gate cleaner and audit-trail cleaner. This shim still works for one release, with the original 'replace' semantics for competitors / blockedDomains.
update_brand_blocked_domains
[ remote ] Account requiredAdd to / replace / remove from the list of domains blocked from generated content links. Mode 'merge' (default) adds new domains; 'replace' overwrites. 'remove' deletes domains (case-insensitive) — applied after the merge/replace step.
update_brand_competitors
[ remote ] Account requiredAdd to / replace / remove from the brand's competitor list. Mode 'merge' (default) adds new competitors and updates existing ones by name. Mode 'replace' overwrites the entire list. 'remove' deletes by competitor name (case-insensitive) — applied after the merge/replace step.
update_brand_description
[ remote ] Account requiredUpdate the brand's description and/or value propositions. Both fields are plain text — send literal characters, do not HTML-escape (no '&', '<', or '<tag>'). Omit a field to leave it unchanged.
update_brand_keywords
[ remote ] Account requiredAdd to / replace / remove from the brand's keywords list. 'remove' is applied after the merge/replace step, so you can do both in one call. Use 'remove' to delete entries without re-sending the whole list (no GET-then-PUT race).
update_brand_locale
[ remote ] Account requiredUpdate the brand's default language/country and target languages — the locale fields the content pipeline inherits when no per-call override is given. 'targetLanguages' supports merge/replace plus a separate 'removeLanguages' list; 'defaultLanguageCode' and 'defaultCountryCode' are direct assignments (omit to leave unchanged). ISO codes are 2 letters: language lowercase ('de'), country uppercase ('DE'). Side effects: adding a language to targetLanguages causes autopilot translation of newly generated content into that language on the next generation run. Removing a language does NOT delete existing translated ContentItems. Rule: if targetLanguages ends up non-empty, defaultLanguageCode must appear in it.
update_brand_topics
[ remote ] Account requiredAdd to / replace / remove from the brand's topics list. 'remove' is applied after the merge/replace step. Match is by topic 'name' (case-insensitive).
update_category
[ remote ] Account requiredUpdates an existing content category. Any parameter omitted leaves that field unchanged. Use this to fix categories whose 'description' contains internal strategy language: move the strategy copy into 'internalNotes' and replace 'description' with a clean reader-facing summary. The public category page meta description is served from 'description'. 'description' and 'internalNotes' are plain text — send literal characters, do not HTML-escape (no '&', '<', or '<tag>').
update_content_idea
[ remote ] Account requiredUpdates a content idea within a plan — approve/skip ideas, rename, retarget keyword, change type/role/word count, set scheduled dates, write the brief. An idea is a language-agnostic concept; once approved, it gets rendered in every configured Brand.TargetLanguages with per-language guideline + keyword hints applied. To keep an idea out of generation entirely, set status='Skipped'.
update_content_item
[ remote ] Account requiredPartially updates a content item — only provided fields are changed. Free-text fields (title, description, brief, metaTitle, metaDescription) are plain text — send literal characters, do not HTML-escape. 'content' is markdown and intentionally permits inline HTML.
update_customer
[ remote ] Account requiredUpdate fields on an existing customer. Only the fields you pass are changed; pass an empty string to clear an optional field (e.g. preferredInvoiceFormat='' reverts to the tenant default). Typical use: add the leitwegId and set preferredInvoiceFormat='xRechnungXml' on a customer before finalizing an XRechnung invoice for them. Changes only affect future finalizes — already-finalized invoices are immutable. Response: { customer { id, name, ... } } with the updated state. Errors: { error: { code: 'not_found' | 'bad_input', ... } }.
update_invoice
[ remote ] Account requiredUpdate a DRAFT invoice. Only the fields you pass are changed; passing lineItems replaces the whole list and recomputes all amounts. Finalized invoices are immutable (GoBD) — corrections happen via credit notes in the Monego app. Response: { invoice { ..., eInvoiceIssues[] } } with the updated state. Errors: { error: { code: 'not_found' | 'invalid_state' | 'bad_input', ... } }.
update_localized_keywords
[ remote ] Account requiredUpdate the brand's keyword bucket for a specific language. 'keywords' is the candidate pool for this language; 'focus' is the priority subset surfaced in content prompts and should be a subset of 'keywords'. Mode 'merge' adds to the existing bucket and dedups; 'replace' overwrites. 'removeKeywords' / 'removeFocus' delete entries from the bucket without re-sending the whole list — applied after the merge/replace step.
update_monitored_query
[ remote ] Account requiredUpdates a monitored query — change prompt text, status, or rating. Only provided fields are changed.
update_research_suggestion
[ remote ] Account requiredMarks a dossier's suggested primary research as open, answered or dismissed. Use dismissed for something the user will not do, so it stops being asked for; add_primary_research already marks an item answered when it is used to answer one.
update_workstream_status
[ remote ] Account requiredSet the status of a single workstream. When 'applyToIdeas' is true (default), the status cascades to every content idea in the workstream — useful for skipping or approving an entire cluster at once. The workstream-status enum (WorkstreamStatus) and idea-status enum (ContentItemStatus) are different; the cascade maps Approved→ApprovedForGeneration, Rejected→Skipped, Completed→Published, InProgress→Generating, Proposed→Idea.
upsert_content_guideline
[ remote ] Account requiredCreate or update a single per-language content guideline on the brand. Mode 'merge' (default) preserves omitted fields and dedups glossary entries by preferred term. Mode 'replace' overwrites the guideline wholesale with the supplied fields. Country fallback chain on read: (language+country) → (language with no country); there is no (language+otherCountry) fallback. Free-text fields ('formalityNotes', 'voiceNotes', 'styleNotes', 'formatRules', 'authorPersona') and glossary / banned-phrases entries are plain text — send literal characters, do not HTML-escape (no '&', '<', or '<tag>').
upsert_visual_style
[ remote ] Account requiredCreate or update the brand's visual style — the per-brand defaults applied during image generation. Mode 'merge' (default) updates only the fields you provide and leaves the rest untouched. Mode 'replace' overwrites the entire visual style with the supplied fields (anything you omit is cleared). All plain-text fields ('style', 'colorPalette', 'mood', 'motif', 'lighting', 'composition', 'doNot', 'additionalInstructions') must be literal text — do not HTML-escape (no '&', '<', or '<tag>'). 'defaultImagePrompt' is a JSON object encoded as a string; its keys are merged into every generated image prompt. 'defaultAspectRatio' and 'defaultModel' kick in only when generate_image is called without those arguments.
wait_for
[ remote ] Account requiredWaits up to 25 seconds for a research dossier or a background job to finish, then returns status. Research and generation take minutes — if still running, call again with the same id after waitMs. Does not spend a cluster. Pass jobId from generate_content_* / start_deep_research, and/or dossierId.
whats_changed
[ remote ] Account requiredThe latest written digest: headline, what moved, and recommended actions. Reads the stored digest — does not call an LLM. If none exists, says so and points at get_visibility_snapshot. Pass brandId, or brandName to resolve via find.