Coin MCP Server 🚀💰
Welcome to the Coin MCP Server – your one-stop shop for snagging the latest cryptocurrency prices faster than you can say "To the moon!" 🌙 Built with FastMCP
and spiced up with zod
for validation, this little server is here to fetch token prices from Bitget’s API like a trusty crypto butler. 🧑💼
中文文档 | English
What Does It Do? 🤔
This project spins up a server that lets you query the current price of any cryptocurrency (paired with USDT) using Bitget’s slick API. Want to know how much your favorite token is worth right now? Just ask, and boom – the price is yours! 💸
- Tool:
getTokenPrice
- Mission: Fetch the latest price of a token (e.g.,
BGB
,BTC
,ETH
). - Superpower: It’s fast, it’s simple, and it’s powered by
FastMCP
! ⚡
Features 🌟
- 🎯 Dead-Simple API: Pass a token symbol, get a price. No fuss, no muss.
- 🛡️ Zod Validation: Parameters are checked tighter than a vault door.
- 📡 Bitget Integration: Pulls live data straight from Bitget’s market ticker API.
- 🧠 Error Handling: Catches hiccups like a pro and logs them for you to giggle at later.
Getting Started 🏁
Ready to dive into the crypto price pool? Here’s how to get this baby running:
Prerequisites
- Deno: You’ll need Deno installed because we’re fancy and modern. Grab it here.
- Bitget API Access: No API key needed – we’re hitting the public endpoint like champs! But if you’ve got a custom
BGURL
, set it as an environment variable.
Installation
- Clone this repo like it’s hot:
git clone https://github.com/pwh-pwh/coin-mcp-server.git cd coin-mcp-server
- Install dependencies (Deno handles this automagically via imports!).
Running the Server
Fire it up with:
deno run --allow-net --allow-env --allow-read main.ts
or
deno run --allow-net --allow-env --allow-read https://deno.land/x/coin_mcp_server@v1.0.1/main.ts
--allow-net
: Lets us talk to Bitget’s API.--allow-env
: Grabs yourBGURL
env variable if you’ve set one.
The server will start in stdio
mode, ready to serve up prices like a crypto vending machine! 🍔
Configuration
config.json
{
"mcpServers": {
"coin-mcp": {
"command": "deno",
"args": [
"run",
"--allow-net",
"--allow-read",
"--allow-env",
"https://deno.land/x/coin_mcp_server@v1.0.1/main.ts"
]
}
}
}
Usage Example 🎮
Here’s how you’d call getTokenPrice
:
{
"tool": "getTokenPrice",
"parameters": {
"token": "BGB"
}
}
Response:
"42.069" // The latest BGB/USDT price (not a real price, just vibes!)
If the token doesn’t exist or the API hiccups, it’ll throw an error with a cheeky log to remind you it tried its best. 😅
Code Sneak Peek 👀
Here’s the magic behind the curtain:
- FastMCP: Spins up the server with a cool name and version.
- Zod: Keeps your
token
parameter in check. - Bitget API: Fetches ticker data from
https://api.bitget.com/api/v2/spot/market/tickers
.
The getBitgetPrice
function is the MVP, grabbing that sweet lastPr
(last price) from the response. Check the logs for price updates or error comedy gold! 😂
Environment Variables 🌍
BGURL
: Custom Bitget API base URL (defaults tohttps://api.bitget.com
if not set). Set it like:export BGURL="https://your-custom-bitget-url.com"
Troubleshooting 🛠️
- “HTTP error! status: 404”: Double-check your token symbol.
BGBUSDT
isn’t the same asBGB
! - “Network error”: Make sure you’ve got internet and Deno’s
--allow-net
flag. - Still stuck?: Yell into the void (or open an issue). We’ll figure it out together! 🙌
Why This Exists 🎉
Because who doesn’t want to know the price of their crypto stash in real-time? Whether you’re a trader, a HODLer, or just crypto-curious, this server’s got your back. Plus, it’s a fun way to flex some Deno skills and play with APIs. 😎
Contributing 🤝
Got ideas? Found a bug? Want to add a feature like moon phase price predictions? Fork it, tweak it, PR it! Let’s make this the coolest MCP server in the galaxy. 🌌
License 📜
MIT – Do whatever you want with it, just don’t blame me if your token moons or dumps! 🌑📉
Happy crypto hunting, and may your bags always be green! 💚