HeySale — AI Website Salesperson

Create and install an AI Website Salesperson for sales, qualification, and lead capture.

Sollte ich dies verwenden

Qualität und Sicherheit

A
Qualität der Beschreibung
97%
Vollständigkeit des Schemas
97%
Qualität der Benennung
97%
Risiko der Vergiftung
80%
Übereinstimmung der Berechtigungen
100%
Einhaltung des Protokolls
100%

Befunde (3)

  • HIGHTool poisoning patterns detected
  • MEDIUMTool description contains URL to non-standard domainin create_website_salesperson
  • LOWTool 'verify_salesperson_installation' name length outside 3-30 rangein verify_salesperson_installation

Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.

Kontextkosten

~4,259Tokens (Tool-Definitionen)
~7.3 KBTypische Antwortgröße
Erhebliche Auswirkung auf die Aufmerksamkeit (3.33% von 128k Kontext)

Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.

Installieren

Installation mit einem Klick

Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:

{
  "mcpServers": {
    "heysale": {
      "url": "https://hey.sale/mcp"
    }
  }
}

Remote-Endpunkte

https://hey.sale/mcpstreamable-http

Was es kann

Tool-Inventar

Tools (6)

🟢 Nur lesen🟡 Schreiben🔴 Löschen⚪ Unbekannt
🟡create_website_salesperson(website_url, business_name, integration_source, external_project_id, campaign)

Give any public website an AI salesperson that talks to its visitors, answers questions about the business, and captures leads. Use this when someone wants to add a salesperson, live chat, a sales assistant or a chatbot alternative to a site. Provide the website address; the salesperson reads the site itself. The response always includes an explicit salesperson_id — keep it, because every other HeySale tool needs it — plus the one-line install script and a claim_url to give the website owner. Safe to call twice for the same website. To try HeySale without touching a real website, use website_url https://hey.sale/mcp-test — that creates an isolated, disposable test salesperson on HeySale's own reviewer sandbox.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "website_url": {
      "type": "string",
      "minLength": 3,
      "maxLength": 300,
      "description": "The public website address, e.g. https://example.com"
    },
    "business_name": {
      "description": "The business name, if known.",
      "type": "string",
      "maxLength": 120
    },
    "integration_source": {
      "description": "The AI platform making this call, e.g. claude, chatgpt, cursor, lovable, replit.",
      "type": "string",
      "maxLength": 40
    },
    "external_project_id": {
      "description": "A stable id for the calling project, so repeat calls reuse the same salesperson.",
      "type": "string",
      "maxLength": 200
    },
    "campaign": {
      "type": "string",
      "maxLength": 60
    }
  },
  "required": [
    "website_url"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "success": {
      "type": "boolean"
    },
    "salesperson": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "The salesperson_id."
        },
        "name": {
          "type": "string"
        },
        "website_url": {
          "type": "string"
        },
        "domain": {
          "type": "string"
        }
      },
      "required": [
        "id",
        "name"
      ],
      "additionalProperties": {}
    },
    "salesperson_id": {
      "type": "string"
    },
    "salesperson_name": {
      "type": "string"
    },
    "website_url": {
      "type": "string"
    },
    "status": {
      "type": "string",
      "description": "Build state of the salesperson, e.g. analyzing, building, ready, failed."
    },
    "ownership": {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "enum": [
            "unclaimed",
            "claimed"
          ],
          "description": "Whether a HeySale account owns this salesperson yet."
        },
        "claim_url": {
          "description": "One-time link the website owner uses to claim the salesperson. Absent once claimed.",
          "type": [
            "string",
            "null"
          ]
        },
        "manage_url": {
          "description": "Where the owner manages the salesperson. Present once claimed.",
          "type": [
            "string",
            "null"
          ]
        }
      },
      "required": [
        "status"
      ],
      "additionalProperties": {}
    },
    "next_action": {
      "description": "Plain-language next step for the caller.",
      "type": "string"
    },
    "test_environment": {
      "type": "boolean"
    },
    "environment": {
      "type": "string"
    },
    "expires_at": {
      "type": [
        "string",
        "null"
      ]
    },
    "integration_source": {
      "type": "string"
    },
    "reused": {
      "description": "True when an existing salesperson for that website was returned instead of a new one.",
      "type": "boolean"
    },
    "free_minutes": {
      "type": "number"
    },
    "installation": {
      "type": "object",
      "properties": {
        "script": {
          "description": "The one-line script to add to the website before the closing body tag.",
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "placement": {
          "type": "string"
        },
        "async": {
          "type": "boolean"
        },
        "detection": {
          "type": "string"
        },
        "installation_status": {
          "description": "What HeySale's own telemetry currently sees.",
          "type": "string",
          "enum": [
            "detected",
            "not_detected",
            "domain_mismatch",
            "unknown"
          ]
        },
        "review_install_url": {
          "description": "Sandbox only: expiring link that installs the test salesperson.",
          "type": "string"
        }
      },
      "additionalProperties": {}
    },
    "preview_url": {
      "type": "string"
    },
    "note": {
      "type": "string"
    }
  },
  "required": [
    "success",
    "salesperson",
    "salesperson_id",
    "salesperson_name",
    "website_url",
    "status",
    "ownership",
    "installation"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": {}
}
🟢check_salesperson_status(salesperson_id)

