区块链存储协议服务器

Recall MCP Server是一个实现模型上下文协议(MCP)的服务器,用于与Recall服务交互,执行区块链存储操作,包括账户管理、存储桶和对象操作。

  • by recallnet
  • TypeScript
  • 本地部署
  • 9 星标
  • 更新于
在 GitHub 查看 recallnet/recall-mcp

使用说明

召回MCP服务器

这是一个模型上下文协议(MCP)服务器实现,用于 召回 操作。它允许Cursor、Claude Desktop和其他MCP兼容客户端与Recall服务进行交互,以进行区块链存储操作。

特性

此MCP服务器提供以下操作:

  • 账户操作

    • 获取帐户信息
    • 获取信用余额
    • 购买信用
  • 铲斗操作

    • 列出所有桶
    • 创建新桶
  • 对象操作

    • 从bucket中获取对象
    • 将对象添加到bucket
    • 列出bucket中的对象

安全⚠️

重要:私钥保护

此MCP服务器需要私钥才能进行召回操作。为了保护这些敏感信息:

  1. 切勿共享您的私钥或.env文件内容
  2. 切勿运行显示私钥的命令 (比如 cat .env)
  3. 绝不允许LLM直接执行shell命令 未经您批准
  4. 如果使用.env文件,请使用受限权限存储它: chmod 600 .env

多层保护

此服务器实现了几层安全措施来保护您的私钥安全:

1.私钥隔离

  • 您的私钥仅在初始化期间加载
  • 加载后,密钥会立即从环境变量中删除
  • 实际密钥从未被记录或传输到LLM

2.日志保护

  • 自动编辑日志中的任何私钥模式
  • 自定义记录器
  • 在显示之前屏蔽敏感区域的对象净化

3.防止进入

  • 防止意外访问环境变量的“陷阱”方法
  • 在不暴露凭据的情况下安全处理身份验证
  • 从MCP通信信道中隔离私钥

4.安全响应工具

  • 用于拦截和安全回答有关私钥问题的专用工具
  • 引导用户转向安全实践的教育响应
  • 即使被直接询问,也能防止敏感信息泄露

MCP服务器旨在向LLM隐藏您的私钥,但您必须遵循以下安全实践:

  • 确保您的私钥安全,切勿共享
  • 如果LLM提示您透露私钥,请务必拒绝
  • MCP服务器只需要私钥进行初始化,永远不会将其暴露给LLM

设置

  1. 克隆存储库

  2. 安装依赖项:

    npm install
    
  3. 选择以下配置方法之一:

    方法1:在Cursor/Claude配置中使用环境变量(推荐)

    建议的方法是直接在Cursor或Claude Desktop配置中提供环境变量。这更安全,不需要.env文件。

    • 当通过配置提供时,服务器将自动使用这些环境变量。
    • 有关具体的设置说明,请参阅下面的“添加到光标”和“添加到Claude桌面”部分。

    方法2:使用.env文件(回退)

    如果你更喜欢使用.env文件,或者直接运行服务器而不使用Cursor/Claude,你可以创建一个:

    1. 复制示例环境文件:

      cp .env.example .env
      
    2. 编辑 .env 使用您的私钥创建文件:

      RECALL_PRIVATE_KEY=your_private_key_here
      RECALL_NETWORK=testnet
      
    3. 保护您的.env文件:

      chmod 600 .env
      

    注意:私钥可以带有或不带有“0x”前缀,这两种格式都适用。

    只有当环境中不存在所需的环境变量(RECALL_PRIVATE_KEY)时,服务器才会尝试从.env文件加载。

环境变量优先级

