Skip to main content
Glama
sarojkjha

AAJ Marketing Engines

The math layer for marketing agents

Listed on mcpservers.org

Most marketing skills are writing instructions. They help an agent draft a page, an email or a plan, so keep them. These add the arithmetic underneath. The agent that drafts your pricing page can check whether the price still covers inference cost. The agent that writes the board update can compute the forecast instead of estimating it. Same input, same output, and code you can read.

Works with Claude Code, OpenAI Codex, Cursor, Windsurf, Cline and any agent that supports the Agent Skills spec. Free, MIT, no API key, and the engines make no network calls.

Built by Saroj Jha / AAJ. Browsable library at skills.aajconsult.com.

If an engine saves you a spreadsheet, star the repo. Stars are how other founders, and the directories agents search, find it. Questions and engine requests go in Discussions.

Renamed on Oct 11, 2026. copywriting, marketing-psychology, programmatic-seo, marketing-loops and sales-enablement are now aaj-copywriting, aaj-marketing-psychology, aaj-programmatic-seo, aaj-marketing-loops and aaj-sales-enablement. Another popular library publishes skills under the same five names, so with the prefix both install side by side. The hosted MCP server still answers to the old names.


Contents


Related MCP server: mcp-saas-metrics

Quick start

# everything
npx skills add sarojkjha/aaj-marketing-skills

# one skill
npx skills add sarojkjha/aaj-marketing-skills --skill unit-economics

# see what's available
npx skills add sarojkjha/aaj-marketing-skills --list

Installs to .agents/skills/, and symlinks into .claude/skills/ for Claude Code.

Step-by-step instructions for every agent, Windows, Mac and Linux, and the hosted server: docs/install.md.

Then run any engine with no configuration at all:

node .agents/skills/unit-economics/resources/unit-economics.js --demo
AAJ Unit Economics -- subscription
------------------------------------------------------
Gross-margin LTV        $13,333   (3.0% monthly churn (~33.3 mo lifetime))
CAC                     $3,000
LTV : CAC               4.4:1
CAC payback             7.5 mo

[OK] LTV:CAC 4.4:1 is at or above the 3:1 floor.
[OK] CAC payback 7.5 mo is within the ~12-month guideline for subscription.

Swap the demo values for your own and it works the same way.

From a clone of this repo, paths are skills/<slug>/resources/… instead of .agents/skills/<slug>/resources/….


Install as a Claude Code or Codex plugin

Claude Code. In Claude Code 2.1.275 or later, one line adds the marketplace and opens the plugin:

/plugin install aaj-marketing-skills --marketplace sarojkjha/aaj-marketing-skills

On earlier versions, run two commands:

/plugin marketplace add sarojkjha/aaj-marketing-skills
/plugin install aaj-marketing-skills@aaj

The skills then appear as /aaj-marketing-skills:<skill>. The plugin also starts the local AAJ engines MCP server (platform/mcp/server.mjs, Node 18+), so Claude can call run_engine directly. It runs on your machine and AAJ receives nothing. Updates arrive when you run /plugin marketplace update aaj.

OpenAI Codex. Add the marketplace, then install the plugin (or browse it with /plugins inside Codex):

codex plugin marketplace add sarojkjha/aaj-marketing-skills
codex plugin add aaj-marketing-skills@aaj

codex plugin marketplace upgrade aaj picks up new skills. Codex reads .agents/plugins/marketplace.json, and both clients load every skill in skills/.


Use it from an MCP client

Instead of installing the skills into a project, you can expose all 81 skills and all 66 engines to any MCP client — Claude Desktop, Claude Code, Cursor, Windsurf — as five tools:

Tool

What it does

list_engines

Every runnable engine, grouped by category

describe_engine

One engine's input schema, units and worked example

run_engine

Runs it on your numbers, or the demo if you pass none

search_skills

Finds a skill by the problem, not the name

get_skill

The full method for one skill

Hosted, no install. Add this URL as a custom connector (a remote MCP server) in Claude, ChatGPT or any MCP client:

https://aaj-engines-mcp.sarojkjha10.workers.dev/mcp

