使用说明
MEXC MCP服务器
使用Encore.ts实现MEXC加密货币交易所集成的模型上下文协议(MCP)服务器实现。
🚀 特性
- 实时市场数据:MEXC交易所的实时股票价格、订单簿和24小时统计数据
- 安全的API管理:Encore.ts API密钥的机密管理
- 速率限制和缓存:内置保护和性能优化
- 类型安全:带有Encore.ts接口的完整TypeScript实现
- 测试驱动开发:全面的测试套件,覆盖率>90%
- CI/CD管道:自动化测试、linting和部署
- 预提交钩子:自动代码质量检查
📋 先决条件
🛠️ 地方发展设置
1.克隆和安装
git clone https://github.com/RyanLisse/mexc-mcp-server.git
cd mexc-mcp-server
bun install
2.环境配置
创建一个 .env 项目根目录中的文件:
# MEXC API Credentials
MEXC_API_KEY=your_mexc_api_key_here
MEXC_SECRET_KEY=your_mexc_secret_key_here
3.开发工作流程
# 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
🧪 测试
# 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
🔧 可用的MCP工具
| 工具名称 | 描述 | 输入参数 |
|---|---|---|
mexc_get_ticker |
获取当前股票价格和24小时统计数据 | symbol: string, convert?: string |
mexc_get_order_book |
获取当前订单簿(出价/要价) | symbol: string, limit?: number |
mexc_get_24h_stats |
获取24小时交易统计数据 | symbol?: string |
mexc_test_connectivity |
测试API连接和服务器时间 | 无 |
mexc_test_authentication |
测试API身份验证 | 无 |
mexc_get_active_symbols |
获取所有活跃交易品种 | limit?: number |
mexc_place_order |
下达买入/卖出订单 | `symbol: string, side: 'buy' |
mexc_cancel_order |
取消现有订单 | symbol: string, orderId: string |
mexc_get_order_status |
获取订单状态和详细信息 | symbol: string, orderId: string |
mexc_get_account_balance |
获取账户余额 | 无 |
mexc_get_open_orders |
获取所有未结订单 | symbol?: string |
mexc_get_order_history |
获取订单历史记录 | symbol?: string, limit?: number |
mexc_get_trade_history |
获取交易执行历史记录 | symbol?: string, limit?: number |
🚀 部署
Encore云部署
-
再次安装CLI:
curl -L https://encore.dev/install.sh | bash -
验证:
encore auth login -
设置秘密:
# 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 to staging encore deploy --env=staging # Deploy to production encore deploy --env=production
自动化部署
该项目包括用于自动部署的GitHub Actions工作流:
-
CI管道 (
.github/workflows/ci.yml):在所有PR和Push上运行- 类型检查
- 装订和格式化
- 测试执行
- 安全扫描
- 构建验证
-
部署管道 (
.github/workflows/deploy.yml):部署到Encore Cloud- 在主分支推送时触发
- 手动部署并选择环境
- 自动健康检查
- 秘密管理
必需的GitHub机密
在GitHub存储库设置中配置这些机密:
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
🔒 安全与保密管理
Encore.ts秘密
此项目使用Encore.ts内置的机密管理来实现安全的凭据存储:
// 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(),
};
设置秘密
# 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"
最佳实践
- ✅ 永远不要将API密钥提交到版本控制
- ✅ 使用特定于环境的秘密(登台/制作)
- ✅ 定期旋转API键
- ✅ 监控API使用情况和费率限制
- ✅ 使用最小权限访问原则
🔄 CI/CD管道
预提交钩子
Husky预提交钩子确保代码质量:
# Automatically runs on git commit
- Lint-staged (format & lint staged files)
- Type checking
- Test execution
GitHub操作
CI工作流(.github/workflows/ci.yml)
- 触发器:拉取请求并推送到主/开发
- 步骤:安装→ 类型检查→ Lint → Test → 安全扫描→ Build
部署工作流(.github/workflows/deploy.yml)
- 触发器:推送至主调度或手动调度
- 步骤:质量检查→ 部署→ 健康检查→ 通知
📊 API终点
健康与信息
GET /health-服务健康检查GET /mcp/info-MCP协议信息GET /-API概述
验证服务
POST /auth/validate-验证API密钥GET /auth/status-身份验证状态POST /auth/rate-limit-费率限制状态GET /auth/test-mexc-测试MEXC证书
市场数据服务
POST /market-data/ticker-获取股票行情数据POST /market-data/order-book-获取订单簿POST /market-data/24h-stats-获取24小时统计数据GET /market-data/test-connectivity-测试连接性GET /market-data/test-auth-测试身份验证POST /market-data/active-symbols-获取活动符号GET /market-data/health-市场数据服务健康GET /market-data/mcp/tools-可用的MCP工具
交易服务
POST /trading/place-order-下新订单POST /trading/cancel-order-取消现有订单POST /trading/order-status-获取订单状态GET /trading/open-orders-获取未结订单POST /trading/order-history-获取订单历史记录POST /trading/trade-history-获取交易历史记录GET /trading/health-交易服务健康
投资组合服务
GET /portfolio/balance-获取账户余额GET /portfolio/positions-获取空缺职位POST /portfolio/pnl-获取损益数据GET /portfolio/health-组合服务健康状况
工具服务(MCP协议)
GET /tools/list-列出所有可用的MCP工具POST /tools/call-执行MCP工具GET /tools/resources-列出MCP资源POST /tools/resources/read-读取MCP资源内容
🧩 建筑
Encore.ts服务
该应用程序使用具有5个主要服务的微服务架构构建:
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
服务依赖关系
- 认证:基本身份验证和速率限制
- 市场数据:实时市场数据(取决于身份验证)
- 交易:订单管理(取决于身份验证、市场数据)
- 投资组合:账户和头寸跟踪(取决于身份验证、交易)
- 工具:MCP协议实现(聚合所有服务)
🤝 贡献
- 分叉存储库
- 创建要素分支:
git checkout -b feature/amazing-feature - 按照编码标准进行更改
- 运行测试:
bun test - 以常规方式承诺:
git commit -m "feat: add amazing feature" - 推到您的分支:
git push origin feature/amazing-feature - 打开拉取请求
开发标准
- ✅ 具有严格模式的TypeScript
- ✅ 测试驱动开发(TDD)
- ✅ 500行以下的文件
- ✅ Encore.ts接口用于类型安全
- ✅ 常规承诺
- ✅ 新功能的测试覆盖率超过90%
- ✅ Biome.js用于linting和格式化
📝 许可证
MIT许可证-请参阅 许可证 文件以获取详细信息。
