比特币图表服务

一个基于CoinGecko API的MCP服务器,提供实时比特币价格图表和市场数据。

  • by Ricksner
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 ricksner/bitcoin-chart-mcp

使用说明

比特币图表MCP服务器

一种MCP(模型上下文协议)服务器,使用CoinGecko API提供实时比特币价格图表和市场数据。

特性

  • 实时比特币价格数据从CoinGecko API获取当前比特币价格
  • 历史图表:为多个时间段(1小时、24小时、7天、30天、1年)生成图表
  • 多种图表类型:折线图和面积图
  • 多种格式:PNG和SVG输出格式
  • 货币支持:美元和欧元定价
  • 速率限制:遵守API限制的内置速率限制

安装

  1. 克隆或创建项目目录:

    mkdir bitcoin-chart-mcp
    cd bitcoin-chart-mcp
    
  2. 安装依赖项:

    npm install
    
  3. 构建项目:

    npm run build
    

使用Claude代码

1.将MCP服务器添加到Claude代码中

claude mcp add bitcoin-chart node /path/to/bitcoin-chart-mcp/dist/index.js

2.可用工具

get_bitcoin_chart

生成可定制的比特币价格图表。

参数:

  • timeframe:“1h”|“24h”|“7d”|“30d”|“1y”(默认值:“7d”)
  • chartType:'line'|'area'(默认值:'line])
  • format:“png”|“svg”(默认值:“svg”)
  • width:number(默认值:800)
  • height:number(默认值:400)
  • currency:'usd'|'eur'(默认值:'usd')

示例用法:

Show me a Bitcoin chart for the last 30 days as an area chart

get_bitcoin_price

获取当前比特币价格和市场数据。

参数:

  • currency:'usd'|'eur'(默认值:'usd')

示例用法:

What's the current Bitcoin price?

3.可用资源

图表资源

  • bitcoin://chart/current -PNG图表(默认7天)
  • bitcoin://chart/svg/current -SVG图表(默认7天)

价格数据

  • bitcoin://price/current -当前价格JSON数据

api参考

比特币API类

处理与CoinGecko API的所有通信:

  • getCurrentPrice(currency) -获取当前比特币价格
  • getHistoricalData(days, currency, interval) -获取历史价格数据
  • getMarketChart(timeframe, currency) -获取市场图表数据

ChartGenerator类

生成图表可视化:

  • generateChart(data, config) -生成PNG图表
  • generateSVGChart(data, config) -生成SVG图表

配置

服务器包括以下内置配置:

  • 速率限制:API请求之间的2秒延迟
  • 图表默认值:800x400px,7天时间范围
  • 货币支持:美元和欧元
  • 时间框架选项1小时、24小时、7天、30天、1年

例子

基本用法

// Get current price
const price = await bitcoinAPI.getCurrentPrice('usd');

// Generate 7-day chart
const chartData = await bitcoinAPI.getMarketChart('7d');
const chart = await chartGenerator.generateSVGChart(chartData, {
  timeframe: '7d',
  chartType: 'line'
});

高级图表配置

const config = {
  timeframe: '30d',
  chartType: 'area',
  width: 1200,
  height: 600,
  currency: 'eur'
};

const data = await bitcoinAPI.getMarketChart(config.timeframe, config.currency);
const chart = await chartGenerator.generateChart(data, config);

发展

脚本

  • npm run build -构建TypeScript项目
  • npm start -启动MCP服务器
  • npm run dev -手表开发模式
  • npm run clean -清理构建目录

项目结构

bitcoin-chart-mcp/
├── src/
│   ├── index.ts          # Main MCP server
│   ├── bitcoin-api.ts    # CoinGecko API client
│   ├── chart-generator.ts # Chart generation
│   └── types.ts          # TypeScript types
├── dist/                 # Built JavaScript files
├── package.json
├── tsconfig.json
└── README.md

故障排除

常见问题

  1. 速率限制:服务器包括内置的速率限制。如果你遇到429个错误,内置的延迟应该会自动处理。

  2. 画布依赖关系:如果您遇到问题 canvas 软件包中,您可能需要安装其他系统依赖项:

    • macOS: brew install pkg-config cairo pango libpng jpeg giflib librsvg
    • 乌班图: sudo apt-get install build-essential libcairo2-dev libpango1.0-dev libjpeg-dev libgif-dev librsvg2-dev
  3. 内存使用:大型图表或频繁的请求可能会消耗内存。考虑实施缓存以供生产使用。

错误处理

该服务器包括全面的错误处理功能,用于:

  • API请求失败
  • 无效参数
  • 图表生成错误
  • 网络超时

许可证

MIT许可证-有关详细信息,请参阅许可证文件。

贡献

  1. 分叉存储库
  2. 创建要素分支
  3. 进行更改
  4. 如果适用,添加测试
  5. 提交拉取请求

支持

对于问题和疑问:

  • 检查故障排除部分
  • 查看CoinGecko API文档
  • 在项目存储库中打开问题