No sign-in. The server runs the engines in memory and keeps no copy of what you send (what happens to your data). In Claude: Settings → Connectors → Add custom connector. Then ask, for example, "Use the AAJ engines to check my unit economics: CAC $1,200, ARPA $300 a month, 80% gross margin, 3% monthly churn."

Local. Clone the repo and point your client at one file. Node 18+, no dependencies, no build step:

{
  "mcpServers": {
    "aaj-engines": {
      "command": "node",
      "args": ["/absolute/path/to/aaj-marketing-skills/platform/mcp/server.mjs"]
    }
  }
}

Your agent can then find the right method for a problem and run the math on your numbers, rather than estimating. Run locally, AAJ receives nothing; your agent's model provider still sees what you give the agent.

What happens to your data

The engines are deterministic scripts. They make no network calls, write no files and take no actions in your tools; they compute and return text and JSON. Where your numbers travel depends on how you run them:

How you run it

Where your inputs go

Skill installed in your agent, or the local MCP server

The engine runs on your machine and AAJ receives nothing. Your AI agent still sends what you give it to its model provider (Anthropic, OpenAI and so on), under your own account's terms.

Hosted MCP server

Your agent's model provider, as above, plus AAJ's server on Cloudflare, which receives the engine inputs over HTTPS, runs them in memory and keeps no copy. Cloudflare keeps error logs (no inputs) for up to 7 days.

Don't pass customer names, emails or other personal data to an engine; none of them needs it.

Setup for each client, troubleshooting, and the smoke test: platform/mcp/README.md.


Recipes: vendor data in, a verdict out

Vendor MCP servers bring the data; the engines turn it into a verdict. Each recipe is a prompt to paste, a field-by-field mapping and the checks to make before you trust the result:


What a runnable engine means

Most agent skills are instructions. These are too — but 66 of them also ship a dependency-free Node script that does the arithmetic and returns a judgement.

Instruction-only skill

Skill with an engine

Output

Guidance the agent paraphrases

Deterministic numbers

Reproducible

No

Yes — same input, same output

Verifiable

You trust the model

You read the code

Runs without an agent

No

Yes, node …

Every engine accepts --demo (a worked example, no config), --help (the input schema), and a JSON payload for your own numbers. Engines validate input and fail loudly rather than returning a confident wrong answer.


The catalog

E marks a skill with a runnable engine. Phase refers to AAJ's Diagnose → Design → Execute method.

Strategy & Positioning

Skill

What it does

Phase

E

aaj-marketing-psychology

Diagnoses which decision friction blocks the buyer, with a line between persuasion and manipulation.

Design

E

ai-inference-pricing

Checks that an AI plan's price still covers inference when usage spikes.

Design

E

beachhead-segment-selection

Picks the segment to win first from evidence, and says when the pick is still a guess.

Design

brand-product-context

Builds the shared brand brief every other skill reads first.

Diagnose

E

campaign-orchestrator

Diagnoses which play applies, then sequences the other skills in order.

Diagnose

E

competitor-messaging-matrix

Reads rival homepages side by side and says which claims are crowded, which are open, and whether your headline blends in.

Diagnose

gtm-plan-for-investors

Builds the GTM story an investor can check, from engine-run numbers.

Design

E

market-sizing

Sizes TAM, SAM and SOM bottom-up, with SOM set by capacity rather than a share of the market.

Diagnose

E

marketing-maturity-assessment

Scores marketing as a system across six dimensions, and names the weak links to fix first for your stage.

Diagnose

messaging-framework

Structures the message hierarchy beneath the positioning.

Design

E

positioning-statement

Produces a positioning statement pressure-tested against the competitive alternative.

Design

E

pricing-and-packaging

Designs tiers with an anchor check and a willingness-to-pay read.

Design

E

pricing-page-teardown

Scores a pricing page on 21 buyer checks, and says whether a price test can answer the question at your traffic.

Diagnose

sales-led-vs-self-serve

Chooses self-serve, sales-led or a mix from the buyer and the unit economics, not from fashion.

Design

value-proposition

Sharpens the value proposition into something defensible.

Design

