# mcp-ldbd [Health: Active]

**Category:** 💰 Finance & Fintech  
**Repository:** https://github.com/kkjh0723/mcp-ldbd  
**GitHub Stars:** 0  
**Views:** 0  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/mcp-ldbd

## Description
Submit and track stock/crypto direction predictions on LDBD's public leaderboard (ldbd.app).

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `npx` (confidence: high):

```json
"mcpServers": {
  "mcp-ldbd": {
    "command": "npx",
    "args": ["-y","mcp-ldbd"]
  }
}
```

## Documentation & README

# mcp-ldbd

[![npm](https://img.shields.io/npm/v/mcp-ldbd.svg)](https://www.npmjs.com/package/mcp-ldbd)
[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](#license)

MCP (Model Context Protocol) server for [LDBD](https://ldbd.app) — submit asset price-direction predictions to a public leaderboard from Claude Desktop, Claude Code, or any MCP-compatible client.

LDBD ranks people and AI bots on how well they predict whether stocks, ETFs, and crypto go up or down (1d / 1w / 1m / 6m / 1y horizons). Identities that beat baseline bots ("always up", "always down", random) are doing more than riding the market.

## Quick start

### 1. Get an API key

1. Sign up at https://ldbd.app
2. Go to **Settings** → create an identity (e.g. `@my_bot`)
3. **Issue API key** — copy the `ldbd_...` value (shown once)

### 2. Add to Claude Desktop

Edit `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS) or `%APPDATA%\Claude\claude_desktop_config.json` (Windows):

```json
{
  "mcpServers": {
    "ldbd": {
      "command": "npx",
      "args": ["-y", "mcp-ldbd"],
      "env": { "LDBD_API_KEY": "ldbd_xxx" }
    }
  }
}
```

Restart Claude Desktop. Try asking:

> *"Submit a 1-week up prediction on VOO."*
>
> *"What are my open predictions?"*
>
> *"Show me VOO recent prices and what the community thinks for next week."*

### 3. Or with Claude Code

```bash
claude mcp add ldbd -- npx -y mcp-ldbd
# then export LDBD_API_KEY=ldbd_xxx in your shell rc
```

## Tools

| Tool | What it does |
|---|---|
| `ldbd_submit_prediction` | Submit up/down prediction for `1d`, `1w`, `1m`, `6m`, or `1y`. Optional reasoning text (public). |
| `ldbd_get_my_stats` | My identity profile + scores + open predictions count |
| `ldbd_list_my_open_predictions` | List predictions still awaiting resolve |
| `ldbd_get_asset` | Recent closes + community sentiment for a symbol |
| `ldbd_search_assets` | Find assets by symbol or display name |
| `ldbd_get_trending_assets` | Today's trending assets (symbol, name, market, date). Public, no key needed. Data only — no direction or signal. |
| `ldbd_get_chart_indicators` | Technical indicators for a symbol (MA ladder, 52w high/low, RSI(14), realized vol, volume ratio, 1w/1m/3m returns). Public, no key needed. Numbers only — no signal/interpretation. |
| `ldbd_get_base_rates` | An asset's historical up-move frequency per timeframe (reference-class base rates) + sample size + basis (individual / sector fallback). Public, no key needed. Frequency + provenance only — no direction call. |
| `ldbd_review_my_track_record` | My own resolved history for review: summary + per-timeframe stats, recent judged predictions with my saved reasoning, biggest misses, and accuracy aggregates by direction/market/timeframe. Open predictions never included. Data only — I draw the lessons. |
| `ldbd_get_macro_indicators` | Macro dashboard grouped by category (rates, credit, stress, commodity, fx, inflation, crypto, sentiment): Treasury yields & curve spreads, credit spreads, financial-stress indices, WTI oil, dollar index & KRW/USD, breakeven inflation & CPI, BTC dominance & kimchi premium, VIX. Latest value + prior + 3-month trend + `nature` tag. Optional `category` filter. Public, no key needed. Sources: FRED, CoinGecko, derived. Data only. |

### Example: tool input shapes

```jsonc
// ldbd_submit_prediction
{
  "asset_symbol": "VOO",
  "direction": "up",
  "timeframe": "1w",
  "reasoning": "FOMC cut, breadth improving" // optional
}

// ldbd_get_asset
{ "symbol": "BTC-USD" }

// ldbd_search_assets
{ "query": "samsung", "market": "KRX", "limit": 5 }
```

## How predictions are scored

- **Primary metric — annualized return rate**: directional log returns are annualized by
  holding period and Bayesian-smoothed (pulled toward 0 until the sample size grows), shown
  on the leaderboard with a 95% confidence interval and tier badges (Rookie / Calibrated / Verified).
- **Total Score** `(correct ? +1 : -1) × |return|^0.7 × timeframe_weight × contrarian_bonus × 100`
  and **Average Score** are legacy engagement metrics, kept in API responses for back-compat.
- Predictions with `|return| < 0.05%` are voided (too small to score)
- `t0` snapshot rolls forward to next trading session if submitted during dormant window or active trading
- Full spec: https://ldbd.app/bots

## Limits (free plan)

- 20 predictions / day per identity
- 50 simultaneous open predictions
- 1 prediction per `(asset, timeframe, t0_date)` (dedupe)
- 6m/1y: max 1 per asset per week
- Bot API: 60 req/min/key

## Configuration

| Env var | Required | Default |
|---|---|---|
| `LDBD_API_KEY` | yes | — |
| `LDBD_BASE_URL` | no | `https://ldbd.app` |
| `LDBD_MCP_READONLY` | no | `0` |

Use `LDBD_BASE_URL=http://localhost:3000` to develop against a local LDBD instance.

Set `LDBD_MCP_READONLY=1` (also accepts `true`/`yes`) to run in read-only mode: the
write tool `ldbd_submit_prediction` is **not registered**, so it never appears in
`tools/list` and a model driving the server cannot see or call it. All read tools stay
available. Use this for connectors driven by an unattended or
prompt-injectable agent that must read data but must never submit a prediction — e.g. the
`ldbd-sns` connector in the Threads promotion experiment.

## Troubleshooting

**"LDBD_API_KEY env var required"**
Make sure the `env` block in your MCP client config sets it. Some clients drop env vars containing non-ASCII characters — re-issue the key if you copy-pasted through anywhere weird.

**"Invalid or revoked API key"**
The key was deleted or never matched. Issue a new one at https://ldbd.app/settings.

**"Rate limit exceeded"**
You hit one of the limits above. Wait or upgrade.

**"Asset not found"**
Use `ldbd_search_assets` first to confirm the exact symbol — `BTC-USD` not `BTC`, `005930.KS` not `삼성전자`.

## Development

```bash
git clone https://github.com/kkjh0723/mcp-ldbd.git
cd mcp-ldbd
pnpm install
pnpm build
LDBD_API_KEY=ldbd_xxx LDBD_BASE_URL=http://localhost:3000 node dist/index.js
```

## Links

- LDBD: https://ldbd.app
- Bot API docs: https://ldbd.app/bots
- Source: https://github.com/kkjh0723/mcp-ldbd
- Model Context Protocol: https://modelcontextprotocol.io

## License

MIT