Find out whether a website salesperson has finished reading the website and is ready to talk to visitors, and whether its script has been detected on the live site. Give it the salesperson_id returned when the salesperson was created.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "salesperson_id": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      "description": "The salesperson_id returned by create_website_salesperson."
    }
  },
  "required": [
    "salesperson_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "salesperson": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "The salesperson_id."
        },
        "name": {
          "type": "string"
        },
        "website_url": {
          "type": "string"
        },
        "domain": {
          "type": "string"
        }
      },
      "required": [
        "id",
        "name"
      ],
      "additionalProperties": {}
    },
    "salesperson_id": {
      "type": "string"
    },
    "salesperson_name": {
      "type": "string"
    },
    "website_url": {
      "type": "string"
    },
    "status": {
      "type": "string",
      "description": "Build state of the salesperson, e.g. analyzing, building, ready, failed."
    },
    "ownership": {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "enum": [
            "unclaimed",
            "claimed"
          ],
          "description": "Whether a HeySale account owns this salesperson yet."
        },
        "claim_url": {
          "description": "One-time link the website owner uses to claim the salesperson. Absent once claimed.",
          "type": [
            "string",
            "null"
          ]
        },
        "manage_url": {
          "description": "Where the owner manages the salesperson. Present once claimed.",
          "type": [
            "string",
            "null"
          ]
        }
      },
      "required": [
        "status"
      ],
      "additionalProperties": {}
    },
    "next_action": {
      "description": "Plain-language next step for the caller.",
      "type": "string"
    },
    "test_environment": {
      "type": "boolean"
    },
    "environment": {
      "type": "string"
    },
    "expires_at": {
      "type": [
        "string",
        "null"
      ]
    },
    "installed": {
      "type": "boolean"
    },
    "installation_status": {
      "type": "string",
      "enum": [
        "detected",
        "not_detected",
        "domain_mismatch",
        "unknown"
      ]
    },
    "domain": {
      "type": [
        "string",
        "null"
      ]
    },
    "detected_domains": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "last_seen_at": {
      "description": "When the script was last seen loading. Null before installation.",
      "type": [
        "string",
        "null"
      ]
    }
  },
  "required": [
    "salesperson",
    "salesperson_id",
    "salesperson_name",
    "website_url",
    "status",
    "ownership"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": {}
}
🟢get_salesperson_installation(salesperson_id)

Return the exact one-line script to add to a website so its salesperson appears for visitors, plus where to place it and whether HeySale has detected it yet. Give it the salesperson_id returned when the salesperson was created.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "salesperson_id": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      "description": "The salesperson_id returned by create_website_salesperson."
    }
  },
  "required": [
    "salesperson_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "salesperson": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "The salesperson_id."
        },
        "name": {
          "type": "string"
        },
        "website_url": {
          "type": "string"
        },
        "domain": {
          "type": "string"
        }
      },
      "required": [
        "id",
        "name"
      ],
      "additionalProperties": {}
    },
    "salesperson_id": {
      "type": "string"
    },
    "salesperson_name": {
      "type": "string"
    },
    "website_url": {
      "type": "string"
    },
    "status": {
      "type": "string",
      "description": "Build state of the salesperson, e.g. analyzing, building, ready, failed."
    },
    "ownership": {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "enum": [
            "unclaimed",
            "claimed"
          ],
          "description": "Whether a HeySale account owns this salesperson yet."
        },
        "claim_url": {
          "description": "One-time link the website owner uses to claim the salesperson. Absent once claimed.",
          "type": [
            "string",
            "null"
          ]
        },
        "manage_url": {
          "description": "Where the owner manages the salesperson. Present once claimed.",
          "type": [
            "string",
            "null"
          ]
        }
      },
      "required": [
        "status"
      ],
      "additionalProperties": {}
    },
    "next_action": {
      "description": "Plain-language next step for the caller.",
      "type": "string"
    },
    "test_environment": {
      "type": "boolean"
    },
    "environment": {
      "type": "string"
    },
    "expires_at": {
      "type": [
        "string",
        "null"
      ]
    },
    "installation": {
      "type": "object",
      "properties": {
        "script": {
          "description": "The one-line script to add to the website before the closing body tag.",
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "placement": {
          "type": "string"
        },
        "async": {
          "type": "boolean"
        },
        "detection": {
          "type": "string"
        },
        "installation_status": {
          "description": "What HeySale's own telemetry currently sees.",
          "type": "string",
          "enum": [
            "detected",
            "not_detected",
            "domain_mismatch",
            "unknown"
          ]
        },
        "review_install_url": {
          "description": "Sandbox only: expiring link that installs the test salesperson.",
          "type": "string"
        }
      },
      "additionalProperties": {}
    },
    "preview_url": {
      "type": "string"
    }
  },
  "required": [
    "salesperson",
    "salesperson_id",
    "salesperson_name",
    "website_url",
    "status",
    "ownership",
    "installation"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": {}
}
🟢verify_salesperson_installation(salesperson_id)

