Virtuous MCP by usefulapi

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

Search donors and contacts, giving history, notes and projects, and log notes, tags and gifts.

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

已验证Streamable HTTP可网页运行数据与分析商业与电商

概览

AI 生成的概览

面向 Virtuous CRM 的托管 MCP 服务器,让助手搜索捐赠人和联系人、读取捐赠记录、备注、标签、项目和活动,并记录备注、标签和捐赠。

可以做什么
  • 搜索并读取联系人、个人、备注、备注类型、标签及当前组织
  • 读取捐赠记录及某联系人的捐赠历史
  • 搜索并读取项目和活动,获取查询选项并执行通用记录查询
  • 为联系人记录备注、给联系人打标签、提交联系人或捐赠以供导入
  • 查看当月用量、提交功能请求,以及管理或取消付费方案
适用场景
适合以 Virtuous 管理数据的非营利筹款和捐赠人关系团队,希望助手直接查询捐赠人档案、捐赠历史或活动报名情况,或在不切换应用的情况下记录备注和捐赠。
运行要求
仅需按 URL 添加远程 MCP 端点,无需本地安装。通过 OAuth 登录,登录页要求填写 Virtuous API 密钥(设置中的 API 密钥),密钥经校验后按用户存储。免费方案每月 50 次工具调用,付费方案可提高额度。
安装前请注意
写入类工具会在 Virtuous 中创建备注、标签和导入交易,执行前应先确认。Virtuous API 密钥在登录时输入并按用户存储。付费方案需付费(Pro 与 Pro+ 按月或按年,经 Stripe Checkout 结算),升级会立即收取差价,取消后当期不退款。工具调用计入每月配额。

安装

在 SourceWeft 中

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

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

交给智能体安装

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

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

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

其他 MCP 客户端

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

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

README

Virtuous MCP by usefulapi

Use Virtuous from Claude, Cursor, or any MCP client — search donors, read contacts, giving history, notes, tags, projects and events, run queries, and log notes, tags, contacts and gifts. Hosted, no local install: connect with your own Virtuous credentials.

Live endpoint: https://virtuous-crm.usefulapi.io/mcp · Homepage: https://usefulapi.io/virtuous-crm

Connect

  • Claude (claude.ai, Desktop): open Customize → Connectors, click + Add → Add custom connector, and paste https://virtuous-crm.usefulapi.io/mcp.
  • Claude Code: claude mcp add --transport http virtuous-crm https://virtuous-crm.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": {    "virtuous-crm": {      "url": "https://virtuous-crm.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 Virtuous credentials.

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

On first connect you'll provide your Virtuous API key (Settings → API Keys). They're validated, stored per-user, and scoped to you — no keys in config files.

Tools

ToolTypeWhat it does
virtuous_get_current_organizationreadGet the current organization
virtuous_searchreadGlobal search
virtuous_search_contactsreadSearch contacts
virtuous_get_contactreadGet a contact
virtuous_find_contactreadFind a contact by email or reference
virtuous_list_contact_individualsreadList a contact's individuals
virtuous_list_contact_notesreadList a contact's notes
virtuous_list_contact_note_typesreadList contact note types
virtuous_list_contact_tagsreadList a contact's tags
virtuous_list_contact_giftsreadList a contact's gifts
virtuous_get_giftreadGet a gift
virtuous_list_tagsreadList tags
virtuous_search_projectsreadSearch projects
virtuous_get_projectreadGet a project
virtuous_list_eventsreadList events
virtuous_get_query_optionsreadGet query options
virtuous_queryreadQuery records
virtuous_create_contact_notewriteLog a note on a contact
virtuous_add_contact_tagwriteTag a contact
virtuous_create_contact_transactionwriteSubmit a contact for import
virtuous_create_gift_transactionwriteSubmit a gift for import
virtuous_usage_statusmetaUsage status (free-tier meter)
virtuous_request_featuremetaRequest a missing feature
virtuous_upgrademetaUpgrade to Pro or Pro+
virtuous_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)10,000 tool calls / month
Pro+ (per user)$39/mo or $390/yr (2 months free)100,000 tool calls / month

