zetaphoenix888-byte/error-logger-mcp
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.
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: 運用フロー
通常の開発時:
- エラー発生 → Claude Codeで解決
- 解決完了時、Claude Codeが自動的にグローバルルールを参照
- log_errorツールでログを記録
- (プロジェクト固有のCLAUDE.mdがあれば、それも参照して詳細に記録)
過去のエラーを参照したい時:
"Cannot read property" に関連するエラーを検索してください
統計を確認したい時:
エラーの統計情報を表示してください
メリット
この二層構造により:
- ✅ グローバルルール: 全プロジェクトで一貫したエラー管理
- ✅ CLAUDE.md: プロジェクト固有の細かい調整
- ✅ 重複なし: 基本はグローバル、詳細はプロジェクト個別
- ✅ 自動適用: Claude Codeが自動的に両方を参照
アーキテクチャ図
┌─────────────────────────────────────────────────────────────┐
│ Claude Code │
│ │
│ 自動読み込み ↓ 自動読み込み ↓ │
│ ┌──────────────────────┐ ┌────────────────────┐ │
│ │ グローバルルール │ │ プロジェクトの │ │
│ │ (MCP Server) │ │ CLAUDE.md │ │
│ ├──────────────────────┤ ├────────────────────┤ │
│ │ • 基本方針 │ │ • プロジェクト固有 │ │
│ │ • 記録すべきエラー │ │ • 技術スタック固有 │ │
│ │ • 記録しない例外 │ │ • 詳細な例 │ │
│ │ • 記録形式 │ │ │ │
│ └──────────────────────┘ └────────────────────┘ │
│ ↓ ↓ │
│ └──────────┬───────────────────┘ │
│ ↓ │
│ エラー解決時にログ記録 │
│ ↓ │
└────────────────────────┼────────────────────────────────────┘
↓
┌──────────────────────┐
│ error-logger MCP │
│ log_error │
└──────────┬───────────┘
↓
┌───────────┐
│errors.json│
└───────────┘
動作フロー:
- Claude Code起動
- グローバルルール(MCP)+ プロジェクトのCLAUDE.md を自動読み込み
- エラー発生 → 解決
- ルールに従ってlog_errorツールを自動実行
- errors.jsonに保存
- 次回同じエラーが発生時、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
トラブルシューティング
接続できない場合:
- サーバーPCで
npm run serverが起動しているか確認 - ファイアウォールでポート3000が開いているか確認
- IPアドレスが正しいか確認(
ipconfig) - 同じWi-Fiルーターに接続しているか確認
認証エラーが発生する場合:
Unauthorized: Invalid or missing PIN codeエラー:- サーバーPCの
.envにERROR_LOGGER_PINが設定されているか確認 - クライアントPCとサーバーPCで同じPINを使っているか確認
- Claude Codeを再起動してから再試行
- サーバーPCの
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