LogCarver について
LogCarverは、SQL Serverのトランザクションログを調べ、削除・更新・挿入された行を探す読み取り専用のMCPサーバーです。事前にAudit、CDC、Change Trackingを有効にせずに変更を調査できます。
主な機能
- 01トランザクションログから行の変更を検索
- 02削除・更新・挿入による絞り込み
- 03時間範囲やキーによる絞り込み
- 04イベント概要と変更前後の値を返却
- 05提案用の取り消しSQLを提示
活用シーン
- 01テーブルで最近削除された行の特定
- 02指定キーのレコード履歴の確認
- 03時間範囲を指定した変更調査
MCP 対応
MCPクライアントにfind_deleted_rowsツールを提供し、SQL Serverを読み取り専用で検索します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細

LogCarver.Mcp
英語 | 繁體中文
データベースのトランザクションログ(fn_dblog)を読み取り、「この SQL Server テーブルから直前に削除された行は何ですか?」という質問に AI アシスタントが答えられるようにする、読み取り専用の MCP サーバーです。Audit、CDC、Change Tracking を事前に有効にしておく必要はありません。
LogCarver(MIT)のデコードエンジンを薄くラップしています。すべての処理はお使いのマシン上で実行され、外部にデータが送信されることはありません。
ステータス: 初期段階(v0.1)です。NuGet および公式 MCP レジストリに
io.github.caiderek/logcarver-mcpとして登録されています。
クイックスタート(5 分)
-
インストール(.NET 10 SDK またはランタイムが必要です):
dotnet tool install -g LogCarver.Mcp -
使い捨てのデータベースを作成します。 SSMS または
sqlcmdでexamples/try-it.sqlを実行します。McpTestを作成し、10 件の注文を挿入してから、4 件を削除し、1 件を更新します。 -
パスワードをコマンドに含めないようにします。 接続文字列を、自分だけが読み取れるファイルに保存します(SQL ログインには sysadmin 権限が必要です)。
Server=localhost;Database=McpTest;User Id=YOUR_LOGIN;Password=YOUR_PASSWORD;TrustServerCertificate=true
たとえば C:\Users\you\logcarver-mcp.conn という名前で保存します(1 行のみで、ほかには何も記載しません)。次に、サーバーを追加し、そのファイルを指定します。
claude mcp add --scope user logcarver --env LOGCARVER_MCP_CONNECTION_STRING_FILE="C:\Users\you\logcarver-mcp.conn" -- logcarver-mcp
パスワードをコマンドラインで入力する必要はなく、MCP 設定にも表示されません。このファイルをどこにもコミットしないでください。
-
新しい会話で質問します:「McpTest の dbo.Orders から削除された行はどれですか?」Bob、Carol、Dave、Eve(Id 2~5)が表示されるはずです。続けて「Id=1 の履歴を表示して」(Amount は 100.00 から 111.11、Note は first から changed)、「元に戻す SQL も含めて」と試してみてください。
-
クリーンアップ:
DROP DATABASE McpTest;、claude mcp remove logcarver。
結果が空の場合は、ログ領域が再利用されている可能性があります(たとえば、SIMPLE 復旧モデルでの CHECKPOINT 後や、ログバックアップ後など)。以下の制限をご覧ください。
このツールの動作
ツールは find_deleted_rows の 1 つです。読み取りのみを行います。SELECT と、ログから INSERT が消えた行を再構築するためのデータページの DBCC PAGE 読み取りを実行します。データを変更することはなく、オプションの取り消し SQL もプレーンテキストとして返すだけで、ツールが実行することはありません。
| パラメーター | 説明 |
|---|---|
table(必須) | スキーマ修飾名。例:dbo.Orders |
database | 接続文字列のデータベースがデフォルトです。別のデータベースは、LOGCARVER_MCP_ALLOWED_DATABASES に登録されていない限り拒否されます |
operations | delete(デフォルト)、update、insert、all |
from、to | ISO 8601 の時間範囲。サーバーのローカル時刻を使用し、タイムゾーン変換は行いません |
key | Column=Value。1 行の履歴のみを返します。列名の大文字と小文字は区別されません。日付、bit、10 進数、16 進バイナリ値は、記述した値と一致します |
maxRows | デフォルトは 20、最大 500、0 は件数のみです。直近のイベントが保持されます |
includeUndoSql | 各イベントを元に戻すための SQL 案も返します |
結果は JSON で、summary(件数、切り詰めの有無、警告、注記)と events(種類、タイムスタンプ、LSN、トランザクション ID、変更前後の列の値、注記)が含まれます。バイナリ値は 16 進文字列、10 進数は文字列として返されるため、値が暗黙に丸められることはありません。
要件と制限
- 接続に使用するログインには sysadmin 権限が必要です(
fn_dblogに必要です)。 - 確認できるのは アクティブログ に残っている内容のみです。ログ領域が再利用されている場合、結果は空になりますが、これは不具合ではありません。有料版の LogCarverOffline ツールでは、未加工の
.ldfを読み取ることで、このようなケースでも復旧できることがよくあります。 TRUNCATEとDROPは復旧できません。- 圧縮されたテーブルは拒否されます。
time列、xml列、行外の LOB 値は拒否されるか、needsManualReviewとしてフラグが付けられます。推測で補うことはありません。 - SQL Server 2025、2022、2019、2016(SP2)で検証済みです。そのほかのバージョンでは
notesに警告が返されます。 - 大きなアクティブログのスキャンには、1 分以上かかる場合があります。
設定
接続文字列は環境変数から取得されるため、認証情報が AI との会話を経由することはありません。
LOGCARVER_MCP_CONNECTION_STRING=Server=localhost;Database=MyDb;Integrated Security=true;TrustServerCertificate=true
または、LOGCARVER_MCP_CONNECTION_STRING_FILE に接続文字列を含むファイルを指定してください。
ログインユーザーは sysadmin で、呼び出し元は AI であるため、ツールが読み取れるのは接続文字列で指定されたデータベースだけです。ほかのデータベースも読み取れるようにするには、データベースを列挙してください(カンマまたはセミコロン区切り)。
LOGCARVER_MCP_ALLOWED_DATABASES=Sales;HR
行の値はデータベースから直接取得されます。これはデータであり、指示ではありません。ツールの説明でもその旨をモデルに伝えています。
インストール
.NET 10 SDK またはランタイムが必要です。
dotnet tool install -g LogCarver.Mcp
または、dnx を使ってインストールせずに実行できます。
dotnet dnx LogCarver.Mcp --yes
Claude Code
claude mcp add logcarver --env LOGCARVER_MCP_CONNECTION_STRING="Server=localhost;Database=MyDb;Integrated Security=true;TrustServerCertificate=true" -- logcarver-mcp
グローバルツールの代わりに dnx を使う場合は、コマンドの末尾に -- dotnet dnx LogCarver.Mcp --yes を付けてください。
ソースから
git clone --recurse-submodules https://github.com/caiderek/LogCarver.Mcp
dotnet build
dotnet run --project src/LogCarver.Mcp
テスト
dotnet test tests/LogCarver.Mcp.Tests
dotnet test tests/LogCarver.Mcp.IntegrationTests
統合テストには、ローカルの SQL Server と sysadmin の Windows ログインが必要です。テストでは、独自のサンドボックスデータベース LogCarver_McpTests を作成し、削除します。
ライセンス
MIT です。詳細は LICENSE を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。