Skip to main content

unfret-mcp

An MCP server that lets AI shopping agents ask Unfret whether a store or product listing shows signs of scams, dropshipping of generic goods, fake reviews or dark patterns, before they buy. MIT licensed.

Each check is paid per call over x402 from the agent's own Solana wallet, in USDC or wSOL. Prices are in US dollars (quick $0.01, deep $0.20; get_pricing has the live prices): USDC pays them exactly, wSOL at Unfret's SOL/USD quote. By default the server pays in USDC when Unfret offers it and the wallet holds enough, otherwise in wSOL (UNFRET_MCP_PAY_WITH=SOL to always use SOL); if the wallet holds plain SOL, it wraps what it needs first. The spend caps are in dollars whatever the currency: the server values a wSOL charge with its own Pyth SOL/USD reading (mainnet, fully verified, ≤2 min old, confidence ≤2%) rather than Unfret's word, and refuses SOL when it has no such price. Unfret pays the network fee, so the agent pays only the price. The server never holds anyone else's funds.

Tool Input Output
check_store url, tier (quick $0.01 | deep $0.20), policy (strict | balanced | lenient), page_content (optional HTML) {action, risk_score, confidence, flags, …} plus the payment transaction
explain_flag flag_type A one-paragraph explanation for the end user
get_pricing — The current prices (free): tiers in dollars, live USDC and SOL amounts

Every result has status and ok: ok (a verdict), not_paid (refused before any money moved), unavailable (Unfret is paused or rate-limiting; retry later), pending or unknown (the payment may have been taken: don't pay again for that page; if it landed without a verdict Unfret credits its price to the paying wallet). A next_step says what to do whenever there is something to do.

action is allow, warn (ask your human first) or block, at thresholds set by the chosen policy. Flags are factual evidence, never a "scam" label. Send page_content for marketplaces such as Amazon, which block server-side fetches.

Configuration

Variable Default
UNFRET_MCP_KEYPAIR — Path to the agent's Solana CLI keypair JSON (or UNFRET_MCP_SECRET_KEY, base58)
UNFRET_MCP_NETWORK solana-mainnet solana-devnet to try it with test money against https://dev.unfret.net
UNFRET_MCP_RPC_URL the network's public RPC The public RPCs are rate-limited; use your own for anything busy
UNFRET_MCP_PAY_WITH USDC when offered and held, else SOL SOL to always pay in wSOL
UNFRET_MCP_MAX_PRICE_USD 0.25 Refuse any single check worth more than this many dollars
UNFRET_MCP_SESSION_CAP_USD 2.50 Refuse once the session has spent this many dollars
UNFRET_MCP_PRICE_RPC_URL mainnet's public RPC Where the agent reads Pyth SOL/USD to value wSOL payments
UNFRET_API_URL https://unfret.net

Install

Needs uv (Python 3.12 or newer) and a Solana wallet holding a little USDC or SOL. Give the agent a wallet of its own with only what it may spend, never your main wallet: the caps above are the server's, the wallet balance is the real limit.

{"mcpServers": {"unfret": {"command": "uvx", "args": ["unfret-mcp"],
  "env": {"UNFRET_MCP_KEYPAIR": "~/.config/solana/agent.json"}}}}

To try it without real money, use devnet (free test SOL from solana airdrop, test USDC from faucet.circle.com):

{"mcpServers": {"unfret": {"command": "uvx", "args": ["unfret-mcp"],
  "env": {"UNFRET_MCP_KEYPAIR": "~/.config/solana/devnet-agent.json", "UNFRET_MCP_NETWORK": "solana-devnet",
          "UNFRET_API_URL": "https://dev.unfret.net"}}}}

Deep checks are synchronous today, so there is no polling tool yet.

Source: git.kroshtan.com/kroshtan/unfret_backend (mirror on GitHub). MIT licensed.

Metadata

Release files for unfret-mcp 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for unfret-mcp 0.1.0
File Size Uploaded Provenance Actions
unfret_mcp-0.1.0.tar.gz 16.8 kB Without provenance Details for unfret_mcp-0.1.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for unfret-mcp 0.1.0
File Interpreter ABI Platform Actions
unfret_mcp-0.1.0-py3-none-any.whl Python 3 none any Details for unfret_mcp-0.1.0-py3-none-any.whl

Total release size: 36.1 kB

Release files / unfret_mcp-0.1.0.tar.gz

Download URL unfret_mcp-0.1.0.tar.gz
Size 16.8 kB
Tags Source
SHA-256 checksum
How to use checksums
f4fb9e5cf1c67a820d382787ce284fcf1329e393f48c491f6012705cd1bdf8c5
BLAKE2b-256 checksum
How to use checksums
5b8690aa98d4b6ad1dea9ad232dbe60d3294a2e7ebb7a2c71ca38a7fe393ed3e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.8 {"installer":{"name":"uv","version":"0.13.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"12","id":"bookworm","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / unfret_mcp-0.1.0-py3-none-any.whl

Download URL unfret_mcp-0.1.0-py3-none-any.whl
Size 19.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e872f54683de7a52bd7863990ce261d74a73452ef3ccaa182dcd6dc041b0f218
BLAKE2b-256 checksum
How to use checksums
724005053adb66b825d2acc99cbe4f97338221f829d77a06f3bce2adc1bfd321
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.8 {"installer":{"name":"uv","version":"0.13.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"12","id":"bookworm","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Security for unfret-mcp 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page