[ agent capabilities ]

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.

[ 71 tools indexed ]

[ all tools ]

30 / 71

BrandKarma /

add_content_ideas

remote  ] Account required

Appends one or more pre-decided content ideas to a workstream. Use this when you have specific articles in mind rather than letting the AI propose them. Each idea defaults to contentType=BlogPost, contentRole=Support, targetWordCount=1000 (Support) or 3000 (Pillar), status=Idea. Pass a brief at creation to skip generate_brief_for_idea later; once status is set to ApprovedForGeneration, call generate_content_from_idea to produce the article.

BrandKarma /

approve_workstream

remote  ] Account required

Approves an entire workstream — sets all 'Idea' status items to 'ApprovedForGeneration' and auto-assigns scheduled dates across the plan date range.

BrandKarma /

archive_content_plan

remote  ] Account required

Archives a content plan. Use this for plans that drifted off-brand, were superseded, or are otherwise dead — archived plans are filtered out of default list_content_plans but remain queryable with status='Archived'. Optional 'reason' is stored on the plan for audit.

Optivise /

assess_listing_quality

remote  ] Account required

Assesses how marketplace-ready a single product listing is — with no human file handling. Pass the product's fields as a flat object of column -> value (e.g. { "name": "...", "ean": "...", "description": "..." }). Returns an overall score (0-100), a per-dimension breakdown (identifier, title, description, brand, image, category, attributes), the specific gaps, and a recommendation. This is a free, read-only check; to actually fill the gaps and rewrite content, use the optimisation tool.

BrandKarma /

bulk_update_content_idea_status

remote  ] Account required

Batch status change for multiple content ideas across one plan. Mirrors bulk_update_content_status (which targets ContentItems) — fail-soft, returns per-id errors. Useful for quickly skipping or approving many ideas without one tool call per idea. Idea IDs are GUIDs (from get_content_plan), not ObjectIds.

BrandKarma /

bulk_update_content_status

remote  ] Account required

Batch status change for multiple content items (e.g. publish or archive several at once). Fail-soft: items that no longer exist are reported in 'errors' and the rest still succeed. If you see 'not found (deleted or never existed)' errors, the IDs are likely from a stale list_content_items response — refetch the list and retry.

BrandKarma /

complete_content_plan

remote  ] Account required

Marks a content plan as Completed. Use this when the plan's intended output has shipped and you don't expect further work — completed plans are filtered out of the default list_content_plans view but remain queryable with status='Completed'. Optional 'reason' is stored on the plan for audit and is shown back in get_content_plan.

BrandKarma /

copy_content_to_brief

remote  ] Account required

Copies the Content field of an existing ContentItem into the Brief field of a content idea. Use this to convert previously generated content into a brief for re-generation through the improved pipeline.

BrandKarma /

create_category

remote  ] Account required

Creates a content category for a brand. Categories are required for publishing articles. IMPORTANT: 'description' is served publicly as the category page meta description — keep it reader-friendly and free of strategy/positioning language. Put planner-facing notes in 'internalNotes' instead. Both fields are plain text — send literal characters, do not HTML-escape (no '&amp;', '&lt;', or '<tag>'). Returns the created category with its ID.

BrandKarma /

create_content_item

remote  ] Account required

Creates a new content item (article). Two paths: (a) pass 'content' with the full markdown article — done; or (b) pass 'brief' with instructions and call generate_content_from_item afterward to fill 'content' from the brief via AI. Provide at least one of 'content' or 'brief'. Free-text fields (title, description, brief, metaTitle, metaDescription) are plain text — send literal characters, do not HTML-escape (no '&amp;', '&lt;', or '<tag>'). 'content' is markdown and intentionally permits inline HTML.

BrandKarma /

create_content_plan

remote  ] Account required

Creates a new content plan. When 'autoGenerate' is true (default), AI generates workstreams immediately — expensive (uses LLM credits) and takes 15-30 seconds. When 'autoGenerate' is false, creates an empty plan in Draft status — no LLM cost. Use create_workstream and add_content_ideas to populate it manually when you already have pre-decided titles. Multi-language note: a content idea is one language-agnostic concept. The system renders it once per Brand.TargetLanguages — there are no separate per-language workstreams. Use update_localized_keywords to differ targeting per market. To bias generation per-language, set per-language ContentGuidelines via upsert_content_guideline. 'additionalInstructions' is rendered as a CRITICAL CONSTRAINTS block at the top of the generation prompt and overrides default workstream/article structure. Use it to enumerate must-have / must-not-have workstreams for this plan. Only used when autoGenerate=true.

