WhatConverts MCP by usefulapi
Read WhatConverts leads, calls, forms, accounts and profiles; add leads and update lead value.
我该使用它吗
质量与安全性
发现(2)
- LOW在 whatconverts_get_call_recording_info 中
- LOW在 whatconverts_list_phone_numbers 中
基于对工具定义和协议合规性的自动分析。
上下文开销
这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。
安装
一键安装
将以下内容添加到你的 `claude_desktop_config.json` 文件中:
{
"mcpServers": {
"whatconverts": {
"url": "https://whatconverts.usefulapi.io/mcp"
}
}
}远程端点
https://whatconverts.usefulapi.io/mcpstreamable-http它能做什么
工具清单
工具(15)
🟢whatconverts_list_leads(start_date, end_date, lead_type, lead_status, quotable, ...)
List tracked leads (phone calls, web forms, chats, texts, emails, events, transactions) with source/medium/campaign/keyword attribution, contact details, quote and sales values, call duration and transcripts. start_date is REQUIRED because WhatConverts otherwise returns only today's leads; a range is at most 400 days. A Profile key sees its own profile; an Agency key can narrow by account_id/profile_id. GET /leads.
输入模式
{
"type": "object",
"properties": {
"start_date": {
"type": "string",
"description": "First day/time to include (UTC), e.g. 2026-10-01 or 2026-10-01T00:00:00Z."
},
"end_date": {
"description": "Last day/time to include (UTC). Range from start_date at most 400 days.",
"type": "string"
},
"lead_type": {
"description": "Only this lead type.",
"type": "string",
"enum": [
"appointment",
"chat",
"email",
"event",
"other",
"phone_call",
"text_message",
"transaction",
"web_form"
]
},
"lead_status": {
"description": "Repeat or unique contacts.",
"type": "string",
"enum": [
"repeat",
"unique"
]
},
"quotable": {
"description": "Only leads with this quotable state.",
"type": "string",
"enum": [
"yes",
"no",
"pending",
"not_set"
]
},
"quote_value": {
"description": "Only leads with / without a quote value.",
"type": "string",
"enum": [
"has_value",
"no_value"
]
},
"sales_value": {
"description": "Only leads with / without a sales value.",
"type": "string",
"enum": [
"has_value",
"no_value"
]
},
"phone_number": {
"description": "Contact phone number, E.164 (+15551234567).",
"type": "string",
"pattern": "^\\+[1-9]\\d{6,14}$"
},
"email_address": {
"description": "Contact email address.",
"type": "string",
"minLength": 3,
"maxLength": 254
},
"user_id": {
"description": "Only leads handled by this WhatConverts user id.",
"type": "string",
"minLength": 1,
"maxLength": 50
},
"spam": {
"description": "true = only spam leads.",
"type": "boolean"
},
"duplicate": {
"description": "true = only duplicate leads.",
"type": "boolean"
},
"lead_source": {
"description": "Traffic source, e.g. google.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"lead_medium": {
"description": "Traffic medium, e.g. cpc.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"lead_campaign": {
"description": "Campaign name.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"lead_content": {
"description": "Ad content.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"lead_keyword": {
"description": "Keyword.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"account_id": {
"description": "Agency key only: only this account (see whatconverts_list_accounts).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"profile_id": {
"description": "Agency key only: only this profile.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"order": {
"description": "Sort by date created: asc or desc (default desc).",
"type": "string",
"enum": [
"asc",
"desc"
]
},
"customer_journey": {
"description": "Include customer journey data (Elite plans only).",
"type": "boolean"
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"per_page": {
"description": "Results per page, 1-100 (default 25).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
}
},
"required": [
"start_date"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢whatconverts_get_lead(lead_id, customer_journey)
One lead by id with every field: type, status, attribution (source, medium, campaign, keyword, landing page), contact details, location, device, quote/sales value, call details, transcripts, form/message content, and custom fields. GET /leads/{lead_id}.
输入模式
{
"type": "object",
"properties": {
"lead_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "WhatConverts lead id (from whatconverts_list_leads)."
},
"customer_journey": {
"description": "Include the customer journey (Elite plans only).",
"type": "boolean"
}
},
"required": [
"lead_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢whatconverts_get_call_recording_info(lead_id)
Recording and voicemail facts for a phone-call lead: the recording and voicemail links, call duration, answer status, tracking/caller numbers and the call/voicemail transcripts. Returns links and text only, never audio. Taken from GET /leads/{lead_id} (the audio endpoint GET /recording returns raw MP3 and is not used).
输入模式
{
"type": "object",
"properties": {
"lead_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "WhatConverts lead id of a phone call."
}
},
"required": [
"lead_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴whatconverts_update_lead(lead_id, quotable, quote_value, sales_value, lead_url, ...)
WRITE: update a lead's sales data in WhatConverts: quotable state, quote value, sales value, the URL where the lead occurred, and/or custom/additional field values. Only the fields you pass change; it overwrites the previous values of those fields. Sends no notifications. At least one field is required. POST /leads/{lead_id}.
输入模式
{
"type": "object",
"properties": {
"lead_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "WhatConverts lead id."
},
"quotable": {
"description": "Quotable state.",
"type": "string",
"enum": [
"yes",
"no",
"pending",
"not_set"
]
},
"quote_value": {
"description": "Quote value (number, account currency).",
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"sales_value": {
"description": "Sales value (number, account currency).",
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"lead_url": {
"description": "URL where the lead occurred.",
"type": "string",
"maxLength": 2000,
"format": "uri"
},
"additional_fields": {
"description": "Additional field values by field name, e.g. {\"Reason\": \"pricing\"}.",
"type": "object",
"propertyNames": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"pattern": "^[^\\[\\]&=#%\\x00-\\x1f]+$"
},
"additionalProperties": {
"type": "string",
"maxLength": 2000
}
},
"custom_fields": {
"description": "Custom lead field values by field name.",
"type": "object",
"propertyNames": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"pattern": "^[^\\[\\]&=#%\\x00-\\x1f]+$"
},
"additionalProperties": {
"type": "string",
"maxLength": 2000
}
}
},
"required": [
"lead_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟡whatconverts_create_lead(lead_type, profile_id, date_created, quotable, quote_value, ...)
WRITE: add a lead to WhatConverts, for example an offline phone call, a form submission from another system or a sale you want attributed. It appears in reports and counts toward lead totals; send_notification is always off, so no emails go out. Not idempotent: calling twice creates two leads. A Profile key adds to its own profile; an Agency key must pass profile_id. POST /leads.
输入模式
{
"type": "object",
"properties": {
"lead_type": {
"type": "string",
"enum": [
"appointment",
"chat",
"email",
"event",
"other",
"phone_call",
"text_message",
"transaction",
"web_form"
],
"description": "Lead type."
},
"profile_id": {
"description": "Profile to add the lead to (required with an Agency key, not with a Profile key).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"date_created": {
"description": "When the lead happened (UTC); default now.",
"type": "string"
},
"quotable": {
"type": "string",
"enum": [
"yes",
"no",
"pending",
"not_set"
]
},
"quote_value": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"sales_value": {
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"lead_source": {
"description": "Traffic source, e.g. google.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"lead_medium": {
"description": "Traffic medium, e.g. cpc.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"lead_campaign": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"lead_content": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"lead_keyword": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"email_address": {
"description": "Contact email address (stored on the lead; nothing is sent to it).",
"type": "string",
"minLength": 3,
"maxLength": 254
},
"phone_number": {
"description": "Contact phone, E.164.",
"type": "string",
"pattern": "^\\+[1-9]\\d{6,14}$"
},
"lead_url": {
"description": "URL where the lead occurred.",
"type": "string",
"maxLength": 2000,
"format": "uri"
},
"landing_url": {
"description": "URL where the visitor arrived.",
"type": "string",
"maxLength": 2000,
"format": "uri"
},
"form_name": {
"description": "Form name (web_form only).",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"message": {
"description": "Message body (text_message only).",
"type": "string",
"minLength": 1,
"maxLength": 5000
},
"call_duration_seconds": {
"description": "Call length in seconds (phone_call only).",
"type": "integer",
"minimum": 0,
"maximum": 86400
},
"answer_status": {
"description": "phone_call only.",
"type": "string",
"enum": [
"Answered",
"No Answer",
"Busy"
]
},
"caller_number": {
"description": "Caller number, E.164 (phone_call / text_message).",
"type": "string",
"pattern": "^\\+[1-9]\\d{6,14}$"
},
"tracking_number": {
"description": "Tracking number, E.164 (phone_call / text_message).",
"type": "string",
"pattern": "^\\+[1-9]\\d{6,14}$"
},
"destination_number": {
"description": "Destination number, E.164 (phone_call).",
"type": "string",
"pattern": "^\\+[1-9]\\d{6,14}$"
},
"additional_fields": {
"type": "object",
"propertyNames": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"pattern": "^[^\\[\\]&=#%\\x00-\\x1f]+$"
},
"additionalProperties": {
"type": "string",
"maxLength": 2000
}
},
"custom_fields": {
"type": "object",
"propertyNames": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"pattern": "^[^\\[\\]&=#%\\x00-\\x1f]+$"
},
"additionalProperties": {
"type": "string",
"maxLength": 2000
}
}
},
"required": [
"lead_type"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢whatconverts_list_accounts(start_date, end_date, order, page, per_page)
Agency key only: list the accounts (clients) of the agency with their profiles (id, name, date created). Use the ids to filter leads. start_date/end_date filter by creation date (WhatConverts defaults start_date to today, so pass an early start_date to see all). GET /accounts.
输入模式
{
"type": "object",
"properties": {
"start_date": {
"description": "Accounts created from this date (UTC). Pass e.g. 2000-01-01 to list all.",
"type": "string"
},
"end_date": {
"description": "Accounts created up to this date (UTC).",
"type": "string"
},
"order": {
"description": "Sort by date created: asc or desc (default desc).",
"type": "string",
"enum": [
"asc",
"desc"
]
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"per_page": {
"description": "Results per page, 1-250 (default 25).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 250
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢whatconverts_get_account(account_id)
Agency key only: one account by id with its profiles. GET /accounts/{account_id}.
输入模式
{
"type": "object",
"properties": {
"account_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "WhatConverts account id."
}
},
"required": [
"account_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢whatconverts_list_profiles(account_id, start_date, end_date, order, page, ...)
Agency key only: list the profiles (websites/campaign sets) of one account. start_date/end_date filter by creation date (WhatConverts defaults start_date to today, so pass an early start_date to see all). GET /accounts/{account_id}/profiles.
输入模式
{
"type": "object",
"properties": {
"account_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "WhatConverts account id."
},
"start_date": {
"description": "Profiles created from this date (UTC). Pass e.g. 2000-01-01 to list all.",
"type": "string"
},
"end_date": {
"description": "Profiles created up to this date (UTC).",
"type": "string"
},
"order": {
"description": "Sort by date created: asc or desc (default desc).",
"type": "string",
"enum": [
"asc",
"desc"
]
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"per_page": {
"description": "Results per page, 1-250 (default 25).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 250
}
},
"required": [
"account_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢whatconverts_get_profile(account_id, profile_id)
Agency key only: one profile by id (name, date created). GET /accounts/{account_id}/profiles/{profile_id}.
输入模式
{
"type": "object",
"properties": {
"account_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "WhatConverts account id."
},
"profile_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "WhatConverts profile id."
}
},
"required": [
"account_id",
"profile_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢whatconverts_list_users(user_type, start_date, end_date, order, page, ...)
Agency key only: list WhatConverts users (email, role, whether activation is pending) of the master account or of client accounts. start_date/end_date filter by creation date (WhatConverts defaults start_date to today, so pass an early start_date to see all). GET /users.
输入模式
{
"type": "object",
"properties": {
"user_type": {
"description": "master_account (default) or account users.",
"type": "string",
"enum": [
"master_account",
"account"
]
},
"start_date": {
"description": "Users created from this date (UTC). Pass e.g. 2000-01-01 to list all.",
"type": "string"
},
"end_date": {
"description": "Users created up to this date (UTC).",
"type": "string"
},
"order": {
"description": "Sort by date created: asc or desc (default desc).",
"type": "string",
"enum": [
"asc",
"desc"
]
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"per_page": {
"description": "Results per page, 1-250 (default 25).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 250
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢whatconverts_get_user(user_id)
Agency key only: one user by id with role, notification settings and (for account users) the accounts they can access. GET /users/{user_id}.
输入模式
{
"type": "object",
"properties": {
"user_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "WhatConverts user id."
}
},
"required": [
"user_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢whatconverts_list_roles(role_type, order, page, per_page)
Agency key only: list user roles (id, name, master-account or account type). GET /roles.
输入模式
{
"type": "object",
"properties": {
"role_type": {
"description": "master_account (default) or account roles.",
"type": "string",
"enum": [
"master_account",
"account"
]
},
"order": {
"description": "Sort by role name (default asc).",
"type": "string",
"enum": [
"asc",
"desc"
]
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"per_page": {
"description": "Results per page, 1-250 (default 25).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 250
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢whatconverts_get_role(role_id)
Agency key only: one role with its permission levels (none/view/edit) per area. GET /roles/{role_id}.
输入模式
{
"type": "object",
"properties": {
"role_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "WhatConverts role id."
}
},
"required": [
"role_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢whatconverts_list_phone_numbers(account_id, profile_id, page, per_page)
List the call-tracking numbers: tracking and destination number, call flow, trigger (source/medium), call recording and messaging flags, last used. A Profile key lists its own profile; an Agency key may filter by account_id/profile_id. GET /tracking/numbers.
输入模式
{
"type": "object",
"properties": {
"account_id": {
"description": "Agency key only: only this account.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"profile_id": {
"description": "Agency key only: only this profile.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"per_page": {
"description": "Results per page, 1-250 (default 25).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 250
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢whatconverts_list_web_forms(account_id, profile_id, page, per_page)
List the web forms WhatConverts tracks (id, name, how the form and its submit are matched on the page). A Profile key lists its own profile; an Agency key may filter by account_id/profile_id. GET /tracking/forms.
输入模式
{
"type": "object",
"properties": {
"account_id": {
"description": "Agency key only: only this account.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"profile_id": {
"description": "Agency key only: only this profile.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"per_page": {
"description": "Results per page, 1-250 (default 25).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 250
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}社区
证据