revolut mcp pulse
by gepappas98
README.md
# 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](https://github.com/gepappas98/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
```bash
git clone https://github.com/gepappas98/mcprice.git
cd mcprice
```
### Step 2 ā Install & run
**With `uv` (recommended):**
```bash
# Install uv (once):
curl -LsSf https://astral.sh/uv/install.sh | sh
# Run:
uv run --with fastmcp,httpx python app.py
```
**With `pip`:**
```bash
pip install -r requirements.txt
python app.py
```
---
## š¤ Claude Desktop ā Setup
Open: **Claude Desktop ā Settings ā Developer ā Edit Config**
Add to `claude_desktop_config.json`:
```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:
```json
{
"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)
1. Fork this repo on GitHub
2. Go to [railway.app](https://railway.app) ā **New Project** ā **Deploy from GitHub**
3. Select the `mcprice` repo
4. Add environment variables:
```
MCP_TRANSPORT = http
PORT = 8080
```
5. Railway gives you a URL: `https://mcprice-production.up.railway.app`
Connect to Claude Desktop (remote):
```json
{
"mcpServers": {
"mcprice": {
"type": "http",
"url": "https://mcprice-production.up.railway.app/mcp"
}
}
}
```
---
## š©ļø Deploy on Fly.io
```bash
# 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**