mcprice ⚡
MCP Server for real-time stock & crypto prices
in Claude Desktop / Cursor.Stocks → Yahoo Finance (no API key needed)
Crypto → Binance Public API (no API key needed)
Companion to: revolut-pulse (insider trades)
🧰 Tools (6 total)
| Tool | What it does | Source |
|---|---|---|
get_price("NVDA") | Price + 24h change for 1 stock | Yahoo Finance |
get_prices_bulk(["NVDA","LMT","GLD"]) | Bulk prices for a list of stocks | Yahoo Finance |
get_crypto_price("BTC") | Crypto price + high/low/volume 24h | Binance |
price_snapshot(["NVDA","BTC","ETH"]) | Rich snapshot for stocks + crypto | Yahoo + Binance |
revolut_price_check("LMT") | Price + "is it on Revolut?" | Yahoo Finance |
crypto_top_movers(limit=10) | Top gainers/losers 24h | Binance |
⚡ Quick Start (2 minutes)
Step 1 — Clone the repo
git clone https://github.com/gepappas98/mcprice.git
cd mcprice
Step 2 — Install & run
With uv (recommended):
# Install uv (once):
curl -LsSf https://astral.sh/uv/install.sh | sh
# Run:
uv run --with fastmcp,httpx python app.py
With pip:
pip install -r requirements.txt
python app.py
🤖 Claude Desktop — Setup
Open: Claude Desktop → Settings → Developer → Edit Config
Add to claude_desktop_config.json:
{
"mcpServers": {
"mcprice": {
"command": "uv",
"args": ["run", "--with", "fastmcp,httpx", "python", "app.py"],
"cwd": "/Users/george/mcprice"
}
}
}
💡 Pro tip: If you also have
revolut-pulse-mcp, add both together:
{
"mcpServers": {
"revolut-pulse-mcp": {
"command": "uv",
"args": ["run", "--with", "fastmcp,httpx,beautifulsoup4", "python", "app.py"],
"cwd": "/Users/george/revolut-pulse-mcp"
},
"mcprice": {
"command": "uv",
"args": ["run", "--with", "fastmcp,httpx", "python", "app.py"],
"cwd": "/Users/george/mcprice"
}
}
}
Now you can ask Claude:
"Show me the latest insider trades for NVDA and tell me the current price"
And Claude will use both servers simultaneously! 🔥
🎯 Cursor — Setup
Cursor → Settings → MCP → + Add:
- Name:
mcprice - Command:
uv run --with fastmcp,httpx python app.py - Working Dir:
/path/to/mcprice
🚀 Deploy on Railway (1 click)
- Fork this repo on GitHub
- Go to railway.app → New Project → Deploy from GitHub
- Select the
mcpricerepo - Add environment variables:
MCP_TRANSPORT = http PORT = 8080 - Railway gives you a URL:
https://mcprice-production.up.railway.app
Connect to Claude Desktop (remote):
{
"mcpServers": {
"mcprice": {
"type": "http",
"url": "https://mcprice-production.up.railway.app/mcp"
}
}
}
🛩️ Deploy on Fly.io
# Install flyctl
curl -L https://fly.io/install.sh | sh
# Deploy (from the project folder)
flyctl auth login
flyctl launch --name mcprice --region ams
flyctl secrets set MCP_TRANSPORT=http
flyctl deploy
URL: https://mcprice.fly.dev/mcp
💬 Usage Examples
# Stock price
"What is NVIDIA trading at right now?"
→ get_price("NVDA")
# Revolut check
"Can I buy Lockheed Martin on Revolut?"
→ revolut_price_check("LMT")
# Defense stocks
"Show me prices for LMT, RTX, NOC, BA"
→ get_prices_bulk(["LMT","RTX","NOC","BA"])
# Crypto
"Where is Bitcoin today?"
→ get_crypto_price("BTC")
# Top movers
"Which cryptos are moving today?"
→ crypto_top_movers(limit=10)
# Full snapshot
"Show me all my assets"
→ price_snapshot(["NVDA","AAPL","GLD","SPY","BTC","ETH"])
🔗 Architecture — Revolut Ecosystem
Claude / Cursor
│
├── revolut-pulse-mcp → Insider trades (SEC Form 4)
│ is_revolut_tradable()
│ check_insider_alerts()
│
└── mcprice → Real-time prices
get_price()
revolut_price_check()
crypto_top_movers()
📁 File Structure
mcprice/
├── app.py ← All server code (6 tools)
├── requirements.txt ← fastmcp, httpx
├── mcp.json ← Config for Claude/Cursor
├── Dockerfile ← For Railway/Fly.io
├── railway.json ← Railway config
├── fly.toml ← Fly.io config
├── .gitignore
├── .github/
│ └── workflows/
│ └── test.yml ← GitHub Actions CI
└── README.md
🔒 Notes
- No API key required — Yahoo Finance & Binance Public API are free
- Rate limit: ~60 requests/min on Yahoo Finance — avoid bulk calls with >20 tickers
- Stock prices may have a 15–20 minute delay (Yahoo Finance free tier)
- Binance crypto prices are real-time (no delay)
- Not financial advice