Skip to main content
Glama

Funraise MCP by usefulapi

List donations

funraise_list_donations
Read-only

List donations (transactions) with amount, date, supporter, form, campaign page, allocation, fees and tags. Filter by an exact transactionId, by last N hours, or by a lastUpdated timestamp; use last_id to continue from the last donation id of the previous page. GET /api/v1/crm/donation.

Input Schema

NameRequiredDescriptionDefault
pageNoPage number. Funraise does not document whether paging starts at 0 or 1: omit it for the first page; if page 1 repeats the first page, numbering starts at 1.
last_idNoContinue after this donation id (the last id of the previous page).
page_sizeNoRecords per page, 1-100.
last_hoursNoOnly donations created or changed in the last N hours.
last_updatedNoOnly donations updated since this ISO 8601 timestamp, e.g. 2026-10-01T00:00:00Z.
transaction_idNoExact payment transaction id.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish readOnlyHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description still adds real value by naming the fields in the response payload (important since there is no output schema) and by spelling out the continuation semantics for last_id and the underlying endpoint GET /api/v1/crm/donation. It does not address volume/rate characteristics of an unfiltered listing.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, zero filler: the first front-loads the resource and its returned fields, the second packs filtering and pagination guidance. Nothing is repeated from the schema beyond what is needed for readability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, enumerating returned fields is the key contribution and it is present; pagination is covered in both description and schema. Completeness would be higher if the description clarified when to prefer this over funraise_get_donation given the shared transactionId filter, or noted that omitting all filters returns a broad listing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all six parameters are already documented, including the page-numbering ambiguity. The description largely restates those filters and adds only the framing that last_id means 'continue from the last donation id of the previous page', so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('List donations (transactions)') and enumerates the fields returned (amount, date, supporter, form, campaign page, allocation, fees, tags), which sharply conveys scope. It does not explicitly differentiate itself from funraise_get_donation, which an agent could confuse with the transactionId filter case.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete usage context: filter by exact transactionId, by last N hours, or by lastUpdated, and use last_id to continue from the previous page's last id. It stops short of exclusions or naming an alternative (e.g., use funraise_get_donation for a single known donation), leaving that inference to the agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.