Connection check
local install
political-comms-api-mcp
Compliant political SMS/MMS from MCP clients: projects, contacts, analytics, billing.
Tools
34
GitHub stars
—
Installs / wk
224
Licence
—
Transport
stdio
Last checked
never
Tools & capabilities
34 toolsRead from the published package source — this server runs locally, so there is no endpoint to query. Names are taken from the code, not observed at runtime, and descriptions are often absent.
archive_project
from source
Archive a completed project so it no longer appears in default project listings. Only projects in completed status can be archived; other statuses are rejected with INVALID_STATE_T… Archive a completed project so it no longer appears in default project listings. Only projects in completed status can be archived; other statuses are rejected with INVALID_STATE_TRANSITION.
copy_project
from source
Copy an existing project into a new draft. The copy keeps the message, phone numbers, and settings but drops contact lists, schedule, and stats, and gets a versioned name (X become… Copy an existing project into a new draft. The copy keeps the message, phone numbers, and settings but drops contact lists, schedule, and stats, and gets a versioned name (X becomes X_v2). Copying never sends messages.
create_email_template_draft
from source
EARLY ACCESS (returns 403 EMAIL_EARLY_ACCESS until general availability). THIS COSTS MONEY: each draft that finishes is billed $3.00 by default (per-org pricing). Generate an email… EARLY ACCESS (returns 403 EMAIL_EARLY_ACCESS until general availability). THIS COSTS MONEY: each draft that finishes is billed $3.00 by default (per-org pricing). Generate an email design from a prompt. Returns immediately with a draft id and the unit_price; poll get_email_template_draft until status is
create_project
from source
Create a new messaging project (a draft send). Requires the owning organization, a name, protocol (sms or mms), sending phone number IDs, contact list IDs, and the message text. Fo… Create a new messaging project (a draft send). Requires the owning organization, a name, protocol (sms or mms), sending phone number IDs, contact list IDs, and the message text. For channel=10dlc also pass brand_id and campaign_id; for channel=toll-free pass toll_free_verification_id. Creating a project does not send messages by itself.
get_contact_list
from source
Get one contact list by ID, including import progress and list analysis results when available. Get one contact list by ID, including import progress and list analysis results when available.
get_email_campaign
from source
EARLY ACCESS (returns 403 EMAIL_EARLY_ACCESS until general availability). Get one email campaign. This read also returns EARLY ACCESS (returns 403 EMAIL_EARLY_ACCESS until general availability). Get one email campaign. This read also returns
get_email_campaign_stats
from source
EARLY ACCESS (returns 403 EMAIL_EARLY_ACCESS until general availability). Get report tiles and per-link click stats for an email campaign. Cached for 60 seconds. Test and seed send… EARLY ACCESS (returns 403 EMAIL_EARLY_ACCESS until general availability). Get report tiles and per-link click stats for an email campaign. Cached for 60 seconds. Test and seed sends are excluded from every figure.
get_email_domain
from source
EARLY ACCESS (returns 403 EMAIL_EARLY_ACCESS until general availability). Get one email sending domain, including the DNS records the customer must publish. DNS is manual: the plat… EARLY ACCESS (returns 403 EMAIL_EARLY_ACCESS until general availability). Get one email sending domain, including the DNS records the customer must publish. DNS is manual: the platform never writes records.
get_email_list_import
from source
EARLY ACCESS (returns 403 EMAIL_EARLY_ACCESS until general availability). Get the status of one email list CSV import, including the headers that were read, the mapping that was ap… EARLY ACCESS (returns 403 EMAIL_EARLY_ACCESS until general availability). Get the status of one email list CSV import, including the headers that were read, the mapping that was applied, and the per-row summary once it completes.
get_email_list_validation
from source
EARLY ACCESS (returns 403 EMAIL_EARLY_ACCESS until general availability). Get the status of the most recent paid validation run for an email list. Returns 404 EMAIL_VALIDATION_JOB_… EARLY ACCESS (returns 403 EMAIL_EARLY_ACCESS until general availability). Get the status of the most recent paid validation run for an email list. Returns 404 EMAIL_VALIDATION_JOB_NOT_FOUND when the list has never been validated, which is distinct from a 404 for a list id that does not exist.
get_email_template
from source
EARLY ACCESS (returns 403 EMAIL_EARLY_ACCESS until general availability). Get one email template including its full HTML body, which can be large. The API never returns the visual… EARLY ACCESS (returns 403 EMAIL_EARLY_ACCESS until general availability). Get one email template including its full HTML body, which can be large. The API never returns the visual designer document, so
get_email_template_draft
from source
EARLY ACCESS (returns 403 EMAIL_EARLY_ACCESS until general availability). Get one AI-generated email draft. Poll this after create_email_template_draft until status is EARLY ACCESS (returns 403 EMAIL_EARLY_ACCESS until general availability). Get one AI-generated email draft. Poll this after create_email_template_draft until status is
get_hierarchy
from source
Get the full organization hierarchy tree visible to the API key, including nested child organizations and their brands. Get the full organization hierarchy tree visible to the API key, including nested child organizations and their brands.
get_ledger_usage
from source
Get billing usage totals and per-category breakdown from the ledger for a date range, optionally filtered to a descendant organization. Get billing usage totals and per-category breakdown from the ledger for a date range, optionally filtered to a descendant organization.
get_message_stats
from source
Get aggregate message stats (totals and daily breakdown) for a date range, optionally filtered by organization, brand, or campaign. Get aggregate message stats (totals and daily breakdown) for a date range, optionally filtered by organization, brand, or campaign.
get_project
from source
Get one project by ID with its full configuration: status, channel, message text, phone numbers, contact lists, link tracking settings, and schedule. Get one project by ID with its full configuration: status, channel, message text, phone numbers, contact lists, link tracking settings, and schedule.
get_project_stats
from source
Get delivery and engagement stats for one project: sent, delivered, undeliverable, replies, opt outs, clicks, and the derived rates. The response also carries a Get delivery and engagement stats for one project: sent, delivered, undeliverable, replies, opt outs, clicks, and the derived rates. The response also carries a
list_contact_lists
from source
List contact lists with their contact counts and import status. Optionally filter by organization or brand. List contact lists with their contact counts and import status. Optionally filter by organization or brand.
list_email_campaigns
from source
EARLY ACCESS (returns 403 EMAIL_EARLY_ACCESS until general availability). List email campaigns with their status and audience counts. EARLY ACCESS (returns 403 EMAIL_EARLY_ACCESS until general availability). List email campaigns with their status and audience counts.
list_email_domains
from source
EARLY ACCESS (returns 403 EMAIL_EARLY_ACCESS until general availability). List email sending domains and their DNS verification status. A domain is usable for sending only once sta… EARLY ACCESS (returns 403 EMAIL_EARLY_ACCESS until general availability). List email sending domains and their DNS verification status. A domain is usable for sending only once status is
list_email_lists
from source
EARLY ACCESS (returns 403 EMAIL_EARLY_ACCESS until general availability). List email lists with their contact counts and status. EARLY ACCESS (returns 403 EMAIL_EARLY_ACCESS until general availability). List email lists with their contact counts and status.
list_email_senders
from source
EARLY ACCESS (returns 403 EMAIL_EARLY_ACCESS until general availability). List email sender identities (From addresses). An identity missing a required physical address or disclaim… EARLY ACCESS (returns 403 EMAIL_EARLY_ACCESS until general availability). List email sender identities (From addresses). An identity missing a required physical address or disclaimer is paused rather than allowed to send.
list_email_suppressions
from source
EARLY ACCESS (returns 403 EMAIL_EARLY_ACCESS until general availability). List suppressed email addresses at organization, sender identity, or list scope. EARLY ACCESS (returns 403 EMAIL_EARLY_ACCESS until general availability). List suppressed email addresses at organization, sender identity, or list scope.
list_email_templates
from source
EARLY ACCESS (returns 403 EMAIL_EARLY_ACCESS until general availability). List saved email templates with their subject line and last-updated time. The HTML body is returned by get… EARLY ACCESS (returns 403 EMAIL_EARLY_ACCESS until general availability). List saved email templates with their subject line and last-updated time. The HTML body is returned by get_email_template, not by this list.
list_organizations
from source
List all organizations visible to the API key, including their status and parent organization. Also useful as a credential check. List all organizations visible to the API key, including their status and parent organization. Also useful as a credential check.
list_projects
from source
List messaging projects (a project is one composed send: message text, sending numbers, and contact lists). Optionally filter by organization, brand, or campaign. List messaging projects (a project is one composed send: message text, sending numbers, and contact lists). Optionally filter by organization, brand, or campaign.
pause_email_campaign
from source
EARLY ACCESS (returns 403 EMAIL_EARLY_ACCESS until general availability). Pause a sending email campaign. Recipients already handed to the mail provider still deliver. EARLY ACCESS (returns 403 EMAIL_EARLY_ACCESS until general availability). Pause a sending email campaign. Recipients already handed to the mail provider still deliver.
resume_email_campaign
from source
EARLY ACCESS (returns 403 EMAIL_EARLY_ACCESS until general availability). Resume a paused email campaign. A campaign a deliverability breaker auto-paused twice returns 409 EMAIL_CA… EARLY ACCESS (returns 403 EMAIL_EARLY_ACCESS until general availability). Resume a paused email campaign. A campaign a deliverability breaker auto-paused twice returns 409 EMAIL_CAMPAIGN_RESUME_REQUIRES_SUPPORT. There is no override: escalate to a human instead of retrying.
schedule_email_campaign
from source
EARLY ACCESS (returns 403 EMAIL_EARLY_ACCESS until general availability). Schedule an email campaign, or omit scheduled_at to send now. This commits a real send to every recipient… EARLY ACCESS (returns 403 EMAIL_EARLY_ACCESS until general availability). Schedule an email campaign, or omit scheduled_at to send now. This commits a real send to every recipient on the campaign lists. If it is refused, read
schedule_project
from source
Schedule a project to send to its full contact lists at a specific date and time. This commits a real bulk send to every contact on the lists once the scheduled time arrives. Schedule a project to send to its full contact lists at a specific date and time. This commits a real bulk send to every contact on the lists once the scheduled time arrives.
start_email_list_import
from source
test_project
from source
Send real test messages for a project to up to 50 explicit phone numbers. This delivers actual SMS or MMS to those recipients and incurs cost. Send real test messages for a project to up to 50 explicit phone numbers. This delivers actual SMS or MMS to those recipients and incurs cost.
unschedule_email_campaign
from source
EARLY ACCESS (returns 403 EMAIL_EARLY_ACCESS until general availability). Remove the schedule from an email campaign, returning it to a draft state. EARLY ACCESS (returns 403 EMAIL_EARLY_ACCESS until general availability). Remove the schedule from an email campaign, returning it to a draft state.
unschedule_project
from source