使用说明
# 加密MCP服务器
模型上下文协议(MCP)服务器,使用CoinGecko API数据和AI驱动的见解提供加密货币分析工具。
特性
- 实时加密数据:获取当前价格、市值、交易量和24小时变化
- AI驱动的分析:全面的加密货币分析和风险评估
- 多币种支持:同时分析多种加密货币
- MCP协议:人工智能助手和工具的标准化界面
可用工具
1. get_crypto_price
获取特定加密货币的当前价格和市场数据。
参数:
coin_id(string):硬币ID(例如,“比特币”、“以太坊”、“卡尔达诺”)
例子:
{
"name": "get_crypto_price",
"arguments": {
"coin_id": "bitcoin"
}
}
2. analyze_crypto
使用不同的分析类型对加密货币数据进行人工智能分析。
参数:
coin_id(string):要分析的硬币IDanalysis_type(字符串,可选):分析类型(“价格”、“趋势”或“综合”)
例子:
{
"name": "analyze_crypto",
"arguments": {
"coin_id": "ethereum",
"analysis_type": "comprehensive"
}
}
3. get_market_data
获取多种加密货币的全面市场数据。
参数:
coin_ids(array):硬币ID列表vs_currency(字符串,可选):目标货币(默认值:“usd”)
例子:
{
"name": "get_market_data",
"arguments": {
"coin_ids": ["bitcoin", "ethereum", "cardano"],
"vs_currency": "usd"
}
}
设置
先决条件
- Python 3.12.4或更高版本
- 诗歌(用于依赖管理)
安装
-
克隆存储库:
git clone <repository-url> cd mcp_server -
安装依赖项:
poetry install -
设置环境变量: 创建一个
.env项目根目录中的文件:GOOGLE_STUDIO_AI_API_KEY=your_google_ai_api_key_here -
安装软件包:
poetry install
用法
运行MCP服务器
服务器使用stdio协议运行,这是MCP服务器的标准:
poetry run python -m mcp_server.main
与MCP客户端集成
要将此服务器与MCP兼容的客户端(如Claude Desktop等)一起使用:
-
添加到MCP配置中:
{ "mcpServers": { "crypto-analysis": { "command": "python", "args": ["-m", "mcp_server.main"], "env": { "GOOGLE_STUDIO_AI_API_KEY": "${GOOGLE_STUDIO_AI_API_KEY}" } } } } -
重新启动MCP客户端
-
使用AI助手中的工具:
- 询问加密货币的价格:“比特币的当前价格是多少?”
- 请求分析:“分析以太坊的市场地位”
- 比较多种硬币:“比较比特币、以太坊和卡尔达诺”
API终点
服务器使用CoinGecko API获取实时加密货币数据:
- 基本URL:
https://api.coingecko.com/api/v3 - 速率限制:具有合理限制的免费等级
- 数据源:来自多个交易所的实时市场数据
发展
项目结构
mcp_server/
├── src/
│ └── mcp_server/
│ ├── __init__.py
│ └── main.py # Main MCP server implementation
├── pyproject.toml # Dependencies and project config
├── mcp-config.json # MCP client configuration
└── README.md # This file
添加新工具
要向MCP服务器添加新工具,请执行以下操作:
-
在中定义工具
setup_handlers():Tool( name="your_tool_name", description="Tool description", inputSchema={ "type": "object", "properties": { "param1": {"type": "string"} }, "required": ["param1"] } ) -
在中添加处理程序
handle_call_tool():elif name == "your_tool_name": return await self.your_tool_method(arguments) -
实施工具方法:
async def your_tool_method(self, arguments: Dict[str, Any]) -> CallToolResult: # Your implementation here return CallToolResult( content=[TextContent(type="text", text="Your result")] )
错误处理
服务器包括全面的错误处理:
- API错误:优雅地处理CoinGecko API故障
- 无效输入:工具参数验证
- 网络问题:超时和连接错误处理
- 缺失数据:不可用数据的回退值
贡献
- 分叉存储库
- 创建要素分支
- 进行更改
- 如果适用,添加测试
- 提交拉取请求
许可证
此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。
支持
对于问题和疑问:
- 在存储库中创建问题
- 检查MCP文件:https://modelcontextprotocol.io/
- 查看CoinGecko API文档:https://www.coingecko.com/en/api