Each paid plan covers this server only. Ask your AI to run virtuous_upgrade and choose Pro or Pro+, billed monthly or yearly (it returns a Stripe Checkout link). If you already have Pro, ask to change it to Pro+. The change requires your confirmation, keeps your billing interval and charges the price difference for the rest of the period immediately. Cancel any time with virtuous_cancel_subscription: your paid plan continues to the end of the paid period, with no refund for the current period, and asking to resume the same plan with virtuous_upgrade before then undoes the cancel. Or write to [email protected].

License

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

来源:servers/virtuous-crm/README.md,提交 f22f848

工具

21

virtuous_get_current_organization

Get the current organization

Fetch the Virtuous organization this API key acts in — its name, time zone and culture, and whether the key's user is an administrator. A cheap way to confirm the key works. Virtuous: GET /api/Organization/Current.

无需输入参数。

virtuous_search_contacts

Search contacts

Find contacts whose name, email, phone or address fully or partially matches a search string. Returns id, name, contact type, email, phone and address per match. Virtuous: POST /api/Contact/Search.

输入参数skiptakesearch必填

virtuous_get_contact

Get a contact

Fetch one contact (household, organization, foundation ...) with its address, giving summary (life-to-date, year-to-date, last gift), individuals and their contact methods, and custom fields. Virtuous: GET /api/Contact/{contactId}.

输入参数contact_id必填

virtuous_find_contact

Find a contact by email or reference

Look up a single contact by email address, or by an external reference (reference source + id, e.g. Stripe customer id). Give either email, or both reference_source and reference_id; if both are given Virtuous prioritises the reference. Virtuous: GET /api/Contact/Find.

输入参数emailreference_idreference_source

virtuous_list_contact_individuals

List a contact's individuals

List the individuals (people) that belong to a contact/household, with names, birth dates, and their emails and phones (contact methods). Virtuous: GET /api/ContactIndividual/ByContact/{contactId}.

输入参数contact_id必填

virtuous_list_contact_notes

List a contact's notes

List the notes logged on a contact — calls, meetings, emails and other touchpoints — with type, date, text and author. Virtuous: GET /api/ContactNote/ByContact/{contactId}.

输入参数skiptakesort_bycontact_id必填descending

virtuous_list_contact_note_types

List contact note types

List the note types this organization accepts on a contact note (e.g. Call, Email, Visit; admins can add custom ones). Call it before virtuous_create_contact_note and pass one of these names as its type. Virtuous: GET /api/ContactNote/Types.

无需输入参数。

virtuous_list_contact_tags

List a contact's tags

List the tags applied to a contact (contactTagId, tagId, name). Virtuous: GET /api/ContactTag/ByContact/{contactId}.

输入参数skiptakecontact_id必填

virtuous_list_contact_gifts

List a contact's gifts

List a contact's giving history: gift id, type, date, amount, segment and batch. Use virtuous_get_gift for designations and full detail. Virtuous: GET /api/Gift/ByContact/{contactId}.

输入参数skiptakesort_bycontact_id必填descending

virtuous_get_gift

Get a gift

Fetch one gift in full: contact, type, date, amount and currency, batch, segment, grant, tribute, receipt date, designations to projects, premiums and custom fields. Virtuous: GET /api/Gift/{giftId}.

输入参数gift_id必填

virtuous_list_tags

List tags

List the organization's tags (id, name, tag group). Use this to find a tagId before virtuous_add_contact_tag. Virtuous: GET /api/Tag.

输入参数skiptake

virtuous_search_projects

Search projects

Find projects (funds / designations gifts are given to) by name or code, with their balances, financial need and life-to-date giving. Virtuous: POST /api/Project/Search.

输入参数skiptakesearch必填

virtuous_get_project

Get a project

