COTI MCP 服务器

使用说明(Markdown 格式)

  1. 项目简介
  • 该仓库实现了一个基于 MCP(Model Context Protocol)的服务器端,通过注册大量工具(Tools)向 LLM 客户端提供上下文能力,涵盖账户管理、加密解密、私有代币与 NFT 操作、交易查询、合约编译与部署等功能,目标是为 LLM 应用提供安全、可扩展的后端上下文服务。
  1. 主要功能点
  • MCP 服务器核心:基于 MCP 规范创建服务器、注册工具、处理请求与响应(JSON-RPC 风格)。
  • 工具集成与管理:包括账户创建/导入、签名与加密、网络切换、私有 ERC20/ERC721/私有消息等多类工具,覆盖资源访问、功能调用与数据处理。
  • 编译与部署:提供 Solidity 编译器封装、合约编译、以及一键编译并部署(compile_and_deploy_contract、compile_contract、compile_and_deploy_contract、verify_contract 等工具)。
  • 模板和模板工具:提供私有 ERC20/ERC721/私有消息模板的获取工具,便于在部署阶段进行快速定制与使用。
  • 事务与查询支持:包括交易日志、交易状态、调用合约函数、解码事件数据、原生代币转账等多种操作。
  • 安全性与私有化能力:多处工具支持 AES 密钥、私钥管理、私有交易和 MPC 风格的加密/解密流程(若部署者/调用者具备相应密钥)。
  • JSON-RPC 与多传输支持:按照 MCP 的设定,服务器通过 JSON-RPC 与客户端通信,理论上支持 Stdio、SSE、WebSocket 等传输协议(具体实现由 MCP SDK 提供)。
  1. 安装步骤
  • 运行环境要求:Node.js 安装(至少 v18 及以上)。
  • 克隆仓库并安装依赖:
    • git clone https://github.com/davibauer/coti-mcp.git
    • cd coti-mcp
    • npm install
    • npm run dev
  • 运行后服务器会暴露 MCP 风格的接口,供 MCP 客户端连接。
  1. 服务器配置(MCP 客户端接入所需信息)
  • 下面描述的是 MCP 客户端接入所需的配置信息,客户端至少需要包含 server 的名称、启动命令和参数。该信息用于 Claude/其它 MCP 客户端在本地或云端启动并连接 MCP 服务器。
  • 配置示例(JSON 结构描述,非代码块展示,方便理解): { "server": { "name": "COTI MCP Server", "description": "COTI MPC/上下文服务端", "version": "0.2.1", "command": "node", "args": ["path/to/build/index.js"] }, "notes": "该配置用于 MCP 客户端连接到服务器。具体路径需根据实际构建输出位置调整。MCP 客户端不需要额外的业务代码,仅需要启动命令与服务器名称进行标识连接。" }
  • 配置要点
    • server.name:用作在 MCP 客户端中的标识名称,便于区分和管理。
    • command:启动 MCP 服务器的执行命令,一般为 node。
    • args:启动命令的参数,通常指向构建输出的入口文件(如 index.js 或 dist/index.js)。
    • 该配置不是服务器端代码,属于客户端接入信息,确保 MCP 客户端能够正确启动并连接到服务器。
  1. 基本使用方法
  • 启动与连接
    • 在服务器端执行启动命令后,MCP 客户端通过 JSON-RPC 发送请求,调用已注册的工具(如 create_account、deploy_private_erc721_contract、compile_contract 等)。
  • 调用流程
    • 客户端发送一个包含 tool 名称和参数的 MCP 请求,服务器执行对应处理器(Handler)并返回结构化的响应。
    • 所有工具均有明确的输入参数定义,包含网络、私钥、aes_key、地址等信息,部分操作需要私钥与 AES 密钥等敏感信息,需在上下文中妥善管理。
  • 安全与合规性
    • 由于涉及私钥、AES 密钥及签名等敏感数据,实际部署需确保密钥管理与权限控制,避免暴露密钥给不受信任的实体。
  • 常见使用场景
    • 账户管理:创建、导入、生成 AES 密钥、签名/验证、切换网络。
    • 私有交易与代币:私有 ERC20/ERC721 的余额、授权、 mint、转移、代币模板获取等。
    • 合约相关:编译、部署、验证、调用合约函数、解码事件数据等。
    • 私人消息系统:部署私有消息合约、发送/读取私密消息、计数与发送者查询。

如需进一步了解,请参阅仓库中的 README、index.ts 入口与各工具实现的详细注释与逻辑。

服务器信息