# Qgiv MCP

> Qgiv MCP Server connects your AI client to the Qgiv fundraising platform. Use it to manage donation forms, update suggested amounts, configure custom donor fields, and handle account settings—all through natural conversation. It lets you clone successful campaigns instantly or audit recent transactions without touching a complex dashboard.

## Overview
- **Category:** payment-processing
- **Price:** Free
- **Tags:** donation-forms, fundraising-tools, custom-fields, nonprofit-management, form-cloning

## Description

**Manage Donation Forms & Kiosks**

You can clone an entire existing form with `clone_form` to start a new campaign instantly. For structural changes, you've got `create_kiosk` to build a brand-new kiosk environment, and then `list_kiosks` or `update_kiosk` lets you manage its navigation and content flow. If you need to make general tweaks to the donation page structure, use `get_widget` to fetch details on any specific form widget by ID.

**Customize Donor Data Fields and Giving Tiers**

Need to collect more than just a name and an amount? You've got tools for that. To build custom data capture, you can run `create_custom_field` to add a new text field, then use `list_custom_fields` to see all active fields on the form; if you gotta change something later, you run `update_custom_field`. For tracking specific donor goals, you've got dedication options: use `create_dedication_field` or `create_dedication_type` to set up new ways donors can dedicate funds. Similarly, you can add suggested donation amounts using `create_custom_amount`, and if that amount needs adjusting, `update_custom_amount` handles it. You'll find all your current custom fields in `list_custom_fields`, and every established dedication type is viewable with `list_dedication_types`. To make sure you don't lose track of what's already set up, you can always check existing options using `get_custom_field` or `get_dedication_type`.

**Handle Account Settings and Core Texting**

You can manage the global look and feel of your organization. Use `get_account_settings` to pull current organizational-level settings, and if you gotta change something, you run `update_account_settings`. You don't wanna mess with how forms sound? Run `get_form_wording` to retrieve the custom text used on the main donation form; you can then update it using `update_form_wording`. If your organization needs specific fund rules, you use `list_restrictions` to see what designations are active, and run `create_restriction` or `update_restriction` to set up new ones. When tracking future giving, you've got `create_pledge` to record a donor's promise of support, and you can modify that commitment later with `update_pledge`. You can list all existing commitments using `list_pledges`, or check the details of one specific pledge via `get_pledge`.

**Audit Financial Activity & Reports**

You don't gotta dive into deep, clunky reports. To get a financial snapshot, use `get_latest_statement` to pull the most recent full summary, and you can list historical ones using `list_statements`. For transactions, you have control over date ranges: run `get_transactions_by_dates` to see everything that happened between two dates, or check for records after a specific transaction ID using `get_transactions_after`. Refunds are handled the same way; get all refund details within a time span with `get_refunds_by_dates`, or pull only refunds that came in after a certain Refund ID via `get_refunds_after`. To see what's happening right now, you can grab records of the last N general transactions using `get_last_transactions` or check recent Peer-to-Peer registrations with `get_last_registrations`. For data reporting, if you need to map how certain data points show up in third-party systems, you run `list_report_mappings`, and then use `update_report_mapping` to change those connections.

**Review Specific Entities**

You can track specific events using `list_events` or get all the details of one event with `get_event`. If your organization handles recurring gifts, you've got a dedicated list (`list_recurring_profiles`) and retrieval tool (`get_recurring_profile`) for those profiles. You also need to manage kiosk setups; besides listing them, you can use `list_kiosks` or run `update_kiosk` to structurally change the navigation.

## Tools

### clone_form
Creates an exact duplicate of an existing donation form.

### create_custom_amount
Adds a new, specific suggested donation amount for donors to choose from.

### create_custom_field
Builds and adds a new text field that collects specific data on the form.

### create_dedication_field
Creates a custom field dedicated to tracking donor dedications (e.g., in honor of someone).

### create_dedication_type
Sets up new categories or types for dedicating funds.

### create_kiosk
Builds a brand-new kiosk environment within the platform.

### create_pledge
Registers new planned pledges of support from donors.

### create_report_mapping
Sets up a mapping for how data should appear in third-party reports.

### create_restriction
Establishes new fund restrictions or designations for donations.

### get_account_settings
Retrieves the current organization-level and form-specific settings.

### get_custom_amount
Gets the details of a single suggested donation amount using its ID.

### get_custom_field
Retrieves all details for a specific custom field by its unique ID.

### get_dedication_field
Gets the information for a single dedication field using its ID.

