MCP App Store
by KeenEthics
Business & Operations
Quotient icon

Quotient

by Quotient Software Inc

Overview

Quotient is an AI-native platform and intelligent agent in one; built to plan and execute campaigns across email, social, blog, and events, without the fragmented tools you've outgrown. At its core, Quotient is an AI demand marketing platform. It brings everything that attracts customers: blogs, social posts, email, webinars and events, and brand-building, into one integrated workspace. You work with Quotient like a coworker. Describe what you want in plain English, and it takes it from there. Campaigns organize your marketing around a central goal, like a feature launch or event. Each is a coordinated set of tasks and deliverables moving through a clear workflow. Deliverables are the real assets Quotient creates and ships: blog posts, email broadcasts, marketing events, automated flows, and social posts for X, LinkedIn, Instagram, Facebook, and TikTok. Ask Quotient to build a campaign end to end: it writes the brief, breaks the work into tasks, sets the timeline, and produces each deliverable. Quotient gets smarter over time, drawing on a Knowledge Store of brand information, recording memories of your preferences, and using tools to search the web and pull from your audience of people and companies. The result is a single platform where strategy, content, and execution live together, replacing the patchwork of disconnected marketing tools with one AI that plans, writes, and ships.

Tools

a2a-get-response

ChatGPT
Collect the agent's reply to a previously sent message.

a2a-send-message

ChatGPT
Send a user message to a Quotient thread on behalf of the authenticated user and trigger the agent. Starts a new thread or appends to an existing one, depending on threadId.

create-asset-from-url

ChatGPT
Download an image or file from a public URL into the business's media library. Returns the new asset's id and status; The URL must be publicly reachable over http(s); private and link-local addresses are refused.

create-blog

ChatGPT
Create a blog post from a title and markdown content. The post is created as a DRAFT — use publish-blog to publish it. Supported markdown: headings, paragraphs, bold/italic/strikethrough, links, bulleted/ordered lists, block quotes, code blocks, horizontal rules, and tables. Images and embeds are not supported via markdown — add them in the app editor. Keep content under ~50,000 characters to avoid truncation mid-generation.

create-campaign

ChatGPT
Create a campaign from a name and a markdown brief, optionally with initial tasks. The brief is the campaign's plan and theme. Supported markdown: headings, paragraphs, bold/italic/strikethrough, links, bulleted/ordered lists, block quotes, code blocks, horizontal rules, and tables. Images and embeds are not supported via markdown — add them in the app editor.

create-campaign-task

ChatGPT
Create a task on a campaign. Use list-campaigns to find the campaign id. Supported markdown: headings, paragraphs, bold/italic/strikethrough, links, bulleted/ordered lists, block quotes, code blocks, horizontal rules, and tables. Images and embeds are not supported via markdown — add them in the app editor.

create-company

ChatGPT
Create a company in the business's audience. Only the name is required; firmographics, address, social links, and custom properties are optional.

create-custom-event

ChatGPT
Define a new custom analytics event type for the business (e.g. "upgraded", "completed_onboarding"). The eventId is immutable once created; only the displayName and description can be changed later.

create-custom-property

ChatGPT
Create a custom-property definition for people, companies, or deals. The id and datatype are immutable. SINGLE_SELECT/MULTI_SELECT properties require at least 2 allowedValues; options are append-only via update-custom-property.

create-document

ChatGPT
Create a document from markdown content. Returns the new document's id and title.

create-person

ChatGPT
Create a person in the business's audience, identified by email address. Fails if an active person with that email already exists — use update-person for existing people.

create-report

ChatGPT
Save a named analytics report and run it now. Takes the same query document as run-report, plus a name and an optional visualization config that decides how the saved report is drawn in the app. Returns the result table and stores the run as the report's snapshot. Use run-report to answer a question without saving; see describe-report-catalog for the query format.

create-social-post

ChatGPT
Create a new social media post for X, LinkedIn, Instagram, Facebook, or TikTok with platform-specific optimizations. TikTok drafts can be created without media; media is required only when the user schedules or publishes (one video OR 1–35 images, no mix).

describe-report-catalog

ChatGPT
The reference for writing analytics report queries: the report document shape, every metric and dimension with what it means and which pair together, filter and time rules, and worked examples. Read this once before your first run-report call.

get-asset

ChatGPT
Get a media asset's metadata and CDN link by id — name, type, size, dimensions (images), processing status, and the URL to embed. Never the file bytes.

