Fingerprint

io.github.fingerprintjs由 GitHub 帳號 fingerprintjs 發布v0.1.35更新於 Oct 24, 2026

Device intelligence for AI agents: Fingerprint events, smart signals, and API key management.

已驗證Streamable HTTP可網頁執行開發者工具安全與監控

概覽

AI 產生的概覽

Fingerprint 裝置智慧伺服器:讓助理讀取識別與邊緣事件、檢視智慧訊號,並管理 workspace 環境、API 金鑰與子網域。

可以做什麼
  • 依訪客、IP、智慧訊號或時間範圍擷取與搜尋識別事件及 Automation Intelligence(邊緣)事件,包含完整智慧訊號資料
  • 列出 workspace 環境與 API 金鑰,並查看指定金鑰的詳細資料
  • 建立、更新與刪除環境、API 金鑰及自訂子網域,驗證 DNS 並取得 Domain Connect 連結
  • 列出 Fingerprint 技能,回傳某項技能的說明或其引用的檔案(例如程式碼片段)
  • 回傳目前 UTC 時間,並提供事件與 schema 資源
適用情境
適合需要調查 Fingerprint 記錄的流量或機器人活動、查看某個事件的智慧訊號,或管理 Fingerprint workspace 環境、API 金鑰與自訂子網域的情境。託管端點只需 OAuth 登入,不必自行部署。
執行需求
可使用託管的遠端端點並以 OAuth2 登入,也可自行架設(Go 安裝、本機建置或 Docker),以 stdio 或 streamable HTTP 執行。自行架設時,事件工具需要 Fingerprint Server API 金鑰(FINGERPRINT_SERVER_API_KEY),管理工具需要 Management API 金鑰(FINGERPRINT_MANAGEMENT_API_KEY);技能工具與 get_current_time 不需金鑰。私有模式另會強制檢查 MCP_AUTH_TOKEN。
安裝前請注意
管理工具會建立、更新與刪除環境、API 金鑰及子網域,刪除 API 金鑰無法復原;只有在啟用唯讀模式或工具白名單時才會隱藏寫入工具。伺服器持有權限很高的 Fingerprint API 金鑰,應以 MCP_AUTH_TOKEN 保護執行個體,並盡量採用唯讀模式。託管版本會將依方法統計的分析資料送至 Amplitude,開源二進位檔則不傳送任何資料。技能工具會從 GitHub 取得檔案。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Fingerprint,將其新增到工作區。
  2. 連接 所需的 憑證。它們會被私密儲存,絕不會在公開頁面上展示。
  3. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/io.github.fingerprintjs%2Ffingerprint-mcp-server/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。 客戶端會在首次連接時完成 OAuth 登入。

{
  "mcpServers": {
    "fingerprint": {
      "type": "http",
      "url": "https://mcp.fpjs.io/mcp"
    }
  }
}

README

[Fingerprint logo]

Fingerprint MCP Server

Features

  • Run locally, or use the managed instance at https://mcp.fpjs.io/mcp (in Claude, add it from the connectors directory)
  • Event tools: Retrieve and search identification and Automation Intelligence (edge) events with full smart signal data
  • Management tools: Manage workspace environments, API keys and custom subdomains
  • Skills tools: Serve the Fingerprint skills (integration guides, proxy setup, Smart Signals) to clients that cannot fetch them themselves
  • Supports both stdio and streamable-http transports
  • Optional HTTPS with TLS certificates
  • OAuth2 login supported
  • Public mode for multi-tenant deployments (API keys passed via JWT bearer token)
  • Tool filtering to control which tools are exposed
  • Configurable via environment variables or CLI flags
  • Docker support for easy deployment

Installation

From Source

bash
go install github.com/fingerprintjs/fingerprint-mcp-server@latest

Build Locally

bash
git clone https://github.com/fingerprintjs/fingerprint-mcp-server.gitcd fingerprint-mcp-servermake build

make build runs go generate (to download the OpenAPI spec and generate schema files under internal/schema/) and then builds the binary.

Configuration

The server can be configured via CLI flags or environment variables:

CLI FlagEnvironment VariableDefaultDescription
--serverapikeyFINGERPRINT_SERVER_API_KEYFingerprint Server API key (private mode)
--serverapiurlFINGERPRINT_SERVER_API_URLapi.fpjs.ioCustom Server API URL (omit to use default)
--managementapikeyFINGERPRINT_MANAGEMENT_API_KEYFingerprint Management API key (private mode)
--managementapiurlFINGERPRINT_MANAGEMENT_API_URLmanagement-api.fpjs.ioCustom Management API URL (omit to use default)
--regionFINGERPRINT_REGIONusAPI region: us, eu, or ap (private mode)
--transportMCP_TRANSPORTstdioTransport: stdio or streamable-http
--portMCP_PORT8080Port for HTTP/HTTPS server
--tlscertMCP_TLS_CERTPath to TLS certificate file
--tlskeyMCP_TLS_KEYPath to TLS private key file
--readonlyMCP_READ_ONLYfalseOnly expose read tools (shorthand for --tools with read-only tools)
--toolsMCP_TOOLSComma-separated list of tool names to register (overrides --readonly)
--publicmodeMCP_PUBLICfalsePublic mode: extract API keys from JWT bearer tokens
--authtokenMCP_AUTH_TOKEN(auto-generated in private mode)Bearer token required to access the server (private mode)
--jwtpublickeyFINGERPRINT_PUBLIC_KEYPEM-encoded ES256 public key for verifying Fingerprint-issued JWT tokens
--oauthresourceOAUTH_RESOURCEURL of this server (for OAuth metadata)
--oauthauthorizationserverOAUTH_AUTH_SERVERURL of the OAuth authorization server
--jwksurlJWKS_URLJWKS URL for JWT token verification in public mode
--openaiappschallengetokenOPENAI_APPS_CHALLENGE_TOKENDomain verification token served at /.well-known/openai-apps-challenge

Telemetry

This binary ships with telemetry disabled. There is no built-in analytics backend and the default emitter is a no-op, so running the OSS binary sends nothing to anyone.

The server exposes a hook (analytics.Emitter in the analytics package) that fires on each MCP method. Embedders who want product analytics register their own emitter by importing this package as a library and calling WithAnalytics(emitter) when constructing the server. Fingerprint's hosted build (mcp.fpjs.io) does this with an Amplitude emitter, but that implementation lives in the private managed repo, not here.

If you build your own emitter, the event shape is in analytics/analytics.go. The middleware fires one mcp_method_called event per MCP method, gated on a non-empty subscription_id (so pre-auth methods and the private-mode auth path stay silent regardless). Calls that go through call_tool or call_write_tool report the proxy as tool_name and the tool it was asked to run as target_tool, also when the proxy rejects the call (then is_error is true).

Request inspection

Embedders can register a second hook (requestinspect.Inspector in the requestinspect package) that receives HTTP request metadata — method, URL, original headers, and TCP peer address — for every request to the /mcp endpoint, useful for audit logging and traffic analysis. Register it with WithRequestInspector(inspector) when constructing the server. The OSS binary configures no inspector, so nothing is collected.

The full contract (timing, fail-open behavior, read-only fields, stdio) is documented in requestinspect/requestinspect.go, the source of truth for this hook. See requestinspect/example_test.go for a complete embedder-side implementation skeleton (bounded queue, background delivery, header redaction, graceful drain).

Usage

Private mode vs. Public mode

Private mode means the server runs with its API keys pre-configured (FINGERPRINT_SERVER_API_KEY and FINGERPRINT_MANAGEMENT_API_KEY). This mode is useful when you are running a local instance intended to be used within your organization: server automatically uses those specified in the config. In this mode, auth token (MCP_AUTH_TOKEN) is enforced to protect your instance of the MCP server from unauthenticated use.

Public mode is how https://mcp.fpjs.io/mcp is run. It is meant to be used in situations when a single instance can be used by different users from different organizations, each with their own API keys. In this mode, API keys are extracted from JWT access tokens that are issued by https://dashboard.fingerprint.com or by user following the OAuth2 flow.

Stdio Transport (Default)

bash
export FINGERPRINT_SERVER_API_KEY=your-secret-api-key./fingerprint-mcp-server

Streamable HTTP Transport

bash
export FINGERPRINT_SERVER_API_KEY=your-secret-api-key./fingerprint-mcp-server --transport=streamable-http --port=8080

The MCP endpoint will be available at http://localhost:8080/mcp.

HTTPS

Provide TLS certificate and key files to enable HTTPS:

