mcpField
F
Fingerprint

Fingerprint

リモート
github.comセキュリティ45 日前に更新
リポジトリ公式サイト

Fingerprint について

Fingerprint MCP Serverは、Fingerprintの識別イベント、Automation Intelligenceイベント、ワークスペース設定、スキルをAIエージェントから利用できるようにします。ローカル実行とマネージドエンドポイントに対応し、認証や公開ツールを設定できます。

主な機能

  1. 01識別イベントとedgeイベントの取得・検索
  2. 02環境、APIキー、サブドメインの管理
  3. 03Fingerprint連携スキルの提供
  4. 04stdioまたはstreamable HTTPの選択
  5. 05認証とツールのフィルタリング
  6. 06イベントおよびスキーマリソースの公開

活用シーン

  1. 01訪問者識別イベントとスマートシグナルの調査
  2. 02ワークスペース環境とAPIキーの管理
  3. 03クライアントへのFingerprint連携ガイドの提供
  4. 04読み取り専用または指定ツールに公開範囲を制限

MCP 対応

MCPクライアントにFingerprintのイベント・管理操作、スキル、リソースを公開します。stdioとstreamable HTTPに対応し、https://mcp.fpjs.io/mcp のマネージドエンドポイントも利用できます。

設定

リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。

エンドポイントhttps://mcp.fpjs.io/mcp
インストールコマンドをコピー
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。

ツール

詳細

Fingerprint のロゴ

Fingerprint MCP Server

特長

  • ローカルで実行するか、https://mcp.fpjs.io/mcp のマネージドインスタンスを利用できます(Claude では、コネクター一覧から追加してください)
  • イベントツール:識別イベントと Automation Intelligence(エッジ)イベントを、スマートシグナルの全データとともに取得・検索できます
  • 管理ツール:ワークスペース環境、API キー、カスタムサブドメインを管理できます
  • スキルツール:Fingerprint のスキル(統合ガイド、プロキシ設定、Smart Signals)を、自身では取得できないクライアントに提供します
  • stdioとstreamable-httpの両方のトランスポートに対応
  • TLS 証明書を使用した HTTPS に対応(任意)
  • OAuth2 ログインに対応
  • マルチテナント型のデプロイメント向けにパブリックモードに対応(API キーは JWT ベアラートークンで渡します)
  • 公開するツールを制御するツールフィルタリング
  • 環境変数または CLI フラグで設定可能
  • 簡単にデプロイできる Docker サポート

インストール

ソースから
go install github.com/fingerprintjs/fingerprint-mcp-server@latest
ローカルでビルド
git clone https://github.com/fingerprintjs/fingerprint-mcp-server.git
cd fingerprint-mcp-server
make build

make build は go generate を実行して OpenAPI 仕様をダウンロードし、internal/schema/ の下にスキーマファイルを生成した後、バイナリをビルドします。

設定

サーバーは CLI フラグまたは環境変数で設定できます。

CLI フラグ環境変数デフォルト説明
--serverapikeyFINGERPRINT_SERVER_API_KEYFingerprint Server API キー(プライベートモード)
--serverapiurlFINGERPRINT_SERVER_API_URLapi.fpjs.ioカスタム Server API URL(デフォルトを使用する場合は省略)
--managementapikeyFINGERPRINT_MANAGEMENT_API_KEYFingerprint Management API キー(プライベートモード)
--managementapiurlFINGERPRINT_MANAGEMENT_API_URLmanagement-api.fpjs.ioカスタム Management API URL(デフォルトを使用する場合は省略)
--regionFINGERPRINT_REGIONusAPI リージョン:us、eu、または ap(プライベートモード)
--transportMCP_TRANSPORTstdioトランスポート:stdio または streamable-http
--portMCP_PORT8080HTTP/HTTPS サーバーのポート
--tlscertMCP_TLS_CERTTLS 証明書ファイルのパス
--tlskeyMCP_TLS_KEYTLS 秘密鍵ファイルのパス
--readonlyMCP_READ_ONLYfalse読み取りツールのみを公開します(読み取り専用ツールを指定した --tools の短縮形)
--toolsMCP_TOOLS登録するツール名をカンマ区切りで指定します(--readonly を上書き)
--publicmodeMCP_PUBLICfalseパブリックモード:JWT ベアラートークンから API キーを抽出します
--authtokenMCP_AUTH_TOKEN(プライベートモードでは自動生成)サーバーへのアクセスに必要なベアラートークン(プライベートモード)
--jwtpublickeyFINGERPRINT_PUBLIC_KEYFingerprint が発行した JWT トークンを検証する PEM エンコード済み ES256 公開鍵
--oauthresourceOAUTH_RESOURCEこのサーバーの URL(OAuth メタデータ用)
--oauthauthorizationserverOAUTH_AUTH_SERVEROAuth 認可サーバーの URL
--jwksurlJWKS_URLパブリックモードでの JWT トークン検証に使用する JWKS URL
--openaiappschallengetokenOPENAI_APPS_CHALLENGE_TOKEN/.well-known/openai-apps-challenge で提供されるドメイン検証トークン

