区块链钱包管理SDK

Fystack SDK MCP Server是一个集成Fystack平台SDK的模型上下文协议服务器,使AI代理能够安全地创建钱包、管理资产、签署交易和执行区块链操作。

  • by fystack
  • TypeScript
  • 本地部署
  • 3 星标
  • 更新于
在 GitHub 查看 fystack/sdk-mcp-server

使用说明

Fystack SDK MCP服务器

A. 模型上下文协议(MCP)服务器 它整合了 Fystack平台SDK,使AI代理能够安全地创建钱包、管理资产、签署交易和执行区块链操作。

特性

钱包管理

  • 创建MPC钱包:使用分布在MPC节点上的密钥共享生成安全钱包
  • 创建标准钱包:为各种目的生成标准(非MPC)钱包
  • 获取钱包资产:检索任何钱包的所有资产和余额
  • 存款地址:获取EVM、Solana和Tron网络的存款地址

事务管理

  • 多链支持:适用于以太坊、Solana、Tron和所有EVM链
  • 交易重新扫描:重新处理区块链交易
  • 安全操作:通过API凭据验证的所有操作

自然语言接口

  • 会话操作用简单的英语描述你想做什么
  • 智能解析:自动从自然语言中提取参数
  • 灵活的命令:支持各种措辞和格式

DeFi集成

  • Uniswap交易:获取报价并跨多个链执行掉期交易
  • 智能订单路由:使用Uniswap的AlphaOuter自动选择最佳路径
  • 多链支持:以太坊、乐观主义、Polygon、Arbitrum和Base上的交易
  • 原生令牌支持:无缝ETH/MATIC/等交易,自动包装

未来功能

  • 高级MPC密钥管理:安全地旋转、恢复或更新密钥共享
  • 气体优化:自动优化交易的天然气费用
  • 钱包恢复:使用MPC密钥共享恢复钱包
  • 自定义令牌支持:管理自定义令牌和NFT

快速设置

先决条件

安装

# Clone and setup
cd sdk-mcp-server
npm install # or bun install

# Build the project
npm run build

配置

服务器是通过MCP配置文件传递的环境变量进行配置的。看 mcp.example.json 对于模板。

所需的环境变量:

  • FYSTACK_API_KEY:您的Fystack API密钥
  • FYSTACK_API_SECRET:您的Fystack API秘密
  • FYSTACK_ENVIRONMENT:环境(local, sandbox,或 production)

可选环境变量:

  • SOLANA_RPC_URL:自定义Solana RPC终结点
  • ETHEREUM_RPC_URL:自定义以太坊RPC端点
  • ETHEREUM_CHAIN_ID:以太坊链ID
  • LOG_LEVEL:日志记录级别(debug, info, warn, error)

MCP配置

将此添加到您的Claude Desktop配置(或其他MCP客户端)中:

{
  "servers": {
    "Fystack MCP Server": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "~/fystack/mpcium-mcp-server/src/index.ts" // Replace with your path to index.ts
      ],
      "env": {
        "FYSTACK_API_KEY": "YOUR_API_KEY_HERE",
        "FYSTACK_API_SECRET": "YOUR_API_SECRET_HERE",
        "FYSTACK_WORKSPACE_ID": "YOUR_WORKSPACE_ID_HERE",
        "FYSTACK_ENVIRONMENT": "sandbox",
        "LOG_LEVEL": "info"
      }
    }
  }
}

与MCP客户端集成

在此处查看所有可能的MCP客户端: MCP客户端

  1. 找到您的MCP配置文件
  2. 添加服务器配置(见上文MCP配置)
  3. 重新启动客户端
  4. 客户端现在可以通过自然语言与Fystack交互!

建筑

┌─────────────────────────────┐
│   Claude / AI Agent         │
│   (MCP Client)              │
└──────────────┬──────────────┘
               │ MCP Protocol (stdio)
┌──────────────▼──────────────┐
│  Fystack MCP Server         │
├─────────────────────────────┤
│ • Tool Definitions          │
│ • Tool Executors            │
│ • Request Handlers          │
└──────────────┬──────────────┘
               │ REST API
┌──────────────▼──────────────┐
│   Fystack Platform SDK      │
└──────────────┬──────────────┘
               │