bash
./fingerprint-mcp-server --transport=streamable-http \  --tlscert=cert.pem --tlskey=key.pem

Tool Filtering

By default, all tools are registered based on which API keys are configured. You can restrict which tools are exposed:

bash
# 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

When --tools is set, it overrides --readonly.

Docker

Build the Image

bash
docker build -t fingerprint-mcp-server .

Run with Stdio Transport

bash
docker run -i --rm \  -e FINGERPRINT_SERVER_API_KEY=your-secret-api-key \  fingerprint-mcp-server

Run with Streamable HTTP Transport

bash
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 Client Configuration

Hosted endpoint (managed)

The managed instance at https://mcp.fpjs.io/mcp runs in public mode and authenticates each user via OAuth2. Nothing to run or configure.

In Claude, add it from the connectors directory rather than as a custom connector: open Customize > Connectors, choose Browse connectors, and search for Fingerprint. The same catalog serves claude.ai, Desktop, mobile and Claude Code, so this only has to be done once per account.

Adding it as a custom connector still works, but you have to name it yourself, and some characters in that name break tool discovery while the connector still reports as connected.

In other clients, point them at the URL directly:

[Add to Cursor]

json
{  "mcpServers": {    "fingerprint": {      "type": "http",      "url": "https://mcp.fpjs.io/mcp"    }  }}

Self-hosted

Add to your Cursor/Claude Desktop/etc configuration file (e.g. claude_desktop_config.json):

Stdio Transport:

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

Streamable HTTP Transport:

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

Docker with Stdio:

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

Available Tools

Event tools require a Server API key. Management tools require a Management API key. get_current_time and the skills tools need no key. get_skill and get_skill_file are not in the MCP tool list: run them through call_tool. With --tools, allow-list list_skills, get_skill, get_skill_file and call_tool for the skills to work. Write tools (create/update/delete/verify/connect) are hidden when --readonly is set or excluded via --tools.

ToolDescription
get_current_timeReturn the current date/time in UTC (and an optional IANA timezone)
list_skillsList the Fingerprint skills by id and description
get_skillReturn one skill's instructions and the files it refers to
get_skill_fileReturn one file from a skill, such as a code snippet
get_eventRetrieve a specific event by ID (identification or edge)
search_eventsSearch events with filters (visitor, IP, smart signals, time range)
list_environmentsList workspace environments with pagination
get_api_keyGet details of a specific API key
list_api_keysList API keys with optional type/status/environment filters
create_environmentCreate a new workspace environment
update_environmentUpdate an existing workspace environment
delete_environmentDelete a workspace environment
create_api_keyCreate a new API key (public/secret/proxy)
update_api_keyUpdate an existing API key
delete_api_keyDelete an API key (irreversible)
list_subdomainsList custom subdomains with pagination
get_subdomainGet a subdomain's status and DNS records
create_subdomainRegister a hostname and return the required DNS records
verify_subdomainRequest one DNS check, then return the freshly read status
connect_subdomainGet a Domain Connect link that adds the DNS records at the provider

For custom subdomains, follow fingerprint-proxy-integration through the skills tools. Creation does not add DNS records: when the provider supports Domain Connect, connect_subdomain returns a link the user opens to add them with one approval (they land on the Fingerprint dashboard afterwards); otherwise the user or an authorized DNS-provider tool adds them. Configure the app only when the subdomain is active. Use get_subdomain for status checks after verifying; respect retry_after on rate-limit errors. Subdomain deletion is not exposed.

Available Resources

  • fingerprint://events/{event_id} — Returns full event data for a given event ID.
  • fingerprint://schemas/event — JSON Schema describing the event output structure.
  • fingerprint://schemas/environment — JSON Schema for environment objects.
  • fingerprint://schemas/api-key — JSON Schema for API key objects.

Skills

The skills tools read the Fingerprint skills repo from GitHub and cache each file for an hour. Pass WithSkillsRepo("", "") to disable them on a deployment with no egress.

License

MIT

來源:README.md,提交 5c6b22c

工具

0
該伺服器需要登入,因此 SourceWeft 無法在沒有帳號的情況下讀取其工具,也未收錄。已連接帳號所能看到的內容可能因帳號及其權限而異。

版本歷史

1
  1. v0.1.35最新Sep 16, 2026

評分

已滿足適用檢查項的 85%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分