🛠️

Claude CodeのMCP自動同期問題とSkillを優先させる解決策

に公開

はじめに

Claude Codeで自作Skillを作って使っていたら、ある日突然動かなくなった...そんな経験ありませんか?

私も最近、Markdown形式のメモアプリをClaude Code Skillとして実装して便利に使っていたのですが、突然MCPサーバーが優先されるようになり、意図しない動作に遭遇しました。

本記事では、この問題の原因と「今のところ」使える解決策を、実体験ベースで共有します。

想定読者

  • Claude Codeで自作Skillを運用している方
  • Web版claude.aiでMCPコネクターを設定している方
  • 「あれ?急にSkillが動かなくなった」と困っている方

前提知識

  • Claude Codeの基本的な使い方
  • Skillの概念
  • MCPの概念

何が起きたのか

自作Markdownメモアプリの背景

生成AI時代が来ると確信していたので、2024年初頭からMarkdown形式でメモを管理できるアプリ(仮に「mdmemo」と呼びます)を自作していました。

なぜMarkdownなのか

  • 生成AIが一番理解しやすい形式
  • プレーンテキストなので、ツールに依存しない
  • GitHubとも相性抜群
  • 構造化された情報管理ができる

このmdmemoをClaude Code Skillとして実装して、日常的に使っていたんです。

実装していた機能

  • Markdown形式でのメモ作成・編集
  • カテゴリ別管理
  • 全文検索
  • Claude Codeからのシームレスな読み書き

活用シーン

自分: 「今の会話の内容をmdmemoに保存して」
Claude: (Skillを使って)保存完了!

こんな感じで、会話の流れで重要な情報をサクッとメモできて、めちゃくちゃ便利でした。

ある日突然...

2026年2月上旬のこと。いつも通りClaude Codeを起動して、こう指示しました。

自分: 「今日の作業メモをmdmemoに保存して」
Claude: (あれ?MCPツールを使ってる...?)

問題発生

  • 自作SkillではなくMCPサーバーが優先されている
  • SkillとMCPで同じ名前(mdmemo)が競合
  • ワークフローが完全に壊れた

「え、何これ?昨日まで普通に動いてたのに...」状態です。

原因を調査してみた

Web版の設定が自動同期されていた

調べてみたところ、こんな事実が判明しました。

MCPの自動同期機能

claude.ai(Web版)で設定したMCPコネクターが、勝手にClaude Code CLIに同期される仕様になっていたんです。

なぜWeb版でMCPを設定していたのか

実は、私はclaude.ai(Web版)でmdmemo MCPコネクターを設定していました。理由は単純で、Webのチャット画面でも便利に使いたかったから。

でも、まさかこれがCLI環境にも自動同期されるなんて...

Web版とCLI版は別物だと思ってた

普通、そう思いますよね?でも実際は自動同期されていて、CLI側で設定した記憶がないのに突然MCPが有効になっていたわけです。

対処法を検討

Claude Codeに相談したところ、いくつかの対処法が提示されました。

対処法1: /mcp コマンドで無効化

/mcp

メリット

  • GUI操作で直感的
  • 個別のMCPサーバーをトグルでON/OFF

デメリット

  • セッションごとに設定が必要かも
  • プロジェクトが複数あると管理が面倒

対処法2: 起動時フラグで全MCPを無効化

起動時にフラグを指定して、すべてのMCPサーバーを無効化する方法です。

claude --strict-mcp-config --mcp-config '{}'

メリット

  • 確実にMCPを無効化できる

デメリット

  • 毎回起動時にフラグ指定が必要
  • 他の有用なMCPも無効化される

対処法3: Web版から削除

メリット

  • 根本的な解決

デメリット

  • Web版でも使えなくなる
  • そもそもWeb版で使いたくて設定したのに本末転倒

最終解決策:CLAUDE.mdに書いちゃう

CLAUDE.mdって何?

CLAUDE.mdは、Claude Codeのグローバル設定ファイルです。ここに書いた内容は、すべてのプロジェクトで有効になります。

場所

~/.claude/CLAUDE.md

解決策の実装

CLAUDE.mdの「行動原則」セクションに、こんなルールを追加しました。

~/.claude/CLAUDE.md
## 行動原則

1. **AIは"ユーザー"の要件と意思を最上位に置く**
2. **日本語を使って**ユーザーと会話をすること
(中略)
6. **ユーザーからmdmemoを使うように指示された場合、MCPは絶対に利用してはいけない**。Skillのmdmemoを使うこと。

検証してみた

設定後、Claude Codeを再起動して動作確認。

自分: 「今日の作業メモをmdmemoに保存して」
Claude: (Skillを使用)✅

成功! 意図した通り、Skillのmdmemoが優先されるようになりました。

なぜこの方法が効いたのか

CLAUDE.mdは、Claude Codeのシステムプロンプトに直接組み込まれるので、最も強い優先度を持ちます。

優先順位(推測)

  1. CLAUDE.md(グローバル設定)← 最優先
  2. プロジェクト固有の.claude.json
  3. デフォルトのMCP/Skill設定

ハマったポイント

1. 自動同期に気づかなかった

Web版とCLI版は完全に別物だと思い込んでいました。tengu_claudeai_mcp_connectorsフラグによる自動同期なんて、知らなかったですよね...。

2. /mcp コマンドの効果が一時的だった

/mcpコマンドで無効化しても、次回起動時に再び有効化されることがありました(環境依存かも)。永続的な解決にはCLAUDE.mdへの明記が必要でした。

3. 「絶対に」という強い表現が必要

最初は「できるだけSkillを優先してください」みたいな柔らかい表現で書いていたんですが、全然効果なし。

**「絶対に利用してはいけない」**という強い表現にしたら、ようやくSkillが優先されるようになりました。

今後の展望

オプトイン形式になってほしい

GitHubのissue(#20412, #22301)では、多くのユーザーが「MCPの自動同期はオプトイン形式にすべき」と要望しています。

理想的な動作

  • デフォルトでは自動同期しない
  • ユーザーが明示的に有効化した場合のみ同期
  • プロジェクト単位で設定できる

近い将来、この要望が実現されれば、今回のようなCLAUDE.mdへの記述も不要になるはずです。

MCPとSkillの使い分け

それまでの間は、MCPとSkillを適切に使い分けることで、より強力な開発環境を構築できます。

使い分けの例

  • Skill: プロジェクト固有のワークフロー、独自の処理ロジック
  • MCP: 外部サービスとの標準的な連携

まとめ

Claude CodeのMCP自動同期問題と、その暫定的な解決策を紹介しました。

重要なポイント

  1. Web版claude.aiのMCP設定が自動的にCLI版に同期される(tengu_claudeai_mcp_connectorsフラグ)
  2. 複数の対処法があるが、それぞれ一長一短
  3. 今のところ最も確実なのはCLAUDE.mdに明記する方法
  4. 「絶対に〜しない」という強い表現が有効

CLAUDE.mdへの記述例(再掲)

6. ユーザーから〇〇を使うように指示された場合、**MCPは絶対に利用してはいけない**。Skillの〇〇を使うこと。

同じ問題で困っている方の参考になれば幸いです。

参考リンク

Discussion