Moltline Outbound Engine

7 outreach, sequencing, call-coaching and CRM-hygiene skill products. 6 of 8 free.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
89%
Naming quality
93%
Poisoning risk
80%
Permission match
100%
Protocol compliance
100%

Findings (2)

  • HIGHTool poisoning patterns detected
  • MEDIUMTool description contains URL to non-standard domainin utm_builder

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~2,687Tokens (tool definitions)
~1.1 KBTypical response size
Significant attention impact (2.10% 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": {
    "outbound": {
      "url": "https://mcp.moltlinestudio.com/outbound"
    }
  }
}

Remote endpoints

https://mcp.moltlinestudio.com/outboundstreamable-http

What it can do

Tool inventory

Tools (8)

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

List the 7 outbound products with their included skills. FREE. Takes no arguments. Returns a list of product objects, each {"slug": "linkedin-outreach", "name": ..., "tagline": ..., "skills": ["Skill A", ...], "free_skill": "Gateway Skill Name"}. Use the returned slug values with get_free_skill, get_full_product, or get_full_skill. Returns metadata only - no persona text and no skill instructions. Use when the caller wants to see what this server covers. Not for keyword search across the whole 138-product catalog, which the catalog server's search_catalog does, and not for instructions the caller can act on (get_free_skill). Errors: on invalid, missing, or malformed input this tool never raises a protocol error; it returns {"error": "<what is wrong and how to fix it>"}. Every call is read-only and idempotent, so after correcting the input it is always safe to retry.

Input Schema

{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "result": {
      "items": {
        "additionalProperties": true,
        "type": "object"
      },
      "type": "array"
    }
  },
  "required": [
    "result"
  ],
  "x-fastmcp-wrap-result": true
}
🟢get_free_skill(slug)

Load a product's free gateway skill with its complete instructions. FREE. Typical input {"slug": "linkedin-outreach"} returns {"slug": ..., "skill": "<skill name>", "instructions": "<full skill text>"}. Returns exactly one skill - the product's free gateway skill - chosen automatically from the slug, with no plan required. Use when the caller wants usable instructions immediately. Not for the product's other skills: those are named and need get_full_skill with a skill_name, which requires a paid plan. Errors: on invalid, missing, or malformed input this tool never raises a protocol error; it returns {"error": "<what is wrong and how to fix it>"} (for example {"error": "unknown slug '<value>'. Use list_products."}). Every call is read-only and idempotent, so after correcting the input it is always safe to retry.

Input Schema

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "description": "Product slug exactly as returned by list_products,\ne.g. \"linkedin-outreach\"."
    }
  },
  "required": [
    "slug"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "additionalProperties": true
}
🟢audit_copy(subject, body)

Audit outreach copy for spam triggers and deliverability risks. FREE. Checks spam-trigger phrases, length, structure, caps, links, and personalization signals. Typical input {"subject": "Quick question", "body": "<email text>"} returns {"score": 0-100, "findings": ["Spam-trigger phrases: ...", "Long for cold outreach (200 words; aim 50-125)"], "note": "..."}. Use on the body of an outreach message. Not for the subject line alone (subject_line_scorer) and not for the send schedule (sequence_planner). Errors: on invalid, missing, or malformed input this tool never raises a protocol error; it returns {"error": "<what is wrong and how to fix it>"}. Every call is read-only and idempotent, so after correcting the input it is always safe to retry.

Input Schema

{
  "type": "object",
  "properties": {
    "subject": {
      "default": "",
      "type": "string",
      "description": "The email subject line; may be empty when auditing body\ncopy alone."
    },
    "body": {
      "default": "",
      "type": "string",
      "description": "The email body text to audit."
    }
  },
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "additionalProperties": true
}
🟢get_full_product(slug)

Load one product in full: its persona plus every paid skill. PREMIUM (license). Typical input {"slug": "linkedin-outreach"} returns {"slug": ..., "name": ..., "persona": "<persona text>", "skills": [{"name": ..., "instructions": ...}, ...], "free_skill": {...}}. Returns persona plus every skill for one product. Use when the caller wants the whole product. Not for a single skill (get_full_skill) and not for a free look, which list_products and get_free_skill provide with no plan. Errors: on invalid, missing, or malformed input this tool never raises a protocol error; it returns {"error": "<what is wrong and how to fix it>"} (for example {"error": "unknown slug '<value>'"}). Every call is read-only and idempotent, so after correcting the input it is always safe to retry.

Input Schema

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "description": "Product slug exactly as returned by list_products,\ne.g. \"linkedin-outreach\"."
    }
  },
  "required": [
    "slug"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "additionalProperties": true
}
🟢get_full_skill(slug, skill_name)

