RyanLisse/mexc-mcp-server
If you are the rightful owner of mexc-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
The MEXC MCP Server is a Model Context Protocol server designed for seamless integration with the MEXC cryptocurrency exchange, utilizing Encore.ts for efficient and secure operations.
MEXC MCP Server
A Model Context Protocol (MCP) server implementation for MEXC cryptocurrency exchange integration using Encore.ts.
๐ Features
- Real-time Market Data: Live ticker prices, order books, and 24h statistics from MEXC exchange
- Secure API Management: Encore.ts secrets management for API keys
- Rate Limiting & Caching: Built-in protection and performance optimization
- Type Safety: Full TypeScript implementation with Encore.ts interfaces
- Test-Driven Development: Comprehensive test suite with >90% coverage
- CI/CD Pipeline: Automated testing, linting, and deployment
- Pre-commit Hooks: Automated code quality checks
๐ Prerequisites
- Bun >= 1.0.0
- Node.js >= 18.0.0
- Encore CLI (for deployment)
- MEXC API credentials
๐ ๏ธ Local Development Setup
1. Clone and Install
git clone https://github.com/RyanLisse/mexc-mcp-server.git
cd mexc-mcp-server
bun install
2. Environment Configuration
Create a .env
file in the project root:
# MEXC API Credentials
MEXC_API_KEY=your_mexc_api_key_here
MEXC_SECRET_KEY=your_mexc_secret_key_here
3. Development Workflow
# Start development server
bun run dev
# Run tests (with watch mode)
bun run test:watch
# Run all quality checks
bun run check
# Format and lint code
bun run format
bun run lint:fix
๐งช Testing
# Run all tests
bun test
# Run tests with coverage
bun run test:coverage
# Run specific test file
bun test auth/auth.test.ts
# Test MEXC API connectivity
bun run test:mexc
๐ง Available MCP Tools
Tool Name | Description | Input Parameters |
---|---|---|
mexc_get_ticker | Get current ticker price and 24h statistics | symbol: string, convert?: string |
mexc_get_order_book | Get current order book (bids/asks) | symbol: string, limit?: number |
mexc_get_24h_stats | Get 24-hour trading statistics | symbol?: string |
mexc_test_connectivity | Test API connectivity and server time | None |
mexc_test_authentication | Test API authentication | None |
mexc_get_active_symbols | Get all active trading symbols | limit?: number |
mexc_place_order | Place a buy/sell order | `symbol: string, side: 'buy' |
mexc_cancel_order | Cancel an existing order | symbol: string, orderId: string |
mexc_get_order_status | Get order status and details | symbol: string, orderId: string |
mexc_get_account_balance | Get account balances | None |
mexc_get_open_orders | Get all open orders | symbol?: string |
mexc_get_order_history | Get order history | symbol?: string, limit?: number |
mexc_get_trade_history | Get trade execution history | symbol?: string, limit?: number |
๐ Deployment
Encore Cloud Deployment
-
Install Encore CLI:
curl -L https://encore.dev/install.sh | bash
-
Authenticate:
encore auth login
-
Set up secrets:
# For staging environment encore secret set --env=staging MEXC_API_KEY "your_api_key" encore secret set --env=staging MEXC_SECRET_KEY "your_secret_key" # For production environment encore secret set --env=production MEXC_API_KEY "your_api_key" encore secret set --env=production MEXC_SECRET_KEY "your_secret_key"
-
Deploy:
# Deploy to staging encore deploy --env=staging # Deploy to production encore deploy --env=production
Automated Deployment
The project includes GitHub Actions workflows for automated deployment:
-
CI Pipeline (
.github/workflows/ci.yml
): Runs on all PRs and pushes- Type checking
- Linting and formatting
- Test execution
- Security scanning
- Build verification
-
Deployment Pipeline (
.github/workflows/deploy.yml
): Deploys to Encore Cloud- Triggered on main branch pushes
- Manual deployment with environment selection
- Automated health checks
- Secret management
Required GitHub Secrets
Configure these secrets in your GitHub repository settings:
ENCORE_AUTH_TOKEN=your_encore_auth_token
ENCORE_INSTALL_ID=your_encore_install_id
MEXC_API_KEY=your_mexc_api_key
MEXC_SECRET_KEY=your_mexc_secret_key
CODECOV_TOKEN=your_codecov_token # Optional, for coverage reports
๐ Security & Secrets Management
Encore.ts Secrets
This project uses Encore.ts built-in secrets management for secure credential storage:
// In shared/config.ts
import { secret } from "encore.dev/config";
// Secrets are automatically injected by Encore.ts
const mexcApiKey = secret("MEXC_API_KEY");
const mexcSecretKey = secret("MEXC_SECRET_KEY");
// For local development, use environment variables
const localConfig = {
apiKey: process.env.MEXC_API_KEY || mexcApiKey(),
secretKey: process.env.MEXC_SECRET_KEY || mexcSecretKey(),
};
Setting up Secrets
# Set secrets for different environments
encore secret set --env=development MEXC_API_KEY "your_dev_api_key"
encore secret set --env=development MEXC_SECRET_KEY "your_dev_secret_key"
encore secret set --env=staging MEXC_API_KEY "your_staging_api_key"
encore secret set --env=staging MEXC_SECRET_KEY "your_staging_secret_key"
encore secret set --env=production MEXC_API_KEY "your_prod_api_key"
encore secret set --env=production MEXC_SECRET_KEY "your_prod_secret_key"
Best Practices
- โ Never commit API keys to version control
- โ Use environment-specific secrets (staging/production)
- โ Rotate API keys regularly
- โ Monitor API usage and rate limits
- โ Use least-privilege access principles
๐ CI/CD Pipeline
Pre-commit Hooks
Husky pre-commit hooks ensure code quality:
# Automatically runs on git commit
- Lint-staged (format & lint staged files)
- Type checking
- Test execution
GitHub Actions
CI Workflow (.github/workflows/ci.yml
)
- Triggers: Pull requests and pushes to main/develop
- Steps: Install โ Type Check โ Lint โ Test โ Security Scan โ Build
Deploy Workflow (.github/workflows/deploy.yml
)
- Triggers: Push to main or manual dispatch
- Steps: Quality Checks โ Deploy โ Health Check โ Notify
๐ API Endpoints
Health & Info
GET /health
- Service health checkGET /mcp/info
- MCP protocol informationGET /
- API overview
Authentication Service
POST /auth/validate
- Validate API keyGET /auth/status
- Authentication statusPOST /auth/rate-limit
- Rate limit statusGET /auth/test-mexc
- Test MEXC credentials
Market Data Service
POST /market-data/ticker
- Get ticker dataPOST /market-data/order-book
- Get order bookPOST /market-data/24h-stats
- Get 24h statisticsGET /market-data/test-connectivity
- Test connectivityGET /market-data/test-auth
- Test authenticationPOST /market-data/active-symbols
- Get active symbolsGET /market-data/health
- Market data service healthGET /market-data/mcp/tools
- Available MCP tools
Trading Service
POST /trading/place-order
- Place a new orderPOST /trading/cancel-order
- Cancel an existing orderPOST /trading/order-status
- Get order statusGET /trading/open-orders
- Get open ordersPOST /trading/order-history
- Get order historyPOST /trading/trade-history
- Get trade historyGET /trading/health
- Trading service health
Portfolio Service
GET /portfolio/balance
- Get account balanceGET /portfolio/positions
- Get open positionsPOST /portfolio/pnl
- Get profit/loss dataGET /portfolio/health
- Portfolio service health
Tools Service (MCP Protocol)
GET /tools/list
- List all available MCP toolsPOST /tools/call
- Execute an MCP toolGET /tools/resources
- List MCP resourcesPOST /tools/resources/read
- Read MCP resource content
๐งฉ Architecture
Encore.ts Services
The application is built using a microservices architecture with 5 main services:
mexc-mcp-server/
โโโ encore.service.ts # Main service definition
โโโ api.ts # Root API endpoints
โโโ auth/ # Authentication service
โ โโโ encore.service.ts # Service definition
โ โโโ api.ts # Auth endpoints
โ โโโ auth.ts # Auth logic
โโโ market-data/ # Market data service
โ โโโ encore.service.ts # Service definition
โ โโโ api.ts # Market data endpoints
โ โโโ tools.ts # MCP tools implementation
โ โโโ mexc-client.ts # MEXC API client
โโโ trading/ # Trading operations service
โ โโโ encore.service.ts # Service definition
โ โโโ api.ts # Trading endpoints
โ โโโ tools.ts # Trading MCP tools
โโโ portfolio/ # Portfolio management service
โ โโโ encore.service.ts # Service definition
โ โโโ api.ts # Portfolio endpoints
โ โโโ tools.ts # Portfolio MCP tools
โโโ tools/ # MCP tools aggregation service
โโโ encore.service.ts # Service definition
โโโ api.ts # MCP protocol endpoints
Service Dependencies
- auth: Base authentication and rate limiting
- market-data: Real-time market data (depends on auth)
- trading: Order management (depends on auth, market-data)
- portfolio: Account and position tracking (depends on auth, trading)
- tools: MCP protocol implementation (aggregates all services)
๐ค Contributing
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature
- Make your changes following the coding standards
- Run tests:
bun test
- Commit with conventional commits:
git commit -m "feat: add amazing feature"
- Push to your branch:
git push origin feature/amazing-feature
- Open a Pull Request
Development Standards
- โ TypeScript with strict mode
- โ Test-driven development (TDD)
- โ Files under 500 lines
- โ Encore.ts interfaces for type safety
- โ Conventional commits
- โ 90%+ test coverage for new features
- โ Biome.js for linting and formatting
๐ License
MIT License - see file for details.
๐ Support
- ๐ Documentation
- ๐ Issues
- ๐ฌ Discussions
- ๐ง Email: