加密货币数据服务

OKX MCP Server是一个提供实时加密货币数据和历史数据的服务,支持通过WebSocket获取实时更新,并具备数据可视化功能。

  • by badger3000
  • JavaScript
  • 本地部署
  • 3 星标
  • 更新于
在 GitHub 查看 badger3000/okx-mcp-server

使用说明

OKX MCP服务器

该项目创建了一个模型上下文协议(MCP)服务器,从OKX交易所获取实时加密货币数据。它允许像Claude这样的人工智能助手通过具有增强可视化功能和WebSocket实时更新的定义工具访问最新的加密货币价格信息和历史数据。

特性

  • get_price:通过可视化格式获取加密货币交易对的最新价格数据
  • get_candlesticks:使用可视化选项(包括ASCII图表)检索历史烛台数据
  • subscribe_ticker:订阅交易对的实时WebSocket更新
  • get_live_ticker:从WebSocket连接中检索最新的实时数据
  • unsubscribe_ticker:停止接收特定交易对的更新

先决条件

  • Node.js(建议使用v16或更高版本)
  • npm或纱线
  • 带Claude扩展的VSCode(如果使用VSCode集成)
  • 克劳德桌面(如果不使用VSCode)

安装

  1. 克隆存储库

    git clone https://github.com/yourusername/okx-mcp-server.git
    cd okx-mcp-server
    
  2. 安装依赖项

    npm install
    
  3. 添加WebSocket依赖项

    npm install ws
    npm install --save-dev @types/ws
    
  4. 构建项目

    npm run build
    
  5. 使编译后的脚本可执行

    chmod +x build/index.js
    

用法

直接运行服务器

您可以直接使用以下命令运行服务器:

npm start

或者:

node build/index.js

MCP检验员测试

要在集成之前测试MCP服务器,请执行以下操作:

npx @modelcontextprotocol/inspector node build/index.js

在检查器中,您可以测试:

  • get_price 输入: { "instrument": "BTC-USDT", "format": "markdown" }
  • get_candlesticks 输入: { "instrument": "BTC-USDT", "bar": "1m", "limit": 10, "format": "markdown" }
  • subscribe_ticker 输入: { "instrument": "BTC-USDT" }
  • get_live_ticker 输入: { "instrument": "BTC-USDT", "format": "markdown" }
  • unsubscribe_ticker 输入: { "instrument": "BTC-USDT" }

每个工具支持不同的可视化格式:

  • format:从中选择 markdown, json,或 table (烛台)

与VSCode集成

  1. 安装VSCode的Claude扩展

  2. 在VSCode设置中配置MCP服务器:

    • 创建或编辑以下文件:
      ~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
      
    • 添加以下配置:
      {
        "mcpServers": {
          "okx": {
            "command": "node",
            "args": ["/absolute/path/to/okx-mcp-server/build/index.js"],
            "disabled": false,
            "autoApprove": []
          }
        }
      }
      
    • 替换 /absolute/path/to/okx-mcp-server/build/index.js 使用您的实际文件路径
  3. 重新启动VSCode或重新加载Claude扩展

与Claude Desktop集成

如果使用Claude Desktop,请查看他们的文档,了解放置MCP配置设置的适当位置。

示例提示

一旦整合,你可以问克劳德:

  1. “比特币(BTC-USDT)的当前价格是多少?给我看一个格式很好的显示。”
  2. “使用5分钟的时间间隔和可视化表示,向我展示以太坊(ETH-USDT)在过去一小时的价格趋势。”
  3. “比较BTC-USDT和ETH-USDT的当前价格。”
  4. “以1分钟为间隔分析SOL-USDT最近20个烛台,并以表格形式显示。”
  5. “BTC-USDT的当前价格是高于还是低于24小时高点?想象一下价格范围。”
  6. “订阅比特币价格的实时更新,并在价格变化时告诉我。”
  7. “向我展示以太坊的最新实时数据。”
  8. “实时监控BTC-USDT,如果价格在任何一个方向上上涨超过1%,请提醒我。”

数据可视化功能

增强的MCP服务器提供丰富的数据可视化:

价格数据可视化

  • 带有清晰价格信息的格式化降价输出
  • 显示当前价格在24小时高点/低点之间的视觉价格范围条
  • 价格变化的方向指示器(▲/▼)
  • 格式化数字以提高可读性

烛台数据可视化

  • Markdown格式:包括汇总统计数据、ASCII价格走势图和近期价格走势表
  • 表格格式:烛台数据的清晰表格展示
  • JSON格式:程序使用的原始数据

格式选项

  • 获取价格:支持 markdown (默认)或 json 格式
  • get_处理方法:支持 markdown (默认), table,或 json 格式
  • get_live_ticker:支持 markdown (默认)或 json 格式

WebSocket实时更新

此服务器包括用于从OKX接收实时数据的WebSocket支持:

WebSockets的工作原理

  • 建立与OKX的WebSocket API的持久连接
  • 每当价格变化时接收推送更新
  • 维护每个订阅仪器的最新数据缓存
  • 如果连接丢失,则自动重新连接

WebSocket工具

  • subscribe_ticker:开始订阅实时行情更新
  • get_live_ticker:从活动订阅中获取最新数据
  • 取消订阅_ticker:当不再需要监视时终止订阅

实时更新用例

  • 实时监控价格变动
  • 设置价格提醒
  • 实时跟踪市场波动
  • 根据最新数据做出明智的交易决策

环境变量(可选)

此基本实现使用OKX的公共API端点,这些端点不需要身份验证。如果您扩展服务器以使用经过身份验证的端点,您可能需要添加以下环境变量:

OKX_API_KEY=your_api_key
OKX_API_SECRET=your_api_secret
OKX_API_PASSPHRASE=your_api_passphrase

安全说明

  • 当前实现仅使用公共OKX API端点,因此不需要API密钥
  • 代码库中没有存储敏感数据
  • 按原样将此代码提交到Git是安全的

扩展服务器

您可以通过以下方式扩展此MCP服务器:

  1. 为其他OKX API端点添加更多工具
  2. 使用API密钥实现经过身份验证的端点
  3. 添加对其他交易所的支持
  4. 使用更复杂的图表进一步增强可视化效果
  5. 添加技术分析指标(RSI、MACD、移动平均线)
  6. 为多种加密货币实施价格比较工具
  7. 添加市场摘要功能,以进行更广泛的市场分析

许可证

麻省理工学院