
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
这个服务器提供 MCP(模型上下文协议)工具,用于与 Story 的 Python SDK 交互。 功能: * 获取许可条款 * 使用 PIL 条款铸造和注册 IP 资产 * 铸造许可代币 * 向钱包发送 $IP * 通过 Pinata [外部] 上传图像到 ipfs * 通过 Pinata [外部] 上传 IP 和 NFT 元数据
Open-Ledger-MCP-Server
一个用于 OpenLedger API 的模型上下文协议 (MCP) 服务器实现。该服务器根据 MCP 规范为 AI 模型提供结构化的上下文。
ntropy-mcp MCP Server
启用使用 Ntropy API 丰富银行数据的功能,并提供高效创建账户持有人和丰富交易信息的工具。