Repository avatar
AI Tools
v0.3.1
active

midnight-nextjs-mcp

io.github.FractionEstate/midnight-nextjs-mcp

Unified MCP server for Midnight blockchain development and Next.js dApps.

Documentation

Midnight + Next.js Development MCP Server

A Model Context Protocol (MCP) server combining Midnight Network blockchain development tools with Next.js DevTools for building decentralized applications.

Compatible with all MCP-enabled AI assistants: Claude, GitHub Copilot, Cursor, Windsurf, Codeium, Continue.dev, Zed, Sourcegraph Cody, and more.

๐Ÿค– Supported AI Assistants

This MCP server works with any AI assistant that supports the Model Context Protocol:

AI AssistantPlatformConfiguration
ClaudeDesktop App, VS CodeNative MCP support
GitHub CopilotVS Code, JetBrainsMCP extension
CursorIDEBuilt-in MCP support
WindsurfIDEBuilt-in MCP support
CodeiumVS Code, JetBrainsMCP integration
Continue.devVS Code, JetBrainsMCP config file
ZedIDEMCP support
Sourcegraph CodyVS CodeMCP extension

๐ŸŒ™ Features

Midnight Network Tools

Contract Development

  • midnight_init - Initialize development context
  • midnight_compile_contract - Compile Compact contracts to TypeScript/ZK artifacts
  • midnight_analyze_contract - Static analysis for contracts
  • midnight_deploy_contract - Deploy contracts to the network
  • midnight_call_contract - Execute circuit calls on deployed contracts
  • midnight_scaffold_project - Create new dApp projects from templates

Wallet & Tokens

  • midnight_create_wallet - Generate new wallet with seed phrase
  • midnight_wallet_state - Get detailed wallet state and balances
  • midnight_transfer_tokens - Transfer tDUST tokens
  • midnight_get_balance - Query token balances

Network & Queries

  • midnight_network_status - Check network health (Indexer, Proof Server, Node)
  • midnight_get_block - Query blockchain blocks
  • midnight_get_transaction - Query transaction details
  • midnight_check_versions - Check for Midnight package updates

Documentation

  • midnight_search_docs - Search Midnight documentation
  • midnight-fetch-docs - Fetch specific documentation pages
  • midnight-sync-docs - Sync documentation from official repo
  • midnight-docs-status - Check documentation sync status
  • midnight-list-docs - List available documentation sources

Next.js DevTools

  • init - Initialize Next.js development context
  • nextjs_docs - Search Next.js documentation
  • nextjs_index - Discover running dev servers
  • nextjs_call - Execute runtime diagnostic tools
  • browser_eval - Browser automation with Playwright
  • upgrade_nextjs_16 - Next.js 16 upgrade guide
  • enable_cache_components - Cache Components migration

๐Ÿ“ฆ Installation

# Clone the repository
git clone https://github.com/your-username/midnight-nextjs-mcp.git
cd midnight-nextjs-mcp

# Install dependencies
pnpm install

# Build
pnpm build

๐Ÿš€ Usage

Quick Start with npx

The easiest way to use this MCP server is via npx โ€” no installation required:

{
  "mcpServers": {
    "midnight-nextjs-mcp": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "midnight-nextjs-mcp@latest"]
    }
  }
}

Configuration Examples

The MCP configuration format is standardized across most AI assistants. Below are platform-specific examples:


Universal MCP Configuration

Most MCP clients use this standard JSON format. Add to your client's MCP configuration file:

{
  "mcpServers": {
    "midnight-nextjs-mcp": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "midnight-nextjs-mcp@latest"]
    }
  }
}

VS Code (GitHub Copilot / Claude Extension)

Add to your VS Code settings.json or workspace .vscode/mcp.json:

{
  "mcp.servers": {
    "midnight-nextjs-mcp": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "midnight-nextjs-mcp@latest"]
    }
  }
}

Or for Claude extension specifically:

{
  "claude.mcpServers": {
    "midnight-nextjs-mcp": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "midnight-nextjs-mcp@latest"]
    }
  }
}

Claude Desktop (macOS)

Edit ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "midnight-nextjs-mcp": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "midnight-nextjs-mcp@latest"]
    }
  }
}

Claude Desktop (Windows)

Edit %APPDATA%\Claude\claude_desktop_config.json:

{
  "mcpServers": {
    "midnight-nextjs-mcp": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "midnight-nextjs-mcp@latest"]
    }
  }
}

Claude Desktop (Linux)

Edit ~/.config/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "midnight-nextjs-mcp": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "midnight-nextjs-mcp@latest"]
    }
  }
}

Cursor IDE

Add to your Cursor MCP configuration (.cursor/mcp.json in your project or global settings):

{
  "mcpServers": {
    "midnight-nextjs-mcp": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "midnight-nextjs-mcp@latest"]
    }
  }
}

Windsurf / Codeium

Add to your Windsurf MCP settings:

{
  "mcpServers": {
    "midnight-nextjs-mcp": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "midnight-nextjs-mcp@latest"]
    }
  }
}

Continue.dev (VS Code / JetBrains)

Add to ~/.continue/config.json or your project's .continue/config.json:

{
  "experimental": {
    "modelContextProtocolServers": [
      {
        "name": "midnight-nextjs-mcp",
        "transport": {
          "type": "stdio",
          "command": "npx",
          "args": ["-y", "midnight-nextjs-mcp@latest"]
        }
      }
    ]
  }
}

Zed Editor