get-blog

ChatGPT
Get a blog post by id — its content as markdown, status, slug, meta description, and tags. Returns the published content if the blog is published, or the current draft otherwise. Note: published content may differ from the current draft. To edit a published blog, unpublish it first, then get, then update. Use list-blogs to find blog ids.

get-campaign

ChatGPT
Get a campaign by id — its brief as markdown, plus its tasks and the deliverables (blogs, posts, emails, documents) that belong to it. Use list-campaigns to find campaign ids.

get-campaign-task

ChatGPT
Get a campaign task by id — its fields and description as markdown. Use list-campaign-tasks to find task ids.

get-company

ChatGPT
Get a company's full profile by id — firmographics, location, social links, associated people and deals, and custom properties. When the user is viewing a company's page, the id is in the path (/audience/companies/[companyId]).

get-doc

ChatGPT
Read the full content of a Quotient documentation page by its slug (the slug from a search-docs result, e.g. "/blog"; "" is the index).

get-document

ChatGPT
Get a document by id — its title and current content as markdown. Use list-documents to find document ids.

get-email-broadcast

ChatGPT
Get an email broadcast by id — its name, status, launch date, target segments and lists, and a summary of the current email version (subject, preview text, sender, reply-to). Use list-email-broadcasts to discover broadcast ids. Creating or editing email broadcasts is only available in the Quotient app, not over MCP — for AI-driven edits use the Quotient agent (a2a-send-message) instead.

get-person

ChatGPT
Get a person's full profile by id — contact fields, subscription status, engagement, company link, custom properties, and published lead scores. When the user is viewing a person's page, the id is in the path (/audience/people/[personId]).

get-report

ChatGPT
Get a saved analytics report by id, including its query, visualization config, and current snapshot. Read a report before using update-report so unchanged parts of its definition are preserved.

get-report-rows

ChatGPT
Read a slice of rows from a completed report run. Pass the run id returned by run-report, create-report, or get-report. Default is the first 20 rows; raise offset to page through the rest.

get-social-post

ChatGPT
Retrieve details of a specific social media post, including its content, status, assets, X quote metadata, and child IDs and content needed to edit or remove replies and first comments.

list-assets

ChatGPT
Browse the business's media library, most-recently-updated first, one page at a time. Optionally filter by media type, or by product id to list the assets associated with a product.

list-blogs

ChatGPT
Browse blog posts, most recently updated first, one page at a time. Returns summaries only (id, title, status, dates, tags) — use get-blog to fetch a post's full content.

list-campaign-tasks

ChatGPT
Browse campaign tasks, most recently updated first, one page at a time. Optionally filter by campaign and/or status. Returns summaries only (id, name, status, priority, dueDate) — use get-campaign-task for a task's description.

list-campaigns

ChatGPT
Browse the business's campaigns, most recent start date first, one page at a time, optionally filtered by a start-date range. Returns each campaign's id, name, status, and dates.

list-companies

ChatGPT
Browse the business's companies, name-ascending, one page at a time, optionally filtered by industry. To find companies by name, domain, what they do or their notes, use search-companies. Returns summaries only — use get-company for a full profile.

list-custom-events

ChatGPT
List the business's custom event definitions, optionally filtered by a display name search. Use this to check whether a custom event already exists, or to look up its eventId before building a report.

list-custom-properties

ChatGPT
Browse the custom-property definitions for people, companies, or deals — the property ids, datatypes, allowed options, and read-only flags that govern which property values can be written. Check here before setting property values or creating a new property with create-custom-property.

list-deals

ChatGPT
Browse the business's deals, name-ascending, one page at a time, optionally filtered by status. Deals are read-only — they are synced from the connected CRM (Salesforce, HubSpot, Attio).

list-documents

ChatGPT
Browse the business's documents, most recently updated first, one page at a time. Returns summaries only (id, title, updatedAt) — use get-document for a document's content.

list-email-broadcasts

ChatGPT
List the business's email broadcasts, most recently updated first, one page at a time. Returns summaries only (id, name, status, launchDate, updatedAt) — use get-email-broadcast for the full detail of a specific broadcast. Creating or editing email broadcasts is not available over MCP — use the Quotient agent (a2a-send-message) instead.

list-people

ChatGPT
Browse the business's people (CRM contacts), newest first, one page at a time, optionally filtered by subscription status. To find people by name, email, job title, company or notes, use search-people. Returns summaries only — use get-person for a full profile.