Research & Personas

Skill

What it does

Phase

E

customer-interview-synthesis

Turns coded interview notes into ranked patterns and anecdotes, and says whether you can stop interviewing.

Diagnose

E

customer-survey-design

Designs surveys that produce usable answers, with sample sizing and segments.

Diagnose

persona-builder

Builds personas from evidence rather than imagination.

Design

E

review-mining

Codes pasted reviews of you and your rivals into themes, switching reasons, feature asks and buyer language.

Diagnose

SEO, GEO & AEO

Skill

What it does

Phase

E

aaj-programmatic-seo

Models whether a template-page build pays back before anything gets written.

Design

E

agent-readiness-audit

Scores whether an AI agent buying for a customer can find, evaluate and transact with you.

Diagnose

E

ai-referral-share

Separates ChatGPT, Perplexity, Gemini and Copilot visits in a GA4 export, and says whether they really convert differently.

Diagnose

E

content-decay

Sorts a Search Console export into decaying, demand-drop, snippet-loss, rising and stable pages, and ranks what to refresh by clicks lost.

Diagnose

E

geo-citation-tracker

Measures whether AI engines name and cite you, and refuses to report noise as movement.

Execute

geo-content-optimization

Rewrites a page to maximise the chance an AI engine cites it.

Execute

E

search-demand-reader

Reads a Search Console Queries export by intent and topic, and names the demand you already appear for but do not yet win.

Diagnose

E

seo-content-brief

Produces a writer-ready brief: intent, answer block, entities, internal links.

Design

E

seo-geo-aeo-audit

Scores a page 0-100 across SEO, GEO and AEO, with fixes in priority order.

Diagnose

E

structured-data-for-ai-search

Maps schema types to pages, then checks each page's JSON-LD against Google's docs and the visible text.

Execute

Content & Copy

Skill

What it does

Phase

E

aaj-copywriting

Rewrites page copy to ladder to the positioning, scored on claim-defensibility.

Execute

E

ai-marketing-governance

Scores whether a team's AI use is governed, and refuses citations that cannot be checked.

Execute

E

brand-voice-definition

Derives the measurable half of a voice guide from writing you agree sounds right, as a checkable profile.

Design

E

brand-voice-governance

Checks content block by block against your own voice rules, with a pass/revise verdict.

Execute

E

case-study-and-proof

Scores whether proof would convince a sceptic, and whether you may publish it at all.

Execute

E

claims-and-proof-check

Flags every claim in your copy that needs proof or consent, sentence by sentence, with the regulator's own guidance.

Execute

E

comparison-pages

Builds vs and alternatives pages with sourced, dated rival facts, and checks they admit where the rival wins.

Execute

E

content-calendar-planning

Costs a content plan in hours against real capacity, and names what to cut.

Execute

content-repurposing

Turns one pillar asset into channel-adapted derivatives, reusing only what it says.

Execute

E

founder-led-content

Scores a founder's channel setup, and checks a post against the themes only they can write.

Execute

E

pr-and-earned-media

Scores a story before it is pitched, and aims it at twenty of the right people.

Execute

Conversion & Web

Skill

What it does

Phase

landing-page-brief

Specs a landing page before anyone designs it.

Execute

E

lead-magnet-and-free-tool-design

Scores lead-magnet and free-tool ideas on the job they do against build effort, and judges live ones on qualified leads.

Design

E

plg-upgrade-prompts

Reads each upgrade prompt's funnel with honest intervals and names the prompt and stage to fix first.

Diagnose

product-demo-strategy

Picks the demo format for each buying stage and keeps AI demos honest.

Design

E

signup-flow-optimizer

Scores signup friction and ranks what to remove by what it's worth.

Execute

E

website-conversion-audit

Audits a page for conversion friction and grades it.

Diagnose

Paid Media & Budgeting

Skill

What it does

Phase

E

ad-creative-testing

Sizes a creative test before it runs, and refuses to name a winner the data cannot back.

Execute

E

channel-selection-and-testing

Says how much to spend, and for how long, before judging a channel - and when to stop early.

Design

E

marketing-budget-planning

