mcpField
T
tamperlens

tamperlens

ローカル
tamperlens.comセキュリティ02 週間前に更新

tamperlens について

tamperlens-mcpは、文書をエージェントのコンテキストに入れる前に、完全性、墨消し、モデルによる読み取りの安全性を確認するMCPサーバーです。ファイルの内容をTamperlens APIに送り、判定ではなくリスク情報を返します。

主な機能

  1. 01編集履歴、メタデータ、署名、隠し情報の検査
  2. 02墨消しで元データが削除されたか確認
  3. 03文書と原本の比較
  4. 04文書の振り分けと処理コストの見積もり
  5. 05案件内の文書間の不整合の確認

活用シーン

  1. 01エージェントが読む前のファイル審査
  2. 02文書共有前の墨消し確認
  3. 03候補ファイルと保管中の原本の比較
  4. 04トリアージ結果に基づく文書受付の振り分け

MCP 対応

Tamperlensの文書検査、トリアージ、墨消し確認、比較、案件レビューをMCPツールとして提供します。分析はローカルではなくTamperlens REST APIが実行します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"com-tamperlens": {
"command": "npx",
"args": [
"-y",
"tamperlens-mcp"
],
"env": {
"TAMPERLENS_API_KEY": "<TAMPERLENS_API_KEY>",
"TAMPERLENS_BASE_URL": "<TAMPERLENS_BASE_URL>",
"TAMPERLENS_ALLOWED_DIRS": "<TAMPERLENS_ALLOWED_DIRS>"
}
}
}
}
起動コマンドnpx -y tamperlens-mcp
設定が必要な環境変数
TAMPERLENS_API_KEYシークレットOptional. Without it the anonymous allowance applies (10 documents/hour); a free key from tamperlens.com/account raises it. compare_documents and inspect_case require a key.
TAMPERLENS_BASE_URLOptional. Defaults to the public deployment at https://tamperlens.com.
TAMPERLENS_ALLOWED_DIRSOptional. Colon- or comma-separated absolute directories to confine local file reads to. Unset means any absolute path the process can read (the default). Set it to an intake directory so a path argument cannot reach secrets like ~/.ssh or a stray .env; symlinks out of a root are resolved and refused.

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmtamperlens-mcp1.43.0

ツール

4

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
urlstringいいえドキュメント取得元の http:/https: URL。取得はこのマシン自身のネットワーク上でローカルに実行され(Tamperlens サーバーからではありません)、送信されるのはバイトデータのみです。http/https のみ受け付けます。リダイレクトは追跡後に再検査します。上限は 10 MB で、受信バイト数に対して適用されます。path とどちらか一方を指定してください。
pathstringいいえこのマシン上にあるドキュメント(PDF、Office ドキュメント、画像)の絶対パス。上限は 10 MB です。url とどちらか一方を指定してください。
issuerstringいいえ省略可能な発行元 slug(例:'chase')。指定すると、その機関の真正なドキュメントの構造ベースラインとも比較します。PDF のみ対象です。Office ドキュメントと画像では無視されます。
policyobjectいいえ省略可能です。独自のリスクしきい値とシグナルルールを指定します。レスポンスに、それらに基づいて算出された accept/review/reject の判定が追加されます。レポートのその他の内容は変わりません。
policy.rejectnumberいいえ
policy.reviewnumberいいえ
policy.rejectOnarrayいいえ
policy.reviewOnarrayいいえ

詳細

tamperlens-mcp

Tamperlens の MCP サーバーです。ドキュメントが編集されていないか、墨消しが適切に機能しているか、モデルに読み取らせても安全かを、エージェントのコンテキストに届く前に確認できます。

// Claude Desktop / Claude Code — claude_desktop_config.json or .mcp.json
{
  "mcpServers": {
    "tamperlens": {
      "command": "npx",
      "args": ["-y", "tamperlens-mcp"],
      "env": { "TAMPERLENS_API_KEY": "tl_..." }
    }
  }
}

試すのにキーは不要です。キーなしでも、匿名利用枠として1時間あたり10件のドキュメントを利用できます。 tamperlens.com/account で無料のキーを取得すると、カード登録なしで月50件まで利用できます。

ツール

