Mac で AI 開発環境を作る

最終更新:2026-11-12。Windows 版は別のページに、全部の AI に共通のルールの作り方は共通 AGENTS.md の作り方にまとめています。

はじめに

Mac に5つの AI のコマンド(CLI)と作業アプリ Orca を入れ、共通ルールと MCP をそろえる手順です。上から順に実行すれば、同じ環境を作れます。

  • 対象:macOS(Apple シリコン)。管理者権限のあるユーザーで行う
  • 用語:CLI = ターミナルで動かすコマンド版のアプリ。MCP = AI から外のサービス(Gmail・Obsidian など)を使うためのつなぎ口
  • 入力例の $ は入力待ちの記号なので、$ の後ろだけを入力する
  • <…> の部分は、下の表に従って自分の値に置き換える

自分の値に置き換える項目

このマニュアルの表記意味例
you@example.comGoogle アカウントのメールアドレス—
$DRIVEGoogle ドライブの「マイドライブ」の場所~/Library/CloudStorage/GoogleDrive-you@example.com/マイドライブ
$VAULTObsidian の Vault(共用のノート置き場)$DRIVE/AIVault
~/.keys/keys.txtキー・パスワードの置き場所(その Mac の中だけ。同期しない)—
mac2・server1・ai-vmSSH の接続名(他の Mac・サーバー・AI 用のサーバー)—
<ポート>Obsidian の Local REST API のポート番号プラグインの設定画面に出る番号
ABCLinear のチームのキー—

最初にターミナルで次を実行しておくと、この後の入力例をそのまま使えます。~/.zshrc.local に書いておくと、次回から自動で設定されます。

$ export DRIVE="$HOME/Library/CloudStorage/GoogleDrive-you@example.com/マイドライブ"
$ export VAULT="$DRIVE/AIVault"
$ mkdir -p ~/.keys && chmod 700 ~/.keys
$ touch ~/.keys/keys.txt && chmod 600 ~/.keys/keys.txt
  • ~/.keys は Google ドライブや Vault の中に作らない。キーが同期されてしまうため

動作を確かめた版(2026-11 時点)

種類名前版入れ方
下準備Homebrew7.0.12公式のスクリプトか .pkg
下準備Node.js26.13.0brew install node
下準備uv0.13.6brew install uv
下準備WezTerm20240203-110809brew install --cask wezterm
AI の CLIClaude Code2.1.322公式のスクリプト
AI の CLICodex0.166.0brew install --cask codex
AI の CLIAntigravity CLI(agy)1.5.5brew install --cask antigravity-cli
AI の CLIGrok1.0.77公式のスクリプト
AI の CLIcursor-agent2026.10.22公式のスクリプト
道具GitHub CLI(gh)2.103.3brew install gh
アプリOrca1.4.255公式サイト
アプリObsidian1.14.5公式サイト
  • これより新しい版でも、手順は基本的に同じです。画面やコマンドが変わっていたら、公式の説明を優先してください
  • 各アプリの公式サイトは、末尾の「公式サイト一覧」にまとめています

作業の順番

  1. 下準備(Homebrew・Node・uv・WezTerm・SSH の鍵)
  2. AI の CLI を入れてログイン
  3. アプリを入れる
  4. 共通ルール(AGENTS.md)を各 AI につなぐ
  5. MCP を各 AI に登録
  6. 動作確認

全体の構成

Mac の AI 開発環境の全体像

5つの AI は、共通ルールを Vault の AGENTS.md から読み、外のサービスには MCP でつながります。キーは ~/.keys にだけ置きます。

手順の流れ

構築の手順

手順1 下準備(約30分)

AI の CLI を入れる土台として、Homebrew・Node.js・uv・WezTerm を入れ、SSH の鍵を用意します。

  • Homebrew = Mac 用のアプリの入れ物管理ツール。この後のほとんどを brew install で入れる
  • この手順は、すべて sudo を付けずに実行する(理由は手順6 の「つまずきやすい点」)

1-1 Homebrew

brew.sh の .pkg を開いて入れるか、ターミナルで次を実行する。

