I shipped a tiny MCP server last week that turns a curated crypto airdrop directory into 3 tools any LLM client (Claude Desktop, Cursor, Continue, Windsurf) can call directly.
This post is the install snippet + a screenshot of it returning real data — so you can decide in 30 seconds whether it's worth one config line.
What you get
Three tools, no signup, no API key, no rate limit:
-
list_active_airdrops(chain?, risk?, sort_by?, limit?)— browse 32 vetted active airdrops, filter by chain (Solana, Base, Ethereum…) or risk level (verified / unverified) -
get_airdrop(slug)— full details for one campaign: action steps, weekly effort, cost floor, risk notes, official URL -
check_wallet(addr)— paste an EVM or Solana address, fan out to 7 public RPCs (Ethereum, Base, Linea, Arbitrum, Polygon, BSC, Solana), and surface every tracked airdrop whose chain you've already touched
Hosted, JSON-RPC 2.0 over HTTP, CORS-open. Endpoint: https://web3-discover.vercel.app/api/mcp.
Install in Claude Desktop or Cursor
Add this one block to your MCP config:
{
"mcpServers": {
"web3-discover": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://web3-discover.vercel.app/api/mcp"]
}
}
}
That's it. Restart your client. Ask: "What active airdrops can I farm on Solana this week with under $100 capital?"
What it returns (live)
Here's the actual JSON-RPC 2.0 response from a real tools/call against the live endpoint — pulled the moment I wrote this article:
Verify it yourself:
curl -s -X POST https://web3-discover.vercel.app/api/mcp \
-H 'content-type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"list_active_airdrops","arguments":{"limit":3,"sort_by":"added"}}}'
You get back structured entries: slug, project, chain, blurb, deadline, effort estimate, cost floor, risk flag (verified means the team has publicly confirmed TGE plans; unverified means speculative), and the official URL.
Why this is interesting (beyond "another MCP server")
I run a curated airdrop directory at web3-discover.vercel.app. Every entry is hand-vetted, scam-filtered, and re-checked weekly. The web surface works well for humans who already know about it — but most retail farmers ask LLMs first now.
So I exposed the directory as MCP tools. Three things this unlocks that the web UI alone can't:
-
Natural-language filtering. "What's verified-only, ongoing, costs gas only?" — the LLM picks
list_active_airdrops, filters byrisk=verified, sorts bydeadline, narrates the result. -
Wallet-aware advice.
check_walletreturns which chains your wallet has touched plus the entries on those chains. The LLM combines that with your stated risk tolerance and tells you what to prioritize, not just what exists. - Composition with other MCP servers. If you've got a wallet MCP server + this one, the LLM can chain "what airdrops am I close to qualifying for, given my actual on-chain history?"
No tracking. The directory has no signup. The check_wallet tool just reads from public RPCs — no address is logged.
Why hosted, not stdio?
Most MCP servers ship as npx some-package that runs on your machine. I went hosted (HTTP transport via mcp-remote bridge) for one reason: the data changes weekly. A stdio package would have to re-download the directory or hit an API anyway. Hosting it means the data refreshes when I do a freshness sweep, not when you remember to npm update.
Tradeoff: you trust me to keep the endpoint up. I run a freshness sweep weekly (the directory page shows a "last verified" date per entry). If you'd rather self-host, the source is MIT and the MCP handler is a single ~250-line file (api/mcp.mjs).
What works, what doesn't, what's next
Works today:
- All 3 tools verified end-to-end on Claude Desktop and Cursor with
mcp-remote - 32 active entries, 7-chain wallet check
- No auth, no rate limit at current load
Doesn't yet:
- No eligibility scoring —
check_walletis a presence check, not an "are you actually eligible?" check. Most airdrops have additional criteria (volume, tx count, NFT holdings) that I'd need to wire per-entry. - No notifications — if a deadline shifts or an entry gets removed, you'll only see it next time you query.
Next:
-
subscribe_deadlines(addr)returning an iCalendar feed so deadlines land in your calendar - Per-entry eligibility checks where the airdrop has a public scoring API
- Adding the directory as an MCP resource (not just tools) so LLMs can browse without explicit calls
Try it
Drop the config block above into Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json on macOS) or Cursor (Settings → MCP). Ask "What airdrops are worth farming this week?"
If it's useful, the directory itself lives at web3-discover.vercel.app — same data, human-shaped.
If something breaks or you want a tool added, open an issue.
Built with Astro + Vercel serverless. Three days, ~250 LOC for the MCP handler. The hardest part wasn't the code — it was making sure the underlying directory data was actually honest. (No paid placements pretending to be listings.)

Top comments (0)