wan0ri Lab

Neovim MCP サーバーの役割りやインストール手順

はじめに

この記事では、Neovim から Codex TUI(MCP クライアント)経由で使う「MCP サーバー」の導入手順をまとめます。
名称、入手先、必要トークン/キーの取得方法、servers.json.env の具体例、検証方法までを一通り記載します。


導入した MCP サーバー(一覧)

context7(ドキュメント検索)

playwright(ブラウザ自動操作)

filesystem(ローカルファイル操作)

ルート制限付きでローカルを参照します。

必要: GITHUB_TOKEN

terraform(HashiCorp 公式 MCP Server)

  • イメージ: hashicorp/terraform-mcp-server:0.3.0
  • 必要: TERRAFORM_CLOUD_TOKEN(Terraform Cloud のユーザ API トークン)

備考: 以降の手順では ~/.config/mcphub/servers.json~/.config/mcphub/.env を前提にします。Neovim 側は <leader>asservers.json を開き、<leader>ar.env を再読込できます。


トークン / API キーの取得手順

GitHub 用 GITHUB_TOKEN(個人アクセストークン)

  1. GitHub にサインイン → 右上アイコン → Settings。
  2. 左メニュー最下部の Developer settings → Personal access tokens。
  3. Fine-grained(推奨)または Classic を発行。最小権限で可。
    • 参照のみで足りる場合は、対象リポジトリの「Contents: Read」など最小に絞る。
  4. 生成したトークンを控え、~/.config/mcphub/.env に保存(例は後述)。

Terraform Cloud 用 TERRAFORM_CLOUD_TOKEN

  1. Terraform Cloud にサインイン(https://app.terraform.io)。
  2. User Settings → Tokens → Create an API token。
  3. 生成されたトークンを控え、~/.config/mcphub/.env に保存。
    • 互換のため TF_TOKEN_app_terraform_io へも同値を設定するとツール連携が楽です(例は後述)。

セキュリティ注意: トークンは Git 管理しないパス(~/.config/mcphub/.env)に置き、権限は最小に。公開リポジトリへコミットしないこと。


設定ファイル(servers.json と .env)

ここでは Codex TUI(MCP クライアント)向けの想定例を示します。

~/.config/mcphub/servers.json(例)

{
  "servers": {
    "context7": {
      "command": "context7-mcp"
    },
    "playwright": {
      "command": "playwright-mcp"
    },
    "filesystem": {
      "command": "filesystem-mcp",
      "args": ["--root", "/Users/wan0ri"]
    },
    "github": {
      "command": "github-mcp",
      "env": { "GITHUB_TOKEN": "$GITHUB_TOKEN" }
    },
    "terraform": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "-e",
        "TERRAFORM_CLOUD_TOKEN=$TERRAFORM_CLOUD_TOKEN",
        "hashicorp/terraform-mcp-server:0.3.0"
      ]
    }
  }
}

メモ: サーバー名/コマンドは環境の実体に合わせてください。filesystem--root でアクセス可能範囲を明示します。

~/.config/mcphub/.env(例)

# GitHub
GITHUB_TOKEN=ghp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

# Terraform Cloud
TERRAFORM_CLOUD_TOKEN=ttc.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
TF_TOKEN_app_terraform_io=${TERRAFORM_CLOUD_TOKEN}
TFE_TOKEN=${TERRAFORM_CLOUD_TOKEN}

Neovim 側では .env を読み込むユーティリティを用意してあるため、<leader>ar で再読込できます。


Terraform MCP Server を Docker で起動(手動検証)

docker run --rm -i \
  -e TERRAFORM_CLOUD_TOKEN="$TERRAFORM_CLOUD_TOKEN" \
  hashicorp/terraform-mcp-server:0.3.0

ローカル開発前提です。外部公開する場合はネットワーク/認可を必ず設けてください。


Neovim / Codex TUI からの検証手順

  1. ~/.config/mcphub/.env を編集 → <leader>ar で再読込。
  2. ~/.config/mcphub/servers.json を編集 → Codex TUI 側で :config reload
  3. Codex TUI のサーバー一覧に各 MCP が表示されることを確認。
  4. 例: terraform でプロバイダ検索/github でリポジトリ参照/filesystem でローカルを列挙。

トラブルシューティング

  • GitHub で 401/403 になる
    GITHUB_TOKEN の権限を見直し(最低限の Read 権限)。Rate limit 到達も確認。

  • Terraform で認証エラー
    TERRAFORM_CLOUD_TOKEN が正しいか、環境変数が Docker に渡っているか(-e の綴りや値)を確認。

  • ファイルが見えない(filesystem)
    --root のパスに対象が含まれているか。必要に応じて追加の許可ディレクトリを設定。


まとめ

  • GitHub と Terraform Cloud はトークンを .env に置いて、servers.json から参照する構成にすると安全・再現性が高い。
  • Neovim からは <leader>as / <leader>ar で編集・再読込が素早く行える。
  • まずは githubfilesystem でハンドシェイクを確認し、terraform まで段階的に広げていくのがおすすめ。

次回は「操作チートシート(neovim-operate.md)」で、主要コマンドとよく使うキーバインドを整理します。