error-logger-mcp

zetaphoenix888-byte/error-logger-mcp

3.1

If you are the rightful owner of error-logger-mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.

The Error Logger MCP Server is designed to log, search, and manage errors and operational rules for Claude Code.

Tools
12
Resources
0
Prompts
0

Error Logger MCP Server

Claude Codeで発生したエラーとその解決方法を記録・検索し、さらに動作ルールを管理するためのMCPサーバーです。

機能

エラー管理

  • エラーの記録: エラーメッセージと解決方法を保存
  • エラー検索: キーワードやタグでエラーを検索
  • 履歴管理: 過去のエラーと解決方法を参照
  • タグ付け: カテゴリ別にエラーを整理
  • データ共有: 複数PC間でエラーデータをエクスポート・インポート
  • 重複除去: 類似エラーを自動検出してマージ
  • 統計情報: エラータイプやタグ別の集計

動作ルール管理

  • ルールの追加: Claude Codeに従ってほしい動作ルールやベストプラクティスを登録
  • ルール検索: カテゴリ、重要度、タグでルールを検索
  • スコープ指定: グローバル、プロジェクト、特定ファイルパターンごとにルールを適用
  • 重要度設定: info(提案)、warning(推奨)、error(必須)の3段階
  • ルール管理: ルールの有効化/無効化、削除

インストール

方法1: npmパッケージからインストール(推奨)

# グローバルインストール
npm install -g error-logger-mcp

# または、ローカルインストール
npm install error-logger-mcp

Claude Codeへの設定:

グローバルインストールの場合(~/.claude/settings.json):

{
  "mcpServers": {
    "error-logger": {
      "command": "error-logger-mcp"
    }
  }
}

ローカルインストールの場合:

{
  "mcpServers": {
    "error-logger": {
      "command": "npx",
      "args": ["error-logger-mcp"]
    }
  }
}

方法2: ソースからインストール

# リポジトリをクローン
git clone https://github.com/zetaP/error-logger-mcp.git
cd error-logger-mcp

# 依存関係のインストール
npm install

# TypeScriptのビルド
npm run build

Claude Codeへの設定:

{
  "mcpServers": {
    "error-logger": {
      "command": "node",
      "args": ["/path/to/error-logger-mcp/dist/index.js"]
    }
  }
}

設定後、Claude Codeを再起動してください。

クイックスタート:エラー自動記録の設定

Claude Codeでエラーを解決したら自動的にログを記録させる設定を行いましょう(推奨):

1回だけの設定(5分)

Claude Codeを起動して、以下をコピー&ペーストしてください:

以下のルールを追加してください:

タイトル: エラー解決時は必ずlog_errorでログを記録

説明: ビルドエラー、実行エラー、テスト失敗などを解決した際は、必ずerror-logger MCPのlog_errorツールを使用してエラー内容と解決方法を記録すること。

【記録すべきエラー】
- ビルドエラー(TypeScript、Webpack等)
- ランタイムエラー
- テストの失敗
- 依存関係の問題
- 設定ファイルの問題
- API呼び出しのエラー
- パフォーマンス問題の解決

【記録しなくてよい場合】
- 単純なタイポの修正
- コメントの追加のみ
- フォーマットの調整のみ

【記録形式】
- error_message: エラーメッセージ(正確に)
- solution: 解決方法(具体的な手順)
- error_type: エラー種類(TypeError等)
- context: 発生状況(ファイル名、操作等)
- tags: 関連タグ(言語、ライブラリ等)

カテゴリ: general
重要度: warning
適用範囲: global
タグ: ["error-logging", "mcp", "best-practice", "required"]

これですべてのプロジェクトで自動的にエラーログが記録されるようになります!

詳細は「推奨セットアップ:エラーログの自動記録」セクションを参照してください。


使用可能なツール

1. log_error

エラーと解決方法を記録します。

パラメータ:

  • error_message (必須): エラーメッセージ
  • solution (必須): 解決方法
  • error_type (任意): エラーの種類(例: "TypeError", "NetworkError")
  • context (任意): エラーが発生した状況
  • tags (任意): タグの配列(例: ["nodejs", "typescript"])

2. search_errors

過去のエラーを検索します。

パラメータ:

  • query (必須): 検索キーワード
  • tags (任意): タグでフィルタリング

