🚀 午夜 + 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 社區用心打造。