0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Mac】Pencilのポート番号が勝手に変わる問題を、コマンド一発「fixport」で自動解決する

Last updated at Posted at 2026-01-26

はじめに

Pencil(AIエディタ)とClaude DesktopをMCPで連携させていると、 「昨日まで繋がっていたのに、今日起動したら繋がらない」 という現象に遭遇することがあります。

原因の多くは、Pencilが起動するたびに 使用するポート番号をコロコロ変えてしまう(動的ポート仕様) ためです。
その都度 lsof でポートを調べて、設定ファイル(JSON)を書き換えるのはあまりにも面倒です。

そこで、「現在のPencilのポートを自動検出し、設定ファイルを書き換えてくれるコマンド」 を作りました。
.zshrc にコピペするだけで、コマンド一発で同期できるようになります。

解決策:自作コマンド fixport を作る

Macのターミナル設定ファイル(.zshrc)に**関数(function)**として登録します。
エイリアス(別名)だと複雑な処理(if文など)が書きにくいので、関数を使います。

以下が、そのままコピペして使える手順です。

手順1. .zshrc ファイルを開く

ターミナルで以下のコマンドを実行して、設定ファイルを開きます。
(VS Codeなどで開いてもOKですが、ここではnanoを使います)

nano ~/.zshrc

手順2. ファイルの末尾に以下のコードを貼り付ける

以下のコードブロックをすべてコピーして、ファイルの一番下に貼り付けてください。

# Claude DesktopとPencilのポート同期用コマンド
function fixport() {
  echo "🔍 Pencilのポートを探しています..."
  
  # 1. 現在Pencilが開いているポート番号を取得
  local PENCIL_PORT=$(lsof -i -P | grep Pencil | grep LISTEN | awk '{print $9}' | cut -d: -f2 | head -n 1)

  if [ -z "$PENCIL_PORT" ]; then
    echo "❌ Pencilが起動していないか、サーバーがOFFになっています。"
  else
    echo "✅ 現在のPencilポートを検出: $PENCIL_PORT"
    
    local CONFIG_PATH="$HOME/Library/Application Support/Claude/claude_desktop_config.json"
    
    # 2. jqを使ってJSON構造を正しく書き換え
    # pencilサーバーのargs配列の2番目(インデックス1)を書き換える
    if command -v jq >/dev/null 2>&1; then
      tmp=$(mktemp)
      jq ".mcpServers.pencil.args[1] = \"$PENCIL_PORT\"" "$CONFIG_PATH" > "$tmp" && mv "$tmp" "$CONFIG_PATH"
      echo "🔄 設定ファイルを更新しました(jqを使用)。"
    else
      # jqがない場合の代替案(sedで強引にやる場合)
      # "--ws-port" の次の行の数字部分だけを置換する
      sed -i '' -e "/\"--ws-port\"/{n;s/\"[0-9]*\"/\"$PENCIL_PORT\"/;}" "$CONFIG_PATH"
      echo "🔄 設定ファイルを更新しました(sedを使用)。"
    fi
    
    echo "🚀 Claude Desktopを再起動してください(Cmd+Q → 起動)"
  fi
}

念のため

brew install jq

解説:

  • lsof でPencilがLISTENしているポートを探し出し、変数に入れます。
  • sed コマンドを使って、JSONファイル内の "--ws-port", "古い数字" の部分を、正規表現で "--ws-port", "新しい数字" に書き換えています。

手順3. 保存して反映させる

  1. 保存: Ctrl + O を押し、Enter を押す。
  2. 終了: Ctrl + X を押す。
  3. 反映: ターミナルで以下のコマンドを実行して、設定を読み込み直します。
source ~/.zshrc

使い方

これで準備完了です!
今後、Pencilと繋がらないときは、ターミナルで一言こう打つだけです。

fixport

実行結果のイメージ:

🔍 Pencilのポートを探しています...
✅ 現在のPencilポートを検出: 52871
🔄 設定ファイルを更新しました。
🚀 Claude Desktopを再起動してください(Cmd+Q → 起動)

これで面倒な lsof 確認も、エディタでの書き換えも不要になります。
快適なMCPライフを!


(以下余白)

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?