项目简介

'mcp3' 是一个基于 Model Context Protocol (MCP) 的 monorepo 项目,旨在为大型语言模型 (LLM) 客户端提供标准化的区块链和 DeFi 相关上下文信息和功能。它包含多个子项目,每个子项目都实现了一个特定领域的 MCP 服务器,例如以太坊数据查询、Sui 钱包管理、Sui 上的 Navi 和 Cetus 协议交互,以及 DeFiLlama 和 DexScreener API 的集成。

通过 MCP 协议,LLM 客户端可以调用这些服务器提供的工具(Tools)来执行任务(如查询余额、调用合约函数、获取市场数据),并访问资源(Resources)来获取结构化的数据(如合约 ABI、钱包信息)。

主要功能点

  • 以太坊 (ETH) 集成: 提供查询合约 ABI、下载合约源代码、调用链上视图函数等工具。
  • Sui 钱包管理: 允许列出、添加、删除、设置默认 Sui 钱包,并导出助记词/私钥。
  • Sui 协议集成:
    • Navi Protocol: 提供查询借贷池信息、健康因子、可用奖励、投资组合,以及创建存款、取款、借款、还款、清算交易等工具。
    • Cetus Protocol: 提供查询流动性池、头寸、费用、奖励,计算 APR,以及创建兑换报价、开仓、添加/移除流动性、收款、收奖励交易等工具。
  • DeFi 数据: 集成 DeFiLlama API,提供查询协议 TVL、链上 TVL、代币价格、稳定币数据、DEX 和期权交易量等工具。
  • 交易数据: 集成 DexScreener API,提供查询交易对、代币信息等工具。
  • 通用工具: 提供通用的 HTTP Fetch 工具,用于访问外部 API。
  • 事务处理: 包含一个独立的事务服务器模块,用于处理需要外部签名的交易流程。
  • 资源管理: 托管和提供格式化的资源,如合约 ABI、钱包信息、项目详情等。
  • 模块化设计: 基于 monorepo 结构,各功能模块独立且可通过 MCP 注册集成。

安装步骤

  1. 确保你已经安装 Node.js (推荐最新 LTS 版本) 和 pnpm。
  2. 克隆仓库:
    git clone https://github.com/sentioxyz/mcp3.git
    cd mcp3
  3. 安装项目依赖:
    pnpm install
  4. 构建所有子项目:
    pnpm build

服务器配置

'mcp3' monorepo 包含多个独立的 MCP 服务器实现,你可以根据需要启动其中一个或多个。MCP 客户端(如 MCP Client Launcher)需要以下 JSON 格式的配置信息来启动和连接到服务器。

通用配置结构:

{
  "name": "服务器名称",
  "command": "执行命令",
  "args": ["参数1", "参数2", "..."],
  "workingDirectory": "服务器代码路径" // 可选,通常指向特定包的目录
}

具体服务器配置示例 (请根据你的实际安装路径和需求调整 'command' 和 'args'):

