使用说明
项目简介
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 (推荐)
-
拉取 Docker 镜像:
- 拉取最新稳定版本:
docker pull ghcr.io/pinax-network/pinax-token-api:latest - 拉取 'main' 分支的最新开发版本:
docker pull ghcr.io/pinax-network/pinax-token-api:develop
- 拉取最新稳定版本:
-
配置环境变量: 创建 '.env' 文件,并根据需要配置以下环境变量 (示例配置,请根据实际情况修改):
PORT=8080 HOSTNAME=localhost PINAX_API_KEY="YOUR_API_KEY" # 可选,如果需要API Key 鉴权 PRETTY_LOGGING=true VERBOSE=true -
运行 Docker 容器:
docker run -it --rm --env-file .env -p 8080:8080 ghcr.io/pinax-network/pinax-token-api:develop(请将 '8080:8080' 前面的 '8080' 替换为您希望在主机上映射的端口)
方法二:本地源码运行
-
安装 Bun: 参考 Bun 官方文档 安装 Bun 运行时环境。
-
克隆仓库:
git clone https://github.com/pinax-network/pinax-token-api.git cd pinax-token-api -
安装依赖:
bun install -
配置环境变量: 创建 '.env' 文件,并根据需要配置环境变量 (同 Docker 方式)。
-
启动服务器:
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 端点。
基本使用方法
-
启动 Pinax Token API MCP Server: 根据上述安装步骤启动服务器。
-
配置 MCP 客户端: 使用 MCP 客户端 SDK (例如 fastmcp-js),并根据 "服务器配置 (MCP 客户端)" 部分的说明配置客户端连接信息。
-
连接到 MCP 服务器: 在 MCP 客户端中建立与 Pinax Token API MCP Server 的连接。
-
探索和使用 MCP 功能:
- 获取资源列表: 客户端可以请求服务器提供的资源列表,例如 SQL 查询示例。
- 获取工具列表: 客户端可以请求服务器提供的工具列表,例如数据库操作工具。
- 获取 Prompt 列表: 客户端可以请求服务器提供的 Prompt 模板列表。
- 加载和使用资源: 客户端可以加载指定的资源 (例如 SQL 查询),并用于查询链上数据。
- 调用工具: 客户端可以调用服务器提供的工具 (例如运行 SQL 查询),并获取执行结果。
- 利用 Prompt 模板: 客户端可以利用 Prompt 模板来指导用户进行数据查询和分析。
具体的使用方法请参考 MCP 客户端 SDK 的文档和示例代码。通过标准化的 MCP 协议,您可以方便地在 LLM 应用中集成 Pinax Token API MCP Server 提供的链上代币数据访问能力。
信息
分类
数据库与文件