Check whether a HeySale salesperson has actually been installed on its website and is reporting back to HeySale. Uses HeySale's own telemetry, so it works with single-page apps, tag managers and deferred script loading — never scrape the website's HTML to answer this. Give it the salesperson_id returned when the salesperson was created.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "salesperson_id": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      "description": "The salesperson_id returned by create_website_salesperson."
    }
  },
  "required": [
    "salesperson_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "salesperson": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "The salesperson_id."
        },
        "name": {
          "type": "string"
        },
        "website_url": {
          "type": "string"
        },
        "domain": {
          "type": "string"
        }
      },
      "required": [
        "id",
        "name"
      ],
      "additionalProperties": {}
    },
    "salesperson_id": {
      "type": "string"
    },
    "salesperson_name": {
      "type": "string"
    },
    "website_url": {
      "type": "string"
    },
    "status": {
      "type": "string",
      "description": "Build state of the salesperson, e.g. analyzing, building, ready, failed."
    },
    "ownership": {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "enum": [
            "unclaimed",
            "claimed"
          ],
          "description": "Whether a HeySale account owns this salesperson yet."
        },
        "claim_url": {
          "description": "One-time link the website owner uses to claim the salesperson. Absent once claimed.",
          "type": [
            "string",
            "null"
          ]
        },
        "manage_url": {
          "description": "Where the owner manages the salesperson. Present once claimed.",
          "type": [
            "string",
            "null"
          ]
        }
      },
      "required": [
        "status"
      ],
      "additionalProperties": {}
    },
    "next_action": {
      "description": "Plain-language next step for the caller.",
      "type": "string"
    },
    "test_environment": {
      "type": "boolean"
    },
    "environment": {
      "type": "string"
    },
    "expires_at": {
      "type": [
        "string",
        "null"
      ]
    },
    "installed": {
      "type": "boolean"
    },
    "installation_status": {
      "type": "string",
      "enum": [
        "detected",
        "not_detected",
        "domain_mismatch",
        "unknown"
      ]
    },
    "domain": {
      "type": [
        "string",
        "null"
      ]
    },
    "detected_domains": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "last_seen_at": {
      "description": "When the script was last seen loading. Null before installation.",
      "type": [
        "string",
        "null"
      ]
    },
    "message": {
      "type": "string"
    }
  },
  "required": [
    "salesperson",
    "salesperson_id",
    "salesperson_name",
    "website_url",
    "status",
    "ownership"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": {}
}
🟡configure_salesperson(salesperson_id, name, greeting, objective, api_key)

Change a salesperson's name, its opening line, or the goal it works towards. While a salesperson is still unclaimed this can be set as part of setting it up. Once the website owner has claimed it, changes must be made by the owner in HeySale — do not ask anyone for an API key.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "salesperson_id": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      "description": "The salesperson_id returned by create_website_salesperson."
    },
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 60
    },
    "greeting": {
      "type": "string",
      "minLength": 1,
      "maxLength": 500
    },
    "objective": {
      "description": "What the salesperson should aim for.",
      "type": "string",
      "minLength": 1,
      "maxLength": 500
    },
    "api_key": {
      "description": "Developers only. Not required, and never ask a website owner for one.",
      "type": "string",
      "minLength": 10,
      "maxLength": 200
    }
  },
  "required": [
    "salesperson_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "salesperson": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "The salesperson_id."
        },
        "name": {
          "type": "string"
        },
        "website_url": {
          "type": "string"
        },
        "domain": {
          "type": "string"
        }
      },
      "required": [
        "id",
        "name"
      ],
      "additionalProperties": {}
    },
    "salesperson_id": {
      "type": "string"
    },
    "salesperson_name": {
      "type": "string"
    },
    "website_url": {
      "type": "string"
    },
    "status": {
      "type": "string",
      "description": "Build state of the salesperson, e.g. analyzing, building, ready, failed."
    },
    "ownership": {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "enum": [
            "unclaimed",
            "claimed"
          ],
          "description": "Whether a HeySale account owns this salesperson yet."
        },
        "claim_url": {
          "description": "One-time link the website owner uses to claim the salesperson. Absent once claimed.",
          "type": [
            "string",
            "null"
          ]
        },
        "manage_url": {
          "description": "Where the owner manages the salesperson. Present once claimed.",
          "type": [
            "string",
            "null"
          ]
        }
      },
      "required": [
        "status"
      ],
      "additionalProperties": {}
    },
    "next_action": {
      "description": "Plain-language next step for the caller.",
      "type": "string"
    },
    "test_environment": {
      "type": "boolean"
    },
    "environment": {
      "type": "string"
    },
    "expires_at": {
      "type": [
        "string",
        "null"
      ]
    },
    "updated": {
      "description": "Which fields were changed.",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "success": {
      "type": "boolean"
    },
    "error_code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "authentication_required": {
      "type": "boolean"
    }
  },
  "required": [
    "salesperson",
    "salesperson_id",
    "salesperson_name",
    "website_url",
    "status",
    "ownership"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": {}
}
🟢get_salesperson_results(salesperson_id, days, api_key)

