# douglasborthwick-crypto/mcp-server-insumer [Health: Active]

**Category:** 💰 Finance & Fintech  
**Repository:** https://github.com/douglasborthwick-crypto/mcp-server-insumer  
**GitHub Stars:** 2  
**npm Downloads (last month):** 4453  
**Views:** 3  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/douglasborthwick-crypto-mcp-server-insumer

## Description
On-chain attestation across 31 blockchains. 25 tools: ECDSA-signed verification, wallet trust profiles, compliance templates, merchant onboarding, ACP/UCP commerce protocols.

## Tools
Capabilities this server exposes over MCP:

- **insumer_jwks** — Get the JWKS (JSON Web Key Set): five entries over two keys. The ECDSA P-256 key under kids insumer-attest-v1, insumer-attest-v2, and insumer-trust-v2, followed by the ML-DSA-65 post-quantum key under two RFC 9964 AKP entries, insumer-attest-pq1 and insumer-trust-pq1. Use this to verify attestation and trust signatures without hardcoding a key. Match the entry by the kid (or pqKid) on the response, never by position; an unknown kid is unverifiable, not refuted. No authentication required.
- **insumer_setup** — Generate a free InsumerAPI key instantly. No credit card required. Returns an API key (insr_live_...) with 10 verification credits and 100 calls/day. The user should add the key to their MCP config as INSUMER_API_KEY and restart. One free key per email, 3 per IP per day.
- **insumer_attest** — Create on-chain verification (attestation). Verify 1-10 conditions (token balances, NFT ownership, EAS attestations, Farcaster identity, arbitrary boolean view calls, supply/amount ratios, ERC-8004 agent registration, ERC-7710 delegation validity) across 37 chains (31 EVM + Solana + XRPL + Bitcoin + Tron + Stellar + Sui). nft_ownership is supported on 33 of the 37 (31 EVM + Solana + XRPL); Bitcoin, Tron, Stellar and Sui are token_balance only. Returns ECDSA-signed boolean results with a kid field identifying the signing key (fetch public key via insumer_jwks). Never exposes actual balances. Each result includes evaluatedCondition (exact logic checked), conditionHash (SHA-256 for tamper-evidence), and blockNumber/blockTimestamp for EVM chains (freshness). XRPL results include ledgerIndex and ledgerHash instead of blockNumber/blockTimestamp; trust line results also include trustLineState: { frozen: boolean }. Stellar results include ledgerIndex and ledgerHash and surface assetCode (which flows into conditionHash for non-native asset binding). Sui results include checkpointSequence and checkpointDigest. Standard mode costs 1 credit. Pass proof: 'merkle' for EIP-1186 Merkle storage proofs (2 credits), available on 27 of the 31 EVM chains. For EAS attestations, use a compliance template (Coinbase Verifications, Gitcoin Passport) or raw schemaId. For Farcaster, use type 'farcaster_id' (checks IdRegistry on Optimism). For arbitrary contract checks, use type 'evm_view_call' (single-address-argument view function returning bool; RPC EVM chains only). For self-scaling agent-spend limits, use type 'ratio_to_amount' (met iff balance >= multiple * amount; RPC EVM chains only). For share-of-supply rules, use type 'ratio_to_supply' (met iff balance / totalSupply >= minFraction, a fraction in (0,1]; RPC EVM chains, ERC-20 only). For agent standing, use type 'erc8004_agent' (is this wallet a registered ERC-8004 agent on Base; agentId required) or 'erc7710_delegation' (is this signed MetaMask-framework delegation from principal to agent currently valid on Base: signature incl. ERC-1271, unrevoked at the anchored block, recognized caveats, time window; spend/target/call limits are REPORTED as declaredLimits, not simulated). Attestations containing a delegation condition expire in 5 minutes instead of 30. On failure a delegation result carries failReason (delegate_mismatch, principal_mismatch, invalid_signature, delegator_not_deployed, revoked, unknown_caveat_enforcer, outside_time_window). Use insumer_compliance_templates to list available templates.
- **insumer_compliance_templates** — List available compliance templates for EAS attestation verification. Templates provide pre-configured schema IDs, attester addresses, and decoder contracts for KYC/identity providers (Coinbase Verifications on Base, Gitcoin Passport on Optimism). Use a template name in insumer_attest conditions instead of specifying raw EAS parameters. No authentication or credits required.
- **insumer_wallet_trust** — Generate a structured, ECDSA-signed wallet trust fact profile. Send an EVM wallet address and get 44 base checks across 25 chains in 5 dimensions: stablecoins (USDC + USDT across 21 EVM chains), governance (UNI, AAVE, ARB, OP), NFTs (BAYC, Pudgy Penguins, Wrapped CryptoPunks), staking (stETH, rETH, cbETH), and institutional stablecoins (EURCV, USDCV, USDC, and BENJI across Ethereum, Solana, XRPL, Stellar, and Sui — the cross-chain entries evaluate when the matching optional wallet is supplied). Add optional Solana, XRPL, Bitcoin, and Tron wallets to reach up to 49 checks across 27 chains in 9 dimensions (adds Solana USDC, XRPL RLUSD + USDC, native BTC holdings, and Tron USDT-TRC20). Returns per-dimension pass/fail counts and an overall summary — no score, no opinion, just cryptographically verifiable evidence organized by dimension. Designed for AI agent-to-agent trust decisions. Costs 3 credits (standard) or 6 credits (proof: 'merkle').
- **insumer_batch_wallet_trust** — Generate wallet trust fact profiles for up to 10 wallets in a single request. Shared block fetches make this 5-8x faster than sequential calls. Each wallet gets an independently ECDSA-signed profile with its own TRST-XXXXX ID. Supports partial success — failed wallets get error entries while successful ones return full profiles. Costs 3 credits per successful wallet (standard) or 6 credits per wallet (proof: 'merkle'). Credits only charged for successful profiles.
- **insumer_verify** — Create signed discount code (INSR-XXXXX, 30-min expiry) for a wallet at a merchant. Returns tier and discount percentage — never raw balance amounts. Consumes 1 merchant credit. If merchant has Stripe Connect, a coupon is auto-created.
- **insumer_list_merchants** — Browse merchants in the public directory. Filter by accepted token, verification status. Returns company name, website, tokens accepted, and discount info.
- **insumer_get_merchant** — Get full public merchant profile including token tiers, NFT collections, discount mode, and verification status.
- **insumer_list_tokens** — List all registered tokens and NFT collections in the Insumer registry. Filter by chain, symbol, or asset type.
- **insumer_check_discount** — Calculate discount for a wallet at a merchant. Checks on-chain balances and returns tier and discount percentage per token — never raw balance amounts. Free — does not consume credits.
- **insumer_credits** — Check verification credit balance, tier (free/pro/enterprise), and daily rate limit for the current API key.
- **insumer_buy_key** — Buy a new API key with USDC, USDT, BTC, or USDT-TRC20 (no auth required). Agent-friendly: no email needed. Send USDC/USDT to EVM wallet 0xAd982CB19aCCa2923Df8F687C0614a7700255a23 or Solana wallet 6a1mLjefhvSJX1sEX8PTnionbE9DqoYjU6F6bNkT4Ydr. Send USDT-TRC20 to Tron wallet TC5yvwkAMakkXtUxYiu2Yn1xbBcwYuD6cn. Send BTC to bc1qg7qnerdhlmdn899zemtez5tcx2a2snc0dt9dt0 (1 confirmation required). USDC/USDT auto-detected from transaction. BTC converted to USD at market rate. One key per wallet — use insumer_buy_credits to top up. Volume discounts: $5–$99 = $0.04/call, $100–$499 = $0.03, $500+ = $0.02. Non-refundable.
- **insumer_buy_credits** — Buy verification credits with USDC, USDT, BTC, or USDT-TRC20. Volume discounts: $5–$99 = $0.04/call (25 credits/$1), $100–$499 = $0.03 (33/$1, 25% off), $500+ = $0.02 (50/$1, 50% off). Minimum $5. USDC/USDT on EVM and Solana (auto-detected). USDT-TRC20 on Tron. BTC on Bitcoin (converted to USD at market rate, 1 confirmation required). Crypto sent on unsupported chains cannot be recovered. Non-refundable. First purchase registers the sender wallet to the API key. Subsequent purchases must come from the same sender. To change the registered wallet, set updateWallet to true.
- **insumer_confirm_payment** — Confirm stablecoin payment for a discount code. After calling insumer_verify, confirm that the USDC/USDT payment was made on-chain. The server verifies the transaction receipt.
- **insumer_create_merchant** — Create a new merchant. Receives 100 free verification credits. The API key that creates the merchant owns it. Max 10 merchants per API key.
- **insumer_merchant_status** — Get full private merchant details: credits, token configs, NFT collections, directory status, verification status, payment settings. Owner only.
- **insumer_configure_tokens** — Configure merchant token discount tiers. Set own token and/or partner tokens. Max 8 tokens total. Owner only.
- **insumer_configure_nfts** — Configure NFT collections that grant discounts at the merchant. Max 4 collections. Owner only.
- **insumer_configure_settings** — Update merchant settings: discount stacking mode, cap, and stablecoin payment configuration. All fields optional. Owner only.
- **insumer_publish_directory** — Publish (or refresh) the merchant's listing in the public directory. Call again after updating tokens or settings. Owner only.
- **insumer_buy_merchant_credits** — Buy merchant verification credits with USDC, USDT, BTC, or USDT-TRC20. Volume discounts: $5–$99 = $0.04/call (25/$1), $100–$499 = $0.03 (33/$1), $500+ = $0.02 (50/$1). Minimum $5. USDC/USDT on EVM and Solana (auto-detected). USDT-TRC20 on Tron. BTC on Bitcoin (converted to USD at market rate, 1 confirmation required). Non-refundable. Owner only. First purchase registers the sender wallet to the API key. To change the registered wallet, set updateWallet to true.
- **insumer_request_domain_verification** — Request a domain verification token for a merchant. Returns the token and three verification methods: DNS TXT record, HTML meta tag, or file upload. After placing the token, call insumer_verify_domain to complete verification. Verified merchants get a trust badge in the public directory. Owner only.
- **insumer_verify_domain** — Verify domain ownership for a merchant. Call this after placing the verification token (from insumer_request_domain_verification) via DNS TXT record, HTML meta tag, or file upload. The server checks all three methods automatically. Rate limited to 5 attempts per hour. Owner only.
- **insumer_acp_discount** — Check token-holder discount eligibility in OpenAI/Stripe Agentic Commerce Protocol (ACP) format. Returns coupon objects, applied/rejected arrays, and per-item allocations compatible with ACP checkout flows. Same on-chain verification as insumer_verify, wrapped in ACP format. Consumes 1 merchant credit.
- **insumer_ucp_discount** — Check token-holder discount eligibility in Google Universal Commerce Protocol (UCP) format. Returns title, extension field, and applied array compatible with UCP checkout flows. Same on-chain verification as insumer_verify, wrapped in UCP format. Consumes 1 merchant credit.
- **insumer_validate_code** — Validate an INSR-XXXXX discount code. For merchant backends during ACP/UCP checkout to confirm code validity, discount percent, and expiry. Returns valid/invalid status with reason. No authentication required, no credits consumed. Does not expose wallet or token data.

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `npx` (confidence: high):

