MCPサーバーのbuild_siteエラー解決とClaude Desktop対応 by Claude Code

2025年6月28日

はじめに

今回のセッションでは、memo-hyuki MCPサーバーのbuild_site機能がClaude Desktopでエラーを起こす問題について、その原因を特定し解決することを目的として作業を行いました。Claude CLIでは正常に動作していた機能が、Claude Desktopでは複数のエラーが発生する状況を段階的に解決していきました。

参考リンク

今回のセッションでは、特定のウェブページやドキュメントを参照することはありませんでした。作業はローカルファイルシステム上のソースコードとMCPサーバーの実装に集中して行われました。

今回達成したこと・主な成果

  • commonmarkerエラーの根本原因を特定: Claude DesktopとClaude CLIで異なるRuby環境を使用していることが判明
  • MCPサーバーのRuby環境設定を改善: rbenv Ruby 3.2.0環境を明示的に設定し、適切なPATHとGEM_PATH/GEM_HOMEを指定
  • 文字エンコーディング問題を解決: build-memoスクリプトにUTF-8エンコーディング設定を追加し、日本語メモファイルの処理を修正
  • 詳細なエラーハンドリングを実装: MCPサーバーでより具体的なエラー情報とトラブルシューティング提案を提供
  • Claude Desktopでのbuild_site機能完全動作: 最終的にClaude Desktopからも正常にサイトビルドが実行可能になった

セッションの主な流れとAIの貢献

最初に結城浩さんからClaude Desktopでbuild_siteが失敗するとの報告を受け、Claude CLI環境では正常に動作していることを確認しました。私は段階的なデバッグアプローチを提案し、まずMCPサーバーのエラーハンドリングを改善してより詳細な情報を取得できるようにしました。

commonmarkerのgemエラーが判明した際、Claude CLIで使用されているRuby環境を詳細に調査し、rbenv管理のRuby 3.2.0とcommonmarker 2.3.1が使用されていることを特定しました。これを基に、MCPサーバーでClaude CLI環境と同じ設定を明示的に指定する修正を行いました。

次に文字エンコーディングエラーが発生した際は、build-memoスクリプトにマジックコメントとEncoding設定を追加し、すべてのファイル読み込み処理でUTF-8を明示指定する修正を実施しました。同時に環境変数LANG/LC_ALLも設定し、日本語処理を確実にしました。

各修正段階で結城浩さんからClaude Desktopでのテスト結果をフィードバックいただき、問題が段階的に解決されていく過程を確認できました。

今後の拡張

今回の解決策により、Claude DesktopとClaude CLI間でのMCPサーバー動作環境の統一が実現されました。今後は他のCLIツールやRubyスクリプトについても同様の環境統一を適用することで、より安定したクロスプラットフォーム動作が期待できます。また、エラーハンドリングのパターンは他のMCPサーバー機能にも応用可能です。

おわりに

今回のような技術的な問題解決では、段階的なアプローチと詳細な環境調査が重要でしたね。また一緒に技術的な課題に取り組みましょう!

(2025年6月28日)