HeySale — AI Website Salesperson

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

我该使用它吗

质量与安全性

A
描述质量
97%
模式完整度
97%
命名质量
97%
投毒风险
80%
权限匹配度
100%
协议合规性
100%

发现(3)

  • HIGHTool poisoning patterns detected
  • MEDIUMTool description contains URL to non-standard domain在 create_website_salesperson 中
  • LOWTool 'verify_salesperson_installation' name length outside 3-30 range在 verify_salesperson_installation 中

基于对工具定义和协议合规性的自动分析。

上下文开销

~4,259token 数(工具定义)
~7.3 KB典型响应大小
对注意力有显著影响(占 128k 上下文窗口的 3.33%)

这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。

安装

一键安装

将以下内容添加到你的 `claude_desktop_config.json` 文件中:

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

远程端点

https://hey.sale/mcpstreamable-http

它能做什么

工具清单

工具(6)

🟢 只读🟡 写入🔴 删除⚪ 未知
🟡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.

输入模式

{
  "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"
}

输出模式

{
  "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.

输入模式

{
  "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"
}

输出模式

{
  "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.

输入模式

{
  "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"
}

输出模式

{
  "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.

输入模式

{
  "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"
}

输出模式

{
  "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.

输入模式

{
  "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"
}

输出模式

{
  "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.

输入模式

{
  "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"
}

输出模式

{
  "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": {}
}

社区

评价此服务器

证据

最近观测

已验证未记录版本6 个工具
已验证未记录版本6 个工具
已验证未记录版本6 个工具