iContact MCP by usefulapi

Read iContact contacts, lists, campaigns and message stats; add contacts and manage subscriptions.

¿Debería usar esto?

Calidad y seguridad

A
Calidad de la descripción
94%
Integridad del esquema
91%
Calidad de los nombres
79%
Riesgo de envenenamiento
100%
Coincidencia de permisos
100%
Cumplimiento del protocolo
100%

Hallazgos (1)

  • LOWTool 'icontact_get_message_statistics' name length outside 3-30 rangeen icontact_get_message_statistics

Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.

Costo de contexto

~4,086Tokens (definiciones de herramientas)
~1.5 KBTamaño de respuesta típico
Impacto significativo en la atención (3.19% del contexto de 128k)

Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.

Instalar

Instalación con un clic

Agrega esto a tu archivo `claude_desktop_config.json`:

{
  "mcpServers": {
    "icontact": {
      "url": "https://icontact.usefulapi.io/mcp"
    }
  }
}

Puntos de conexión remotos

https://icontact.usefulapi.io/mcpstreamable-http

Qué puede hacer

Inventario de herramientas

Herramientas (20)

🟢 Solo lectura🟡 Escritura🔴 Eliminación⚪ Desconocido
🟢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/.

Esquema de entrada

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

Esquema de entrada

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

Esquema de entrada

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

Esquema de entrada

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

Esquema de entrada

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

Esquema de entrada

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

Esquema de entrada

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

Esquema de entrada

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

Esquema de entrada

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

Esquema de entrada

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

Esquema de entrada

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

Esquema de entrada

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

Esquema de entrada

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

Esquema de entrada

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

Esquema de entrada

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

Esquema de entrada

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

Esquema de entrada

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

Esquema de entrada

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

Esquema de entrada

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

Esquema de entrada

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

Comunidad

Califica este servidor

Evidencia

Observaciones recientes

verificadoversión no registrada20 herramientas