加密货币市场数据服务

Crypto MCP Server是一个兼容模型上下文协议(MCP)的服务器,提供实时和历史加密货币市场数据,包括实时价格、市场摘要、历史K线数据和实时价格流。

  • by Nielsen642
  • Python
  • 本地部署
  • 14 星标
  • 更新于
在 GitHub 查看 Nielsen642/Crypto_MCP_Server

使用说明

🚀 加密MCP服务器

📌 概述

加密货币MCP服务器是一个与模型上下文协议(MCP)兼容的服务器,它使用ccxt提供实时和历史加密货币市场数据。 它公开了三个经过充分测试的工具:

get_ticker→ 实时价格和市场摘要

get_ohclv→ 历史烛台数据

stream_ticker→ 实时价格流(异步生成器)

该项目包括:

自定义错误处理

内存缓存

轻量级MCP服务器架构

完整的测试套件(pytest)

手动测试的本地客户端

✨ 特性

🔹 get_ticker

胎儿:

最后价格

高&低

基础音量

价格变动百分比

🔹 get_ohclv

取OHLCV蜡烛:

时间戳

打开

高

低

关闭

体积

🔹 stream_ticker

带有异步生成器的实时流式自动收报机,每N秒产生一次更新。

🧩 项目结构

加密mcp服务器/ │ ├── 服务器/ │ ├── main.py │ ├── mcp_server.py │ ├── cache.py │ ├── errors.py │ ├── 交换价格 │ └── 工具/ │ ├── get_ticker.py │ ├── get_ohclv.py │ └── stream_ticker.py │ ├── 测试/ │ ├── test_get_ticker.py │ ├── test_ohclv.py │ └── test_stream_ticker.py │ ├── client_test.py ├── README.md ├── 需求.txt :

🛠️ 技术栈

Python 3.10+

ccxt用于交换API

pytest用于测试

流媒体异步

MCP服务器协议风格

📦 安装

克隆https://github.com/yourusername/crypto-mcp-server cd加密mcp服务器 pip安装-r要求.txt

▶️ 运行MCP服务器

从服务器/目录:

python-m服务器主

您应该看到:

加密MCP服务器正在运行… 已注册的工具:get_ticker、get_ohclv、stream_ticker

🧪 运行测试

所有测试均在测试中/包括:

有效/无效符号

不支持的交换

API错误

流媒体行为

运行:

pytest-vv

📁 已实施的工具

🔹 get_ticker

手柄:

无效符号

不支持的交换

ccxt API异常

缓存响应20秒

🔹 get_ohclv

返回OHCLV历史蜡烛

验证时间框架和限制

引发自定义错误

🔹 stream_ticker

异步发生器

流式传输实时行情更新

使用asyncio.sleep()进行内部延迟

全面验证和错误处理

缓存层

cache.py实现了简单的内存TTL缓存:

保存(键、值、ttl)

get(键)

阻止额外的API调用

🧪 测试策略

单元测试(pytest)

每个工具都有:

成功测试

无效符号测试

无效交换测试

API失效试验

流媒体测试

使用asyncio.mark

模拟多个股票行情更新

检查发电机行为

🧪 无MCP CLI的本地测试

运行:

python客户端test.py

它打印:

get_ticker结果

get_ohclv蜡烛

3条流式股票行情更新

🔍 输出示例

---测试get_ticker--- {...}

---测试get_ohcv--- {...}

---测试stream_ticker--- {...}

📌 关键学习和亮点

设计全MCP风格的服务器

已实现异步流媒体工具

编写完整的测试套件

内置缓存+错误处理抽象

安全验证交换+符号输入