Skip to main content
Glama

Constantcontact Connector

constantcontact_connector
Read-onlyIdempotent

Constant Contact email marketing: contacts, email campaigns, lists, and engagement metrics. When the user asks for a visual, trend, comparison, or recap, call chart_render with the numeric values returned by this connector. If the connector result includes a verified chart_provenance token, the same authenticated user may pass it as provenance_token within 15 minutes, on any replica, and map every value to its exact source_path so chart_render preserves verified provenance. Without a valid connector receipt, chart_render labels values as unverified_model_data. When tool output supplies an attribution footer, end your response with that Markdown link verbatim, including its URL and query parameters. Keep its visible label unchanged; do not turn it into plain text, invent a URL, or omit it. Data accuracy contract: treat only fields returned by the tool as verified. Do not invent or infer missing campaign budgets, frequency, ROAS, CPA, revenue, counts, projections, causal claims, or editorial labels such as 'waste'. Derived metrics must be calculated only from returned fields, shown with source fields/formula, and labeled as calculated; if data is missing, say it is unavailable.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
actionYesget_account_summary: Return the Constant Contact account summary: organisation name, contact email, phone, website, country, and optionally t | get_account_emails: Return email addresses registered on the Constant Contact account and their confirmation status. Use when the user asks | get_user_privileges: Return the privileges granted to the authenticated Constant Contact API user. Use to check whether the connected account | get_contacts: Return a paginated list of Constant Contact contacts with optional status and date filters. Use when the user asks 'show | get_contact: Return full details for a single Constant Contact contact by ID. Use after get_cc_contacts or search_cc_contacts to dril | search_contacts: Search Constant Contact contacts by email address, subscription status, list membership, or tag. Use when the user asks | get_lists: Return all Constant Contact mailing lists (contact lists) in the account. Use when the user asks 'show my mailing lists' | get_list: Return details for a single Constant Contact contact list. Use after get_cc_lists to inspect a specific list. Inputs: li | get_tags: Return all contact tags in the Constant Contact account, optionally including how many contacts have each tag. Use when | get_tag: Return details for a single Constant Contact tag. Use after get_cc_tags to inspect a specific tag. Inputs: tag_id (requi | get_segments: Return all contact segments defined in the Constant Contact account. Use when the user asks 'show my segments' or needs | get_segment: Return full details including segment_criteria for a single Constant Contact segment. This is the only endpoint that ret | get_custom_fields: Return all custom contact fields defined in the Constant Contact account. Use when the user asks 'what custom fields do | get_campaigns: Return a paginated list of Constant Contact email campaigns with optional date range filters. Use when the user asks 'sh | get_campaign: Return full metadata for a single Constant Contact email campaign. Use after get_cc_campaigns to drill into a specific c | get_campaign_activity: Return the content and send details for a specific campaign activity. A campaign may have multiple activities (A/B test | get_campaign_stats: Return aggregate percentage-level stats for a Constant Contact campaign: open rate, click rate, did-not-open rate, mobil | get_campaigns_summary: Return a summary performance report for multiple Constant Contact campaigns in a single request: sends, opens, clicks, f | get_campaign_tracking_opens: Return the list of contacts who opened a specific Constant Contact campaign activity, with device type and timestamp. Us | get_campaign_tracking_clicks: Return the list of contacts who clicked a link in a specific Constant Contact campaign activity, with optional filtering | get_contact_activity_summary: Return a summary of recent email campaign activity for a specific contact: which campaigns were sent to them, and how th
paramsNoAction-specific parameters. get_account_summary: {include_physical_address?: boolean, include_company_logo?: boolean} | get_account_emails: {confirm_status?: string} | get_user_privileges: none | get_contacts: {limit?: integer, status?: string, updated_after?: string, updated_before?: string, created_after?: string, created_before?: string, include?: string} | get_contact: {contact_id: string, include?: string} | search_contacts: {email?: string, status?: string, list_id?: string, tag_id?: string, limit?: integer, include?: string} | get_lists: {limit?: integer} | get_list: {list_id: string} | get_tags: {limit?: integer, include_counts?: boolean} | get_tag: {tag_id: string} | get_segments: {limit?: integer, sort_by?: string} | get_segment: {segment_id: string} | get_custom_fields: {limit?: integer} | get_campaigns: {limit?: integer, after_date?: string, before_date?: string} | get_campaign: {campaign_id: string} | get_campaign_activity: {campaign_activity_id: string, include?: string} | get_campaign_stats: {campaign_id: string} | get_campaigns_summary: {limit?: integer} | get_campaign_tracking_opens: {campaign_activity_id: string, limit?: integer} | get_campaign_tracking_clicks: {campaign_activity_id: string, url_id?: string, limit?: integer} | get_contact_activity_summary: {contact_id: string, start?: string, end?: string}

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • changedInput schema / properties / action / description
      Previous value: -"get_campaigns: List Constant Contact email campaigns with status and scheduling | get_contacts: List or search Constant Contact contacts"New value: +"get_account_summary: Return the Constant Contact account summary: organisation name, contact email, phone, website, country, and optionally t | get_account_emails: Return email addresses registered on the Constant Contact account and their confirmation status. Use when the user asks  | get_user_privileges: Return the privileges granted to the authenticated Constant Contact API user. Use to check whether the connected account | get_contacts: Return a paginated list of Constant Contact contacts with optional status and date filters. Use when the user asks 'show | get_contact: Return full details for a single Constant Contact contact by ID. Use after get_cc_contacts or search_cc_contacts to dril | search_contacts: Search Constant Contact contacts by email address, subscription status, list membership, or tag. Use when the user asks  | get_lists: Return all Constant Contact mailing lists (contact lists) in the account. Use when the user asks 'show my mailing lists' | get_list: Return details for a single Constant Contact contact list. Use after get_cc_lists to inspect a specific list. Inputs: li | get_tags: Return all contact tags in the Constant Contact account, optionally including how many contacts have each tag. Use when  | get_tag: Return details for a single Constant Contact tag. Use after get_cc_tags to inspect a specific tag. Inputs: tag_id (requi | get_segments: Return all contact segments defined in the Constant Contact account. Use when the user asks 'show my segments' or needs  | get_segment: Return full details including segment_criteria for a single Constant Contact segment. This is the only endpoint that ret | get_custom_fields: Return all custom contact fields defined in the Constant Contact account. Use when the user asks 'what custom fields do  | get_campaigns: Return a paginated list of Constant Contact email campaigns with optional date range filters. Use when the user asks 'sh | get_campaign: Return full metadata for a single Constant Contact email campaign. Use after get_cc_campaigns to drill into a specific c | get_campaign_activity: Return the content and send details for a specific campaign activity. A campaign may have multiple activities (A/B test  | get_campaign_stats: Return aggregate percentage-level stats for a Constant Contact campaign: open rate, click rate, did-not-open rate, mobil | get_campaigns_summary: Return a summary performance report for multiple Constant Contact campaigns in a single request: sends, opens, clicks, f | get_campaign_tracking_opens: Return the list of contacts who opened a specific Constant Contact campaign activity, with device type and timestamp. Us | get_campaign_tracking_clicks: Return the list of contacts who clicked a link in a specific Constant Contact campaign activity, with optional filtering | get_contact_activity_summary: Return a summary of recent email campaign activity for a specific contact: which campaigns were sent to them, and how th"
    • changedInput schema / properties / action / enum
      Previous value: -[
      -  "get_campaigns",
      -  "get_contacts"
      -]New value: +[
      +  "get_account_summary",
      +  "get_account_emails",
      +  "get_user_privileges",
      +  "get_contacts",
      +  "get_contact",
      +  "search_contacts",
      +  "get_lists",
      +  "get_list",
      +  "get_tags",
      +  "get_tag",
      +  "get_segments",
      +  "get_segment",
      +  "get_custom_fields",
      +  "get_campaigns",
      +  "get_campaign",
      +  "get_campaign_activity",
      +  "get_campaign_stats",
      +  "get_campaigns_summary",
      +  "get_campaign_tracking_opens",
      +  "get_campaign_tracking_clicks",
      +  "get_contact_activity_summary"
      +]
    • changedInput schema / properties / params / description
      Previous value: -"Action-specific parameters. get_campaigns: {limit?: integer, status?: string} | get_contacts: {limit?: integer, query?: string}"New value: +"Action-specific parameters. get_account_summary: {include_physical_address?: boolean, include_company_logo?: boolean} | get_account_emails: {confirm_status?: string} | get_user_privileges: none | get_contacts: {limit?: integer, status?: string, updated_after?: string, updated_before?: string, created_after?: string, created_before?: string, include?: string} | get_contact: {contact_id: string, include?: string} | search_contacts: {email?: string, status?: string, list_id?: string, tag_id?: string, limit?: integer, include?: string} | get_lists: {limit?: integer} | get_list: {list_id: string} | get_tags: {limit?: integer, include_counts?: boolean} | get_tag: {tag_id: string} | get_segments: {limit?: integer, sort_by?: string} | get_segment: {segment_id: string} | get_custom_fields: {limit?: integer} | get_campaigns: {limit?: integer, after_date?: string, before_date?: string} | get_campaign: {campaign_id: string} | get_campaign_activity: {campaign_activity_id: string, include?: string} | get_campaign_stats: {campaign_id: string} | get_campaigns_summary: {limit?: integer} | get_campaign_tracking_opens: {campaign_activity_id: string, limit?: integer} | get_campaign_tracking_clicks: {campaign_activity_id: string, url_id?: string, limit?: integer} | get_contact_activity_summary: {contact_id: string, start?: string, end?: string}"
  2. First observed

