Persuasion Taxonomy MCP
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Persuasion Taxonomy MCProast this landing page draft — which of the nine questions does it skip?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Persuasion Taxonomy MCP
Most AI-written marketing copy fails for the same reason. The model answers every question the reader has with the most expected move, and the most expected move is exactly what readers have learned to skim past.
This server gives your AI a better model of the reader. Everyone who reads an ad, a page or an email is silently asking nine questions:
Why am I even reading this?
Is this written for me?
How bad is my problem, really?
Am I thinking about this correctly?
Can I trust the claim?
What does my life look like after?
What's stopping me from saying yes?
Why should I act right now?
Do I like and trust who's speaking?
Copy persuades when it answers the questions its goal needs, answers them truthfully, and the answers fit together. The server helps your AI plan copy around those questions, check a draft against them before anyone sees it, and reach past the obvious move for one of 766 persuasion techniques documented from real advertising. It also does the math behind A/B tests.
It's free and needs no API key. It makes no AI calls of its own, either: your model does the thinking, and the server only serves the catalog and runs plain code.
Connect it
The hosted server lives at https://taxonomy.coppica.com/mcp. Any client that accepts a remote MCP server (Streamable HTTP) can use that URL as it is.
Claude Code
claude mcp add --transport http persuasion-taxonomy https://taxonomy.coppica.com/mcpClaude Code plugin. This adds the server along with a short skill that tells Claude when to reach for it.
/plugin marketplace add Otha-Labs/persuasion-mcp
/plugin install persuasion-taxonomy@persuasion-taxonomyClaude, ChatGPT and other apps with custom connectors. Add a custom connector and paste in the URL above. There's nothing to sign in to.
Cursor (.cursor/mcp.json)
{ "mcpServers": { "persuasion-taxonomy": { "url": "https://taxonomy.coppica.com/mcp" } } }VS Code (.vscode/mcp.json)
{ "servers": { "persuasion-taxonomy": { "type": "http", "url": "https://taxonomy.coppica.com/mcp" } } }Run it on your own machine (any client that launches local servers)
{ "mcpServers": { "persuasion-taxonomy": { "command": "npx", "args": ["-y", "@coppica/persuasion-mcp"] } } }Related MCP server: marketing-mcp
What your AI can do with it
You don't need to name the tools. Ask for what you want and a capable model reaches for the right one, and in testing it did so in all 16 realistic requests we tried, without being told the server existed.
When someone asks... | The tool that answers |
"Write me a landing page / ad / email / sales letter" |
|
"Is this good?", "Roast this", "What's wrong with this copy?" |
|
"My ad gets clicks but no sales" |
|
"Give me other ways to build trust", "Make this less generic" |
|
"What is this technique called?", "How does it work?" |
|
"Which of these headlines is best?" |
|
"Is this claim believable?", "Is this button any good?" |
|
"How long should I run this test?" |
|
"Did my test win?" |
|
It also offers four ready-made prompts (/roast, /brief, /why-not-converting and /next-test) and the nine questions as a resource you can read in full.
What it keeps
Nothing you send it. Your copy, your brief and your test numbers are used to answer that one request and then dropped. The hosted server logs which tool was called and when, and like any website, its host keeps ordinary request logs for a short time. The full policy is at taxonomy.coppica.com/privacy.
Where the techniques come from
Every technique is an entry in The Persuasion Taxonomy, a catalog of persuasion techniques documented from real ads, sales letters, emails and pages, with examples from the 1920s to now. The catalog is free under CC BY 4.0. When your AI uses a technique, it names the technique and links to its page, so your reader can see the real examples behind the advice.
Develop
npm install
npm run build
npm run smoke # connects as a client over stdio and calls every tool
npm run smoke -- --http # the same, over Streamable HTTP
npm run voice # checks every model-facing string for machine tellsThe catalog in data/ is a snapshot. npm run export-data refreshes it, and it needs read access to Coppica's database, so outside contributors can work against the snapshot as it is.
The src/http.ts module exports handleMcpRequest(request), which takes a web-standard Request and returns a Response. That makes it easy to host anywhere that speaks fetch: a Next.js route, a Vercel or Cloudflare function, or plain Node 18 and up.
Voice
Every word the server shows a model reads the way a good direct-response writer would write it: plain words, full sentences that lead into each other, no em dashes, no shouted labels and no "it's not X, it's Y". That goes for the instructions, the tool descriptions, every line of output and every error message. A model picks up the voice of whatever it reads and passes it on to whoever it's writing for, so the tool has to model the writing it asks for. src/voice.ts turns the scorers' findings into plain sentences, and npm run voice keeps it honest.
License
The code is MIT. The catalog data in data/ is CC BY 4.0 and belongs to The Persuasion Taxonomy by Coppica.
About
Built by Coppica. This server knows how readers think. Coppica connects that same model of the reader to your live conversion data, so over time it learns which answers actually sell to your buyers.
Available Tools
9 toolscheck_headlinesCheck and compare headlines, hooks, and subject linesARead-onlyIdempotentInspect
Check headlines, email subject lines, ad openings, video hooks, social post openings and first lines, and compare options against each other. For each line it tells you whether the line does its job in that spot, meaning which of the nine reader questions it answers, and whether a competitor could send it unchanged. It also shows exactly what a reader sees before the cutoff, flags anything that fails outright, and brings in evidence from thousands of real headline tests. Then it tells you what each option is betting on and which two to test. Before you call it, list the reader questions each line answers and quote the exact words doing the work. Use it whenever you write headlines, hooks or subject lines, whenever you have to choose between them, and whenever someone asks "which one is best?" You won't get a score out of ten. Nobody can predict a winner from the words alone, and that includes this tool.
| Name | Required | Description | Default |
|---|---|---|---|
| slot | Yes | Where the lines will appear: email_subject, ad_opening, landing_page_headline, first_line, video_hook, social_post_open, sales_letter_headline. Each spot has its own job, and the check tells you what it is. | |
| brief | No | The brief. The swap test needs it to tell whether a competitor could send the line unchanged, and without it no line can pass. | |
| lines | Yes | ||
| follows | No | What the reader saw just before this line, like the ad before a landing page headline, or the headline or subject before a first line. | |
| awareness_level | No | How much the reader already knows, on Eugene Schwartz's scale. Use unaware if they don't know they have the problem, problem_aware if they feel it, solution_aware if they know solutions exist, product_aware if they know you, and most_aware if they're ready and only need the offer. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/closed-world, and the description adds substantial context beyond them: it names the nine reader questions the check reports on, the swap test, the cutoff preview, outright failure flags, and evidence pooled from thousands of real tests. It also proactively sets an expectation ("You won't get a score out of ten") that prevents misuse of the result.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose and output content, and every sentence does work, including the expectation-setting line about no score out of ten. It is on the long side and the middle sequencing is a touch dense, but there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description fully carries the burden of describing returns: what each line is judged on, which reader questions it answers, whether a competitor could send it unchanged, the cutoff view, failure flags, evidence, and a recommended two-variant test. Nothing needed to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 80%, so the schema carries most of the burden, but the description adds real meaning: "Before you call it, list the reader questions each line answers and quote the exact words doing the work" tells the agent the required 'answers' payload must be authored by the caller. The swap-test note also clarifies why the brief matters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (check, compare) and a precisely scoped resource: headlines, email subject lines, ad openings, video hooks, social post openings/first lines. The enumeration of line types plus the comparison framing makes it easy to separate from the broader diagnose_marketing_copy sibling without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit when-to-use triggers: "whenever you write headlines, hooks or subject lines, whenever you have to choose between them, and whenever someone asks 'which one is best?'". It does not name a when-not condition or point at the closest alternative (diagnose_marketing_copy), so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_marketing_claimsCheck marketing claims and CTAsARead-onlyIdempotentInspect
Check whether marketing claims and calls to action are specific enough to believe. It catches the vague superlative, like "the best" or "#1", that readers discount on sight. It catches promises with no proof behind them and results with no mechanism, and it flags the generic buttons everyone uses, like "Learn more" and "Get started". Then it tells you how to fix each one. Use it when you write or review claims like "results in days", "trusted by thousands" or "the #1 tool", and for any button text. For headlines, check_headlines does the full job.
| Name | Required | Description | Default |
|---|---|---|---|
| claims | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true and openWorldHint=false, so the safety profile is covered. The description adds real behavioral value beyond that: it discloses what classes of problems are reported (vague superlatives, promises without proof, results without mechanism, generic CTAs) and that output includes remediation suggestions ('tells you how to fix each one').
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Five sentences, front-loaded with the core purpose before the examples and the sibling hand-off. Each sentence carries distinct information (what it catches, that it proposes fixes, when to use, when to use something else), though the detection list is slightly repetitive.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter, read-only checker with no output schema, the description covers purpose, detection scope, remediation behavior and fallback routing. The only gap is concrete input formatting for the claims array, which is a minor omission given the schema fields.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description references the input conceptually ('claims like ...', 'any button text'), which maps loosely to the claims text and type fields, but it gives no format or batching guidance. Schema description coverage is reported as 0%, so the description does not fully compensate for the parameter documentation gap, though the nested schema itself is self-describing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb+resource: it checks marketing claims and CTAs and says exactly what it detects (vague superlatives, unproven promises, generic buttons). It also distinguishes itself from the sibling check_headlines, which 'does the full job' for headlines, so an agent can route correctly without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit when-to-use with concrete examples ('results in days', 'trusted by thousands', '#1 tool', any button text) plus an explicit boundary: for headlines, use check_headlines instead. Nothing about routing is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
diagnose_marketing_copyDiagnose marketing copy (roast / review)ARead-onlyIdempotentInspect
Review, critique or roast any piece of marketing copy, whether it's an ad, a landing page, an email, a sales page, a social post or a script, and find out why it might not persuade. Before you call it, read the copy and label each line with the one reader question it mainly answers, quoting the words exactly. Those labels go in the moves array. You get back which of the nine questions the copy answers for its goal, which it answers weakly and which it skips, along with the biggest gap and what readers do when it is missing. It also checks the order, whether the answers agree with each other, and the craft, pointing to the exact words that read as machine-written, like em dashes, "it's not X, it's Y" lines and sentences that all run the same length. Then it checks the opening line and suggests techniques from the catalog to fill the gap. Use it before you show anyone a draft you wrote, and whenever someone asks "is this good?", "roast this", "what's wrong with this copy?" or "how do I make it better?"
| Name | Required | Description | Default |
|---|---|---|---|
| copy | Yes | The full copy, exactly as written. | |
| goal | Yes | What the copy has to get the reader to do. Use purchase when they should buy now, signup for an opt-in, a trial, a demo or a lead form, click when the whole job is the click (most ads and links), and engagement for nurture emails, newsletters and social posts that should be read, answered or followed. | |
| brief | No | The brief, if you have it: the brand, product, offer, audience and proof. With it, the opening line gets the swap test, which asks whether a competitor could send it unchanged. | |
| moves | Yes | Your line-by-line labels. Quote each persuasive line exactly and name the one reader question it mainly answers. Skip lines that are pure filler. | |
| format | Yes | The kind of copy it is: ad, landing_page, sales_letter for long-form sales copy, email, email_subject, social_post, video_script or headline. | |
| category | No | The industry, if you want to compare against what brands in that category usually do. There is enough data for apparel, automotive, b2b_saas, beauty_skincare, business_coaching, consumer_tech, dtc_food_bev, dtc_health, fitness_health, home_goods, info_product, investing, marketing_education, otc_pharma, personal_care, personal_development, supplements, weight_loss. Any other category still works, just without the comparison. | |
| headline | No | The headline or opening line, if it isn't the first line of the copy. | |
| awareness_level | No | How much the reader already knows, on Eugene Schwartz's scale. Use unaware if they don't know they have the problem, problem_aware if they feel it, solution_aware if they know solutions exist, product_aware if they know you, and most_aware if they're ready and only need the offer. | |
| persuasion_mode | No | How hard the copy is allowed to push. Balanced is the default, persuasive and sustainable over time. Equity protects long-term trust, so it rules out fear, hype and hard-sell moves. Aggressive is for short-term direct response and allows fear, threat and hard scarcity. In every mode, the claims stay true. | balanced |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that this is a safe, idempotent, non-open-world read, so the barrier is low, and the description adds real behavioral value: it discloses that the caller must pre-label each line into the moves array, and what the response contains (nine-question coverage, biggest gap, order, agreement, craft/machine-written markers). It stops short of covering limits like the 80-move cap or behavior on unparseable input.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action and the pre-call workflow before the description of outputs, and every clause carries information. It is a dense, long run-on paragraph, so scanning is harder than it needs to be, but there is little outright filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a nine-parameter tool with nested objects and no output schema, the description covers the purpose, the required pre-work and the shape of the result well enough to call it correctly. The remaining gap is that return structure is described narratively rather than concretely, and sibling boundaries are left implicit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all nine parameters including enums, defaults and nesting; the baseline of 3 applies. The description reinforces the labeling workflow for moves but adds no syntax, format or constraint detail beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb set (review, critique, roast) against a specific resource (any piece of marketing copy) and enumerates the formats it covers. It does not explicitly name sibling tools it overlaps with, such as check_headlines, check_marketing_claims, or find_persuasion_techniques, even though the description claims to also do opening-line checks and suggest techniques.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear trigger conditions and even quoted user phrasings ('is this good?', 'roast this', 'what's wrong with this copy?') plus the recommended timing before showing a draft. It never states when NOT to use it or which sibling tool to pick for a narrower job.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
explain_why_not_convertingExplain why marketing is not convertingARead-onlyIdempotentInspect
Work out why an ad, a landing page, an email or a whole funnel isn't converting. Start from what you can see. Maybe people don't click (a low CTR), or they click and bounce, or they read and don't buy. Maybe they abandon the checkout or the form, the leads never buy, customers buy once and leave, or emails don't get opened or get opened and nobody clicks. Whatever the symptom, you get back the reader questions most likely going unanswered, what to check in the copy first, and the problems copy can't fix that you should rule out, along with techniques to try and the test that would confirm the diagnosis. So use it whenever someone says their marketing "isn't working", "isn't converting" or "isn't selling", or asks why results dropped.
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | The kind of copy it is: ad, landing_page, sales_letter for long-form sales copy, email, email_subject, social_post, video_script or headline. | |
| details | No | Anything you know: the numbers, what changed recently, the offer and the audience. | |
| symptom | Yes | What you can see happening. Use low_click_through when people see it and don't click, high_bounce when they click and leave fast, reads_but_no_action when they read and don't convert, starts_but_abandons when they abandon the checkout or form, leads_dont_buy when signups never buy, buys_once_no_return for refunds, churn and no repeat orders, low_open_rate when emails don't get opened, and opens_no_clicks when they get opened but not clicked. | |
| category | No | The industry, if you want to compare against what brands in that category usually do. There is enough data for apparel, automotive, b2b_saas, beauty_skincare, business_coaching, consumer_tech, dtc_food_bev, dtc_health, fitness_health, home_goods, info_product, investing, marketing_education, otc_pharma, personal_care, personal_development, supplements, weight_loss. Any other category still works, just without the comparison. | |
| persuasion_mode | No | How hard the copy is allowed to push. Balanced is the default, persuasive and sustainable over time. Equity protects long-term trust, so it rules out fear, hype and hard-sell moves. Aggressive is for short-term direct response and allows fear, threat and hard scarcity. In every mode, the claims stay true. | balanced |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already mark this as read-only, idempotent, and closed-world, so the bar for behavioral disclosure is lower. The description still adds rich value by explaining what comes back: likely unanswered reader questions, what to check in copy first, problems copy cannot fix, techniques to try, and a confirming test. There is no contradiction with the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose is front-loaded, but the description is long and enumerates symptom cases that largely duplicate the detailed enum descriptions in the schema. It is readable but not tight; several clauses could be removed without losing meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the diagnostic purpose, when to use the tool, and the shape of the returned analysis, which is important because there is no output schema. It is nearly complete for invocation. The main gap is lack of routing guidance against the sibling diagnose_marketing_copy.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already fully documents the five parameters and their enums. The description restates symptom examples in narrative form but adds no syntax or constraints beyond what the schema provides. The baseline of 3 is appropriate when structured fields carry the parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific diagnostic purpose: working out why an ad, landing page, email or funnel isn't converting. It scopes the tool well against planning or checking siblings. However, it does not differentiate from the closely named sibling diagnose_marketing_copy, so an agent still has to infer which diagnostic tool to choose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear trigger conditions: use whenever someone says marketing 'isn't working', 'isn't converting', 'isn't selling', or asks why results dropped. This is strong when-to-use guidance. It lacks any when-not guidance or explicit alternative sibling, which keeps it below a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_persuasion_techniquesFind persuasion techniquesARead-onlyIdempotentInspect
Search the Persuasion Taxonomy, 766 named persuasion techniques documented from real advertising and organized by the nine reader questions they answer. Describe what you want the copy to do, like build trust without testimonials, create urgency without fake scarcity, handle a price objection, make an opening less generic, prove a claim or reframe a problem. It finds the techniques that do it. Each one comes with its name and ID, a one-line definition, a real example, how common it is in a category if you name one, and a link. So reach for it when a draft relies on the obvious move and you want a less expected one, or when someone asks for tactics, angles, hooks or ideas.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | Yes | What you want the copy to do, in plain words, like "prove it works without testimonials". | |
| format | No | The kind of copy it is: ad, landing_page, sales_letter for long-form sales copy, email, email_subject, social_post, video_script or headline. | |
| category | No | The industry, if you want to compare against what brands in that category usually do. There is enough data for apparel, automotive, b2b_saas, beauty_skincare, business_coaching, consumer_tech, dtc_food_bev, dtc_health, fitness_health, home_goods, info_product, investing, marketing_education, otc_pharma, personal_care, personal_development, supplements, weight_loss. Any other category still works, just without the comparison. | |
| question | No | Set this to see only the techniques that answer one reader question. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent and closed-world, so the safety profile is covered. The description adds genuinely useful behavior beyond that: the exact contents of each result (name and ID, one-line definition, real example, category frequency if a category is named, link), which matters because there is no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the corpus definition, then usage scenarios, in a logical order. Slightly loose — 'It finds the techniques that do it.' is filler and the long run-on sentence mixes four separate example queries that partly duplicate the schema's own query example.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully specifies what comes back, and it covers corpus size, organization and triggering scenarios. Minor gaps: nothing about result ordering/relevance or how the default limit of 8 affects behavior, though the schema covers those parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is already 80%, so the baseline is 3. The description earns above baseline by explaining intent-level semantics: the query is phrased as 'describe what you want the copy to do' with multiple worked examples, and it clarifies that any category value other than the listed ones still works but suppresses the comparison signal.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource — search the Persuasion Taxonomy of 766 named techniques organized by nine reader questions — and makes the scope concrete enough to separate it from the singular get_persuasion_technique sibling. An agent can tell what it returns and roughly how the corpus is structured without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit triggering contexts: 'reach for it when a draft relies on the obvious move and you want a less expected one, or when someone asks for tactics, angles, hooks or ideas.' Strong when-to-use signal, but it never names an alternative tool or states when not to use it (e.g. the single-technique lookup or the diagnostic siblings).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_persuasion_techniqueGet a persuasion techniqueARead-onlyIdempotentInspect
Look up one persuasion technique by its ID (like PT-PRV-10000), its slug or its name. You get the full definition, why it works, when it lands and when it backfires, real examples from advertising, related and opposite techniques, and a link you can cite. Use it before you apply or recommend a technique so you get it right, and whenever someone asks what a tactic is called or how it works.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The PT-ID, the slug or the exact name of the technique. | |
| category | No | The industry, if you want to compare against what brands in that category usually do. There is enough data for apparel, automotive, b2b_saas, beauty_skincare, business_coaching, consumer_tech, dtc_food_bev, dtc_health, fitness_health, home_goods, info_product, investing, marketing_education, otc_pharma, personal_care, personal_development, supplements, weight_loss. Any other category still works, just without the comparison. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent and closed-world, so the safety profile is covered. The description goes further by enumerating what comes back (definition, why it works, when it backfires, ad examples, related/opposite techniques, citable link), which is real behavioral value beyond the structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the what and the identifier forms, then a single usage sentence with no filler. The return-value enumeration is a long clause but it carries information since there is no output schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description correctly compensates by describing the payload, and the annotation set covers safety. The one gap is silence on the optional category parameter and its comparison behavior, which the schema documents on its own.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both parameters are already documented and the category comparison behavior lives in the schema. The description adds only the concrete PT-ID format example ('PT-PRV-10000'), and notably never mentions the category parameter at all, so it stays at the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (look up) and resource (one persuasion technique) plus the accepted identifier forms (PT-ID, slug, exact name). It reads as a single-record retrieval tool, clearly separable from the sibling find_persuasion_techniques, which is exploratory search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete triggers: use before applying or recommending a technique, and whenever someone asks what a tactic is called or how it works. It sets context well but never names the discovery alternative (find_persuasion_techniques) or states when this lookup is the wrong choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
plan_ab_testPlan an A/B testARead-onlyIdempotentInspect
Plan an A/B test for marketing copy. Give it the current conversion rate, the smallest lift worth detecting and the daily traffic, and it tells you how many visitors each version needs and how many days to run. It also frames the test as two different answers to the same reader question, so the result teaches you something you can reuse, and not just that "B won". Use it when someone asks how long to run a test, how much traffic they need, whether a test is worth running, or what to test next.
| Name | Required | Description | Default |
|---|---|---|---|
| power | No | ||
| question | No | The reader question both versions answer, each in its own way. | |
| versions | No | How many versions, counting the original. | |
| version_a | No | How version A answers it. | |
| version_b | No | How version B answers it. | |
| confidence | No | ||
| daily_visitors | Yes | How many visitors a day enter the test, across all versions. | |
| minimum_detectable_lift_percent | Yes | The smallest relative lift worth detecting, in percent. 20 means a 20% lift, like going from 3% to 3.6%. | |
| baseline_conversion_rate_percent | Yes | The current conversion rate, in percent, so 3 means 3% and 0.8 means 0.8%. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and a closed world, so the safety profile is covered; the description adds the useful behavioral fact that this is a deterministic advisory calculation whose output includes a reusable framing of the test, not just a winner. It doesn't discuss edge behavior (e.g., how multi-version tests with versions > 2 are handled), which keeps it below 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with the core purpose front-loaded and then inputs, outputs and triggers in order; the middle sentence is a bit long and the 'not just that B won' aside is stylistic, but each sentence contributes distinct information rather than padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description correctly carries the burden of describing returns: per-version visitor counts, days to run, and the framing output. Coverage is good for a 9-parameter tool, with only minor gaps around non-default power/confidence/versions semantics.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 78% (high), so the schema already documents most of the 9 parameters, including units for baseline rate and MDP lift, plus defaults/ranges for power and confidence. The description only restates the three required inputs ('current conversion rate, the smallest lift worth detecting and the daily traffic') and adds no format or unit guidance beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Plan an A/B test for marketing copy') and immediately details the mechanics: it consumes conversion rate, minimum detectable lift and daily traffic, and returns required sample size per version plus run duration. That scope is clearly distinct from siblings like read_ab_test_result or plan_marketing_copy, though neither sibling is named explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The final sentence gives four concrete trigger intents ('how long to run a test', 'how much traffic they need', 'whether a test is worth running', 'what to test next'), which is stronger than implied usage. It stops short of the 5 bar because it names no alternative tool or exclusion condition (e.g., when to use read_ab_test_result or plan_marketing_copy instead).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
plan_marketing_copyPlan marketing copy (the nine reader questions)ARead-onlyIdempotentInspect
Plan any piece of marketing copy before you write it, whether it's an ad, a landing page, a sales page or sales letter, an email, a subject line, a social post, a headline or a video script. Give it the goal, the reader and the offer, and it tells you which of the nine questions every reader silently asks this piece has to answer, which ones deserve the most words for this reader, and a few ways to answer each one, drawn from real advertising and linked to the Persuasion Taxonomy. One option is always the established move and the rest are less expected, because left to itself a model answers every question with the move everyone else makes, and readers have learned to skim past it. So call it before you draft, even when you're sure you know how to write the piece, and when the draft is done, check it with diagnose_marketing_copy.
| Name | Required | Description | Default |
|---|---|---|---|
| goal | Yes | What the copy has to get the reader to do. Use purchase when they should buy now, signup for an opt-in, a trial, a demo or a lead form, click when the whole job is the click (most ads and links), and engagement for nurture emails, newsletters and social posts that should be read, answered or followed. | |
| offer | Yes | What you're selling or asking for, and the main promise. | |
| format | Yes | The kind of copy it is: ad, landing_page, sales_letter for long-form sales copy, email, email_subject, social_post, video_script or headline. | |
| audience | Yes | Who will read it, as specifically as you can put it: their role, their situation and what they already believe. | |
| category | No | The industry, if you want to compare against what brands in that category usually do. There is enough data for apparel, automotive, b2b_saas, beauty_skincare, business_coaching, consumer_tech, dtc_food_bev, dtc_health, fitness_health, home_goods, info_product, investing, marketing_education, otc_pharma, personal_care, personal_development, supplements, weight_loss. Any other category still works, just without the comparison. | |
| awareness_level | No | How much the reader already knows, on Eugene Schwartz's scale. Use unaware if they don't know they have the problem, problem_aware if they feel it, solution_aware if they know solutions exist, product_aware if they know you, and most_aware if they're ready and only need the offer. | |
| persuasion_mode | No | How hard the copy is allowed to push. Balanced is the default, persuasive and sustainable over time. Equity protects long-term trust, so it rules out fear, hype and hard-sell moves. Aggressive is for short-term direct response and allows fear, threat and hard scarcity. In every mode, the claims stay true. | balanced |
| options_per_question | No | How many ways to answer each question you want to see. The default is 4. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover the safety profile (readOnlyHint, idempotentHint, openWorldHint=false), so the bar is lower. The description adds genuine behavioral context beyond them: it explains what the output contains (which of nine questions to answer, weight per reader, several answer options), that one option is always the established move, and the rationale (models default to overused moves that readers skim past).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose, then usage, then the rationale for the 'one established move' design. It is on the long side and the opening format enumeration is list-heavy, but nearly every sentence carries routing or behavioral information rather than filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a planning tool with no output schema, the description does what the schema can't: it characterizes the return (question list, weighting, multiple candidate answers drawn from real advertising, linked to the Persuasion Taxonomy). Combined with 100% parameter coverage, an agent has everything needed to call it and interpret the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and each parameter carries its own enum/value documentation, so the schema does the heavy lifting. The description only loosely names 'the goal, the reader and the offer', which maps to a subset of the eight parameters without adding format or syntax detail. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (plan) and resource (marketing copy) up front, then enumerates the covered formats. It explicitly separates itself from the post-draft sibling 'diagnose_marketing_copy', so an agent can route between them without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit when-to-use ('call it before you draft, even when you're sure you know how to write the piece') and names the complementary tool and the condition for it ('when the draft is done, check it with diagnose_marketing_copy'). No guidance is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_ab_test_resultRead an A/B test resultARead-onlyIdempotentInspect
Read the result of an A/B test. You get each version's conversion rate and lift, whether the difference is statistically significant, the confidence interval, and the chance each version really beats the original. It also warns you about the things that make a test result lie. Those include too few conversions, traffic that didn't split the way it should (a sample ratio mismatch), stopping the moment it looked good, and testing too many versions at once. So use it whenever someone shares test numbers, or asks "did my test win?", "is this significant?", "which version won?" or "should I keep it running?"
| Name | Required | Description | Default |
|---|---|---|---|
| question | No | The reader question the versions answered in different ways. | |
| versions | Yes | Each version with its visitors and conversions. Put the original, the control, first. | |
| confidence | No | ||
| intended_split | No | How you meant to split the traffic, like [50, 50]. The default is an even split. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and openWorldHint=false, so the safety profile is covered. The description adds substantial behavioral context beyond annotations: it explains the returned statistical measures and warns about reliability pitfalls like too few conversions, sample ratio mismatch, peeking, and testing too many versions at once. This is precisely the kind of added value expected when annotations are present.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core action and outputs, then moves to warnings and usage triggers. It is efficient overall, though the list of trigger questions at the end is somewhat expansive. Every sentence contributes useful information, so it is well structured but slightly long.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description appropriately explains the returned values and statistical warnings. It is nearly complete for a read-only analysis tool, but it omits any guidance on the confidence parameter and does not clarify how the intended_split default relates to the input. These are minor gaps against an otherwise thorough description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 75%, with the question, versions, and intended_split parameters documented in the schema, while confidence has no schema description. The description does not explain any parameter semantics, including the confidence parameter or the intended_split format. When schema coverage is moderately high, a baseline of 3 is appropriate because the schema does the heavy lifting and the description adds no parameter-specific meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: reading the result of an A/B test. It goes further by enumerating the outputs (conversion rate, lift, significance, confidence interval, chance to beat original) and warnings, which clearly distinguishes it from planning siblings like plan_ab_test. An agent can identify the correct tool without ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit usage triggers such as when someone shares test numbers or asks 'did my test win?', 'is this significant?', 'which version won?', and 'should I keep it running?'. It does not explicitly state when not to use it or name the alternative plan_ab_test, so it falls short of full when/when-not/alternatives guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
9 tool updates
v1.0.0- First observed
check_headlines - First observed
check_marketing_claims - First observed
diagnose_marketing_copy - First observed
explain_why_not_converting - First observed
find_persuasion_techniques - First observed
get_persuasion_technique - First observed
plan_ab_test - First observed
plan_marketing_copy - First observed
read_ab_test_result
TDQS
Scored across 9 tools
Most tools have clearly distinct purposes, with plan/diagnose_marketing_copy forming a clean before/after pair and find/get_persuasion_technique acting as search vs. lookup. The main soft spot is overlap between diagnose_marketing_copy (review a draft) and explain_why_not_converting (troubleshoot conversion symptoms), though the descriptions do differentiate symptom-based funnel diagnosis from copy critique. check_headlines vs. check_marketing_claims is explicitly disambiguated in the text.
All nine tools follow a consistent snake_case verb_noun pattern (plan_marketing_copy, diagnose_marketing_copy, find_persuasion_techniques, get_persuasion_technique, check_headlines, check_marketing_claims, plan_ab_test, read_ab_test_result). explain_why_not_converting is the only slight deviation into a verb_phrase, but the convention is unmistakably consistent overall.
Nine tools is well-scoped for a persuasion-taxonomy server, with each tool earning its place: planning, diagnosis, technique discovery/lookup, headline and claim checks, and a two-step A/B test workflow. No redundancy or filler.
The surface covers the full persuasion lifecycle well: planning, diagnosing, technique research, copy-element checks, and A/B test planning plus result reading. Minor gap is there's no tool to actually draft or rewrite copy, though that may be intentionally left to the model.
Maintenance
Related MCP Connectors
Curated marketing libraries and ideation for your AI: 1,800+ award-winning campaigns and frameworks.
Marketing intelligence API for AI agents. Real campaign data, not LLM guesses.
GrowthHackers copywriting prompts (Meta/Google Ads, email, VSL) as MCP tools — search & generate.
Score your copy instantly and access 560+ guides on persuasion, hooks, and sales writing.
Related MCP Servers
- FlicenseBqualityDmaintenanceEnables creators and marketers to generate viral social media hooks, format text into Twitter threads with proper character limits, and audit sales copy with actionable feedback on power words and CTAs.3-
- FlicenseNot gradedqualityCmaintenanceEnables marketing optimization tasks such as copywriting, campaign analysis, social media planning, audience segmentation, and KPI tracking through natural language.150 npm-

Heista MCPofficial
AlicenseNot gradedqualityFmaintenanceDecode any video ad, load brand information, and generate ad scripts from inside MCP-compatible clients like Claude and ChatGPT.MIT- AlicenseAqualityCmaintenanceEnables building a scored, searchable swipe file from public Meta Ads Library research, with tools to generate new ServiceHawk ad copy from winning patterns.7MIT