wegive-mcp
v1.0.5
Published
MCP server for WeGive API - nonprofit fundraising and donor management
Maintainers
Readme
wegive-mcp
MCP (Model Context Protocol) server for the WeGive API. Enables Claude to interact with WeGive nonprofit fundraising data.
Installation
npm install wegive-mcpSetup
Claude Desktop
Add to your config file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
With API access (for all tools):
{
"mcpServers": {
"wegive": {
"command": "npx",
"args": ["wegive-mcp"],
"env": {
"WEGIVE_API_KEY": "your_api_key"
}
}
}
}Knowledge tool only (no API key needed):
{
"mcpServers": {
"wegive": {
"command": "npx",
"args": ["wegive-mcp"],
"env": {
"WEGIVE_KNOWLEDGE_API_KEY": "your_knowledge_api_key",
"WEGIVE_DEFAULT_PERSONA": "customer"
}
}
}
}Claude Code
Add to .claude/settings.local.json:
With API access (for all tools):
{
"mcpServers": {
"wegive": {
"command": "npx",
"args": ["wegive-mcp"],
"env": {
"WEGIVE_API_KEY": "your_api_key"
},
"alwaysAllow": ["*"]
}
}
}Knowledge tool only (no API key needed):
{
"mcpServers": {
"wegive": {
"command": "npx",
"args": ["wegive-mcp"],
"env": {
"WEGIVE_KNOWLEDGE_API_KEY": "your_knowledge_api_key",
"WEGIVE_DEFAULT_PERSONA": "customer"
},
"alwaysAllow": ["*"]
}
}
}The alwaysAllow setting auto-approves all wegive MCP tools so you won't be prompted for each call.
Environment Variables
| Variable | Required | Description |
|----------|----------|-------------|
| WEGIVE_API_KEY | No* | Your WeGive API key (required for API tools, not needed for knowledge tool) |
| WEGIVE_SANDBOX | No | Set to true for sandbox environment |
| WEGIVE_KNOWLEDGE_API_KEY | No | API key for Product Knowledge queries |
| WEGIVE_DEFAULT_PERSONA | No | Default persona for wegive_knowledge when not supplied (engineering, cs, sales, customer, documentation) |
*At least one API key (WEGIVE_API_KEY or WEGIVE_KNOWLEDGE_API_KEY) should be configured for the server to be useful.
Getting Your API Key
- Log in to your WeGive Dashboard
- Navigate to Settings > Integrations
- Generate or copy your API key
Available Tools
Donors
wegive_list_donors- List donors with filteringwegive_get_donor- Get donor detailswegive_find_or_create_donor- Find or create a donorwegive_ask_donor_ai- Ask AI about a donor
Transactions
wegive_list_transactions- List donationswegive_get_transaction- Get transaction details
Recurring Donations
wegive_list_scheduled_donations- List recurring giftswegive_get_scheduled_donation- Get recurring donation details
Campaigns
wegive_list_campaigns- List campaignswegive_get_campaign- Get campaign details
Campaign Events
wegive_list_campaign_events- List eventswegive_get_campaign_event- Get event detailswegive_list_event_registrations- List registrationswegive_get_event_registration- Get registration details
Fundraisers
wegive_list_fundraisers- List P2P fundraiserswegive_get_fundraiser- Get fundraiser details
Funds
wegive_list_funds- List funds/designationswegive_get_fund- Get fund details
Checkouts
wegive_list_checkouts- List donation formswegive_get_checkout- Get checkout details
Households
wegive_list_households- List householdswegive_get_household- Get household details
Communication
wegive_list_communication_lists- List email listswegive_get_communication_list- Get list detailswegive_list_messages- List message campaignswegive_get_message- Get message details
Journeys
wegive_list_journeys- List automated journeyswegive_get_journey- Get journey detailswegive_add_donors_to_journey- Add donors to journey
Tags
wegive_list_tags- List donor tagswegive_get_tag- Get tag detailswegive_create_tag- Create a tagwegive_update_tag- Update a tag
Pledges
wegive_list_pledges- List pledgeswegive_get_pledge- Get pledge details
Payouts
wegive_list_payouts- List payoutswegive_get_payout- Get payout detailswegive_get_financial_reconciliation- Financial report
AI Features
wegive_ask_ai- Ask AI about your datawegive_ai_audience_segment- AI audience segmentation
Virtual Terminal
wegive_generate_virtual_terminal_url- Generate donation URL
Bulk Actions
wegive_archive_models- Archive recordswegive_restore_models- Restore recordswegive_tag_donors- Bulk tag donors
Product Knowledge
wegive_knowledge- Query WeGive product knowledge base with persona-appropriate answers
Advanced Filtering
Most list endpoints support advanced filtering options. Each tool's description includes specific filter documentation.
Date Range Filters
Filter by date ranges using _start and _end suffixes with ISO 8601 dates:
created_at_start: "2024-01-01"
created_at_end: "2024-12-31"Common date fields by entity:
- All entities:
created_at,updated_at - Transactions:
completed_at,refunded_at,failed_at - Recurring:
next_donation_at,last_donation_at - Payouts:
paid_at - Events:
start_at,end_at - Pledges:
start_date,end_date - Messages:
sent_at
Sorting
Sort results using a JSON object with field names and directions:
sort: {"created_at": "desc"}
sort: {"amount": "asc", "created_at": "desc"}Sortable fields by entity:
- Donors:
id,name,email,type,total_given,given_ytd,last_donation - Transactions:
id,date,amount,fee,supporter,designation,net_revenue - Campaigns:
id,name,net_revenue,created - Recurring:
id,amount,frequency,next_donation_at,status - Fundraisers:
id,name,creator,goal,raised
Amount Filters
Filter by amount ranges (values in cents):
amount_min: 1000 # $10.00 minimum
amount_max: 10000 # $100.00 maximumEntity-Specific Filters
Donors (wegive_list_donors):
type: individual, company, recurring, bothtag,tags: Filter by tag ID(s)campaign,checkout,fund: Filter by related entitiesrecurring: true/false - has active recurring giftrecurring_frequency: monthly, weekly, biweekly, yearly, daily, quarterlymarketing_contact,do_not_contact: true/falsehas_duplicates: true/falselast_integration_status: error, processed, ignored, pending
Transactions (wegive_list_transactions):
type: donation, recurring, service-revenue, bothstatus: pending, success, refunded, failed, disputed, processing, retriedpayment_method: card, bank, offlinepayment_processor: tilled, payrix, stripe, wegive, finixdonor_type: company, individualfee_covered: true/falsein_honor_memory: true/false (tribute gifts)is_tax_deductible,anonymous,guest: true/falseutm_source,utm_medium,utm_campaign: tracking parameters
Recurring Donations (wegive_list_scheduled_donations):
status: active, paused, cancelled, ended, expiring-soon, ending-soon, in-arrears, missingfrequency: weekly, biweekly, monthly, quarterly, annually, daily, first_and_15thin_dunning: true/false (failed payment retries)
Messages (wegive_list_messages):
status: draft, scheduled, sending, sent, failedtype: email, sms
Pledges (wegive_list_pledges):
status: active, completed, cancelled, overdue
Multiple Values
Filter by multiple values using comma-separated strings:
status: "completed,pending"
fund: "1,2,3"
tag: "major-donor,board-member"Product Knowledge Tool
The wegive_knowledge tool queries the WeGive product knowledge base. It requires the WEGIVE_KNOWLEDGE_API_KEY environment variable.
If you omit persona, the server uses WEGIVE_DEFAULT_PERSONA or defaults to engineering.
Personas
Choose the appropriate persona for your audience:
| Persona | Use Case |
|---------|----------|
| engineering | Technical details, code locations, implementation specifics (includes source file references) |
| cs | Customer support focused answers for helping users |
| sales | Feature and capability focused for sales conversations |
| customer | End-user friendly explanations |
| documentation | Technical writing style for docs |
Examples
"How do recurring donations work?" (persona: cs)
"Where is the donation processing code?" (persona: engineering)
"What payment processors does WeGive support?" (persona: sales)Example Queries
Once configured, ask Claude things like:
- "Show me the top 10 donors this year"
- "List all active recurring donations"
- "Find donors who gave to the Annual Fund campaign"
- "Get details for donor ID 12345"
- "Generate a virtual terminal URL for the General Fund"
- "List transactions from January 2024 sorted by amount descending"
- "Find recurring donations expiring in the next 30 days"
Development
# Install dependencies
npm install
# Build
npm run build
# Watch mode
npm run devPublishing
npm publish