以下示例假设您在项目根目录 ('mcp3/') 运行命令,并且 'pnpm' 命令在你的系统 PATH 中可用。如果不行,你可能需要使用 'node dist/cli.js' 并指定相对路径。

  1. MCP3 - Ethereum (ETH)

    • 描述: 提供与以太坊合约和数据交互的功能。
    • 配置:
      {
        "name": "MCP3 Ethereum",
        "command": "pnpm",
        "args": [
          "--filter", "@mcp3/eth-mcp",
          "start",
          "--base-path", "./packages/eth",  // 设置以太坊模块的工作路径
          "--scope", "./contracts",         // 设置合约配置文件的搜索范围
          "--enable-transaction-server",    // 可选:启动内置事务服务器
          "--transaction-server-port", "3000" // 可选:事务服务器端口
          // 其他通用或以太坊特定参数
        ],
        "workingDirectory": "./" // 在 monorepo 根目录执行 pnpm 命令
      }
    • 主要参数:
      • '--base-path <path>': 以太坊 CLI 的基础路径,默认为 './packages/eth'。
      • '--scope <scope>': 合约配置文件的子目录,默认为 './contracts'。
      • '--enable-transaction-server': 启动内置的事务服务器 (布尔)。
      • '--transaction-server-port <port>': 内置事务服务器监听端口 (数字)。
  2. MCP3 - Sui Wallets

    • 描述: 提供管理 Sui 钱包的功能。
    • 配置:
      {
        "name": "MCP3 Sui Wallets",
        "command": "pnpm",
        "args": [
          "--filter", "@mcp3/sui-wallets",
          "start",
          "--node-url", "https://fullnode.mainnet.sui.io:443", // 你的 Sui RPC 节点 URL
          "--wallet-config", "~/.sui-wallet/config.json",   // 你的 Sui 钱包配置文件路径
          "--enable-transaction-server",    // 可选:启动内置事务服务器
          "--transaction-server-port", "3000" // 可选:事务服务器端口
          // 其他通用或 Sui 钱包特定参数
        ],
        "workingDirectory": "./" // 在 monorepo 根目录执行 pnpm 命令
      }
    • 主要参数:
      • '--node-url <nodeUrl>': Sui RPC 节点 URL,默认为 'https://fullnode.mainnet.sui.io:443'。
      • '--wallet-config <walletConfig>': Sui 钱包配置文件的路径。
      • '--enable-transaction-server': 启动内置的事务服务器 (布尔)。
      • '--transaction-server-port <port>': 内置事务服务器监听端口 (数字)。
  3. MCP3 - Sui Navi

    • 描述: 提供与 Sui 上的 Navi Protocol 交互的功能。
    • 配置:
      {
        "name": "MCP3 Sui Navi",
        "command": "pnpm",
        "args": [
          "--filter", "@mcp3/sui-navi",
          "start",
          "--node-url", "https://fullnode.mainnet.sui.io:443", // 你的 Sui RPC 节点 URL
          "--wallet-address", "0x...",                     // 可选:默认 Sui 钱包地址
          "--enable-transaction-server",    // 可选:启动内置事务服务器
          "--transaction-server-port", "3000" // 可选:事务服务器端口
          // 其他通用或 Sui 特定参数
        ],
        "workingDirectory": "./" // 在 monorepo 根目录执行 pnpm 命令
      }
    • 主要参数:
      • '--node-url <nodeUrl>': Sui RPC 节点 URL,默认为 'https://fullnode.mainnet.sui.io:443'。
      • '--wallet-address <walletAddress>': 默认 Sui 钱包地址。
      • '--enable-transaction-server': 启动内置的事务服务器 (布尔)。
      • '--transaction-server-port <port>': 内置事务服务器监听端口 (数字).
  4. MCP3 - Sui Cetus

    • 描述: 提供与 Sui 上的 Cetus Protocol 交互的功能。
    • 配置:
      {
        "name": "MCP3 Sui Cetus",
        "command": "pnpm",
        "args": [
          "--filter", "@mcp3/sui-cetus",
          "start",
          "--node-url", "https://fullnode.mainnet.sui.io:443", // 你的 Sui RPC 节点 URL
          "--wallet-address", "0x...",                     // 可选:默认 Sui 钱包地址
          "--enable-transaction-server",    // 可选:启动内置事务服务器
          "--transaction-server-port", "3000" // 可选:事务服务器端口
          // 其他通用或 Sui 特定参数
        ],
        "workingDirectory": "./" // 在 monorepo 根目录执行 pnpm 命令
      }
    • 主要参数:
      • '--node-url <nodeUrl>': Sui RPC 节点 URL,默认为 'https://fullnode.mainnet.sui.io:443'。
      • '--wallet-address <walletAddress>': 默认 Sui 钱包地址。
      • '--enable-transaction-server': 启动内置的事务服务器 (布尔)。
      • '--transaction-server-port <port>': 内置事务服务器监听端口 (数字)。
  5. MCP3 - DeFiLlama

    • 描述: 提供访问 DeFiLlama API 的功能。
    • 配置:
      {
        "name": "MCP3 DeFiLlama",
        "command": "pnpm",
        "args": [
          "--filter", "@mcp3/defilama",
          "start",
          "--defilama-endpoint", "https://api.llama.fi", // DeFiLlama API 地址
          "--enable-transaction-server",    // 可选:启动内置事务服务器
          "--transaction-server-port", "3000" // 可选:事务服务器端口
          // 其他通用参数
        ],
        "workingDirectory": "./" // 在 monorepo 根目录执行 pnpm 命令
      }
    • 主要参数:
      • '--defilama-endpoint <endpoint>': DeFiLlama API 节点 URL,默认为 'https://api.llama.fi'。
      • '--enable-transaction-server': 启动内置的事务服务器 (布尔)。
      • '--transaction-server-port <port>': 内置事务服务器监听端口 (数字)。
  6. MCP3 - DexScreener

    • 描述: 提供访问 DexScreener API 的功能。
    • 配置:
      {
        "name": "MCP3 DexScreener",
        "command": "pnpm",
        "args": [
          "--filter", "@mcp3/dex-screener",
          "start",
          "--dexscreener-endpoint", "https://api.dexscreener.com", // DexScreener API 地址
          "--enable-transaction-server",    // 可选:启动内置事务服务器
          "--transaction-server-port", "3000" // 可选:事务服务器端口
          // 其他通用参数
        ],
        "workingDirectory": "./" // 在 monorepo 根目录执行 pnpm 命令
      }
    • 主要参数:
      • '--dexscreener-endpoint <endpoint>': DexScreener API 节点 URL,默认为 'https://api.dexscreener.com'。
      • '--enable-transaction-server': 启动内置的事务服务器 (布尔)。
      • '--transaction-server-port <port>': 内置事务服务器监听端口 (数字)。

通用参数:

  • '-v, --verbose': 启用详细输出。
  • '-t, --enable-transaction-server': 启动内置的事务服务器 (布尔),通常用于处理需要浏览器签名的交易。
  • '--transaction-server-url <url>': 指定事务服务器的 URL,默认为 'https://tx.mcp3.ai',如果 '--enable-transaction-server' 启用则使用本地启动的服务器地址。
  • '--transaction-server-port <port>': 内置事务服务器监听端口,默认为 '3000'。

基本使用方法

安装并构建项目后,使用支持 MCP 协议的客户端(如 MCP Client Launcher)加载上述配置信息。客户端将启动指定的 MCP 服务器,并通过标准输入/输出 (Stdio) 与其通信。

一旦连接建立,客户端将发现服务器暴露的工具和资源。用户或 LLM 即可通过客户端调用这些工具来执行链上操作或获取数据,并通过资源URI获取结构化信息。

例如,连接到 "MCP3 Ethereum" 服务器后,客户端可能会暴露 'eth-download-abi'、'eth-invoke-view-function' 等工具供调用。连接到 "MCP3 Sui Wallets" 服务器后,则可以使用 'sui-wallets-list'、'sui-wallets-add' 等工具。

信息

分类

网页与API