CiviCRM MCP by usefulapi

io.usefulapi由 usefulapi.io 发布官方发布者v1.16.4更新于 Nov 7, 2026

Work with your own CiviCRM: contacts, contributions, memberships, events; log activities.

发布方自己的服务:Ably MCP by usefulapi

已验证Streamable HTTP可网页运行效率与工作流商业与电商

概览

AI 生成的概览

托管式 CiviCRM MCP 服务器:搜索联系人、查看捐款、会员与活动,并录入新的 CRM 记录。

可以做什么
  • 搜索、读取并查看联系人、备注、关系与沟通偏好
  • 按条件列出捐款、会员、活动、参与者、活动记录、案例与群组
  • 查看实体与字段定义,并对任意 CiviCRM APIv4 实体执行只读查询
  • 创建和更新联系人、添加备注、记录活动、登记捐款、创建会员、加入群组、报名活动
  • 查看用量、提交功能请求、升级或取消付费方案
适用场景
适合让助手回答 CiviCRM 数据问题,例如捐赠历史、即将到期的会员、活动报名和联系人详情,或在不打开 CiviCRM 的情况下录入备注、活动和捐款等日常记录。
运行要求
通过 streamable HTTP 连接的远程端点,只需填写 URL,登录使用 OAuth。首次连接需输入 CiviCRM 站点地址,以及具备“使用 API 密钥认证”权限的联系人的 API 密钥。免费方案每月 50 次工具调用,付费方案按用户计费。
安装前请注意
写入类工具会创建和修改真实 CRM 记录:联系人、备注、活动、捐款、会员、群组成员和活动报名。加入群组可能导致后续邮件发送,捐款和会员记录会影响捐赠历史与报表。创建联系人不会查重。CiviCRM 站点地址和 API 密钥会提供给第三方托管服务,付费方案涉及支付链接和订阅。

安装

在 SourceWeft 中

  1. 打开 控制台中的 CiviCRM MCP by usefulapi,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

交给智能体安装

把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。

阅读 https://sourceweft.com/mcp/io.usefulapi%2Fcivicrm/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。

查看智能体所依据的安装指南

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。

{
  "mcpServers": {
    "civicrm-by-usefulapi": {
      "type": "http",
      "url": "https://civicrm.usefulapi.io/mcp"
    }
  }
}

README

CiviCRM MCP by usefulapi

Work with your own CiviCRM: contacts, contributions, memberships, events; log activities.

Live endpoint: https://civicrm.usefulapi.io/mcp · Homepage: https://usefulapi.io/civicrm

Connect

  • Claude (claude.ai, Desktop): open Customize → Connectors, click + Add → Add custom connector, and paste https://civicrm.usefulapi.io/mcp.
  • Claude Code: claude mcp add --transport http civicrm https://civicrm.usefulapi.io/mcp, then run /mcp to log in.
  • VS Code: Add to VS Code.
  • Cursor and other clients: add the URL as a remote MCP server:
json
{  "mcpServers": {    "civicrm": {      "url": "https://civicrm.usefulapi.io/mcp"    }  }}

Add only the URL. Do not add an Authorization header or an API key to the client config: the server signs you in with OAuth, and the login page asks for your CiviCRM credentials.

Step-by-step setup, where to find your credentials, and FAQ: https://usefulapi.io/civicrm/

On first connect you'll enter your CiviCRM site address (e.g. https://crm.example.org) and an API key of a contact with the "authenticate with api key" permission.

Tools

ToolTypeWhat it does
civicrm_whoamireadGet current contact
civicrm_search_contactsreadSearch contacts
civicrm_get_contactreadGet contact
civicrm_list_contact_notesreadList contact notes
civicrm_list_relationshipsreadList contact relationships
civicrm_list_contributionsreadList contributions
civicrm_list_membershipsreadList memberships
civicrm_list_eventsreadList events
civicrm_list_participantsreadList event participants
civicrm_list_activitiesreadList activities
civicrm_list_casesreadList cases
civicrm_list_groupsreadList groups
civicrm_list_group_contactsreadList group members
civicrm_get_fieldsreadDescribe an entity's fields
civicrm_list_entitiesreadList API entities
civicrm_queryreadQuery any entity
civicrm_create_contactwriteCreate contact
civicrm_update_contactwriteUpdate contact
civicrm_add_contact_notewriteAdd contact note
civicrm_log_activitywriteLog activity
civicrm_record_contributionwriteRecord contribution
civicrm_create_membershipwriteCreate membership
civicrm_add_contact_to_groupwriteAdd contact to group
civicrm_register_participantwriteRegister participant
civicrm_usage_statusmetaUsage status (free-tier meter)
civicrm_request_featuremetaRequest a missing feature
civicrm_upgrademetaUpgrade to Pro or Pro+
civicrm_cancel_subscriptionmetaCancel the Pro subscription

