MCP.Market

Civicrm MCP server

by YogiAdhik·io.github.YogiAdhik/civicrm-mcp·v0.1.2

Model Context Protocol server for CiviCRM — AuthX-first, schema-introspected, write-gated.

B72/100grade B
What users say
No reviews yet
Be the first
Safety scan
B72/100

full report

Adoption
New

0 stars55 downloads/wk

Reviews

Write one

Nobody has reviewed Civicrm yet.

If you have run it, two minutes of your experience saves the next person an afternoon.

Civicrm tools (17, 5 write)

write = sends, deletes, buys or posts

Read from the package source without running it. The installed server may list more.

  • civicrm_add_to_group

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

  • civicrm_api4

    Generic APIv4 call. Accepts entity + action + params. Writes are gated by CIVICRM_ALLOW_WRITES; deletes by CIVICRM_ALLOW_DELETES. Use civicrm_describe_entity first if unsure of field names.

  • civicrm_create_contactwrite action

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

  • civicrm_create_membershipwrite action

    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_describe_entity

    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_find_contacts

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

  • civicrm_get_contact

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

  • civicrm_get_contributions

    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_get_relationships

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

  • civicrm_list_entities

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

  • civicrm_list_events

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

  • civicrm_log_activity

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

  • civicrm_record_contribution

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

  • civicrm_register_for_eventwrite action

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

  • civicrm_remove_from_groupwrite action

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

  • civicrm_system_info

    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_update_contactwrite action

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

Public scan report

scanner v0.1.9 · 2026-09-27 · same rubric, same numbers if you re-run it

no findings
  • Code scan47 source files scanned25/25
  • –Live reliabilityno gateway calls yet and no remote to proben/a
  • –Tool poisoningtools not inspected (local package is not executed); not countedn/a
  • Auth qualitystatic API keys via environment variables6/15
  • Maintenancelast push 132 days ago8/15
  • Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
Overall 72/100. Components that don't apply are left out of the denominator. Any critical finding is an F.RubricAppeal a findingJSON

How Civicrm compares

Against every graded AI and agents MCP server, from our own scans and uptime checks. Updated after each scan run.

Safety score
72/100
higher than 40% of 4,460 AI and agents servers
Tools
17
the typical AI and agents server has 6
Tools that change things
29%
typical: 0%. Fewer write tools means less an agent can break
Downloads a week
55
more than 46% of 1,538 AI and agents servers with a package

What its tools let an agent do: 12 read · 5 change

Install Civicrm in Claude Code, Cursor or VS Code

Runs npx -y civicrm-mcp on your machine. Read the scan report first; the gateway never runs local packages.

claude mcp add civicrm-mcp -- npx -y civicrm-mcp
Add to Cursor

What the publisher says

From the Civicrm repository's README, as published. We do not edit it. Read it on GitHub

civicrm-mcp

A Model Context Protocol server for CiviCRM. Lets any MCP-compatible client talk to a CiviCRM install through its APIv4.

Status: v0.1 — stdio transport, three tools, AuthX-first auth.

Requirements

  • Node.js 18.17 or later
  • CiviCRM 5.47 or later (tested against 5.59+)
  • A CiviCRM install on Drupal, WordPress, Backdrop, or Standalone

Install

npm install
npm run build

Don't have a CiviCRM yet?

See docs/INSTALL_CIVICRM.md for a 20-minute guide to running CiviCRM Standalone locally via DDEV.

Configure

Generate an API key for a dedicated "MCP Bot" contact:

  1. Create a CMS user + CiviCRM contact just for this integration.
  2. Grant it the CiviCRM permissions you want exposed (access CiviCRM, view all contacts, optionally edit all contacts, authenticate with api key).
  3. On that contact's summary page → More → API Key, generate a random 20+ character key.

Copy .env.example to .env and fill in:

CIVICRM_BASE_URL=https://crm.example.org
CIVICRM_CMS=drupal            # or wordpress | standalone | backdrop
CIVICRM_API_KEY=...
CIVICRM_SITE_KEY=...          # only if the site-key guard is enabled
CIVICRM_AUTH_MODE=authx       # or legacy for pre-AuthX sites
CIVICRM_ALLOW_WRITES=false        # writes off by default
CIVICRM_ALLOW_DELETES=false       # deletes off by default
CIVICRM_ALLOW_GENERIC_API=false   # civicrm_api4 passthrough off by default
CIVICRM_DRY_RUN_DEFAULT=false     # set true to make every write/delete a dry-run
CIVICRM_TOOLS_ENABLED=            # comma-separated allowlist; empty = all
CIVICRM_TOOLS_DISABLED=           # comma-separated denylist; wins over enabled

Wire up an MCP client

Any MCP-compatible client that supports stdio servers can load this. Add an entry like the one below to your client's MCP configuration file:

{
  "mcpServers": {
    "civicrm": {
      "command": "npx",
      "args": ["-y", "civicrm-mcp"],
      "env": {
        "CIVICRM_BASE_URL": "https://crm.example.org",
        "CIVICRM_CMS": "drupal",
        "CIVICRM_API_KEY": "…",
        "CIVICRM_ALLOW_WRITES": "false"
      }
    }
  }
}

Consult your client's documentation for where its MCP config file lives.

Tools

Diagnostics

Read

Introspection

Shortened. The full README is on GitHub.

Nothing above is checked by us. What we check is on the safety report.

Civicrm: common questions

Is Civicrm MCP server safe?
Mostly: it is graded B (72/100). Read the Civicrm safety report
How do I install Civicrm?
It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
Does Civicrm need an API key?
Yes. The registry entry asks for CIVICRM_API_KEY, CIVICRM_SITE_KEY.
Is Civicrm maintained?
The last commit was 170 days ago (2026-05-18). The latest release is v0.1.2.
What can I use instead of Civicrm?
Servers from other publishers that do the same job: Basic Memory MCP server, FireCMS Cloud MCP server and HOL Guard MCP server.
How does Civicrm compare with other AI and agents MCP servers?
safety score 72/100 (higher than 40% of 4,460 AI and agents servers); tools 17 (the typical AI and agents server has 6); tools that change things 29% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.

Alternatives to Civicrm

Same job from other publishers: the closest match first, then the best rated.

  • Basic Memory
    Local-first knowledge management with bi-directional LLM sync via Markdown files.
    B
  • FireCMS Cloud
    Manage FireCMS Cloud from an AI agent: Firestore data, collections, schemas and users.
    A
  • HOL Guard
    Local-first AI agent security evidence and approval workflows through HOL Guard's stdio MCP server.
    A
  • Agent-Native Chat
    Minimal chat-first app with durable threads, actions, and the app-agent loop
    A
  • Butterbase AI
    Butterbase MCP server — manage your backend: schemas, auth, functions, storage, RAG, deploys.
    A