使用说明
Hyperliquid MCP 服务器(FastAPI)
这是什么
- 一个MCP服务器 提供工具以便通过HTTP与Hyperliquid进行交互。
- 使用……构建 FastAPI; 读取你的 MetaMask私钥 来自
.env。 - 随船附有 桩客户端 因此,你可以不使用Hyperliquid SDK来运行它。准备好后,再切换到实际的SDK。
它的功能/作用
/health健康检查。/mcp/tools(POST):发布可用工具的广告(包括模式)。/mcp/call(POST): 执行工具(get_all_mids,place_limit_order)。
快速入门
- 创建
.env在仓库根目录:
PRIVATE_KEY=replace_with_your_metamask_private_key
- 保持
.env脱离版本控制。 - 使用原始私钥(十六进制),而不是助记词短语。
- 安装依赖项:
pip install -r requirements.txt
- 运行服务器:
uvicorn server:app --reload --host 0.0.0.0 --port 8000
- 试试看:
curl -s http://127.0.0.1:8000/health
curl -s -X POST http://127.0.0.1:8000/mcp/tools -H 'Content-Type: application/json' -d '{}'
curl -s -X POST http://127.0.0.1:8000/mcp/call -H 'Content-Type: application/json' -d '{"toolName":"get_all_mids","arguments":{}}'
工具和模式
-
get_all_mids- 参数:无
- 返回值:
{ [coin: string]: number }
-
place_limit_order- 参数:
coin字符串(例如“BTC”)side字符串("买入" | "卖出")size数字limit_price数字time_in_force(可选):“Gtc” | “Ioc” | “Alo”(默认“Gtc”)reduce_only(可选):布尔值(默认为 false)
- 参数:
示例调用:
curl -s -X POST http://127.0.0.1:8000/mcp/call \
-H 'Content-Type: application/json' \
-d '{
"toolName":"place_limit_order",
"arguments": {"coin":"BTC","side":"buy","size":0.1,"limit_price":60000}
}'
模拟SDK与真实SDK
- 默认情况下,
mcp_tools.py尝试导入Hyperliquid SDK。- 如果存在:它将初始化真实(值/状态)
ExchangeClient/InfoClient你可以在测试网/主网上进行交易。 - 如果缺失:则回退到一个存根(返回演示中的中间件ID和模拟订单响应)。不涉及资金,不收取费用。
- 如果存在:它将初始化真实(值/状态)
交换网络中的 server.py 通过(某种方式或途径) is_testnet=True to init_hyperliquid_client。
安全
- 永远不要泄露你的真实私钥。
.env被忽略了。 - 在验证端到端行为之前,建议先在测试网上运行。
故障排除
-
导入警告(fastapi、pydantic、dotenv):
- 跑步
pip install -r requirements.txt.
- 跑步
-
未找到 Hyperliquid SDK:
- 服务器仍在使用存根运行。若要使用真实的SDK,请安装官方包,并根据需要替换存根调用。
-
404 未知工具:
- 确保
toolName完全匹配:get_all_mids或者place_limit_order。
- 确保