HTML Email Playbook

Teaches AI to write HTML email that renders in Outlook, Gmail, and Apple Mail. 19 rules, 6 comps.

Should I use this

Quality & Safety

B
Description quality
95%
Schema completeness
65%
Naming quality
100%
Poisoning risk
80%
Permission match
100%
Protocol compliance
100%

Findings (3)

  • HIGHTool poisoning patterns detected
  • MEDIUMTool 'get_component' description contains placeholder textin get_component
  • INFOTool description contains placeholder or incomplete textin get_component

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~446Tokens (tool definitions)
~456 BTypical response size
Minimal attention impact (0.35% 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": {
    "email-playbook-mcp": {
      "command": "npx",
      "args": [
        "email-playbook-mcp"
      ]
    }
  }
}

Runnable packages

npmemail-playbook-mcp0.6.3stdio

Remote endpoints

https://docs.osamahassouna.com/api/mcpstreamable-http

What it can do

Tool inventory

Tools (4)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢list_categories

List all rule categories in the Email Playbook with a one-line description and page count. Categories are: structure (head/body container/header/body/footer), compatibility (Outlook MSO, RTL, responsive), production (Gmail clipping, dark mode, preheader, bulletproof buttons), ai-generation (constraints for AI emitters). For reusable components, use list_components instead — they live in a separate dimension and are not returned by get_playbook_rules.

Input Schema

{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
🟢get_playbook_rules(category)

Return the full rule pages for a given category. Each rule includes the title, description, markdown body explaining the rule, and any HTML/CSS code examples from the playbook. Use this to teach a model the exact patterns for a specific concern (e.g., responsive layout).

Input Schema

{
  "type": "object",
  "properties": {
    "category": {
      "type": "string",
      "enum": [
        "ai-generation",
        "compatibility",
        "production",
        "structure"
      ],
      "description": "Which rule category to fetch."
    }
  },
  "required": [
    "category"
  ],
  "additionalProperties": false
}
🟢list_components

List all reusable email components in the playbook with their metadata: name, subcategory (layout/media/interactive/text), description, whether they require Outlook VML, and whether they are responsive. Use this first to discover what components exist before calling get_component.

Input Schema

{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
🟢get_component(name)

Return the full record for a single component: title, description, narrative body, the primary HTML pattern, list of slots (placeholders the model should fill), VML/responsive flags, and all code examples. Use after list_components to fetch the actual HTML pattern to paste into an email.

Input Schema

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "enum": [
        "background-images",
        "buttons",
        "images",
        "inline-icon",
        "spacing",
        "text"
      ],
      "description": "Component name. Get the list from list_components first."
    }
  },
  "required": [
    "name"
  ],
  "additionalProperties": false
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded4 tools
verifiedversion not recorded4 tools
verifiedversion not recorded4 tools