AAJ Marketing Engines

Deterministic marketing math for AI agents: LTV:CAC, pipeline coverage, A/B tests, pricing.

Should I use this

Quality & Safety

A
Description quality
92%
Schema completeness
98%
Naming quality
96%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~670Tokens (tool definitions)
~679 BTypical response size
Moderate attention impact (0.52% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "aaj-engines": {
      "url": "https://aaj-engines-mcp.sarojkjha10.workers.dev/mcp"
    }
  }
}

Remote endpoints

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

What it can do

Tool inventory

Tools (5)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢list_engines(category)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "category": {
      "type": "string",
      "description": "Optional filter. Words are matched against the engine's category, id and skill title (for example \"pricing\", \"retention\" or \"seo audit\"), then against its summary."
    }
  },
  "additionalProperties": false
}
🟢describe_engine(engine)

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

Input Schema

{
  "type": "object",
  "properties": {
    "engine": {
      "type": "string",
      "description": "Engine id."
    }
  },
  "required": [
    "engine"
  ],
  "additionalProperties": false
}
🟢run_engine(engine, input)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "engine": {
      "type": "string",
      "description": "Engine id."
    },
    "input": {
      "type": [
        "object",
        "string"
      ],
      "description": "The engine's configuration object. Some engines also accept a named mode as a plain string (for example 'design' or 'readout'). Omit for the demo."
    }
  },
  "required": [
    "engine"
  ],
  "additionalProperties": false
}
🟢search_skills(query, limit)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "The problem, in plain words."
    },
    "limit": {
      "type": "integer",
      "description": "Max results, default 8.",
      "minimum": 1,
      "maximum": 73
    }
  },
  "required": [
    "query"
  ],
  "additionalProperties": false
}
🟢get_skill(skill)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "skill": {
      "type": "string",
      "description": "Skill slug."
    }
  },
  "required": [
    "skill"
  ],
  "additionalProperties": false
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded5 tools