Monego /

create_customer

remote  ] Account required

Create a new customer (invoice recipient). Check list_customers first — Monego does not enforce unique customer names or emails, so repeated creates produce duplicates. For German public-sector (B2G) buyers that need XRechnung invoices, set leitwegId and preferredInvoiceFormat='xRechnungXml'. Response: { customer { id, name, ... } } — use customer.id as customerId in create_invoice. Errors: { error: { code: 'bad_input', field, message } }.

Monego /

create_invoice

remote  ] Account required

Create a draft invoice for a customer: allocates the next sequential invoice number, computes per-line and total amounts server-side (EN 16931 group-by-rate rounding; prices are net EUR), and returns the draft including eInvoiceIssues — anything that would block finalize_invoice. The draft is editable via update_invoice until finalize_invoice freezes it. Pass externalId (any stable key from your system) to make creation idempotent: retries and repeat calls with the same externalId return the existing invoice (alreadyExisted=true) instead of creating a duplicate. Response: { invoice { id, invoiceNumber, status:'draft', lineItems[], netTotal, taxTotal, grossTotal, effectiveFormat, eInvoiceIssues[], ... }, alreadyExisted? }. Errors: { error: { code: 'not_found' | 'bad_input' | 'subscription_required', ... } }.

BrandKarma /

create_monitored_query

remote  ] Account required

Creates a new AI visibility monitoring query (prompt) for a brand.

BrandKarma /

create_workstream

remote  ] Account required

Appends a new workstream to a content plan. Use after create_content_plan with autoGenerate=false to build a plan manually, or to add a workstream to an existing plan. Workstreams are themed clusters (e.g. 'Authority Building', 'Product Education'); ideas live inside a workstream. Returns the new workstream ID — feed it into add_content_ideas.

BrandKarma /

crop_image

remote  ] Account required

Crops an existing image to a specific rectangle region. Creates a new image — the original is kept. Returns the new image URL. Use get_image_dimensions first if you need to know the source image size.

BrandKarma /

delete_content_guideline

remote  ] Account required

Removes a per-language content guideline from the brand.

Monego /

finalize_invoice

remote  ] Account required

Finalize a draft invoice — IRREVERSIBLE. Validates the data against the target e-invoice format, generates the legally required artifact (XRechnung: standalone CII XML; ZUGFeRD/Factur-X: PDF/A-3 with embedded XML), stores it immutably (GoBD), and locks the invoice against further edits. The format defaults to the customer's preferredInvoiceFormat (tenant default: zugferdPdf); pass format explicitly to override for this invoice — 'xRechnungXml' requires the customer to have a valid Leitweg-ID (set via update_customer). Check eInvoiceIssues on get_invoice first to avoid validation errors. After success, fetch the document with get_invoice_document or email it with send_invoice. Response: { invoice { status:'finalized', format, hasDocument:true, ... } }. Errors: { error: { code: 'invalid_state' | 'validation_failed' (details[] lists each problem) | 'precondition_failed' | 'not_found' | 'bad_input' | 'subscription_required', ... } }.

BrandKarma /

generate_brief_for_idea

remote  ] Account required

Generates an AI content brief for a content idea using web research. The brief specifies outline, key points, tone, CTAs — everything a writer needs. Stores the result in the idea's Brief field for review before content generation.

BrandKarma /

generate_content_from_idea

remote  ] Account required

Triggers content generation for an approved content idea. Enqueues a job that runs research, writing, and editorial review. Creates a ContentItem with the generated markdown when done.

BrandKarma /

generate_content_from_item

remote  ] Account required

Enqueues a content generation job for a ContentItem with a Brief. The job runs the full writer pipeline: research, two-call writer split, section-targeted expansion, editorial review with glossary/structural-marker enforcement, and post-editor glossary repair. The item's Content is overwritten UNCONDITIONALLY when the job completes — there is no skip-guard on the existing Content, so calling this on an already-populated item regenerates from the Brief. Description and MetaDescription are also overwritten. Returns immediately with the job ID; poll get_content_generation_status(jobId) for phase/progress/last-alive, or poll get_content_item for the finished article — UpdatedAt advances at every phase transition so you can distinguish 'in progress' from 'silently failed'. Item must have a Brief; the Brief should specify the desired length, or set 'targetWordCount' on the item via update_content_item.

BrandKarma /

generate_image

remote  ] Account required

