vibeforge1111/dexscreener-cli-mcp-tool

GitHub ↗ · How this check works

Per-setup public labels: Linux / Haiku: Works · Linux / Luna: Works

Static status badge · SVG · read-only JSON. Embed with ![Coldpass status](https://coldpass.dev/badge/vibeforge1111--dexscreener-cli-mcp-tool.svg).

mcp-server

Works

README claims checked out on 2 recorded setups.

Answers apply to each recorded setup, revision and operation. Earlier observations remain in Run details.

Tested on Linux
PlatformHaikuLuna
Linuxyesyes

Linux / Haiku 5.5: yes · Oct 26, 2026 · 177295c5ad37 · claude-code / 2.1.310 (Claude Code)
Recorded operation: <guest-path> · local stdio MCP start + initialize + tools/list

Linux / Luna: yes · Oct 26, 2026 · 177295c5ad37 · codex / codex-cli 0.164.0
Recorded operation: ./.venv/bin/ds search pepe --json

Does what it says
1 of 1 claims checked out
  • Search tokens by name, symbol, or address: Real input produced the expected result: "tokenSymbol": "PEPE"

    Source: Search tokens by name, symbol, or address

    Input: pepe

    Expected: PEPE token pair results

    Command: ./.venv/bin/ds search pepe --json

    Observed: "tokenSymbol": "PEPE", "tokenName": "Pepe in Hood", "quoteSymbol": "WETH", "priceUsd": 1.599e-05, "priceChangeH1": 0.44, "priceChangeH24": 0.71, "volumeH24": 342.02, "volumeH6": 11.09, "volumeH1": 1.31, "volumeM5": 0.0, "buysH1": 1, "sellsH1": 2, "buysH24": 35, "sellsH24": 158, "txnsH1": 3, "txnsH24": 193, "liquidityUsd": 11755.81, "marketCap": 15676.0, "fdv": 15676.0, "holdersCount": null, "holdersSource": null, "pairCreatedAtMs": 1786895646000, "ageHours": 1703.409217003889 }, { "chainId": "solana

MCP
Documented only
Local or hosted
both local and hosted
Both a local install and a hosted service
Needs keys or browser
None seen
Maintained
Slow
slow: last commit 231 days ago; 0 commits and 0 merged PRs in 90 days; 0 open issues, 14 open PRs; 0 of 14 recent threads got a maintainer reply; no releases

Last commit Mar 8, 2026

Setup time
6 min 17 s
6 min 17 s to a working result
Issue
none found in recorded check
Examples
1 of 1 ran as expected
  • Search Dexscreener for pepe pairs as JSON: command completed successfully

    Source: README.md

    Input: pepe

    Expected: JSON results include PEPE pairs

    Command: ./.venv/bin/ds search pepe --json

    Observed: FWPFsD2Zr16dGkhWgmQh", "tokenSymbol": "PEPE", "tokenName": "Pepe", "quoteSymbol": "USDC", "priceUsd": 5.999e-06, "priceChangeH1": 0.0, "priceChangeH24": 0.0, "volumeH24": 56.76, "volumeH6": 14.81, "volumeH1": 0.0, "volumeM5": 0.0, "buysH1": 0, "sellsH1": 0, "buysH24": 6, "sellsH24": 6, "txnsH1": 0, "txnsH24": 12, "liquidityUsd": 3148285.59, "marketCap": 4202701.0, "fdv": 4202701.0, "holdersCount": 34, "holdersSource": "geckoterminal", "pairCreatedAtMs": 1768318361000, "ageHours": 6863.777049758612 } ]

Cycles
1 of 1 ran as expected
  • Scheduled task performs a one-shot scan: Triggered one cycle by hand (run-once; normal trigger: manual task run invocation): Tip: Run ds setup to pick your chains and preferences (takes 30 seconds). ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃ DEXSCREENER CLI ┃ ┃ Live Signal Terminal ● 2026-10-26 15:18:49 UTC ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Performance ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃ Tokens Found 1 │ Top Mover 1h ANT ▲ +432 ┃ ┃ Total 24h Vol $3.08M │ Buy Pressure ████████ 75 ┃ ┃ Total $146.1K │ Hot Chain ● SOL (1 t ┃ ┃ Liquidity ┃ ┃ Avg Score ████████ 98 │ Avg 1h Move ▲ +4324.00% ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ ◆ Hot Runner Scan SOL ◆ Chain Token Score 1h 24h 24h Vol Txns ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ◆ 1 ● SOL ANT 98 ▲ ▲ $3.08M 308… +4324.00% +4324.00% ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃ │ SOL │ 15:18:49 │ one-shot scan ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Alerts: alerts-not-configured

    Source: README.md

    Input: coldpass-check, Solana chain, limit 1

    Expected: scan output contains one token

    Command: ./.venv/bin/ds task run coldpass-check

    Observed: Tip: Run ds setup to pick your chains and preferences (takes 30 seconds). ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃ DEXSCREENER CLI ┃ ┃ Live Signal Terminal ● 2026-10-26 15:18:49 UTC ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Performance ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃ Tokens Found 1 │ Top Mover 1h ANT ▲ +432 ┃ ┃ Total 24h Vol $3.08M │ Buy Pressure ████████ 75 ┃ ┃ Total $146.1K │ Hot Chain ● SOL (1 t ┃ ┃ Liquidity ┃ ┃ Avg Score ████████ 98 │ Avg 1h Move ▲ +4324.00% ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ ◆ Hot Runner Scan SOL ◆ Chain Token Score 1h 24h 24h Vol Txns ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ◆ 1 ● SOL ANT 98 ▲ ▲ $3.08M 308… +4324.00% +4324.00% ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃ │ SOL │ 15:18:49 │ one-shot scan ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Alerts: alerts-not-configured

Evidence
README behavior checked
Agent interfaces
CLI, MCP (documented only)
CLI, MCP (documented only)

Observed interfaces were exercised by the checker. Documentation alone does not confirm compatibility.

Tested with
Codex / Luna
  • Linux: Codex / Luna · agent codex-cli 0.164.0 · Checked operation passed · Oct 26, 2026 on 177295c5ad37

Each entry describes its recorded operation and source revision.

Safety
Made outbound HTTPS connections: yes (hosts not recorded) by dexscreener-mcp, ds

Review signals across current setups: connection review.

Repository processes attempted these non-loopback connections; proxies can hide the final hostname. 20 distinct locations. 2 findings. 127 attributed processes.

Reviewed as expected for a test run: a Python interpreter or package manager probed its own interpreter file under a system program folder; attempted writes that failed, so nothing was written.

Reviewed as expected for a test run: a Python interpreter or package manager probed its own interpreter file under a system program folder; attempted writes that failed, so nothing was written; resolver address lookups that send no data.

Full event, path and process lists for each observed setup:

Run details

Haiku 5.5

Native agent · Checked operation passed

Checked operation <guest-path> · local stdio MCP start + initialize + tools/list

Agent-reported scope: Search Dexscreener tokens through the dexscreener-mcp stdio server (search_pairs) and the ds CLI, and run one scheduler cycle (ds task daemon --once)

MCP server returned: dexscreener-cli-mcp-tool · version 1.30.0.

MCP tools returned: scan_hot_tokens, get_rate_budget_stats, save_preset, list_presets, create_task, list_tasks, run_task_scan, run_due_tasks, test_task_alert, list_task_runs, export_state_bundle, import_state_bundle, search_pairs, inspect_token, get_cli_quickstart. Tool listing does not establish authenticated tool-call success.

Run details
run
vibeforge1111--dexscreener-cli-mcp-tool-claude-haiku-5-5-1793027294102608573
date
Oct 26, 2026
time to working
342.8s
product hosting / execution
Local stdio MCP server in the guest
recorded operation scope
product operation
model
claude-haiku-5-5
agent / version
claude-code / 2.1.310 (Claude Code)
platform
linux
reported cost
$0.026574
Recorded source
https://github.com/vibeforge1111/dexscreener-cli-mcp-tool
Backend
hyperv
Tool transport
mcp-assigned-vm
Requested source pin (not an observed revision)
{"commit": "177295c5ad3704c8647ee3eb4a3e9598e9224e5f", "url": "https://github.com/vibeforge1111/dexscreener-cli-mcp-tool"}
Test version
readme-ca496ea10bb07418d1d8f1c256c2433a55547acc0fb62d8b6d86ae33c976fbfa
revision
177295c5ad3704c8647ee3eb4a3e9598e9224e5f
Whose fault: repo · diagnosed

Safety: Review signals: 1 connection review.

Review signals: 1 connection review.

Reviewed as expected for a test run: a Python interpreter or package manager probed its own interpreter file under a system program folder; attempted writes that failed, so nothing was written; resolver address lookups that send no data.

Repository processes attempted these non-loopback connections; proxies can hide the final hostname. 20 distinct locations. 71 attributed processes.

OSV scanned supported lockfiles; unpinned dependencies and unsupported formats are outside this check.

A short run cannot establish that code is safe.

Connections show IP addresses; proxies can hide the final hostname.

Tracing covers dispatched commands and their children, not the whole OS; guest root can interfere with tracing.

Full safety evidence →

Answers recorded for this run
  • The MCP server search_pairs tool searches pairs by address: Real input produced the expected result: So11111111111111111111111111111111111111112

    Source: Search pairs by name, symbol, or address

    Input: {"tool": "search_pairs", "arguments": {"query": "So11111111111111111111111111111111111111112", "limit": 3}}

    Expected: matching pairs containing the wrapped SOL address

    Command: <guest-path> tools/call {"tool": "search_pairs", "arguments": {"query": "So11111111111111111111111111111111111111112", "limit": 3}}

    Observed: So11111111111111111111111111111111111111112\",\n \"tokenSymbol\": \"SOL\",\n \"dexId\": \"orca\",\n \"priceUsd\": 102.026,\n \"volumeH24\": 106598846.24,\n \"txnsH1\": 5191,\n \"liquidityUsd\": 29143515.62,\n \"pairUrl\": \"https://dexscreener.com/solana/czfq3xzzdmsdgduyrnltrhgc47cxcztlg4crryfu44ze\"\n}"}, {"type": "text", "text": "{\n \"chainId\": \"solana\",\n \"pairAddress\": \"8sLbNZoA1cfnvMJLPfp98ZLAnFSYCFApfJKMbiXNLwxj\",\n \"tokenAddress\": \"So11111111111111111111111111111111111111112\",\n \"tokenSymbol\": \"SOL\",\n \"dexId\": \"raydium\",\n \"priceUsd\": 102.073,\n \"vo

  • CLI search finds tokens by address: Real input produced the expected result: So11111111111111111111111111111111111111112

    Source: Search tokens by name, symbol, or address

    Input: ds search So11111111111111111111111111111111111111112 --json

    Expected: JSON pairs containing the wrapped SOL address

    Command: ./ds search So11111111111111111111111111111111111111112 --json

    Observed: So11111111111111111111111111111111111111112", "tokenSymbol": "SOL", "tokenName": "Wrapped SOL", "quoteSymbol": "USDC", "priceUsd": 102.026, "priceChangeH1": 0.74, "priceChangeH24": 0.5, "volumeH24": 106598846.24, "volumeH6": 33058559.75, "volumeH1": 9154470.07, "volumeM5": 513705.32, "buysH1": 2425, "sellsH1": 2766, "buysH24": 35690, "sellsH24": 41641, "txnsH1": 5191, "txnsH24": 77331, "liquidityUsd": 29143515.62, "marketCap": 0.0, "fdv": 0.0, "holdersCount": null, "holdersSource": null, "pairCreatedAtMs":

Examples

  • Inspect a token by address on a chain: command completed successfully

    Source: README.md

    Input: So11111111111111111111111111111111111111112 --chain solana --json

    Expected: JSON token details for wrapped SOL

    Command: ./ds inspect So11111111111111111111111111111111111111112 --chain solana --json

    Observed: , "sellsH1": 2775, "buysH24": 35694, "sellsH24": 41650, "txnsH1": 5204, "txnsH24": 77344, "liquidityUsd": 29160966.83, "marketCap": 0.0, "fdv": 0.0, "holdersCount": 8746986, "holdersSource": "geckoterminal", "pairCreatedAtMs": 1688106058000, "ageHours": 29144.889084961666 }, "distributionProxy": { "liquidity_to_market_cap": 0.0, "volume_to_liquidity_24h": 3.6556, "buy_sell_imbalance_1h": -0.0665, "status": "concentrated-liquidity" }, "boostTotal": 40.0, "boostCount": 4, "hasProfile": true, "additionalPairCount": 29 }

  • Repository offline test suite (CI test job runs pytest tests/ -q): Ran pytest tests/ -q in the venv: 72 passed, 2 failed (tests/test_cli_json.py::test_search_json_output and test_inspect_json_output, JSONDecodeError). Not a README claim; the failures look related to the 'Tip: Run ds setup' line printed to stdout before JSON on a fresh install. Recorded as a finding, not a product success.

    Source: .github/workflows/ci.yml

    Expected: documented command completes successfully

    Observed: Ran pytest tests/ -q in the venv: 72 passed, 2 failed (tests/test_cli_json.py::test_search_json_output and test_inspect_json_output, JSONDecodeError). Not a README claim; the failures look related to the 'Tip: Run ds setup' line printed to stdout before JSON on a fresh install. Recorded as a finding, not a product success.

Cycles

  • ds task daemon --once runs one due scan cycle and exits: Triggered one cycle by hand (run-once: daemon --once with --no-alerts so no external webhook is contacted; normal trigger: ds task daemon polling loop (poll_seconds default 5.0)): Tip: Run ds setup to pick your chains and preferences (takes 30 seconds). task=cycle-check results=3 top=ANT alerts=disabled

    Source: dexscreener_cli/cli.py

    Input: task cycle-check (created with --chains solana --limit 3)

    Expected: one cycle scans the task and prints its summary

    Command: ./ds task daemon --task cycle-check --once --no-alerts

    Observed: Tip: Run ds setup to pick your chains and preferences (takes 30 seconds). task=cycle-check results=3 top=ANT alerts=disabled

Local or hosted: both

What the agent did

Search Dexscreener tokens through the dexscreener-mcp stdio server (search_pairs) and the ds CLI, and run one scheduler cycle (ds task daemon --once)

cd <guest-path> && pwd && ls -la && git status 2>&1 | head -3; id -u; python3 --version; cat README.md 2>/dev/null | head -200
cd <guest-path> && sed -n 200,420p README.md
cd <guest-path> && cat install.sh; echo ---; cat ds dexscreener-mcp; echo ---; cat pyproject.toml | head -60; ls .coldpass tests docs; cat .env.example
cd <guest-path> && sed -n 420,520p README.md | cut -c1-300
cd <guest-path> && chmod +x install.sh && ./install.sh 2>&1 | tail -60
cd <guest-path> && ./ds search solana --json 2>&1 | head -c 1200; echo; echo "rc=$?"; ls -la <guest-path> /inputs 2>&1 | head
cd <guest-path> && grep -n "def search_pairs\|def inspect_token\|def save_preset\|def get_cli_quickstart" -A12 dexscreener_cli/mcp_server.py | head -90
cd <guest-path> && grep -n "argv\|stays_running\|expected_file\|source_file\|README" check.py | head -80
cd <guest-path> && ./ds search So11111111111111111111111111111111111111112 --json 2>/dev/null | grep -c "So11111111111111111111111111111111111111112"; mkdir -p .coldpass && ls -la .coldpass
cd <guest-path> && cat > probe.json <<'EOF'
{"kind":"mcp","argv":["<guest-path>"],"cwd":"<guest-path>","tool":"search_pairs","arguments":{"query":"So11111111111111111111111111111111111111112","limit":3},"expected_text":"So11111111111111111111111111111111111111112"}
EOF
cat > claims.json <<'EOF'
[{"kind":"claim","claim":"The MCP server exposes search_pairs, which searches pairs by name, symbol, or address","source":"README.md","input":"query So11111111111111111111111111111111111111112","expected":"matching pairs containing the wrapped SOL address","probe_kind":"mcp","argv":["<guest-path>"],"tool":"search_pairs","arguments":{"query":"So11111111111111111111111111111111111111112","limit":3},"expected_text":"So11111111111111111111111111111111111111112","cwd":"<guest-path>"},
{"kind":"claim","claim":"CLI search finds tokens by address","source":"README.md","input":"ds search So11111111111111111111111111111111111111112 --json","expected":"JSON pairs containing the wrapped SOL address","probe_kind":"cli","argv":["./ds","search","So11111111111111111111111111111111111111112","--json"],"expected_text":"So11111111111111111111111111111111111111112","cwd":"<guest-path>"}]
EOF
python3 -I -c "import json;json.load(open('probe.json'));json.load(open('claims.json'));print('ok')"
cd <guest-path> && cat > claims.json <<'EOF'
[{"kind":"claim","claim":"The MCP server search_pairs tool searches pairs by address","source":"Search pairs by name, symbol, or address","input":"query So11111111111111111111111111111111111111112","expected":"matching pairs containing the wrapped SOL address","probe_kind":"mcp","argv":["<guest-path>"],"tool":"search_pairs","arguments":{"query":"So11111111111111111111111111111111111111112","limit":3},"expected_text":"So11111111111111111111111111111111111111112","cwd":"<guest-path>"},
{"kind":"claim","claim":"CLI search finds tokens by address","source":"Search tokens by name, symbol, or address","input":"ds search So11111111111111111111111111111111111111112 --json","expected":"JSON pairs containing the wrapped SOL address","probe_kind":"cli","argv":["./ds","search","So11111111111111111111111111111111111111112","--json"],"expected_text":"So11111111111111111111111111111111111111112","cwd":"<guest-path>"}]
EOF
cd <guest-path> && <env-var>=<guest-path> timeout 600 python3 -I <guest-path> --validate --replay 2>&1 | tail -60
cd <guest-path> && .venv/bin/pip show mcp 2>/dev/null | head -2; .venv/bin/pip install "mcp>=1.23.0,<2" -q 2>&1 | tail -5; .venv/bin/pip show mcp | head -2; .venv/bin/python -I -c "import mcp.server.fastmcp as f; print('fastmcp ok')"
cd <guest-path> && <env-var>=<guest-path> timeout 900 python3 -I <guest-path> --validate --replay 2>&1 | head -c 4000
cd <guest-path> && grep -n "def task_daemon\|def task_run\|once\|def task_create" -A6 dexscreener_cli/cli.py | head -80; ./ds task --help 2>&1 | tail -25
cd <guest-path> && ./ds task create cycle-check --chains solana --limit 3 2>&1 | tail -5; timeout 120 ./ds task daemon --task cycle-check --once --no-alerts 2>&1 | tail -15; echo "rc=${PIPESTATUS[0]}"; ./ds task runs 2>&1 | tail -8
cd <guest-path> && ls .github/workflows && grep -n "run:" -A3 .github/workflows/*.yml | head -40
cd <guest-path> && .venv/bin/pip install -q pytest 2>&1 | tail -3; timeout 600 .venv/bin/pytest tests/ -q 2>&1 | tail -8; echo "rc=${PIPESTATUS[0]}"
cd <guest-path> && sed -n 1,40p tests/test_cli_json.py; ./ds search pepe --json 2>/dev/null | head -2; echo ---; ./ds search pepe --json 2>&1 >/dev/null | head -3
cd <guest-path> && cat > cycles.json <<'EOF'
{"detected":true,"checks":[{"claim":"ds task daemon --once runs one due scan cycle and exits","source":"dexscreener_cli/cli.py","quote":"Run one due cycle and exit","schedule":"ds task daemon polling loop (poll_seconds default 5.0)","method":"run-once: daemon --once with --no-alerts so no external webhook is contacted","input":"task cycle-check (created with --chains solana --limit 3)","expected":"one cycle scans the task and prints its summary","kind":"cli","argv":["./ds","task","daemon","--task","cycle-check","--once","--no-alerts"],"cwd":"<guest-path>","expected_text":"task=cycle-check results=3"}]}
EOF
cat > examples.json <<'EOF'
[{"kind":"example","claim":"Inspect a token by address on a chain","source":"README.md","input":"So11111111111111111111111111111111111111112 --chain solana --json","expected":"JSON token details for wrapped SOL","argv":["./ds","inspect","So11111111111111111111111111111111111111112","--chain","solana","--json"],"cwd":"<guest-path>","env":{},"expected_text":"So11111111111111111111111111111111111111112"},
{"kind":"example","claim":"Repository offline test suite (CI test job runs pytest tests/ -q)","source":".github/workflows/ci.yml","reason":"Ran pytest tests/ -q in the venv: 72 passed, 2 failed (tests/test_cli_json.py::test_search_json_output and test_inspect_json_output, JSONDecodeError). Not a README claim; the failures look related to the 'Tip: Run ds setup' line printed to stdout before JSON on a fresh install. Recorded as a finding, not a product success."}]
EOF
python3 -I -c "import json;[json.load(open(f)) for f in ['cycles.json','examples.json']];print('ok')"; cd <guest-path> && ./ds inspect So11111111111111111111111111111111111111112 --chain solana --json 2>/dev/null | grep -c So11111111111111111111111111111111111111112
cd <guest-path> && cat > report.json <<'EOF'
{"outcome":"working","fault_owner":"repo","operation":"Search Dexscreener tokens through the dexscreener-mcp stdio server (search_pairs) and the ds CLI, and run one scheduler cycle (ds task daemon --once)","operation_scope":"Linux guest, Python 3.12.3 (README needs 3.11+), no API keys; public Dexscreener API reachable (HTTP 200). MORALIS_API_KEY optional and unset.","steps":["git clone is replaced by the pinned snapshot already in <guest-path>","./install.sh (README Mac/Linux installer: creates .venv, pip install -e ., runs ds doctor)","./ds search So11111111111111111111111111111111111111112 --json","./dexscreener-mcp (stdio MCP) tools/call search_pairs {query, limit:3}","./ds inspect So11111111111111111111111111111111111111112 --chain solana --json","./ds task create cycle-check --chains solana --limit 3","./ds task daemon --task cycle-check --once --no-alerts","pytest tests/ -q (repo test suite from CI)"],"deviations":["install.sh with unpinned mcp>=1.23.0 installed mcp 2.3.0, which removed mcp.server.fastmcp; dexscreener-mcp crashed on start (ModuleNotFoundError). Fixed by running .venv/bin/pip install 'mcp>=1.23.0,<2' (installed mcp 1.30.0). Product source not edited.","pip install -q pytest added to the venv to run the repo's CI test command.","Test suite: 2 of 74 failed (tests/test_cli_json.py search/inspect JSON tests, JSONDecodeError); not fixed, recorded as a finding.","README 'ds setup' was not run (interactive); a non-interactive 'Tip' line is printed on stdout before JSON output on a fresh install."],"stuck_step":null,"main_blocker":null,"plain_failure":"On a fresh install the MCP server does not start unless the mcp library is pinned below version 2, because the project's dependency range allows mcp 2.x, which removed the API the server uses. Separately, two of the project's JSON-output tests fail on a fresh install. After the pin, the MCP search, CLI search and inspect, and the one-cycle scheduler run all worked.","suggested_fix":"Pin mcp<2 in pyproject.toml dependencies (or migrate dexscreener_cli/mcp_server.py to the mcp 2.x MCPServer API). Send the 'Tip: Run ds setup' message to stderr, or skip it when --json is used, so JSON stdout parses; then re-run tests/test_cli_json.py."}
EOF
python3 -I -c "import json;json.load(open('report.json'));print('ok')"; cd <guest-path> && <env-var>=<guest-path> timeout 900 python3 -I <guest-path> --validate --replay 2>&1 | head -c 2500
cd <guest-path> && ./ds task configure --help 2>/dev/null | grep -i interval | head -3; ./ds task configure cycle-check --interval-seconds 1 2>&1 | tail -2; sleep 3; timeout 120 ./ds task daemon --task cycle-check --once --no-alerts 2>&1 | tail -4
cd <guest-path> && <env-var>=<guest-path> timeout 900 python3 -I <guest-path> --validate --replay > <guest-path> 2>&1; echo "rc=$?"; python3 -I -c "
import json,sys
d=json.loads(open('<guest-path>').read().strip().splitlines()[-1]) if False else None
" ; head -c 600 <guest-path>; echo; grep -o '"valid": [a-z]*' <guest-path>; grep -o '"problems": \[[^]]*\]' <guest-path> | head -c 800; echo; grep -o '"status": "[A-Z]*"' <guest-path>
pgrep -fa "dexscreener-mcp|ds task daemon" || echo "no background processes"; ls -la <guest-path>
Earlier attempts (1)

Luna

Native agent · Checked operation passed

Checked operation ./.venv/bin/ds search pepe --json

Agent-reported scope: Search Dexscreener for PEPE token pairs and manually run one scheduled Solana scan

Run details
run
vibeforge1111--dexscreener-cli-mcp-tool-gpt-6-luna-1793027561143573448
date
Oct 26, 2026
time to working
376.6s
product hosting / execution
Local command in the guest
recorded operation scope
product operation
model
gpt-6-luna
agent / version
codex / codex-cli 0.164.0
platform
linux
reported cost
not reported (not assumed free)
Recorded source
https://github.com/vibeforge1111/dexscreener-cli-mcp-tool
Backend
hyperv
Tool transport
mcp-assigned-vm
Requested source pin (not an observed revision)
{"commit": "177295c5ad3704c8647ee3eb4a3e9598e9224e5f", "url": "https://github.com/vibeforge1111/dexscreener-cli-mcp-tool"}
Test version
readme-a17389bda4cc696f9601c0c4ff1b2c16e23bfa1d907883b715ccdd9e92ddec56
revision
177295c5ad3704c8647ee3eb4a3e9598e9224e5f
Whose fault: not assigned · resolved

Safety: Review signals: 1 connection review.

Review signals: 1 connection review.

Reviewed as expected for a test run: a Python interpreter or package manager probed its own interpreter file under a system program folder; attempted writes that failed, so nothing was written.

Repository processes attempted these non-loopback connections; proxies can hide the final hostname. 20 distinct locations. 56 attributed processes.

OSV scanned supported lockfiles; unpinned dependencies and unsupported formats are outside this check.

A short run cannot establish that code is safe.

Connections show IP addresses; proxies can hide the final hostname.

Tracing covers dispatched commands and their children, not the whole OS; guest root can interfere with tracing.

Full safety evidence →

Answers recorded for this run
  • Search tokens by name, symbol, or address: Real input produced the expected result: "tokenSymbol": "PEPE"

    Source: Search tokens by name, symbol, or address

    Input: pepe

    Expected: PEPE token pair results

    Command: ./.venv/bin/ds search pepe --json

    Observed: "tokenSymbol": "PEPE", "tokenName": "Pepe in Hood", "quoteSymbol": "WETH", "priceUsd": 1.599e-05, "priceChangeH1": 0.44, "priceChangeH24": 0.71, "volumeH24": 342.02, "volumeH6": 11.09, "volumeH1": 1.31, "volumeM5": 0.0, "buysH1": 1, "sellsH1": 2, "buysH24": 35, "sellsH24": 158, "txnsH1": 3, "txnsH24": 193, "liquidityUsd": 11755.81, "marketCap": 15676.0, "fdv": 15676.0, "holdersCount": null, "holdersSource": null, "pairCreatedAtMs": 1786895646000, "ageHours": 1703.409217003889 }, { "chainId": "solana

Examples

  • Search Dexscreener for pepe pairs as JSON: command completed successfully

    Source: README.md

    Input: pepe

    Expected: JSON results include PEPE pairs

    Command: ./.venv/bin/ds search pepe --json

    Observed: FWPFsD2Zr16dGkhWgmQh", "tokenSymbol": "PEPE", "tokenName": "Pepe", "quoteSymbol": "USDC", "priceUsd": 5.999e-06, "priceChangeH1": 0.0, "priceChangeH24": 0.0, "volumeH24": 56.76, "volumeH6": 14.81, "volumeH1": 0.0, "volumeM5": 0.0, "buysH1": 0, "sellsH1": 0, "buysH24": 6, "sellsH24": 6, "txnsH1": 0, "txnsH24": 12, "liquidityUsd": 3148285.59, "marketCap": 4202701.0, "fdv": 4202701.0, "holdersCount": 34, "holdersSource": "geckoterminal", "pairCreatedAtMs": 1768318361000, "ageHours": 6863.777049758612 } ]

Cycles

  • Scheduled task performs a one-shot scan: Triggered one cycle by hand (run-once; normal trigger: manual task run invocation): Tip: Run ds setup to pick your chains and preferences (takes 30 seconds). ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃ DEXSCREENER CLI ┃ ┃ Live Signal Terminal ● 2026-10-26 15:18:49 UTC ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Performance ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃ Tokens Found 1 │ Top Mover 1h ANT ▲ +432 ┃ ┃ Total 24h Vol $3.08M │ Buy Pressure ████████ 75 ┃ ┃ Total $146.1K │ Hot Chain ● SOL (1 t ┃ ┃ Liquidity ┃ ┃ Avg Score ████████ 98 │ Avg 1h Move ▲ +4324.00% ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ ◆ Hot Runner Scan SOL ◆ Chain Token Score 1h 24h 24h Vol Txns ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ◆ 1 ● SOL ANT 98 ▲ ▲ $3.08M 308… +4324.00% +4324.00% ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃ │ SOL │ 15:18:49 │ one-shot scan ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Alerts: alerts-not-configured

    Source: README.md

    Input: coldpass-check, Solana chain, limit 1

    Expected: scan output contains one token

    Command: ./.venv/bin/ds task run coldpass-check

    Observed: Tip: Run ds setup to pick your chains and preferences (takes 30 seconds). ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃ DEXSCREENER CLI ┃ ┃ Live Signal Terminal ● 2026-10-26 15:18:49 UTC ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Performance ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃ Tokens Found 1 │ Top Mover 1h ANT ▲ +432 ┃ ┃ Total 24h Vol $3.08M │ Buy Pressure ████████ 75 ┃ ┃ Total $146.1K │ Hot Chain ● SOL (1 t ┃ ┃ Liquidity ┃ ┃ Avg Score ████████ 98 │ Avg 1h Move ▲ +4324.00% ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ ◆ Hot Runner Scan SOL ◆ Chain Token Score 1h 24h 24h Vol Txns ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ◆ 1 ● SOL ANT 98 ▲ ▲ $3.08M 308… +4324.00% +4324.00% ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃ │ SOL │ 15:18:49 │ one-shot scan ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Alerts: alerts-not-configured

Local or hosted: both

What the agent did

Search Dexscreener for PEPE token pairs and manually run one scheduled Solana scan

pwd && ls -la && sed -n '1,240p' README.md && python3 --version && id -u
sed -n '241,520p' README.md && cat install.sh && cat ds && cat dexscreener-mcp && cat pyproject.toml && rg -n "MCP|tool|search|hot|cron|schedule|cycle" README.md
chmod +x install.sh && ./install.sh
./ds search pepe --json
sed -n '1,260p' dexscreener_cli/mcp_server.py && sed -n '1,220p' dexscreener_cli/cli.py && find .coldpass -maxdepth 2 -type f -print
./.venv/bin/ds task create coldpass-check --preset discovery --interval-seconds 3600 && ./.venv/bin/ds task run coldpass-check && ./.venv/bin/ds task show coldpass-check
./.venv/bin/ds task create --help
./.venv/bin/ds task create coldpass-check --chains solana --limit 1 --interval-seconds 3600 && ./.venv/bin/ds task run coldpass-check && ./.venv/bin/ds task show coldpass-check
sed -n '1,140p' dexscreener_cli/mcp_server.py | tail -5; rgx=''
python3 - <<'PY'
p='dexscreener_cli/mcp_server.py'
s=open(p).read()
for line in s.splitlines():
 if line.startswith(<email>') or line.startswith('def '): print(line)
PY
python3 - <<'PY'
s=open('dexscreener_cli/mcp_server.py').read().splitlines()
for i,l in enumerate(s):
 if l.strip()<email>()':
  print('\n'.join(s[i:i+4]))
PY
sed -n '360,430p' README.md; cat .env.example
./.venv/bin/ds task delete coldpass-check
find .coldpass -maxdepth 2 -type f -print && python3 -I <guest-path> --help
cat > .coldpass/probe.json <<'EOF'
{"kind":"cli","argv":["./.venv/bin/ds","search","pepe","--json"],"cwd":"<guest-path>","expected_text":"\"tokenSymbol\": \"PEPE\""}
EOF
cat > .coldpass/claims.json <<'EOF'
[{"kind":"claim","claim":"Search tokens by name, symbol, or address","source":"Search tokens by name, symbol, or address","input":"pepe","expected":"PEPE token pair results","probe_kind":"cli","argv":["./.venv/bin/ds","search","pepe","--json"],"expected_text":"\"tokenSymbol\": \"PEPE\"","cwd":"<guest-path>"}]
EOF
cat > .coldpass/examples.json <<'EOF'
[{"kind":"example","claim":"Search Dexscreener for pepe pairs as JSON","source":"README.md / What Can I Do With This? / Search for a specific token","input":"pepe","expected":"JSON results include PEPE pairs","argv":["./.venv/bin/ds","search","pepe","--json"],"cwd":"<guest-path>","expected_text":"\"tokenSymbol\": \"PEPE\""},{"kind":"example","claim":"Run one scheduled scan task","source":"README.md / Tasks & Alerts / ds task run <name>","input":"coldpass-check on Solana, limit one","expected":"A one-shot scan prints a token result","argv":["./.venv/bin/ds","task","create","coldpass-check","--chains","solana","--limit","1","--interval-seconds","3600"],"cwd":"<guest-path>","reason":"Could not create a replayable chained example with this checker format; manual run was observed successfully, then its task was deleted."}]
EOF
cat > .coldpass/cycles.json <<'EOF'
{"detected":true,"checks":[{"claim":"Scheduled task performs a one-shot scan","source":"README.md / Tasks & Alerts","quote":"ds task run <name> | Run a task once","schedule":"manual task run invocation","method":"run-once","input":"coldpass-check, Solana chain, limit 1","expected":"scan output contains one token","kind":"cli","argv":["./.venv/bin/ds","task","run","coldpass-check"],"cwd":"<guest-path>","expected_text":"one-shot scan"}]}
EOF
<env-var>=<guest-path> python3 -I <guest-path> --validate --replay
cat > .coldpass/cycles.json <<'EOF'
{"detected":true,"checks":[{"claim":"Scheduled task performs a one-shot scan","source":"README.md","quote":"ds task run <name>","schedule":"manual task run invocation","method":"run-once","input":"coldpass-check, Solana chain, limit 1","expected":"scan output contains one token","kind":"cli","argv":["./.venv/bin/ds","task","run","coldpass-check"],"cwd":"<guest-path>","expected_text":"one-shot scan"}]}
EOF
cat > .coldpass/examples.json <<'EOF'
[{"kind":"example","claim":"Search Dexscreener for pepe pairs as JSON","source":"README.md","input":"pepe","expected":"JSON results include PEPE pairs","argv":["./.venv/bin/ds","search","pepe","--json"],"cwd":"<guest-path>","expected_text":"\"tokenSymbol\": \"PEPE\""}]
EOF
<env-var>=<guest-path> python3 -I <guest-path> --validate --replay
cat > .coldpass/report.json <<'EOF'
{"outcome":"working","fault_owner":null,"operation":"Search Dexscreener for PEPE token pairs and manually run one scheduled Solana scan","operation_scope":"Python 3.12.3 with the README installer and public APIs; no API key required for exercised operations","steps":["chmod +x install.sh && ./install.sh","./ds search pepe --json","./.venv/bin/ds task create coldpass-check --chains solana --limit 1 --interval-seconds 3600","./.venv/bin/ds task run coldpass-check","<env-var>=<guest-path> python3 -I <guest-path> --validate --replay"],"deviations":["Did not call MCP: real CLI operation and manual task cycle were exercised instead.","Initial task creation using --preset discovery failed because that preset had not been created; retried with documented inline chain and limit settings successfully."],"stuck_step":null,"main_blocker":null,"plain_failure":null,"suggested_fix":null}
EOF