list-reports

ChatGPT
List saved analytics reports, optionally searching by name. Use this to find a report id before reading or updating a report. If several reports match what the user named, ask which one they mean.

list-social-accounts

ChatGPT
List the business's social accounts, one page at a time. Returns id, platform, handle, and connectionStatus — needed to call create-social-post / publish-social-post. Accounts in every connection state are returned (so the caller can see when an account needs reconnection); only CONNECTED accounts can publish.

list-social-posts

ChatGPT
Browse social posts, most recently created first, one page at a time. Returns summaries only (id, name, platform, status, publishDate, and live URL when published) - use get-social-post for the post's full content.

memory-cat

ChatGPT
Read one or more memories by path. Returns each memory's content as a separate part.

memory-ls

ChatGPT
List the folders and memories directly inside a folder. Returns one page of entries; pass nextCursor from the previous response to fetch the next page. Use memory-cat to read a memory's content.

memory-mkdir

ChatGPT
Create a folder. The displayed name is the last path segment — prefer Title Case with spaces (e.g. '/Brand/', '/Go-to-Market/') since it's shown to the user. Path ends with '/'. Parent folders are auto-created.

memory-mv

ChatGPT
Move or rename a memory or folder. For memories, updates the path (and thus the name). For folders, moves the folder and all its contents.

memory-rm

ChatGPT
Remove (archive) a memory or folder at the given path. Documents and folders are soft-deleted and can be recovered.

memory-write

ChatGPT
Write or update a memory at the given path. Provide any combination of content, tags, and pinned. Content-only creates or updates; tags/pinned-only patches an existing memory. The displayed name is the last path segment — e.g. '/Brand/Brand Voice' is shown as 'Brand Voice'. Prefer Title Case with spaces for every segment since they're shown to the user verbatim. Content is HTML (QuotientRichText dialect) by default; set format: "markdown" to write markdown instead. Either way, don't start with an H1 — the name is already the heading.

publish-blog

ChatGPT
Publish a blog post immediately, or schedule it for a future date. Omit publishAt to publish now; pass a future ISO-8601 datetime to schedule. Requires a meta description and non-empty content.

publish-social-post

ChatGPT
Publish a social post immediately, or schedule it for a future date. Omit publishAt to queue for publishing now; pass an ISO-8601 datetime to schedule. Publishing is asynchronous — publish-now queues the post for the worker, while scheduling leaves it SCHEDULED until its publish time. Poll get-social-post to observe the final state and lastErrorMessage on FAILED. LinkedIn posts that still have unresolved @ mention nodes are rejected; each mention needs a Zernio mentionFormat, or the node must be removed.

run-report

ChatGPT
Run an analytics report: a JSON report query naming catalog metrics (what to count), dimensions (how to break it down), and filters (which rows count). Returns a typed table with the resolved date windows, a CSV download link, and a run id. Read describe-report-catalog first for the document format, the metric and dimension catalogs, and worked examples. You see a short prefix of the rows; use get-report-rows with the run id to page through the rest. Does not save the report; use create-report when the caller wants to keep it.

search-assets

ChatGPT
Search the business's media library by words in an asset's name or description, an unfinished name term, or related meaning (e.g. 'team photo outdoors'). Returns the best matches in relevance order. Assets only become searchable once they have a description, which is usually written automatically shortly after upload. Use list-assets to browse by media type or product instead.

search-campaign-tasks

ChatGPT
Search campaign tasks by words in their name or description, an unfinished name term, or related meaning. Optionally restrict to one campaign and/or some statuses. Returns the best matches in relevance order with each task's id, campaign id, name, status, priority, due date and the start of its description. Use this to find a task to update or link when you know what it is about but not its id.

search-campaigns

ChatGPT
Search existing campaigns by words in their name or brief, an unfinished name term, or related meaning. Returns the best matches in relevance order with each campaign's id, name, status, and dates. Use this before creating a campaign to avoid duplicates, or to find past campaigns for context and planning.

search-companies

ChatGPT
Search the business's companies by name, a domain or part of one, words in their description or industries, related meaning (e.g. "companies that sell to hospitals"), or what their notes say. Returns the best matches in relevance order as summaries. Use list-companies to browse every company instead, and get-company for a full profile.

search-docs