Add to your Zed settings (~/.config/zed/settings.json on Linux, ~/Library/Application Support/Zed/settings.json on macOS):

{
  "context_servers": {
    "midnight-nextjs-mcp": {
      "command": {
        "path": "npx",
        "args": ["-y", "midnight-nextjs-mcp@latest"]
      }
    }
  }
}

Sourcegraph Cody

Add to your Cody MCP configuration:

{
  "cody.experimental.mcp.servers": {
    "midnight-nextjs-mcp": {
      "command": "npx",
      "args": ["-y", "midnight-nextjs-mcp@latest"]
    }
  }
}

JetBrains IDEs (IntelliJ, WebStorm, etc.)

For AI assistants in JetBrains IDEs that support MCP, add to your MCP configuration:

{
  "mcpServers": {
    "midnight-nextjs-mcp": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "midnight-nextjs-mcp@latest"]
    }
  }
}

Using Global Installation

If you prefer a global install instead of npx:

npm install -g midnight-nextjs-mcp

Then configure:

{
  "mcpServers": {
    "midnight-nextjs-mcp": {
      "type": "stdio",
      "command": "midnight-nextjs-mcp"
    }
  }
}

Local Development / From Source

{
  "mcpServers": {
    "midnight-nextjs-mcp": {
      "type": "stdio",
      "command": "node",
      "args": ["/path/to/midnight-nextjs-mcp/dist/index.js"]
    }
  }
}

Docker

Run the MCP server in a Docker container:

{
  "mcpServers": {
    "midnight-nextjs-mcp": {
      "type": "stdio",
      "command": "docker",
      "args": ["run", "-i", "--rm", "fractionestate/midnight-nextjs-mcp:latest"]
    }
  }
}

CLI Flags

# Enable both tool categories (default)
npx midnight-nextjs-mcp@latest

# Disable Midnight tools (Next.js only)
npx midnight-nextjs-mcp@latest --no-midnight

# Disable Next.js tools (Midnight only)
npx midnight-nextjs-mcp@latest --no-nextjs

# Check package versions on startup
npx midnight-nextjs-mcp@latest --check-versions

# Set version polling interval (default 24 hours)
npx midnight-nextjs-mcp@latest --poll-interval=12

๐Ÿ—๏ธ Project Structure

midnight-nextjs-mcp/
โ”œโ”€โ”€ src/
โ”‚   โ”œโ”€โ”€ index.ts                    # Server entry point
โ”‚   โ”œโ”€โ”€ tools/
โ”‚   โ”‚   โ”œโ”€โ”€ index.ts                # Unified tool registry
โ”‚   โ”‚   โ”œโ”€โ”€ midnight/               # Midnight Network tools
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ 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 DevTools
โ”‚   โ”‚       โ”œโ”€โ”€ 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 providers
โ”‚   โ”‚   โ”œโ”€โ”€ index.ts
โ”‚   โ”‚   โ”œโ”€โ”€ indexer.ts              # GraphQL indexer client
โ”‚   โ”‚   โ”œโ”€โ”€ proof-server.ts         # Proof generation client
โ”‚   โ”‚   โ””โ”€โ”€ node.ts                 # Node RPC client
โ”‚   โ”œโ”€โ”€ resources/                  # MCP resources
โ”‚   โ”‚   โ”œโ”€โ”€ (midnight-compact)/     # Compact language docs
โ”‚   โ”‚   โ”œโ”€โ”€ (midnight-sdk)/         # SDK documentation
โ”‚   โ”‚   โ”œโ”€โ”€ (cache-components)/     # Next.js cache docs
โ”‚   โ”‚   โ””โ”€โ”€ ...
โ”‚   โ”œโ”€โ”€ prompts/                    # MCP prompts
โ”‚   โ”‚   โ”œโ”€โ”€ create-midnight-contract.ts
โ”‚   โ”‚   โ”œโ”€โ”€ upgrade-nextjs-16.ts
โ”‚   โ”‚   โ””โ”€โ”€ enable-cache-components.ts
โ”‚   โ””โ”€โ”€ types/                      # TypeScript definitions
โ”‚       โ”œโ”€โ”€ midnight.ts
โ”‚       โ””โ”€โ”€ mcp.ts
โ”œโ”€โ”€ package.json
โ””โ”€โ”€ README.md

๐Ÿ”ง Configuration

Environment Variables

You can pass environment variables to the MCP server in your configuration:

{
  "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"
      }
    }
  }
}

Available Environment Variables

# Midnight Network (optional, defaults to testnet)
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

Network Configurations

NetworkIndexerProof Server
Testnetindexer.testnet.midnight.networkproof-server.testnet.midnight.network
Devnetlocalhost:8080localhost:6300

๐Ÿ“š Resources

The server exposes documentation resources:

Midnight Resources

  • midnight://compact/overview - Compact language introduction
  • midnight://compact/reference - Complete syntax reference
  • midnight://sdk/overview - Midnight.js SDK guide

Next.js Resources

  • nextjs-docs://llms-index - Documentation index
  • cache-components://overview - Cache Components guide

๐Ÿงช Development

# Watch mode
pnpm dev

# Type check
pnpm typecheck

# Run tests
pnpm test

# Build
pnpm build

๐Ÿ“– Documentation

Client-Specific MCP Documentation

๐Ÿค Contributing

Contributions welcome! Please read the contributing guidelines first.

๐Ÿ“„ License

MIT License - see LICENSE for details.


Built with โค๏ธ for the Midnight and Next.js communities.