ツール確認できること
inspect_document作成後に編集されていますか?元の保存後に追加された改訂履歴、互いに矛盾するメタデータ、エディターの指紋、署名の適用範囲と完全性、隠しテキスト、マクロ、画像内の AI 生成の痕跡、さらに、読者ではなく言語モデルに向けたテキストがファイルに含まれているかを確認します。
triage_document取り込む価値はありますか?また、開くにはどの程度のコストがかかりますか?構造、メタデータ、署名、存在フラグのみを確認する、低コストの事前チェックです。ページごとのコンテンツ走査は行わず、I/O を大幅に抑えます。リスク区分、測定したコスト(読み取ったバイト数、展開後のバイト数、展開率)、およびチェックしていないページコンテンツの種類を示す triage ブロックを返します。問題が見つからないトリアージ結果は、ドキュメントに問題がないことを意味しません。振り分けに使い、完全なチェックには inspect_document を使用してください。
check_redaction墨消しによって実際に何かが削除されましたか?テキストを黒い四角で覆うと、人には見えなくなりますが、ファイルからは何も削除されません。
compare_documentsすでに持っている元のファイルと同一で、変更されていませんか?
inspect_case同じ案件のドキュメント(3か月分の明細書、給与明細、その明細書など)の間に食い違いはありませんか?ドキュメントごとのレポートに加え、独立したドキュメント間で共有されるべきでない情報も確認します。たとえば、同じファイルの重複、1つの元ファイルの /ID やフォントのサブセットタグ、同じ作成秒などです。確認が必要な不整合を示すものであり、判定を下すものではありません。キーが必要です。ドキュメントが N 件の案件では N 件分のコストがかかります。paths および/または urls を受け取り、合計2~10件に対応します。

PDF、Word、Excel、PowerPoint(.docx、.xlsx、.pptx と、それぞれのマクロ有効形式)、JPEG、PNG、WebP、HEIC/HEIF、AVIF に対応しています。

ローカルパスまたは URL

inspect_document、check_redaction、compare_documents(originalUrl/candidateUrlとして)は、ローカルのpathまたはhttp/httpsのurlのどちらか一方を受け取ります。両方は指定できません。inspect_caseは両方のリスト(paths、urls)を受け取ります。urlはお使いのマシン上で、このサーバーがお使いのネットワークを通じて取得し、バイト列のみをTamperlensに送信します。そのため、このオプションはREST APIではなく、こちらに用意されています。呼び出し元が指定したURLをサーバー側で取得すると、APIホストでSSRFのリスクが生じます。一方、お使いのマシンから取得する場合、すでにアクセス可能なものにしか到達しません。安全対策も設けています。http/httpsのみ(リダイレクトのたびに再確認)、リダイレクト回数の上限、30秒のタイムアウト(TAMPERLENS_FETCH_TIMEOUT_MSで調整可能)、そして同じ10 MBの上限を設けています。この上限は、偽装可能なContent-Lengthではなく、受信したバイト数に適用されます。

さらに、スキームだけでなく接続先IPアドレスも確認します。ループバック、リンクローカル/メタデータ(169.254.169.254)、プライベート、その他のルーティング不可能なアドレスを指す、またはリダイレクト先やDNS解決先がそうしたアドレスであるurlは拒否されます。また、接続先アドレスは検証済みのアドレスに固定されるため、DNSリバインディングによって内部アドレスが検査をすり抜けることはありません。この確認はリダイレクトの各段階で再実行されます。内部ホストから取得する必要がある場合は、TAMPERLENS_FETCH_ALLOW_IPSで特定のアドレスを許可リストに追加してください(カンマ区切り。デフォルトでは空で、内部には何も接続できません)。

path引数は任意のローカルファイルを読み取り、そのバイト列をAPIに送信します。 inspect_document、triage_document、check_redaction、 compare_documents、inspect_caseは、指定されたローカルパスのファイルを読み取ります。デフォルトではディレクトリのサンドボックス化も拡張子フィルターもありません。これは、ディスク上のドキュメントを読み取ることが本来の役割であり、事前に取り込みパスを特定できないためです。読み取り対象を取り込み用ディレクトリに限定するには、TAMPERLENS_ALLOWED_DIRS(下記の環境変数一覧)を設定してください。ルートディレクトリ外を指すシンボリックリンクは解決され、拒否されます。そのファイルのバイト列は、設定済みのTamperlensデプロイメントに送信されます。そのため、攻撃者が誘導するモデルがプライベートファイル(~/.ssh/id_rsa、~/.aws/credentials)を指定し、そのバイト列をマシン外に流出させる可能性があります。このサーバーは、信頼できるエージェントと入力に対してのみ実行してください。これは、ローカルファイルシステムを読み取れるあらゆるツールに適用すべきルールと同じです。確実に境界を設けるには、管理下のディレクトリを取り込み元とし、その中のパスのみを渡してください。