### get_dedication_type
Retrieves details about a specific dedication type by its ID.

### get_event
Fetches all information for an event using its unique ID.

### get_form_wording
Retrieves the custom text and wording currently used on organization forms.

### get_kiosk
Gets the current configuration of a specific kiosk by its ID.

### get_last_refunds
Retrieves records of the last N refund transactions.

### get_last_registrations
Gets a list of the most recent Peer-to-Peer registrations.

### get_last_transactions
Retrieves records for the last N general transactions.

### get_latest_statement
Pulls the most recent full financial statement summary.

### get_pledge
Gets all details for a specific pledge using its ID.

### get_recurring_profile
Fetches the profile details for a recurring donor setup by ID.

### get_refund
Gets all information about one specific refund using its ID.

### get_refunds_after
Retrieves records of refunds that occurred after a specific Refund ID.

### get_refunds_by_dates
Gets all refund details within a specified date range.

### get_registration
Retrieves information for one specific Peer-to-Peer registration by ID.

### get_registrations_by_dates
Gets all P2P registrations within a specified date range.

### get_report_mapping
Retrieves the full details of a specific data report mapping by ID.

### get_restriction
Gets all information regarding a specific fund restriction or designation by ID.

### get_statement
Retrieves the details of a single financial statement using its ID.

### get_transactions_after
Gets transaction records that occurred after a specific Transaction ID.

### get_transactions_by_dates
Retrieves all transactions within a specified date range.

### get_widget
Fetches the configuration and details of a specific form widget by ID.

### list_custom_amounts
Lists every custom suggested donation amount configured on your account.

### list_custom_fields
Retrieves a list of all currently active custom data fields on forms.

### list_dedication_fields
Lists every custom dedication field setup in the system.

### list_dedication_types
Retrieves all available dedication types, like 'In Memory Of'.

### list_events
Lists custom events and associated ticket packages.

### list_kiosks
Gets a list of all configured kiosks and their navigation menus.

### list_pledges
Lists all active pledges recorded in the system.

### list_recurring_profiles_by_status
Lists recurring profiles, filtering them by their current status (active, paused, etc.).

### list_recurring_profiles
Retrieves a list of all established recurring donation profiles.

### list_report_mappings
Provides a list of report mappings used for connecting to third-party tools.

### list_restrictions
Lists all existing fund restrictions or designations applied to donations.

### list_statements
Retrieves a list of archived financial statements and payout summaries.

### list_widgets
Lists all custom widgets that can be placed on donation forms.

### update_account_settings
Changes organization-level or form-specific settings in the system.

### update_custom_amount
Modifies an existing suggested donation amount's value or display name.

### update_custom_field
Changes the label, type, or required status of a custom field on a form.

### update_dedication_field
Modifies an existing dedication field's settings.

### update_dedication_type
Updates the description or rules for a specific dedication type.

### update_event
Makes changes to an existing event's details, dates, or ticket packages.

### update_form_wording
Changes the custom text displayed on organization forms.

### update_kiosk
Makes structural changes to an existing kiosk's navigation or content.

### update_pledge
Modifies the amount, due date, or status of a specific pledge.

### update_report_mapping
Changes how data is mapped for reporting purposes in third-party systems.

### update_restriction
Modifies the rules or designation details of a fund restriction.

## Prompt Examples

**Prompt:** 
```
Show me our current organization and form-level settings.
```

**Response:** 
```
I have retrieved your account settings using `get_account_settings`. Your organization is configured with standard receipting enabled, and default form-level settings are active. Would you like to update any of these settings?
```

**Prompt:** 
```
List all the custom suggested donation amounts configured on our account.
```

**Response:** 
```
I've fetched the custom suggested donation amounts using `list_custom_amounts`. You currently have four active tiers: $10, $25, $50, and $100. Would you like to modify any of these or create a new suggested amount?
```

**Prompt:** 
```
Get the details for the custom field with ID 'cf_98765'.
```

**Response:** 
```
Using `get_custom_field`, I retrieved the details for field 'cf_98765'. It is a text field labeled 'How did you hear about us?' and is currently set as optional on your main donation form.
```

## Capabilities

### Manage Donation Forms
Clone existing forms using `clone_form` or update core settings like custom wording and suggested amounts.

### Configure Donor Data Fields
Create, list, and manage custom fields and dedication options on donation forms to capture specific donor information.

### Maintain Account Settings
Retrieve or modify organization-level settings, such as standard receipting status or default form wording, using `get_account_settings`.