$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
$ eval "$(/opt/homebrew/bin/brew shellenv)"
$ brew --version

1-2 土台のツール

$ brew install node uv gh
$ brew install zsh-autosuggestions zsh-syntax-highlighting fzf zoxide eza
$ brew install --cask wezterm
  • node = Codex や MCP(npx で動くもの)に必要
  • uv = Python 製の MCP(Google Workspace MCP など)を uvx で動かすのに必要
  • 2行目は zsh を使いやすくする道具(入力の補完・色付け・履歴の検索など)。無くても動く

1-3 zsh と WezTerm の設定(複数の Mac でそろえる場合)

設定の本体を Google ドライブの $DRIVE/dotfiles/ に置き、各 Mac にはそれを読み込むだけの短いファイルを置きます。元のファイルがあれば、先に .bak_日付 で控えを取る。

~/.zshrc:

_shared_zshrc="$HOME/Library/CloudStorage/GoogleDrive-you@example.com/マイドライブ/dotfiles/zshrc"
if [[ -r $_shared_zshrc ]]; then
  source "$_shared_zshrc"
else
  [[ -r ~/.zshrc.local ]] && source ~/.zshrc.local
fi
unset _shared_zshrc

~/.wezterm.lua:

local wezterm = require 'wezterm'
local path = wezterm.home_dir .. '/Library/CloudStorage/GoogleDrive-you@example.com/マイドライブ/dotfiles/wezterm.lua'
wezterm.add_to_config_reload_watch_list(path)
return dofile(path)
  • 共通の zshrc には、少なくとも次の1行を入れる。Claude Code・cursor-agent は ~/.local/bin に入るので、これが無いとコマンドが見つからない
path=(~/.local/bin ~/bin $path)
  • その Mac だけの設定(nvm・$DRIVE・$VAULT など)は ~/.zshrc.local に書く
  • 1台だけで使うなら、~/.zshrc に直接書いてもよい

1-4 SSH の鍵

他の Mac やサーバーに入るための鍵。無ければ作り、相手に登録する。

$ ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519_server1
$ ssh-copy-id -i ~/.ssh/id_ed25519_server1.pub server1
$ ssh server1

~/.ssh/config の例:

Host server1
  HostName <サーバーのアドレス>
  User <ユーザー名>
  IdentityFile ~/.ssh/id_ed25519_server1
  • 接続名(Host の後ろ)は、手順3 の Orca でもそのまま使われる
  • 秘密鍵(.pub が付かない方)は画面に表示しない。相手に渡すのは .pub だけ

手順2 AI の CLI を入れる(約30分)

5つの AI の CLI と GitHub CLI を入れ、それぞれに一度ログインします。ログインはブラウザーが開くので、その Mac の画面の前で行います。使わない AI は飛ばして構いません。

CLI入れるコマンドログイン使うアカウント
Claude Codecurl -fsSL https://claude.ai/install.sh \| bashclaude を起動 → /loginclaude.ai
Codexbrew install --cask codexcodex loginChatGPT
Antigravity CLIbrew install --cask antigravity-cliagy を起動Google
Grokcurl -fsSL https://x.ai/cli/install.sh \| bashgrok loginX(xAI)
cursor-agentcurl https://cursor.com/install -fsS \| bashcursor-agent loginCursor
GitHub CLIbrew install gh(手順1 で済み)gh auth loginGitHub

2-1 入れる

