mcp-server-insumer

mcp-server-insumer

MCP server for on-chain attestation and wallet trust profiles across 31 EVM chains and Solana. Privacy-preserving boolean verification, ECDSA-signed responses, compliance templates.

Category
Visit Server

README

mcp-server-insumer

MCP server for InsumerAPI -- on-chain verification across 31 blockchains. Returns ECDSA-signed booleans without exposing wallet balances. Up to 10 conditions per request, each with its own chainId. Optional Merkle storage proofs for trustless verification.

Enables AI agents (Claude Desktop, Cursor, Windsurf, and any MCP-compatible client) to autonomously verify on-chain conditions, discover merchants, generate signed discount codes, and onboard new merchants.

In production: DJD Agent Score (Coinbase x402 ecosystem) uses InsumerAPI for AI agent wallet trust scoring. Case study.

Also available as: LangChain (25 tools, PyPI) | OpenAI GPT (GPT Store) | insumer-verify (client-side verification, npm)

Quick Start

Claude Desktop

Add to your claude_desktop_config.json:

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

Cursor / Windsurf

Add to your MCP settings:

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

Get an API Key

  1. Go to insumermodel.com/developers
  2. Sign up for a free key (instant, no credit card)
  3. Set it as INSUMER_API_KEY

What You Get Back

When your agent calls insumer_attest, you get an ECDSA-signed attestation:

{
  "ok": true,
  "data": {
    "attestation": {
      "id": "ATST-A7C3E",
      "pass": true,
      "results": [
        {
          "condition": 0,
          "met": true,
          "label": "USDC >= 1000 on Ethereum",
          "type": "token_balance",
          "chainId": 1,
          "evaluatedCondition": {
            "chainId": 1,
            "contractAddress": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
            "decimals": 6,
            "operator": "gte",
            "threshold": 1000,
            "type": "token_balance"
          },
          "conditionHash": "0x8a3b...",
          "blockNumber": "0x129e3f7",
          "blockTimestamp": "2026-02-28T12:34:56.000Z"
        }
      ],
      "passCount": 1,
      "failCount": 0,
      "attestedAt": "2026-02-28T12:34:57.000Z",
      "expiresAt": "2026-02-28T13:04:57.000Z"
    },
    "sig": "MEUCIQD...(base64 ECDSA signature)...",
    "kid": "insumer-attest-v1"
  },
  "meta": {
    "version": "1.0",
    "timestamp": "2026-02-28T12:34:57.000Z",
    "creditsCharged": 1,
    "creditsRemaining": 99
  }
}

The sig is an ECDSA P-256 signature over {id, pass, results, attestedAt}. The kid identifies which key signed it. The conditionHash is a SHA-256 of the exact condition logic that was evaluated.

No balances. No amounts. Just a cryptographically signed true/false.

Verify the Response

Your agent gets the attestation. Your application should verify it. Install insumer-verify:

npm install insumer-verify
import { verifyAttestation } from "insumer-verify";

// attestationResponse = the JSON your agent received from insumer_attest
const result = await verifyAttestation(attestationResponse, {
  jwksUrl: "https://insumermodel.com/.well-known/jwks.json",
  maxAge: 120, // reject if block data is older than 2 minutes
});

if (result.valid) {
  // Signature verified, condition hashes match, not expired
  const pass = attestationResponse.data.attestation.pass;
  console.log(`Attestation ${pass ? "passed" : "failed"} all conditions`);
} else {
  console.log("Verification failed:", result.checks);
}

This runs 4 independent checks: ECDSA signature, condition hash integrity, block freshness, and attestation expiry. Zero runtime dependencies, uses Web Crypto API.

Tools (25)

Key Discovery (free)

Tool Description
insumer_jwks Get the JWKS containing InsumerAPI's ECDSA P-256 public signing key. Use the kid from attestation responses to match the correct key.

On-Chain Verification (cost credits)

Tool Description
insumer_attest Verify on-chain conditions (token balances, NFT ownership, EAS attestations, Farcaster identity). Returns ECDSA-signed boolean with kid, evaluatedCondition, conditionHash (SHA-256), and blockNumber/blockTimestamp. 1 credit. Optional proof: "merkle" for EIP-1186 Merkle storage proofs (2 credits).
insumer_compliance_templates List available EAS compliance templates (Coinbase Verifications on Base, Gitcoin Passport on Optimism). Free.
insumer_wallet_trust Generate ECDSA-signed wallet trust fact profile. 17 checks across stablecoins, governance, NFTs, and staking. 3 credits (6 with merkle).
insumer_batch_wallet_trust Batch trust profiles for up to 10 wallets. Shared block fetches, 5-8x faster. Partial success supported. 3 credits/wallet (6 with merkle).
insumer_verify Create signed discount code (INSR-XXXXX, 30-min expiry) for a wallet at a merchant. 1 merchant credit.

Discovery (free)

Tool Description
insumer_list_merchants Browse the merchant directory. Filter by token, verification status.
insumer_get_merchant Get full public merchant profile.
insumer_list_tokens List all registered tokens and NFTs. Filter by chain, symbol, type.
insumer_check_discount Calculate discount for a wallet at a merchant.

Credits

Tool Description
insumer_credits Check credit balance and tier.
insumer_buy_credits Buy verification credits with USDC (25 credits / 1 USDC).
insumer_confirm_payment Confirm USDC payment for a discount code.

Merchant Onboarding (owner-only)

Tool Description
insumer_create_merchant Create new merchant. Receives 100 free credits.
insumer_merchant_status Get full private merchant details.
insumer_configure_tokens Set token discount tiers.
insumer_configure_nfts Set NFT collection discounts.
insumer_configure_settings Set discount mode, cap, USDC payments.
insumer_publish_directory Publish merchant to public directory.
insumer_buy_merchant_credits Buy merchant verification credits with USDC.

Domain Verification (owner-only)

Tool Description
insumer_request_domain_verification Request a verification token for a merchant's domain. Returns token and 3 methods (DNS TXT, meta tag, file upload).
insumer_verify_domain Complete domain verification after placing the token. Verified merchants get a trust badge.

Commerce Protocol Integration

Tool Description
insumer_acp_discount Check discount eligibility in OpenAI/Stripe ACP format. Returns coupon objects and per-item allocations. 1 merchant credit.
insumer_ucp_discount Check discount eligibility in Google UCP format. Returns title, extension field, and applied array. 1 merchant credit.
insumer_validate_code Validate an INSR-XXXXX discount code. Returns validity, discount percent, expiry. Free, no auth.

Supported Chains (31)

EVM: Ethereum, BNB Chain, Base, Avalanche, Polygon, Arbitrum, Optimism, Chiliz, Soneium, Plume, Sonic, Gnosis, Mantle, Scroll, Linea, zkSync Era, Blast, Taiko, Ronin, Celo, Moonbeam, Moonriver, Viction, opBNB, World Chain, Unichain, Ink, Sei, Berachain, ApeChain

Non-EVM: Solana

Development

npm install
npm run build

# Test with MCP Inspector
npx @modelcontextprotocol/inspector node build/index.js

License

MIT

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured