Midnight MCP
ハンズオンマニュアル
Claude Code × Midnight でプライバシーコントラクトを作る
対象: 開発者・ビジネス受講者
所要時間: 約60〜90分
SIPO | Midnight Ambassador
このワークショップで学ぶこと
1
Claude Code に Midnight MCP を接続し、29種類のツールを使う方法
2
自然言語プロンプトからプライバシーコントラクトを生成する方法
3
MCP経由でコンパイル・エラー自動修正する方法
4
Midnight Preprodテストネットにデプロイする方法(オプション)
Part 1: 環境準備
必要ツール チェックリスト
ツール
要件
確認コマンド
Node.js
v22以上
node -v
Claude Code
最新版
claude --version
Compact CLI
v0.5.1
compact --version
Docker Desktop
最新版(デプロイ時のみ)
docker --version
Part 1: インストール手順
Node.js 22
brew install node@22
node -v
Compact CLI
curl --proto '=https' --tlsv1.2 -LsSf \
https://github.com/midnightntwrk/
compact/releases/latest/download/
compact-installer.sh | sh
compact --version
Docker Desktop
公式サイトからダウンロード
https://docker.com/products/
docker-desktop/
Apple Silicon Mac用を選択
Claude Code
公式サイトからダウンロード
https://claude.ai/code
環境チェック: bash setup/setup-check.sh
Part 2: MCPセットアップ
Midnight MCP とは?
Midnight MCP(Model Context Protocol)は、Claude Code が
Midnightブロックチェーンのツール群を直接呼び出すための拡張インターフェース
接続後に使えるツールは 29種類
APIキーは不要
.mcp.json をプロジェクトルートに作成
{
"mcpServers": {
"midnight": {
"command": "npx",
"args": ["-y", "midnight-mcp@latest"]
}
}
}
たった3行の設定で
60秒セットアップ完了
Part 2: MCP接続確認
Step 1: Claude Codeを起動
cd midnight-workshop
claude
Step 2: MCP接続を確認
利用可能なMCPツールをリストアップしてください
Step 3: 29個のmidnight-ツールが表示されればOK
接続できない場合の確認ポイント:
・.mcp.json がプロジェクトルートに存在するか
・Node.js v22以上か
・Claude Codeを .mcp.json と同じフォルダで起動しているか
Part 3: コントラクト生成
プライバシーコントラクトとは?
従来のブロックチェーン
すべての取引情報が
チェーン上に公開される
(送金額・送金先)
Midnightコントラクト
ZKPで「送金が正当」という
事実だけを記録
金額・相手先は非公開
生成プロンプト:
Compact言語で、送金額と送金先を非公開にした
プライベート決済コントラクトを作成してください
→ MCPが自動で構文取得 → サンプル参照 → コード生成
Part 3: 生成されるコントラクトの構造
ledger
チェーン上に保存
balance_commitments:
Map<Bytes<32>,
Bytes<32>>
残高のハッシュ値のみ
実際の金額は非公開
witness
ローカルのみ・非公開
local_secret_key
private_amount
private_recipient
秘密鍵・送金額・
送金先はチェーンに
絶対に乗らない
circuit
処理ロジック
deposit
→ 残高登録(公開)
private_transfer
→ ZKP送金(非公開)
check_balance
→ 残高確認(非公開)
Part 4: MCPコンパイル&レビュー
コンパイルの仕組み
Claude Code → MCP → Midnight ホストコンパイラ → 結果を返す
コンパイル実行プロンプト:
先ほど生成したコントラクトをコンパイルしてください
エラーが出てもMCPが自動修正!
よくあるエラーと自動修正:
1. disclose()の欠落 → ZKP証明出力にdisclose()を自動追加
2. 型の不一致 → as_bytes()による型変換を追加
3. witnessアクセスの誤り → circuit内に参照を移動
Part 5: テストネットデプロイ(オプション)
Step 1: プロジェクト作成
npx create-mn-app my-app
# Contract → Hello World を選択
Step 2: ワンコマンドデプロイ
cd my-app
npm run setup
Step 3: Faucetでトークン取得
https://faucet.preprod.
midnight.network/
ウォレットアドレスを入力
→ tNightトークンを受領
Step 4: エクスプローラーで確認
https://preprod.
midnightexplorer.com/
送金額が「非公開」に
なっていることを確認
npm run setup が自動で: Proof Server起動 → コンパイル → デプロイ
トラブルシューティング
症状
対処法
MCP接続できない
.mcp.json の存在確認 / Node.js v22+ / 同フォルダで起動
コンパイル失敗
compact --version 確認 / disclose()エラー → Part 4参照
Docker起動しない
Docker Desktopアプリ起動確認 / メモリ4GB以上推奨
Preprod接続不可
ネットワーク状態確認 / 時間を置いてリトライ
主要リソース
Midnight 公式ドキュメント
docs.midnight.network
Midnight MCP GitHub
github.com/Olanetsoft/midnight-mcp
Compact 言語リファレンス
docs.midnight.network/compact/reference
インストールガイド
docs.midnight.network/getting-started/installation
Preprod Faucet
faucet.preprod.midnight.network
Preprod エクスプローラー
preprod.midnightexplorer.com
振り返りチェックリスト
.mcp.json を設置して Claude Code から Midnight MCP に接続できた
自然言語プロンプトで Compact コントラクトが生成できた
ledger / witness / circuit の役割の違いを説明できる
MCP 経由でコンパイルを実行し、エラーを自動修正できた
(オプション)Preprod テストネットにデプロイできた
すべてチェックできたらワークショップ修了です!
Midnight MCP
ハンズオンマニュアル
midnight.network
@midnight_jpn
SIPO | Midnight Ambassador
sipo.tokyo
ご質問はお気軽にどうぞ