使用说明

项目简介

Pinax Token API MCP Server 是一个基于 Model Context Protocol (MCP) 构建的后端服务,旨在为大型语言模型 (LLM) 应用提供便捷的链上代币数据访问能力。它利用 Substreams 从区块链中提取数据,存储在 ClickHouse 数据库中,并通过 MCP 协议以标准化的方式向客户端提供数据查询、工具调用和 Prompt 模板。

主要功能点

  • 资源 (Resources) 管理: 托管和管理预定义的 SQL 查询,作为资源提供给 LLM 客户端,方便客户端获取链上代币数据。
  • 工具 (Tools) 执行: 注册和执行数据库操作工具,例如列出数据库、表、描述表结构以及运行自定义 SQL 查询,允许 LLM 客户端进行更灵活的数据探索和分析。
  • Prompt 模板 (Prompts): 提供 Prompt 模板,例如针对原生代币查询的提示,帮助引导 LLM 客户端进行更有效的交互。
  • 多链支持: 支持 EVM 链,并计划扩展到 Solana 和 Antelope 等更多区块链网络。
  • SSE 传输协议: 通过 Server-Sent Events (SSE) 协议与 MCP 客户端通信,实现实时的请求和响应。
  • 集成 ClickHouse 数据库: 使用 ClickHouse 作为数据存储,提供高性能的数据查询能力。
  • 基于 Substreams 的数据管道: 利用 Substreams 从区块链高效地提取和处理数据。

安装步骤

方法一:使用 Docker (推荐)

  1. 拉取 Docker 镜像:

    • 拉取最新稳定版本:
      docker pull ghcr.io/pinax-network/pinax-token-api:latest
    • 拉取 'main' 分支的最新开发版本:
      docker pull ghcr.io/pinax-network/pinax-token-api:develop
  2. 配置环境变量: 创建 '.env' 文件,并根据需要配置以下环境变量 (示例配置,请根据实际情况修改):

    PORT=8080
    HOSTNAME=localhost
    PINAX_API_KEY="YOUR_API_KEY" # 可选,如果需要API Key 鉴权
    PRETTY_LOGGING=true
    VERBOSE=true
  3. 运行 Docker 容器:

    docker run -it --rm --env-file .env -p 8080:8080 ghcr.io/pinax-network/pinax-token-api:develop

    (请将 '8080:8080' 前面的 '8080' 替换为您希望在主机上映射的端口)

方法二:本地源码运行

  1. 安装 Bun: 参考 Bun 官方文档 安装 Bun 运行时环境。

  2. 克隆仓库:

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

    bun install
  4. 配置环境变量: 创建 '.env' 文件,并根据需要配置环境变量 (同 Docker 方式)。

  5. 启动服务器:

    bun dev

服务器配置 (MCP 客户端)

MCP 客户端需要配置以下信息以连接到 Pinax Token API MCP Server。这是一个 JSON 格式的配置示例,用于说明如何配置客户端连接到该 MCP 服务器:

{
  "servers": [
    {
      "name": "pinax-token-api-mcp",  //  服务器名称,您可以自定义
      "command": "docker",         //  启动服务器的命令,如果您使用 Docker 运行
      "args": [                    //  命令参数
        "run",
        "-it",
        "--rm",
        "--env-file",
        ".env",                     //  如果您的环境变量配置文件名为 .env
        "-p",
        "8080:8080",                //  将容器的 8080 端口映射到主机的 8080 端口
        "ghcr.io/pinax-network/pinax-token-api:develop" //  Docker 镜像名称
      ],
      "transports": [
        {
          "type": "sse",           //  使用的传输协议为 Server-Sent Events
          "url": "http://localhost:8080/sse" //  SSE 端点 URL,根据您的服务器实际地址和端口修改
        }
      ]
    }
  ]
}

参数注释:

  • 'name': MCP 服务器的名称,客户端用于标识和管理不同的 MCP 服务器连接。
  • 'command': 启动 MCP 服务器的命令。 如果您使用 Docker 运行,则通常为 'docker'。 如果您本地源码运行,并且 'bun dev' 已经在后台运行,则可以留空或者配置为其他不实际启动新服务器的命令,因为 'bun dev' 已经启动了服务器。
  • 'args': 启动命令的参数列表。 根据 'command' 的不同,'args' 也不同。 Docker 示例中,'args' 包括 'docker run' 命令所需的参数,例如镜像名称、端口映射和环境变量文件。如果您本地源码运行,并且 'bun dev' 已经在后台运行,则 'args' 可以为空数组 '[]'。
  • 'transports': 定义客户端与服务器通信的传输协议。
    • 'type': 传输协议类型,这里是 'sse' (Server-Sent Events)。
    • 'url': SSE 协议的 URL 端点。 需要与 MCP 服务器配置的 SSE 端点一致。 默认情况下,Pinax Token API MCP Server 的 SSE 端点为 'http://<服务器地址>:<SSE端口>/sse',其中 '<服务器地址>' 默认为 'localhost','<SSE端口>' 默认为 '8080',可以在 '.env' 文件中配置。

注意:

  • 以上配置示例假设您使用 Docker 运行 Pinax Token API MCP Server,并且服务器监听在主机的 8080 端口。 请根据您的实际部署环境和配置进行调整。
  • 如果您选择本地源码运行 'bun dev' 启动服务器,并且希望 MCP 客户端 通过 'docker run' 再启动一个服务器实例,而是连接到已经运行的 'bun dev' 服务器,那么可以将 'command' 字段留空或设置为一个空命令,并确保 'transports.url' 指向 'bun dev' 服务器的地址和 SSE 端点。

基本使用方法

  1. 启动 Pinax Token API MCP Server: 根据上述安装步骤启动服务器。

  2. 配置 MCP 客户端: 使用 MCP 客户端 SDK (例如 fastmcp-js),并根据 "服务器配置 (MCP 客户端)" 部分的说明配置客户端连接信息。

  3. 连接到 MCP 服务器: 在 MCP 客户端中建立与 Pinax Token API MCP Server 的连接。

  4. 探索和使用 MCP 功能:

    • 获取资源列表: 客户端可以请求服务器提供的资源列表,例如 SQL 查询示例。
    • 获取工具列表: 客户端可以请求服务器提供的工具列表,例如数据库操作工具。
    • 获取 Prompt 列表: 客户端可以请求服务器提供的 Prompt 模板列表。
    • 加载和使用资源: 客户端可以加载指定的资源 (例如 SQL 查询),并用于查询链上数据。
    • 调用工具: 客户端可以调用服务器提供的工具 (例如运行 SQL 查询),并获取执行结果。
    • 利用 Prompt 模板: 客户端可以利用 Prompt 模板来指导用户进行数据查询和分析。

具体的使用方法请参考 MCP 客户端 SDK 的文档和示例代码。通过标准化的 MCP 协议,您可以方便地在 LLM 应用中集成 Pinax Token API MCP Server 提供的链上代币数据访问能力。

信息

分类

数据库与文件