3. get_recent_errors

最近のエラーを取得します。

パラメータ:

  • limit (任意): 取得件数(デフォルト: 10)

4. get_error_details

特定のエラーの詳細を取得します。

パラメータ:

  • error_id (必須): エラーID

5. delete_error

エラー記録を削除します。

パラメータ:

  • error_id (必須): エラーID

6. list_all_errors

すべてのエラーをリスト表示します。

7. export_errors

すべてのエラーをJSONファイルにエクスポートします(複数PC間での共有用)。

パラメータ:

  • export_path (必須): エクスポート先のファイルパス

8. import_errors

他のPCからエクスポートされたエラーデータをインポートします。

パラメータ:

  • import_path (必須): インポートするファイルパス
  • merge_strategy (任意): "merge"(既存データに追加、デフォルト)または "replace"(既存データを置換)

9. deduplicate_errors

重複・類似したエラーを検出してマージします。

パラメータ:

  • similarity_threshold (任意): 類似度のしきい値(0.0-1.0、デフォルト: 0.8)

10. get_statistics

エラーの統計情報を取得します(総数、タイプ別、タグ別の集計)。

11. mark_error_helpful ⭐ NEW

エラー情報が問題解決に役立った時にフィードバックします。重要度が自動的に上がり、今後の検索で優先的に表示されます。

パラメータ:

  • error_id (必須): 役立ったエラーのID

使用例:

過去のエラー「xxxxx」の解決方法が役立ちました。これを helpful としてマークしてください。

評価基準(5段階):

  • ⭐⭐⭐⭐⭐ (5): 非常に役立つ(成功率80%以上、参照3回以上)
  • ⭐⭐⭐⭐ (4): 役立つ(成功率60%以上、参照5回以上)
  • ⭐⭐⭐ (3): 普通(デフォルト)
  • ⭐⭐ (2): あまり役立たない
  • ⭐ (1): 役立たない(成功率30%未満、参照5回以上)

12. mark_error_unhelpful ⭐ NEW

エラー情報が問題解決に役立たなかった時にフィードバックします。重要度が自動的に下がり、今後の検索で優先度が低くなります。

パラメータ:

  • error_id (必須): 役立たなかったエラーのID

使用例:

過去のエラー「xxxxx」の解決方法を試しましたが、問題は解決しませんでした。これを unhelpful としてマークしてください。

ルール管理ツール

13. add_rule

Claude Codeに従ってほしい動作ルールやベストプラクティスを追加します。