```json
"mcpServers": {
  "mcp-server-insumer": {
    "command": "npx",
    "args": ["-y","mcp-server-insumer"],
    "env": {
      "INSUMER_API_KEY": "",
      "INSUMER_PAYMENT_KEY": "",
      "INSUMER_MAX_PAYMENT_USDC": "",
      "PORT": "",
      "INSUMER_HOSTED_TOOLS": "",
      "INSUMER_DAILY_CAP": ""
    }
  }
}
```

**Requires environment variables:** `INSUMER_API_KEY`, `INSUMER_PAYMENT_KEY`, `INSUMER_MAX_PAYMENT_USDC`, `PORT`, `INSUMER_HOSTED_TOOLS`, `INSUMER_DAILY_CAP` — the values above are empty placeholders; fill in real credentials before running (see the repository for what each one is for).

## Documentation

## What douglasborthwick-crypto/mcp-server-insumer does

douglasborthwick-crypto/mcp-server-insumer exposes InsumerAPI through MCP. Agents can submit wallet conditions and receive signed boolean results rather than balance amounts or identity data. Conditions can cover token balances, NFT ownership, EAS attestations, Farcaster identity, selected EVM view calls, balance-to-amount and balance-to-supply ratios, ERC-8004 registration, and ERC-7710 delegation validity.

