{"name":"moltline-outbound","description":"Moltline's Outbound Engine: 7 sales-outreach persona/skill products (LinkedIn outreach, follow-ups, multi-channel sequencing, call coaching, deliverability, closing copy, CRM hygiene). Free: list_products, get_free_skill, audit_copy. Premium: get_full_product, get_full_skill.","url":"https://mcp.moltlinestudio.com/outbound","transport":"streamable-http","homepage":"https://moltlinestudio.com/servers.html","serverInfo":{"name":"moltline-outbound","version":"1.1.0"},"toolCounts":{"total":8,"free":6,"premium":2},"protocolVersion":"2025-11-25","protocolVersions":["2024-11-05","2025-03-26","2025-06-18","2025-11-25"],"pricing":{"freeTier":{"tools":6,"price":"0","currency":"USD","description":"Free forever. No account, no registration and no credentials are required to call them."},"details":"https://moltlinestudio.com/.well-known/pricing","terms":"https://moltlinestudio.com/terms.html","agentPayment":{"protocol":"x402","resource":"https://moltlinestudio.com/api","network":"eip155:8453","asset":"USDC","amount":"19000000","discovery":"https://moltlinestudio.com/.well-known/x402","description":"GET or POST the resource to receive an HTTP 402 carrying a machine-readable payment demand; retry with the transaction hash in the X-PAYMENT header and the licence key is returned in the response."},"premium":{"tools":2,"plan":"All-Access","price":"19.00","currency":"USD","period":"month","description":"One licence key unlocks the premium tools on every Moltline server. Billed monthly, cancellable at any time.","purchaseUrl":"https://moltlinestudio.com/#allaccess"}},"authentication":{"required":false},"tools":[{"name":"list_products","description":"List the 7 outbound products with their included skills. FREE.\n\nTakes no arguments. Returns a list of product objects, each {\"slug\":\n\"linkedin-outreach\", \"name\": ..., \"tagline\": ..., \"skills\": [\"Skill\nA\", ...], \"free_skill\": \"Gateway Skill Name\"}. Use the returned slug\nvalues with get_free_skill, get_full_product, or get_full_skill.\n\nReturns metadata only - no persona text and no skill instructions. Use\nwhen the caller wants to see what this server covers. Not for keyword\nsearch across the whole 138-product catalog, which the catalog server's\nsearch_catalog does, and not for instructions the caller can act on\n(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.","tier":"free","inputSchema":{"additionalProperties":false,"properties":{},"type":"object"}},{"name":"get_free_skill","description":"Load a product's free gateway skill with its complete instructions. FREE.\n\nTypical input {\"slug\": \"linkedin-outreach\"} returns {\"slug\": ...,\n\"skill\": \"<skill name>\", \"instructions\": \"<full skill text>\"}.\n\nReturns exactly one skill - the product's free gateway skill - chosen\nautomatically from the slug, with no plan required. Use when the caller\nwants usable instructions immediately. Not for the product's other skills:\nthose are named and need get_full_skill with a skill_name, which requires\na 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.","tier":"free","inputSchema":{"additionalProperties":false,"properties":{"slug":{"type":"string","description":"Product slug exactly as returned by list_products,\ne.g. \"linkedin-outreach\"."}},"required":["slug"],"type":"object"}},{"name":"audit_copy","description":"Audit outreach copy for spam triggers and deliverability risks. FREE.\n\nChecks spam-trigger phrases, length, structure, caps, links, and\npersonalization signals. Typical input {\"subject\": \"Quick question\",\n\"body\": \"<email text>\"} returns {\"score\": 0-100, \"findings\":\n[\"Spam-trigger phrases: ...\", \"Long for cold outreach (200 words; aim\n50-125)\"], \"note\": \"...\"}.\n\nUse on the body of an outreach message. Not for the subject line alone\n(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.","tier":"free","inputSchema":{"additionalProperties":false,"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."}},"type":"object"}},{"name":"get_full_product","description":"Load one product in full: its persona plus every paid skill. PREMIUM (license).\n\nTypical input {\"slug\": \"linkedin-outreach\"} returns {\"slug\": ...,\n\"name\": ..., \"persona\": \"<persona text>\", \"skills\": [{\"name\": ...,\n\"instructions\": ...}, ...], \"free_skill\": {...}}.\n\nReturns persona plus every skill for one product. Use when the caller\nwants the whole product. Not for a single skill (get_full_skill) and not\nfor a free look, which list_products and get_free_skill provide with no\nplan. 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.","tier":"premium","inputSchema":{"additionalProperties":false,"properties":{"slug":{"type":"string","description":"Product slug exactly as returned by list_products,\ne.g. \"linkedin-outreach\"."}},"required":["slug"],"type":"object"}},{"name":"get_full_skill","description":"Load one paid skill's complete instructions from a product. PREMIUM (license).\n\nTypical input {\"slug\": \"linkedin-outreach\", \"skill_name\": \"Connection\nOpeners\"} returns {\"slug\": ..., \"skill\": ..., \"instructions\": \"<full\nskill text>\"}.\n\nReturns one named skill, selected by skill_name. Use when the caller wants\none specific paid skill. Not for the free gateway skill, which\nget_free_skill returns with no plan, and not for every skill at once\n(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.","tier":"premium","inputSchema":{"additionalProperties":false,"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"],"type":"object"}},{"name":"sequence_planner","description":"Plan an outreach cadence with expanding gaps and per-touch purposes. FREE.\n\nSpaces N touches across D days, alternating channels. Typical input\n{\"touches\": 5, \"days\": 14, \"channels\": [\"email\", \"linkedin\"]} returns\n{\"days\": 14, \"plan\": [{\"touch\": 1, \"day\": 0, \"channel\": \"email\",\n\"purpose\": \"open with a specific, researched reason\"}, ...],\n\"rule\": \"...\"}.\n\nUse when cadence and per-touch purpose are the question. Not for the\nwording 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.","tier":"free","inputSchema":{"additionalProperties":false,"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\"]."}},"type":"object"}},{"name":"subject_line_scorer","description":"Score and rank up to 20 email subject lines, best first. FREE.\n\nScores 0-100 on length, spam triggers, caps, personalization merge fields,\nand curiosity cues. Typical input {\"subjects\": [\"Quick question about\n{{company}}\", \"ACT NOW!!!\"]} returns {\"ranked\": [{\"subject\": ...,\n\"score\": 92, \"notes\": [\"personalized (+)\", \"question format\"]}, ...]}.\n\nUse when several subject lines need ranking against deliverability and\ncuriosity signals. Not for article headlines, which the creator server's\nheadline_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.","tier":"free","inputSchema":{"additionalProperties":false,"properties":{"subjects":{"items":{"type":"string"},"type":"array","description":"List of candidate subject lines as plain strings; only\nthe first 20 are scored."}},"required":["subjects"],"type":"object"}},{"name":"utm_builder","description":"Build a UTM-tagged URL for campaign tracking. FREE.\n\nTypical input {\"url\": \"https://example.com/pricing\", \"source\":\n\"newsletter\", \"medium\": \"email\", \"campaign\": \"spring-launch\"} returns\n{\"tagged_url\": \"https://example.com/pricing?utm_source=newsletter&\nutm_medium=email&utm_campaign=spring-launch\"}.\n\nUse to build one tagged tracking URL. Not for analyzing campaign results\nand 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.","tier":"free","inputSchema":{"additionalProperties":false,"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"],"type":"object"}}],"resources":[],"prompts":[]}