LeashIndex Get the report

Index / crm

CiviCRM MCP by usefulapi

io-usefulapi-civicrm declares 24 capabilities across 24 tools, with 2 critical issues. One of them, no-revocation, is recorded for every server in the index because MCP has no field in which to declare a way to switch a tool off; a missing declaration is not evidence that the control is missing.

60/100 exposureElevated

Manifest recorded 2026-10-28 from tools/list on https://civicrm.usefulapi.io/mcp, published in the official MCP registry as io.usefulapi/civicrm 1.16.5. The date changes only when the manifest does. Not verified by a maintainer.

Issues

These describe what this server's manifest declares. A product can provide controls that MCP has no way to express — token revocation, an admin console, audit logs — and this page cannot see them. The absence of a declaration is not evidence that a control is absent.

critical · no-revocation · All 24 tools

24 of 24 tools declare no way for the customer to switch them off once granted. This applies to every tool because MCP has no field in which to declare a revocation mechanism; the product may provide one outside MCP that a manifest cannot show.

critical · destructive-uncapped · 1 of 24 tools

1 tool is annotated by the server as destructive (destructiveHint) and declares no limit. In MCP that annotation marks a tool that may make destructive changes rather than only additive ones; it does not say the change cannot be undone.

high · no-expiry · All 24 tools

24 of 24 tools declare no expiry. This applies to every tool because MCP has no field in which to declare an expiry; the product may provide one outside MCP that a manifest cannot show.

high · no-audit-trail · All 24 tools

24 of 24 tools declare no record of their actions that the customer can read. This applies to every tool because MCP has no field in which to declare an audit requirement; the product may provide one outside MCP that a manifest cannot show.

high · uncapped-write · 7 of 24 tools

7 tools can modify data and declare no limit.

low · uncapped-read · 16 of 24 tools

16 tools can read data and declare no limit.

Declared capabilities

How each tool was read. declared means the server's own annotation said so — self-reported and unverified. inferred is from the tool's name. assumed means nothing indicated either way.

ToolRead asBasis
civicrm_whoamiread declared
civicrm_search_contactsread declared
civicrm_get_contactread declared
civicrm_list_contact_notesread declared
civicrm_list_relationshipsread declared
civicrm_list_contributionsread declared
civicrm_list_membershipsread declared
civicrm_list_eventsread declared
civicrm_list_participantsread declared
civicrm_list_activitiesread declared
civicrm_list_casesread declared
civicrm_list_groupsread declared
civicrm_list_group_contactsread declared
civicrm_get_fieldsread declared
civicrm_list_entitiesread declared
civicrm_queryread declared
civicrm_create_contactwrite inferred
civicrm_update_contactdestructive declared
civicrm_add_contact_notewrite inferred
civicrm_log_activitywrite assumed
civicrm_record_contributionwrite assumed
civicrm_create_membershipwrite inferred
civicrm_add_contact_to_groupwrite inferred
civicrm_register_participantwrite assumed
Answering this question about your own agent? The self-serve stack report applies the same reading to your own stack or server and gives you a dated document you can hand to a customer's security review. It is generated in your browser, with nobody to wait for. Buying one does not change this page, its score or its place in the index — see Independence.
Maintain this server? If this page misreads your manifest, or your server has changed, submit its current tools/list response and it will be re-scored and dated. Corrections are published alongside the original, not in place of it.