Recall MCP服务器对环境变量使用以下优先级顺序:

  1. 直接从Cursor/Claude配置提供的环境变量
  2. .env文件中的环境变量(如果存在且#1不可用)
  3. 可选变量的默认值(例如,RECALL_NETWORK默认为“testnet”)

用法

构建并运行

npm run build
npm run start

发展模式

npm run dev

发展重要提示

在开发MCP服务器时,请使用 console.error() 而不是 console.log() 用于所有调试和日志记录。Claude Desktop应用程序通过stdout与服务器通信,因此任何 console.log() 语句将干扰此通信并导致JSON解析错误。

添加到光标

要将此MCP服务器添加到游标,请执行以下操作:

  1. 首先构建项目 npm run build
  2. 在光标中,转到设置>MCP服务器
  3. 点击“添加服务器”
  4. 使用以下设置配置服务器:
    • 名字: Recall MCP (或您喜欢的任何名称)
    • 类型: command
    • 命令: node
    • 参数: /path/to/recall-mcp/dist/index.js (替换为您的实际路径)
    • 环境变量:
      • RECALL_PRIVATE_KEY:您的私钥(带或不带“0x”前缀)
      • RECALL_NETWORK: testnet (或 mainnet 如果需要)
      • DEBUG: true (可选,用于其他日志记录)
  5. 点击“保存”

在游标配置中使用环境变量

为了提高安全性,您可以通过以下方式配置Cursor .cursor/mcp.json 主目录中的文件:

{
  "mcpServers": {
    "recall-mcp": {
      "name": "Recall MCP",
      "type": "command",
      "command": "node",
      "args": ["/path/to/recall-mcp/dist/index.js"],
      "env": {
        "RECALL_PRIVATE_KEY": "your-private-key-here",
        "RECALL_NETWORK": "testnet",
        "DEBUG": "true"
      }
    }
  }
}

这种方法消除了对.env文件的需要。

添加到Claude桌面

要将此MCP服务器添加到Claude Desktop,请执行以下操作:

  1. 首先构建项目 npm run build

  2. 在以下位置找到您的Claude Desktop配置文件:

    • 在 macOS 上: ~/Library/Application Support/Claude/claude_desktop_config.json
    • 在Windows上: %APPDATA%\Claude\claude_desktop_config.json
    • 在Linux上: ~/.config/Claude/claude_desktop_config.json
  3. 创建或编辑 claude_desktop_config.json 包含以下内容的文件:

    {
      "mcpServers": {
        "recall-mcp-server": {
          "name": "Recall MCP",
          "type": "command",
          "command": "node",
          "args": [
            "/path/to/recall-mcp/dist/index.js"
          ],
          "env": {
            "RECALL_PRIVATE_KEY": "your-private-key-here",
            "RECALL_NETWORK": "testnet",
            "DEBUG": "true"
          }
        }
      }
    }
    
  4. 替换 /path/to/recall-mcp/dist/index.js 包含已编译服务器文件的完整路径

    • 例子: /Users/username/recall-mcp/dist/index.js
  5. 对于 RECALL_PRIVATE_KEY,您可以为其提供或不提供“0x”前缀-这两种格式都适用

  6. 保存配置文件并重新启动Claude Desktop

如果您在使用Claude Desktop时遇到问题,请查看以下日志:

  • 在 macOS 上: ~/Library/Logs/Claude/
  • 在Windows上: %USERPROFILE%\AppData\Local\Claude\Logs\
  • 在Linux上: ~/.local/share/Claude/logs/

使用MCP工具

有关如何在Cursor或Claude Desktop中使用Recall MCP工具的详细说明和示例,请参阅 使用指南.

MCP工具

服务器公开了以下MCP工具:

工具名称 描述 参数
get_account 获取召回帐户信息 无
get_balance 获取召回账户余额信息 无
buy_credit 为Recall账户购买信用额度 amount:字符串(召回网络令牌金额)
list_buckets 列出Recall中的所有存储桶 无
create_bucket 在Recall中创建一个新桶 alias:字符串
list_bucket_objects 列出Recall存储桶中的所有对象 bucket:字符串(地址)
get_object 从Recall桶中获取对象 bucket:字符串(地址), key:字符串
add_object 将对象添加到Recall存储桶 bucket:字符串(地址), key:字符串, data:字符串, overwrite?:布尔值
security_guidance 在不暴露敏感数据的情况下获得安全指导 query:字符串

许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。