Fingerprint について
Fingerprint MCP Serverは、Fingerprintの識別イベント、Automation Intelligenceイベント、ワークスペース設定、スキルをAIエージェントから利用できるようにします。ローカル実行とマネージドエンドポイントに対応し、認証や公開ツールを設定できます。
主な機能
- 01識別イベントとedgeイベントの取得・検索
- 02環境、APIキー、サブドメインの管理
- 03Fingerprint連携スキルの提供
- 04stdioまたはstreamable HTTPの選択
- 05認証とツールのフィルタリング
- 06イベントおよびスキーマリソースの公開
活用シーン
- 01訪問者識別イベントとスマートシグナルの調査
- 02ワークスペース環境とAPIキーの管理
- 03クライアントへのFingerprint連携ガイドの提供
- 04読み取り専用または指定ツールに公開範囲を制限
MCP 対応
MCPクライアントにFingerprintのイベント・管理操作、スキル、リソースを公開します。stdioとstreamable HTTPに対応し、https://mcp.fpjs.io/mcp のマネージドエンドポイントも利用できます。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://mcp.fpjs.io/mcpclaude mcp add --transport http fingerprintjs-fingerprint https://mcp.fpjs.io/mcp{"mcpServers":{"fingerprintjs-fingerprint":{"type":"http","url":"https://mcp.fpjs.io/mcp"}}}Cursor で開く{"servers":{"fingerprintjs-fingerprint":{"type":"http","url":"https://mcp.fpjs.io/mcp"}}}VS Code で開く{"mcpServers":{"fingerprintjs-fingerprint":{"type":"http","url":"https://mcp.fpjs.io/mcp"}}}{"mcpServers":{"fingerprintjs-fingerprint":{"serverUrl":"https://mcp.fpjs.io/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
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 フラグ | 環境変数 | デフォルト | 説明 |
|---|---|---|---|
--serverapikey | FINGERPRINT_SERVER_API_KEY | Fingerprint Server API キー(プライベートモード) | |
--serverapiurl | FINGERPRINT_SERVER_API_URL | api.fpjs.io | カスタム Server API URL(デフォルトを使用する場合は省略) |
--managementapikey | FINGERPRINT_MANAGEMENT_API_KEY | Fingerprint Management API キー(プライベートモード) | |
--managementapiurl | FINGERPRINT_MANAGEMENT_API_URL | management-api.fpjs.io | カスタム Management API URL(デフォルトを使用する場合は省略) |
--region | FINGERPRINT_REGION | us | API リージョン:us、eu、または ap(プライベートモード) |
--transport | MCP_TRANSPORT | stdio | トランスポート:stdio または streamable-http |
--port | MCP_PORT | 8080 | HTTP/HTTPS サーバーのポート |
--tlscert | MCP_TLS_CERT | TLS 証明書ファイルのパス | |
--tlskey | MCP_TLS_KEY | TLS 秘密鍵ファイルのパス | |
--readonly | MCP_READ_ONLY | false | 読み取りツールのみを公開します(読み取り専用ツールを指定した --tools の短縮形) |
--tools | MCP_TOOLS | 登録するツール名をカンマ区切りで指定します(--readonly を上書き) | |
--publicmode | MCP_PUBLIC | false | パブリックモード:JWT ベアラートークンから API キーを抽出します |
--authtoken | MCP_AUTH_TOKEN | (プライベートモードでは自動生成) | サーバーへのアクセスに必要なベアラートークン(プライベートモード) |
--jwtpublickey | FINGERPRINT_PUBLIC_KEY | Fingerprint が発行した JWT トークンを検証する PEM エンコード済み ES256 公開鍵 | |
--oauthresource | OAUTH_RESOURCE | このサーバーの URL(OAuth メタデータ用) | |
--oauthauthorizationserver | OAUTH_AUTH_SERVER | OAuth 認可サーバーの URL | |
--jwksurl | JWKS_URL | パブリックモードでの JWT トークン検証に使用する JWKS URL | |
--openaiappschallengetoken | OPENAI_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 を直接指定してください。
{
"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_time | UTC(および任意の IANA タイムゾーン)の現在の日付と時刻を返します |
list_skills | Fingerprint のスキルを ID と説明とともに一覧表示します |
get_skill | 1 つのスキルの手順と、スキルが参照するファイルを返します |
get_skill_file | コードスニペットなど、スキルのファイルを 1 つ返します |
get_event | ID(識別またはエッジ)を指定して特定のイベントを取得します |
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_key | API キーを削除します(取り消し不可) |
list_subdomains | カスタムサブドメインをページネーション付きで一覧表示します |
get_subdomain | サブドメインのステータスと DNS レコードを取得します |
create_subdomain | ホスト名を登録し、必要な DNS レコードを返します |
verify_subdomain | DNS チェックを 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
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。