Skip to main content
Glama
YogiAdhik

civicrm-mcp

by YogiAdhik

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
CIVICRM_CMSYesThe CMS type (drupal, wordpress, standalone, backdrop).
CIVICRM_API_KEYYesThe API key for the bot contact.
CIVICRM_BASE_URLYesThe base URL of your CiviCRM installation.
CIVICRM_SITE_KEYNoThe site key if the site-key guard is enabled.
CIVICRM_AUTH_MODENoAuthentication mode: authx or legacy.
CIVICRM_ALLOW_WRITESNoEnable write tools.false
CIVICRM_ALLOW_DELETESNoEnable delete tools.false
CIVICRM_TOOLS_ENABLEDNoComma-separated allowlist of tool names; empty = all.
CIVICRM_TOOLS_DISABLEDNoComma-separated denylist of tool names; wins over enabled.
CIVICRM_DRY_RUN_DEFAULTNoSet to true to make every write/delete a dry-run.false
CIVICRM_ALLOW_GENERIC_APINoEnable generic API passthrough.false

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
civicrm_system_infoA

Connectivity sanity check — returns CiviCRM version (via Domain entity), the authenticated bot contact, and a count of installed extensions. Run first when debugging auth or URL setup.

civicrm_whoamiA

Resolves the authenticated bot contact and probes which CiviCRM entities it can read. Use this first when setting up the server — it surfaces the most common misconfigurations (wrong API key, missing 'authenticate with api key' permission, bot contact lacks 'access CiviCRM'). Does not probe writes.

civicrm_find_contactsA

Search CiviCRM contacts by name or primary email. Returns id, display name, type, primary email and phone.

civicrm_get_contactA

Fetch a single CiviCRM contact by id. Returns core profile plus primary email/phone/address; pass fields to override.

civicrm_get_relationshipsA

List relationships (family, employer, membership, custom types) for a contact. Resolves the other party's display name and direction automatically.

civicrm_get_contributionsA

List contributions (donations, dues, event fees) with optional filters by contact, date window, status, and financial type. Resolves donor display name and human-readable status labels.

civicrm_list_eventsA

List CiviEvent events. Defaults to upcoming only. Returns id, title, type, dates, public/online flags.

civicrm_list_saved_searchesA

List SavedSearch records (the SearchKit queries an admin has built in the UI). Use this to discover what's available to run via civicrm_run_saved_search.

civicrm_run_saved_searchA

Execute a SavedSearch and return its rows via SearchDisplay.run. Pair with civicrm_list_saved_searches to discover available searches. This is the safest and cheapest way to run complex queries — the admin curates the query in the UI, the agent just calls it by name.

civicrm_list_entitiesA

List all CiviCRM APIv4 entities available on this install (including those added by extensions). Optional substring filter.

civicrm_describe_entityA

Introspect an APIv4 entity — returns available fields (incl. custom fields) and actions. Call this before civicrm_api4 when unsure of field names or action support.

civicrm_describe_field_optionsA

Return the option list (pseudoconstant values) for a single field on an entity. Far cheaper than civicrm_describe_entity when you only need to know the valid values for one enum-like field — e.g. 'what are the legal activity_type values'.

civicrm_create_contactB

Create a new CiviCRM contact. Chains email and phone creation when provided. Requires CIVICRM_ALLOW_WRITES=true.

civicrm_update_contactA

Update fields on a single CiviCRM contact by id. Requires CIVICRM_ALLOW_WRITES=true.

civicrm_log_activityB

Record an Activity against a target contact. Requires CIVICRM_ALLOW_WRITES=true.

civicrm_record_contributionB

Record a donation / contribution for a contact. Requires CIVICRM_ALLOW_WRITES=true.

civicrm_add_to_groupA

Add a contact to a group (GroupContact status='Added'). Idempotent — updates an existing row rather than creating duplicates. Requires CIVICRM_ALLOW_WRITES=true.

civicrm_remove_from_groupA

Mark a contact as Removed from a group (GroupContact status='Removed'). Preserves history — does not hard-delete. Requires CIVICRM_ALLOW_WRITES=true.

civicrm_register_for_eventA

Create a Participant record registering a contact for an event. Requires CIVICRM_ALLOW_WRITES=true.

civicrm_create_membershipA

Create a Membership record for a contact. CiviCRM will auto-calculate start/end dates from the membership type's duration if omitted. Requires CIVICRM_ALLOW_WRITES=true.

civicrm_add_noteA

Attach a free-text Note to a contact, contribution, activity, case, or relationship. Requires CIVICRM_ALLOW_WRITES=true. Notes are the right place for unstructured context that doesn't belong in a custom field.

civicrm_tag_contactsA

Add a tag to one or more contacts in a single call. Idempotent — re-tagging an already-tagged contact is a no-op. Requires CIVICRM_ALLOW_WRITES=true.

civicrm_untag_contactsA

Remove a tag from one or more contacts in a single call. Requires CIVICRM_ALLOW_WRITES=true AND CIVICRM_ALLOW_DELETES=true (EntityTag rows are hard-deleted).

civicrm_send_contribution_receiptA

Send (or re-send) the standard receipt email for a contribution. Wraps Contribution.sendconfirmation. Requires CIVICRM_ALLOW_WRITES=true because the call triggers an outbound email.

civicrm_api4A

Generic APIv4 call. Accepts entity + action + params. Disabled unless CIVICRM_ALLOW_GENERIC_API=true; writes additionally need CIVICRM_ALLOW_WRITES and deletes need CIVICRM_ALLOW_DELETES. Use civicrm_describe_entity first if unsure of field names.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/YogiAdhik/civicrm-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server