read tools are read-only; write tools mutate data (clients should confirm them); meta tools report usage, manage your subscription or send a feature request.

Pricing

PlanPriceLimit
Free$050 tool calls / month
Pro (per user)$9/mo or $90/yr (2 months free)Unlimited*

*Pro has a fair use limit of 10,000 tool calls a month on this server. For more, write to [email protected].

Pro covers this server only. Subscribe with civicrm_upgrade (it returns a Stripe Checkout link). Cancel any time with civicrm_cancel_subscription: Pro continues to the end of the paid period, with no refund for the current period, and running civicrm_upgrade before then undoes the cancel. Or write to [email protected].

License

MIT © usefulapi. Not affiliated with or endorsed by CiviCRM.

来源:servers/civicrm/README.md,提交 4046075

工具

24

civicrm_whoami

Get current contact

The CiviCRM contact this API key belongs to (contact id, display name, contact type) and how it authenticated. Everything the other tools do is limited to that contact's permissions. GET /civicrm/authx/id, then APIv4 Contact.get.

无需输入参数。

civicrm_search_contacts

Search contacts

Find contacts (people, organizations, households) by a word in their name, e-mail address or phone number, optionally of one contact type. Trashed contacts are left out. Returns id, display name, type, primary e-mail and phone. APIv4 Contact.get.

输入参数limitqueryoffsetcontact_type

civicrm_get_contact

Get contact

One contact by id: name, type, job title, source, communication preferences (do not e-mail, opted out, ...), dates, plus all their e-mail addresses, phone numbers and postal addresses. APIv4 Contact.get, Email.get, Phone.get, Address.get.

输入参数contact_id必填

civicrm_list_contact_notes

List contact notes

The notes recorded on one contact (subject, text, who wrote it, when), newest first. APIv4 Note.get.

输入参数limitoffsetcontact_id必填

civicrm_list_relationships

List contact relationships

The relationships of one contact (employee of, spouse of, volunteer for, ...) with the other contact, start and end date and whether it is active. APIv4 Relationship.get.

输入参数limitoffsetcontact_id必填active_only

civicrm_list_contributions

List contributions

Contributions (donations, membership dues, event fees) with contact, amount, currency, financial type, status, payment method, date and source, newest first. Filter by contact, status, financial type, date range and minimum amount. Test contributions are left out. APIv4 Contribution.get.

输入参数limitoffsetstatusdate_todate_fromcontact_idmin_amountfinancial_type

civicrm_list_memberships

List memberships

Memberships with contact, membership type, status (New, Current, Grace, Expired, ...), join, start and end date. Filter by contact, status, type, or those ending before a date (renewal follow-up). Test memberships are left out. APIv4 Membership.get.

输入参数limitoffsetstatuscontact_idends_afterends_beforemembership_type

civicrm_list_events

List events

Events with title, type, start and end date, whether active and public, maximum participants and summary. Upcoming events first when upcoming_only is set. Template events are left out. APIv4 Event.get.

输入参数limittitleoffsetactive_onlyupcoming_only

civicrm_list_participants

List event participants

Event registrations with event, contact, status (Registered, Attended, Cancelled, ...), role, registration date and fee. Filter by event, contact or status. Test registrations are left out. APIv4 Participant.get.

输入参数limitoffsetstatusevent_idcontact_id

civicrm_list_activities

List activities

Activities (meetings, phone calls, e-mails, follow-ups, ...) with type, subject, status, date and details, newest first. With contact_id: the activities that contact took part in, with their role (source, target or assignee). Otherwise all activities, optionally of one type or status. APIv4 ActivityContact.get / Activity.get.

输入参数limitoffsetstatusdate_todate_fromcontact_idactivity_type

civicrm_list_cases

List cases

Cases (CiviCase) with subject, case type, status and dates. With contact_id: the cases that contact is a client of. Needs the CiviCase component to be enabled. APIv4 CaseContact.get / Case.get.

输入参数limitoffsetstatuscontact_id

civicrm_list_groups

List groups

Contact groups (mailing lists, static groups, smart groups) with title, description, visibility and type. APIv4 Group.get.

输入参数limittitleoffsetactive_only

civicrm_list_group_contacts

List group members

The members of one static group (or the groups one contact belongs to): contact, group and membership status (Added, Removed, Pending). Smart groups are computed by CiviCRM and not listed here. APIv4 GroupContact.get.

输入参数limitoffsetstatusgroup_idcontact_id

civicrm_get_fields

Describe an entity's fields

The fields of one CiviCRM entity (Contact, Contribution, Event, ...) including custom fields: name, label, data type, whether required, and the allowed options for a pick-list field. Use it to find the right field names for civicrm_query and the right option names for the filters and write tools. APIv4 <Entity>.getFields.

输入参数fieldactionentity必填

civicrm_list_entities

