
MCP Blockchain Server
一个安全系统,使人工智能助手能够与区块链数据交互并准备交易,同时确保用户对他们的私钥和交易签名保持独有的控制权。
README
MCP区块链服务器 & DApp
一个安全的系统,使AI助手能够与区块链智能合约交互,同时确保用户保持对其私钥和交易签名的完全控制。
概述
本项目旨在解决AI与区块链集成中的一个关键挑战:允许AI助手读取区块链数据并准备交易,同时确保用户对交易签名和私钥保持独家控制权。
该系统包括:
- MCP服务器: 一个模型上下文协议服务器,将区块链操作公开为可供AI助手使用的工具
- Web DApp: 一个React应用程序,提供用于钱包连接和交易签名的用户界面
- 数据库: PostgreSQL数据库,用于存储用户、API密钥和交易记录
- 缓存: Redis,用于缓存频繁访问的数据
功能
MCP服务器功能
- 区块链数据访问: 读取余额、合约状态和其他链上数据
- 交易准备: 创建未签名的交易以供用户批准
- 多链支持: 适用于以太坊、Polygon和其他EVM兼容链
- 智能合约交互: 从受支持网络上的已验证智能合约读取数据
- 安全至上设计: 私钥永远不会离开用户的钱包
Web DApp 功能
- 钱包集成: 与MetaMask和其他Web3钱包连接
- 交易审查: 清晰的用户界面,用于在签名之前审查交易详情
- 交易签名: 使用连接的钱包签署交易
- 交易跟踪: 监控已提交交易的状态
- 移动设备兼容性: 响应式设计,适用于所有设备
安全原则
- 私钥隔离: 密钥永远不会离开用户的钱包
- 交易验证: 清晰的用户界面,用于审查交易详情
- API身份验证: 安全的API密钥管理
- 速率限制: 防止滥用
- 输入验证: 清理所有输入
- 审计日志: 跟踪所有操作
- 仅HTTPS: 安全通信
- 内容安全策略: 防止XSS
交易流程
- AI助手通过MCP服务器请求交易
- MCP服务器准备带有UUID的未签名交易
- MCP服务器将交易URL返回给AI助手
- AI助手将URL提供给用户
- 用户在浏览器中打开URL
- 用户连接钱包并审查交易详情
- 用户批准并使用其钱包签署交易
- Web DApp将已签名交易提交到区块链
- 交易状态更新并被跟踪
快速开始
前提条件
- Node.js (v18 或更高版本)
- npm 或 yarn
- PostgreSQL
- Redis (可选,用于缓存)
- Infura API 密钥 (用于区块链访问)
- Etherscan API 密钥 (用于合约 ABI)
安装
- 克隆存储库:
git clone https://github.com/zhangzhongnan928/mcp-blockchain-server.git
cd mcp-blockchain-server
- 安装依赖:
npm install
# 或
yarn install
- 设置环境变量:
在根目录中创建一个
.env
文件 (或从.env.example
复制):
cp .env.example .env
# 使用您的配置编辑 .env
- 设置数据库:
# 有关详细说明,请参阅数据库设置指南
# docs/database-setup.md
# 创建 PostgreSQL 数据库
createdb mcp_blockchain
# 运行数据库迁移
npm run db:migrate
# 或
yarn db:migrate
有关安装和配置 PostgreSQL 的详细说明,请参阅 数据库设置指南。
- 启动服务器:
npm run dev
# 或
yarn dev
使用 Docker Compose
为了使用 Docker 快速启动:
# 创建包含所需环境变量的 .env 文件
cp .env.example .env
# 使用您的配置编辑 .env
# 启动服务
docker-compose up -d
这将启动:
- PostgreSQL 数据库
- Redis 缓存
- MCP 服务器
- Web DApp
开发
服务器结构
src/mcp
: MCP 服务器实现src/services
: 核心业务逻辑服务src/utils
: 实用函数src/index.ts
: 主入口点
Web DApp 结构
web/src/components
: React 组件web/src/hooks
: 自定义 React hooksweb/src/services
: API 服务web/src/pages
: 页面组件
使用 MCP 服务器
MCP 服务器公开了几个可供 AI 助手使用的工具:
get-chains
: 获取受支持的区块链网络列表get-balance
: 获取地址的帐户余额read-contract
: 从智能合约读取数据prepare-transaction
: 准备未签名的交易以供用户批准get-transaction-status
: 获取交易的当前状态
工具使用示例
// 使用 get-balance 工具的示例
const result = await callTool("get-balance", {
chainId: "1",
address: "0x742d35Cc6634C0532925a3b844Bc454e4438f44e"
});
故障排除
如果您遇到依赖项问题:
# MCP SDK 问题 - 直接从 GitHub 安装
npm uninstall @modelcontextprotocol/sdk
npm install modelcontextprotocol/typescript-sdk
对于数据库连接问题,请参阅 数据库设置指南。
许可证
本项目根据 MIT 许可证获得许可 - 有关详细信息,请参阅 LICENSE 文件。
推荐服务器
Crypto Price & Market Analysis MCP Server
一个模型上下文协议 (MCP) 服务器,它使用 CoinCap API 提供全面的加密货币分析。该服务器通过一个易于使用的界面提供实时价格数据、市场分析和历史趋势。 (Alternative, slightly more formal and technical translation): 一个模型上下文协议 (MCP) 服务器,利用 CoinCap API 提供全面的加密货币分析服务。该服务器通过用户友好的界面,提供实时价格数据、市场分析以及历史趋势数据。
VirusTotal MCP Server
一个用于查询 VirusTotal API 的 MCP 服务器。该服务器提供扫描 URL、分析文件哈希和检索 IP 地址报告的工具。
mcp-shodan
用于查询 Shodan API 和 Shodan CVEDB 的 MCP 服务器。该服务器提供 IP 查询、设备搜索、DNS 查询、漏洞查询、CPE 查询等工具。

Azure MCP Server
通过 Claude Desktop 实现与 Azure 服务的自然语言交互,支持资源管理、订阅处理和租户选择,并提供安全身份验证。

chromia-mcp
使人工智能能够与 Chromia 钱包交互,以发送 $CHR 交易。
TripleWhale MCP Server
一个模型上下文协议 (MCP) 的实现,允许用户通过 Claude Desktop 使用自然语言查询与 TripleWhale 的电子商务分析平台进行交互。
Adamik MCP Server
通过 Claude Desktop 实现与 60 多个区块链网络的读写交互,为交易管理、账户洞察、质押和代币交互提供标准化的多链 API。

Story Protocol SDK MCP
This server provides MCP (Model Context Protocol) tools for interacting with Story's Python SDK. Features Get license terms Mint and register IP Asset with PIL Terms Mint license tokens Send $IP to a wallet Upload image to ipfs via Pinata [External] Upload ip and nft metadata via Pinata [External]
Open-Ledger-MCP-Server
一个用于 OpenLedger API 的模型上下文协议 (MCP) 服务器实现。该服务器根据 MCP 规范为 AI 模型提供结构化的上下文。
ntropy-mcp MCP Server
启用使用 Ntropy API 丰富银行数据的功能,并提供高效创建账户持有人和丰富交易信息的工具。