Qgiv MCP by usefulapi
Read Qgiv (Bloomerang Fundraising) donations, refunds, recurring gifts, P2P registrations, events.
我该使用它吗
质量与安全性
发现(5)
- LOW在 qgiv_get_registration 中
- LOW在 qgiv_get_pledge 中
- LOW在 qgiv_get_report_mapping 中
- LOW在 qgiv_list_transactions_after_id 中
- LOW在 qgiv_list_registrations_by_date 中
基于对工具定义和协议合规性的自动分析。
上下文开销
这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。
安装
一键安装
将以下内容添加到你的 `claude_desktop_config.json` 文件中:
{
"mcpServers": {
"qgiv": {
"url": "https://qgiv.usefulapi.io/mcp"
}
}
}远程端点
https://qgiv.usefulapi.io/mcpstreamable-http它能做什么
工具清单
工具(21)
🟢qgiv_list_recent_transactions(limit, include_contact)
The most recent donations/transactions (newest first as Qgiv returns them): id, status, date, amount, fee, net, donor name and id, form, recurring link, payment type and last four card digits, fund. Donor contact details are left out unless include_contact is set; full card numbers are never returned. POST /reporting/transactions/last/{limit}.
输入模式
{
"type": "object",
"properties": {
"limit": {
"default": 25,
"description": "Records to return (1-100, default 25).",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"include_contact": {
"description": "Include donor contact details (email, phone, postal address). Off by default: names, ids and amounts only.",
"type": "boolean"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢qgiv_list_transactions_by_date(begin_date, end_date, limit, offset, include_contact)
Transactions between two dates (inclusive), at most 31 days per call, paged with offset/limit. Same fields as qgiv_list_recent_transactions. Qgiv has no server-side paging, so a busy range is fetched whole and sliced; use a shorter range if it is too large. POST /reporting/transactions/dates/{begin}:{end}.
输入模式
{
"type": "object",
"properties": {
"begin_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "First day (yyyy-mm-dd)."
},
"end_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Last day (yyyy-mm-dd)."
},
"limit": {
"default": 25,
"description": "Records to return (1-100, default 25).",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"offset": {
"default": 0,
"description": "Records to skip, for paging through a larger result (use next_offset from the previous reply).",
"type": "integer",
"minimum": 0,
"maximum": 100000
},
"include_contact": {
"description": "Include donor contact details (email, phone, postal address). Off by default: names, ids and amounts only.",
"type": "boolean"
}
},
"required": [
"begin_date",
"end_date"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢qgiv_list_transactions_after_id(after_id, limit, include_contact)
Transactions with an id greater than the given one, sorted by id ascending and paged with limit; next_after_id is the cursor for the next call (use it as after_id). Handy for syncing new gifts. POST /reporting/transactions/after/{id}.
输入模式
{
"type": "object",
"properties": {
"after_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Return transactions with an id greater than this."
},
"limit": {
"default": 25,
"description": "Records to return (1-100, default 25).",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"include_contact": {
"description": "Include donor contact details (email, phone, postal address). Off by default: names, ids and amounts only.",
"type": "boolean"
}
},
"required": [
"after_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢qgiv_get_transaction(transaction_id, include_contact)
One transaction in full: donation lines, fund/restriction, dedication, custom-field answers, event packages, registrations, refunds. Contact details only with include_contact; card data is reduced to the last four digits. POST /reporting/transactions/{id}.
输入模式
{
"type": "object",
"properties": {
"transaction_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Numeric Qgiv id."
},
"include_contact": {
"description": "Include donor contact details (email, phone, postal address). Off by default: names, ids and amounts only.",
"type": "boolean"
}
},
"required": [
"transaction_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢qgiv_list_recent_refunds(limit, include_contact)
The most recent refunds (read-only): id, original transaction, refund and settle dates, amount, payment type, last four digits, fund. POST /reporting/refunds/last/{limit}.
输入模式
{
"type": "object",
"properties": {
"limit": {
"default": 25,
"description": "Records to return (1-100, default 25).",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"include_contact": {
"description": "Include donor contact details (email, phone, postal address). Off by default: names, ids and amounts only.",
"type": "boolean"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢qgiv_list_refunds_by_date(begin_date, end_date, limit, offset, include_contact)
Refunds between two dates (inclusive), at most 31 days per call, paged with offset/limit. POST /reporting/refunds/dates/{begin}:{end}.
输入模式
{
"type": "object",
"properties": {
"begin_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "First day (yyyy-mm-dd)."
},
"end_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Last day (yyyy-mm-dd)."
},
"limit": {
"default": 25,
"description": "Records to return (1-100, default 25).",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"offset": {
"default": 0,
"description": "Records to skip, for paging through a larger result (use next_offset from the previous reply).",
"type": "integer",
"minimum": 0,
"maximum": 100000
},
"include_contact": {
"description": "Include donor contact details (email, phone, postal address). Off by default: names, ids and amounts only.",
"type": "boolean"
}
},
"required": [
"begin_date",
"end_date"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢qgiv_get_refund(refund_id, include_contact)
One refund in full by id (read-only; this server never issues refunds). POST /reporting/refunds/{id}.
输入模式
{
"type": "object",
"properties": {
"refund_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Numeric Qgiv id."
},
"include_contact": {
"description": "Include donor contact details (email, phone, postal address). Off by default: names, ids and amounts only.",
"type": "boolean"
}
},
"required": [
"refund_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢qgiv_list_recurring_schedules(status, limit, offset, include_contact)
Recurring donation schedules (read-only): id, start/end date, next billing date, frequency, amount, state, donor name and id, plus Qgiv's 12-month forecast. Filter by status active, paused, expired or deleted. Paged with offset/limit. POST /reporting/recurring/list or /reporting/recurring/{status}.
输入模式
{
"type": "object",
"properties": {
"status": {
"description": "Only schedules in this state (default: all).",
"type": "string",
"enum": [
"active",
"paused",
"expired",
"deleted"
]
},
"limit": {
"default": 25,
"description": "Records to return (1-100, default 25).",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"offset": {
"default": 0,
"description": "Records to skip, for paging through a larger result (use next_offset from the previous reply).",
"type": "integer",
"minimum": 0,
"maximum": 100000
},
"include_contact": {
"description": "Include donor contact details (email, phone, postal address). Off by default: names, ids and amounts only.",
"type": "boolean"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢qgiv_get_recurring_schedule(recurring_id, include_contact)
One recurring donation schedule by id (read-only; schedules cannot be changed here). POST /reporting/recurring/{id}.
输入模式
{
"type": "object",
"properties": {
"recurring_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Numeric Qgiv id."
},
"include_contact": {
"description": "Include donor contact details (email, phone, postal address). Off by default: names, ids and amounts only.",
"type": "boolean"
}
},
"required": [
"recurring_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢qgiv_list_statements(limit, offset)
Monthly fee/payout statements: id, date, amount contributed, fees, refunded, debited, credited and the summary totals (without the per-transaction rows; use qgiv_get_statement for those). Paged with offset/limit. POST /reporting/statements/list.
输入模式
{
"type": "object",
"properties": {
"limit": {
"default": 25,
"description": "Records to return (1-100, default 25).",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"offset": {
"default": 0,
"description": "Records to skip, for paging through a larger result (use next_offset from the previous reply).",
"type": "integer",
"minimum": 0,
"maximum": 100000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢qgiv_get_latest_statements
The latest statement(s) for the organization or form, with summary totals (per-transaction rows left out). POST /reporting/statements/latest.
输入模式
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢qgiv_get_statement(statement_id)
One statement by id with its transaction rows (first 100 shown; donor names only). POST /reporting/statements/{id}.
输入模式
{
"type": "object",
"properties": {
"statement_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Numeric Qgiv id."
}
},
"required": [
"statement_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢qgiv_list_recent_registrations(limit, include_contact)
The most recent peer-to-peer (Hobnob) event registrations: id, category, registrant name, team, fundraising goal and amount raised. Contact details only with include_contact. POST /reporting/registrations/last/{limit}.
输入模式
{
"type": "object",
"properties": {
"limit": {
"default": 25,
"description": "Records to return (1-100, default 25).",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"include_contact": {
"description": "Include donor contact details (email, phone, postal address). Off by default: names, ids and amounts only.",
"type": "boolean"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢qgiv_list_registrations_by_date(begin_date, end_date, limit, offset, include_contact)
Peer-to-peer registrations between two dates (inclusive), at most 31 days per call, paged with offset/limit. POST /reporting/registrations/dates/{begin}:{end}.
输入模式
{
"type": "object",
"properties": {
"begin_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "First day (yyyy-mm-dd)."
},
"end_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Last day (yyyy-mm-dd)."
},
"limit": {
"default": 25,
"description": "Records to return (1-100, default 25).",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"offset": {
"default": 0,
"description": "Records to skip, for paging through a larger result (use next_offset from the previous reply).",
"type": "integer",
"minimum": 0,
"maximum": 100000
},
"include_contact": {
"description": "Include donor contact details (email, phone, postal address). Off by default: names, ids and amounts only.",
"type": "boolean"
}
},
"required": [
"begin_date",
"end_date"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢qgiv_get_registration(registration_id, include_contact)
One peer-to-peer registration in full (purchase history, team, totals, child registrations). Contact details only with include_contact. POST /reporting/registrations/{id}.
输入模式
{
"type": "object",
"properties": {
"registration_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Numeric Qgiv id."
},
"include_contact": {
"description": "Include donor contact details (email, phone, postal address). Off by default: names, ids and amounts only.",
"type": "boolean"
}
},
"required": [
"registration_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢qgiv_list_events(include_details, limit, offset)
Events (ticketed/auction events) on the forms the token covers: id, dates and the top-level settings. Set include_details for packages, questions and promo codes. Notification e-mail addresses are never returned. POST /events/list.
输入模式
{
"type": "object",
"properties": {
"include_details": {
"description": "Include nested packages, fields and promo codes (large).",
"type": "boolean"
},
"limit": {
"default": 20,
"description": "Events to return (1-50, default 20).",
"type": "integer",
"minimum": 1,
"maximum": 50
},
"offset": {
"default": 0,
"description": "Records to skip, for paging through a larger result (use next_offset from the previous reply).",
"type": "integer",
"minimum": 0,
"maximum": 100000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢qgiv_list_pledges(limit, offset)
Pledge options configured on the form(s) (title, value, frequency, begin date, iterations, state), not donors' pledge records. POST /pledges/list.
输入模式
{
"type": "object",
"properties": {
"limit": {
"default": 25,
"description": "Records to return (1-100, default 25).",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"offset": {
"default": 0,
"description": "Records to skip, for paging through a larger result (use next_offset from the previous reply).",
"type": "integer",
"minimum": 0,
"maximum": 100000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢qgiv_get_pledge(pledge_id)
One pledge option by id. POST /pledges/{id} (no package is sent, so nothing is changed).
输入模式
{
"type": "object",
"properties": {
"pledge_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Numeric Qgiv id."
}
},
"required": [
"pledge_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢qgiv_list_custom_fields(limit, offset)
Custom (additional-question) fields configured on the form(s): id, reference, title, input type, required flags, display flags. POST /customFields/list.
输入模式
{
"type": "object",
"properties": {
"limit": {
"default": 25,
"description": "Records to return (1-100, default 25).",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"offset": {
"default": 0,
"description": "Records to skip, for paging through a larger result (use next_offset from the previous reply).",
"type": "integer",
"minimum": 0,
"maximum": 100000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢qgiv_list_report_mappings(limit, offset)
Report mappings (accounting export mappings) on the form(s): id, identifier, mapping data, export service, type. POST /reporting/mappings/list.
输入模式
{
"type": "object",
"properties": {
"limit": {
"default": 25,
"description": "Records to return (1-100, default 25).",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"offset": {
"default": 0,
"description": "Records to skip, for paging through a larger result (use next_offset from the previous reply).",
"type": "integer",
"minimum": 0,
"maximum": 100000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢qgiv_get_report_mapping(mapping_id)
One report mapping by id. POST /reporting/mappings/{id}.
输入模式
{
"type": "object",
"properties": {
"mapping_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Numeric Qgiv id."
}
},
"required": [
"mapping_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}社区
证据