TDQS

B3.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnlyHint=true, idempotentHint=true, destructiveHint=false), so the bar is lower, and the description still adds real behavioral context: a 15-minute provenance-token validity window, any-replica acceptance, the fallback label unverified_model_data, mandatory verbatim attribution footers, and a data-accuracy contract forbidding invented metrics. These are output-handling constraints the annotations do not convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded correctly with the connector's domain, but only one of roughly eight sentences concerns this tool; the remainder is generic chart_render/attribution/accuracy boilerplate that likely repeats across every connector. The material is individually useful but disproportionately weighted away from the tool being described.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 21-action read-only connector with 100% schema coverage and no output schema, the description covers the domain and the downstream handling obligations well, and the action enum supplies per-action purpose and 'use when' cues. The remaining gap is sibling disambiguation against the other email-marketing connectors, which nothing in the definition resolves.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and both parameters (action and params) are fully documented in the schema, including per-action parameter shapes, so the baseline of 3 applies. The description adds no parameter-level meaning of its own, not even a note on how the params object is keyed to the action value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening clause names the domain and the four resource families (contacts, email campaigns, lists, engagement metrics), which is a legitimate scope statement for a 21-action connector. However, it offers no verb and no differentiation from the near-identical siblings mailchimp_connector, klaviyo_connector, and activecampaign_connector, so an agent cannot tell from the description alone why it should pick Constant Contact over those.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives detailed routing rules, but they govern chart_render and attribution handling rather than this connector; the only implicit usage signal is that this tool returns numeric values suitable for charting. There is no statement of when to use this connector versus the other email-marketing connectors, so the agent must fall back on the per-action 'Use when...' text embedded in the action enum.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources