区块链交易服务器

一个为Algorand网络提供区块链交易功能和通用工具的服务,包括账户生成、资产管理和安全交易等功能。

  • by Jake-loranger
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 jake-loranger/algorand-mcp-server

使用说明

集成Algorand的MCP服务器

该服务器为Algorand网络提供区块链交易功能以及通用实用工具。

概述

此MCP服务器为AI助手提供以下工具:

通用工具

  • 回声:回显任何消息(有助于测试连接性)
  • 计算:执行基本的数学计算
  • get_current时间:获取任何时区的当前时间

Algorand区块链工具

  • generate_algrand_account:使用地址和助记符生成新的Algorand帐户
  • get_count_info:获取账户信息,包括余额和资产
  • send_付款:发送Algo支付交易
  • 创建资产:创建新的Algorand标准资产(ASA)
  • opt_in-to_asset:选择加入Algorand标准资产
  • 转让_资产:转移Algorand标准资产
  • get_asset_info:获取有关资产的信息
  • get_transaction:按交易ID获取交易详细信息

安全功能

助记词保护

  • 加密:内置AES-256-GCM加密,用于助记符短语
  • 安全存储:加密/解密钱包凭据的方法
  • 内存安全:敏感数据得到安全处理,不会被记录

网络配置

  • 测试网默认值:安全默认为Algorand测试网
  • 基于环境:通过环境变量进行网络配置
  • 生产就绪:支持用于生产的主网

先决条件

  • Node.js 18+
  • npm或纱线
  • TypeScript

安装

  1. 克隆或下载此项目
  2. 安装依赖项:
    npm install
    
  3. 复制环境配置:
    cp .env.example .env
    
  4. 在中配置您的Algorand网络 .env (默认为测试网)

发展

建设项目

npm run build

运行服务器

npm start

发展模式

对于自动重建的开发:

npm run dev

配置

对于VSCode

{
  "mcpServers": {
    "algorand-mcp-server": {
      "command": "node",
      "args": ["path/to/your/project/dist/index.js"]
    }
  }
}

用于VS代码调试

该项目包括 .vscode/mcp.json 用于在VS Code中调试的配置文件。您可以将其与VS Code的MCP扩展一起使用。

可用工具

回声

  • 描述:回显提供的消息
  • 参数:
    • message (string,必填):要回显的消息

计算

  • 描述:执行基本的数学计算
  • 参数:
    • expression (字符串,必填):要计算的数学表达式

get_current时间

  • 描述:获取指定时区的当前时间
  • 参数:
    • timezone (字符串,可选):时区标识符(默认为UTC)

项目结构

├── src/
│   └── index.ts          # Main server implementation
├── dist/                 # Compiled JavaScript output
├── .vscode/
│   └── mcp.json         # VS Code MCP configuration
├── .github/
│   └── copilot-instructions.md  # GitHub Copilot instructions
├── package.json          # Node.js package configuration
├── tsconfig.json         # TypeScript configuration
└── README.md            # This file

开发指南

添加新工具

  1. 在中定义工具模式 TOOLS 数组
  2. 创建用于输入验证的Zod模式
  3. 在中添加一个案例 CallToolRequestSchema 处理器
  4. 通过适当的错误处理来实现工具逻辑

示例工具实现

const MyToolArgsSchema = z.object({
  input: z.string(),
});

// Add to TOOLS array
{
  name: 'my_tool',
  description: 'Description of what the tool does',
  inputSchema: {
    type: 'object',
    properties: {
      input: {
        type: 'string',
        description: 'Input parameter description',
      },
    },
    required: ['input'],
  },
}

// Add to request handler
case 'my_tool': {
  const parsed = MyToolArgsSchema.parse(args);
  // Implement tool logic here
  return {
    content: [
      {
        type: 'text',
        text: `Result: ${parsed.input}`,
      },
    ],
  };
}

安全考虑

  • 使用Zod模式执行输入验证
  • 这 calculate 工具用途 eval() 仅用于演示目的-在生产中,使用更安全的数学评估库
  • 在处理之前,始终对输入进行验证和消毒

贡献

  1. 分叉存储库
  2. 创建要素分支
  3. 通过适当的测试实施您的更改
  4. 提交拉取请求

许可证

ISC许可证-详见package.json

资源