AAJ Marketing Engines
Server Details
Deterministic marketing math for AI agents: LTV:CAC, pipeline coverage, A/B tests, pricing.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
- Repository
- sarojkjha/aaj-marketing-skills
- GitHub Stars
- 0
TDQS
Scored across 5 tools
The set splits cleanly into two resources — engines (describe_engine, list_engines, run_engine) and skills (get_skill, search_skills) — with distinct actions for each. The descriptions explicitly signal ordering (list first, describe before run), so an agent can tell browse/detail/execute apart without confusion.
All five tools use a consistent snake_case verb_noun pattern (describe_engine, get_skill, list_engines, run_engine, search_skills). Verbs are standard and predictable, and the noun matches the resource family every time.
Five tools is well-scoped for a server covering two resource types, giving each the operations it needs (list/describe/run for engines, get/search for skills). No redundant or speculative tools are included.
Engine coverage is complete (list, describe, run), but the skills side lacks an explicit list_skills equivalent, so enumerating all skills depends on search_skills alone. This is a minor gap an agent can work around via search.
Available Tools
5 toolsdescribe_engineAInspect
Show one engine's input schema: required fields, units, alternative shapes, and a worked example. Always call this before run_engine unless you already know the schema — the engines reject bad input rather than guessing.
| Name | Required | Description | Default |
|---|---|---|---|
| engine | Yes | Engine id from list_engines. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It discloses what the tool returns and the important consequence that engines reject bad input, but it does not explicitly state that the operation is read-only or free of side effects, nor does it describe any auth or rate-limit behavior.
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 two tightly written sentences with zero waste. The core action and return contents are front-loaded, followed by the critical usage rule and rationale.
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 simple one-parameter introspection tool with no output schema and no annotations, the description covers purpose, return contents, and the key usage relationship with run_engine. Nothing an agent needs in order to call it correctly appears to be 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 description coverage is 100%, so the single 'engine' parameter is already fully documented in the schema as an engine id from list_engines. The description adds no additional syntax or format details about the parameter, so the baseline of 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?
The description states a specific verb ('Show') and resource ('one engine's input schema'), and enumerates the contents returned: required fields, units, alternative shapes, and a worked example. It also distinguishes this introspection tool from run_engine, making its role clear 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?
It gives explicit when-to-use guidance: 'Always call this before run_engine unless you already know the schema.' It also provides the when-not condition (already knowing the schema) and the rationale (engines reject bad input rather than guessing), leaving nothing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_skillAInspect
Return 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.
| Name | Required | Description | Default |
|---|---|---|---|
| skill | Yes | Skill slug from search_skills. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well by disclosing the return payload structure and the conditional nature of engine instructions ('if it has one'). It does not mention behavior for an invalid/unknown slug, which is the main remaining gap for a lookup tool.
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?
One front-loaded sentence that lists the returned components after the action, with zero filler. Every clause carries information an agent needs.
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 simple one-parameter read tool with no output schema, describing the returned sections effectively substitutes for a return-value spec. Only failure handling for a bad slug is left unspecified.
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 single parameter is already documented as a 'Skill slug from search_skills'. The description adds no format or validation detail beyond that, making the baseline 3 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 (Return) and resource (full method for one skill), then enumerates the payload contents: when to use it, steps, quality bar, engine instructions. This clearly separates it from discovery-oriented siblings, though it never names search_skills explicitly in the description itself.
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?
Usage is only implied: the schema's parameter note ('Skill slug from search_skills') indicates the workflow is search-then-fetch. There is no explicit when-to-use statement or exclusion of alternatives like describe_engine in the description text.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_enginesAInspect
List every AAJ marketing engine that can be run: id, what question it answers, and its category. Call this first when you need to compute something (unit economics, pipeline forecast, budget allocation, retention, A/B significance, SEO/GEO score, ad spend, pricing) rather than estimate it.
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | 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. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that this is a broad read of every runnable engine and what fields come back, which signals a safe, non-mutating catalog call, but it says nothing about filtering behavior, result size, or pagination for large catalogs. Adequate but thin for a tool with zero annotation coverage.
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?
Two sentences with the resource listed first and the usage guidance second, which is the right front-loading. The long parenthetical of compute categories is the only drag, but each item serves as a realistic trigger example 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?
With no output schema, the description helpfully enumerates the returned fields (id, question, category), and the 1-param, non-nested schema makes the rest self-explanatory. It stops short of explaining the natural next step (feed an id into describe_engine/run_engine), leaving that to inference from 'call this first'.
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%, and the single optional 'category' filter is fully documented in the schema, including its fuzzy matching against category/id/skill title and summary. The description adds no parameter-level detail beyond the schema, so the baseline of 3 is correct; it does mention 'category' as a returned field, which is a mild but benign ambiguity against the filter param.
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 (list engines) and spells out exactly what each entry contains (id, the question it answers, category). The 'call this first' framing positions it clearly as the discovery entry point distinct from describe_engine/run_engine, so an agent can place it in the workflow 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?
Explicitly says when to call it ('when you need to compute something ... rather than estimate it') and backs that with concrete trigger examples spanning unit economics, forecasting, SEO scoring, and pricing. It implies 'don't estimate' as the exclusion, but does not name the follow-up siblings (run_engine, describe_engine) as alternatives, so it stops just short of the top score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_engineAInspect
Run an AAJ engine and return its verdict. Pass 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.
| Name | Required | Description | Default |
|---|---|---|---|
| input | No | The engine's configuration object. Some engines also accept a named mode as a plain string (for example 'design' or 'readout') — describe_engine says which. Omit for the demo. | |
| engine | Yes | Engine id from list_engines. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it delivers meaningful traits: engines are deterministic and offline (implying no side effects), they validate input, and a wrong unit surfaces as an error rather than being silently absorbed. This is exactly the kind of behavioral context an agent needs to trust the output. It stops short of stating permissions, side effects explicitly, or the shape of error responses.
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 tight sentences, front-loaded with the primary action and verdict, followed by the optional-input behavior and a behavioral caveat. Every sentence earns its place with 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?
There is no output schema and no annotations, so the description should carry more of the return/error burden. 'Return its verdict' plus the error-on-wrong-unit note hints at the response, but the verdict's structure and the error shape are undefined, leaving a gap for a tool whose entire purpose is producing output.
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, including that `input` may be an object or a named mode string. The description largely restates this ('Pass `input` as an object of the engine's fields', 'Omit `input`...') with little added syntax or format detail, so the baseline of 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: 'Run an AAJ engine and return its verdict.' The agent knows this executes an engine and produces a result, which is clearly distinct from list_engines/describe_engine by implication. However, the description itself never names the sibling tools, so the differentiation must be inferred from the schema's mention of 'list_engines' and 'describe_engine'.
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 in-tool guidance for the two modes of `input` (provide config vs omit for the built-in worked example), which is genuinely useful. But it offers no explicit when-to-use guidance relative to alternatives like describe_engine (to learn an engine's modes) or list_engines (to discover ids), leaving the agent to infer the workflow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_skillsBInspect
Find AAJ marketing skills by the problem they solve — 'churn is rising', 'we're launching next month', 'not showing up in AI answers'. Returns the method to follow, and says which skills have a runnable engine.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results, default 8. | |
| query | Yes | The problem, in plain words. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses return content ("the method to follow" and which skills have a runnable engine), which is useful, but says nothing about safety profile, auth, or result-count behavior beyond what the schema states.
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?
Two compact sentences with the core action front-loaded, and examples placed inline. Slightly dense but no wasted 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?
No output schema, so the description must describe returns; it does so briefly. For a discovery tool with full param coverage, this is adequate but leaves return format and result ordering 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 both parameters (query as "the problem, in plain words", limit as max results). The examples illustrate query phrasing but add little beyond the schema's own wording; 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 ("Find AAJ marketing skills") with a clear scoping mechanism ("by the problem they solve") and three concrete example queries. It's easy to distinguish from list_engines/run_engine, though it doesn't explicitly name a sibling alternative.
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 example problem-phrasings ("churn is rising", "we're launching next month") strongly imply when to reach for this tool, but there is no explicit when-not guidance or named alternative such as get_skill for retrieving a known 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 tool update
- Changed
list_engines1 field changed- changed
Input schema / properties / category / descriptionPrevious value: -"Optional filter, matched loosely against the engine's category."New value: +"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."
5 tool updates
- First observed
describe_engine - First observed
get_skill - First observed
list_engines - First observed
run_engine - First observed
search_skills
Publisher details
- Operator
- AAJ · Publisher source
- Operator website
- https://aajconsult.com · Publisher source
- Vendor relationship
- Not available
- Documentation
- https://aajconsult.com
- Trust center
- https://aajconsult.com
- Restrictions
- Not applicable
Related MCP Connectors
Deterministic what-if & scenario simulation for AI agents: projections, sensitivity & break-even.
AI marketing agent for Google Ads, Meta, GA4, TikTok, LinkedIn, Shopify, HubSpot and more.
The hidden intelligence for AI marketing agents. Real campaign data, not LLM guesses.
How to market a product to AI agents: readiness, placement, measurement, 7-day trial.
Related MCP Servers
- FlicenseNot gradedqualityBmaintenanceA performance marketer's verdict for AI agents — four tools that return a deterministic run / fix_first / kill call on ad creative, campaign structure, targeting, and live performance, so your agent only ships ads worth the spend.-
- FlicenseNot gradedqualityCmaintenanceProvides accurate SaaS metrics calculations (LTV, CAC, runway, health score, etc.) with formulas and interpretations for AI agents and founders, ensuring no hallucinated numbers.-
- FlicenseNot gradedqualityCmaintenanceEnables precise financial analysis of AI agent costs, including token pricing, multi-step run estimates, model comparison, and ROI versus human labor, with deterministic decimal math.-

genpark-creator-paidofficial
FlicenseNot gradedqualityBmaintenanceEnables modeling and synthesis of creator paid amplification ROI, spark ads performance, and whitelisted return on ad spend (ROAS) for influencer marketing campaigns. It provides deterministic, zero-dependency calculations through MCP for use by AI agents and automation workflows.8-
Glama MCP Gateway
Add one secure layer between your agents and this server.