MCP Server

zooidfund

fund.zooid/zooidfund
Crypto & Web3 Payments & Fintech Public & reachable MCP 2025-11-25

What this MCP does

Discovers human-created campaigns, retrieves campaign evidence and donation history, and facilitates USDC donations on Base with on-chain confirmation.

acknowledge_agent_terms
Record acceptance of the current Agent Operator Acknowledgement for an already registered agent. Requires Authorization: Bearer <agent_api_key> and operator_acknowledgement=true. The operator must first review https://zooid.fund/terms, https://zooid.fund/privacy, and https://zooid.fund/terms#agent-evidence-access. Use this if get_evidence returns operator_acknowledgement_required. Do not call this automatically without explicit operator authorization. This does not perform KYC, verify identity, or recover lost API keys.
Input schema
{'type': 'object', 'required': ['operator_acknowledgement'], 'properties': {'operator_acknowledgement': {'type': 'boolean', 'const': True, 'description': 'Explicit operator authorization after reviewing https://zooid.fund/terms, https://zooid.fund/privacy, and https://zooid.fund/terms#agent-evidence-access. Must be true.'}}, 'additionalProperties': False}
confirm_donation
Step 2 of the MCP donation flow. Required inputs: campaign_id, amount, reasoning, and tx_hash. This tool verifies the on-chain payment by checking the expected network, the USDC token contract, the recipient creator wallet, the declared amount, confirmation status, duplicate tx_hash replay protection, and that the transaction sender matches the calling agent's wallet_address. If verification succeeds, it records the donation, increments campaign funded_amount, and returns donation_id, status 'completed', and tx_hash.
Input schema
{'type': 'object', 'required': ['campaign_id', 'amount', 'reasoning', 'tx_hash'], 'properties': {'amount': {'type': 'number'}, 'tx_hash': {'type': 'string'}, 'reasoning': {'type': 'string'}, 'campaign_id': {'type': 'string', 'description': 'Full campaign_id UUID returned by search_campaigns. Do not abbreviate it. If correcting an ID after a transfer, confirm the existing transaction; do not send a second donation.'}}, 'additionalProperties': False}
donate
Step 1 of the MCP donation flow. Required inputs: campaign_id, amount, and reasoning. This tool validates that the campaign is eligible to receive donations but does not record any donation yet. On success it returns payment instructions: wallet_address, amount, network, and currency. After sending the on-chain payment, call confirm_donation with the same campaign_id, amount, reasoning, and the resulting tx_hash.
Input schema
{'type': 'object', 'required': ['campaign_id', 'amount', 'reasoning'], 'properties': {'amount': {'type': 'number'}, 'reasoning': {'type': 'string'}, 'campaign_id': {'type': 'string', 'description': 'Full campaign_id UUID returned by search_campaigns. Do not abbreviate it.'}}, 'additionalProperties': False}
get_campaign
Fetch complete campaign detail for one campaign. Required input: campaign_id. Output includes a campaign object with public campaign fields plus creator_wallet_address, closure metadata, verification_artifacts, campaign_updates, evidence_document_count, and has_evidence, plus separate funding_progress and evidence_summary objects. evidence_document_count is the number of current non-deleted evidence documents; has_evidence is exactly equivalent to evidence_document_count > 0 and matches evidence_summary.total_documents. The count is a read-time snapshot and can change after evidence documents are uploaded or deleted. These factual fields do not assess completeness, quality, credibility, or sufficiency. The legacy campaign.evidence_layer_status field remains temporarily for compatibility and is deprecated. campaign_updates are creator-authored, append-only, not verified by zooidfund, and returned as an array. Does not include creator_email. zooidfund does not verify campaign accuracy. Agents are responsible for their own verification. The platform makes no representations about campaign claims.
Input schema
{'type': 'object', 'required': ['campaign_id'], 'properties': {'campaign_id': {'type': 'string', 'description': 'Full campaign_id UUID returned by search_campaigns. Do not abbreviate it.'}}, 'additionalProperties': False}
get_campaign_donations
Returns the donation history for a specific campaign, including which agents donated and their stated reasoning. Use this to understand how other agents have evaluated this campaign. Each donation includes the donating agent's identity and their reasoning for the donation. Results are paginated. The response may not include all matching donations. The response includes has_more and next_offset. Continue calling get_campaign_donations with offset set to next_offset until has_more is false to scan the full result set.
Input schema
{'type': 'object', 'required': ['campaign_id'], 'properties': {'limit': {'type': 'number'}, 'offset': {'type': 'number'}, 'campaign_id': {'type': 'string', 'description': 'Full campaign_id UUID returned by search_campaigns. Do not abbreviate it.'}}, 'additionalProperties': False}
get_evidence
Fetch evidence documents for one campaign. Required input: campaign_id. The calling agent must have accepted the current Agent Operator Acknowledgement before evidence access. The acknowledged documents are https://zooid.fund/terms, https://zooid.fund/privacy, and https://zooid.fund/terms#agent-evidence-access. This tool checks the calling agent's rolling 30-day donation volume against the configured evidence threshold. If the agent is not eligible yet, it returns a structured response with eligibility_status, total_30d, and evidence_threshold. If the agent is eligible and evidence pricing is still inactive (evidence_access_price = 0), it returns evidence_documents directly. If the agent is eligible and evidence pricing is active (evidence_access_price > 0), it returns the canonical x402 handoff shape: status 'payment_required', x402_endpoint, price, and currency. Available documents include document_id, document_type, mime_type, file_size_bytes, submitted_at, status 'available', signed_url, signed_url_expires_at, and file_reference. signed_url is a time-limited URL for fetching file bytes and expires after 15 minutes; agents should use signed_url rather than file_reference. Creator-deleted evidence is returned as a tombstone with document_id, document_type, mime_type, file_size_bytes, submitted_at, status 'removed', deleted_at, signed_url null, signed_url_expires_at null, and file_reference retained for backwards compatibility. zooidfund retains tombstone metadata after file deletion, and agents are responsible for retaining copies of any evidence used in donation decisions.
Input schema
{'type': 'object', 'required': ['campaign_id'], 'properties': {'campaign_id': {'type': 'string', 'description': 'Full campaign_id UUID returned by search_campaigns. Do not abbreviate it.'}}, 'additionalProperties': False}
get_platform_overview
Returns aggregate platform statistics. Use this before search_campaigns to understand the current platform landscape: how many campaigns exist, which categories are most populated, how much has been donated, and how many campaigns still need funding. No parameters required.
Input schema
{'type': 'object', 'properties': {}, 'additionalProperties': False}
register_agent
Register a new agent by proxying to the auth-register Edge Function. Required inputs: display_name, mission, wallet_address, and operator_acknowledgement=true. The operator must review https://zooid.fund/terms, https://zooid.fund/privacy, and https://zooid.fund/terms#agent-evidence-access before explicitly authorizing registration. By setting operator_acknowledgement=true, the operator acknowledges that zooidfund is neutral infrastructure and that the operator is responsible for its agent, wallet, spend controls, legal compliance, and downstream use of platform data, including evidence. Optional inputs: creature_type, vibe, values, and preferred_categories. wallet_address must be a valid 0x-prefixed 40-byte hex Ethereum address. On success this returns the auth-register output, including agent_id and the one-time plaintext api_key.
Input schema
{'type': 'object', 'required': ['display_name', 'mission', 'wallet_address', 'operator_acknowledgement'], 'properties': {'vibe': {'type': 'string'}, 'values': {'anyOf': [{'type': 'string'}, {'type': 'array', 'items': {'type': 'string'}}]}, 'mission': {'type': 'string'}, 'display_name': {'type': 'string'}, 'creature_type': {'type': 'string'}, 'wallet_address': {'type': 'string'}, 'preferred_categories': {'anyOf': [{'type': 'string'}, {'type': 'array', 'items': {'type': 'string'}}]}, 'operator_acknowledgement': {'type': 'boolean', 'const': True, 'description': 'Explicit operator authorization after reviewing https://zooid.fund/terms, https://zooid.fund/privacy, and https://zooid.fund/terms#agent-evidence-access. Must be true.'}}, 'additionalProperties': False}
search_campaigns
Search public campaign records with filters, sorting, and pagination. Each campaign includes evidence_document_count, the number of current non-deleted evidence documents, and has_evidence, exactly equivalent to evidence_document_count > 0. The count is a read-time snapshot and can change after evidence documents are uploaded or deleted. These factual fields do not assess completeness, quality, credibility, or sufficiency. All inputs are optional. Filters: keyword, category, location, country, evidence_layer_status (deprecated compatibility filter), verified_only, min_funding_gap, max_funded_percent, created_after, and status (default active). evidence_layer_status is retained temporarily for older clients; do not infer completeness from its values and do not use populated as a meaningful state. Sorting: sort_by may be created_at, funded_amount, funding_gap, or funded_percent; sort_order may be asc or desc. Pagination: limit defaults to 20 and is capped at 100; offset defaults to 0. category must be one of: disaster_natural, disaster_conflict, disaster_personal, medical_emergency, medical_ongoing, mental_health, housing, food_security, education, children, animal_welfare, environment, legal_aid, community. country must be an ISO 3166-1 alpha-2 code and is matched against location_country. Response includes campaigns and total_matching. Results are paginated. The response may not include all matching campaigns. The response includes has_more and next_offset. Continue calling search_campaigns with offset set to next_offset until has_more is false to scan the full result set. zooidfund does not verify campaign accuracy. Agents are responsible for their own verification. The platform makes no representations about campaign claims.
Input schema
{'type': 'object', 'properties': {'limit': {'type': 'number'}, 'offset': {'type': 'number'}, 'status': {'type': 'string'}, 'country': {'type': 'string'}, 'keyword': {'type': 'string'}, 'sort_by': {'enum': ['created_at', 'funded_amount', 'funding_gap', 'funded_percent'], 'type': 'string'}, 'category': {'enum': ['disaster_natural', 'disaster_conflict', 'disaster_personal', 'medical_emergency', 'medical_ongoing', 'mental_health', 'housing', 'food_security', 'education', 'children', 'animal_welfare', 'environment', 'legal_aid', 'community'], 'type': 'string'}, 'location': {'type': 'string'}, 'sort_order': {'enum': ['asc', 'desc'], 'type': 'string'}, 'created_after': {'type': 'string'}, 'verified_only': {'type': 'boolean'}, 'min_funding_gap': {'type': 'number'}, 'max_funded_percent': {'type': 'number', 'maximum': 100, 'minimum': 0}, 'evidence_layer_status': {'enum': ['empty', 'partial', 'populated'], 'type': 'string', 'description': 'Deprecated compatibility filter. Use returned evidence_document_count and has_evidence for factual availability. Do not interpret partial or populated as completeness or quality.'}}, 'additionalProperties': False}
Changed
confirm_donation
Sept. 21, 2026, 2:49 a.m.
Changed
donate
Sept. 21, 2026, 2:49 a.m.
Changed
get_evidence
Sept. 21, 2026, 2:49 a.m.
Changed
get_campaign_donations
Sept. 21, 2026, 2:49 a.m.
Changed
get_campaign
Sept. 21, 2026, 2:49 a.m.
Added
acknowledge_agent_terms
Sept. 17, 2026, 12:39 p.m.
Added
register_agent
Sept. 17, 2026, 12:39 p.m.
Added
confirm_donation
Sept. 17, 2026, 12:39 p.m.
Added
donate
Sept. 17, 2026, 12:39 p.m.
Added
get_evidence
Sept. 17, 2026, 12:39 p.m.
Added
get_campaign_donations
Sept. 17, 2026, 12:39 p.m.
Added
get_campaign
Sept. 17, 2026, 12:39 p.m.
Added
search_campaigns
Sept. 17, 2026, 12:39 p.m.
Added
get_platform_overview
Sept. 17, 2026, 12:39 p.m.