┌──────────────▼──────────────┐
│  Fystack Backend Services   │
│  • Wallet Management        │
│  • Transaction Processing   │
│  • Asset Management         │
└─────────────────────────────┘

可用工具

自然语言工具

wallet_operations

通过自然语言处理所有操作的主要工具。

示例:

{
  "tool": "wallet_operations",
  "message": "Create an MPC wallet named 'My Secure Wallet'"
}

{
  "tool": "wallet_operations",
  "message": "Get assets for wallet",
  "wallet_id": "550e8400-e29b-41d4-a716-446655440000"
}

{
  "tool": "wallet_operations",
  "message": "Get deposit address for wallet on ethereum",
  "wallet_id": "550e8400-e29b-41d4-a716-446655440000"
}

直接工具

create_mpc_wallet

创建新的MPC钱包。

{
  "tool": "create_mpc_wallet",
  "name": "My MPC Wallet"
}

create_standard_wallet

创建标准钱包。

{
  "tool": "create_standard_wallet",
  "name": "My Standard Wallet",
  "wallet_purpose": "user"
}

钱包用途: user, gastank, payment, custody

get_wallet_assets

获取钱包的所有资产。

{
  "tool": "get_wallet_assets",
  "wallet_id": "550e8400-e29b-41d4-a716-446655440000"
}

get_deposit_address

获取特定区块链的存款地址。

{
  "tool": "get_deposit_address",
  "wallet_id": "550e8400-e29b-41d4-a716-446655440000",
  "address_type": "evm"
}

地址类型: evm, solana, tron

rescan_transaction

重新扫描区块链交易。

{
  "tool": "rescan_transaction",
  "tx_hash": "0x123...",
  "network_id": "ethereum"
}

DeFi 工具

uniswap_get_price

通过智能订单路由获取Uniswap掉期的报价。

{
  "tool": "uniswap_get_price",
  "wallet_id": "550e8400-e29b-41d4-a716-446655440000",
  "chain_id": 1,
  "token_in": "NATIVE",
  "token_out": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
  "amount_in": "1.0",
  "trade_type": "exactIn"
}

支持的链: 1(以太坊),10(乐观主义),137(多边形),42161(Arbitrum),8453(基础)

uniswap_execute_swap

使用MPC钱包在Uniswap上执行代币交换。

{
  "tool": "uniswap_execute_swap",
  "wallet_id": "550e8400-e29b-41d4-a716-446655440000",
  "chain_id": 1,
  "token_in": "NATIVE",
  "token_out": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
  "amount_in": "0.1",
  "slippage_tolerance": 0.5,
  "deadline_minutes": 20
}

uniswap_suggest_swap

根据流动性、费用和路线优化获得智能掉期建议。

{
  "tool": "uniswap_suggest_swap",
  "wallet_id": "550e8400-e29b-41d4-a716-446655440000",
  "chain_id": 1,
  "token_in": "NATIVE",
  "amount": "1.0"
}

返回排名建议,包括:

  • 每个令牌的输出金额
  • 价格影响分析
  • 天然气成本估算
  • 费用比较
  • 路线复杂性
  • 人工智能生成推理

使用示例

示例1:创建钱包并获取资产

// 1. Create MPC wallet
const wallet = await client.call('create_mpc_wallet', {
  name: "Trading Wallet"
});
// Response: { wallet_id: "...", status: "success" }

// 2. Get wallet assets
const assets = await client.call('get_wallet_assets', {
  wallet_id: wallet.wallet_id
});
// Response: { wallet_id: "...", assets: [...], count: 5 }

示例2:获取存款地址

// Get Ethereum deposit address
const depositInfo = await client.call('get_deposit_address', {
  wallet_id: wallet.wallet_id,
  address_type: "evm"
});
// Response: { address: "0x...", qr_code: "...", ... }

示例3:自然语言操作

// Natural language: Create wallet
await client.call('wallet_operations', {
  message: "Create an MPC wallet named 'My Investment Wallet'"
});

// Natural language: Get assets
await client.call('wallet_operations', {
  message: "Show me the assets in my wallet",
  wallet_id: "550e8400-e29b-41d4-a716-446655440000"
});

// Natural language: Get deposit address
await client.call('wallet_operations', {
  message: "I need the deposit address for Solana",
  wallet_id: "550e8400-e29b-41d4-a716-446655440000"
});

内置❤️ Fystack社区