Pulse MCP server
Commit Nov 13, 2026Provides market intelligence for Solana and Robinhood Chain by tracking token launches, wallet performance, and market trends.
Also known as nirholas/pulse, pulse-trenches
- Stars
- 7
- Tools
- —
- Downloads, 30 days
- —
- Latest version
- —
- Last commit
- Nov 13, 2026
- License
- MIT
What is Pulse MCP?
Pulse provides market intelligence for Solana and Robinhood Chain by tracking token launches, wallet performance, and market trends.
Summary generated from the project's README
About Pulse MCP server
Pulse provides market intelligence for the Solana and Robinhood Chain ecosystems. It tracks token lifecycles, including launches and graduations, while monitoring market trends and wallet performance. The system classifies tokens as either technology-based or meme-based and assigns scores to wallets to identify smart money and key opinion leaders.
Developers can run the collector and API locally using Node 24 or connect an AI agent via the pulse-mcp server by setting a PULSE_URL. The server uses a Postgres database or an embedded PGlite for storage. It gathers data from sources like Jupiter, DexScreener, and pump.fun without requiring API keys for most functions. Users can also configure a Telegram bot to receive daily reports and use an Anthropic API key to generate AI-driven summaries of market activity.
What you can do with it
- 1Analyze wallet performanceAsk the agent to evaluate the win rate and profit and loss of specific labeled wallets.
- 2Track token lifecyclesRequest information on whether a specific token is currently running, graduating, or dying.
- 3Monitor market trendsIdentify which tokens are appearing on trending or top-traded lists.
- 4Retrieve historical market dataUse the pulse_runners tool to access archived data for training trading models.
Written from the project's README. Every use case is checked against a quote from it.
How to install Pulse MCP
Formats verified 10 Nov 2026Install Pulse MCP in Claude Code
$ claude mcp add pulse -- npx -y pulse-trenchesInstall Pulse MCP in Cursor
~/.cursor/mcp.json
{
"mcpServers": {
"pulse": {
"command": "npx",
"args": [
"-y",
"pulse-trenches"
]
}
}
}Install Pulse MCP in VS Code
.vscode/mcp.json
{
"servers": {
"pulse": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"pulse-trenches"
]
}
}
}Install Pulse MCP in Claude Desktop
claude_desktop_config.json
{
"mcpServers": {
"pulse": {
"command": "npx",
"args": [
"-y",
"pulse-trenches"
]
}
}
}Install Pulse MCP in Codex
~/.codex/config.toml
[mcp_servers.pulse] command = "npx" args = ["-y", "pulse-trenches"]
Install Pulse MCP in Gemini CLI
~/.gemini/settings.json
{
"mcpServers": {
"pulse": {
"command": "npx",
"args": [
"-y",
"pulse-trenches"
]
}
}
}Automated checks
Ran Nov 14, 2026Full report →Not verified yet. A server needs a score of 80, no serious finding, and enough data for us to check. How checks work
- Source repository linked and reachablenirholas/pulse is public and reachablegithub.com/nirholas/pulse ↗Pass
- Package names this repository as its sourcepulse-trenches names nirholas/pulse as sourcenpmjs.com/package/pulse-trenches ↗Pass
- Build provenance (Sigstore attestation)No build attestation published for this releaseNot checked
- Open source license (OSI)MITspdx.org/licenses/MIT.html ↗Pass
- Commit or release in the last yearLast commit or release 2026-11-13github.com/nirholas/pulse ↗Pass
- OpenSSF ScorecardNot checked
- Package name not close to a popular packageNo popular package one edit away from pulse-trenchesPass
- No critical advisory in the package or its dependenciesNot checked
- No hidden instructions to the model0 tool descriptions and the README read; no override phrases, credential paths or hidden charactersPass
- Destructive tools are labelledNot checked
- Remote endpoint answers the MCP handshakeNot checked
README
View on GitHubPulse
Site and docs: https://nirholas.github.io/pulse/
npx pulse-trenches # collector, API and dashboard on :8787
npx -y -p pulse-trenches pulse-mcp # MCP server for agents (set PULSE_URL)
Personal market intelligence for the Solana and Robinhood Chain trenches. Pulse watches every launch, runner and death, scores wallets, labels KOLs, classifies tokens by tech versus meme, writes a daily newsletter to Telegram, and archives everything in Postgres so the history can later train a trading bot.
What it records
| Table | Contents |
|---|---|
tokens |
One row per token: metadata, lifecycle status (new, running, graduated, dying, dead), category, tech score, ATH, peak volume |
token_snapshots |
Price, mcap, liquidity, volume, holders, traders, buy/sell counts every cycle (Timescale hypertable when available) |
list_appearances |
Which trending, top-traded or promoted list surfaced a token, and at what rank |
launch_events |
Launches and graduations from the pump.fun firehose and the Robinhood Chain factories |
trades |
Trades by labelled wallets, whales (5 SOL or more) and early buyers of tokens that run or graduate |
wallet_positions, wallet_scores |
Per-wallet PnL, win rate, early hits and best multiple |
wallets |
KOL and smart-money labels, plus wallets Pulse promotes itself (3+ early hits, 50%+ win rate) |
market_snapshots |
Chain-wide totals each cycle |
daily_reports |
Every newsletter issue as data, markdown, HTML and the Telegram messages |
Export any table as JSON from /api/export/<table>.
Run it
Requires Node 24 or newer.
npm install
cp .env.example .env # optional, everything has a default
npm run build # builds the dashboard into dist/web
npm start # collector + firehose + API + dashboard on http://localhost:8787
With no DATABASE_URL, Pulse stores data in an embedded PGlite database at data/pglite. For TimescaleDB:
npm run db:up # Postgres on host port 5544
echo 'DATABASE_URL=postgres://pulse:pulse@localhost:5544/pulse' >> .env
Other commands:
| Command | What it does |
|---|---|
npm run dev |
Collector and Vite dev server with hot reload (http://localhost:5173) |
npm run collect |
One collection cycle, then exit (-- --jobs also imports wallets and scores them) |
npm run report -- --no-send --print |
Build today's newsletter without sending it |
npm test, npm run typecheck |
Tests and types |
Permanent archive in git
Set ARCHIVE_REPO to a repo you own (gh repo create <you>/pulse-data --private) and ARCHIVE_TOKEN to a token with contents:write. Each finished UTC day is then exported to that repo as gzip JSONL, a runner digest (runners/YYYY-MM-DD.json) and, with ANTHROPIC_API_KEY, an AI brief on what ran and what technology is being built. The repo is the history: pulse archive --restore rebuilds a database from it, and an agent can read it directly or call the pulse_runners MCP tool. See docs/archive.md.
Telegram newsletter
Create a bot with @BotFather, add it to your channel as an admin, and set TELEGRAM_BOT_TOKEN and TELEGRAM_CHAT_ID (for example @my_channel). The issue is generated once a day at REPORT_HOUR in REPORT_TIMEZONE, stored first, then sent. Set ANTHROPIC_API_KEY to add a short written overview that is constrained to the day's data.
Data sources
All keyless: Jupiter token lists, DexScreener, pump.fun, GeckoTerminal, Solana RPC logs for the pump.fun and PumpSwap programs, Robinhood Chain RPC factory logs, and public KOL wallet labels. The public Solana WebSocket drops connections often; Pulse reconnects, but a dedicated SOLANA_WS_URLS endpoint keeps the firehose steady.
Layout
src/collector firehose, scheduler, Robinhood walker, persistence
src/sources one client per data provider
src/intel classification, lifecycle status, wallet scoring
src/report newsletter data, rendering, Telegram, narrative
src/server Hono API and static dashboard hosting
src/db migrations and the Postgres/PGlite client
web Vite dashboard (board, command, markets, solana, tokens, token detail, launches, wallets, newsletter)
Token names, symbols and descriptions are untrusted on-chain input. The dashboard escapes every interpolation and Pulse never acts on them.
MIT licensed.
Support the project
If pulse saves you time, star it on GitHub. Stars are how other developers and AI agents find the repositories worth trusting, and they cost you one click.
Know someone who would use it? Post on X · Share on Bluesky · Share on LinkedIn · Submit to Hacker News · Share on Reddit
Built for AI agents too
Coding agents and LLM tooling can read this repo directly: AGENTS.md, llms.txt, llms-full.txt. Point an agent at https://github.com/nirholas/pulse and it has the context it needs.
More from the same author
- All repositories by nirholas: the full catalog, grouped by topic
- three.ws: the platform for 3D AI agents with Solana wallets, a skill marketplace and x402 payments
- Questions or ideas: open an issue or start a discussion
Contributors
Star history
Pulse MCP questions
How do I add Pulse MCP to Claude Code?
Run claude mcp add pulse -- npx -y pulse-trenches in your terminal. Add --scope user to make it available in every project.
How do I add Pulse MCP to Cursor?
Open ~/.cursor/mcp.json and add the server under mcpServers, using the Cursor config shown in the install section above.
What data does Pulse record?
Pulse records token metadata, lifecycle status, price snapshots, launch events, trades, wallet positions, and daily reports.
How can I export data from Pulse?
You can export any table as JSON using the /api/export/<table> endpoint.
Does Pulse require API keys for its data sources?
No, the primary data sources used by Pulse are all keyless.
Can I use Pulse to train a trading bot?
Yes, Pulse archives all data in Postgres so the history can be used to train a trading bot later.