使用说明
项目简介
本项目 'mcp-server-defillama' 是一个基于 Model Context Protocol (MCP) 构建的服务器,旨在为大型语言模型 (LLM) 提供访问 DefiLlama API 的能力。通过此服务器,LLM 可以获取 DeFi 领域的实时和历史数据,例如 DeFi 协议的总锁定价值 (TVL)、区块链链的 TVL、代币价格以及稳定币信息。这使得 LLM 能够理解和处理与 DeFi 相关的问题,例如查询特定协议的 TVL 变化、获取代币的当前价格等。
主要功能点
- 提供 DeFi 数据访问工具: 通过集成 DefiLlama API,提供了一系列工具,允许 LLM 查询和获取 DeFi 数据。
- 支持多种数据类型: 涵盖了 DeFi 领域多种关键数据类型,包括协议列表、协议 TVL、链 TVL、代币价格(当前和历史)、稳定币列表和稳定币数据。
- 标准化的 MCP 接口: 遵循 MCP 协议标准,易于与兼容 MCP 协议的 LLM 客户端集成。
- 易于部署和使用: 提供简单的安装和启动步骤,方便用户快速部署和使用。
安装步骤
- 克隆仓库:
git clone https://github.com/dcSpark/mcp-server-defillama.git cd mcp-server-defillama - 安装依赖:
确保你的环境中已安装 Node.js 和 npm。然后运行以下命令安装项目依赖:
npm install - 构建项目:
运行以下命令构建项目,将 TypeScript 代码编译为 JavaScript 代码:
npm run build - 启动服务器:
运行以下命令启动 MCP 服务器:
服务器默认使用 Stdio 传输协议,并通过标准输入/输出与 MCP 客户端通信。npm start
服务器配置
MCP 客户端需要配置以下 JSON 格式信息以连接到 'mcp-server-defillama' 服务器。以下是配置示例,请根据实际情况调整 'command' 和 'args' 字段:
{ "serverName": "mcp-server-defillama", "command": "node", "args": [ "./dist/index.js" ], "transport": "stdio" }
配置参数说明:
- 'serverName': 服务器名称,可以自定义,例如 "defillama-server"。
- 'command': 运行服务器的命令,这里使用 'node' 命令来执行 JavaScript 文件。
- 'args': 传递给 'command' 的参数列表。
- '"./dist/index.js"': 指定服务器入口文件路径。请确保路径与实际 'dist/index.js' 文件位置一致。
- 'transport': 指定 MCP 服务器使用的传输协议,这里使用 'stdio' (标准输入/输出)。
请注意: MCP 客户端需要能够执行 'node' 命令,并且能够找到 'dist/index.js' 文件。如果你的环境配置不同,请相应地修改 'command' 和 'args' 字段。
基本使用方法
启动服务器后,MCP 客户端可以通过 JSON-RPC 协议与服务器进行通信。客户端可以发送 'ListToolsRequest' 请求获取服务器提供的工具列表,然后使用 'CallToolRequest' 请求调用具体的工具。
可用工具列表 (Tools):
- 'defillama_get_protocols': 获取 DefiLlama 跟踪的所有协议列表。
- 'defillama_get_protocol_tvl': 获取特定协议的 TVL 数据。需要参数 'protocol' (协议名称,字符串类型)。
- 'defillama_get_chain_tvl': 获取特定区块链链的 TVL 数据。需要参数 'chain' (链名称,字符串类型)。
- 'defillama_get_token_prices': 获取指定代币的当前价格。需要参数 'coins' (代币地址数组,字符串数组类型,例如 '["ethereum:0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"]')。
- 'defillama_get_historical_prices': 获取指定代币在特定时间戳的历史价格。需要参数 'coins' (代币地址数组,字符串数组类型) 和 'timestamp' (时间戳,数字类型,Unix 时间戳)。
- 'defillama_get_stablecoins': 获取 DefiLlama 跟踪的所有稳定币列表。
- 'defillama_get_stablecoin_data': 获取特定稳定币的数据。需要参数 'asset' (稳定币资产名称,字符串类型,例如 "USDC")。
示例 - 调用 'defillama_get_protocol_tvl' 工具的 JSON-RPC 请求:
{ "jsonrpc": "2.0", "method": "CallTool", "params": { "name": "defillama_get_protocol_tvl", "arguments": { "protocol": "aave" } }, "id": "1" }
服务器将返回 JSON-RPC 响应,其中包含工具执行结果。结果会以文本形式包含在 'content' 字段中。
信息
分类
网页与API