Claude connector
MCP server changelog
Breaking changes are flagged. Tool additions are non-breaking.
0.18.0 — August 21, 2026
Breaking: the campaign, contact and audience tools are removed, and the campaigns:read / campaigns:write scopes no longer exist.
- * Why: email campaigns were removed from ezInputs. The feature competed in a market the product has no advantage in, while consuming maintenance budget that the approval, accrual and attendance engines earn. This is a product decision, not a deprecation cycle — the tools have no replacement because the capability behind them is gone.
- − Removed (28 tools):
list_campaigns,get_campaign,create_campaign,set_campaign_blocks,apply_tool_call,schedule_campaign,cancel_campaign,duplicate_campaign,list_campaign_snapshots,restore_campaign_snapshot,save_as_template,apply_template_to_campaign,list_templates,get_template,render_email,lint_email,screenshot_email,list_block_types,list_contacts,get_contact,add_contact,update_contact,tag_contact,list_audiences,get_audience,create_audience,add_to_audience,remove_from_audience. - − Removed resources:
campaign://<id>,campaign://<id>/preview.htmlandcampaign://<id>/lint. - − Removed prompts:
/new-newsletter,/audit-deliverability,/refresh-templateand/promote-form./build-formand/triage-submissionsare unaffected. - * Rescoped, not removed:
list_email_templates,get_email_template_fullandupdate_email_templatemoved fromcampaigns:*toforms:read/forms:write. They manage the workflow notification templates, which are transactional and still part of the product. Thetemplate://<id>resource moved toforms:readfor the same reason. - −
set_campaign_modeis gone fromapply_form_tool_call, andget_formno longer returnscampaignMode. It configured list auto-enrolment and campaign-link prefill, both of which no longer happen. Forms that still carry the key keep it — nothing strips it on save. - * What breaks: a connector holding
campaigns:readorcampaigns:writekeeps working for every other tool; the grant is simply ignored. Calls to any removed tool returnunknown_tool. Re-consenting drops the dead scopes from the token. - * Correction to earlier docs:the connector page advertised "destructive writes auto-snapshot with a 30-day TTL" and a
restore_snapshottool. That snapshotting only ever covered campaigns, and went with them. Form edits are guarded by the propose/accept queue instead — passpropose: true, thenlist_pending_changesandaccept_pending_change/reject_pending_change.
0.17.0 — August 12, 2026
Booking fields gained a shared weekly assignment grid.
- +
bookingfieldbookingConfig.weeklyGrid: setenabled: true(plusstartHour,endHour,slotMinutes,days) to render a shared per-room schedule sheet — the same grid asscheduleV2— instead of the single date picker. Respondents DRAG to claim stretches of time and may hold several; other people's bookings render as locked blocks showing who has the room. Seelist_field_types→booking. - * Stored value depends on the mode: the date picker still stores
{ roomId, date }; the grid stores{ claims: [{ roomId, day, start, end }] }, wheredayis an ABSOLUTE weekday index (Mon=0..Sun=6) and start/end are minutes from midnight. Adding or removing a column never moves an existing claim. - * Conflicts are interval overlap, not cell equality:a claim overlapping held time at all is rejected whole, never silently trimmed. Intervals are half-open, so 9–12 and 12–2 don't conflict.
- * Occupancy stays derived: both shapes are read from submissions at request time (cancelled/rejected submissions release their cells automatically), and the submissions route rejects conflicting claims with a 409 on both first submit and resubmission.
0.17.0 — August 19, 2026
Breaking: advance_submission_status now requires the new submissions:write scope.
- * Why: it was gated on
submissions:recommend, a scope whose whole purpose is to let a connector SUGGEST an approval without being able to perform one. The consent screen told users the connector "cannot actually approve — a human still clicks the button" while that same grant permitted a real workflow status change. Suggesting an approval and performing one are different decisions, so they are now different scopes. - * What breaks: an existing connector holding only
submissions:recommendnow gets aninsufficient_scopeerror fromadvance_submission_status. Reconnect it and approve the new scope to restore that tool. Every other tool is unaffected — includingrecommend_submission,bulk_recommend_submissionsandclear_recommendation, which stay onsubmissions:recommend. - * Not a silent widening: nothing gains a capability here. A connector that was never re-consented can do strictly less than before, which is the point.
0.16.1 — July 27, 2026
Fix: the write-path context hint no longer goes silent on unlinked forms.
- *
apply_form_tool_call/apply_form_tool_calls: when the target form has no linked AI Context documents but the tenant has some (often build guides sitting on the sibling form a new build is modeled on), the response note now says so and points atlist_context_documents— previously the hint only fired for docs linked to the form being edited, so an agent rebuilding a documented form type elsewhere proceeded unguided.
0.16.0 — July 27, 2026
Batch edits, compact responses, and a loud no-op guard.
- +
apply_form_tool_calls: apply a sequence of granular ops in ONE request — ops validate against the running result in order, everything writes atomically with a single revision bump, and the response is a compact summary with per-op notes. All-or-nothing: the first failing op aborts the batch with nothing written. A 15-op build is one round-trip instead of 15 full-document echoes. - +
apply_form_tool_callcompactoption: return a small{ revision, pageCount, fieldCount, … }summary instead of the full form document — fetch the doc once at the end withget_form. - *
update_fieldno longer silently no-ops: a call whose patch is not underdata(e.g. sent aspatch:) previously returned success while changing nothing; it now errors with the expected shape and the keys it received, and nothing is written.
0.15.1 — July 27, 2026
Fix: repeater fields now repeat by default.
- *
add_field:field_type: "repeater"now mints the container withrepeatable: true(plusrepeatMin: 1,repeatMax: 5) — previously the type alone produced a plain non-repeating container unless the call also passeddata.repeatableexplicitly. Explicitdatavalues still override the defaults.
0.15.0 — July 27, 2026
Staleness signal on AI Context enrichment.
- *
get_form/get_submission: form-scoped documents inbuildContext/reviewContextnow carrystale: truewhen the form was updated after the document's last edit, and the response note says how many are stale — verify against the current form (or refresh the doc) before relying on flagged guidance. The admin AI Context tab shows a matching "Form updated since" chip.
0.14.0 — July 26, 2026
AI Context guidance now reaches the write path.
- *
apply_form_tool_call: when the target form has AI Context documents, the response note now carries a heads-up with the doc count and where to fetch them (get_form'sbuildContext/get_context_document) — so an agent that edits without reading first is pointed at the tenant's guidance instead of mutating blind. - *
create_context_document: same-kind, same-scope near-duplicates are now refused by default — the call returns the existing documents withcreated: falseand asks you to fold additions in viaupdate_context_document. Pass the new optionalallow_duplicate: trueto create anyway. Prevents repeated write-backs from crowding real guidance out of the enrichment cap.
0.13.0 — July 11, 2026
New field type: estimateWorksheet — construction estimate worksheet.
- +
estimateWorksheetfield type:a self-contained cost sheet with line items grouped by division (CSI-style sections), live qty × unit-cost math per row, division subtotals, a sequential markup cascade (e.g. Overhead then Profit), and a bid total + margin readout. Configure viaestimateConfig(divisions, units, rowTypes, markups, marginFloor); omit it for sensible defaults. Value shape:{ version: 1, rows: [{ division, description, rowType, qty, unit, unitCost }], markups }. - + totalsV2
estimatesource:{ kind: "estimate", field, measure: "directCost"|"bidTotal"|"margin"|"division"|"rowType", key? }— reads computed worksheet measures, so compliance rules can hard-block a submission (e.g. margin below a floor) using the same engine as every other source. - *
list_field_typesnow returns theestimateWorksheetschema.
0.12.0 — June 12, 2026
Removed: add_submission_comment (submission comments deprecated).
- -
add_submission_commentis removed. Submission comments have been deprecated and taken out of the product; the tool no longer exists. Userecommend_submission(advisory review) oradvance_submission_statusfor review actions.
0.11.0 — June 12, 2026
Withdrew the experimental preview_form MCP Apps widget.
- * A short-lived experimental
preview_formtool + MCP Apps UI resource (io.modelcontextprotocol/ui) was trialed and removed the same day — inline MCP Apps rendering is still unreliable in current hosts. Form previews remain available via the existing tools and the form’s/share/<slug>link. No stable tools were affected.
0.10.0 — June 12, 2026
AI Context documents — shared guidance for humans and agents.
- + AI Context tools:
list_context_documents,get_context_document,create_context_document,update_context_document,delete_context_document— tenant-scoped markdown guidance documents (kinds:review_guide,form_purpose,field_glossary,general), each optionally linked to a form. Shown to human reviewers in the admin AI Contexttab and the submission-review panel, and read by agents as build guides and review rubrics — write a “how to build X” doc once and the next agent can repeat the build. - *
get_submissionattachesreviewContextandget_formattachesbuildContext— the form’s context documents plus tenant-wide ones, delivered with the data so agents don’t need a separate lookup. Bounded (12 docs, 6,000 chars per body) with truncation reported, never silent: oversized docs carrytruncated/fullLengthand the response note says to fetch the full body viaget_context_document. - * Server
instructionsoninitialize— connected agents are steered to consult context documents before building or reviewing a form, and to preferduplicate_formfor same-form-new-term requests (e.g. “make a new inload form for spring”).
0.9.1 — June 11, 2026
Fix: update_form_settings no longer wipes grouped settings.
- *
update_form_settingsnow deep-merges the groupedrenderSettingskeys (signup,booking,auditTrail,reviewSettings). Previously a patch touching one nested key replaced the whole group — e.g.{ reviewSettings: { labelBadges: true } }silently erasedrequireReviewNoteOnReturnandshowActivityTimeline. Top-level scalars still replace; unknown keys still pass through.
0.9.0 — June 11, 2026
Safe field renames: rename_field cascades references.
- + New op
rename_fieldonapply_form_tool_call({ field_name, new_name }) — renames a field and updates every reference to the old name in the same write: totalsV2 metric sources (field / schedule / repeater + sub-field, incl. hoursPair__base/__derived), pagelogicRulesconditions,visibleWhenvisibility rules, and submission-tabledisplayFields. The result note lists exactly which references were updated. Previously names were immutable via MCP because a rename silently orphaned these references (totals read 0). - *
delete_fieldnow warns about orphaned references — deleting a field that totals, logic, visibility, or submission columns still point at returns a warning naming each dangling reference. References are flagged, never auto-removed. - * Builder warning banner — opening a form whose config references missing fields (e.g. after an external edit) now shows a non-blocking warning listing each dangling reference, instead of letting totals silently render 0.
0.8.0 — June 9, 2026
Totals v2: cross-referential validation + a dry-run evaluator.
- * Cross-ref validation on
add_field/update_field: a totalsV2 source that points at a field, schedule, or repeater/sub-field that doesn’t exist on the form is now rejected with the list of valid names — instead of being written and silently rendering0(the most common formula mistake). Builds on the structural validation from 0.7.x. - + New tool
evaluate_totals_v2— dry-run a dashboard config (inline, or an existing field viaform_slug+field_name) againstsample_dataand get each metric’s computed value + target. Runs the exact engine the renderer uses (rounding, repeater sums, schedule exclusions), so you can verify formulas without rendering the form.
0.7.0 — June 8, 2026
Totals v2 formulas + per-event-type schedule policy — documented in list_field_types.
- *
totalsV2metrics now document the full surface: the{ kind: "repeater", repeater, subField }source (sum a sub-field across repeater rows, incl. hoursPair__base/__derivedhalves), per-metricrounding(half/quarter/whole/ceil/floor), atargetgoal source, named parameters(param: trueconstants) and aliases(alias: truenamed computed values). Formulas now note+ − × ÷support and the key rule: evaluatedleft-to-right with no operator precedence. - *
scheduleV2event types (titleOptions) gainexcludeFromTotals(block type doesn’t count toward hours) andrespondentHidden(template-only boundary — submitters can’t pick it, e.g. “Non Service”).
0.6.0 — June 7, 2026
Totals Dashboard v2 field type.
- + New field type
totalsV2— a self-contained metric-tile dashboard configured on the canvas (no separate workspace). Available viacreate_form/add_field. Config istotalsV2Config = { version: 2, columns, metrics }; each metric sources from a form field, a scheduleV2 total (overall/per-title/per-day), a static value, or a simple +/− formula.
0.5.0 — June 7, 2026
Schedule Grid v2 field type.
- + New field type
scheduleV2— a self-contained, timezone-safe weekly availability grid that needs no CalendarTemplate. Available viacreate_form/add_fieldand listed inlist_field_types. Submitted value is{ version: 2, events: [{ day, start, end, title, color }] }wheredayis 0=Mon…6=Sun andstart/endare minutes-from-midnight. Configuredays,startHour/endHour,slotMinutes,titleOptions, and a pre-filled lockedtemplate. - + Reusable templates:
list_schedule_v2_templates,get_schedule_v2_template,create_schedule_v2_template,update_schedule_v2_template,delete_schedule_v2_template— save and reuse a grid’s config + locked blocks across forms.
0.4.0 — May 28, 2026
Form-linked CTA buttons.
- * Button blocks can now link to one of your forms instead of a URL: set
{ linkType: "form", formId, formSlug }(get both fromlist_forms) and omithref. The send path rewrites it into a tracked, name/email-prefilled form link. Reflected inlist_block_typesschemas. - *
lint_emailnow flags form-linked buttons whose target is missing/deleted (form-link-missing), archived (form-link-archived), or unpublished (form-link-unpublished), and no longer false-positives a form button as having “no link.” The form catalog is resolved from your tenant automatically.
0.3.0 — May 26, 2026
Major batch — full tool surface.
- + Diagnostics:
whoami. - + Forms admin:
archive_form,publish_form,duplicate_form,add_page,update_page,delete_page,reorder_pages,update_form_settings,assign_workflow_to_form. - + Reads:
list_calendar_templates,get_calendar_template,list_contacts,get_contact,list_audiences,get_audience,list_workflow_templates,get_workflow_template,get_form_stats. - + Submissions:
bulk_recommend_submissions(HMAC confirm when matching > 25),add_submission_comment,advance_submission_status(HMAC confirm). - + Campaigns:
create_campaign,schedule_campaign,cancel_campaign,duplicate_campaign,save_as_template. - + Contacts & audiences:
add_contact,update_contact,tag_contact,create_audience,add_to_audience,remove_from_audience. - + Workflow & calendar template writes:
create_workflow_template,update_workflow_template,create_calendar_template,update_calendar_template. - + Variables:
list_variables,get_variable,set_variable_value. - + Email templates:
list_email_templates,get_email_template_full,update_email_template. - + Tenant, media, audit:
get_tenant,update_tenant_branding,list_media,delete_media,get_audit_log. - * All write tools now carry MCP
destructiveHintannotations. All reads carryreadOnlyHint. - *
recommend_submissiongains structured signals (concerns[],highlights[],fieldsReferenced[],suggestedAction) for richer review-panel rendering. - * Forms now carry a
revisioncounter for optimistic-concurrency protection across multi-tab + MCP + UI edits. - * Every write response includes clickable deep links to the affected form / campaign / submission for in-chat hand-off.
0.2.0 — May 2026
- + Form builder tools (V2 schema):
list_forms,get_form,create_form(single- and multi-page withlogicRules),apply_form_tool_call,list_field_types. - + Submissions soft-approval tools:
list_submissions,get_submission,recommend_submission,clear_recommendation.recommend_submissionis advisory only — never changes workflow status. - + JSON Schemas for every form field type incl.
totals(dashboard widgets + formula DSL) and rich select options.
0.1.0 — Initial release
- + MCP OAuth provider: PKCE S256 + Dynamic Client Registration + Authorization Server Metadata.
- + Campaigns tools:
list_campaigns,get_campaign,set_campaign_blocks,apply_tool_call,render_email,screenshot_email,lint_email. - + Email block templates:
list_templates,get_template,apply_template_to_campaign. - + Auto-snapshots before destructive campaign writes (
list_campaign_snapshots,restore_campaign_snapshot, 30-day TTL). - +
upload_imagefor the media library. - + Slash-command prompts via
prompts/list.
Versioning policy
The server's MAJOR.MINOR.PATCH version is exposed at GET /api/mcp in the version field.
- Patch (0.x.Y): bug fixes, doc updates, internal refactors. No client-visible changes.
- Minor (0.X.0): new tools, new optional fields on existing tool inputs/outputs, new prompts. Backwards-compatible.
- Major (X.0.0): breaking schema changes, tool removals, scope renames. Announced ≥ 30 days in advance via this changelog and an email to active OAuth clients' registered contacts where available.