iContact MCP by usefulapi
Read iContact contacts, lists, campaigns and message stats; add contacts and manage subscriptions.
Sollte ich dies verwenden
Qualität und Sicherheit
Befunde (1)
- LOWin icontact_get_message_statistics
Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.
Kontextkosten
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": {
"icontact": {
"url": "https://icontact.usefulapi.io/mcp"
}
}
}Remote-Endpunkte
https://icontact.usefulapi.io/mcpstreamable-httpWas es kann
Tool-Inventar
Tools (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/.
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"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}.
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"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}.
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"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}.
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"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}.
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"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}.
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"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}.
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"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}.
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"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"
}Community
Nachweis