Sizes a marketing budget by stage, shows where each figure comes from, and splits it by function.

Design

E

paid-media-budget-allocation

Splits spend across channels to hit a CAC target, with diminishing returns modelled.

Design

E

paid-search-account-audit

Audits a search account against its own target: tracking, waste, starved winners, pages. Fixes ranked by spend.

Diagnose

Analytics & Experimentation

Skill

What it does

Phase

E

ab-test-significance

Checks whether an A/B result is significant, or sizes a test before you run it.

Execute

E

incrementality-and-mmm

Designs and reads holdout tests honestly, including whether they could ever have answered.

Diagnose

E

marketing-report

Turns funnel, spend and pipeline numbers into a board-ready narrative.

Execute

E

saas-growth-efficiency

Magic number, burn multiple, Rule of 40 and CAC payback, each read against its source's own words.

Diagnose

E

unit-economics

Computes LTV, CAC, payback and the ratio, then returns a verdict against named reference points.

Diagnose

Sales & Pipeline

Skill

What it does

Phase

E

aaj-sales-enablement

Audits sales assets against what each deal stage needs, and ranks what to build by the revenue being lost.

Execute

E

abm-program-design

Checks whether the team can run the account list and whether the list hits the number.

Design

E

buying-committee-map

Maps who must say yes, what each must believe, and who you cannot reach, then orders the next conversations.

Design

cold-email-sequence

Writes outbound sequences that survive a reply-rate audit.

Execute

discovery-call-framework

Structures discovery so the call qualifies rather than pitches.

Execute

E

lead-handoff-sla

Checks whether MQLs get worked on time, whether sales takes them, and whether the threshold is in the right place.

Execute

E

objection-handling

Builds responses to the objections that lose deals, and checks the battlecard before reps use it.

Design

E

pilot-to-contract

Plans a pilot backwards from the buyer's budget date, so a pilot that works becomes a contract.

Design

E

pipeline-and-forecast

Weights pipeline by stage and says whether coverage is real.

Execute

sales-process-design

Designs the stages and exit criteria a forecast can rely on.

Design

E

target-account-list

Scores and tiers accounts by ICP fit, showing the signals each matched.

Design

E

win-loss-analysis

Finds the Pareto of why deals are actually lost, by revenue.

Diagnose

Retention & Lifecycle

Skill

What it does

Phase

E

email-lifecycle-sequence

Maps which lifecycle sequences exist, checks send load, writes the missing ones.

Execute

E

lifecycle-and-retention

Computes churn, NRR, GRR and quick ratio, then diagnoses which one to fix.

Design

onboarding-activation

Defines the activation moment from data and finds where new users stall.

Execute

Growth, Retention & RevOps

Skill

What it does

Phase

E

aaj-marketing-loops

Computes the loop factor, finds the throttling stage, projects users over time.

Design

E

community-and-dark-social

Maps where buyers already talk, decides whether to open your own community, and measures dark social by asking.

Execute

E

creator-partnerships

Pays creators for the buyers they reach, not their follower count, and judges the result on what it sold.

Execute

developer-marketing

Treats docs and the first working call as the marketing, and measures it.

Design

E

first-marketing-hire

Writes the first marketer's scorecard, then scores the panel's evidence and calls hire, no-hire or more evidence.

Design

E

marketing-leadership-model

Prices in-house, fractional and agency with ramp, search time and your own hours, and says which shape fits.

Diagnose

E

partnerships-and-co-marketing

Scores partners on audience overlap rather than fame, and judges the result on pipeline.

Execute

E

product-launch

Tiers a launch, scores readiness on a twelve-item gate, and builds the dated work-back plan.

Execute

E

referral-program-design

Designs who to ask and what to reward, then prices referral against the CAC it replaces.

Design

E

webinar-and-event-programs

Sizes a webinar backwards from the pipeline it must create, and judges it on meetings and pipeline against cost.

Execute


Engines at a glance

Every runnable engine, and the command to try it:

Skill

Command

aaj-copywriting

node .agents/skills/aaj-copywriting/resources/copy-scorer.js --demo

aaj-marketing-loops

