memecoin-spotter
memecoin-mcp
Read-only MCP server for spotting trending/new memecoin pools, scoring them against known rug patterns, and surfacing the wallets buying in early — across Solana, Base, Ethereum, and anything else GeckoTerminal covers. No API key, free tier. Nothing in this server can move funds or place a trade — it only reads public on-chain data.
Tools
Tool | What it does |
| currently-trending pools on one chain |
| freshly-created pools — where new launches show up first |
| liquidity/age/volume stats + a transparent rug-risk score |
| recent individual trades on a pool, with wallet addresses |
| earliest unique buyer wallets in the returned trade window |
Setup
npm install
npm run demo # proves the pipeline live across solana/base/ethWire it into Claude Code
claude mcp add memecoin-spotter -- node "C:\Users\PC\Desktop\Research\memecoin-mcp\src\index.js"or add by hand:
{
"mcpServers": {
"memecoin-spotter": {
"command": "node",
"args": ["C:\\Users\\PC\\Desktop\\Research\\memecoin-mcp\\src\\index.js"]
}
}
}Unattended refresh (scheduled routine)
The dashboard's paper-trading section is now machine-regenerable:
paper-trade.js marks/screens positions into paper-ledger.json, then
build-dashboard.js rewrites the block between <!-- PAPER_TRADE_START -->
and <!-- PAPER_TRADE_END --> in dashboard-demo.html from that ledger.
That's the whole pipeline a scheduled routine needs to run.
Blocked on: this repo isn't on GitHub yet, and this machine has no gh
CLI and no git credentials configured, so it can't be pushed from here
unattended. To close the loop: install the GitHub CLI and run
gh auth login once (interactive, one-time) — after that, push access and
routine creation can happen from an agent session without further manual
steps. The routine, once wired, would run roughly: npm ci && node paper-trade.js && node build-dashboard.js, then commit+push the updated
ledger/dashboard, then republish the artifact at the URL pinned in the
routine's own prompt.
Paper trading
node paper-trade.jsSimulated $10,000 bankroll, $250 per position, persisted to paper-ledger.json.
Each run: marks every open position to its latest price, then screens
get_new_pools across all three chains and opens a position in anything that
doesn't get flagged "high" risk by computeRiskSignals. No real wallet, no
key, no trade ever leaves this script. This is the actual test of the wallet-
spotting/risk-screen work above: does avoiding the obviously-flagged pools
beat just buying everything new?
This does not run on its own. The dashboard (dashboard-demo.html) bakes
in the ledger state at publish time — it can't poll GeckoTerminal itself
(published Artifacts can't fetch arbitrary external APIs, and the runtime's
live-data bridge only reaches claude.ai connectors, not a local MCP server).
To refresh: run paper-trade.js, then rebuild the dashboard's paper-trading
section from the updated paper-ledger.json and republish. Currently done
on request, not on a schedule — ask for a refresh, or ask to set up a
recurring one if that's wanted later.
Real limitations, found while building this (read before trusting the output)
find_early_walletsis window-limited, not history-complete. The trades endpoint returns recent trades, not a full pool history. On a pool that's been trading for days at high volume, "earliest in the window" might mean "earliest in the last five minutes." It's only a true "since launch" signal on pools young enough that the window covers their whole life — which, conveniently, is also when spotting early wallets is most interesting.Free-tier rate limits are real. The
/tradesendpoint 429'd repeatedly while building this. Space out calls; don't hammer it in a loop.XBRL-style tag inconsistency has a crypto equivalent: token name squatting. While testing
get_new_pools, five separate brand-new "billy"-named tokens showed up in the same 15-minute window, riding a trending name. Name/symbol alone is not identity — always check the pool address.Being early is not being smart. The wallets in
find_early_walletsare ranked by timestamp only. On the live example in the dashboard, eight wallets bought within the same two seconds — that's sniper bots racing a new pool, not considered conviction. Treat "early" as a fact to investigate, never as a signal to copy.
What this deliberately doesn't do
This was scoped as read-only on purpose. A "copy trading agent" that auto-executes real trades is a fundamentally different, much higher-risk build — it means holding a private key capable of moving funds, and memecoin copy-trading in particular tends to lose to latency (bots see a tracked wallet's buy before you can act on it) and to survivorship bias (a wallet that looks smart in hindsight was usually just early or an insider). If that's still wanted later, it deserves its own deliberate scoping conversation — paper-trading first, explicit capital limits, and key custody that never touches plaintext in a config file — not a bolt-on to this tool.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/sjohnewa/memecoin-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server