エージェントの前段にこれを置く理由

ドキュメントは2種類の読み手に読まれますが、ページを見るのはそのうちの一方だけです。抽出パイプラインは、タイトル、キーワード、XMPパケット、コメント、添付ファイル名など、ソフトウェアに読まれることを前提としたフィールドを読み取ります。そこに置かれたテキストは、読まれるのではなく、従わせることを目的として記述される可能性があります。

inspect_documentは、エージェントがファイルを取り込む前にそのことを報告します。また、このサーバーでは復元されたペイロードを常に省略します。これは利便性のためではありません。Tamperlensレポートを次に読む可能性が最も高いのは、ドキュメントを読もうとしていたのと同じモデルです。攻撃者の文言をコンテキストにそのまま返すMCPサーバーは、検出したばかりの攻撃を仕上げることになってしまいます。取得できるのは、フィールド、場所、手がかりのカテゴリです。文そのものは取得できません。

対応していないこと

  • ローカルでの解析は行いません。 すべてのツールは、稼働中のデプロイにある Tamperlens REST API を呼び出す薄いラッパーです。ここには、元のエンジンと乖離する別のエンジンはありません。
  • 判定は行いません。 Tamperlens が報告するのは、根拠を伴うリスクシグナルであり、「この文書は不正です」と断定することはありません。独自の判定ロジックと組み合わせてください。
  • 文書がモデルのコンテキストに入ることはありません。 ツールは呼び出し元のファイルシステム上のパス(またはここで取得する URL)を受け取り、この側でバイト列を読み込みます。ツール呼び出しに Base64 を含めると、バイト列を必要としているサービスに届けるために、文書のデータが数 MB もコンテキストウィンドウに入ってしまいます。モデルには必要ありません。
  • 保持の扱いは、キーに紐づくアカウントに従います。 ファイルは API によってメモリ上で解析されます。TAMPERLENS_API_KEY がない場合(匿名利用枠)は、何も保持されません。保持機能の開始以降に作成されたアカウントのデフォルト設定のように、履歴が有効なアカウントに紐づくキーを使用する場合、API は各呼び出しの派生記録(ハッシュ、シグナル ID、スコア。ファイル、その名前、テキストは保持しません)を短期間保持し、アカウントがオプトインした場合に限り、ファイル自体も保持します。その場合、ツールの結果には API の retention ブロックと tenantMatches ブロックが含まれます。何も保持しないようにするには、サインインしたダッシュボードのセッションから PATCH /api/v1/retention を使って、そのキーの設定を retention: none にしてください(ダッシュボードにはキーごとの切り替え機能はありません)。このサーバーは、呼び出しごとの X-Tamperlens-Retention ヘッダーを送信しません。各フィールドについては、tamperlens.com/privacy#retention に記載されています。

設定

変数デフォルト意味
TAMPERLENS_API_KEYnone任意です。設定しない場合は匿名利用枠が適用されます(1 時間あたり 10 件の文書)。
TAMPERLENS_BASE_URLhttps://tamperlens.com独自のデプロイを指定します。
TAMPERLENS_FETCH_TIMEOUT_MS30000url の取得に使う合計時間の上限です。本文とすべてのリダイレクトを含みます。
TAMPERLENS_FETCH_ALLOW_IPSnoneルーティング不可アドレスのガードを回避して url の取得先にできる、完全一致の IP をカンマ区切りで指定します。内部文書ストアを意図的に使用する場合に設定します。空の場合、内部には一切アクセスできません。
TAMPERLENS_ALLOWED_DIRSnoneローカルファイルの読み取りを許可する絶対パスのディレクトリを、コロンまたはカンマで区切って指定します。未設定の場合、プロセスが読み取れる絶対パスはすべて対象になります。path 引数から ~/.ssh や意図せず残った .env などの機密情報にアクセスできないよう、取り込み用ディレクトリを設定してください。ルート外を指すシンボリックリンクは解決されたうえで拒否されます。

リンク

すべてのシグナルについてのフィールドガイド · このファイルをモデルに読み取らせても安全ですか? · API リファレンス · セキュリティとプライバシーに関する方針

MIT ライセンスです。問題の報告とソースコード: github.com/haruodev/tamperlens-mcp.

コメント

MCP は初めてですか?

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

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