{"serverId":"mcp-registry/fund.zooid/zooidfund","tools":[{"name":"get_campaign","fixed":{"name":"get_campaign","description":"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","inputSchema":{"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},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":213,"tokensAfter":213},{"name":"get_campaign_donations","fixed":{"name":"get_campaign_donations","description":"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","inputSchema":{"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},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":230,"tokensAfter":230},{"name":"get_evidence","fixed":{"name":"get_evidence","description":"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 elig","inputSchema":{"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},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":213,"tokensAfter":213},{"name":"get_platform_overview","fixed":{"name":"get_platform_overview","description":"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.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":112,"tokensAfter":112},{"name":"search_campaigns","fixed":{"name":"search_campaigns","description":"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, e","inputSchema":{"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},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":455,"tokensAfter":455}],"toolsChanged":5,"tokensSaved":0,"todo":[{"tool":"confirm_donation","params":["amount","tx_hash"]},{"tool":"donate","params":["amount"]},{"tool":"get_campaign_donations","params":["limit","offset"]},{"tool":"register_agent","params":["vibe","values","mission","display_name","creature_type","wallet_address","preferred_categories"]},{"tool":"search_campaigns","params":["limit","offset","status","country","keyword","sort_by","category","location","sort_order","created_after","verified_only","min_funding_gap","max_funded_percent"]}],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}