使用说明

项目简介

SparkMango 是一个 MCP 服务器生成工具,旨在简化大型语言模型 (LLM) 与智能合约的交互。它能够读取 Solidity 智能合约的 ABI 文件,自动生成一个基于 Python 和 FastAPI 的 MCP 服务器。这个服务器将智能合约的功能以 RESTful API 的形式暴露出来,使得 LLM 客户端可以通过标准的 Model Context Protocol (MCP) 协议与智能合约进行交互。

主要功能点

  • ABI 到 MCP 服务器转换: 将 Solidity 智能合约的 ABI 文件转换为可运行的 MCP 服务器。
  • RESTful API 接口: 为智能合约的函数自动生成 RESTful API 接口,方便 LLM 客户端调用。
  • LLM 代码生成: 利用 OpenAI 的语言模型生成函数调用的 Python 实现代码,简化开发流程。
  • 状态管理: 自动处理智能合约的状态变量,方便客户端获取合约信息。
  • 事件处理: 支持智能合约事件的访问(虽然文档中没有明确提及,但代码结构允许未来扩展)。
  • 易于部署和使用: 生成的服务器基于 FastAPI 和 Uvicorn,易于部署和运行。

安装步骤

  1. 确保已安装 Python 3.8 或更高版本和 pip。
  2. 安装 'mcp-server' 包:
    pip install mcp-server

服务器配置

MCP 客户端需要以下配置信息才能连接到 SparkMango 生成的 MCP 服务器。请注意替换 '/path/to/output_directory' 为实际的服务器输出目录。

{
  "serverName": "YourContractMCP",
  "command": "python",
  "args": ["server.py"],
  "cwd": "/path/to/output_directory"
}

配置参数说明:

  • 'serverName': MCP 服务器的名称,可以自定义。
  • 'command': 启动服务器的命令,这里是 'python'。
  • 'args': 命令参数,指定运行 'server.py' 文件。
  • 'cwd': 请务必替换为实际的服务器输出目录的绝对路径。这是 'server.py' 文件所在的目录,MCP 客户端需要在此目录下执行启动命令。

环境变量配置:

在运行服务器之前,需要设置以下环境变量:

  • 'OPENAI_API_KEY': 您的 OpenAI API 密钥,用于代码生成功能。
  • 'CONTRACT_ADDRESS': 您要交互的智能合约的地址。
  • 'ETH_NODE_URL': 以太坊节点的 URL,例如 Infura 或 Alchemy。

基本使用方法

  1. 生成 MCP 服务器: 使用 'mcp-server generate' 命令,指定 ABI 文件路径、输出目录和合约名称。

    mcp-server generate --abi path/to/contract.json --output output_directory --contract YourContractName

    这将在 'output_directory' 目录下生成 MCP 服务器代码。

  2. 配置环境变量: 设置 'OPENAI_API_KEY', 'CONTRACT_ADDRESS', 和 'ETH_NODE_URL' 环境变量。

  3. 启动服务器: 进入输出目录 'output_directory',运行以下命令启动服务器:

    python server.py

    服务器默认在 'http://localhost:8000' 启动。

  4. 使用 MCP 客户端发送请求: 使用 MCP 客户端,按照 MCP 协议格式向服务器的 '/mcp' 端点发送 POST 请求,即可调用智能合约的功能。请求的 'method' 字段指定要调用的合约函数名,'params' 字段传递函数参数。

信息

分类

开发者工具