Skip to content

FluentCRM

New in 3.19.0 (Pro). Two dispatcher tools work with FluentCRM 3.x (the free edition is enough):

ToolDefaultPurpose
fluentcrm-readOnThe setup, contacts, tags, lists, custom fields, campaigns, templates, previews and automations (15 operations)
fluentcrm-writeOffContacts, notes, imports and tagging, tags and lists, custom fields, templates, campaigns and sends, automations (33 operations)

Enable the write tool under Tools > Plugins > FluentCRM. EMCP runs FluentCRM’s own abilities and REST API in-process; every operation checks FluentCRM’s own permission (fcrm_*).

FluentCRM has its own MCP server behind FluentCRM > Settings > MCP. EMCP respects that switch: while it is off, every operation except get-setup answers fluentcrm_mcp_disabled.

  • get-setup: version, whether FluentCRM’s AI access is on, the live automation triggers, user sync, double opt-in and sender settings, contact statuses, and the write operations you may run.
  • list-contacts (search, tags, lists, statuses, dates, or advanced filters), get-contact.
  • list-tags, list-lists, list-custom-fields, list-campaigns, get-campaign (with recipients_estimate), list-templates, preview-email, list-automations, get-automation.

Every contact, tag, list, campaign, template, automation and the custom field list answers a version; pass it to every write. A different version is a conflict; force: true writes anyway.

  • create-contact with email, fields, address, custom_fields, tags and lists. An email that exists in any case is contact_exists.
  • update-contact changes only the fields you pass. "" or null clears a field, [] a multiple choice. add_tags, remove_tags, add_lists, remove_lists.
  • A write that would change a linked administrator’s name or email, or let FluentCRM change a user’s email, is refused (linked_admin_user, wp_user_email_sync).
  • add-note, update-note, delete-note; add-custom-field, update-custom-field.

Tag, list and user writes can enter contacts into automations that send email in the same call. EMCP holds FluentCRM’s automation triggers for every write. Pass run_automations: true to let them run; the answer lists the automations entered and the emails sent.

import-contacts and tag-contacts take up to 200 contacts per call (dry_run: true counts first). Import rows carry the contact fields themselves plus address, custom_fields, tags and lists; an unknown row or address key is refused before anything is written. if_exists is merge (default) or skip, and missing tags and lists are created only with create_missing: true. merge-tags and merge-lists move contacts onto one tag or list. Tag and list deletes and merges need confirm: true and touch up to 500 attached contacts. Over a cap the answer is too_many_contacts and nothing is written.

Nothing is emailed without confirm: true.

  • create-campaign and update-campaign write drafts only. duplicate-campaign, delete-campaign.
  • schedule-campaign: expected_recipients must equal the recipients_estimate from get-campaign, or the answer is recipients_mismatch and nothing is queued. scheduled_at is site-local Y-m-d H:i.
  • unschedule-campaign works while none of its emails has left the queue (emails_sent otherwise). pause-campaign, resume-campaign.
  • send-test-email goes to your own address only. send-email-to-contact (confirm) sends one email to one contact.
  • Templates: get-template, create-template, update-template, delete-template.
  • set-automation-status to publish needs confirm: true; setting one back to draft cannot be undone.
  • set-contact-automation moves a contact in an automation; resuming or advancing needs confirm: true and cannot be undone. list-automation-contacts shows who is where.

Undo never makes a contact sendable again: a contact who unsubscribed, bounced or complained after the write is refused with contact_opted_out, and a list they left is never restored, force or not. delete-contact (confirm) erases the contact and removes their data from every earlier History entry; a delete in FluentCRM’s admin does too.

From our test run with the fictional Larkspur Kitchen School, recorded over a real MCP connection with FluentCRM’s free edition. The FluentCRM integration page shows every call the assistant made.

FluentCRM All Contacts list with eight subscribed contacts on the Autumn term list, tagged Pasta class, Knife skills or Bread and pastry.

The imported contacts, each with its list and tag.

FluentCRM Email Campaigns list with Autumn term is open marked Pending Scheduled, broadcast in 5 days.

The campaign while it was scheduled.

Most writes can be undone in History. Undo checks the version (force skips only that) and refuses when later real work happened: a contact who has since received email or entered an automation, a tag or list in use, a campaign whose emails left the queue. Sends, unschedules, automation moves and erasures are recorded for the audit trail only.