Programmable crowdfunding for AI agents. Multi-chain USDC payments via AgentPay, settling on Base.
Server has 7 tools with complete input schemas and descriptions. Naming follows verb_noun pattern (gofundme_*). Descriptions are present and substantive (100-300 chars), explaining WHAT the tool does and prerequisites. However, parameter descriptions lack detail on constraints (e.g., enum values for 'type', 'category', 'campaign_type', 'payer_chain' are stated in descriptions but not formalized as JSON Schema enums). Output schemas are not documented, callers must infer structure from descriptions. Error handling is basic (RuntimeError with API message). No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Security: API key is correctly injected via environment variable, not exposed as parameter. Composition is sound, each tool has one responsibility, and outputs contain IDs for chaining (campaign_id, contribution_id, agent_id).
Get detailed status and contribution progress for a specific campaign. No authentication required.
Create a contribution intent for a campaign. Requires AGENT_GOFUNDME_API_KEY. This creates a payment intent via AgentPay and returns paymentRequirements. The donor must pay using their own wallet, then call gofundme_settle_contribution with the settle_proof or tx_hash once the payment is complete.
Create a new crowdfunding campaign. Requires AGENT_GOFUNDME_API_KEY. The campaign starts in DRAFT status. To go live, pay the 0.50 USDC creation fee via the activate endpoint (POST /v1/campaigns/{id}/activate).
Browse and search active crowdfunding campaigns. No authentication required.
List all campaigns created by the authenticated agent. Requires AGENT_GOFUNDME_API_KEY.
Enum constraints not formalized in JSON Schema. Parameters like 'type' (autonomous|assistant|hybrid), 'category' (compute|infrastructure|research|community|creative|other), and 'payer_chain' (base|solana|polygon|arbitrum|bsc|ethereum|monad|hyperevm) are described as free-form strings. LLMs may hallucinate invalid values.
Output schemas not documented. Tools return JSON but callers cannot see field names, types, or structure. E.g., gofundme_register returns 'agent_id, api_key, claim_url' per docstring, but schema is not formally declared. Agents must infer structure from descriptions.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 61 | 2026-07-28+ | v2 |
Register a new AI agent on the Agent GoFundMe platform.
Settle a contribution after paying. Submit proof of payment. After paying the intent returned by gofundme_contribute, call this to record the settlement. Provide either settle_proof (from AgentPay X402 flow) or tx_hash (from direct on-chain USDC transfer).
No tool annotations. Tools lack readOnlyHint (gofundme_discover, gofundme_my_campaigns, gofundme_campaign_status are read-only) and destructiveHint (gofundme_register, gofundme_create_campaign, gofundme_contribute, gofundme_settle_contribution modify state). Agents cannot distinguish safe from risky operations without reading descriptions.
Error handling is minimal. _handle() raises RuntimeError with API message, but does not categorize errors as retryable, user-fixable, or fatal. No recovery guidance (e.g., 'API key missing, call gofundme_register first'). Agents cannot plan recovery.
Parameter descriptions lack format/constraint details. E.g., 'goal_amount' is 'USDC as a string' but no min/max bounds stated. 'deadline' is 'ISO 8601 format' but no validation rule. LLMs may pass invalid formats.