The verification surface spans 31 EVM networks plus Solana, XRPL, Bitcoin, Tron, Stellar, and Sui. NFT checks are available on 33 of those networks; Bitcoin, Tron, Stellar, and Sui support token-balance checks only. Results include the exact evaluated logic and a SHA-256 condition hash. EVM responses include block metadata, while non-EVM responses use the relevant ledger or checkpoint identifiers.

Alongside individual attestations, the package creates signed wallet trust profiles. These organize checks across stablecoins, governance tokens, NFTs, staking assets, and institutional stablecoins, with optional wallets for additional chains. Batch processing handles up to 10 wallets and supports partial success.

## How it works

The server can run locally over stdio or be accessed through InsumerAPI's hosted streamable-HTTP endpoint at `https://api.insumermodel.com/mcp`. Local clients can authenticate with an `INSUMER_API_KEY`, which uses verification credits. A local installation can also use `INSUMER_PAYMENT_KEY` for x402 pay-per-call payments from a dedicated Base wallet holding USDC.

`insumer_jwks` returns the signing keys. Consumers should select keys by the response's `kid` or `pqKid`, rather than by array position. Attestations and trust profiles include ECDSA signatures and ML-DSA-65 post-quantum signatures. EVM Merkle proofs can be requested for supported networks, allowing a verifier to check storage data against a block header.