パラメータ:

  • title (必須): ルールの短いタイトル
  • description (必須): 詳細な説明(何をすべきか、何を避けるべきか)
  • category (必須): カテゴリ(coding-style, file-management, library-usage, general, other
  • severity (必須): 重要度(info: 提案、warning: 推奨、error: 必須)
  • scope (必須): 適用範囲(global: 全プロジェクト、project: 現在のプロジェクト、file: 特定ファイル)
  • scope_pattern (任意): ファイルスコープの場合のパターン(例: *.ts, src/**/*.js
  • tags (任意): タグの配列

例:

以下のルールを追加してください:
タイトル: "絵文字を使わない"
説明: "コードやコミットメッセージに絵文字を使用しないこと"
カテゴリ: coding-style
重要度: warning
適用範囲: project
タグ: ["style", "emoji"]

14. list_rules

登録されているすべてのルールをリスト表示します。

パラメータ:

  • include_inactive (任意): 無効なルールも含める(デフォルト: false)

15. search_rules

ルールを検索します。

パラメータ:

  • query (任意): タイトルまたは説明で検索
  • category (任意): カテゴリでフィルタリング
  • severity (任意): 重要度でフィルタリング
  • tags (任意): タグでフィルタリング

16. get_active_rules

現在アクティブなルールを取得します。ファイルパスを指定すると、そのファイルに適用されるルールのみを取得します。

パラメータ:

  • file_path (任意): 特定のファイルに適用されるルールのみ取得

17. delete_rule

ルールを削除します。

パラメータ:

  • rule_id (必須): ルールID

18. toggle_rule

ルールの有効/無効を切り替えます。

パラメータ:

  • rule_id (必須): ルールID

使用例

エラー管理

# エラーを記録
"TypeError: Cannot read property 'foo' of undefined" というエラーが発生しました。
解決方法は「オブジェクトにアクセスする前にnullチェックを追加」です。
タグは ["typescript", "null-check"] で記録してください。

# エラーを検索
"Cannot read property" に関連する過去のエラーを検索してください。

# 最近のエラーを確認
最近のエラー5件を表示してください。

# エラーデータをエクスポート(他のPCで使用するため)
エラーデータを "C:\Users\username\Desktop\errors-export.json" にエクスポートしてください。

# 他のPCからエラーデータをインポート
"C:\Users\username\Downloads\errors-from-pc2.json" からエラーデータをインポートしてください。

# 重複したエラーを削除
重複エラーを検出してマージしてください。

# 統計情報を表示
エラーの統計情報を表示してください。

# フィードバック(重要度の自動調整)
過去のエラー「1234567890abc」の解決方法が役立ちました。helpful としてマークしてください。
# → 重要度が上がり、今後の検索で優先的に表示されます

過去のエラー「9876543210xyz」の解決方法を試しましたが、問題は解決しませんでした。unhelpful としてマークしてください。
# → 重要度が下がり、今後の検索で優先度が低くなります

ルール管理

# ルールを追加
以下のルールを追加してください:
- タイトル: "絵文字を使わない"
- 説明: "コード、コメント、コミットメッセージに絵文字を使用しないこと"
- カテゴリ: coding-style
- 重要度: warning
- 適用範囲: project
- タグ: ["style", "emoji"]

# 別の例: 特定ファイルへのルール
以下のルールを追加してください:
- タイトル: "自動生成ファイルは編集禁止"
- 説明: "dist/以下のファイルは自動生成されるため、直接編集しないこと"
- カテゴリ: file-management
- 重要度: error
- 適用範囲: file
- ファイルパターン: "dist/**/*"
- タグ: ["generated", "readonly"]

# 登録されているルールを確認
すべてのルールをリスト表示してください。

# アクティブなルールを確認
現在有効なルールを表示してください。

# 特定のファイルに適用されるルールを確認
"src/index.ts" に適用されるルールを表示してください。

# ルールを検索
"絵文字" に関連するルールを検索してください。

# ルールを無効化
ルールID "xxxxx" を無効化してください。

複数PC間でのデータ共有

ワークフロー例

PC1でエクスポート:

エラーデータを "D:\shared\errors.json" にエクスポートしてください。

PC2でインポート:

"D:\shared\errors.json" からエラーデータをインポートしてください。

重複を削除:

重複エラーをマージしてください。

このワークフローにより、複数のPCで同じエラー情報を共有し、重複を自動的に除去できます。

データの保存場所

  • エラーデータ: errors.json(プロジェクトルート)
  • ルールデータ: rules.json(プロジェクトルート)

推奨セットアップ:エラーログの自動記録

エラー解決時に自動的にログを記録させる仕組みを構築できます。

ステップ1: グローバルルールの登録(全プロジェクト共通)

Claude Codeを起動して、以下のルールを追加してください:

以下のルールを追加してください:

タイトル: エラー解決時は必ずlog_errorでログを記録

説明: ビルドエラー、実行エラー、テスト失敗などを解決した際は、必ずerror-logger MCPのlog_errorツールを使用してエラー内容と解決方法を記録すること。

【記録すべきエラー】
- ビルドエラー(TypeScript、Webpack等)
- ランタイムエラー
- テストの失敗
- 依存関係の問題
- 設定ファイルの問題
- API呼び出しのエラー
- パフォーマンス問題の解決

【記録しなくてよい場合】
- 単純なタイポの修正
- コメントの追加のみ
- フォーマットの調整のみ

【記録形式】
- error_message: エラーメッセージ(正確に)
- solution: 解決方法(具体的な手順)
- error_type: エラー種類(TypeError等)
- context: 発生状況(ファイル名、操作等)
- tags: 関連タグ(言語、ライブラリ等)

カテゴリ: general
重要度: warning
適用範囲: global
タグ: ["error-logging", "mcp", "best-practice", "required"]

このルールは一度登録すれば、すべてのプロジェクトで自動的に適用されます。

ステップ2: プロジェクト固有のCLAUDE.md設定(任意)

各プロジェクトのルートにCLAUDE.mdを作成し、プロジェクト固有の補足を記載します:

テンプレート:

# [プロジェクト名] - Claude Code 設定

## エラーログ記録ルール(補足)

> 基本ルールはerror-logger MCPのグローバルルールを参照。
> ここではこのプロジェクト固有の補足のみ記載。

### このプロジェクト固有の注意事項

1. **[技術スタック固有のルール]**
   - 例: Reactコンポーネントのエラーは必ずタグに "react" を含める
   - 例: Djangoのマイグレーションエラーはタグに "django", "migration" を含める

2. **[よくあるエラーパターン]**
   - 例: このプロジェクトでは環境変数の設定ミスが多いため、詳細に記録

3. **[記録例]**

エラー: "Module not found: '@/components/Header'" 解決方法: "tsconfig.jsonのpathsに@エイリアスを追加" タイプ: "ModuleNotFoundError" コンテキスト: "Next.jsプロジェクトの絶対パスインポート設定" タグ: ["nextjs", "typescript", "alias", "config"]

ステップ3: 運用フロー

通常の開発時:

  1. エラー発生 → Claude Codeで解決
  2. 解決完了時、Claude Codeが自動的にグローバルルールを参照
  3. log_errorツールでログを記録
  4. (プロジェクト固有のCLAUDE.mdがあれば、それも参照して詳細に記録)

過去のエラーを参照したい時:

"Cannot read property" に関連するエラーを検索してください

統計を確認したい時:

エラーの統計情報を表示してください

メリット

この二層構造により:

  • グローバルルール: 全プロジェクトで一貫したエラー管理
  • CLAUDE.md: プロジェクト固有の細かい調整
  • 重複なし: 基本はグローバル、詳細はプロジェクト個別
  • 自動適用: Claude Codeが自動的に両方を参照

アーキテクチャ図

┌─────────────────────────────────────────────────────────────┐
│                      Claude Code                            │
│                                                             │
│  自動読み込み ↓                     自動読み込み ↓          │
│  ┌──────────────────────┐        ┌────────────────────┐    │
│  │ グローバルルール      │        │ プロジェクトの      │    │
│  │ (MCP Server)         │        │ CLAUDE.md          │    │
│  ├──────────────────────┤        ├────────────────────┤    │
│  │ • 基本方針           │        │ • プロジェクト固有 │    │
│  │ • 記録すべきエラー   │        │ • 技術スタック固有 │    │
│  │ • 記録しない例外     │        │ • 詳細な例         │    │
│  │ • 記録形式           │        │                    │    │
│  └──────────────────────┘        └────────────────────┘    │
│             ↓                              ↓                │
│             └──────────┬───────────────────┘                │
│                        ↓                                    │
│              エラー解決時にログ記録                          │
│                        ↓                                    │
└────────────────────────┼────────────────────────────────────┘
                         ↓
              ┌──────────────────────┐
              │  error-logger MCP    │
              │    log_error         │
              └──────────┬───────────┘
                         ↓
                   ┌───────────┐
                   │errors.json│
                   └───────────┘

動作フロー:

  1. Claude Code起動
  2. グローバルルール(MCP)+ プロジェクトのCLAUDE.md を自動読み込み
  3. エラー発生 → 解決
  4. ルールに従ってlog_errorツールを自動実行
  5. errors.jsonに保存
  6. 次回同じエラーが発生時、search_errorsで過去の解決方法を検索可能

並行アクセス対応

このMCPサーバーは複数のClaude Codeインスタンスから同時にアクセス可能です。

技術的実装

  • ファイルロック: proper-lockfileライブラリを使用
  • 排他制御: 書き込み時に自動的にファイルロックを取得
  • リトライ機能: ロック競合時は最大10回リトライ(50ms-1000ms間隔)
  • 最新データ読み込み: 各操作で最新のファイル状態を読み込み

使用例

複数のClaude Codeを同時に起動し、それぞれでエラーログやルールを追加しても、データの整合性が保たれます。

Claude Code 1: log_error で新しいエラーを記録
  ↓ (同時実行)
Claude Code 2: add_rule で新しいルールを追加
  ↓
両方のデータが正しくerrors.json/rules.jsonに保存される

注意事項(同一PC内)

  • ファイルロック中は他のインスタンスが待機します(最大1秒)
  • 大量の同時書き込みは避けてください(パフォーマンス低下)
  • ロックファイル(.lock)が残っている場合は手動で削除してください

ネットワーク越しのアクセス(LAN内の複数PC間で共有)

同じルーター内の複数PCからアクセスできます。

🔒 シンプル&セキュアな認証

  • サーバーPC(自分のPC): 認証不要 ✅
  • LAN内の他のPC: 4桁のPINコード認証のみ 🔒

セットアップ手順

1. サーバーPCの設定(1台のPCで実行)

ステップ1: PINコードを設定

.envファイルを作成(または編集):

# 4桁のPINコード(好きな数字に変更してください)
ERROR_LOGGER_PIN=1234

# 認証を有効化
ERROR_LOGGER_REQUIRE_AUTH=true

ステップ2: HTTPサーバーを起動

npmパッケージからインストールした場合:

# HTTPサーバーを起動
error-logger-server

ソースからインストールした場合:

# ビルド
npm run build

# HTTPサーバーを起動
npm run server

ステップ3: IPアドレスを確認

Windows:

ipconfig | findstr "IPv4"

出力例: 192.168.11.3 (この値をメモ)

2. クライアントPCの設定(他のすべてのPC)

ステップ1: パッケージをインストール

# グローバルインストール(推奨)
npm install -g error-logger-mcp

ステップ2: Claude Code設定ファイルを編集

Claude Code設定ファイル(~/.claude/settings.json)を編集:

{
  "mcpServers": {
    "error-logger": {
      "command": "error-logger-mcp",
      "env": {
        "ERROR_LOGGER_MODE": "remote",
        "ERROR_LOGGER_SERVER_URL": "http://192.168.11.3:3000",
        "ERROR_LOGGER_PIN": "1234"
      }
    }
  }
}

重要:

  • ERROR_LOGGER_SERVER_URL はサーバーPCのIPアドレスに置き換えてください
  • ERROR_LOGGER_PINサーバーPCと同じPINを使用してください

Claude Codeを再起動してください。

動作確認

サーバーPC(認証不要)
# ヘルスチェック
curl http://localhost:3000/health

# API動作確認(localhostからは認証不要!)
curl http://localhost:3000/api/errors
クライアントPC(PIN必須)
# ヘルスチェック
curl http://192.168.11.3:3000/health

# API動作確認(PINコードが必要)
curl -H "X-PIN-Code: 1234" http://192.168.11.3:3000/api/errors

トラブルシューティング

接続できない場合:

  1. サーバーPCでnpm run serverが起動しているか確認
  2. ファイアウォールでポート3000が開いているか確認
  3. IPアドレスが正しいか確認(ipconfig
  4. 同じWi-Fiルーターに接続しているか確認

認証エラーが発生する場合:

  • Unauthorized: Invalid or missing PIN code エラー:
    1. サーバーPCの.envERROR_LOGGER_PINが設定されているか確認
    2. クライアントPCとサーバーPCで同じPINを使っているか確認
    3. Claude Codeを再起動してから再試行

PINが設定されていない警告:

  • サーバー起動時に WARNING: ERROR_LOGGER_PIN is not set が表示される
  • .envファイルにERROR_LOGGER_PIN=1234を追加してください

curlコマンドでの文字化け問題(Windows):

Windowsのcurlで日本語レスポンスが文字化けする場合、以下の方法で解決できます:

方法1: JSONファイルに出力して確認(最も確実)

curl -H "X-PIN-Code: 1234" http://192.168.11.3:3000/api/errors > response.json
# 出力されたresponse.jsonをテキストエディタ(VS Code等)で開く

方法2: PowerShellのInvoke-WebRequestを使用

$response = Invoke-WebRequest -Uri "http://192.168.11.3:3000/api/errors" `
  -Headers @{"X-PIN-Code"="1234"} -UseBasicParsing
$response.Content | ConvertFrom-Json | ConvertTo-Json -Depth 10

方法3: Claude CodeのMCPツールから直接使用(推奨)

通常の使用では、Claude CodeのMCPツール経由でアクセスするため、この文字化け問題は発生しません。

最新のエラーを10件取得してください

注意: サーバー側は正しくUTF-8で動作しています。これはクライアント側(Windows curl)の表示の問題です。

開発

# 開発モード(ウォッチモード)
npm run dev

# ビルド
npm run build

# 起動
npm start

ライセンス

MIT