node .agents/skills/aaj-marketing-loops/resources/loop-model.js --demo

aaj-marketing-psychology

node .agents/skills/aaj-marketing-psychology/resources/pattern-check.js --demo

aaj-programmatic-seo

node .agents/skills/aaj-programmatic-seo/resources/pseo-model.js --demo

aaj-sales-enablement

node .agents/skills/aaj-sales-enablement/resources/enablement-audit.js --demo

ab-test-significance

node .agents/skills/ab-test-significance/resources/significance.js --demo

abm-program-design

node .agents/skills/abm-program-design/resources/abm-design.js --demo

ad-creative-testing

node .agents/skills/ad-creative-testing/resources/creative-test.js --demo

agent-readiness-audit

node .agents/skills/agent-readiness-audit/resources/agent-readiness.js --demo

ai-inference-pricing

node .agents/skills/ai-inference-pricing/resources/inference-pricing.js --demo

ai-marketing-governance

node .agents/skills/ai-marketing-governance/resources/ai-governance.js --demo

ai-referral-share

node .agents/skills/ai-referral-share/resources/ai-referral-share.js --demo

beachhead-segment-selection

node .agents/skills/beachhead-segment-selection/resources/beachhead-score.js --demo

brand-voice-definition

node .agents/skills/brand-voice-definition/resources/voice-derive.js --demo

brand-voice-governance

node .agents/skills/brand-voice-governance/resources/voice-check.js --demo

buying-committee-map

node .agents/skills/buying-committee-map/resources/buying-committee.js --demo

campaign-orchestrator

node .agents/skills/campaign-orchestrator/resources/decision-guides.js --demo

case-study-and-proof

node .agents/skills/case-study-and-proof/resources/proof-check.js --demo

channel-selection-and-testing

node .agents/skills/channel-selection-and-testing/resources/channel-test.js --demo

claims-and-proof-check

node .agents/skills/claims-and-proof-check/resources/claims-check.js --demo

community-and-dark-social

node .agents/skills/community-and-dark-social/resources/dark-social-read.js --demo

comparison-pages

node .agents/skills/comparison-pages/resources/comparison-check.js --demo

competitor-messaging-matrix

node .agents/skills/competitor-messaging-matrix/resources/messaging-matrix.js --demo

content-calendar-planning

node .agents/skills/content-calendar-planning/resources/calendar-engine.js --demo

content-decay

node .agents/skills/content-decay/resources/content-decay.js --demo

creator-partnerships

node .agents/skills/creator-partnerships/resources/creator-fit.js --demo

customer-interview-synthesis

node .agents/skills/customer-interview-synthesis/resources/interview-synthesis.js --demo

customer-survey-design

node .agents/skills/customer-survey-design/resources/survey-design.js --demo

email-lifecycle-sequence

node .agents/skills/email-lifecycle-sequence/resources/lifecycle-audit.js --demo

first-marketing-hire

node .agents/skills/first-marketing-hire/resources/hire-scorecard.js --demo

founder-led-content

node .agents/skills/founder-led-content/resources/founder-channel.js --demo

geo-citation-tracker

node .agents/skills/geo-citation-tracker/resources/citation-tracker.js --demo

incrementality-and-mmm

node .agents/skills/incrementality-and-mmm/resources/incrementality.js --demo

lead-handoff-sla

node .agents/skills/lead-handoff-sla/resources/handoff-sla.js --demo

lead-magnet-and-free-tool-design

node .agents/skills/lead-magnet-and-free-tool-design/resources/lead-magnet-fit.js --demo

lifecycle-and-retention

node .agents/skills/lifecycle-and-retention/resources/retention.js --demo

market-sizing

node .agents/skills/market-sizing/resources/market-size.js --demo

marketing-budget-planning

node .agents/skills/marketing-budget-planning/resources/budget-planner.js --demo

marketing-leadership-model

node .agents/skills/marketing-leadership-model/resources/leadership-model.js --demo

marketing-maturity-assessment

node .agents/skills/marketing-maturity-assessment/resources/maturity-assessment.js --demo

marketing-report

