Skip to main content
Glama
Soonthorn6996

Crypto News & Market MCP Server

🪙 Crypto News & Market MCP Server

MCP Server (Python) สำหรับดึงข้อมูล Crypto จากแหล่ง ฟรีทั้งหมด ออกแบบมาให้ deploy เป็น MCP Online บน Railway แล้วเชื่อมเข้ากับ Claude ได้ทันที

✨ Tools ที่มีให้ใช้งาน

Tool

หน้าที่

แหล่งข้อมูล

ต้องใช้ key?

get_crypto_price

ราคา / market cap / %เปลี่ยนแปลง 24h

CoinGecko

get_market_overview

ภาพรวมตลาด + Top N เหรียญ + BTC dominance

CoinGecko

get_trending_coins

เหรียญกระแสแรงใน 24h

CoinGecko

get_fear_greed_index

ดัชนีความกลัว/โลภ

Alternative.me

get_crypto_news

ข่าวล่าสุดจาก CoinDesk/Cointelegraph/Decrypt/Bitcoin Magazine

RSS

search_coin

ค้นหา CoinGecko id จากชื่อ/symbol

CoinGecko

get_cryptopanic_news

ข่าว + sentiment (votes)

CryptoPanic

✅ (optional)

6 ใน 7 tool ทำงานได้ทันทีโดย ไม่ต้องมี API key เลย


Related MCP server: market-data-mcp

📁 โครงสร้างไฟล์

News CRYPTO API/
├── server.py          # ตัว MCP server (FastMCP + Streamable HTTP)
├── oauth_provider.py  # OAuth 2.1 provider + หน้า login (สำหรับ Claude.ai/Cowork web)
├── requirements.txt   # dependencies
├── railway.json       # config สำหรับ Railway
├── Procfile           # start command สำรอง
├── .python-version    # ระบุ Python 3.12 ให้ Nixpacks
├── .env.example       # ตัวอย่างตัวแปร env (ทุกตัว optional)
└── .gitignore

🧪 1) ทดสอบบนเครื่อง (Local)

# สร้าง virtual env
python -m venv .venv
.venv\Scripts\activate        # Windows
# source .venv/bin/activate   # macOS/Linux

pip install -r requirements.txt
python server.py

Server จะรันที่ http://localhost:8000/mcp

ทดสอบด้วย MCP Inspector:

npx @modelcontextprotocol/inspector
# ใส่ URL: http://localhost:8000/mcp  | Transport: Streamable HTTP

🚂 2) Deploy ขึ้น Railway

วิธีที่แนะนำ: ผ่าน GitHub

  1. push โค้ดทั้งหมดนี้ขึ้น GitHub repo

  2. ไปที่ railway.appNew ProjectDeploy from GitHub repo

  3. เลือก repo นี้ → Railway จะอ่าน railway.json + requirements.txt แล้ว build อัตโนมัติ

  4. ไปที่ tab Settings → Networking → Generate Domain เพื่อเปิด public URL

  5. (ถ้าจะใช้ CryptoPanic) ไปที่ tab Variables เพิ่ม CRYPTOPANIC_TOKEN

Railway จะ inject ตัวแปร PORT ให้เอง — โค้ดอ่านค่านี้อยู่แล้ว ไม่ต้องตั้งเพิ่ม

วิธีผ่าน CLI

npm i -g @railway/cli
railway login
railway init
railway up
railway domain          # เปิด public URL

หลัง deploy จะได้ URL ประมาณ:

https://your-app.up.railway.app/mcp

🔌 3) เชื่อมต่อกับ Claude

Claude Code (CLI)

# ไม่ได้ล็อก token
claude mcp add --transport http crypto-news https://your-app.up.railway.app/mcp

# ถ้าล็อกด้วย MCP_BEARER_TOKEN ให้ส่ง header ไปด้วย
claude mcp add --transport http crypto-news https://your-app.up.railway.app/mcp \
  --header "Authorization: Bearer <YOUR_TOKEN>"

Claude.ai / Cowork (Web) — ผ่าน OAuth 2.1