Generates an AI image for a brand. Two models are available: 'gemini-3.1-flash-image-preview' (Nano Banana 2 — fast, default) and 'gpt-image-2' (GPT Image 2.0 — higher quality). If 'model' or 'aspectRatio' is omitted, the brand's defaults from upsert_visual_style (defaultModel / defaultAspectRatio) are used as fallbacks before the built-in default. The 'prompt' can be plain text OR a JSON object encoded as a string. When using JSON, keys are merged with the brand's visual style — per-image keys take precedence over brand defaults. Use get_visual_style to see what's already configured. Recognized JSON keys (first-class — influence the rendering): 'imageDescription' (the main subject — required if no plain-text prompt), 'altText', 'style', 'colorScheme' / 'colorPalette', 'mood', 'motif', 'lighting', 'composition', 'additionalInstructions', 'constraints' (array of negative prompts). Translatable keys (carried through localization): 'imageDescription', 'altText', 'text', 'title', 'caption', 'description'. Unknown keys pass through verbatim to the image model — useful for one-off experiments, but the brand-level fields above are what flow consistently across calls. Note: 'aspect' is NOT a recognized JSON key — pass aspect ratio via the 'aspectRatio' parameter, not in the JSON body. Example JSON prompt: {"imageDescription":"Cute robots working in a garden","motif":"isolated subjects","lighting":"soft natural daylight"}. Returns the public URL of the generated image.

BrandKarma /

get_analytics_timeline

remote  ] Account required

Gets brand analytics over time — one data point per monitoring run. Shows how sentiment, share of voice, and rankings change over time.

BrandKarma /

get_brand_analytics

remote  ] Account required

Gets brand analytics: sentiment scores, share of voice, mention rankings, and competitor mentions. Aggregated across all monitoring runs with optional filters.

BrandKarma /

get_brand_context

remote  ] Account required

Primary entry point. Returns brand details, keywords (per-language when configured), topics, competitors, content guidelines (per-language voice/glossary), content summary (counts by status), active plan summaries, and recent timeline events. Call this first to understand the brand before using other tools. Pass 'language' to filter content guidelines and localized keywords to one language; omit it to return all configured languages. Returned 'setupStatus' is a lifecycle marker: 'PreReview' = brand was just discovered and is awaiting human curation; 'MonitorSetup' = curated, monitoring + analytics are being configured; 'Active' = fully operational, content generation enabled. Returned 'priority' on topics and competitors is a soft sort key in [0.0, 1.0] — higher = more emphasis when surfaced to prompts. Not a confidence score; treat the exact value as a relative ordering, not a probability. Returned 'setupGaps' lists known-incomplete configuration: 'contentGuidelines' (some target language has no guideline), 'localizedKeywords' (some target language has no keyword bucket). Empty list means everything's configured for the brand's TargetLanguages.

BrandKarma /

get_brand_timeline

remote  ] Account required

Gets a unified event timeline for the brand: content publications, traffic changes, awareness changes, and monitoring run completions.

Monego /

get_company_profile

remote  ] Account required

Get the seller identity (company profile) of the authenticated Monego account and whether it is ready to issue e-invoices. Call this first in any invoicing workflow: finalizing invoices fails without a configured company profile. Response: { profile { companyName, street, city, postalCode, country, defaultLanguage, vatId, taxNumber, registrationNumber, legalForm, iban, bic, email, website }, eInvoiceReady (bool — seller side only; per-invoice checks still run at finalize), issues[] (blocking gaps first, then entries prefixed 'Recommended:') }. The profile is edited by the operator in the Monego app — there is deliberately no MCP tool to change seller identity. Errors: { error: { code: 'precondition_failed', message, hint } } when no profile is configured yet.

BrandKarma /

get_content_generation_status

remote  ] Account required

Returns the current status of a content-generation job: phase, progress (0–1), last heartbeat timestamp, started timestamp, and error message if the job failed. Use this to poll a generate_content_from_item / generate_content_from_idea run without re-reading the full article body. Either jobId or contentItemId is required: with jobId, returns that specific job; with contentItemId, returns the most recent ContentGenerationJob for that item (active job if one exists, otherwise the most recent completed/failed one). Phase progression: Research → TextGeneration → EditorialReview → ImageDescription → ImageGeneration → Finalizing → (Success).

BrandKarma /

get_content_guidelines

remote  ] Account required

Returns the brand's per-language content guidelines (formality, voice, style, glossary). Pass 'language' to fetch one language's guideline, or omit to list all. These guidelines are injected into content-generation and LocalizedRewrite-translation prompts.

BrandKarma /

get_content_item

remote  ] Account required

Gets a content item with its full markdown body.