ChatGPT
Search the Quotient documentation for features, setup guides, and troubleshooting. Returns the most relevant pages with an excerpt each, one page at a time — pass nextCursor from the previous response for more. Call get-doc with a result's slug to read the full page.

search-documents

ChatGPT
Search documents by words in their title or content, an unfinished title term, or related meaning. Optionally restrict to one campaign. Returns the best matches in relevance order with each document's id, title, campaign id and the start of its content. Use this to find an existing document when you know what it is about but not its id.

search-people

ChatGPT
Search the business's people (CRM contacts) by name (in either order, or partial), an email address or part of one (e.g. "@acme.com"), job title, their company (by name, domain or what it does), or what their notes say. Returns the best matches in relevance order as summaries. Use list-people to browse everyone instead, and get-person for a full profile.

search-social-posts

ChatGPT
Search existing social posts by words, unfinished name terms, or related meaning. Returns the best matches in relevance order; use get-social-post to read a result's full content. Use list-social-posts instead to browse chronologically or inspect a publishing schedule.

unpublish-blog

ChatGPT
Revert a published or scheduled blog post back to DRAFT, taking it offline. Has no effect on posts that are already drafts.

unschedule-social-post

ChatGPT
Unschedule a previously scheduled social post, returning it to DRAFT status. The post must currently be in SCHEDULED status. No platform side effects — the scheduled publish simply does not fire.

update-blog

ChatGPT
Update a blog post's title, content, meta description, and/or tags. content replaces the entire body — fetch the current markdown first with get-blog, apply your edits, and send the full result back. Supported markdown: headings, paragraphs, bold/italic/strikethrough, links, bulleted/ordered lists, block quotes, code blocks, horizontal rules, and tables. Images and embeds are not supported via markdown — add them in the app editor. Keep content under ~50,000 characters to avoid truncation mid-generation.

update-campaign

ChatGPT
Update a campaign's name, brief, and/or dates. brief replaces the entire brief. Use list-campaigns to find campaign ids. Supported markdown: headings, paragraphs, bold/italic/strikethrough, links, bulleted/ordered lists, block quotes, code blocks, horizontal rules, and tables. Images and embeds are not supported via markdown — add them in the app editor.

update-campaign-task

ChatGPT
Update a task's fields and/or status. description replaces the entire description. Use list-campaign-tasks to find task ids. Supported markdown: headings, paragraphs, bold/italic/strikethrough, links, bulleted/ordered lists, block quotes, code blocks, horizontal rules, and tables. Images and embeds are not supported via markdown — add them in the app editor.

update-company

ChatGPT
Update an existing company by id. Only the fields provided change. Fails if the company doesn't exist — use create-company for new companies.

update-custom-property

ChatGPT
Update a custom-property definition: displayName, readOnly, and appending select options. The id and datatype are immutable, and options are append-only. Use create-custom-property for new properties.

update-document

ChatGPT
Update a document's title and/or content. content replaces the entire document — fetch the current markdown first, apply your edits to it, and send the whole result back. Supported markdown: headings, paragraphs, bold/italic/strikethrough, links, bulleted/ordered lists, block quotes, code blocks, horizontal rules, and tables. Images and embeds are not supported via markdown — add them in the app editor.

update-person

ChatGPT
Update an existing person, identified by id or email address. Only the fields provided change. Fails if the person doesn't exist — use create-person for new people.

update-report

ChatGPT
Update a saved analytics report's name, query, or visualization. Read the current definition with get-report first. Query changes save immediately and refresh the snapshot in the background; if you need to inspect changed results before saving, test the new definition with run-report.

update-social-post

ChatGPT
Update an existing DRAFT social media post's content, attached assets, internal name, campaign link, X quote tweet fields, or X Article title and cover. PUBLISHED and PUBLISHING posts cannot be edited; SCHEDULED posts must be unscheduled first.

upsert-company

ChatGPT
Create or update a company by domain — the domain acts as the upsert key. Creates a new company if none exists with this domain, updates the matching company if exactly one exists, or fails with the list of matching ids if more than one company already shares this domain (e.g. multiple entities of the same multinational) — in that case use update-company with a specific companyId instead.

whoami

ChatGPT
Returns the authenticated principal, business, and granted scopes.

Capabilities

Writes

Example Prompts

Click any prompt to copy it.

App Stats

71

Tools

3

Prompts

ChatGPT

Platforms

Works with

ChatGPT

Data refreshed daily