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 | 访问钱包相关功能 |
先决条件
安装
- 克隆存储库
git clone https://github.com/yourusername/debank-mcp-server.git
cd debank-mcp-server- 设置环境变量
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许可证获得许可-有关详细信息,请参阅许可证文件。
