Web3 Signals Agent

Created By
manavaga3 months ago
AI-powered crypto signal intelligence. Fuses 6 AI agent dimensions (whale tracking, technical analysis, derivatives, narrative sentiment, market structure, trend) into scored signals for 20 crypto assets. Updated every 15 minutes with LLM-generated insights.
Overview

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:

AgentWeightSources
Whale30%On-chain flows, exchange movements, large transactions
Technical25%RSI, MACD, Moving Averages (Binance)
Derivatives20%Funding rate, open interest, long/short ratio
Narrative15%Reddit, Google News, CoinGecko trending, LLM sentiment
Market10%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

ToolDescription
get_all_signalsFull portfolio: 20 scored signals + portfolio summary + LLM insights
get_asset_signalSingle asset signal with market context
get_healthAgent status, last run times, error counts
get_performanceRolling 30-day accuracy across 24h/48h timeframes
get_asset_performancePer-asset accuracy breakdown

REST API

Endpoints

EndpointDescription
GET /signalAll 20 asset signals with portfolio summary
GET /signal/{asset}Single asset signal (e.g. /signal/BTC)
GET /performance/reputation30-day rolling accuracy score
GET /performance/{asset}Per-asset accuracy breakdown
GET /healthAgent status and uptime
GET /analyticsAPI usage analytics
GET /api/historyHistorical signal runs (paginated)
GET /docsOpenAPI documentation
GET /dashboardLive 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 RangeLabelDirection
80-100STRONG BUYbullish
60-79MODERATE BUYbullish
40-59NEUTRALneutral
20-39MODERATE SELLbearish
0-19STRONG SELLbearish

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

ProtocolEndpointStandard
x402/signal, /signal/{asset}HTTP 402 Micropayments (Coinbase)
MCP SSE/mcp/sseModel Context Protocol (Anthropic)
A2A/.well-known/agent.jsonAgent-to-Agent (Google)
AGENTS.md/.well-known/agents.mdAgentic AI Foundation
OpenAPI/docsOpenAPI 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.

EndpointWhat you get
GET /signalAll 20 signals + portfolio summary + LLM insights
GET /signal/{asset}Single asset signal with 5 dimensions
GET /performance/reputation30-day rolling accuracy score

Free Endpoints

/health, /dashboard, /analytics, /docs, /.well-known/*, /mcp/sse

How it works

  1. Agent calls GET /signal → gets 402 Payment Required with payment instructions
  2. Agent signs USDC payment on Base → retries with PAYMENT-SIGNATURE header
  3. Facilitator verifies payment → endpoint returns data
  4. 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

VariableRequiredDescription
REDDIT_CLIENT_IDYesReddit API credentials
REDDIT_CLIENT_SECRETYesReddit API secret
ANTHROPIC_API_KEYNoEnables LLM insights (Claude Haiku)
DATABASE_URLNoPostgres URL (falls back to SQLite)
PORTNoServer 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

Server Config

{
  "mcpServers": {
    "web3-signals": {
      "url": "https://web3-signals-api-production.up.railway.app/mcp/sse"
    }
  }
}
Project Info
Created At
3 months ago
Updated At
3 months ago
Author Name
manavaga
Star
-
Language
-
License
-
Category

Recommend Servers

View All
Mnemom

14 hours ago
//beforeyouship — LLM Cost Modeling From Your Editor
@Indiegoing

Query realistic LLM cost models without leaving your editor. beforeyouship models the **true monthly cost** of an LLM app architecture — retries, prompt caching, batch discounts, infra overhead, and 3×/10× growth — across GPT-5.x, Claude, Gemini, DeepSeek, and more. Not a token calculator: a planning tool for the design phase, before you commit to a stack. **No API key needed to try it** — demo mode covers the six free-tier models. A Pro key from [beforeyouship.dev](https://beforeyouship.dev) unlocks the full 18-model catalog. ## What you can ask - "How much will a RAG chatbot cost at 10,000 requests/day?" - "Compare Claude Haiku vs Gemini Flash pricing for my workload" - "What's the cheapest model for a multi-step agent at scale?" - "Show me current per-token prices for Anthropic models" ## Tools ### `estimate_cost` Full cost model for an architecture at a given usage level. Returns Naive / Realistic / Worst Case monthly cost per model, 3×/10× growth scenarios, and an opinionated recommendation with reasoning. ### `get_model_prices` Current per-1M-token pricing — input, output, cached input, batch — with context windows and staleness metadata. ### `list_archetypes` Seven preset architecture patterns (simple chatbot, chatbot with history, RAG pipeline, multi-model router, coding assistant, document processor, multi-step agent) used as starting points for estimates. ## Setup **Claude Code:** ​```bash claude mcp add --transport http beforeyouship https://beforeyouship.dev/api/mcp ​``` **Cursor / other clients** — add a remote server: ​```json { "mcpServers": { "beforeyouship": { "type": "streamable-http", "url": "https://beforeyouship.dev/api/mcp" } } } ​``` Add an `Authorization: Bearer bys_...` header with a Pro key for the full catalog. ## Try it > Estimate the monthly cost of a RAG pipeline at 10,000 requests/day

13 hours ago
Docwand

13 hours ago