node .agents/skills/marketing-report/resources/marketing-report.js --demo

objection-handling

node .agents/skills/objection-handling/resources/battlecard.js --demo

paid-media-budget-allocation

node .agents/skills/paid-media-budget-allocation/resources/allocation-engine.js --demo

paid-search-account-audit

node .agents/skills/paid-search-account-audit/resources/search-audit.js --demo

partnerships-and-co-marketing

node .agents/skills/partnerships-and-co-marketing/resources/partner-fit.js --demo

pilot-to-contract

node .agents/skills/pilot-to-contract/resources/pilot-plan.js --demo

pipeline-and-forecast

node .agents/skills/pipeline-and-forecast/resources/forecast.js --demo

plg-upgrade-prompts

node .agents/skills/plg-upgrade-prompts/resources/upgrade-funnel.js --demo

positioning-statement

node .agents/skills/positioning-statement/resources/positioning.js --demo

pr-and-earned-media

node .agents/skills/pr-and-earned-media/resources/newsworthiness.js --demo

pricing-and-packaging

node .agents/skills/pricing-and-packaging/resources/price-packaging.js --demo

pricing-page-teardown

node .agents/skills/pricing-page-teardown/resources/pricing-teardown.js --demo

product-launch

node .agents/skills/product-launch/resources/launch.js --demo

referral-program-design

node .agents/skills/referral-program-design/resources/referral-economics.js --demo

review-mining

node .agents/skills/review-mining/resources/review-miner.js --demo

saas-growth-efficiency

node .agents/skills/saas-growth-efficiency/resources/growth-efficiency.js --demo

search-demand-reader

node .agents/skills/search-demand-reader/resources/search-demand.js --demo

seo-content-brief

node .agents/skills/seo-content-brief/resources/brief-check.js --demo

seo-geo-aeo-audit

node .agents/skills/seo-geo-aeo-audit/resources/score.js --demo

signup-flow-optimizer

node .agents/skills/signup-flow-optimizer/resources/friction-score.js --demo

structured-data-for-ai-search

node .agents/skills/structured-data-for-ai-search/resources/schema-check.js --demo

target-account-list

node .agents/skills/target-account-list/resources/score-accounts.js --demo

unit-economics

node .agents/skills/unit-economics/resources/unit-economics.js --demo

webinar-and-event-programs

node .agents/skills/webinar-and-event-programs/resources/event-program.js --demo

website-conversion-audit

node .agents/skills/website-conversion-audit/resources/score.js --demo

win-loss-analysis

node .agents/skills/win-loss-analysis/resources/win-loss.js --demo


Methodology

Every skill is tagged to a phase, and the ordering is deliberate — the catalog refuses to let you execute before you have diagnosed.

  • Diagnose (22 skills) — find out what is actually broken before choosing a fix.

  • Design (29 skills) — decide the approach, with the trade-offs stated.

  • Execute (30 skills) — build and ship it.

If you do not know where to start, campaign-orchestrator diagnoses which play applies and sequences the rest for you.

New to the catalog? Run brand-product-context first. It builds the shared brief every other skill reads.


Authoring & contributing

See AUTHORING_GUIDE.md for the standard every skill follows, and SKILL_TEMPLATE.md to start a new one.


Credits & license

MIT — use freely, commercially or otherwise.

Built by Saroj Jha / AAJ, a marketing consultancy for Seed–Series B startups. The Agent Skills spec and Corey Haines' coreyhaines31/marketingskills (MIT) were references for structure and topic coverage; all AAJ skills are independently written and grounded in AAJ's own tools and methodology.

Available Tools

5 tools
describe_engineDescribe an engine's inputsA
Read-onlyIdempotent
Inspect

Shows one engine's input schema: required fields, units, alternative shapes, and a worked example. Engines reject bad input rather than guessing.

