Atlas / MCP servers / nirholas / solana-sniper-mcp

solana-sniper-mcpSAFE

mcp/nirholas/solana-sniper-mcp

Lightweight, embeddable pump.fun sniper engine for 3D AI agents — multi-agent, multi-user, with pluggable wallet/store/RPC adapters. Library + CLI + MCP server + x402 paid API.

Verdict
SAFE
Grade
B
Trust score
89 /100
Exposed tools
7 7r · 0w · 0d
Transport
stdio
License
Apache-2.0
Stars
9
01

Overview

From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.

[](https://github.com/nirholas/solana-sniper-mcp/stargazers) [](https://github.com/nirholas/solana-sniper-mcp/blob/HEAD/LICENSE) [](https://github.com/nirholas/solana-sniper-mcp/commits) [](https://github.com/nirholas/solana-sniper-mcp/pulls) [](https://github.com/nirholas/solana-sniper-mcp/blob/HEAD/AGENTS.md)

A lightweight, embeddable pump.fun sniper engine for 3D AI agents. One trade loop — feed a stream of new launches, score each against a per-agent strategy, run the pre-trade guards, buy, then sweep open positions on an interval and exit on stop-loss / take-profit / trailing-stop / timeout / sentiment-flip. It is multi-agent and multi-user by construction (one wallet per agentId), and every external dependency — wallet custody, persistence, RPC/venue, launch feed — is a pluggable adapter, so the same engine runs locally with in-memory state or hosted across thousands of tenants. The package ships with four faces over that one engine: a library, a CLI, an MCP server, and an x402 paid HTTP API.

Why — the adapter architecture

The engine is pure orchestration. It owns the decision pipeline; it owns nothing about where the money, the data, or the chain live. Five adapter interfaces (src/types.js) are the seams, and a default implementation ships for each:

┌──────────────────────────── engine ────────────────────────────┐
Feed ──{mint|intel|claim}─▶  score  ──▶
Read from source at commit 7ef29caf810bOBSERVED · 2026-10-10
02

Connect

Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control. Replace the environment placeholders with a token scoped to the least it needs.

claude-code (npm)
claude mcp add agent-sniper --env SOLANA_SECRET_KEY=${SOLANA_SECRET_KEY} -- npx -y @three-ws/[email protected] mcp
03

Exposed tools (7)

7 read · 0 write · 0 destructive.

ToolRiskDescription
arm_strategyread
close_positionread
disarm_strategyread
list_positionsread
list_strategiesread
snipe_nowread
sniper_statusread
04

Trust audit

SAFEgrade B · trust 89/100 Nothing in the source contradicts what it says it does. Grade A is reserved for packages that have also passed the behavioural sandbox.

LayerWhat it checksResult
L0Provenance & inventoryPASS
L1Static analysis of the codeWARN
L2Instruction surface (what it tells the agent)PASS
L3Class-specific surfacePASS
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
declared (2 observation(s))
Network
declared (5 observation(s))
Shell
none-observed
Dependencies
not all pinned
Secrets in source
none-found

Findings (5)

MEDIUMInformation disclosure · disclose.log_secret · CWE-209, CWE-532
scripts/ui-login.mjs:52
console.log(`  filled identifier=${filledId} password=${filledPw}`);
LOWInventory / provenance · inv.hidden_file · CWE-1104
docs/.nojekyll
.nojekyll
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
scripts/fund-swarm.mjs:31
const { sql } = await import('../../../api/_lib/db.js');
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
src/faces/mcp.js:33
const { version: PKG_VERSION } = createRequire(import.meta.url)('../../package.json');
LOWSupply chain · supply.unpinned · CWE-829, CWE-1357
package.json
@modelcontextprotocol/sdk, @nirholas/pump-sdk, @pump-fun/pump-sdk, @pump-fun/pump-swap-sdk, @solana/spl-token, @solana/web3.js, @three-ws/agent-payments, @three-ws/x402-server
Why it matters. 16 dependency range(s) float
Fix. pin exact versions or ship a lockfile

Gates applied: no_behavioural_pass.

Audited 2026-10-10 · audit v0.4.1 · source sha 7ef29caf810bfull audit observations/trust-audit/mcp-server/nirholas__solana-sniper-mcp.json · Report an issue / request a re-scan
05

Audit history

Every audit this server has had. A grade with a past is a grade somebody is still checking.

DateSourceVerdictGradeScoreChange
2026-10-107ef29caf810bSAFEB89first audit
06

Questions

What is the solana-sniper-mcp MCP server?

Lightweight, embeddable pump.fun sniper engine for 3D AI agents — multi-agent, multi-user, with pluggable wallet/store/RPC adapters. Library + CLI + MCP server + x402 paid API.

What tools does solana-sniper-mcp expose?

7 in total: 7 read-only, 0 that write, and 0 that can delete or overwrite. Every one is listed on this page with its risk.

Is solana-sniper-mcp safe to connect to an agent?

The audit found nothing in the source that contradicts what it says it does, and graded it B (89/100). Grade A is held back for packages that have also passed a sandboxed behavioural run, which is why a clean server reads B.

What credentials does solana-sniper-mcp need?

It reads HELIUS_API_KEY, SNIPER_ADMIN_TOKEN, SNIPER_KEYSTORE_DIR, SOLANA_SECRET_KEY and TELEGRAM_BOT_TOKEN from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.

How does solana-sniper-mcp run?

It speaks stdio, so it runs as a local process your client starts. It is published on npm as @three-ws/agent-sniper at 0.1.7.

How current is this page?

The grade is for one exact copy of the source (7ef29caf810b), read on 2026-10-10. The repository is watched and re-audited when it changes.

Advertisement