memecoin-spotter
Provides read-only tools for spotting trending and newly created memecoin pools on Ethereum, scoring them for rug risk, and surfacing early buyer wallets.
Provides read-only tools for spotting trending and newly created memecoin pools on Solana, scoring them for rug risk, and surfacing early buyer wallets.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@memecoin-spottershow me trending memecoin pools on Solana"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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 |
Related MCP server: deepnets
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.
Available Tools
5 toolsfind_early_walletsFind early wallets on a poolA
The earliest unique buyer wallets within the trade data the API returns, in chronological order. Most accurate on newly-created, lower-volume pools where the returned window covers most of the pool's history; on a high-volume pool that's been trading for days, 'earliest in window' may only mean 'earliest in the last few minutes,' not since launch. Chronology only — being early is not proof of skill or insider status, just a fact you can go investigate further.
| Name | Required | Description | Default |
|---|---|---|---|
| topN | No | How many wallets to return (default 10) | |
| minUsd | No | Ignore buys smaller than this (default 100) | |
| network | Yes | Chain id, e.g. "solana", "base", "eth", "bsc", "arbitrum" | |
| poolAddress | Yes |
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 honestly explains that results are window-relative, not launch-relative, and warns against overinterpreting early entry as skill or insider status. It does not discuss rate limits, authentication, or exact return shape, but the key behavioral caveat is well covered.
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 three sentences long and front-loads the core behavior in the first sentence, followed by an important accuracy caveat and a short interpretive warning. Each sentence serves a purpose, though the third sentence is slightly interpretive rather than purely functional.
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 main limitation and intended use well, but because there is no output schema, an agent still has to infer the exact return format, such as whether it returns addresses alone or with additional metadata. For a fairly simple lookup tool this is workable, but it leaves some behavioral and return-shape details unstated.
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 input schema already documents topN, minUsd, network, and poolAddress with descriptions, giving roughly 75% coverage. The description adds contextual meaning to the output rather than to the parameters themselves, so it does not significantly improve parameter understanding beyond the schema.
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 the tool's action and result: finding the earliest unique buyer wallets in chronological order from the returned trade data. It also distinguishes this from sibling tools like get_pool_trades or get_trending_pools by focusing on buyer wallets rather than trades or pool rankings.
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 explicit context on when results are most meaningful, noting accuracy on newly-created, lower-volume pools and warning that high-volume pools may only reflect a recent window. It does not explicitly name alternative tools or state hard exclusion criteria, but the guidance is clear enough for an agent to decide when the tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_new_poolsGet newest poolsB
Freshly created token pools on one chain — where brand-new memecoin launches show up first.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| network | Yes | Chain id, e.g. "solana", "base", "eth", "bsc", "arbitrum" |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description alone must disclose behavior. It conveys recency and chain scope, but says nothing about ordering, time window, returned fields, pagination, or the fact that results are limited to 20 items.
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?
One compact sentence with the core idea front-loaded; the memecoin clause adds color but costs little. It is appropriately sized even if the metaphor is slightly loose.
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 simple two-parameter list tool, the description gives the core purpose and a hint of when to use it. But with no output schema and no annotations, the missing ordering and limit details leave an agent guessing about response 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?
With only 50% schema description coverage, the description needed to clarify both parameters. It only gestures at the network parameter ('one chain') and says nothing about the limit parameter, leaving its meaning and optional behavior undocumented.
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 the resource ('freshly created token pools') and the key angle ('newest'), and frames it as a discovery surface for new memecoin launches. It doesn't explicitly name a sibling, but 'new' is enough to differentiate from get_trending_pools.
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 implies the right use case — finding newest pool launches on a network — but doesn't state when to prefer it over get_trending_pools or get_pool_trades. There are no explicit exclusions or alternative conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_pool_riskGet pool risk signalsA
Pull one pool's stats (liquidity, volume, age, buy/sell counts) and score it against known rug/risk patterns. Heuristic, not a prediction — read the flags, don't just trust the score.
| Name | Required | Description | Default |
|---|---|---|---|
| network | Yes | Chain id, e.g. "solana", "base", "eth", "bsc", "arbitrum" | |
| poolAddress | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the behavioral burden. It explicitly discloses that the scoring is 'Heuristic, not a prediction' and warns to 'read the flags, don't just trust the score,' which are genuinely useful behavioral caveats. It also lists the stats it pulls, though it does not explicitly confirm whether the call is read-only or describe side effects.
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 compact sentences with the core behavior front-loaded and the important heuristic caveat immediately after. Every phrase adds information; there is no filler or redundant restating of the tool name.
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 tool has no output schema and no annotations, yet the description covers the main return concepts (stats, score, flags), the heuristic caveat, and the single-pool scope. It does not detail the exact response shape or score scale, but for a two-parameter analytics tool this is close to sufficient.
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 documents network, but poolAddress has no schema description. The phrase 'one pool's stats' adds meaning by clarifying that poolAddress identifies the pool being assessed. However, the description does not specify the expected address format or whether a pool ID/symbol might also be accepted, so it only partially compensates for the missing schema 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?
The description opens with a specific verb and object: 'Pull one pool's stats' and then says it scores that pool 'against known rug/risk patterns.' This clearly targets a single pool for risk assessment, which distinguishes it from siblings like get_trending_pools and get_pool_trades without needing to name them.
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?
Usage is implied: call this when you need a risk/rug-pattern read on one specific pool. However, the description does not explicitly mention sibling tools or state when not to use this tool, so the agent must infer the selection context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_pool_tradesGet recent trades on a poolA
Recent individual buy/sell trades on a pool, including the trader's wallet address.
| Name | Required | Description | Default |
|---|---|---|---|
| minUsd | No | Only trades above this USD size (default 100) | |
| network | Yes | Chain id, e.g. "solana", "base", "eth", "bsc", "arbitrum" | |
| poolAddress | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations available, the description carries the full burden of behavioral disclosure. It tells the agent the data is trade-level, includes buy/sell direction and wallet addresses, but does not disclose limits, ordering, time window, pagination, or error behavior. This is adequate for a simple read-only tool but leaves important ambiguities around what 'recent' means.
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 a single front-loaded sentence with no filler. It states the core behavior and the most relevant data point (wallet address) without 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?
For a 3-parameter read-only tool with no output schema, the description together with the input schema is reasonably complete. However, it lacks details about result limits, sorting, the meaning of 'recent' (time window), and the exact return format, which an agent would need for robust 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?
The schema already documents network and minUsd with helpful descriptions, while poolAddress lacks a description. The description implicitly clarifies that poolAddress identifies the pool whose trades are returned, but adds no further parameter-level meaning. With roughly two-thirds schema coverage and a self-evident poolAddress, the description does not need to compensate heavily.
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 resource ('a pool') and the specific kind of data returned ('individual buy/sell trades'), and adds the distinctive detail that the trader's wallet address is included. This distinguishes it from aggregate or summary-style pool tools. However, it does not explicitly differentiate from any sibling 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?
The tool's purpose implies it should be used when an agent needs recent individual trade records for a pool, but there is no explicit when/when-not guidance or mention of alternatives. No sibling tools are listed, and the description does not say when a different tool would be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_trending_poolsGet trending poolsA
Currently-trending token pools on one chain, ranked by GeckoTerminal's trending score.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| network | Yes | Chain id, e.g. "solana", "base", "eth", "bsc", "arbitrum" |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of disclosure. It does explain that results are current, chain-specific, and ranked by GeckoTerminal's trending score, which is useful. But it does not mention response format, pagination, rate limits, or potential variability of the trending list, so behavioral transparency is only moderate.
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 a single sentence with no filler. It front-loads the key purpose and includes ranking context in a compact, efficient way.
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 low complexity (2 params, no output schema, no annotations), the description captures the core function but leaves some gaps: it does not mention the meaning of limit, the shape of the returned pools, or any caveats like the trending score being volatile. It is adequate for a simple read tool, but not fully complete.
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 description adds no parameter-level meaning. The network parameter already has a helpful schema description, but the limit parameter has no description and the tool description does not explain that ‘limit’ controls how many trending pools are returned. With 50% schema coverage, the description should compensate for the undocumented limit, but it does not.
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 what the tool does: returns currently-trending token pools on a single chain, ranked by GeckoTerminal's trending score. It uses a specific resource ('token pools'), a clear qualifier ('trending'), and a ranking basis, which distinguishes it from siblings like get_new_pools or find_early_wallets.
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 implies the use case — if you need currently-trending pools on a chain, use this tool. However, it does not explicitly state when to prefer this over get_new_pools or other siblings, nor does it provide exclusions or alternative routing 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. Dates show when Glama detected each change.
5 tool updates
v1.0.0- First observed
find_early_wallets - First observed
get_new_pools - First observed
get_pool_risk - First observed
get_pool_trades - First observed
get_trending_pools
TDQS
Each tool targets a clearly distinct purpose: discovery (trending/new pools), single-pool risk assessment, raw trade history, and wallet extraction. There is no meaningful overlap even between get_pool_trades and find_early_wallets, as the latter is a specific aggregation over the former.
Four tools follow the predictable get_<object> pattern, but find_early_wallets breaks the convention by using 'find' instead of 'get.' This is a minor deviation and the overall naming remains readable and consistent.
Five tools is an ideal size for a focused memecoin-spotting toolkit. Each tool serves a distinct step in the discovery-to-analysis workflow and none feel redundant or extraneous.
The toolset covers the full stated domain: discovering trending or freshly launched pools, checking risk, examining recent trades, and identifying early wallets. No obvious missing operation that would block a typical memecoin research workflow.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Rug pull risk and on-chain forensics for tokens on Solana, Ethereum, Base and Robinhood.
Instant rug-check for any EVM or Solana token, distilled to one clear 0-10 risk verdict.
Real-time labelled pump.fun intelligence, paid per tool call with x402 (USDC on Solana). No API key.
Solana meme-coin trust scores, rug-risk flags, and wallet analytics from SolRadar.
Related MCP Servers
- AlicenseAqualityBmaintenancePaid access to Solana DeFi risk intelligence — rug/honeypot scans, liquidity-pool analysis, and wash-trade-filtered pool rankings. Automatically settles micropayments in USDC via x402.1035MIT
- AlicenseNot gradedqualityDmaintenanceProvides deep analysis of Solana tokens, their risks, and holder information.49MIT
- FlicenseNot gradedqualityCmaintenanceExposes Solana meme-coin safety data as MCP tools, enabling AI assistants to check token trust scores, rug-risk flags, holder analysis, and trending tokens directly in conversation.3,345-
- AlicenseAqualityBmaintenanceReal-time DEX token momentum, orderbook liquidity depth, and whale flows on Base Mainnet gated with gasless x402 micropayments.3MIT
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