$ curl -fsSL https://claude.ai/install.sh | bash
$ brew install --cask codex
$ brew install --cask antigravity-cli
$ curl https://cursor.com/install -fsS | bash
$ curl -fsSL https://x.ai/cli/install.sh | bash
  • Claude Code と cursor-agent は ~/.local/bin に、Grok は ~/.grok/bin に入る
  • Grok のインストーラーは ~/.zshrc の末尾に PATH の行を足す(# >>> grok installer >>> の範囲)。消さない
  • Gemini CLI(gemini-cli)ではなく Antigravity CLI を使う。個人の無料枠では Gemini CLI が UNSUPPORTED_CLIENT で使えなかった(2026-10 時点)
  • 入れたらターミナルを開き直す

2-2 ログイン

$ claude              # 初回は配色などを聞かれる → /login → ブラウザーで許可
$ codex login         # 「Sign in with ChatGPT」を選ぶ
$ agy                 # 初回起動で Google のログイン画面が開く
$ grok login
$ cursor-agent login
$ gh auth login       # GitHub.com → HTTPS → ブラウザーで認証
$ gh auth setup-git   # git の https に gh のログインを使う
  • 定期実行などで Claude Code を画面なしで動かすときは、claude setup-token で長期用のトークンを作る。トークンは ~/.keys/keys.txt に置き、Vault には書かない
  • gh のログイン情報は macOS のキーチェーンに保存される。SSH で入った画面からはキーチェーンを開けないので、その Mac の画面で行う

2-3 確認

$ claude --version && codex --version && agy --version && grok --version && cursor-agent --version
$ claude auth status
$ codex login status       # Logged in using ChatGPT
$ cursor-agent status
$ gh auth status

手順3 アプリを入れる(約1時間)

画面で使うアプリを入れます。中心は Orca(AI の作業画面)と Obsidian(共用のノート)で、他は必要なものだけで構いません。

アプリ役割必要度
Orca複数の AI と複数のパソコンを1つの画面で扱う。携帯からも依頼できる推奨
Obsidian共用 Vault(記録と共通ルール)推奨
VS Codeコードの編集任意
CursorAI 付きのコードエディター任意
Slack・Linear依頼・通知と、作業の管理任意
Claude・ChatGPT・Gemini・Grok各 AI のチャット用アプリ参照

3-1 Orca

入れ方

  1. Orca の公式サイトから .dmg を入れ、/Applications に置く
  2. アプリに付いてくる CLI(orca)が使えるか確かめる
$ orca --version
$ orca status          # appRunning: true、runtimeState: ready なら正常

アカウント(AI のログイン)

設定のアカウントで、Claude・Codex・Antigravity にそれぞれログインします。

$ orca account list      # 登録済みのアカウントと使用中(active)を表示
$ orca account add       # アカウントを足す(画面の設定からでもよい)
$ orca account select    # 新しいチャットで使うアカウントを選ぶ
  • 「System default」= 手順2 で CLI にログインしたものを使う。管理アカウント = Orca 専用に保存したログイン
  • Codex の管理アカウントを使うと、設定のフォルダー(CODEX_HOME)が ~/.codex ではなく次になる。手順4・5 で、こちらにも同じ設定を入れる
~/Library/Application Support/orca/codex-accounts/<アカウントID>/home/

接続先

  • SSH:~/.ssh/config の接続名(mac2・server1 など)がそのまま接続先になる
  • 別のマシンの Orca(例:AI 用のサーバー ai-vm)は、「環境」としてペアリングする。相手側で出したペアリングコードを使う。コードはノートに書かない
$ orca host list           # 接続先の一覧
$ orca environment add     # ペアリングコードで別のマシンの Orca を登録
$ orca environment list

定期実行(オートメーション)

AI に決まった作業を定期的にさせられます(例:毎月のメールの整理、1時間ごとに Linear の課題を処理)。

$ orca automations list                      # この Mac の定期実行
$ orca automations list --environment ai-vm  # 別のマシンの定期実行
$ orca automations create --help             # 作り方
$ orca automations runs <ID>                 # 実行の履歴
$ orca automations run <ID>                  # 今すぐ1回実行
  • 確認なしで動かす AI には、作業フォルダーの .claude/settings.json で禁止する操作(削除・rm・sudo・curl など)を決めておく

iPhone から使う

  1. iPhone に Orca を入れる
  2. Mac の Orca に出る QR コードを iPhone で読んでペアリングする
  3. iPhone からチャットを開いて依頼できる。Mac は起動したままにしておく
  • Orca は LAN の他の機器から届く形で待ち受ける。共用のネットワークで使うときは設定を確かめる

よく使う orca コマンド

コマンド内容
orca statusOrca が動いているか
orca repo list / orca repo add <パス>作業フォルダーの一覧/追加
orca worktree listOrca が管理する作業場所の一覧
orca terminal list / orca terminal read動いている端末の一覧/出力を読む
orca search <言葉>過去のチャットを全文検索
orca linear …Linear の課題の読み書き(3-5)

3-2 Obsidian

入れ方と Vault の開き方

  1. Google ドライブのデスクトップ版でサインインし、$VAULT にするフォルダーを作る(または同期を待つ)
  2. obsidian.md から公式の .dmg を入れる
  3. 「フォルダーを Vault として開く」→ $VAULT のフォルダーを選ぶ
$ codesign -dv /Applications/Obsidian.app 2>&1 | grep Authority   # 署名(Dynalist Inc.)を確認
  • 設定(.obsidian フォルダー)も Vault と一緒に同期されるので、プラグインは全端末でそろう
  • フォルダー構成の例:01_DailyNotes/(日次)・02_Meetings/(議事録)・03_Projects/(プロジェクト)・04_Reference/(参照)

コミュニティプラグイン

プラグイン役割必要度
Local REST APIAI の MCP がノートを読み書きする窓口必須
Omnisearch全文検索任意
Recent Files最近開いたノートの一覧任意
2Hop Links Plusリンクのリンク先まで表示任意
Reveal Active File Button開いているノートをファイル一覧で示す任意
Custom FramesWeb ページを Obsidian の中に表示任意
  • 追加の仕方:設定 → コミュニティプラグイン →「閲覧」で名前を検索 → インストール → 有効化
  • 標準の機能では、デイリーノート(保存先を 01_DailyNotes に)と Bases(ノートの一覧表)を使う

Local REST API の設定

  1. プラグインの設定で「暗号化なし(HTTP)のサーバー」を有効にし、ポート番号を控える(このマニュアルの <ポート>)
  2. API キーをコピーし、~/.keys/keys.txt に控える(書き方は手順5-2)
  3. 待ち受けているか確かめる
$ curl -s http://127.0.0.1:<ポート>/   # 応答が返れば正常
  • Obsidian が起動していないと、AI からノートを読み書きできない。Mac のログイン項目に入れておく
  • プラグインの設定ファイル(.obsidian/plugins/obsidian-local-rest-api/data.json)には API キーと証明書の鍵が入っている。中身を画面に表示しない、人に渡さない
  • 見出しを指定して書き込むとき(PATCH)は Markdown-Patch-Version: 2 が要る。書いた後、見出しの段が下がっていないか確かめる

同期の注意

  • Obsidian Sync と Google ドライブを併用しない。併用すると衝突のコピーが大量にできる
  • 1つのノートを同時に2か所(2台・2つの AI)で書き換えない。書き込む前後に、「 (1)」「 2」付きのコピーや 0 バイトのファイルが無いか確かめる

3-3 開発用アプリ(VS Code・Cursor・GitHub)

VS Code

  1. code.visualstudio.com から入れ、/Applications に置く
  2. コマンドパレット(Cmd+Shift+P)→「Shell Command: Install ‘code’ command in PATH」
  3. 拡張機能を入れる
$ code --install-extension anthropic.claude-code
$ code --install-extension MS-CEINTL.vscode-language-pack-ja
$ code --install-extension eamodio.gitlens
$ code --install-extension yzhang.markdown-all-in-one
$ code --install-extension DavidAnson.vscode-markdownlint

設定(~/Library/Application Support/Code/User/settings.json)の例:

{
  "claudeCode.preferredLocation": "panel",
  "terminal.external.osxExec": "WezTerm.app"
}
  • Claude Code を下のパネルに出し、外部のターミナルを WezTerm にする設定

Cursor

  • cursor.com から入れ、Cursor のアカウントでログインする。VS Code と同じ作りなので、初回起動で VS Code の設定と拡張機能を取り込める
  • 料金は Hobby(無料)から。最新の料金は公式サイトで確認する
  • ターミナル版は手順2 の cursor-agent。Grok も agent というコマンドを作るので、cursor-agent の名前で起動する

GitHub

GitHub CLI(gh)と Web で使います。

$ gh auth login         # GitHub.com → HTTPS → ブラウザーで認証
$ gh auth setup-git     # git の push・clone に gh のログインを使う
$ gh auth status
$ gh repo clone <ユーザー名>/<リポジトリ名>

3-4 Slack

Slack は、AI への依頼と結果の通知を受ける入口として使います。

  1. 公式サイトのデスクトップ版を入れてワークスペースにログインする
  2. 依頼用のチャンネル(例:#ai-requests)を作る
  3. Claude Code から Slack を読み書きするときは、claude.ai の設定で Slack コネクターをつなぐ。送信前に内容を確認するルールにしておく

3-5 Linear

Linear は作業(課題)の管理です。Slack で頼んだ作業が Linear の課題になり、AI が処理して Slack に結果が届く形にできます。Free プランでも動きます。

初期設定

  1. 公式サイトのデスクトップ版を入れ、チームを作る(このマニュアルではキー ABC。課題は ABC-1 からの番号になる)
  2. 設定 → Integrations → Slack でワークスペースとつなぐ。あわせて個人の Slack アカウントもつなぐ
  3. チームの通知先を #ai-requests にし、「An issue is added to the team」をオンにする
  4. ラベル「AI作業」を作る(このラベルの課題を AI が処理する約束にする)
  5. 個人 API キーを作る(設定 → アカウントのセキュリティ → Personal API keys。画面の名前は版で変わることがある)。キーは作ったときしか表示されないので ~/.keys/keys.txt に控える
  6. Orca の設定 → 連携 →「Linear アクセスを追加」に貼る。orca linear team list でチームが出れば接続できている

状態(ワークフロー)

状態使い方
Backlog・Todo未着手。AI の処理対象にする
In Progress・In Review作業中・確認待ち
Done完了。AI が処理し終えたらここにする
Canceled・Duplicate取り消し。不要な課題は削除せずここにする

課題が処理される流れ(例)

  1. Slack で @Linear に頼む → 課題が Backlog にでき、Slack に作成の通知が届く
  2. Orca の定期実行が1時間ごとに起動。ラベル「AI作業」の課題が無ければ AI を起動せずに終わる
  3. あれば AI が課題を読み、Obsidian の MCP でノートに記録する
  4. 課題を Done にする → Slack に完了の通知が届く

Slack での頼み方:

@Linear create project プロジェクト名
@Linear 「〇〇を調べてノートにまとめる」という課題を、Project「〇〇」・ラベル「AI作業」で作って

orca linear のコマンド

# 見る
$ orca linear team list
$ orca linear team states --team ABC
$ orca linear team labels --team ABC
$ orca linear project list
$ orca linear list-issues --limit 10
$ orca linear list-issues --label AI作業 --state Backlog
$ orca linear issue ABC-12 --comments

# 作る・変える
$ orca linear create --title "〇〇を調べる" --team ABC --project "プロジェクト名" --label AI作業
$ orca linear status set ABC-12 --to "In Progress"
$ orca linear label add ABC-12 --label AI作業
$ orca linear comment add ABC-12 --body "結果はノートに記録"
  • 別のマシンの Orca に対して実行するときは --environment ai-vm を付ける
  • orca linear には Project・ラベルを作るコマンドと、課題を消すコマンドが無い。Linear の画面か Slack の @Linear で行う
  • zsh でコマンドを変数で渡すと(orca linear $c)「team list」が1つの語のまま渡って Unknown command になる。直接書く

3-6 AI のデスクトップアプリ(参照)

チャットでの相談や文章作りに使うアプリです。開発の作業は CLI(手順2)で行うので、入れてログインするだけで構いません。

アプリアカウントCLI との関係
Claudeclaude.aiClaude Code と同じアカウントで、利用枠も共通
ChatGPTChatGPTCodex と同じアカウント。Codex のブラウザー操作は、このアプリの部品を使う
GeminiGoogleAntigravity CLI(agy)とは別のアプリ
GrokX(xAI)Web・X のアプリ・iPhone で使える(Mac 用アプリの有無は公式サイトで確認)
  • 各社の公式サイトか App Store から入れ、CLI と同じアカウントでログインする
  • アプリや Web 版は AGENTS.md を読まない。共通ルールのうち大事なものを、各アプリの「個人設定」「カスタム指示」に貼る

手順4 共通ルール(AGENTS.md)を各 AI につなぐ(約20分)

Vault に共通ルール AGENTS.md を1つ置き、各 AI の「全体の指示ファイル」をそこへのシンボリックリンク(別の場所のファイルを指すショートカット)にします。ルールを1か所直せば、全端末・全 AI に反映されます。

AI全体の指示ファイル
Claude Code~/.claude/CLAUDE.md
Codex~/.codex/AGENTS.md
Codex(Orca 経由)~/Library/Application Support/orca/codex-accounts/<ID>/home/AGENTS.md
Antigravity CLI~/.gemini/GEMINI.md
Grok~/.grok/AGENTS.md

4-1 AGENTS.md を書く

$VAULT/AGENTS.md に、全 AI に守らせたいことを書きます。見出しの例:

# 共用 Vault の共通ルール

## 1. 利用者について(何に AI を使うか)
## 2. 記録のしかた(作業結果をどのノートにどう追記するか)
## 3. フォルダー構成とファイル名
## 4. 秘密情報(キーは ~/.keys だけ。Vault に書かない)
## 5. 回答のスタイル(日本語、結論から、断定できないことは「要確認」)
## 6. 破壊的操作(削除・force push などは事前に確認)
## 7. ツールごとの読み書きの方法(Obsidian の MCP を優先)
  • Vault の直下に CLAUDE.md(中身は @AGENTS.md の1行+ Claude だけの補足)を置くと、Vault の中で起動した Claude Code も同じルールを読む
  • ルールに「新しいチャットの最初の返答に、読み込んだ印の1行を出す」と書いておくと、読まれたかが毎回分かる

4-2 リンクを作る

既にファイルがあるときは、先に控えを取る(mv ファイル ファイル.bak_日付)。

$ V="$VAULT/AGENTS.md"
$ mkdir -p ~/.claude ~/.codex ~/.gemini ~/.grok
$ ln -s "$V" ~/.claude/CLAUDE.md
$ ln -s "$V" ~/.codex/AGENTS.md
$ ln -s "$V" ~/.gemini/GEMINI.md
$ ln -s "$V" ~/.grok/AGENTS.md
$ ln -s "$V" ~/Library/Application\ Support/orca/codex-accounts/*/home/AGENTS.md
$ ls -l ~/.claude/CLAUDE.md ~/.codex/AGENTS.md ~/.gemini/GEMINI.md ~/.grok/AGENTS.md
  • 最後の ls -l で、すべて -> …/AGENTS.md と出れば完了
  • Orca の行は、Orca で Codex のアカウントを追加した後に実行する。Orca がフォルダーを作り直すとリンクが消えることがある
  • Google ドライブがつながっていないときはリンク先が見えず、ルールは読まれない
  • Grok は ~/.claude/CLAUDE.md も読むので、同じルールが2回入る。中身は同じなので実害は小さい

4-3 読まれたか確かめる

ファイルを開かせずに、ルールにしか書いていないことを聞きます。Vault の外(例:~)で実行する。

$ cd ~
$ claude -p "秘密情報はどこに置くルール?ファイルは開かずに答えて"
$ codex exec "秘密情報はどこに置くルール?ファイルは開かずに答えて"
$ agy -p "秘密情報はどこに置くルール?ファイルは開かずに答えて"
  • ~/.keys と答えれば読まれている
  • Grok は対話の画面(grok)で同じことを聞く

手順5 MCP を各 AI に登録(約1時間)

MCP ごとに「起動用のスクリプト」を ~/bin に1つ作り、それを各 AI に同じ名前で登録します。キーはスクリプトが起動のたびに ~/.keys/keys.txt から読むので、AI の設定ファイルにキーが平文で残りません。

5-1 登録する MCP

MCP登録名起動事前の準備
Obsidianobsidian~/bin/obsidian-mcp.shLocal REST API のキー(手順3-2)
Google Workspacegoogle~/bin/google-mcp.shGoogle Cloud で OAuth のクライアントを作る
Xxapi~/bin/x-mcp.shX の開発者向けアプリを作る(有料のクレジットが要る)
LINEline~/bin/line-mcp.shLINE 公式アカウントと Messaging API のトークン
Chromechrome-devtoolsnpx -y chrome-devtools-mcp@1.12.0なし
  • 使わない MCP は飛ばして構いません。まず Obsidian だけ入れるのがおすすめ
  • X は、同じ X アプリを複数の Mac で使うと、認可の画面が何度も出ることがある。1台の Mac だけに入れる
  • Claude Code の Chrome は、Chrome 拡張機能「Claude in Chrome」を入れ、Claude Code で /chrome を実行してつなぐ(MCP の登録は不要)

5-2 キーのファイルと起動用のスクリプト

~/.keys/keys.txt(chmod 600)に、1行1つで 名前=値 の形で書きます。

OBSIDIAN_API_KEY=<Local REST API のキー>
LINE_CHANNEL_ACCESS_TOKEN=<LINE のトークン>

~/bin/obsidian-mcp.sh(chmod 700):

#!/bin/zsh
# キーを MCP の設定ファイルに平文で写さないよう、起動のたびに ~/.keys から読む。
KEYS=~/.keys/keys.txt
key() { grep "^$1=" "$KEYS" | head -1 | cut -d= -f2-; }

export OBSIDIAN_API_KEY=$(key OBSIDIAN_API_KEY)
export OBSIDIAN_BASE_URL=http://127.0.0.1:<ポート>

exec /opt/homebrew/bin/npx -y obsidian-mcp-server@3.7.2 "$@"
  • 他の MCP のスクリプトも同じ形。export の行と最後の exec の行を、その MCP の説明書に合わせて差し替える
  • Google Workspace MCP(workspace-mcp)は Python 3.10 以上が要る。Mac の python3 は 3.9 なので、exec uvx workspace-mcp … のように uvx で動かす
  • X は公式の MCP(https://api.x.com/mcp)に @xdevplatform/xurl の xurl mcp でつなぐ

5-3 各 AI に登録する

Obsidian を例にした入力。他の MCP は名前とスクリプトを差し替える。

# Claude Code(-s user = どのフォルダーで起動しても使える)
$ claude mcp add -s user obsidian -- ~/bin/obsidian-mcp.sh

# Codex(通常の設定と Orca の専用フォルダーの両方に)
$ CODEX_HOME=~/.codex codex mcp add obsidian -- ~/bin/obsidian-mcp.sh
$ CODEX_HOME=~/Library/Application\ Support/orca/codex-accounts/<ID>/home codex mcp add obsidian -- ~/bin/obsidian-mcp.sh

# Grok
$ grok mcp add obsidian ~/bin/obsidian-mcp.sh

# Antigravity CLI(設定は ~/.gemini/config/mcp_config.json)
$ agy mcp add obsidian ~/bin/obsidian-mcp.sh

Chrome(Codex・Grok・agy)はスクリプトを使わず、直接登録する。利用統計の送信は切る。

$ CODEX_HOME=~/.codex codex mcp add chrome-devtools -- npx -y chrome-devtools-mcp@1.12.0 --usageStatistics=false --performanceCrux=false

5-4 初回のログイン(必要なものだけ)

  • Google:最初に道具を使ったときにブラウザーが開く。許可は1回で、全 AI が同じログインを使う
  • X:xurl のログインをブラウザーで許可する(認証は ~/.xurl に保存)
  • Claude Code は、登録した後に起動し直すと有効になる

手順6 動作確認

次のコマンドがすべて通れば、構築は完了です。

$ claude mcp list            # 各 MCP が ✓ Connected
$ codex mcp list
$ grok mcp doctor            # すべて正常
$ agy mcp list
  • □ 5つの CLI の --version が出る
  • □ 使う AI と gh がログイン済み
  • □ 指示ファイルが AGENTS.md へのリンクになっている
  • □ 各 AI がルールにしか書いていないことを答えられる
  • □ 各 AI から Obsidian のノート一覧が取れる
  • □ Orca から Claude と Codex のチャットを開ける
  • □ AI の設定ファイル(~/.claude.json・~/.codex/config.toml・Orca の専用フォルダー・~/.grok/config.toml・~/.gemini/config/mcp_config.json)にキーが平文で入っていない

つまずきやすい点

起きること原因対処
インストールで権限のエラーが出る、後で動かないsudo curl … \| bash・sudo npm install -g・sudo brew のように sudo を付けたsudo は付けない。Homebrew は sudo を拒否する。Codex は npm ではなく brew install --cask codex で入れる
Gemini CLI が UNSUPPORTED_CLIENT で使えない個人の無料枠では Gemini CLI が使えないAntigravity CLI(agy)を使う。~/.gemini/ は agy が使うので消さない
Codex に登録したはずの MCP やルールが無いOrca から起動すると CODEX_HOME が Orca の専用フォルダーを指すCODEX_HOME を明示して、両方に登録する
agy -p で MCP が拒否される画面なしだと道具の許可を出せないagy --dangerously-skip-permissions -p "…"(オプションは -p より前)。信頼できる作業だけに使う
agent コマンドが Grok になるGrok と cursor-agent の両方が agent を作るcursor-agent は cursor-agent の名前で起動する
AI が処理の終わりを待ち続けて止まるpgrep -f が確かめるコマンド自身に一致するルールに「pgrep -f・pkill -f を使わない」と書いておく
ノートの衝突のコピーが大量にできるObsidian Sync と Google ドライブの併用、同じノートの同時編集同期は1つにする。書き込みは Obsidian の MCP 経由にそろえる

秘密情報の扱い

  • キー・パスワードは ~/.keys だけに置き、Vault・Google ドライブ・AI の設定ファイルには書かない
  • claude mcp add -e KEY=… のようにキーを直接渡すと ~/.claude.json に平文で残る。必ず起動用のスクリプトを通す
  • このマニュアルを人に渡すときや画面を共有するときは、~/.keys/keys.txt と Obsidian のプラグインの設定ファイルを開かない

公式サイト一覧

この手順書に出てくるアプリ・ツールの公式ページです。版が変わっても使えるよう、公式サイトのトップやダウンロードのページにリンクしています(2026-11-12 に開けることを確認)。

種類名前公式ページこの手順書での役割
下準備Homebrewbrew.shアプリの入れ物管理
下準備Node.jsnodejs.orgnpx で動く MCP
下準備uvdocs.astral.sh/uvPython 製の MCP
下準備WezTermwezterm.orgターミナル
下準備GitHub CLIcli.github.comGitHub の操作
AI の CLIClaude Codecode.claude.com/docsAI(Anthropic)
AI の CLICodexdevelopers.openai.com/codexAI(OpenAI)
AI の CLIAntigravityantigravity.googleAI(Google)
AI の CLIGrok Builddocs.x.ai/build/overviewAI(xAI)
AI の CLICursor CLIcursor.com/cliAI(Cursor)
アプリOrcaonorca.dev(GitHub)AI の作業画面
アプリObsidianobsidian.md共用のノート
アプリVS Codecode.visualstudio.comコードの編集
アプリCursorcursor.comAI 付きのエディター
アプリSlackslack.com/downloads依頼と通知
アプリLinearlinear.app/download作業の管理
アプリClaudeclaude.com/downloadチャット
アプリChatGPTchatgpt.com/downloadチャット
アプリGeminigemini.google/macチャット
アプリGrokgrok.comチャット(Web)
拡張機能Claude in Chromeclaude.com/chromeClaude Code から Chrome を操作
Obsidian プラグインLocal REST APIGitHubMCP からノートを読み書き
MCPobsidian-mcp-serverGitHubObsidian
MCPGoogle Workspace MCPGitHubGmail・ドライブ・カレンダー
MCPX の MCP(xurl)説明・GitHubX
MCPLINE Bot MCP ServerGitHubLINE
MCPChrome DevTools MCPGitHubChrome