civicrm mcp for VS Code
io.github.yogiadhik/civicrm-mcp
Model Context Protocol server for CiviCRM — AuthX-first, schema-introspected, write-gated.
client:VS Code
transport:stdio
runtime:npm
Install civicrm mcp in VS Code
.vscode/mcp.json
{
"inputs": [
{
"type": "promptString",
"id": "civicrm-base-url",
"description": "CIVICRM_BASE_URL",
"password": true
},
{
"type": "promptString",
"id": "civicrm-api-key",
"description": "CIVICRM_API_KEY",
"password": true
},
{
"type": "promptString",
"id": "civicrm-cms",
"description": "CIVICRM_CMS",
"password": true
},
{
"type": "promptString",
"id": "civicrm-site-key",
"description": "CIVICRM_SITE_KEY",
"password": true
},
{
"type": "promptString",
"id": "civicrm-auth-mode",
"description": "CIVICRM_AUTH_MODE",
"password": true
},
{
"type": "promptString",
"id": "civicrm-allow-writes",
"description": "CIVICRM_ALLOW_WRITES",
"password": true
},
{
"type": "promptString",
"id": "civicrm-allow-deletes",
"description": "CIVICRM_ALLOW_DELETES",
"password": true
}
],
"servers": {
"civicrm-mcp": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"civicrm-mcp"
],
"env": {
"CIVICRM_BASE_URL": "${input:civicrm-base-url}",
"CIVICRM_API_KEY": "${input:civicrm-api-key}",
"CIVICRM_CMS": "${input:civicrm-cms}",
"CIVICRM_SITE_KEY": "${input:civicrm-site-key}",
"CIVICRM_AUTH_MODE": "${input:civicrm-auth-mode}",
"CIVICRM_ALLOW_WRITES": "${input:civicrm-allow-writes}",
"CIVICRM_ALLOW_DELETES": "${input:civicrm-allow-deletes}"
}
}
}
}
VS Code prompts for each input the first time the server starts, so no secret is written to the file. VS Code docs