Product · MCPChangeEngine MCP: what's live, what's next
The Model Context Protocol surface for ChangeEngine. 65 tools are live in production today, verified by direct call against the production server and cross-checked against the app. An agent can read your account, compose a targeted and scheduled communication, build branded artwork from your own design templates, and build and launch a multi-page localized survey without opening the app. What it still cannot do is below, ranked by what you vote for.
01Live today
65 tools, verified against the production connector on 2026-10-22. A staging mirror (ce-staging) exposes the identical surface.
A. Read and context (10 tools)
The agent can orient itself in an account before it writes anything, and see what the team is already working on.
list_programsEvery program in the account, returned as resource links.
list_program_communicationsThe communications inside one program, last edited first, each with its status, channel and who touched it last. Archived ones are left out.
list_changes_by_programRank programs by how much work went into them over a window you choose. A program with zero changes is the signal that it is neglected.
list_recent_workThe communications and surveys the account changed most recently, newest first. The fastest way to answer what is the team working on right now.
list_upcoming_sendsWhat sends next, grouped by day, with how many people each one reaches. Call it before picking a fixed date and choose a day that is not already crowded. Pass a segment to see only the sends that hit that group.
search_communicationsSearch past communications by intent and get back resource links.
read_communicationsRead the full contents of any communication by link.
read_timelineThe order a person meets an account's communications, grouped by the date each one hangs off. This is how you see the shape of a journey, such as everything a new starter receives and when. Each line reads back in the same words set_schedule takes.
read_communication_historyWho changed a communication and when, newest first.
read_review_commentsThe whole review trail for one communication: each step, who took it, and the note. A changes-requested note is the answer to why something is not live yet.
B. Compose and schedule a communication (11 tools)
A handful of calls take a communication from empty to fully specified, scheduled and attributed, as a written message or as a designed newsletter, and move one that already exists onto a different channel without rewriting it.
create_programCreate a new program when no existing program fits, before calling create_draft.
create_draftCreate an empty communication draft inside a program.
create_follow_up_draftCreate an empty follow up to an earlier send that reaches only the people who ignored it, or only the people who acted: no interaction at all, no answer to a survey it carried, no click on a link, or the people who did click. A segment cannot express this, so a follow up is the only way to chase. It inherits the source's program and audience, so set_audience is not called on it, and set_schedule takes an after_send delay.
update_draftRename a draft, rewrite its internal description, or move it into a different program, without touching its copy, audience or schedule.
set_messageSet the channel (work email, personal email, Slack, Teams, SMS via Twilio, WhatsApp), the body and the email subject. The body goes in as plain Markdown or as the editor's own format, so a message written by hand in the app can be rewritten by the agent rather than locking it out. Beyond text that means buttons, headings, tables, dividers, images, video, polls, and blocks that only show to one segment. Pick an email design by name from read_branding. Any image not already on the image service is republished to a durable URL, up to 100 MB.
convert_messageConvert an existing message the way the app's own editor would, and get it back ready to edit. Pass a channel to move it there: work email, personal email, Slack, or SMS via Twilio. The content is converted for the new channel rather than rewritten, the sender falls back to that channel's default, and the email subject is cleared. Leave the channel out to keep it where it is. Either way a Markdown message becomes the editor's own format, which takes formatting Markdown cannot carry, such as alignment, color, buttons, columns and image sizes. Formatting the channel cannot show, such as a heading in chat, is kept as plain text, and anything the new channel cannot hold is dropped and listed. Edit what comes back and save it with set_message.
set_newsletterWrite or change a communication as a designed newsletter rather than a plain message, the way the app's newsletter editor builds one. You pass a brief saying what the newsletter should contain, its sections, its tone and any imagery by URL, and the design is built from that brief, starting from the newsletter as it stands or from the account header and footer for a new one. Call it again with a further brief to revise it. A communication is either a newsletter or a message and cannot switch between the two once its content is saved.
set_audienceTarget a named segment, an ad hoc segment expression composed from existing condition fields, a manager or manager's-manager expansion of a segment, or a Slack/Teams channel directly.
set_scheduleSend immediately on publish, on a fixed date and time, relative to any subject date the account holds with month and day offsets, day-of-week constraints and per-recipient local timezone, or on a repeating cadence with a frequency, occurrence cap and end date.
set_senderOverride who the communication comes from, so a message can read as the People Team or a named person rather than the app. Pass null to fall back to the account default.
archive_draftArchive a draft communication that is no longer needed. Clean up after a build without touching the app.
C. Know who you are writing to (8 tools)
Everything the agent needs to read out of an account before it composes a word, including how many people a saved audience actually resolves to and how many of them are reachable on a given channel.
read_brandingAccount name, brand voice and tone guidance, logo URLs, color palette, AI image style, and the named email designs set_message can wrap a message in.
list_segmentsEvery active segment, with a flag for which can act as a base segment.
list_segment_conditionsThe field and value vocabulary available for composing new ad hoc segments.
list_audience_peopleResolve a saved segment into the people it actually contains: a headcount, and the people themselves when you need them. Pass a channel and it splits that audience into who has a destination, who is missing one and who has opted out, so a thin audience shows up before anything is published rather than after. Available means a destination that is not opted out, which is not the same as guaranteed delivery. Saved segments only; an ad hoc segment expression is not resolved here.
describe_audienceThe employee fields that can pick a group out of a base segment, with how many of its people carry each field and the values it holds. Call it before set_audience to build an ad hoc segment on a field or value no existing segment uses yet. Fields only a few people carry, and fields whose values are nearly all unique, are left out. A special category field such as gender or religion reports its coverage without its values.
list_merge_tagsEvery merge tag this communication may use, grouped by the person it reads from, with the fallback each one carries. Not just names: department, job title, office, tenure fields, account-wide tags and every calendar event, plus the same fields read through manager and managers_manager. Which tags are valid depends on the audience, so set_audience first.
list_subject_datesThe dates an account can schedule against and when each one fires. No longer only birthday, start date and work anniversary: whatever the account actually runs, including became a manager and became an admin.
list_chat_channelsPostable Slack and Teams channels.
D. Artwork and brand assets (16 tools)
The approved material an account already owns, and now the ability to make more of it. The agent can pull from the content library, build a poster, certificate, banner or social post from the account's own branded templates, check how the copy sits before committing it, and file the result back into the library for the team to reuse.
publish_imagePublish a PNG, JPEG, WebP or AVIF up to 100 MB to a durable public https:// URL for use in set_message. Give it a title, tags and a folder to also file it in the content library, so the team can reuse it.
request_uploadGet a one-time URL for uploading an image or a PDF straight to the file service at full quality, instead of passing its bytes through the conversation. It returns the upload command to run and the durable https:// URL the file will have once it lands, ready to drop into set_message or to hand to import_pdf. Pass an image URL to publish_image afterwards to also file it in the content library.
list_content_libraryThe uploaded files and Design Huddle templates in the account's content library, grouped by folder and flagged by type. Use approved artwork in a message instead of generating something new. Uploaded files come back with a public URL, documents such as PDFs are flagged so you link them rather than embed them, and a template comes back with a Template ID for render_content_library_template.
list_content_library_tagsThe tag names and folder paths in the library with a count against each, so you filter on something that actually exists.
render_content_library_templatePrepare a Design Huddle template from the content library for a message. It returns the design node to drop straight into set_message plus a preview image of what that node looks like. The design stays editable in the app afterwards, so a branded template can be used in an agent-built message without flattening it into a picture.
find_design_templateThe branded design templates an account can build from: posters, certificates, social posts, banners, TV displays, guides, FAQs, video call backgrounds, logos and manager one-pagers. Every layout is spelled out element by element, and the copy a layout already holds shows how long a replacement should be.
preview_design_templateRender a template with your content merged in without creating anything, so a layout can be chosen and the copy checked for fit before anything is committed. It takes the same content create_design does, so what you see is what gets made.
create_designCreate an editable design from a template with the copy and imagery already in place. It stays a real editable design rather than a flattened picture, so the team can keep working on it in the app afterwards.
read_designEvery addressable part of a design: each element, its name, type, size, position and current text. Read this before editing rather than guessing, because elements are reachable even when they carry no name.
preview_designRender a design with changes applied but not saved. This is the only way to see how replacement copy reflows before committing it, and it warns when text will shrink past legibility or an element would be pushed off the canvas.
update_designApply and keep changes to a design: copy, colors, opacity, swapped imagery and element position. A target that matches nothing comes back as an error rather than a silent no-op, so a change that did not land says so.
save_designPut a finished design into the content library, where the team can find it and render_content_library_template can carry it into a communication. Saving again refreshes the stored preview after an edit.
import_pdfTurn an existing PDF into an editable design in the content library, so a one-pager or guide that only exists as a flat file becomes something the agent and the team can both edit.
search_stock_imagesSearch stock photography for a background or illustration the library has none of. Approved artwork from the content library comes first; this covers the gap.
list_whatsapp_templatesThe WhatsApp templates the account can send. Meta fixes the wording, so only merge tags and the destination link change per recipient. Read this before offering WhatsApp, so you promise only wording a template already holds.
list_possible_sendersThe senders available to set_sender for a communication, and which one it currently uses.
E. Check it before it goes (3 tools)
New. The agent can look at its own work the way a recipient will, rather than trusting that a successful write means a working message.
read_messageRead the body of a single communication back.
read_communication_previewSee a communication rendered as its recipients will, with sample merge values, returned as an image. A tall message comes back as several images, top to bottom. This is the answer to a write that succeeds and still looks wrong.
send_me_testSend yourself a real test copy: your own address on email, or your connected destination on Slack, Teams, Twilio or WhatsApp.
F. Surveys (11 tools)
The full survey lifecycle, from drafting and editing in a single call through translation, launch and reading the answers back.
create_surveyDraft a survey, with optional confidential mode (hides personal details, suppresses any question under 5 responses, unlocks eNPS) and optional generic link / QR response capture.
edit_surveyAdd, change, move and remove a survey's pages, questions and completion text in one call. Radiogroup, checkbox, dropdown, rating, boolean, text (12 input types) and long-form comment, with conditional display, answer-count validators, and completion text that varies by how someone answered. Every edit in a call is checked before any of it is saved, so a request that cannot be made in full changes nothing. Edits land on the draft revision, so respondents see nothing until launch_survey publishes it.
prepare_survey_translationExport every used string for a target locale.
add_survey_translationSave the completed translation set back onto the survey.
launch_surveyPublish the latest draft revision and return the live link, which drops straight into set_message.
close_surveyStop a live survey taking answers, with your own message on the closed link. Answers already given stay, and launch_survey reopens it.
archive_surveyTake a survey out of the list entirely, closing it if it was live.
list_surveysNon-archived surveys with status, response counts, and live links.
read_surveyRead one survey back: title, status, settings, pages and questions. Use it to see what an existing survey asks before writing a new one. It returns the newest revision and tells you when respondents are seeing an older one.
read_survey_responsesWhat people actually answered. Counts per answer for closed questions, open text tallied by theme, then whole responses so one person's rating and their comment read together. No answer is tied to a person and no identifier comes back; an anonymous survey shows nothing until 5 people have answered.
read_survey_reachHow many people a survey went to and what share answered, naming each communication that carries the link with its sends, deliveries and clicks.
G. Read your results back (6 tools)
Delivery, opens, clicks, errors and reactions are readable for anything that has actually sent, every recorded recipient of a send can be listed and not only the ones who engaged, the answers to a poll asked inside a message read back too, and a person missing from an audience altogether can be traced back to the employee sync.
list_communication_analyticsRank every sent communication by opens, clicks, deliveries, errors or sends, across the whole account or inside one program. Returns sends, deliveries, errors, opens and open rate, how many people clicked, total clicks and Slack reactions. Drafts and anything never sent are excluded.
read_delivery_forensicsThe same numbers for one individual send, most recent first, for the account, one program or one communication. Adds the channel, the segment, who published it, the trigger that fired it, clicks broken down by URL, errors broken down by reason, and the name and address of anyone it failed to reach. Everyone who opened, clicked or reacted also comes back by name, most engaged first, with the URLs each person clicked and how many times; a send names up to 50 of them and reports how many engaged people are not in the list. A hard bounce comes back with the full SMTP reason, so a bad address is finally actionable.
list_send_recipientsEvery recorded recipient of one send, or of one communication across a date range you choose, grouped by outcome or by channel. Counts come back as recipients, as distinct known people and as failures, so one person reached on two channels is not mistaken for two people. Previously only the people who engaged and the people a send failed to reach came back by name, and the delivered ones were counts only; now they can be listed too. A post to a chat channel is counted as a channel delivery rather than as the people in the room.
read_person_sendWhy one named person did or did not get a communication. Give a work email address or an employee ID and it returns that person's own trail for that send: whether the communication was published at the time, whether they met the audience rules, which address it would use, whether the system had worked out how to reach them, and whether it put them in the queue. Queued is not proof of arrival, which is what read_delivery_forensics reports. The record covers the last 90 days and says the date it starts on.
read_poll_resultsWhat people answered in the polls a message asks. Each poll comes back with its question, how many answers it has, and the count and share behind every option, including an option the poll no longer offers if somebody chose it, so the shares still add up. No answer is tied to a person. A message with no poll block returns nothing, and a poll nobody has answered yet says so rather than reporting zero as a result.
list_sync_conflictsThe people the last employee sync could not place, because an existing person's work email or employee ID also arrived on a separate new HRIS record. The sync cannot tell which record is the person, so it removes them, and they receive nothing until the HRIS is corrected. Read this when someone is missing from an audience or has stopped receiving communications, before blaming the segment. The fix is in the HRIS, and the next sync places them again. An empty list means the last sync placed everyone it received.
02Roadmap
21 open items, grouped by the problem they solve rather than by product area.
No login needed. One vote per person per item, and you can take it back.
Re-checked against production on 2026-10-22. The tool count went from 26 to 65, and thirteen items on this list closed, including the full merge tag registry, the content library, survey responses, scheduling off any event, naming the individual people who opened and clicked, and comparing one channel against another.
03Prompt library
Prompts that actually exercise the live tools. Add one that worked for you.
04Test drive the MCP
Four short tracks. Start to finish is about half an hour and nothing sends until you publish it yourself.
Watch the full connection, 71 seconds, sound on.
- 1
In Claude, click your name at the bottom left of the sidebar, then Settings.
- 2
Open the Connectors tab.
- 3
Search for ChangeEngine. Two results come back: pick ChangeEngine, not ChangeEngine Pages, and click Connect. If ChangeEngine does not appear, your Claude administrator needs to enable it for your organization first. Enabling it at the organization level only makes the connector available, it does not connect it for anyone. Each person connects their own Claude account once.
- 4
Claude opens a browser tab to authorize the connection.
- 5
On the ChangeEngine screen, enter your organization name as one lowercase word with no spaces, then click Continue. If you are not sure what it is, it is the name your ChangeEngine workspace is registered under, not your email domain.
- 6
Log in with your ChangeEngine email address. You are authorizing your own account, so the agent sees exactly what you see and nothing more.
- 7
Confirm it worked. Start a new chat and run this prompt. You should get your real program list back within a few seconds. If nothing comes back, reopen Settings and check that ChangeEngine shows as connected rather than just available.
List my ChangeEngine programs.