mcpField
L
LogCarver

LogCarver

ローカル
caiderek.github.ioデータベース11 週間前に更新

LogCarver について

LogCarverは、SQL Serverのトランザクションログを調べ、削除・更新・挿入された行を探す読み取り専用のMCPサーバーです。事前にAudit、CDC、Change Trackingを有効にせずに変更を調査できます。

主な機能

  1. 01トランザクションログから行の変更を検索
  2. 02削除・更新・挿入による絞り込み
  3. 03時間範囲やキーによる絞り込み
  4. 04イベント概要と変更前後の値を返却
  5. 05提案用の取り消しSQLを提示

活用シーン

  1. 01テーブルで最近削除された行の特定
  2. 02指定キーのレコード履歴の確認
  3. 03時間範囲を指定した変更調査

MCP 対応

MCPクライアントにfind_deleted_rowsツールを提供し、SQL Serverを読み取り専用で検索します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ
パッケージ
nugetLogCarver.Mcp0.1.4

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

LogCarver のロゴ

LogCarver.Mcp

英語 | 繁體中文

データベースのトランザクションログ(fn_dblog)を読み取り、「この SQL Server テーブルから直前に削除された行は何ですか?」という質問に AI アシスタントが答えられるようにする、読み取り専用の MCP サーバーです。Audit、CDC、Change Tracking を事前に有効にしておく必要はありません。

LogCarver(MIT)のデコードエンジンを薄くラップしています。すべての処理はお使いのマシン上で実行され、外部にデータが送信されることはありません。

ステータス: 初期段階(v0.1)です。NuGet および公式 MCP レジストリに io.github.caiderek/logcarver-mcp として登録されています。

クイックスタート(5 分)

  1. インストール(.NET 10 SDK またはランタイムが必要です):

    dotnet tool install -g LogCarver.Mcp
    
  2. 使い捨てのデータベースを作成します。 SSMS または sqlcmd で examples/try-it.sql を実行します。McpTest を作成し、10 件の注文を挿入してから、4 件を削除し、1 件を更新します。

  3. パスワードをコマンドに含めないようにします。 接続文字列を、自分だけが読み取れるファイルに保存します(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 設定にも表示されません。このファイルをどこにもコミットしないでください。

  1. 新しい会話で質問します:「McpTest の dbo.Orders から削除された行はどれですか?」Bob、Carol、Dave、Eve(Id 2~5)が表示されるはずです。続けて「Id=1 の履歴を表示して」(Amount は 100.00 から 111.11、Note は first から changed)、「元に戻す SQL も含めて」と試してみてください。

  2. クリーンアップ: 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 に登録されていない限り拒否されます
operationsdelete(デフォルト)、update、insert、all
from、toISO 8601 の時間範囲。サーバーのローカル時刻を使用し、タイムゾーン変換は行いません
keyColumn=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 を参照してください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。