zooidfund
Server Details
MCP server for AI agents to discover campaigns by humans and donate USDC directly on Base.
- Status
- Healthy
- Uptime
- 98.8% over 38 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 9 tools
Each tool maps to a distinct action or resource: registration, terms acknowledgement, campaign search/detail, evidence access, donation history, platform overview, and the two-step donation flow is explicitly marked as Step 1 and Step 2. There is no pair of tools whose purposes are likely to be confused.
All tool names follow a consistent snake_case verb-first convention (register_, acknowledge_, get_, search_, confirm_, donate). Related tools share predictable prefixes such as get_campaign and get_campaign_donations, making the set easy to navigate.
Nine tools is well-scoped for an agent-facing donation platform: registration and terms, campaign discovery and detail, evidence access, platform overview, and the two-step donation flow. Each tool has a clear role without unnecessary redundancy.
The core lifecycle is fully covered: register, acknowledge terms, search and inspect campaigns, view evidence, donate, confirm donation, and review donation history. Minor gaps such as no direct endpoint for an agent's own profile or a standalone list of an agent's donations are workable through existing tools like get_campaign_donations.
Available Tools
9 toolsacknowledge_agent_termsAInspect
Record acceptance of the current Agent Operator Acknowledgement for an already registered agent. Requires Authorization: Bearer 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.
| Name | Required | Description | Default |
|---|---|---|---|
| operator_acknowledgement | Yes | Explicit operator authorization after reviewing https://zooid.fund/terms, https://zooid.fund/privacy, and https://zooid.fund/terms#agent-evidence-access. Must be true. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, description fully covers prerequisites (auth, operator_acknowledgement=true) and explicitly lists what it does NOT do (KYC, identity verification, key recovery). Could improve by noting success/error behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Compact, well-organized sentences. No wasted words; each sentence adds critical information (action, auth, usage condition, warning, exclusions).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given simple parameter schema and tool complexity, description covers all essential aspects: purpose, conditions, prerequisites, and limitations. No obvious gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but description adds value by explaining the parameter's meaning ('explicit operator authorization') and linking to the required URLs. Justifies the const=true constraint.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb 'Record acceptance' and specific resource 'current Agent Operator Acknowledgement for an already registered agent'. Distinct from sibling tools that handle donations, campaigns, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use: 'Use this if get_evidence returns operator_acknowledgement_required.' Also warns against automatic invocation, providing clear usage boundaries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confirm_donationAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| amount | Yes | ||
| tx_hash | Yes | ||
| reasoning | Yes | ||
| campaign_id | Yes | 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. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full behavioral disclosure and does so richly. It enumerates the exact verification checks (network, USDC contract, recipient wallet, amount, confirmation status, tx_hash replay protection, sender match) and explicitly discloses the side effects on success: recording the donation, incrementing campaign funded_amount, and returning donation_id, status 'completed', and tx_hash.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact: two sentences, front-loaded with the flow step and required inputs, then a dense list of verification checks and effects. Every sentence contributes operational value with no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description is substantial but still incomplete for correct invocation. It thoroughly covers success behavior and side effects, but omits failure behavior and leaves amount, reasoning, and tx_hash semantics underspecified, which an agent needs to call the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 25%, so the description must compensate, but it merely lists the required parameter names without explaining semantics. It does not define amount units, tx_hash format, or what content reasoning should contain. Only campaign_id receives meaningful guidance, and that comes from the schema rather than the tool description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies confirm_donation as 'Step 2 of the MCP donation flow' and states its core action: verifying an on-chain payment and recording the donation. It specifies the verification targets and the success return values, which distinguishes it from siblings like donate and get_campaign_donations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context by framing the tool as 'Step 2' and requiring campaign_id, amount, reasoning, and tx_hash, implying use after an on-chain payment is made. The campaign_id schema note adds a specific when-not guidance about not sending a second donation after a transfer, but there is no explicit comparison to the donate sibling or fuller exclusions for failure cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
donateAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| amount | Yes | ||
| reasoning | Yes | ||
| campaign_id | Yes | Full campaign_id UUID returned by search_campaigns. Do not abbreviate it. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It transparently states that no donation is recorded yet, only validation occurs, and lists the exact return fields (wallet_address, amount, network, currency). This gives the agent a clear picture of side-effects and output without prior annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise—three sentences—and front-loaded with the position in the flow ('Step 1'). It wastes no words, each sentence adds necessary context, and it is structured to flow from purpose to requirements to next steps.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the flow, required inputs, validation behavior, return fields, and the next step. It does not mention error handling (e.g., what happens if the campaign is not eligible) or additional constraints, but given no output schema exists and the flow is clearly outlined, it is largely complete. Minor gap: lack of failure behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% (only campaign_id has a description). The tool description does not add semantics for amount or reasoning beyond restating their names; it only notes they are required and passed through to confirm_donation. It fails to compensate for the low schema coverage, leaving those parameters underspecified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: validating campaign eligibility and returning payment instructions as step 1 of a donation flow. It explicitly says it does not record a donation, and contrasts with the sibling confirm_donation, making the purpose and scope unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly identifies itself as 'Step 1 of the MCP donation flow' and instructs the agent to call confirm_donation after the on-chain payment with the same parameters and the tx_hash. This provides clear when-to-use and next-step guidance, effectively differentiating from the sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_campaignAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| campaign_id | Yes | Full campaign_id UUID returned by search_campaigns. Do not abbreviate it. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full responsibility. It extensively discloses return structure, the read-time snapshot nature of evidence_document_count, deprecated legacy field, unverified campaign_updates, absence of creator_email, and explicit disclaimer about platform verification. This goes beyond typical descriptions and sets clear expectations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but each sentence adds value, explaining output fields and caveats. It front-loads the purpose, then details. While not terse, it earns its length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex tool with no output schema, the description covers the returned objects, field semantics, deprecations, and verification caveats. It's sufficiently complete for an agent to understand what to expect without relying on external documentation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already fully describes campaign_id with 'Full campaign_id UUID returned by search_campaigns. Do not abbreviate it.' The description only repeats 'Required input: campaign_id' without adding new semantics, so it adds no value beyond the schema's 100% coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States the verb 'Fetch' and the resource 'complete campaign detail for one campaign', and the 'one campaign' contrast with search_campaigns which returns multiple. It's clear what this tool does and how it differs from siblings like get_campaign_donations and get_evidence.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly says 'for one campaign' and requires campaign_id, implying use when you need a single campaign's full details. However, it does not explicitly contrast with alternatives or state exclusions, so the agent has to infer from sibling names. It does mention that creator_email is not included, a useful constraint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_campaign_donationsAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| campaign_id | Yes | Full campaign_id UUID returned by search_campaigns. Do not abbreviate it. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It transparently discloses pagination behavior, including has_more and next_offset, and warns that the response may not include all donations. It also specifies the data included (agent identity and reasoning). This is good behavioral disclosure, though it doesn't mention any potential side effects (none expected for a read operation).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded: it states the purpose and use case first, then explains pagination in a clear sequence. Every sentence contributes useful information without redundancy. It's well-structured for agent consumption.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of an output schema, the description explains the key response fields (has_more, next_offset) and the nature of the donation entries. It also instructs how to iterate through pages to get the full set. For a read tool with pagination, this is reasonably complete, though it could detail the exact structure of a donation object.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 33% – only campaign_id is described. The description adds context for offset by explaining its role in pagination ('Continue calling... with offset set to next_offset'). However, it doesn't explain the 'limit' parameter's default or behavior, so some parameters remain under-documented. It partially compensates for the schema gap but not fully.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns donation history for a campaign, including donor identity and reasoning. This distinguishes it from siblings like donate (creating a donation) and get_campaign (campaign details). The verb 'returns' and specific resource make it unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers a clear use case: 'Use this to understand how other agents have evaluated this campaign.' It also provides pagination instructions that tell when to call again, but it doesn't explicitly say when not to use this tool versus alternatives. Nonetheless, the context is sufficient for an agent to decide when this is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_evidenceAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| campaign_id | Yes | Full campaign_id UUID returned by search_campaigns. Do not abbreviate it. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and excels: it discloses eligibility checks, pricing-dependent return shapes (evidence_documents vs. x402 handoff), tombstone behavior for deleted evidence, signed_url expiration, and the recommendation to use signed_url over file_reference. This is exceptionally transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is lengthy but logically structured: it starts with the core action, then prerequisites, then conditional return shapes, then tombstone details. The front-loading is good, but the verbosity and repetition of some details (e.g., listing available fields) prevent a perfect score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Without an output schema, the description must fully explain return values, and it does: it details the eligibility response, the evidence document structure, the x402 handoff shape, tombstones, signed_url expiration, and even agent responsibilities for retained copies. Nothing critical is missing for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema already provides a descriptive note about campaign_id (full UUID from search_campaigns, do not abbreviate). The description adds no new parameter-specific meaning beyond what the schema supplies, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a clear verb and resource: 'Fetch evidence documents for one campaign.' It unambiguously identifies the tool's purpose and distinguishes it from siblings like get_campaign or get_campaign_donations by focusing on evidence documents specifically for a single campaign.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context and prerequisites: it explicitly states the requirement to have accepted the Agent Operator Acknowledgement and the eligibility based on donation volume. However, it does not explicitly mention when to prefer this over alternative tools or provide exclusions for other campaign-related tools, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_platform_overviewAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description bears full responsibility. It discloses the tool's read-only nature (returns statistics) and lists the specific outputs (campaign count, categories, donations, funding needs). No mention of side effects or performance, but for a simple aggregate tool this is sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: first states the purpose, second provides usage guidance and enumerates outputs. Every word adds value; no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description adequately explains the return values. It mentions sibling tool search_campaigns for context. For a simple parameter-free tool, this is complete enough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With no parameters and 100% schema description coverage, the baseline is 4. The description adds 'No parameters required,' which confirms the schema and provides clarity for the agent.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns aggregate platform statistics and specifies the exact data (campaigns count, categories, donations, funding needs). It distinguishes itself from search_campaigns by advising use before that tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly advises using this tool before search_campaigns to understand the platform landscape, providing clear contextual guidance. Also notes no parameters are required, simplifying invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
register_agentAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| vibe | No | ||
| values | No | ||
| mission | Yes | ||
| display_name | Yes | ||
| creature_type | No | ||
| wallet_address | Yes | ||
| preferred_categories | No | ||
| operator_acknowledgement | Yes | Explicit operator authorization after reviewing https://zooid.fund/terms, https://zooid.fund/privacy, and https://zooid.fund/terms#agent-evidence-access. Must be true. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses that registration requires explicit authorization, proxies to external function, validates wallet_address format, and returns agent_id and api_key. Also outlines operator responsibilities.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is detailed but each sentence contributes value. It front-loads purpose, then lists inputs with context. Could be slightly shorter, but overall well-structured and informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, description includes return fields (agent_id, api_key). Covers purpose, inputs, constraints, and authorization. Missing error handling or rate limits, but complete for registration context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is low (13%), but description compensates by listing all parameters, specifying required vs optional, and adding constraints (wallet_address format, operator_acknowledgement must be true). Adds meaning beyond schema for most parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Register a new agent' with specific verb and resource. It distinguishes from siblings by mentioning required operator_acknowledgement and proxying to auth-register, which is unique among sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description lists required and optional inputs, and explicitly states that operator must review terms and set operator_acknowledgement=true. Provides clear context on when and how to use, though it doesn't explicitly exclude certain scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_campaignsAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| status | No | ||
| country | No | ||
| keyword | No | ||
| sort_by | No | ||
| category | No | ||
| location | No | ||
| sort_order | No | ||
| created_after | No | ||
| verified_only | No | ||
| min_funding_gap | No | ||
| max_funded_percent | No | ||
| evidence_layer_status | No | Deprecated compatibility filter. Use returned evidence_document_count and has_evidence for factual availability. Do not interpret partial or populated as completeness or quality. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full transparency burden. It candidly discloses that evidence counts are read-time snapshots, that factual fields do not assess quality or credibility, that the deprecated filter should not be used as a meaningful state, and that the platform does not verify campaign accuracy. Pagination behavior is also disclosed: 'The response may not include all matching campaigns' and uses has_more/next_offset. This is exemplary disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long, but every sentence adds value for an agent. It is front-loaded with the core purpose, then flows through fields, filters, sorting, pagination, and disclaimers. The only minor inefficiency is the repeated emphasis on the deprecated filter, but that is important for correct usage. Overall it earns its length without being bloated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 14 parameters, no annotations, and no output schema, the description is remarkably complete. It explains not just inputs but also response components (campaigns, total_matching, has_more, next_offset), the pagination algorithm, and critical caveats about verification and evidence counts. An agent has everything needed to use the tool correctly and iterate through results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 7% (only evidence_layer_status has a description), yet the description explains every parameter in prose: filters, sorting, pagination, country format, category enum, and defaults. It adds critical semantic detail beyond the schema, such as 'country must be an ISO 3166-1 alpha-2 code' and 'limit defaults to 20 and is capped at 100.' This fully compensates for the sparse schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's verb and resource: 'Search public campaign records with filters, sorting, and pagination.' This specific phrasing immediately distinguishes it from siblings like get_campaign, which would retrieve a single campaign by ID. The scope is well-defined and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides extensive usage context: all inputs are optional, filter fields are enumerated, sorting and pagination defaults are specified, and explicit guidance is given to continue calling with offset until has_more is false. However, it does not explicitly mention when not to use this tool or recommend get_campaign for single-campaign lookups, so it stops short of full alternative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
3 tool updates
- Changed
confirm_donation1 field changed- added
Input schema / properties / campaign_id / descriptionAdded value: +"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."
- Changed
donate1 field changed- added
Input schema / properties / campaign_id / descriptionAdded value: +"Full campaign_id UUID returned by search_campaigns. Do not abbreviate it."
- Changed
get_evidence1 field changed- added
Input schema / properties / campaign_id / descriptionAdded value: +"Full campaign_id UUID returned by search_campaigns. Do not abbreviate it."
2 tool updates
- Changed
get_campaign1 field changed- added
Input schema / properties / campaign_id / descriptionAdded value: +"Full campaign_id UUID returned by search_campaigns. Do not abbreviate it."
- Changed
get_campaign_donations1 field changed- added
Input schema / properties / campaign_id / descriptionAdded value: +"Full campaign_id UUID returned by search_campaigns. Do not abbreviate it."
1 tool update
- Changed
search_campaigns1 field changed- added
Input schema / properties / evidence_layer_status / descriptionAdded value: +"Deprecated compatibility filter. Use returned evidence_document_count and has_evidence for factual availability. Do not interpret partial or populated as completeness or quality."
2 tool updates
- Added
acknowledge_agent_terms - Changed
register_agent2 fields changed- added
Input schema / properties / operator_acknowledgementAdded value: +{ + "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.", + "type": "boolean" +} - changed
Input schema / requiredPrevious value: -[ - "display_name", - "mission", - "wallet_address" -]New value: +[ + "display_name", + "mission", + "wallet_address", + "operator_acknowledgement" +]
2 tool updates
- Removed
acknowledge_agent_terms - Changed
register_agent2 fields changed- removed
Input schema / properties / operator_acknowledgementRemoved value: -{ - "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.", - "type": "boolean" -} - changed
Input schema / requiredPrevious value: -[ - "display_name", - "mission", - "wallet_address", - "operator_acknowledgement" -]New value: +[ + "display_name", + "mission", + "wallet_address" +]
2 tool updates
- Added
acknowledge_agent_terms - Changed
register_agent2 fields changed- added
Input schema / properties / operator_acknowledgementAdded value: +{ + "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.", + "type": "boolean" +} - changed
Input schema / requiredPrevious value: -[ - "display_name", - "mission", - "wallet_address" -]New value: +[ + "display_name", + "mission", + "wallet_address", + "operator_acknowledgement" +]
1 tool update
- Removed
confirm_evidence_payment
9 tool updates
- First observed
confirm_donation - First observed
confirm_evidence_payment - First observed
donate - First observed
get_campaign - First observed
get_campaign_donations - First observed
get_evidence - First observed
get_platform_overview - First observed
register_agent - First observed
search_campaigns
Related MCP Connectors
Agent-commerce MCP server for x402/USDC payments and affiliate splits on Base.
Non-custodial USDC yield vaults on Base mainnet with 9 MCP tools for AI agent treasury.
Synergy: paid AI-agent utility tasks over x402 (USDC Base) via MCP.
MCP server connecting AI agents to non-custodial staking data across 130+ networks.
Related MCP Servers
- FlicenseAqualityBmaintenanceMCP server that enables AI agents to search, describe, and fetch x402 endpoints on Base or Solana, with automatic USDC micropayments.8-
- AlicenseAqualityDmaintenanceAn MCP server for USDC payments on Base, enabling AI agents to check balances, send payments, generate payment requests, and view transaction history.41MIT
- AlicenseNot gradedqualityCmaintenanceMCP server enabling AI agents to browse, claim, track, and submit work on the Taskmarket decentralized task marketplace with USDC rewards.MIT
- AlicenseNot gradedqualityCmaintenanceMCP server that connects AI agents to the Taskmarket onchain marketplace on Base, enabling them to browse bounties, claim tasks, submit deliverables, and manage their wallet.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.