Server data from the Official MCP Registry
Model Context Protocol server for CiviCRM — AuthX-first, schema-introspected, write-gated.
Model Context Protocol server for CiviCRM — AuthX-first, schema-introspected, write-gated.
Valid MCP server (1 strong, 1 medium validity signals). 1 code issue detected. 2 known CVEs in dependencies (0 critical, 2 high severity) Package registry verified. Imported from the Official MCP Registry. 1 finding(s) downgraded by scanner intelligence.
12 files analyzed · 4 issues found
Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.
This plugin requests these system permissions. Most are normal for its category.
Set these up before or after installing:
Environment variable: CIVICRM_BASE_URL
Environment variable: CIVICRM_API_KEY
Environment variable: CIVICRM_CMS
Environment variable: CIVICRM_SITE_KEY
Environment variable: CIVICRM_AUTH_MODE
Environment variable: CIVICRM_ALLOW_WRITES
Environment variable: CIVICRM_ALLOW_DELETES
Add this to your MCP configuration file:
{
"mcpServers": {
"io-github-yogiadhik-civicrm-mcp": {
"env": {
"CIVICRM_CMS": "your-civicrm-cms-here",
"CIVICRM_API_KEY": "your-civicrm-api-key-here",
"CIVICRM_BASE_URL": "your-civicrm-base-url-here",
"CIVICRM_SITE_KEY": "your-civicrm-site-key-here",
"CIVICRM_AUTH_MODE": "your-civicrm-auth-mode-here",
"CIVICRM_ALLOW_WRITES": "your-civicrm-allow-writes-here",
"CIVICRM_ALLOW_DELETES": "your-civicrm-allow-deletes-here"
},
"args": [
"-y",
"civicrm-mcp"
],
"command": "npx"
}
}
}From the project's GitHub README.
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.
npm install
npm run build
See docs/INSTALL_CIVICRM.md for a 20-minute guide to running CiviCRM Standalone locally via DDEV.
Generate an API key for a dedicated "MCP Bot" contact:
access CiviCRM, view all contacts, optionally edit all contacts, authenticate with api 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
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.
Diagnostics
| Tool | What it does |
|---|---|
civicrm_system_info | Connectivity / version sanity check; resolves the authenticated bot contact. |
Read
| Tool | What it does |
|---|---|
civicrm_find_contacts | Search contacts by name or primary email. |
civicrm_get_contact | Fetch one contact by id, with sensible default fields. |
civicrm_get_relationships | List a contact's relationships with direction resolved. |
civicrm_get_contributions | List contributions with filters (donor, date window, status, type) and running sum. |
civicrm_list_events | List events (defaults to upcoming only). |
Introspection
| Tool | What it does |
|---|---|
civicrm_list_entities | List every APIv4 entity available on the install (incl. extensions). |
civicrm_describe_entity | Return fields + actions for an entity. Call this before civicrm_api4 if unsure. |
Write (require CIVICRM_ALLOW_WRITES=true)
| Tool | What it does |
|---|---|
civicrm_create_contact | Create a contact; chains email/phone creation. |
civicrm_update_contact | Update fields on an existing contact by id. |
civicrm_log_activity | Record an Activity (Phone Call, Meeting, Email, custom types). |
civicrm_record_contribution | Record a donation / contribution. |
civicrm_add_to_group | Add a contact to a group (idempotent). |
civicrm_remove_from_group | Mark a contact as Removed from a group (preserves history). |
civicrm_register_for_event | Register a contact for an event (Participant.create). |
civicrm_create_membership | Create a Membership record; CiviCRM auto-calculates dates from the type. |
Escape hatch
| Tool | What it does |
|---|---|
civicrm_api4 | Generic APIv4 passthrough — any entity, any action. Gated by env flags. |
create, update, save, submit) are refused unless CIVICRM_ALLOW_WRITES=true.delete, replace) are refused unless CIVICRM_ALLOW_DELETES=true.api_key and hash fields are stripped from contact responses.MIT
Be the first to review this server!
by Modelcontextprotocol · Developer Tools
Read, search, and manipulate Git repositories programmatically
by Toleno · Developer Tools
Toleno Network MCP Server — Manage your Toleno mining account with Claude AI using natural language.
by mcp-marketplace · Developer Tools
Create, build, and publish Python MCP servers to PyPI — conversationally.