MCP server
Virtuous MCP by usefulapi
io.usefulapi/virtuous-crm
Checked 26 Oct 2026, 08:29 UTC · Connected to it and listed its tools
Search donors and contacts, giving history, notes and projects, and log notes, tags and gifts.
Working at last checkVerified publisher: usefulapi.ioAbout 5,429 tokens per request once connected21 tools
https://virtuous-crm.usefulapi.io/mcp
At a glance
- Type
- MCP server
- Publisher
- usefulapi.io (verified by the MCP Registry)
- Status
- Working at last check
- Tools
- 21
- Token cost
- About 5,429 tokens per request
- Sets up in
- Claude Code, Claude Desktop, Codex, Gemini CLI, Cursor, VS Code, Antigravity, ChatGPT, OpenAI API, Grok
- Last checked
- 26 Oct 2026, 08:29 UTC
Connect it to your agent
Opens the app, which shows the server and asks you to confirm. For other apps, copy the setup below.
Claude Code
claude mcp add --transport http virtuous-crm https://virtuous-crm.usefulapi.io/mcp
Claude Desktop
Settings → Connectors → Add custom connector, and paste the URL.
Codex (config.toml)
[mcp_servers.virtuous-crm] url = "https://virtuous-crm.usefulapi.io/mcp"
Gemini CLI
{"mcpServers":{"virtuous-crm":{"httpUrl":"https://virtuous-crm.usefulapi.io/mcp"}}}
Cursor
{"mcpServers":{"virtuous-crm":{"url":"https://virtuous-crm.usefulapi.io/mcp"}}}
VS Code
{"servers":{"virtuous-crm":{"type":"http","url":"https://virtuous-crm.usefulapi.io/mcp"}}}
Antigravity
agy mcp add virtuous-crm https://virtuous-crm.usefulapi.io/mcp
ChatGPT
Settings → Apps & Connectors → Advanced settings: turn on Developer mode, then Create a connector and paste the URL. Which plans can do this varies.
OpenAI API (Responses tools)
{"type":"mcp","server_label":"virtuous-crm","server_url":"https://virtuous-crm.usefulapi.io/mcp","require_approval":"always"}
Grok (xAI API tools)
{"type":"mcp","server_label":"virtuous-crm","server_url":"https://virtuous-crm.usefulapi.io/mcp"}
Tools
virtuous_add_contact_tag~154 tokens
Apply an existing tag to a contact (find the tagId with virtuous_list_tags). Virtuous: POST /api/ContactTag.virtuous_create_contact_note~315 tokens
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.virtuous_create_contact_transaction~582 tokens
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 novirtuous_create_gift_transaction~895 tokens
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 doesvirtuous_find_contact~196 tokens
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.virtuous_get_contact~152 tokens
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}.virtuous_get_current_organization~109 tokens
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_get_gift~140 tokens
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}.virtuous_get_project~137 tokens
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}.virtuous_get_query_options~193 tokens
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.virtuous_list_contact_gifts~254 tokens
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}.virtuous_list_contact_individuals~146 tokens
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}.virtuous_list_contact_note_types~117 tokens
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_notes~246 tokens
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}.virtuous_list_contact_tags~183 tokens
List the tags applied to a contact (contactTagId, tagId, name). Virtuous: GET /api/ContactTag/ByContact/{contactId}.virtuous_list_events~147 tokens
List the organization's events: name, type, location, start/end, invite and RSVP counts, attendance and total giving. Virtuous: GET /api/Event.virtuous_list_tags~144 tokens
List the organization's tags (id, name, tag group). Use this to find a tagId before virtuous_add_contact_tag. Virtuous: GET /api/Tag.virtuous_query~669 tokens
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 revirtuous_search~258 tokens
Full-text search across contacts, individuals and entities (campaigns, projects, segments, tags) — the same search as the Virtuous search bar. Returns hits with highlights, grouped by kind. Virtuous: POST /api/Search.virtuous_search_contacts~201 tokens
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.virtuous_search_projects~191 tokens
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.
Browse
Related MCP servers
- Insightly MCP by usefulapi
Read and write Insightly contacts, organisations, leads, opportunities, tasks and notes. - CentralStationCRM MCP by usefulapi
Read CentralStationCRM people, companies, deals, tasks; create and update people, companies, deals. - Little Green Light MCP by usefulapi
Search Little Green Light donors, gifts, notes and memberships, and add gifts and contact reports. - ChurchSuite MCP by usefulapi
Read ChurchSuite contacts, children, small groups, rotas, events and attendance; add contact notes. - Teamleader Focus MCP by usefulapi
Read Teamleader Focus contacts, companies, deals, invoices, projects; create deals, tasks. - Bloomerang MCP by usefulapi
Search Bloomerang constituents and donations; log interactions, notes and tasks. - bexio MCP by usefulapi
Read bexio contacts, invoices, quotes, bills, projects and journal; log time, draft invoices. - Less Annoying CRM MCP by usefulapi
Read and write Less Annoying CRM contacts, notes, tasks, events, pipelines and groups.
Badge for your README
[](https://aptlynx.net/servers/io.usefulapi/virtuous-crm)
Listing text is written by the maker; AptLynx lists tools and does not vouch for them. Find another tool · Browse by topic · For agents