NameRequiredDescriptionDefault
engineYesEngine id.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare this a read-only, idempotent, non-destructive, closed-world call, so the safety profile is covered. The description adds a genuinely useful behavioral trait not in the annotations: engines fail fast on invalid input rather than coercing or guessing, which tells the agent to treat the schema as strict.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, both load-bearing: the first front-loads what is returned, the second adds the fail-fast behavior. No filler, no restatement of the tool name or title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter, read-only lookup with no output schema, the description covers purpose, return content, and the validation behavior. It is nearly complete, lacking only a pointer that engine ids come from list_engines.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There is a single parameter ('engine') with 100% schema description coverage, so the schema already documents it as an engine id. The phrase 'one engine's input schema' confirms the parameter selects which schema is returned but adds no format or sourcing detail beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource — 'Shows one engine's input schema' — and enumerates what the output contains (required fields, units, alternative shapes, worked example). This clearly separates it from list_engines and run_engine, though it never names a sibling explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: the note 'Engines reject bad input rather than guessing' hints that this should be consulted before calling run_engine with unfamiliar arguments, but no explicit when-to-use instruction or alternative is offered. An agent can infer the workflow but must do the inference itself.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_skillGet a skill's methodA
Read-onlyIdempotent
Inspect

Returns the full method for one skill: when to use it, the steps, the quality bar, and how to run its engine if it has one.

NameRequiredDescriptionDefault
skillYesSkill slug.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish that this is a safe, idempotent read operation. The description adds useful context about the return payload, including steps, quality bar, and engine-run instructions when present, though it does not mention error behavior or missing-skill handling.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single well-formed sentence with no filler. The return contents are front-loaded and the description is appropriately sized for a simple lookup tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter read-only lookup with rich annotations and no output schema, the description adequately explains what the agent will receive. It could be slightly stronger by mentioning failure behavior for an unknown skill, but the core retrieval contract is clear.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the 'skill' slug parameter is fully documented in the schema. The description adds only the notion of 'one skill' and does not contribute additional format or constraint details beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: returns the full method for one skill. It clearly distinguishes itself from search_skills by specifying a single skill lookup and details the payload contents.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides no explicit when-to-use guidance or alternatives. The phrase 'when to use it' refers to the skill's own method content, not to when an agent should call get_skill rather than search_skills or run_engine.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_enginesList marketing enginesA
Read-onlyIdempotent
Inspect

Lists every AAJ marketing engine: its id, the question it answers, and its category. Engines cover unit economics, pipeline forecast, budget allocation, retention, A/B significance, SEO/GEO scoring, ad spend and pricing.

NameRequiredDescriptionDefault
categoryNoOptional filter. Words are matched against the engine's category, id and skill title (for example "pricing", "retention" or "seo audit"), then against its summary.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, closed-world and non-destructive, so the safety profile is covered. The description adds value beyond that by disclosing the shape of each returned entry (id, question, category) and the breadth of engine topics, 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, zero filler, with the core purpose and returned fields front-loaded ahead of the topical coverage list. Every clause carries information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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 compensates by naming the fields each engine entry carries and the categories covered. It omits pagination, result counts, and whether engines can be unavailable/disabled, but it is otherwise sufficient for a zero-required-parameter read tool whose annotations cover safety.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the single optional 'category' parameter is thoroughly documented there, including the matching behavior and fallback to summary. The description adds nothing about the parameter, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Lists every AAJ marketing engine') and enumerates the fields returned (id, question, category) plus the domain coverage. It implicitly distinguishes itself from run_engine/describe_engine by being the enumeration endpoint, but never names a sibling explicitly, so it falls short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: an agent can infer this is the discovery call to make before describe_engine or run_engine, but the description never says when to use it, when not to, or what alternative exists. No prerequisites or sequencing guidance is given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_engineRun a marketing engineA
Read-onlyIdempotent
Inspect

Runs an AAJ engine and returns its verdict. Give input as an object of the engine's fields. Omit input to run the engine's built-in worked example. Engines are deterministic, offline, and validate their input — a wrong unit is reported as an error, not absorbed into a confident answer.

