加密货币价格查询服务

一个通过CoinGecko API提供加密货币价格查询的MCP服务器工具,适用于需要实时获取加密货币价格的开发环境。

  • by uqaabco-oss
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 uqaabco-oss/Coincap-mcp

使用说明

加密MCP服务器(Python版)

这个项目提供了一个通过标准输入输出(stdio)实现的简单MCP服务器,该服务器暴露了一个工具,可以通过CoinGecko API获取加密货币价格。

特点/特性

  • 使用MCP stdio服务器 mcp.server.fastmcp.FastMCP
  • 异步HTTP客户端httpx) 带重试/退避机制
  • 工具: get_crypto_prices(coin_ids: List[str], vs_currencies?: List[str])

要求

  • Python 3.10及以上版本

设置

cd crypto-mcp
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

运行MCP服务器(标准输入输出)

你可以直接运行它(便于快速测试):

python main.py

这通过标准输入输出启动了MCP服务器。它设计为由MCP兼容的客户端(例如,集成开发环境或代理主机)来启动。

快速进行测试,使用 stdio (手册)

MCP通过stdio上的JSON-RPC 2.0协议进行操作。对于手动冒烟测试,您可以使用诸如……之类的工具 jq 以及管道,或者使用MCP客户端。推荐的方式是使用一个配置了MCP的客户端,比如Cursor/Claude。

光标MCP配置(示例)

在 Cursor 中,添加一个类似以下的服务器配置条目:

{
  "mcpServers": {
    "crypto-mcp": {
      "command": "python",
      "args": ["/path to main.py"],
      "env": {
      }
    }
  }
}

添加完成后,重启MCP主机。该工具 get_crypto_prices 应该是可用的。示例工具调用:

{
  "tool": "get_crypto_prices",
  "arguments": {"coin_ids": ["bitcoin", "ethereum"], "vs_currencies": ["usd", "eur"]}
}

注释

  • CoinGecko API 有速率限制。客户端具有简单的重试机制,采用指数退避策略。
  • 如果您需要额外的字段,请切换到其他CoinGecko的端点或丰富响应内容 coingecko_client.py。
  • HTTP/2 可选依赖:此项目默认使用 HTTP/1.1,因此无需额外依赖。如果您偏好使用 HTTP/2,请安装 httpx 带有HTTP/2额外功能,并将客户端切换为 httpx.AsyncClient(http2=True) 在 coingecko_client.py:
    pip install "httpx[http2]"
    
    如果你看到类似“使用 http2=True,但未安装 'h2' 包”的错误,请安装上述额外组件或将客户端回退到默认设置 httpx.AsyncClient()。