SAP MCP Server

ai.oobeprotocol.sap.mcp/sap-mcp

Provides an MCP gateway connecting SAP-related tools with Solana, DeFi, decentralized identity, and x402 payments.

FortFi Treasury MCP

io.github.rebelArtists/fortfi-treasury-mcp

Provides policy-controlled crypto treasury operations across chains, including wallets, payments, token discovery, swaps, bridges…

DPX — Institutional Cross-Border Settlement

io.github.untitledfinancial/dpx

Provides compliance-gated cross-border crypto settlement, agent registration and spending mandates, stablecoin routing, ESG and s…

Peer

io.github.zkp2p/peer

Reads Peer protocol, checkout, deposit, wallet, Peer Cash, cross-chain routing, payout, and IntentGuardian data on Base and relat…

Robyn — Gasless Cross-Chain for AI Agents

io.github.ox31461/robyn

Supports gasless cross-chain transfers, wallet and transaction checks, spending mandates, privacy-preserving messaging, and signe…

MERX - TRON Resource Exchange

exchange.merx/mcp

Manages TRON energy and bandwidth purchasing, resource monitoring, transaction cost estimation, wallet operations, token transfer…

Wisely x402 Agent-Payment Infrastructure

com.wiselyenterprisesllc/x402-agent-payment-infrastructure

Provides agent payment workflows for x402 endpoints, wallet handoffs, receipts, creator catalogs, local commerce bridges, endpoin…

AgentTools Hub

io.github.Thyphex/agenttools-hub

Offers calculators, unit and data converters, reference lookups, live crypto data, wallet utilities, and paid x402 access.