Load one paid skill's complete instructions from a product. PREMIUM (license). Typical input {"slug": "linkedin-outreach", "skill_name": "Connection Openers"} returns {"slug": ..., "skill": ..., "instructions": "<full skill text>"}. Returns one named skill, selected by skill_name. Use when the caller wants one specific paid skill. Not for the free gateway skill, which get_free_skill returns with no plan, and not for every skill at once (get_full_product). Errors: on invalid, missing, or malformed input this tool never raises a protocol error; it returns {"error": "<what is wrong and how to fix it>"} (for example {"error": "unknown slug '<value>'"}). Every call is read-only and idempotent, so after correcting the input it is always safe to retry.

Input Schema

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "description": "Product slug exactly as returned by list_products."
    },
    "skill_name": {
      "type": "string",
      "description": "Exact skill name as listed in that product's \"skills\"\narray from list_products."
    }
  },
  "required": [
    "slug",
    "skill_name"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "additionalProperties": true
}
🟢sequence_planner(touches, days, channels)

Plan an outreach cadence with expanding gaps and per-touch purposes. FREE. Spaces N touches across D days, alternating channels. Typical input {"touches": 5, "days": 14, "channels": ["email", "linkedin"]} returns {"days": 14, "plan": [{"touch": 1, "day": 0, "channel": "email", "purpose": "open with a specific, researched reason"}, ...], "rule": "..."}. Use when cadence and per-touch purpose are the question. Not for the wording of any single message (audit_copy). Errors: on invalid, missing, or malformed input this tool never raises a protocol error; it returns {"error": "<what is wrong and how to fix it>"}. Every call is read-only and idempotent, so after correcting the input it is always safe to retry.

Input Schema

{
  "type": "object",
  "properties": {
    "touches": {
      "default": 5,
      "type": "integer",
      "description": "Number of touches in the sequence; values outside 2-10\nare clamped. Default 5."
    },
    "days": {
      "default": 14,
      "type": "integer",
      "description": "Total span of the sequence in days; values outside 1-365 are\nclamped. Default 14."
    },
    "channels": {
      "default": [
        "email",
        "linkedin"
      ],
      "items": {
        "type": "string"
      },
      "type": "array",
      "description": "Channel names to alternate through in order, e.g.\n[\"email\", \"linkedin\", \"phone\"]. Default [\"email\", \"linkedin\"]."
    }
  },
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "additionalProperties": true
}
🟢subject_line_scorer(subjects)

Score and rank up to 20 email subject lines, best first. FREE. Scores 0-100 on length, spam triggers, caps, personalization merge fields, and curiosity cues. Typical input {"subjects": ["Quick question about {{company}}", "ACT NOW!!!"]} returns {"ranked": [{"subject": ..., "score": 92, "notes": ["personalized (+)", "question format"]}, ...]}. Use when several subject lines need ranking against deliverability and curiosity signals. Not for article headlines, which the creator server's headline_analyzer ranks, and not for message bodies (audit_copy). Errors: on invalid, missing, or malformed input this tool never raises a protocol error; it returns {"error": "<what is wrong and how to fix it>"}. Every call is read-only and idempotent, so after correcting the input it is always safe to retry.

Input Schema

{
  "type": "object",
  "properties": {
    "subjects": {
      "items": {
        "type": "string"
      },
      "type": "array",
      "description": "List of candidate subject lines as plain strings; only\nthe first 20 are scored."
    }
  },
  "required": [
    "subjects"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "additionalProperties": true
}
🟢utm_builder(url, source, medium, campaign, content, ...)

Build a UTM-tagged URL for campaign tracking. FREE. Typical input {"url": "https://example.com/pricing", "source": "newsletter", "medium": "email", "campaign": "spring-launch"} returns {"tagged_url": "https://example.com/pricing?utm_source=newsletter& utm_medium=email&utm_campaign=spring-launch"}. Use to build one tagged tracking URL. Not for analyzing campaign results and not for anything that belongs in the message body (audit_copy). Errors: on invalid, missing, or malformed input this tool never raises a protocol error; it returns {"error": "<what is wrong and how to fix it>"} (for example {"error": "url must start with http(s)://"}). Every call is read-only and idempotent, so after correcting the input it is always safe to retry.

Input Schema

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "description": "Destination URL; must start with http:// or https://."
    },
    "source": {
      "type": "string",
      "description": "utm_source value, where the traffic comes from,\ne.g. \"newsletter\"."
    },
    "medium": {
      "type": "string",
      "description": "utm_medium value, the channel, e.g. \"email\" or \"cpc\"."
    },
    "campaign": {
      "type": "string",
      "description": "utm_campaign value, the campaign name,\ne.g. \"spring-launch\"."
    },
    "content": {
      "default": "",
      "type": "string",
      "description": "Optional utm_content value for A/B variants."
    },
    "term": {
      "default": "",
      "type": "string",
      "description": "Optional utm_term value for paid keywords."
    }
  },
  "required": [
    "url",
    "source",
    "medium",
    "campaign"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "additionalProperties": true
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded8 tools
verifiedversion not recorded8 tools
verifiedversion not recorded8 tools
verifiedversion not recorded8 tools
verifiedversion not recorded8 tools
verifiedversion not recorded8 tools