Web3 Signals — Crypto Signal Intelligence
AI-powered crypto signal intelligence for 20 assets (BTC, ETH, SOL, etc). 6 scoring dimensions: whale activity, technical analysis, derivatives flow, narrative strength, sentiment, market structure. Market regime detection (TRENDING/RANGING), portfolio optimization, and accuracy tracking. 9 read-only MCP tools. Free via MCP, $0.001 USDC via x402 on Base for REST API.
README
Web3 Signals MCP
Crypto signal intelligence for AI agents. 5 data dimensions, 20 assets, refreshed every 15 minutes.
Version: 0.1.0
Live API: https://web3-signals-api-production.up.railway.app
MCP Endpoint: https://web3-signals-api-production.up.railway.app/mcp/sse
Dashboard: web3-signals-api-production.up.railway.app/dashboard
What It Is
A signal fusion engine that scores 20 crypto assets from 0-100 by combining 5 independent data agents:
| Agent | Weight | Sources |
|---|---|---|
| Whale | 30% | On-chain flows, exchange movements, large transactions |
| Technical | 25% | RSI, MACD, Moving Averages (Binance) |
| Derivatives | 20% | Funding rate, open interest, long/short ratio |
| Narrative | 15% | Reddit, Google News, CoinGecko trending, LLM sentiment |
| Market | 10% | Price, volume, Fear & Greed Index |
Each agent runs every 15 minutes. Scores are fused into a composite signal with directional labels (STRONG BUY to STRONG SELL), momentum tracking, and LLM-generated cross-dimensional insights.
What Problem It Solves
AI agents and trading systems need structured, multi-dimensional crypto intelligence — not raw price feeds. This API delivers scored, opinionated signals that combine what whales are doing, what derivatives markets are pricing, what the crowd is saying, and what technicals show — fused into a single actionable score with an LLM explanation of why.
Target Horizon
- Signal refresh: Every 15 minutes
- Accuracy evaluation: 24h, 48h windows
- Best for: Swing trades (hours to days), portfolio risk monitoring, market regime detection
- Not designed for: Sub-minute scalping or HFT
Assets Covered
BTC ETH SOL BNB XRP ADA AVAX DOT MATIC LINK UNI ATOM LTC FIL NEAR APT ARB OP INJ SUI
Connect via MCP
Add to your MCP config (Claude Desktop, Cursor, Windsurf, etc.):
{
"mcpServers": {
"web3-signals": {
"url": "https://web3-signals-api-production.up.railway.app/mcp/sse"
}
}
}
Then ask your AI: "What are the current crypto signals?" or "Get me the BTC signal"
MCP Tools
| Tool | Description |
|---|---|
get_all_signals |
Full portfolio: 20 scored signals + portfolio summary + LLM insights |
get_asset_signal |
Single asset signal with market context |
get_health |
Agent status, last run times, error counts |
get_performance |
Rolling 30-day accuracy across 24h/48h timeframes |
get_asset_performance |
Per-asset accuracy breakdown |
REST API
Endpoints
| Endpoint | Description |
|---|---|
GET /signal |
All 20 asset signals with portfolio summary |
GET /signal/{asset} |
Single asset signal (e.g. /signal/BTC) |
GET /performance/reputation |
30-day rolling accuracy score |
GET /performance/{asset} |
Per-asset accuracy breakdown |
GET /health |
Agent status and uptime |
GET /analytics |
API usage analytics |
GET /api/history |
Historical signal runs (paginated) |
GET /docs |
OpenAPI documentation |
GET /dashboard |
Live signal intelligence dashboard |
Example: Single Asset Signal
curl https://web3-signals-api-production.up.railway.app/signal/BTC
{
"asset": "BTC",
"timestamp": "2026-02-24T21:49:42.513414+00:00",
"signal": {
"composite_score": 31.7,
"label": "MODERATE SELL",
"direction": "sell",
"dimensions": {
"whale": {
"score": 7.9,
"label": "STRONG SELL",
"detail": "25 accumulate, 33 sell (ratio 43%); exchange inflow",
"weight": 0.3
},
"technical": {
"score": 35.2,
"label": "MODERATE SELL",
"detail": "RSI 30; MACD bullish; trend bearish",
"weight": 0.25
},
"derivatives": {
"score": 25.0,
"label": "STRONG SELL",
"detail": "L/S 0.69",
"weight": 0.2
},
"narrative": {
"score": 63.5,
"label": "MODERATE BUY",
"detail": "vol 0.97 (106 mentions); LLM neutral; trending; 3 sources",
"weight": 0.15
},
"market": {
"score": 60.0,
"label": "MODERATE BUY",
"detail": "-0.8%; F&G 8 extreme fear",
"weight": 0.1
}
},
"momentum": "degrading",
"prev_score": 42.1,
"llm_insight": "Whale capitulation intensifying — 33 sellers dominating with exchange inflow. Derivatives flipped to strong sell. Divergence: narrative and market fear remain bullish, suggesting classic capitulation setup..."
},
"market_context": {
"regime": "extreme_fear",
"risk_level": "high",
"signal_momentum": "degrading"
}
}
Example: Portfolio Summary
curl https://web3-signals-api-production.up.railway.app/signal
{
"status": "success",
"timestamp": "2026-02-24T21:49:42+00:00",
"data": {
"portfolio_summary": {
"top_buys": [
{"asset": "ETH", "score": 53.2, "label": "NEUTRAL", "conviction": "moderate"},
{"asset": "SUI", "score": 50.7, "label": "NEUTRAL", "conviction": "moderate"},
{"asset": "DOT", "score": 49.4, "label": "NEUTRAL", "conviction": "moderate"}
],
"top_sells": [
{"asset": "SOL", "score": 36.9, "label": "MODERATE SELL"},
{"asset": "XRP", "score": 34.0, "label": "MODERATE SELL"},
{"asset": "BTC", "score": 31.7, "label": "MODERATE SELL"}
],
"market_regime": "extreme_fear",
"risk_level": "high",
"signal_momentum": "degrading",
"assets_improving": 0,
"assets_degrading": 6
},
"signals": {
"BTC": { "composite_score": 31.7, "label": "MODERATE SELL", "..." : "..." },
"ETH": { "composite_score": 53.2, "label": "NEUTRAL", "..." : "..." }
}
}
}
Example: Performance / Reputation
curl https://web3-signals-api-production.up.railway.app/performance/reputation
{
"status": "active",
"reputation_score": 72,
"accuracy_30d": 72.3,
"signals_evaluated": 840,
"signals_correct": 607,
"by_timeframe": {
"24h": {"total": 280, "hits": 196, "accuracy": 70.0},
"48h": {"total": 280, "hits": 201, "accuracy": 71.8},
"7d": {"total": 280, "hits": 210, "accuracy": 75.0}
},
"by_asset": {
"BTC": 75.0,
"ETH": 70.0,
"SOL": 68.5
},
"methodology": {
"direction_extraction": "score >60 = bullish, <40 = bearish, 40-60 = neutral",
"neutral_threshold": "price move <=2% = correct for neutral signals",
"scoring": "binary (hit/miss)",
"window": "30-day rolling",
"timeframes": ["24h", "48h"],
"price_source": "CoinGecko"
}
}
Signal Labels
| Score Range | Label | Direction |
|---|---|---|
| 80-100 | STRONG BUY | bullish |
| 60-79 | MODERATE BUY | bullish |
| 40-59 | NEUTRAL | neutral |
| 20-39 | MODERATE SELL | bearish |
| 0-19 | STRONG SELL | bearish |
Performance Tracking
The system tracks its own signal accuracy — no self-reported claims:
- Snapshots captured every 12 hours (1 per asset, max 40/day)
- Evaluation at 24h and 48h windows against actual price movement
- Direction match: Did the predicted direction (bullish/bearish/neutral) match the actual price move?
- Neutral threshold: Price move <=2% counts as correct for neutral signals
- Price source: CoinGecko (independent, no API key needed)
- Window: 30-day rolling, recalculated every evaluation cycle
Discovery Protocols
| Protocol | Endpoint | Standard |
|---|---|---|
| x402 | /signal, /signal/{asset} |
HTTP 402 Micropayments (Coinbase) |
| MCP SSE | /mcp/sse |
Model Context Protocol (Anthropic) |
| A2A | /.well-known/agent.json |
Agent-to-Agent (Google) |
| AGENTS.md | /.well-known/agents.md |
Agentic AI Foundation |
| OpenAPI | /docs |
OpenAPI 3.0 |
x402 Micropayments
Payment IS authentication. No API keys, no signup, no OAuth.
AI agents pay $0.001 USDC per call on Base mainnet. The x402 protocol handles discovery, payment, and settlement automatically via the Coinbase CDP Facilitator.
Paid Endpoints ($0.001/call)
| Endpoint | What you get |
|---|---|
GET /signal |
All 20 signals + portfolio summary + LLM insights |
GET /signal/{asset} |
Single asset signal with 5 dimensions |
GET /performance/reputation |
30-day rolling accuracy score |
Free Endpoints
/health, /dashboard, /analytics, /docs, /.well-known/*, /mcp/sse
How it works
- Agent calls
GET /signal→ gets402 Payment Requiredwith payment instructions - Agent signs USDC payment on Base → retries with
PAYMENT-SIGNATUREheader - Facilitator verifies payment → endpoint returns data
- Settlement happens on-chain in <2 seconds
Agents using x402-compatible clients (Otto, Questflow, Fluora, Oops!402) handle this automatically.
Project Structure
/api FastAPI server, dashboard, middleware
/mcp_server MCP tool definitions (stdio + SSE)
/signal_fusion Weighted score fusion engine
/whale_agent On-chain flow tracking
/technical_agent RSI, MACD, MA analysis
/derivatives_agent Funding rate, OI, L/S ratio
/narrative_agent Reddit, News, Trending, LLM sentiment
/market_agent Price, volume, Fear & Greed
/shared Storage layer, base agent, profile loader
/orchestrator 15-minute agent runner
README.md
AGENTS.md
Self-Hosting
git clone https://github.com/manavaga/web3-signals-mcp.git
cd web3-signals-mcp
cp .env.example .env
# Edit .env with your API keys
pip install -r requirements.txt
python -m api.server
Environment Variables
| Variable | Required | Description |
|---|---|---|
REDDIT_CLIENT_ID |
Yes | Reddit API credentials |
REDDIT_CLIENT_SECRET |
Yes | Reddit API secret |
ANTHROPIC_API_KEY |
No | Enables LLM insights (Claude Haiku) |
DATABASE_URL |
No | Postgres URL (falls back to SQLite) |
PORT |
No | Server port (default: 8000) |
Roadmap
Near-term (building now)
- Calibration buckets — Group signals by score range (e.g. 70-80) and track accuracy per bucket. Answers: "When we say 75, how often is that actually bullish?" (needs 24h+ of accuracy data)
- Magnitude scoring — Move beyond binary hit/miss to measure how much the predicted move captured vs actual move. (needs 1 week of data)
Medium-term
- Confidence-weighted penalties — Penalize high-conviction misses more than low-conviction ones. A "STRONG BUY" that dumps should hurt reputation more than a "MODERATE BUY" that goes flat. (needs calibration data)
- Correlation vs BTC baseline — Compare signal accuracy against a naive "just follow BTC" strategy. If we can't beat that, the signal isn't adding value. (needs 30 days of data)
Future
- x402 micropayments — Pay-per-signal via HTTP 402
- Additional assets — Expand beyond 20
- More data sources — Twitter/X, Farcaster, CryptoPanic (currently disabled, pending API access)
License
MIT
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.