テレメトリー

このバイナリでは、テレメトリーは無効になっています。組み込みの分析バックエンドはなく、デフォルトの送信処理は何もしないため、OSS バイナリを実行しても、誰にもデータは送信されません。

サーバーは、各 MCP メソッドで呼び出されるフック(analytics パッケージの analytics.Emitter)を公開しています。プロダクト分析を行いたい組み込み側は、このパッケージをライブラリとしてインポートし、サーバーの構築時に WithAnalytics(emitter) を呼び出して独自のエミッターを登録します。Fingerprint のホスト版(mcp.fpjs.io)では Amplitude エミッターを使用していますが、その実装はここではなく、非公開のマネージドリポジトリにあります。

独自のエミッターを作成する場合、イベントの形式は analytics/analytics.go に記載されています。ミドルウェアは、空でない subscription_id がある場合に限り(そのため、認証前のメソッドとプライベートモードの認証パスでは、いずれの場合も送信されません)、MCP メソッドごとに mcp_method_called イベントを 1 件送信します。call_tool または call_write_tool を経由する呼び出しでは、プロキシが tool_name として、実行を要求されたツールが target_tool として報告されます。プロキシが呼び出しを拒否した場合も同様で、その場合は is_error が true になります。

リクエストの検査

組み込み側は、/mcp エンドポイントへのすべてのリクエストについて、HTTP リクエストのメタデータ(メソッド、URL、元のヘッダー、TCP ピアアドレス)を受け取る 2 つ目のフック(requestinspect パッケージの requestinspect.Inspector)を登録できます。これは監査ログやトラフィック分析に役立ちます。サーバーの構築時に WithRequestInspector(inspector) を指定して登録します。OSS バイナリではインスペクターを設定しないため、データは収集されません。

このフックの完全な仕様(タイミング、フェイルオープンの動作、読み取り専用フィールド、stdio)は、仕様の正本である requestinspect/requestinspect.go に記載されています。組み込み側の実装スケルトン一式(有界キュー、バックグラウンド配信、ヘッダーの秘匿化、グレースフルな排出)については、requestinspect/example_test.go を参照してください。

使用方法

プライベートモードとパブリックモード

プライベートモードとは、API キー(FINGERPRINT_SERVER_API_KEY と FINGERPRINT_MANAGEMENT_API_KEY)が事前に設定された状態でサーバーを実行するモードです。このモードは、組織内で使用するローカルインスタンスを実行する場合に便利です。サーバーは設定で指定されたキーを自動的に使用します。このモードでは、MCP サーバーが認証されていない状態で使用されるのを防ぐため、認証トークン(MCP_AUTH_TOKEN)が必須です。

パブリックモードは、https://mcp.fpjs.io/mcp の実行モードです。1 つのインスタンスを、各自の API キーを持つ異なる組織のユーザーが利用する状況を想定しています。このモードでは、API キーは https://dashboard.fingerprint.com が発行する JWT アクセストークン、またはユーザーが OAuth2 フローに従って取得した JWT アクセストークンから抽出されます。

Stdio トランスポート(デフォルト)
export FINGERPRINT_SERVER_API_KEY=your-secret-api-key
./fingerprint-mcp-server
Streamable HTTP トランスポート
export FINGERPRINT_SERVER_API_KEY=your-secret-api-key
./fingerprint-mcp-server --transport=streamable-http --port=8080

MCP エンドポイントは http://localhost:8080/mcp で利用できます。

HTTPS

HTTPS を有効にするには、TLS 証明書ファイルとキー ファイルを指定します。

./fingerprint-mcp-server --transport=streamable-http \
  --tlscert=cert.pem --tlskey=key.pem
ツールのフィルタリング

デフォルトでは、設定されている API キーに基づいて、すべてのツールが登録されます。公開するツールを制限できます。

# Only expose read-only tools
./fingerprint-mcp-server --readonly

# Expose a specific set of tools
./fingerprint-mcp-server --tools=get_event,search_events,list_environments

--tools を設定すると、--readonly は上書きされます。

Docker

イメージのビルド
docker build -t fingerprint-mcp-server .
Stdio トランスポートで実行
docker run -i --rm \
  -e FINGERPRINT_SERVER_API_KEY=your-secret-api-key \
  fingerprint-mcp-server
Streamable HTTP トランスポートで実行
docker run -d --rm \
  -e FINGERPRINT_SERVER_API_KEY=your-secret-api-key \
  -e MCP_TRANSPORT=streamable-http \
  -p 8080:8080 \
  fingerprint-mcp-server

MCP クライアントの設定

ホスト型エンドポイント(マネージド)

https://mcp.fpjs.io/mcp のマネージドインスタンスはパブリックモードで動作し、OAuth2 を介して各ユーザーを認証します。実行や設定は不要です。