NameRequiredDescriptionDefault
inputNoThe engine's configuration object. Some engines also accept a named mode as a plain string (for example 'design' or 'readout'). Omit for the demo.
engineYesEngine id.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish the safety profile (readOnly, idempotent, non-destructive, closed-world), yet the description still adds real value: deterministic execution, offline operation, and input validation that surfaces unit errors instead of masking them. It stops short of describing error or verdict shape, so a 4 rather than a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences, zero filler, with the core action and the demo shortcut front-loaded. Each sentence contributes a distinct fact: what it does, how to call it, and how it behaves on bad input.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With only two parameters, no output schema, and full schema coverage, the description supplies the missing behavioral context (determinism, offline, validation). It does not clarify what a 'verdict' contains, but the absence of an output schema makes that gap modest.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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, including the string-mode variant for `input`. The description restates that `input` is an object of the engine's fields and can be omitted, adding little beyond the schema; baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: "Runs an AAJ engine and returns its verdict." That is clearly distinguishable from describe_engine and list_engines, which inspect rather than execute. It does not name those siblings explicitly, which keeps it just short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives concrete usage conditions: pass `input` for a configured run, omit it to invoke the built-in worked example. There is no explicit when-not guidance or pointer to describe_engine/list_engines for discovering engine ids, so the routing decision is only partly covered.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_skillsFind a marketing skillA
Read-onlyIdempotent
Inspect

Finds AAJ marketing skills by the problem they solve — 'churn is rising', 'we're launching next month', 'not showing up in AI answers'. Returns matching methods and marks which have a runnable engine.

NameRequiredDescriptionDefault
limitNoMax results, default 8.
queryYesThe problem, in plain words.

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, not open-world). The description adds genuinely useful behavioral context by describing the return: matching methods marked with whether a runnable engine exists, which is meaningful given no output schema exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose, then a compact return clause; the quoted problem examples are illustrative rather than filler and earn their place. No wasted sentences.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter search tool with full schema coverage and no output schema, the description supplies enough: what it searches, what it returns, and how to phrase input. Only the absence of explicit sibling routing keeps it from being fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both the query and limit parameters are already documented. The description reinforces the query semantics ('the problem, in plain words') but adds no syntax or constraint detail beyond the schema; baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Finds') plus resource ('AAJ marketing skills') and a distinguishing mechanism ('by the problem they solve') with concrete query examples. It reads clearly as a semantic search rather than a list/lookup, though it doesn't explicitly name the siblings it differs from.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the problem-phrased query examples — an agent can infer it's for phrasing a need in plain words. However, there is no explicit when-to-use/when-not statement and no routing to alternatives like list_engines or get_skill.

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.

  1. 5 tool updatesv0.1.0
    • First observeddescribe_engine
    • First observedget_skill
    • First observedlist_engines
    • First observedrun_engine
    • First observedsearch_skills

TDQS

A4/5.0

Scored across 5 tools

Disambiguation4/5

Each tool has a distinct role: list/search for discovery, get_skill/describe_engine for detail, run_engine for execution. The only mild friction is the two overlapping entity layers (skills vs. engines) — get_skill mentions running an engine while describe_engine shows the engine schema — but the verb distinguishes intent clearly enough.

Naming Consistency5/5

All five tools follow a strict verb_noun snake_case pattern (run_engine, search_skills, get_skill, list_engines, describe_engine). The convention is applied uniformly with no deviations in casing or style.

Tool Count5/5

Five tools is well-scoped for a server exposing two related entity types: discovery (list_engines, search_skills), detail (get_skill, describe_engine), and execution (run_engine). No tool feels redundant, and none is missing at this granularity.

Completeness4/5

The lifecycle is largely covered: find skills, inspect a skill, list/describe/run engines. Minor gaps exist — no plain 'list all skills' without a problem query, and no batch or multi-engine run — but these are workable around since skills are discoverable via search_skills.

Maintenance

ActivityActive
ResponsivenessUnresponsive

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    63 deterministic quant computation tools for autonomous financial agents. Options pricing, derivatives, risk metrics, portfolio optimization, statistics, crypto/DeFi, macro/FX, time value of money. 1,000 free calls/day, no signup required.
    74
    13
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides accurate SaaS metrics calculations (LTV, CAC, runway, health score, etc.) with formulas and interpretations for AI agents and founders, ensuring no hallucinated numbers.
    MIT