区块链数据查询服务器

一个无状态的模型上下文协议(MCP)服务器,用于通过DeBanK API查询区块链和DeFi数据。

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

使用说明

DeBanK MCP服务器

无状态模型上下文协议(MCP)服务器,用于与DeBanK API交互以检索区块链和DeFi数据。

概述

该项目实现了一个模型上下文协议(MCP)服务器,该服务器提供了各种用于查询区块链数据的工具,包括链、协议、令牌、池和用户资产。与 @modelcontextprotocol/sdk,它利用HTTP可流传输来提供现代、高效的API接口。

服务器被设计为完全无状态的,每个请求都是独立处理的,这使得它在生产环境中具有高度的可扩展性和健壮性。

特性

  • 无状态架构:每个请求都会创建一个新的服务器实例和传输
  • 全面的DeFi数据工具:访问链、协议、令牌、池和用户数据
  • 分页支持:所有返回列表的端点都支持分页
  • 错误处理:强大的错误处理和报告

可用工具

工具名称 描述
get_chain_info 获取有关区块链的信息
get_protocol_info 获取有关DeFi协议的信息
get_token_info 获取有关令牌的信息
get_pool_info 获取特定流动性池的详细信息
get_user_assets 获取用户在不同区块链上的资产信息
get_user_activities 获取有关用户协议头寸、交易历史和余额表的信息
get_user_authorizations 获取有关用户令牌和NFT授权的信息
get_collection_nft_list 获取特定集合中的NFT列表
wallet_tools 访问钱包相关功能

先决条件

安装

  1. 克隆存储库
git clone https://github.com/yourusername/debank-mcp-server.git
cd debank-mcp-server
  1. 设置环境变量
export ACCESS_KEY=your_debank_api_key

运行服务器

使用以下命令启动服务器:

deno run --allow-net --allow-env main.ts

默认情况下,服务器将启动并侦听端口8080。您现在可以将MCP请求发送到 http://localhost:8080/mcp.

MCP HTTP流式实现

此项目使用模型上下文协议SDK中的StreamableHTTPServerTransport来处理MCP请求。每个请求都会创建一个新的服务器实例和传输,使服务完全无状态:

// Create new server instance and transport for each request
const server = createServer();
const transport = new StreamableHTTPServerTransport({
  sessionIdGenerator: () => randomUUID(),
});

// Connect to server
await server.connect(transport);

// Handle request
await transport.handleRequest(req, res, req.body);

这种方法简化了部署和扩展,因为不需要跨多个实例管理会话状态。

项目结构

├── main.ts                # Main server file with MCP endpoint handling
├── deno.json              # Deno configuration
├── deno.lock              # Dependency lock file
├── tool/
│   ├── toolInfo.ts        # Tool definitions
│   └── toolHandler.ts     # Tool handler implementations
└── README.md              # This file

配置

可以配置以下环境变量:

  • ACCESS_KEY -您的DeBanK API访问密钥
  • PORT -(可选)运行服务器的端口(默认值:8080)

贡献

欢迎投稿!请随时提交拉取请求。

许可证

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

致谢