Mementom, patent pendingDeveloper

Mementom developer tools

Marketing MCP

Connect your assistant to the same marketing workspace your team uses. Count audiences, prepare content, save campaign drafts and explain results with your company’s existing permissions.

Connect an assistant
Protocol
MCP 2026-07-28
Hosted path
/mcp/marketing
Transports
Streamable HTTP · stdio
Scope
Marketing tools

Connecting a personal agent?

Use Personal MCP for an owner-controlled shared key, selected capabilities and offer filters. Start with its agent integration guide.

Choose how to connect

Use hosted OAuth for a remote MCP client, or a local stdio process with a server-side Marketing API credential.

  1. Add /mcp/marketing on your marketing workspace origin to your host as a Streamable HTTP server.
  2. Complete Mementom sign-in and review the company, application and scopes on the consent page.
  3. Ask the assistant to list your application and read the workspace summary before saving work.

For local stdio setup, use the connection guide. Credentials belong in protected host configuration, never in a conversation or tool argument.

Authorization and scopes

Hosted access uses OAuth authorization code with PKCE S256 and human company/application consent. Its access token lasts 15 minutes and refresh tokens rotate. This token is distinct from a Marketing API credential used by the local stdio server.

Every request retains current company, application, role and scope checks. Agency access is explicit for each company/application; changing a company name in a prompt does not switch access.

ScopeAllows
marketing:readRead workspace, count audiences, read reports and activity.
marketing:audiences:writeSave or replace audiences.
marketing:content:writeCreate, edit or duplicate content.
marketing:campaigns:writeCreate campaign drafts.
marketing:pricing:writeSave planning assumptions.
marketing:insights:proposePropose a field for review.
marketing:objective:writeSet the workspace goal.

Request only the scopes needed for the task. Credential management and consumer authentication remain outside these tools.

A marketer’s request, visible steps

“Count visitors who compared products, then prepare a return-visitor draft using our existing invitation.”

  1. Read

    Discover the application, current revision and available fields.

  2. Count

    Test the agreed audience against current permitted observations.

  3. Prepare

    Reuse or create the requested invitation and content.

  4. Save

    Create a draft with explicit fees, budget and response window.

  5. Review

    Check the console record, report mode and safe request trace.

Each save uses the same API validation as the console. The assistant preserves your wording and asks for missing terms when they materially affect the requested draft.

Results and revisions

Tools return structured data and readable text. Workspace sections are paged, with a default of 20 and maximum of 100 records. Start with the summary, then read the required section or exact record.

Writes return applicationId, revision, activityId, API operation and a compact saved record. Campaign receipts also return delivered: false. Read the corresponding workspace record for details.

Use record IDs and revisions returned by your application. Carry the updated workspace revision into the next write. Content edits also require the saved content edition.

A 409 requires a fresh read and reconciliation. A timeout may happen after a save succeeds; read back the record before trying again. The SDK does not retry writes automatically, and a sequence of saves is not one transaction.

READmementom_marketing_list_applications

List your application

Discover the application authorized for this connection. Use its returned ID in later calls.

Required scope: marketing:read

No arguments. Pass an empty object.

Result

The application ID and display name; an application credential cannot list another company’s applications.

READmementom_marketing_get_workspace

Read the workspace

Start with the current revision, goals and capabilities. Read only the sections needed for the next decision.

Required scope: marketing:read

Arguments

FieldMeaning
applicationIdAuthorized application ID.
sectionsummary (default), definitions, outsideCatalog, audiences, content, campaigns, pricing or suggestions.
recordIdOptional exact record ID within the chosen section.
offset / limitDefault 0 / 20. Offset 0–10,000; limit 1–100.

Result

Scoped workspace data with revision and activity correlation. Collections are paged; follow pagination metadata before concluding a record is absent.

READmementom_marketing_count_audience

Count eligible matches

Count the people whose current, permitted insights match your proposed audience.

Required scope: marketing:read

Arguments

FieldMeaning
applicationIdAuthorized ID from list_applications.
expectedRevisionLatest nonnegative workspace revision. Use the returned revision after each save.
audienceA simple or structured audience using registered definition IDs, versions and typed values.

Result

Availability, count, basis and timestamp. This is not a delivery promise or a list of identities.

WRITEmementom_marketing_save_audience

Save an audience

Save the audience the marketer requested using the same validation as the console.

Required scope: marketing:audiences:write

Arguments

FieldMeaning
applicationIdAuthorized ID from list_applications.
expectedRevisionLatest nonnegative workspace revision. Use the returned revision after each save.
payloadAudienceSave fields; include audienceId to replace an existing audience.

Result

Saved record identity, updated revision and activity correlation. Preserve structured logic; do not substitute different filters.

WRITEmementom_marketing_save_content

Save content

Create an offer, questionnaire or insight request, or save a new edition of existing content.

Required scope: marketing:content:write

Arguments

FieldMeaning
applicationIdAuthorized ID from list_applications.
expectedRevisionLatest nonnegative workspace revision. Use the returned revision after each save.
payloadContentSave fields: name, type, creative, questions and requested insight IDs.
contentId / expectedContentRevisionPayload fields required together when editing saved content.
duplicateFromIdPayload field for duplication; do not combine with an edit.
preserveImageFromContentIdOptional top-level field: copy the image from same-application saved content. Omit payload.content.image when using it; an explicit empty image string removes the image.

