protogrid

Search / fund.zooid/zooidfund

zooidfund

R0· no sign-in

MCP server for AI agents to discover campaigns by humans and donate USDC directly on Base.

v1.0.1 · active · descriptor JSON · versions

An agent can connect right now, no human step.Remote endpoint, no authentication, reachable on the last probe.
Quality74needs work
Trust69of 100
Uptime, 30 days100%
Latency p50524 ms

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "zooidfund": {
      "type": "http",
      "url": "https://fcefnmdlggldmfusydix.supabase.co/functions/v1/mcp"
    }
  }
}
claude mcp add --transport http zooidfund https://fcefnmdlggldmfusydix.supabase.co/functions/v1/mcp
[mcp_servers.zooidfund]
url = "https://fcefnmdlggldmfusydix.supabase.co/functions/v1/mcp"
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "zooidfund": {
      "type": "remote",
      "url": "https://fcefnmdlggldmfusydix.supabase.co/functions/v1/mcp",
      "enabled": true
    }
  }
}
{
  "mcpServers": {
    "zooidfund": {
      "type": "http",
      "url": "https://fcefnmdlggldmfusydix.supabase.co/functions/v1/mcp"
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=zooidfund&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vZmNlZm5tZGxnZ2xkbWZ1c3lkaXguc3VwYWJhc2UuY28vZnVuY3Rpb25zL3YxL21jcCJ9"
}
{
  "servers": {
    "zooidfund": {
      "type": "http",
      "url": "https://fcefnmdlggldmfusydix.supabase.co/functions/v1/mcp"
    }
  }
}
{
  "mcpServers": {
    "zooidfund": {
      "httpUrl": "https://fcefnmdlggldmfusydix.supabase.co/functions/v1/mcp"
    }
  }
}
extensions:
  "zooidfund":
    enabled: true
    name: "zooidfund"
    type: streamable_http
    uri: "https://fcefnmdlggldmfusydix.supabase.co/functions/v1/mcp"
    timeout: 300

Quality 74 / 100needs work

protocol100 · weight 25
  • pass
    protocol.modernsupports 2026-07-28 (server/discover)
  • pass
    protocol.statelessanswers without a session
  • pass
    protocol.transportstreamable HTTP
  • pass
    protocol.list_ttltool list is cacheable (ttlMs 300000)
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene64 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • warn
    tools.description_length3 tools have descriptions over 1,024 characters, which crowds the context
  • pass
    tools.schemasevery tool has an object input schema
  • fail
    tools.annotationsno tool declares readOnlyHint or destructiveHint, so clients cannot tell safe calls from risky ones
  • fail
    tools.directory_hintsno tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: get_campaign_donations (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); get_evidence (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); donate (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); …
  • pass
    tools.token_costabout 3,052 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
stability50 · weight 15
  • pass
    stability.changes3 tool changes in 30 days
  • fail
    stability.rug_pull1 tools kept their name but changed most of their description in 30 days; review before trusting them
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI package

9 tools, about 3,052 tokens to load them all · tool set 4215749ececc · tools last changed 2026-10-19 · checked 2026-10-20 07:53 UTC

Tool changes

  • confirm_donationchangeddescriptionmeaning changed
    before

    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.

    after · 43% of words in common

    Step 2 of the MCP donation flow. Required inputs: campaign_id, amount, reasoning, and the actual chain transaction tx_hash. This tool checks the expected network, a successful confirmed receipt, duplicate tx_hash replay protection, and one canonical USDC Transfer event whose token sender matches the registered agent wallet_address, recipient matches the creator wallet, and amount matches the declared amount. The receipt's top-level sender may be a relayer. Only one donation record is allowed per chain transaction hash, even if a bundler combines multiple UserOperations or the transaction contains multiple transfers. A submitted UserOperation does not guarantee a unique transaction hash. If a different transfer already occurred in a recorded transaction, it cannot be recorded through this tool; reconcile and report it without automatically sending again. On success, this tool records the donation, increments campaign funded_amount, and returns donation_id, status 'completed', and tx_hash.

  • confirm_donationchangedinput schema
  • donatechangedinput schema

Full history: list_changes · trend: quality JSON.

Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.

Trust 69 / 100

no-repository
provenance45
liveness100
freshness45
hygiene80

+dns-namespace +reachable +uptime-100% -stale-193d -no-repository

Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://fcefnmdlggldmfusydix.supabase.co/functions/v1/mcp streamable-httpnoneyes100%524 ms2026-07-282026-10-20

Tools (9)

acknowledge_agent_termsRecord 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.
confirm_donationStep 2 of the MCP donation flow. Required inputs: campaign_id, amount, reasoning, and the actual chain transaction tx_hash. This tool checks the expected network, a successful confirmed receipt, duplicate tx_hash replay protection, and one canonical USDC Transfer event whose token sender matches the registered agent wallet_address, recipient matches the creator wallet, and amount matches the declared amount. The receipt's top-level sender may be a relayer. Only one donation record is allowed per chain transaction hash, even if a bundler combines multiple UserOperations or the transaction contains multiple transfers. A submitted UserOperation does not guarantee a unique transaction hash. If a different transfer already occurred in a recorded transaction, it cannot be recorded through this tool; reconcile and report it without automatically sending again. On success, this tool records the donation, increments campaign funded_amount, and returns donation_id, status 'completed', and tx_hash.
donateStep 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.
get_campaignFetch 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.
get_campaign_donationsReturns 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.
get_evidenceFetch 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.
get_platform_overviewReturns 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.
register_agentRegister 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.
search_campaignsSearch 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.

Schemas: list_tools.

Similar MCP servers

Official server.json
{
  "name": "fund.zooid/zooidfund",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://fcefnmdlggldmfusydix.supabase.co/functions/v1/mcp",
      "type": "streamable-http"
    }
  ],
  "version": "1.0.1",
  "repository": {},
  "description": "MCP server for AI agents to discover campaigns by humans and donate USDC directly on Base."
}