### Audit Financial Activity
Get lists of transactions, refunds, or the latest financial statement by date range or ID.

### Control Suggested Giving Tiers
List and update custom suggested donation amounts to guide donors toward specific giving tiers.

## Use Cases

### Launching a New Seasonal Campaign
A campaign manager needs a new form for the holidays. Instead of rebuilding from scratch, they ask their agent to run `clone_form` on last year’s successful annual gala page. They then use `create_custom_amount` to add holiday-specific donation tiers and update the text using `update_form_wording`. The campaign goes live in minutes.

### Auditing Donor Data for Compliance
The operations team needs to know if all active forms are collecting necessary information. They ask their agent to run `list_custom_fields` and then check the details of a specific field using `get_custom_field`. This verifies data capture compliance across all platforms.

### Handling Post-Event Financial Review
After an event, the treasurer needs to reconcile funds. They ask the agent for two things: the latest statement (`get_latest_statement`) and a list of transactions from the last week using `get_last_transactions`. This gives them a quick, auditable snapshot without clicking through report tabs.

### Updating Pledge Requirements
A major donor changes their pledge terms. The administrator uses the agent to retrieve the current details of the pledge (`get_pledge`), modifies it using `update_pledge`, and then verifies the change by calling `get_pledge` again.

## Benefits

- Instantly deploy new campaigns. Use `clone_form` to replicate a successful donation page setup, saving hours of manual rebuilding in the dashboard.
- Improve data capture fidelity by using `create_custom_field`. You can mandate specific donor information—like profession or employer—that standard forms ignore.
- Never manually update wording again. Use `update_form_wording` to change boilerplate text across all active donation pages with a single command.
- Audit finances faster. Instead of building complex date filters, ask the agent for transactions using `get_transactions_by_dates`, getting structured data immediately.
- Control giving goals by managing custom suggested amounts. You can list tiers (`list_custom_amounts`) and update them (`update_custom_amount`) to guide donors effectively.

## How It Works

The bottom line is you talk to your AI client, not the Qgiv dashboard. It handles the API calls for you.

1. Subscribe to the server and provide your Qgiv API Token.
2. Connect your preferred AI client (Claude, Cursor, etc.) to the Vinkius Marketplace endpoint.
3. Ask your agent a natural language question; it will select the appropriate tool (e.g., `create_custom_field`) and execute the action.

## Frequently Asked Questions

**How do I check the current organization-level settings using get_account_settings?**
You run `get_account_settings`. The agent will provide a summary of all core configurations, like standard receipting status. It tells you exactly what's active and if any updates are needed.

**What is the best way to start a new form using clone_form?**
Use `clone_form` on your most successful existing template. This gives you a working starting point that already has all the necessary fields and settings, minimizing setup time.

**I need to find out what custom fields exist for my donors; how do I list them?**
You use `list_custom_fields`. This tool gives you a full inventory of every data field currently active on your forms, helping you audit or confirm compliance.

**How can I see the last transactions without building a date range filter?**
Ask for `get_last_transactions`. This pulls records for the last N general donations and payments. If you need something more specific, try using `get_transactions_by_dates`.

**What does update_form_wording actually change?**
It modifies the boilerplate text that appears on your main donation forms. This includes general instructions or disclaimers you want to appear regardless of the campaign type.

**I need to pull a comprehensive financial summary; how do I use `get_latest_statement`?**
It pulls your most recent statement, combining payout summaries and overall funds. This gives you an immediate, high-level accounting view that's different from just listing transactions.

**To track future commitments, how do I use `list_pledges` to see all pledged amounts?**
This tool pulls a list of every pledge recorded against your account. You can quickly verify who promised funds and what the committed amount is.

**If I only need refunds for a specific date range, how do I use `get_refunds_by_dates`?**
It filters all refund data based on start and end dates. You get an exact report of returned funds that occurred within your specified window.

**How do I clone an existing donation form using the AI?**
You can use the `clone_form` tool. Provide the JSON payload containing the details of the form you wish to clone, and the agent will handle the cloning process for you.

**Can I view and update the custom suggested donation amounts on my forms?**
Yes. You can list all custom suggested amounts using `list_custom_amounts`, retrieve a specific one with `get_custom_amount`, or update an existing amount using `update_custom_amount`.

**How do I manage custom fields on my donation forms?**
You can list all custom fields using `list_custom_fields`, retrieve a specific field's details with `get_custom_field`, or create and update fields using `create_custom_field` and `update_custom_field`.