List API entities

The APIv4 entities this CiviCRM site offers (Contact, Contribution, Event, plus those of installed extensions), with a short description. Use the names with civicrm_get_fields and civicrm_query. APIv4 Entity.get.

输入参数search

civicrm_query

Query any entity

Read records of ANY CiviCRM entity with APIv4 Entity.get: choose fields, filter, sort and page. Use civicrm_list_entities and civicrm_get_fields for the names. Field names may be joined (`contact_id.display_name`, `email_primary.email`) or ask for an option's text (`status_id:label`). Examples: entity Tag; entity Campaign with where [{field:'is_active',op:'=',value:true}]; entity Contribution with select ['id','total_amount'] and where [{field:'total_amount',op:'>=',value:1000}]. Read-only; credential fields and system entities (settings, payment processors, mailings, users) are refused.

输入参数limitwhereentity必填offsetselect必填order_by

civicrm_create_contact

Create contact

WRITE: creates ONE new contact (an individual, organization or household) and optionally its first e-mail address and phone number. Does not check for duplicates: search first with civicrm_search_contacts. Sends nothing. APIv4 Contact.create, Email.create, Phone.create.

输入参数emailphonesourcejob_titlelast_namefirst_namecontact_type必填household_nameorganization_name

civicrm_update_contact

Update contact

WRITE: changes basic fields of ONE existing contact (name, job title, source, preferred language) and/or its communication preferences (do not e-mail, do not phone, do not mail, do not SMS, opted out of bulk mail). Only the fields you give are changed. Setting a do-not flag to false re-enables contact the person may have declined, so only do that on the person's request. APIv4 Contact.update.

输入参数sourcejob_titlelast_namecontact_id必填do_not_smsfirst_nameis_opt_outdo_not_maildo_not_emaildo_not_phonehousehold_nameorganization_name另有 1 个

civicrm_add_contact_note

Add contact note

WRITE: adds ONE note to a contact's record, written by the contact this API key belongs to. Sends nothing. APIv4 Note.create.

输入参数note必填subjectcontact_id必填

civicrm_log_activity

Log activity

WRITE: records ONE activity (a meeting, phone call, e-mail, follow-up, ...) with one or more contacts. It only STORES the record: an activity of type Email does not send an e-mail. Added by the contact this API key belongs to unless source_contact_id is given. APIv4 Activity.create.

输入参数statusdetailssubject必填activity_type必填with_contact_ids必填source_contact_idactivity_date_timeassignee_contact_ids

civicrm_record_contribution

Record contribution

WRITE: records ONE contribution (a donation, a payment received elsewhere) for a contact. It only STORES the financial record: no card is charged, no receipt is e-mailed, and the amount shows up in CiviCRM's reports and the contact's giving history. Check civicrm_list_contributions first to avoid a duplicate. APIv4 Contribution.create.

输入参数sourcestatustrxn_idcurrencycontact_id必填receive_datetotal_amount必填financial_type必填payment_method

civicrm_create_membership

Create membership

WRITE: gives ONE contact a membership of a type. CiviCRM works out the dates and status from the type unless you give dates. It does NOT record a payment (use civicrm_record_contribution for that) and sends nothing. APIv4 Membership.create.

输入参数sourceend_datejoin_datecontact_id必填start_datemembership_type必填

civicrm_add_contact_to_group

Add contact to group

WRITE: adds ONE contact to ONE static group. If the group is used as a mailing list, the contact will receive future mailings sent to it, so only add people who agreed. Sends nothing by itself. Adding a contact who is already in the group changes nothing; a contact who was removed from it (or is pending) is set back to Added. APIv4 GroupContact.save matched on group and contact.

输入参数group_id必填contact_id必填

civicrm_register_participant

Register participant

WRITE: registers ONE contact for ONE event (a participant record). It does not check the event's capacity or fee, does not take payment and sends no confirmation e-mail. APIv4 Participant.create.

输入参数rolesourcestatusevent_id必填contact_id必填

版本历史

15
  1. v1.16.4最新Nov 7, 2026
  2. v1.15.3Nov 5, 2026
  3. v1.15.2Nov 5, 2026
  4. v1.15.1Nov 4, 2026
  5. v1.15.0Nov 3, 2026
  6. v1.14.1Nov 3, 2026
  7. v1.13.0Nov 1, 2026
  8. v1.11.0Oct 31, 2026
  9. v1.10.0Oct 31, 2026
  10. v1.9.2Oct 30, 2026
  11. v1.9.0Oct 30, 2026
  12. v1.4.0Oct 26, 2026
  13. v1.1.3Oct 25, 2026
  14. v1.1.0Oct 25, 2026
  15. v1.0.0Oct 24, 2026

评分

已满足适用检查项的 100%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通必需25 分
  • 已声明认证方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分

其他 Usefulapi 集成