Claude では、カスタムコネクターとしてではなく、コネクターのディレクトリから追加してください。Customize > Connectors を開き、Browse connectors を選択して、Fingerprint を検索します。同じカタログが claude.ai、Desktop、モバイル、Claude Code で利用できるため、アカウントごとに一度設定するだけで済みます。

カスタムコネクターとして追加する方法も引き続き利用できますが、名前を自分で付ける必要があり、その名前に含まれる文字によってツールの検出に問題が生じても、コネクターは接続済みと表示されます。

その他のクライアントでは、URL を直接指定してください。

Cursor に追加

{
  "mcpServers": {
    "fingerprint": {
      "type": "http",
      "url": "https://mcp.fpjs.io/mcp"
    }
  }
}
セルフホスト

Cursor/Claude Desktop などの設定ファイル(例:claude_desktop_config.json)に追加します。

Stdio トランスポート:

{
  "mcpServers": {
    "fingerprint": {
      "command": "/path/to/fingerprint-mcp-server",
      "env": {
        "FINGERPRINT_SERVER_API_KEY": "your-secret-api-key"
      }
    }
  }
}

Streamable HTTP トランスポート:

{
  "mcpServers": {
    "fingerprint": {
      "url": "https://url/mcp",
      "headers": {
        "Authorization": "Bearer <auth-token>"
      }
    }
  }
}

Stdio を使用する Docker:

{
  "mcpServers": {
    "fingerprint": {
      "command": "docker",
      "args": ["run", "-i", "--rm", "-e", "FINGERPRINT_SERVER_API_KEY=your-secret-api-key", "fingerprint-mcp-server"]
    }
  }
}

利用可能なツール

イベントツールには Server API キーが必要です。管理ツールには Management API キーが必要です。get_current_time とスキルツールにはキーは不要です。get_skill と get_skill_file は MCP ツール一覧には含まれていません。call_tool を通じて実行してください。スキルを利用するには、--tools で list_skills、get_skill、get_skill_file、call_tool を許可リストに追加してください。書き込みツール(作成/更新/削除/検証/接続)は、--readonly が設定されている場合、または --tools で除外されている場合は非表示になります。

ツール説明
get_current_timeUTC(および任意の IANA タイムゾーン)の現在の日付と時刻を返します
list_skillsFingerprint のスキルを ID と説明とともに一覧表示します
get_skill1 つのスキルの手順と、スキルが参照するファイルを返します
get_skill_fileコードスニペットなど、スキルのファイルを 1 つ返します
get_eventID(識別またはエッジ)を指定して特定のイベントを取得します
search_eventsフィルター(訪問者、IP、スマートシグナル、時間範囲)を使ってイベントを検索します
list_environmentsワークスペース環境をページネーション付きで一覧表示します
get_api_key特定の API キーの詳細を取得します
list_api_keysタイプ/ステータス/環境の任意のフィルターを使って API キーを一覧表示します
create_environment新しいワークスペース環境を作成します
update_environment既存のワークスペース環境を更新します
delete_environmentワークスペース環境を削除します
create_api_key新しい API キー(public/secret/proxy)を作成します
update_api_key既存の API キーを更新します
delete_api_keyAPI キーを削除します(取り消し不可)
list_subdomainsカスタムサブドメインをページネーション付きで一覧表示します
get_subdomainサブドメインのステータスと DNS レコードを取得します
create_subdomainホスト名を登録し、必要な DNS レコードを返します
verify_subdomainDNS チェックを 1 回要求し、最新のステータスを返します
connect_subdomainプロバイダーで DNS レコードを追加する Domain Connect リンクを取得します

カスタムサブドメインについては、スキルツールを使って fingerprint-proxy-integration の手順に従ってください。作成時に DNS レコードは追加されません。プロバイダーが Domain Connect に対応している場合、connect_subdomain は、ユーザーが開いて 1 回承認するだけで DNS レコードを追加できるリンクを返します(その後、Fingerprint ダッシュボードに移動します)。対応していない場合は、ユーザーまたは権限を持つ DNS プロバイダーツールが DNS レコードを追加します。サブドメインが active の場合にのみ、アプリを設定してください。検証後のステータス確認には get_subdomain を使用し、レート制限エラーでは retry_after を尊重してください。サブドメインの削除は公開されていません。

利用可能なリソース

  • fingerprint://events/{event_id} — 指定したイベント ID のイベントデータ全体を返します。
  • fingerprint://schemas/event — イベント出力構造を記述した JSON Schema です。
  • fingerprint://schemas/environment — 環境オブジェクトの JSON Schema です。
  • fingerprint://schemas/api-key — API キーオブジェクトの JSON Schema です。

スキル

スキルツールは GitHub から Fingerprint skills repo を読み込み、各ファイルを 1 時間キャッシュします。外部への通信ができないデプロイ環境で無効にするには、WithSkillsRepo("", "") を渡してください。

ライセンス

MIT

コメント

MCP は初めてですか?

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

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