Fetch one project: code, type, status, balances, financial need, date range, life-to-date and calendar-year giving and gift/giver counts. Virtuous: GET /api/Project/{projectId}.

输入参数project_id必填

virtuous_list_events

List events

List the organization's events: name, type, location, start/end, invite and RSVP counts, attendance and total giving. Virtuous: GET /api/Event.

输入参数skiptake

virtuous_get_query_options

Get query options

List the parameters, their types, allowed operators and value options that virtuous_query accepts for one record type. Call this BEFORE building a query. Virtuous: GET /api/<Resource>/QueryOptions.

输入参数resource必填

virtuous_query

Query records

Run a Virtuous query-builder query against one record type (contacts, gifts, campaigns, projects, tasks, grants, pledges, recurring gifts, events ...). Conditions use parameter/operator names from virtuous_get_query_options. Returns { list, total }. For Contact and Gift, full_details returns full records instead of the abbreviated view. Virtuous: POST /api/<Resource>/Query.

输入参数skiptakegroupssort_byresource必填descendingfull_detailsinclude_archived

virtuous_create_contact_note

Log a note on a contact

Add a note to a contact's timeline — a call, meeting, visit or other touchpoint. Writes to the donor record. Get the valid type names from virtuous_list_contact_note_types first. Virtuous: POST /api/ContactNote.

输入参数note必填typeprivateimportantcontact_id必填time_spentnote_date_time

virtuous_add_contact_tag

Tag a contact

Apply an existing tag to a contact (find the tagId with virtuous_list_tags). Virtuous: POST /api/ContactTag.

输入参数tag_id必填contact_id必填

virtuous_create_contact_transaction

Submit a contact for import

Submit a new or updated contact through Virtuous's import pipeline (the recommended way to add contacts). It is matched against existing contacts by name, email, phone, address and reference, bundled into an import at midnight, and only committed when a user reviews the import and clicks Run — so nothing is created in real time and no duplicates are forced. Virtuous: POST /api/Contact/Transaction.

输入参数citynametagsemailphonestatetitlepostalsuffixcountryaddress1address2另有 11 个

virtuous_create_gift_transaction

Submit a gift for import

Record a gift (donation already received) through Virtuous's gift import pipeline — the method Virtuous recommends. The gift is matched to a contact, recurring gift or pledge, held until the nightly import, and only created when a user reviews the import and clicks Run. This records a gift; it does NOT charge anyone. Identify the donor with contact.id, contact.referenceId, or name/email details. Virtuous: POST /api/v2/Gift/Transaction.

输入参数batchnotesamount必填contact必填segmentfrequencygift_date必填gift_type必填is_privatecheck_numberdesignationsreceipt_date另有 5 个

版本历史

24
  1. v1.41.1最新Nov 13, 2026
  2. v1.40.0Nov 12, 2026
  3. v1.39.3Nov 11, 2026
  4. v1.38.3Nov 7, 2026
  5. v1.37.3Nov 5, 2026
  6. v1.37.2Nov 5, 2026
  7. v1.37.1Nov 4, 2026
  8. v1.37.0Nov 3, 2026
  9. v1.36.1Nov 3, 2026
  10. v1.35.0Nov 1, 2026
  11. v1.33.0Oct 31, 2026
  12. v1.32.0Oct 31, 2026
  13. v1.31.2Oct 30, 2026
  14. v1.31.0Oct 30, 2026
  15. v1.25.0Oct 26, 2026
  16. v1.22.4Oct 25, 2026
  17. v1.22.1Oct 25, 2026
  18. v1.21.0Oct 24, 2026
  19. v1.18.0Oct 23, 2026
  20. v1.16.4Oct 22, 2026
  21. v1.16.3Oct 21, 2026
  22. v1.11.1Oct 9, 2026
  23. v1.10.0Oct 9, 2026
  24. v1.0.0Sep 30, 2026

评分

已满足适用检查项的 100%

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

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

其他 Usefulapi 集成