Frisk

dev.tryfriskPublished by tryfrisk.devv0.0.1Updated Oct 24, 2026

Screen the counterparty of an x402 payment before an agent pays it. Runs offline by default.

VerifiedSTDIODesktop onlyFinanceSecurity & Monitoring

Overview

AI-generated overview

Frisk is a local MCP server that lets an assistant screen the counterparty of an x402 payment and return an allow, review or block verdict before money moves.

What you can do
Screen a payment counterparty: run deterministic checks on the address the agent intends to pay, including address sanity and dynamic payTo comparison, and get a verdict with reasons, trust score and confidence. Check transport and policy: flag plaintext endpoints and apply your own spending ceiling, allowed assets and strictness level. Work offline or hosted: with no configuration screening runs entirely on the machine; with an API key the same tool is answered by the hosted service with reputation signals.
When to use it
Use it when an agent is about to pay an x402 counterparty and you want an inspection step, or when the agent cannot import the Frisk screening library. The README notes that a check the model can skip is weaker than one on the code path that signs the payment.
Requirements
Runs locally via npx as a stdio process; Node.js is needed. No account, API key or network call is required for offline screening. Optional hosted mode needs FRISK_API_KEY, and FRISK_BASE_URL can override the default hosted endpoint.
Before you install
The verdict is advisory only: the server never holds funds and cannot stop a payment by itself, so your code must enforce the result. Offline screening has no view of an address's history and always reports low confidence; it does not detect Sybil clusters. Setting FRISK_API_KEY sends screening requests to the hosted service.

Installation

In SourceWeft

  1. Open Frisk in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

frisk-mcp

An MCP server for Frisk: screen the counterparty of an x402 payment before an agent pays it.

It exposes one tool, screen_payment, which runs Frisk's deterministic checks — address sanity, dynamic-payTo comparison, transport safety, and your own spending policy — and returns allow / review / block with reasons.

Where this belongs, and where it does not

An MCP tool runs when a model decides to call it. A payment check that the model can skip is a weaker guarantee than the same check on the code path that signs the payment.

So:

  • Use the library — frisk-screen — where the money actually moves. It is MIT, dependency-free, and runs locally.
  • Use this server for inspection ("is this address safe to pay?"), and for agents that cannot import a library.

Frisk is advisory in both cases: it returns a verdict and your code decides. It never holds funds and cannot stop a payment by itself.

Install

bash
npx frisk-mcp

In any MCP client's server configuration:

json
{  "mcpServers": {    "frisk": {      "command": "npx",      "args": ["-y", "frisk-mcp"]    }  }}

No API key, no account, no network call: with no configuration the server screens entirely on your machine.

Hosted mode (optional)

Set FRISK_API_KEY to have the same tool answered by the hosted service, which adds reputation-graph signals and returns higher-confidence verdicts:

json
{  "mcpServers": {    "frisk": {      "command": "npx",      "args": ["-y", "frisk-mcp"],      "env": { "FRISK_API_KEY": "..." }    }  }}

The hosted tier is in early access — email [email protected]. Everything above works without it.

variabledefaultmeaning
FRISK_API_KEYunsetEnables hosted screening. Unset means fully offline.
FRISK_BASE_URLhttps://api.tryfrisk.devOverride the hosted endpoint.

The tool

screen_payment

argumenttypenotes
counterpartystring, requiredThe address the agent intends to pay.
endpointstringURL that quoted the payment; checked for plaintext transport.
amountnumberAmount about to be paid.
assetstringAsset symbol, e.g. USDC.
observedPayTostringThe payTo the endpoint actually returned. If it differs from counterparty, that is the dynamic-payTo swap.
strictnessnumber 0–10 permissive, 1 paranoid. Default 0.3.
maxPerCallnumberSpending ceiling for one call.
allowedAssetsstring[]Assets the agent may pay in.

Returns verdict, trustScore, confidence, reasons, policyHits, source (lite or hosted), and allowed.

What it does not do

It does not detect Sybil clusters, and offline it has no view of an address's history — lite screening always reports "low" confidence for that reason. It also cannot repair the protocol underneath a payment: replay, settlement races, and facilitator trust live in x402 itself, not in the request being signed. Those limits are discussed in Five ways an x402 payment can go wrong.

License

MIT

Source: mcp/README.md at commit 168d7f8

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v0.0.1LatestSep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts