iContact MCP by usefulapi
Read iContact contacts, lists, campaigns and message stats; add contacts and manage subscriptions.
我該用這個嗎
品質與安全性
發現項目(1)
- LOW在 icontact_get_message_statistics 中
根據工具定義與協定合規性的自動化分析。
上下文成本
這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。
安裝
一鍵安裝
將以下內容加入你的 `claude_desktop_config.json` 檔案:
{
"mcpServers": {
"icontact": {
"url": "https://icontact.usefulapi.io/mcp"
}
}
}遠端端點
https://icontact.usefulapi.io/mcpstreamable-http它能做什麼
工具清單
工具(20)
🟢icontact_get_account
The iContact account behind the credentials (company name, address, plan fields) and its client folders, with the folder this server uses. GET /a/ and GET /a/{accountId}/c/.
輸入結構描述
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢icontact_list_contacts(status, email, first_name, last_name, list_id, ...)
List contacts (email, name, address, phone, status, create date). Filter by status, exact email, first/last name or a list the contact belongs to. GET /contacts.
輸入結構描述
{
"type": "object",
"properties": {
"status": {
"description": "Contact status; total = every contact, including those on no list (e.g. just created and not yet subscribed).",
"type": "string",
"enum": [
"normal",
"bounced",
"donotcontact",
"pending",
"invitable",
"deleted",
"total"
]
},
"email": {
"description": "Only the contact with this email address.",
"type": "string",
"minLength": 1,
"maxLength": 254
},
"first_name": {
"description": "Only contacts with this first name.",
"type": "string",
"minLength": 1,
"maxLength": 100
},
"last_name": {
"description": "Only contacts with this last name.",
"type": "string",
"minLength": 1,
"maxLength": 100
},
"list_id": {
"description": "Only contacts subscribed to this list id (see icontact_list_lists).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"order_by": {
"description": "Sort by a field of the resource, optionally with a direction, e.g. createDate:desc.",
"type": "string",
"pattern": "^[A-Za-z]{1,40}(:(asc|desc))?$"
},
"limit": {
"description": "Results per page, 1-100 (default 25).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
},
"offset": {
"description": "Records to skip (default 0). Pass the previous reply's next_offset.",
"type": "integer",
"minimum": 0,
"maximum": 10000000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢icontact_get_contact(contact_id)
One contact by id. GET /contacts/{contactId}.
輸入結構描述
{
"type": "object",
"properties": {
"contact_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "iContact contact id (see icontact_list_contacts)."
}
},
"required": [
"contact_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟡icontact_create_contact(email, status, prefix, first_name, last_name, ...)
WRITE: add one contact to the account (it is not added to any list; use icontact_set_subscription for that). Not idempotent: an email that already exists is reported by iContact as a warning. POST /contacts.
輸入結構描述
{
"type": "object",
"properties": {
"email": {
"type": "string",
"maxLength": 254,
"format": "email",
"pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
"description": "Email address."
},
"status": {
"description": "Contact status (default normal).",
"type": "string",
"enum": [
"normal",
"bounced",
"donotcontact",
"pending",
"invitable",
"deleted"
]
},
"prefix": {
"description": "Name prefix, e.g. Dr.",
"type": "string",
"minLength": 1,
"maxLength": 40
},
"first_name": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"last_name": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"suffix": {
"type": "string",
"minLength": 1,
"maxLength": 40
},
"street": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"street2": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"city": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"state": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"postal_code": {
"type": "string",
"minLength": 1,
"maxLength": 40
},
"phone": {
"type": "string",
"minLength": 1,
"maxLength": 60
},
"fax": {
"type": "string",
"minLength": 1,
"maxLength": 60
},
"business": {
"description": "Company name.",
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"required": [
"email"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴icontact_update_contact(contact_id, email, status, prefix, first_name, ...)
WRITE: change fields of one contact; only the fields you pass are sent. Setting status to donotcontact or deleted stops mail to that contact. POST /contacts/{contactId}.
輸入結構描述
{
"type": "object",
"properties": {
"contact_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "iContact contact id."
},
"email": {
"description": "New email address.",
"type": "string",
"maxLength": 254,
"format": "email",
"pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
},
"status": {
"description": "New contact status.",
"type": "string",
"enum": [
"normal",
"bounced",
"donotcontact",
"pending",
"invitable",
"deleted"
]
},
"prefix": {
"description": "Name prefix, e.g. Dr.",
"type": "string",
"minLength": 1,
"maxLength": 40
},
"first_name": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"last_name": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"suffix": {
"type": "string",
"minLength": 1,
"maxLength": 40
},
"street": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"street2": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"city": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"state": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"postal_code": {
"type": "string",
"minLength": 1,
"maxLength": 40
},
"phone": {
"type": "string",
"minLength": 1,
"maxLength": 60
},
"fax": {
"type": "string",
"minLength": 1,
"maxLength": 60
},
"business": {
"description": "Company name.",
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"required": [
"contact_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢icontact_list_lists(order_by, limit, offset)
List the account's mailing lists (name, description, welcome-message settings). GET /lists.
輸入結構描述
{
"type": "object",
"properties": {
"order_by": {
"description": "Sort by a field of the resource, optionally with a direction, e.g. createDate:desc.",
"type": "string",
"pattern": "^[A-Za-z]{1,40}(:(asc|desc))?$"
},
"limit": {
"description": "Results per page, 1-100 (default 25).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
},
"offset": {
"description": "Records to skip (default 0). Pass the previous reply's next_offset.",
"type": "integer",
"minimum": 0,
"maximum": 10000000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢icontact_get_list(list_id)
One mailing list by id. GET /lists/{listId}.
輸入結構描述
{
"type": "object",
"properties": {
"list_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "iContact list id."
}
},
"required": [
"list_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢icontact_list_subscriptions(list_id, contact_id, status, limit, offset)
List list memberships (subscriptionId, contactId, listId, status). Filter by list, contact or status. GET /subscriptions.
輸入結構描述
{
"type": "object",
"properties": {
"list_id": {
"description": "Only subscriptions to this list.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"contact_id": {
"description": "Only subscriptions of this contact.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"status": {
"description": "Subscription status.",
"type": "string",
"enum": [
"normal",
"pending",
"unsubscribed"
]
},
"limit": {
"description": "Results per page, 1-100 (default 25).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
},
"offset": {
"description": "Records to skip (default 0). Pass the previous reply's next_offset.",
"type": "integer",
"minimum": 0,
"maximum": 10000000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴icontact_set_subscription(contact_id, list_id, status)
WRITE: put a contact on a list (status normal, or pending to start double opt-in) or unsubscribe it (status unsubscribed). Only for contacts who agreed to receive mail. POST /subscriptions.
輸入結構描述
{
"type": "object",
"properties": {
"contact_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "iContact contact id."
},
"list_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "iContact list id."
},
"status": {
"type": "string",
"enum": [
"normal",
"pending",
"unsubscribed"
],
"description": "normal = subscribed, pending = awaiting confirmation, unsubscribed."
}
},
"required": [
"contact_id",
"list_id",
"status"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢icontact_list_campaigns(order_by, limit, offset)
List campaigns (the sender identity and settings that messages belong to). GET /campaigns.
輸入結構描述
{
"type": "object",
"properties": {
"order_by": {
"description": "Sort by a field of the resource, optionally with a direction, e.g. createDate:desc.",
"type": "string",
"pattern": "^[A-Za-z]{1,40}(:(asc|desc))?$"
},
"limit": {
"description": "Results per page, 1-100 (default 25).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
},
"offset": {
"description": "Records to skip (default 0). Pass the previous reply's next_offset.",
"type": "integer",
"minimum": 0,
"maximum": 10000000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢icontact_get_campaign(campaign_id)
One campaign by id. GET /campaigns/{campaignId}.
輸入結構描述
{
"type": "object",
"properties": {
"campaign_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "iContact campaign id."
}
},
"required": [
"campaign_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢icontact_list_messages(message_type, campaign_id, order_by, limit, offset)
List messages (subject, type, campaign, create date, HTML and text bodies). Filter by type or campaign. GET /messages.
輸入結構描述
{
"type": "object",
"properties": {
"message_type": {
"description": "Message type.",
"type": "string",
"enum": [
"normal",
"autoresponder",
"welcome",
"confirmation"
]
},
"campaign_id": {
"description": "Only messages of this campaign.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"order_by": {
"description": "Sort by a field of the resource, optionally with a direction, e.g. createDate:desc.",
"type": "string",
"pattern": "^[A-Za-z]{1,40}(:(asc|desc))?$"
},
"limit": {
"description": "Results per page, 1-100 (default 25).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
},
"offset": {
"description": "Records to skip (default 0). Pass the previous reply's next_offset.",
"type": "integer",
"minimum": 0,
"maximum": 10000000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢icontact_get_message(message_id)
One message by id, with subject and HTML/text bodies. GET /messages/{messageId}.
輸入結構描述
{
"type": "object",
"properties": {
"message_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "iContact message id."
}
},
"required": [
"message_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢icontact_get_message_statistics(message_id)
Delivery statistics of a message (released, bounces, opens, clicks, unsubscribes, complaints, forwards). GET /messages/{messageId}/statistics.
輸入結構描述
{
"type": "object",
"properties": {
"message_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "iContact message id."
}
},
"required": [
"message_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢icontact_list_message_activity(message_id, kind, limit, offset)
Who opened, clicked, bounced from or unsubscribed after a message: one page of events for one message. GET /messages/{messageId}/opens | clicks | bounces | unsubscribes.
輸入結構描述
{
"type": "object",
"properties": {
"message_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "iContact message id."
},
"kind": {
"type": "string",
"enum": [
"opens",
"clicks",
"bounces",
"unsubscribes"
],
"description": "Which events to list."
},
"limit": {
"description": "Results per page, 1-100 (default 25).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
},
"offset": {
"description": "Records to skip (default 0). Pass the previous reply's next_offset.",
"type": "integer",
"minimum": 0,
"maximum": 10000000
}
},
"required": [
"message_id",
"kind"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢icontact_list_sends(order_by, limit, offset)
List sends (a message sent to lists/segments: send id, message id, included/excluded lists, scheduled time, status). GET /sends.
輸入結構描述
{
"type": "object",
"properties": {
"order_by": {
"description": "Sort by a field of the resource, optionally with a direction, e.g. createDate:desc.",
"type": "string",
"pattern": "^[A-Za-z]{1,40}(:(asc|desc))?$"
},
"limit": {
"description": "Results per page, 1-100 (default 25).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
},
"offset": {
"description": "Records to skip (default 0). Pass the previous reply's next_offset.",
"type": "integer",
"minimum": 0,
"maximum": 10000000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢icontact_get_send(send_id)
One send by id. GET /sends/{sendId}.
輸入結構描述
{
"type": "object",
"properties": {
"send_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "iContact send id."
}
},
"required": [
"send_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢icontact_list_segments(limit, offset)
List saved segments (rule-based groups of contacts). GET /segments.
輸入結構描述
{
"type": "object",
"properties": {
"limit": {
"description": "Results per page, 1-100 (default 25).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
},
"offset": {
"description": "Records to skip (default 0). Pass the previous reply's next_offset.",
"type": "integer",
"minimum": 0,
"maximum": 10000000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢icontact_get_segment(segment_id)
One segment by id. GET /segments/{segmentId}.
輸入結構描述
{
"type": "object",
"properties": {
"segment_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "iContact segment id."
}
},
"required": [
"segment_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢icontact_list_custom_fields(limit, offset)
List the account's custom contact fields (name, type). GET /customfields.
輸入結構描述
{
"type": "object",
"properties": {
"limit": {
"description": "Results per page, 1-100 (default 25).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
},
"offset": {
"description": "Records to skip (default 0). Pass the previous reply's next_offset.",
"type": "integer",
"minimum": 0,
"maximum": 10000000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}社群
證據