使用说明

项目简介

Token API 是一个基于 Model Context Protocol (MCP) 构建的后端服务,旨在为语言模型(LLM)客户端提供实时的区块链 Token 数据。它通过 MCP 协议标准化地暴露数据访问能力和工具,使得 LLM 应用能够安全、可扩展地获取链上 Token 信息,从而构建更强大的上下文感知应用和 AI 智能体。

该项目使用 ClickHouse 数据库存储链上数据,并通过 SSE (Server-Sent Events) 协议与 MCP 客户端通信。目前主要支持以太坊虚拟机 (EVM) 兼容链,未来计划支持 Solana (SVM) 和 Antelope 等网络。

主要功能点

  • 资源 (Resources) 管理:
    • 提供预定义的 SQL 查询资源,允许客户端通过 MCP 协议获取各种 Token 数据,例如账户余额、交易记录、Token 持有者等。
    • 支持资源模板,允许客户端根据参数动态加载 SQL 查询。
  • 工具 (Tools) 执行:
    • 注册了一系列数据库操作工具,例如列出数据库、列出表、描述表结构、执行 SQL 查询等,允许 LLM 客户端通过调用这些工具来探索和查询底层数据。
  • Prompt 模板 (Prompts) 定义:
    • 提供了 Prompt 模板,例如 'native_token_queries',为客户端提供关于如何查询原生代币合约的指导。
  • 实时数据:
    • 通过 Substreams SQL Sink 实时同步链上数据到 ClickHouse 数据库,确保提供的数据是最新鲜的。
  • 多链支持 (EVM):
    • 目前已支持包括 Ethereum、Base、Arbitrum、BSC 等多个 EVM 兼容链。
  • JSON-RPC over SSE:
    • 使用 JSON-RPC 协议 over SSE 与客户端通信,符合 MCP 标准。
  • OpenAPI 文档:
    • 提供 OpenAPI 文档,方便开发者了解和使用 API 接口。

安装步骤

  1. 安装 Bun: Token API 使用 Bun 作为运行时环境,请先安装 Bun

  2. 克隆仓库:

    git clone https://github.com/graphprotocol/token-api.git
    cd token-api
  3. 安装依赖:

    bun install
  4. 配置环境变量: 复制 '.env' 文件并根据需要修改配置,主要关注以下 MCP 服务器配置项:

    # MCP Server
    SSE_PORT=8080        # SSE 服务器端口
    SSE_ENDPOINT=sse     # SSE 服务端点

    其他配置项如数据库连接信息等也请根据实际情况配置。

  5. 启动服务器:

    bun dev

    这将同时启动 API 服务器和 MCP 服务器。MCP 服务器默认监听 '8080' 端口的 '/sse' 端点。

服务器配置 (MCP 客户端配置)

MCP 客户端需要配置以下信息以连接到 Token API MCP 服务器。以下是一个 JSON 格式的配置示例,请根据实际情况修改:

{
  "serverName": "token-api-mcp-server",  // MCP 服务器名称,可自定义
  "command": "bun",                      // 启动 MCP 服务器的命令,这里使用 bun
  "args": ["dev"],                       // 启动命令的参数,这里使用 dev 启动开发模式
  "transport": "sse",                    // 使用 SSE 传输协议
  "sseEndpoint": "http://localhost:8080/sse" // SSE 服务端点 URL,根据实际部署情况修改 host 和 port
}

配置参数说明:

  • 'serverName': MCP 服务器的名称,客户端用于标识连接的服务器。
  • 'command': 启动 MCP 服务器的可执行命令,例如 'bun' 或 'node'。
  • 'args': 传递给启动命令的参数,例如 'dev' (开发模式) 或 'start' (生产模式)。请根据 Token API 项目的启动脚本进行配置。
  • 'transport': MCP 使用的传输协议,这里配置为 'sse' (Server-Sent Events)。
  • 'sseEndpoint': SSE 服务端点的完整 URL,包括协议、主机、端口和路径。需要与 Token API 服务器的实际监听地址和端点一致。

注意: 请确保 MCP 客户端能够访问到 Token API MCP 服务器的网络地址。如果客户端和服务器部署在不同的机器上,需要将 'sseEndpoint' 中的 'localhost' 替换为服务器的实际 IP 地址或域名。

基本使用方法

  1. 连接 MCP 服务器: 在 MCP 客户端中使用上述配置信息连接到 Token API MCP 服务器。

  2. 浏览能力 (Capabilities): 客户端连接成功后,可以获取服务器声明的 Capabilities,包括可用的 Resources, Tools, Prompts 等。

  3. 使用 Resources: 客户端可以请求加载预定义的 SQL 查询资源,例如 'file:///sql/balances_for_account/evm.sql',获取用于查询 EVM 链账户余额的 SQL 语句。对于支持 Resource Template 的客户端,可以使用 'file:///sql/{name}/{chain_type}.sql' 模板动态加载 SQL 查询。

  4. 调用 Tools: 客户端可以调用注册的 Tools 执行数据库操作,例如调用 'list_tables' 工具并传入数据库名称参数,获取指定数据库中的表列表。

  5. 使用 Prompts: 客户端可以加载 Prompt 模板,例如 'native_token_queries',获取关于如何构造特定类型查询的指导信息。

通过以上步骤,LLM 客户端可以利用 Token API MCP 服务器提供的资源、工具和 Prompt 模板,实现对链上 Token 数据的访问和利用,构建更智能的应用。

信息

分类

网页与API