หน้า web รองรับเฉพาะ OAuth (ไม่รองรับ static token) — ต้องตั้งค่า OAUTH_LOGIN_PASSWORD ก่อน

  1. Settings → Connectors → Add custom connector

  2. ใส่ URL: https://your-app.up.railway.app/mcp (ไม่ต้องกรอก Client ID/Secret)

  3. กด connect → ระบบจะเปิดหน้า login ของ server → กรอก OAUTH_LOGIN_PASSWORD

  4. กด "อนุญาต & เชื่อมต่อ" → Claude จะได้รับ token อัตโนมัติ แล้วใช้งานได้เลย เช่น:

    • "ราคา BTC, ETH, SOL ตอนนี้เท่าไหร่ (อ้างอิง THB)"

    • "ภาพรวมตลาด crypto วันนี้เป็นยังไง"

    • "ดัชนี Fear & Greed ตอนนี้"

    • "ข่าว crypto ล่าสุด 5 ข่าว"

วิธีนี้เป็น OAuth 2.1 เต็มรูปแบบ (Dynamic Client Registration + PKCE) ที่ MCP SDK จัดการให้ การล็อกที่แท้จริงอยู่ที่หน้า login — ใครไม่รู้ password ก็เชื่อมต่อไม่ได้


🔑 ตัวแปร Environment (ทุกตัว optional)

ตัวแปร

ใช้ทำอะไร

ไม่ใส่จะเป็นยังไง

OAUTH_LOGIN_PASSWORD

เปิด OAuth 2.1 (สำหรับ Claude.ai/Cowork web) — รหัสที่กรอกหน้า login

ไม่เปิด OAuth

PUBLIC_URL

base URL สาธารณะ (OAuth issuer)

บน Railway อ่านจาก RAILWAY_PUBLIC_DOMAIN ให้เอง

MCP_BEARER_TOKEN

ล็อกแบบ Bearer (เหมาะกับ CLI) — ทำงานคู่กับ OAuth ได้

ไม่เปิด bearer

COINGECKO_DEMO_KEY

เพิ่ม rate limit CoinGecko

ใช้ได้ปกติ แต่ rate limit ต่ำกว่า

CRYPTOPANIC_TOKEN

เปิด tool get_cryptopanic_news

tool นี้จะแจ้งให้ไปสมัคร (tool อื่นใช้ได้หมด)

PORT

พอร์ตที่รัน

Railway ตั้งให้เอง / local = 8000

เลือกโหมด auth อัตโนมัติ: ตั้ง OAUTH_LOGIN_PASSWORD → OAuth · ตั้งแค่ MCP_BEARER_TOKEN → Bearer · ไม่ตั้งอะไร → Open ตั้งทั้งคู่ได้: web ใช้ OAuth, CLI ใช้ static token เดิม (ทำงานพร้อมกัน)


⚠️ หมายเหตุ

  • ความปลอดภัย: ใช้บน web → ตั้ง OAUTH_LOGIN_PASSWORD (OAuth 2.1, กั้นด้วยหน้า login) · ใช้บน CLI → ตั้ง MCP_BEARER_TOKEN · request ที่ไม่มี/ผิด credential จะได้ HTTP 401 ถ้าไม่ตั้งอะไรเลย server จะเปิดให้ใครก็เรียกได้ (ข้อมูล read-only สาธารณะ เสี่ยงต่ำ แต่ควรล็อกไว้)

  • OAuth state เป็น in-memory: เมื่อ Railway redeploy/restart token จะหาย ต้อง authorize ใหม่บน web (ยอมรับได้สำหรับ connector ส่วนตัว)

  • Rate limit: CoinGecko free มีโควต้าจำกัด ถ้าเจอ error 429 ให้เว้นช่วงแล้วลองใหม่ หรือใส่ COINGECKO_DEMO_KEY

  • ข้อมูลทั้งหมดเพื่อการศึกษาเท่านั้น ไม่ใช่คำชี้ชวนในการลงทุน

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Live market data for AI agents. 8 tools: real-time crypto prices, OHLCV candles, order books, market cap rankings, trending coins, technical analysis (RSI/SMA/z-score), asset comparison, and Fear & Greed index. Zero API keys, zero dependencies.
    8
    1
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Integrates cryptocurrency market data from CoinGecko, the Fear & Greed Index, and CryptoPanic news into a single toolset for AI agents. It enables users to retrieve global market statistics, trending assets, coin-specific details, and real-time news feeds.
    MIT
  • A
    license
    B
    quality
    F
    maintenance
    Real-time cryptocurrency news, analysis, and price predictions for AI agents. 5 tools to search 50,000+ articles across 12 categories, filter by 120+ asset tickers, and access content with built-in attribution. Free with attribution. SSE and Streamable HTTP transport.
    4
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Provides crypto market intelligence including price quotes, momentum analysis, trending coins, and a composite scored verdict, using the free CoinGecko API.
    4
    MIT