Attestations normally expire after 30 minutes; those containing an ERC-7710 delegation condition expire after five minutes. Standard attestations cost one credit, while trust profiles cost three credits. Merkle-proof requests use the higher documented credit amounts.

## Setup and configuration

Run the package with `npx` and add it to an MCP client's server configuration:

```json
{
  "mcpServers": {
    "insumer": {
      "command": "npx",
      "args": ["-y", "mcp-server-insumer"],
      "env": {
        "INSUMER_API_KEY": "insr_live_..."
      }
    }
  }
}
```

A free key can be generated with `insumer_setup`, which returns 10 verification credits and a daily call allowance. The key must be added to the MCP configuration before restarting the server. The server can also be started without a key for unauthenticated tools, including key discovery, compliance-template listing, public merchant and token directories, and free discount checks.

For x402 payments, set `INSUMER_PAYMENT_KEY` to a throwaway Base wallet private key and optionally set `INSUMER_MAX_PAYMENT_USDC` to cap the amount authorized per call. If both payment and API-key variables are present, the API key is used.

## Tools and capabilities

- Evaluate one to ten cross-chain conditions with `insumer_attest`.
- List EAS compliance templates for Coinbase Verifications and Gitcoin Passport.
- Generate individual or batch wallet trust profiles.
- Retrieve signing keys and inspect credit status.
- Browse merchants, registered tokens, NFT collections, and public discount settings.
- Create, configure, publish, and verify merchant listings.
- Issue and validate wallet discount codes, including optional Stripe Connect coupon creation.
- Return discount eligibility in OpenAI/Stripe ACP or Google UCP formats.
- Buy API, verification, or merchant credits with supported stablecoins or Bitcoin.
- Confirm on-chain stablecoin payments for discount codes.

Merchant administration is owner-only. Merchant configuration supports token tiers, up to four NFT collections, discount stacking and caps, stablecoin payment settings, and domain verification through DNS, HTML metadata, or file upload.

## Limitations and notes

Raw balances and amounts are intentionally omitted from verification and discount responses. The server returns pass/fail evidence, counts, tiers, percentages, and signed metadata instead. Merkle proofs are limited to 27 EVM chains. Merchant and credit-purchase operations require local authenticated operation rather than the restricted hosted tool set. Credit purchases are non-refundable, and crypto sent on unsupported chains cannot be recovered.

_Full upstream README: https://allmcps.com/mcp/douglasborthwick-crypto-mcp-server-insumer/readme_

