🚀 午夜 + Next.js 开发 MCP 服务器
这是一个模型上下文协议(MCP)服务器,它将 Midnight Network 区块链开发工具与 Next.js 开发工具相结合,用于构建去中心化应用程序。
兼容所有支持 MCP 的 AI 助手:Claude、GitHub Copilot、Cursor、Windsurf、Codeium、Continue.dev、Zed、Sourcegraph Cody 等。
🚀 快速开始
本 MCP 服务器最简单的使用方式是通过 npx,无需安装:
{
"mcpServers": {
"midnight-nextjs-mcp": {
"type": "stdio",
"command": "npx",
"args": ["-y", "midnight-nextjs-mcp@latest"]
}
}
}
✨ 主要特性
Midnight Network 工具
合约开发
midnight_init - 初始化开发上下文
midnight_compile_contract - 将 Compact 合约编译为 TypeScript/ZK 工件
midnight_analyze_contract - 对合约进行静态分析
midnight_deploy_contract - 将合约部署到网络
midnight_call_contract - 在已部署的合约上执行电路调用
midnight_scaffold_project - 根据模板创建新的 dApp 项目
钱包与代币
midnight_create_wallet - 使用助记词生成新钱包
midnight_wallet_state - 获取详细的钱包状态和余额
midnight_transfer_tokens - 转移 tDUST 代币
midnight_get_balance - 查询代币余额
网络与查询
midnight_network_status - 检查网络健康状况(索引器、证明服务器、节点)
midnight_get_block - 查询区块链区块
midnight_get_transaction - 查询交易详情
midnight_check_versions - 检查 Midnight 包的更新
文档
midnight_search_docs - 搜索 Midnight 文档
midnight-fetch-docs - 获取特定的文档页面
midnight-sync-docs - 从官方仓库同步文档
midnight-docs-status - 检查文档同步状态
midnight-list-docs - 列出可用的文档源
Next.js 开发工具
init - 初始化 Next.js 开发上下文
nextjs_docs - 搜索 Next.js 文档
nextjs_index - 发现正在运行的开发服务器
nextjs_call - 执行运行时诊断工具
browser_eval - 使用 Playwright 进行浏览器自动化
upgrade_nextjs_16 - Next.js 16 升级指南
enable_cache_components - 缓存组件迁移
📦 安装指南
git clone https://github.com/your-username/midnight-nextjs-mcp.git
cd midnight-nextjs-mcp
pnpm install
pnpm build
💻 使用示例
基础用法
本 MCP 服务器最简单的使用方式是通过 npx,无需安装:
{
"mcpServers": {
"midnight-nextjs-mcp": {
"type": "stdio",
"command": "npx",
"args": ["-y", "midnight-nextjs-mcp@latest"]
}
}
}
高级用法
不同平台的配置示例
- 通用 MCP 配置:大多数 MCP 客户端使用此标准 JSON 格式。添加到客户端的 MCP 配置文件中:
{
"mcpServers": {
"midnight-nextjs-mcp": {
"type": "stdio",
"command": "npx",
"args": ["-y", "midnight-nextjs-mcp@latest"]
}
}
}
- VS Code(GitHub Copilot / Claude 扩展):添加到 VS Code 的
settings.json 或工作区的 .vscode/mcp.json 中:
{
"mcp.servers": {
"midnight-nextjs-mcp": {
"type": "stdio",
"command": "npx",
"args": ["-y", "midnight-nextjs-mcp@latest"]
}
}
}
或者专门针对 Claude 扩展:
{
"claude.mcpServers": {
"midnight-nextjs-mcp": {
"type": "stdio",
"command": "npx",
"args": ["-y", "midnight-nextjs-mcp@latest"]
}
}
}
- Claude 桌面版(macOS):编辑
~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"midnight-nextjs-mcp": {
"type": "stdio",
"command": "npx",
"args": ["-y", "midnight-nextjs-mcp@latest"]
}
}
}
- Claude 桌面版(Windows):编辑
%APPDATA%\Claude\claude_desktop_config.json:
{
"mcpServers": {
"midnight-nextjs-mcp": {
"type": "stdio",
"command": "npx",
"args": ["-y", "midnight-nextjs-mcp@latest"]
}
}
}
- Claude 桌面版(Linux):编辑
~/.config/Claude/claude_desktop_config.json:
{
"mcpServers": {
"midnight-nextjs-mcp": {
"type": "stdio",
"command": "npx",
"args": ["-y", "midnight-nextjs-mcp@latest"]
}
}
}
- Cursor IDE:添加到 Cursor 的 MCP 配置(项目中的
.cursor/mcp.json 或全局设置):
{
"mcpServers": {
"midnight-nextjs-mcp": {
"type": "stdio",
"command": "npx",
"args": ["-y", "midnight-nextjs-mcp@latest"]
}
}
}
- Windsurf / Codeium:添加到 Windsurf 的 MCP 设置:
{
"mcpServers": {
"midnight-nextjs-mcp": {
"type": "stdio",
"command": "npx",
"args": ["-y", "midnight-nextjs-mcp@latest"]
}
}
}
- Continue.dev(VS Code / JetBrains):添加到
~/.continue/config.json 或项目的 .continue/config.json:
{
"experimental": {
"modelContextProtocolServers": [
{
"name": "midnight-nextjs-mcp",
"transport": {
"type": "stdio",
"command": "npx",
"args": ["-y", "midnight-nextjs-mcp@latest"]
}
}
]
}
}
- Zed 编辑器:添加到 Zed 设置(Linux 上的
~/.config/zed/settings.json,macOS 上的 ~/Library/Application Support/Zed/settings.json):
{
"context_servers": {
"midnight-nextjs-mcp": {
"command": {
"path": "npx",
"args": ["-y", "midnight-nextjs-mcp@latest"]
}
}
}
}
- Sourcegraph Cody:添加到 Cody 的 MCP 配置:
{
"cody.experimental.mcp.servers": {
"midnight-nextjs-mcp": {
"command": "npx",
"args": ["-y", "midnight-nextjs-mcp@latest"]
}
}
}
- JetBrains IDE(IntelliJ、WebStorm 等):对于支持 MCP 的 JetBrains IDE 中的 AI 助手,添加到 MCP 配置:
{
"mcpServers": {
"midnight-nextjs-mcp": {
"type": "stdio",
"command": "npx",
"args": ["-y", "midnight-nextjs-mcp@latest"]
}
}
}
全局安装使用
如果你更喜欢全局安装而不是使用 npx:
npm install -g midnight-nextjs-mcp
然后进行配置:
{
"mcpServers": {
"midnight-nextjs-mcp": {
"type": "stdio",
"command": "midnight-nextjs-mcp"
}
}
}
本地开发/从源代码运行
{
"mcpServers": {
"midnight-nextjs-mcp": {
"type": "stdio",
"command": "node",
"args": ["/path/to/midnight-nextjs-mcp/dist/index.js"]
}
}
}
Docker 运行
在 Docker 容器中运行 MCP 服务器:
{
"mcpServers": {
"midnight-nextjs-mcp": {
"type": "stdio",
"command": "docker",
"args": ["run", "-i", "--rm", "fractionestate/midnight-nextjs-mcp:latest"]
}
}
}
CLI 标志
npx midnight-nextjs-mcp@latest
npx midnight-nextjs-mcp@latest --no-midnight
npx midnight-nextjs-mcp@latest --no-nextjs
npx midnight-nextjs-mcp@latest --check-versions
npx midnight-nextjs-mcp@latest --poll-interval=12
🔧 技术细节
项目结构
midnight-nextjs-mcp/
├── src/
│ ├── index.ts # 服务器入口点
│ ├── tools/
│ │ ├── index.ts # 统一工具注册表
│ │ ├── midnight/ # Midnight Network 工具
│ │ │ ├── init.ts
│ │ │ ├── network-status.ts
│ │ │ ├── get-balance.ts
│ │ │ ├── get-block.ts
│ │ │ ├── get-transaction.ts
│ │ │ ├── search-docs.ts
│ │ │ ├── scaffold-project.ts
│ │ │ ├── compile-contract.ts
│ │ │ └── analyze-contract.ts
│ │ └── nextjs/ # Next.js 开发工具
│ │ ├── init.ts
│ │ ├── nextjs-docs.ts
│ │ ├── nextjs_index.ts
│ │ ├── nextjs_call.ts
│ │ ├── browser-eval.ts
│ │ ├── upgrade-nextjs-16.ts
│ │ └── enable-cache-components.ts
│ ├── providers/ # Midnight API 提供程序
│ │ ├── index.ts
│ │ ├── indexer.ts # GraphQL 索引器客户端
│ │ ├── proof-server.ts # 证明生成客户端
│ │ └── node.ts # 节点 RPC 客户端
│ ├── resources/ # MCP 资源
│ │ ├── (midnight-compact)/ # Compact 语言文档
│ │ ├── (midnight-sdk)/ # SDK 文档
│ │ ├── (cache-components)/ # Next.js 缓存文档
│ │ └── ...
│ ├── prompts/ # MCP 提示
│ │ ├── create-midnight-contract.ts
│ │ ├── upgrade-nextjs-16.ts
│ │ └── enable-cache-components.ts
│ └── types/ # TypeScript 定义
│ ├── midnight.ts
│ └── mcp.ts
├── package.json
└── README.md
配置
环境变量
你可以在配置中向 MCP 服务器传递环境变量:
{
"mcpServers": {
"midnight-nextjs-mcp": {
"type": "stdio",
"command": "npx",
"args": ["-y", "midnight-nextjs-mcp@latest"],
"env": {
"MIDNIGHT_NETWORK": "testnet",
"MIDNIGHT_INDEXER_URL": "https://indexer.testnet.midnight.network/graphql"
}
}
}
}
可用的环境变量
MIDNIGHT_NETWORK=testnet
MIDNIGHT_INDEXER_URL=https://indexer.testnet.midnight.network/graphql
MIDNIGHT_PROOF_SERVER_URL=https://proof-server.testnet.midnight.network
MIDNIGHT_NODE_URL=https://rpc.testnet.midnight.network
网络配置
| 网络 |
索引器 |
证明服务器 |
| 测试网 |
indexer.testnet.midnight.network |
proof-server.testnet.midnight.network |
| 开发网 |
localhost:8080 |
localhost:6300 |
📚 详细文档
特定客户端的 MCP 文档
📦 资源
服务器提供了以下文档资源:
Midnight 资源
midnight://compact/overview - Compact 语言介绍
midnight://compact/reference - 完整的语法参考
midnight://sdk/overview - Midnight.js SDK 指南
Next.js 资源
nextjs-docs://llms-index - 文档索引
cache-components://overview - 缓存组件指南
🧪 开发
pnpm dev
pnpm typecheck
pnpm test
pnpm build
🤝 贡献
欢迎贡献代码!请先阅读贡献指南。
📄 许可证
本项目采用 MIT 许可证,详情请见 LICENSE。
为 Midnight 和 Next.js 社区用心打造。