Result

Saved content ID/edition and the workspace revision. Reads return imageAvailable instead of image bytes; preserve the saved image explicitly during an edit.

WRITEmementom_marketing_create_campaign

Create a campaign draft

Combine the agreed audience, content and terms into a draft in the marketing console.

Required scope: marketing:campaigns:write

Arguments

FieldMeaning
applicationIdAuthorized ID from list_applications.
expectedRevisionLatest nonnegative workspace revision. Use the returned revision after each save.
payloadCampaignV2: objective, schedule, budgets, response window and engagements.
engagements1–10 entries using saved audiences and complete creative. Saved content bindings include ID and edition.
budgetMinor / dailyCapMinorWhole minor currency units; daily cap fits within total budget.

Result

A campaign ID, draft status and delivered: false. Omitted images bound to a current saved content ID/edition are restored before validation. No delivery, consent release or payment occurs.

READmementom_marketing_get_report

Read campaign results

Read aggregate results with explicit test/live and modeled-cost labels.

Required scope: marketing:read

Arguments

FieldMeaning
applicationIdAuthorized application ID.
campaignIdCampaign ID read from this workspace.
modelive (default) or test. Read each mode separately.

Result

Overview, engagement measurements, recommendations and limitations. A missing settled amount remains null.

READmementom_marketing_get_activity

Trace a request

Explain what happened to a request using safe operation metadata.

Required scope: marketing:read

Arguments

FieldMeaning
applicationIdAuthorized application ID.
activityIdOptional correlation from a prior result; mact_ prefix, at most 100 characters.
offset / limitDefault 0 / 20. Offset 0–10,000; limit 1–100.

Result

Operation, method, status, revision, error and source. No raw creative, credentials or holder identity.

WRITEmementom_marketing_update_pricing

Update planning assumptions

Save an explicitly requested change to the assumptions used for campaign planning.

Required scope: marketing:pricing:write

Arguments

FieldMeaning
applicationIdAuthorized ID from list_applications.
expectedRevisionLatest nonnegative workspace revision. Use the returned revision after each save.
payloadPricingInput: supported policy/profile assumptions.

Result

Updated planning policy/profiles and revision. These are estimates, not invoices or settled fees.

WRITEmementom_marketing_propose_insight

Propose an insight

Request a missing non-identifying field for developer review.

Required scope: marketing:insights:propose

Arguments

FieldMeaning
applicationIdAuthorized ID from list_applications.
expectedRevisionLatest nonnegative workspace revision. Use the returned revision after each save.
payloadInsightProposal: non-identifying key, label, description, type, bounds/values and expiry.

Result

The proposed definition and pending-review state. A proposal cannot approve itself or immediately become an audience filter.

WRITEmementom_marketing_set_objective

Set the workspace goal

Change the goal used to suggest relevant audiences and next steps.

Required scope: marketing:objective:write

Arguments

FieldMeaning
applicationIdAuthorized ID from list_applications.
expectedRevisionLatest nonnegative workspace revision. Use the returned revision after each save.
payload.objectivereturn_visitors or learn_preferences.

Result

Updated objective and workspace revision. Existing campaign delivery is unaffected.

Interpret results before recommending action

Every explanation should name the report mode, response window, evidence and limitation. An empty live report does not mean a draft failed; it may never have been delivered.

CheckMeaning
Test and liveRead each mode separately; synthetic observations never become live totals.
Mature windowsUse mature deliveries and their responses when comparing rates; show pending deliveries.
CostsModeled spend follows draft terms. A null settled amount means unavailable, not zero paid.
PurchasesShow purchases, reversals and net purchases together.
ROIDo not claim business ROI from synthetic revenue and modeled fees.
EvidenceA view does not prove attention; observational differences do not establish causal lift.

Recommend a measurable next step from actual observations. Do not invent identity, settled revenue or guaranteed results.

Resources and prompts

Your MCP host can expose reference resources and user-selected workflow prompts. They use the same company permissions and do not authorize extra saves.

Resources

  • mementom://marketing/guide
  • mementom://marketing/measurement
  • mementom://marketing/openapi

Prompts

NamePurpose
mementom_plan_return_visitInspect the catalog and prepare requested return-visitor draft work.
mementom_review_resultsExplain evidence, test/live mode, costs and missing measurements.
mementom_investigate_activityTrace a request and reconcile its saved state.

Trace and recover

Preserve the activityId from the tool or API response. Use get_activity to find the operation, status, revision and safe error. Diagnostics contain no authorization headers, raw creative bodies or holder identity.

The server SDK’s onTrace reports safe method, path, status, activity ID, revision and error. Local stdio logs belong on standard error so they cannot corrupt protocol output.

FailureNext step
Invalid inputRead the relevant catalog/record and correct the named field.
Expired accessReconnect through Mementom. Do not paste a secret into chat.
Missing scopeGrant the required operation through the approved access flow.
Stale revision or uncertain writeRead and reconcile before any retry.
Request too largeReduce explicitly selected input; preserve meaningful content and filters.