Monad MCP服务器
此MCP(模型上下文协议)服务器旨在与Monad测试网交互。它为开发人员提供了一套与Monad区块链互动的工具和功能,包括检查MON代币余额、发送交易、部署智能合约和监控区块链事件。
什么是MCP?
模型上下文协议(MCP)是一个标准化的接口,使AI模型能够安全有效地与外部工具、服务和数据源进行交互。该服务器实现MCP,将Monad区块链功能暴露给兼容的AI代理或应用程序。
项目结构
该项目组织如下:
monad-mcp-server/
├── .env.example # Example environment variables file
├── .gitignore # Specifies intentionally untracked files that Git should ignore
├── LICENSE # Project's software license
├── README.md # This file, providing an overview and instructions
├── package-lock.json # Records the exact versions of dependencies
├── package.json # Lists project dependencies and scripts
├── pnpm-lock.yaml # PNPM lockfile for dependency resolution
├── src/ # Source code directory
│ ├── config/ # Configuration files
│ │ └── server.ts # Server setup and Viem client initialization
│ ├── index.ts # Main entry point of the application
│ └── tools/ # MCP tools for interacting with Monad
│ ├── block/ # Tools related to blockchain blocks (e.g., get-latest-block)
│ ├── contract/ # Tools for smart contract interactions (e.g., deploy, watch events)
│ ├── nft/ # Tools for Non-Fungible Tokens (e.g., query-mon-nft)
│ └── wallet/ # Tools for wallet operations (e.g., get balance, send transactions)
└── tsconfig.json # TypeScript compiler configuration关键组件
src/index.ts:这是服务器的主要入口点。它初始化MCP服务器实例并注册所有可用工具(钱包、合约、NFT、区块)。src/config/server.ts:此文件处理核心服务器配置。它建立了McpServer实例及其名称、版本和功能列表。它还初始化Viem用于与Monad测试网交互的公共客户端,并提供创建Viem钱包客户端使用来自环境变量的私钥。服务器使用StdioServerTransport为了沟通。src/tools/:此目录包含各种MCP工具的实现。每个子目录通常关注Monad交互的一个特定方面:
- walletProvider:管理MON代币余额和交易。 - contractProvider:处理智能合约部署和事件监视。 - nftProvider:提供在Monad网络上查询NFT的功能。 - blockProvider:提供检索块信息的工具。
先决条件
在开始之前,请确保已安装以下内容:
- Node.js(版本16或更高版本)
- Node.js包管理器:
npm,yarn,或pnpm(本项目使用pnpm在其示例中) - Claude Desktop(或任何兼容MCP的客户端)与服务器交互。
环境变量(.env)
此项目使用环境变量来管理敏感信息,主要是Monad帐户的私钥。
- 复制示例文件:创建以下内容的副本
.env.example并将其重命名为.env.
cp .env.example .env- 编辑
.env:打开新创建的.env文本编辑器中的文件。 - 集
PRIVATE_KEY:填写PRIVATE_KEY使用Monad帐户的私钥创建变量。此密钥对于发送交易或部署合约等操作是必需的。
PRIVATE_KEY="0xyourprivatekeyhere"重要:确保您的私钥以开头 0x.
- 安全: 永远不要承诺你的
.env将文件保存到Git存储库。 这.gitignore文件已经配置为防止这种情况,但始终要注意保护您的私钥。
入门指南
按照以下步骤设置和运行Monad MCP服务器:
- 克隆存储库:
如果您还没有,请从GitHub克隆该项目:
git clone https://github.com/lispking/monad-mcp-server.git
cd monad-mcp-server- 再进行:
使用 pnpm (或您首选的包管理器)安装中列出的项目依赖项 package.json:
pnpm install- 构建项目:
服务器是用TypeScript编写的,需要编译成JavaScript。运行构建脚本:
pnpm build此命令将使用 tsc (TypeScript编译器)如中所定义 package.json 从编译源文件 src 目录进入 build 目录。
服务器现已构建完毕,可供MCP客户端使用。
服务器功能
如中所定义 src/config/server.ts,服务器公开了以下功能:
get-mon-balance:检索帐户的MON令牌余额。send-mon-transaction:将MON代币从一个帐户发送到另一个帐户。deploy-mon-contract:将智能合约部署到Monad测试网。watch-contract-events:监控和报告特定智能合约发出的事件。query-mon-nft:查询Monad网络上不可替代代币的信息。get-latest-block:获取Monad测试网上最新区块的详细信息。get-block-by-number:按块号检索特定块。
将MCP服务器配置添加到客户端
要将此服务器与MCP兼容的客户端(如Claude Desktop)一起使用,您需要将其配置添加到客户端的设置中。确切的方法可能因客户端而异,但通常涉及指定如何运行服务器。
以下是一个示例配置片段:
{
"mcpServers": {
// ... other server configurations ...
"monad-mcp": {
"command": "node",
"args": [
"/absolute/path/to/your/project/monad-mcp-server/build/index.js"
],
"env": {
"PRIVATE_KEY": ""
}
}
// ... other server configurations ...
}
}配置字段说明:
"monad-mcp":您在客户端中为此服务器配置分配的唯一名称。"command": "node":指定服务器是Node.js应用程序。"args":要传递给的参数数组node命令。
- 第一个参数是服务器编译入口点的路径: /absolute/path/to/your/project/monad-mcp-server/build/index.js. 替换 /absolute/path/to/your/project/ 带有克隆位置的实际绝对路径 monad-mcp-server 存储库。
"env":为服务器进程设置环境变量的对象。
- "PRIVATE_KEY":您可以在此处设置私钥。但是,通常建议使用 .env 文件以提高安全性。如果在此处设置,它可能会覆盖中的值 .env 这取决于客户端的行为和服务器的环境变量加载顺序。
备注:确保路径 "args" 是正确的,并指向 build/index.js 项目目录中的文件。
更多资源
有关所用技术和所涉概念的更多详细信息,请参阅以下官方文件:
- 模型上下文协议(MCP)文档
- Monad文档
- Viem文件 (Viem是本项目中使用的Ethereum/Monad客户端库)
这篇全面的README应该提供对Monad MCP服务器、其设置和使用的扎实理解。


