Provides access to real-time cryptocurrency prices, historical OHLCV data, market statistics, and order book information from Binance exchange through CCXT library integration.
Enables retrieval of cryptocurrency market data including real-time prices, historical data, and trading pair information from Coinbase exchange through CCXT library integration.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Crypto MCP Serverwhat's the current price of Bitcoin in US dollars?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Crypto MCP Server
A Python-based Model Context Protocol (MCP) server that provides real-time and historical cryptocurrency market data from major exchanges using the CCXT library.
๐ Features
Real-time Price Data: Fetch current prices for any cryptocurrency trading pair
Historical Data: Retrieve OHLCV (Open, High, Low, Close, Volume) historical data
Market Statistics: Get comprehensive market summaries including 24h changes
Order Book Data: Access current bid/ask order books
Multi-Exchange Support: Works with 100+ cryptocurrency exchanges via CCXT
Intelligent Caching: Reduces API calls with built-in caching layer
Error Handling: Robust error handling and validation
Comprehensive Testing: Full test coverage with pytest
๐ Requirements
Python 3.10 or higher
pip (Python package manager)
Internet connection for API access
๐ง Installation
Clone the repository:
git clone <your-repo-url>
cd crypto-mcp-serverCreate a virtual environment (recommended):
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activateInstall dependencies:
pip install -r requirements.txt๐ Usage
Running the Server
Start the MCP server:
python -m src.crypto_mcp_server.serverAvailable Tools
The server exposes the following MCP tools:
get_crypto_price: Get current price for a cryptocurrency pair
Parameters:
symbol(e.g., "BTC/USDT"),use_cache(optional)
get_multiple_prices: Get prices for multiple pairs
Parameters:
symbols(list of trading pairs)
get_historical_data: Get historical OHLCV data
Parameters:
symbol,timeframe(e.g., "1d"),limit,use_cache
get_market_summary: Get comprehensive market statistics
Parameters:
symbol,use_cache
get_orderbook: Get current order book
Parameters:
symbol,limit
search_symbols: Search for available trading pairs
Parameters:
query(e.g., "BTC")
get_supported_exchanges: List all supported exchanges
No parameters required
clear_cache: Clear all cached data
No parameters required
get_cache_stats: Get cache statistics
No parameters required
Example Usage with MCP Client
# Example: Get Bitcoin price
{
"tool": "get_crypto_price",
"arguments": {
"symbol": "BTC/USDT"
}
}
# Example: Get historical data
{
"tool": "get_historical_data",
"arguments": {
"symbol": "ETH/USDT",
"timeframe": "1h",
"limit": 24
}
}๐งช Testing
Run all tests:
pytestRun tests with coverage:
pytest --cov=src/crypto_mcp_server --cov-report=htmlRun specific test file:
pytest tests/test_crypto_api.py -vTest Coverage
The project includes comprehensive tests for:
โ API wrapper functionality
โ Caching layer
โ MCP server tools
โ Error handling
โ Edge cases
๐ Project Structure
crypto-mcp-server/
โโโ src/
โ โโโ crypto_mcp_server/
โ โโโ __init__.py # Package initialization
โ โโโ server.py # Main MCP server
โ โโโ crypto_api.py # CCXT API wrapper
โ โโโ cache.py # Caching layer
โโโ tests/
โ โโโ test_server.py # Server tests
โ โโโ test_crypto_api.py # API tests
โ โโโ test_cache.py # Cache tests
โโโ requirements.txt # Python dependencies
โโโ README.md # This file
โโโ .gitignore # Git ignore rules๐ Key Design Decisions
1. Exchange Selection
Default Exchange: Binance
Rationale: Binance is one of the largest and most reliable exchanges with excellent API support
Flexibility: Can be configured to use any of 100+ exchanges supported by CCXT
2. Caching Strategy
TTL Values:
Real-time prices: 30 seconds
Historical data: 5 minutes
Market summaries: 1 minute
Rationale: Balances data freshness with API rate limit compliance
3. Error Handling
All API calls wrapped in try-catch blocks
Graceful degradation for partial failures
Detailed error messages for debugging
4. Data Validation
Symbol format validation
Timeframe validation
Limit parameter validation
๐ ๏ธ Configuration
Changing the Default Exchange
Edit server.py:
server = CryptoMCPServer(
exchange_id='coinbase', # Change to any supported exchange
cache_ttl=60
)Adjusting Cache TTL
server = CryptoMCPServer(
exchange_id='binance',
cache_ttl=120 # 2 minutes default cache
)๐ Assumptions
Network Connectivity: Assumes stable internet connection
Exchange Availability: Assumes target exchange APIs are operational
Rate Limits: Built-in rate limiting through CCXT's enableRateLimit
Data Format: Assumes standard CCXT data formats
No Authentication: Uses public endpoints (no API keys required)
๐ Performance Considerations
Caching: Reduces API calls by up to 90% for repeated queries
Rate Limiting: Automatically managed by CCXT
Concurrent Requests: Handles multiple simultaneous requests
Memory Usage: In-memory cache with automatic cleanup
๐ Known Limitations
Historical Data: Limited by exchange-specific restrictions
Real-time Updates: Not true WebSocket streaming (polling-based)
Authentication: Only public endpoints supported currently
Cache Persistence: Cache is in-memory only (not persistent)
๐ฎ Future Enhancements
WebSocket support for true real-time updates
Support for authenticated endpoints
Persistent cache (Redis/SQLite)
Multi-exchange aggregation
CoinMarketCap integration
Custom alerts and notifications
Portfolio tracking
๐ License
MIT License - Feel free to use this project for your needs.
๐ Acknowledgments
CCXT - Cryptocurrency exchange API library
Anthropic MCP - Model Context Protocol
pytest - Testing framework
๐ง Contact
For questions or issues, please open an issue on GitHub.
Note: This project was developed as part of an internship assignment. It demonstrates proficiency in Python development, API integration, testing, and MCP protocol implementation.
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.