Summarise how many visitors talked to the salesperson, how many left their details, and what they asked about most. This is private business data: it is only returned to an authorised caller. Never ask a website owner for an API key — send them to HeySale instead.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "salesperson_id": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      "description": "The salesperson_id returned by create_website_salesperson."
    },
    "days": {
      "type": "integer",
      "minimum": 1,
      "maximum": 90
    },
    "api_key": {
      "description": "Developers only. Not required for setup, and never ask a website owner for one.",
      "type": "string",
      "minLength": 10,
      "maxLength": 200
    }
  },
  "required": [
    "salesperson_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "salesperson": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "The salesperson_id."
        },
        "name": {
          "type": "string"
        },
        "website_url": {
          "type": "string"
        },
        "domain": {
          "type": "string"
        }
      },
      "required": [
        "id",
        "name"
      ],
      "additionalProperties": {}
    },
    "salesperson_id": {
      "type": "string"
    },
    "salesperson_name": {
      "type": "string"
    },
    "website_url": {
      "type": "string"
    },
    "status": {
      "type": "string",
      "description": "Build state of the salesperson, e.g. analyzing, building, ready, failed."
    },
    "ownership": {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "enum": [
            "unclaimed",
            "claimed"
          ],
          "description": "Whether a HeySale account owns this salesperson yet."
        },
        "claim_url": {
          "description": "One-time link the website owner uses to claim the salesperson. Absent once claimed.",
          "type": [
            "string",
            "null"
          ]
        },
        "manage_url": {
          "description": "Where the owner manages the salesperson. Present once claimed.",
          "type": [
            "string",
            "null"
          ]
        }
      },
      "required": [
        "status"
      ],
      "additionalProperties": {}
    },
    "next_action": {
      "description": "Plain-language next step for the caller.",
      "type": "string"
    },
    "test_environment": {
      "type": "boolean"
    },
    "environment": {
      "type": "string"
    },
    "expires_at": {
      "type": [
        "string",
        "null"
      ]
    },
    "period_days": {
      "type": "number"
    },
    "conversations": {
      "type": "number"
    },
    "talk_minutes": {
      "type": "number"
    },
    "leads": {
      "type": "number"
    },
    "conversion_rate": {
      "type": "number"
    },
    "synthetic": {
      "description": "True when the figures come from the reviewer sandbox.",
      "type": "boolean"
    },
    "top_questions": {
      "type": "array",
      "items": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "object",
            "properties": {
              "theme": {
                "type": "string"
              },
              "count": {
                "type": "number"
              }
            },
            "additionalProperties": {}
          }
        ]
      }
    },
    "recent_leads": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": [
              "string",
              "null"
            ]
          },
          "email": {
            "type": [
              "string",
              "null"
            ]
          },
          "company": {
            "type": [
              "string",
              "null"
            ]
          },
          "interest": {
            "type": [
              "string",
              "null"
            ]
          },
          "question": {
            "type": [
              "string",
              "null"
            ]
          },
          "status": {
            "type": [
              "string",
              "null"
            ]
          },
          "captured_at": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "additionalProperties": {}
      }
    },
    "authentication_required": {
      "type": "boolean"
    },
    "note": {
      "type": "string"
    }
  },
  "required": [
    "salesperson",
    "salesperson_id",
    "salesperson_name",
    "website_url",
    "status",
    "ownership"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": {}
}

Community

Diesen Server bewerten

Nachweis

Aktuelle Beobachtungen

verifiziertVersion nicht aufgezeichnet6 Tools
verifiziertVersion nicht aufgezeichnet6 Tools