加密货币交易所API服务器

MEXC MCP Server是一个用于加密货币交易所集成的模型上下文协议服务器实现,提供实时市场数据、安全的API管理和交易功能。

  • by RyanLisse
  • TypeScript
  • 本地部署
  • 5 星标
  • 更新于
在 GitHub 查看 RyanLisse/mexc-mcp-server

使用说明

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云部署

  1. 再次安装CLI:

    curl -L https://encore.dev/install.sh | bash
    
  2. 验证:

    encore auth login
    
  3. 设置秘密:

    # 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"
    
  4. 部署:

    # 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协议实现(聚合所有服务)

🤝 贡献

  1. 分叉存储库
  2. 创建要素分支: git checkout -b feature/amazing-feature
  3. 按照编码标准进行更改
  4. 运行测试: bun test
  5. 以常规方式承诺: git commit -m "feat: add amazing feature"
  6. 推到您的分支: git push origin feature/amazing-feature
  7. 打开拉取请求

开发标准

  • ✅ 具有严格模式的TypeScript
  • ✅ 测试驱动开发(TDD)
  • ✅ 500行以下的文件
  • ✅ Encore.ts接口用于类型安全
  • ✅ 常规承诺
  • ✅ 新功能的测试覆盖率超过90%
  • ✅ Biome.js用于linting和格式化

📝 许可证

MIT许可证-请参阅 许可证 文件以获取详细信息。

🆘 支持