tutorial · agentic distribution

Setup MCP

Plug @gosniffy/mcp into Claude Desktop or Cursor and your agent gets three new tools: sniffy_sample, sniffy_quote, and sniffy_diagnose. The first two are free. The third settles over x402 on Morph — that's the part that turns your agent into a paying customer of the App Store intelligence API.

1

Prereqs

  • Node.js 20+ on your PATH. Check with node -v.
  • A host that speaks MCP — Claude Desktop, Cursor, or any other client following the MCP spec.
  • A funded EOA on Morph — only needed for sniffy_diagnose. See Fund your AI agent.
2

Pick an install path

@gosniffy/mcp is staged for publish via Changesets. Until the package lands on npm, run it from source.

A. From npm (recommended once published)

bash
npx -y @gosniffy/mcp

B. From source (works today)

bash
git clone https://github.com/TheoInTech/asosniffy-com
cd asosniffy-com
pnpm install
pnpm -F @gosniffy/mcp build

Note the absolute path to packages/mcp/dist/index.js — you'll point your host config at it in the next step.

3

Wire it into Claude Desktop

Edit your host config file:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • Linux: ~/.config/Claude/claude_desktop_config.json

Add the Sniffy server under mcpServers:

json
{
  "mcpServers": {
    "sniffy": {
      "command": "npx",
      "args": ["-y", "@gosniffy/mcp"],
      "env": {
        "SNIFFY_PRIVATE_KEY": "0x...",
        "SNIFFY_BASE_URL": "https://api.sniffy.io"
      }
    }
  }
}

Or if you're running from source, swap the command/args for the absolute path from step 2:

json
{
  "mcpServers": {
    "sniffy": {
      "command": "node",
      "args": ["/absolute/path/to/asosniffy-com/packages/mcp/dist/index.js"],
      "env": {
        "SNIFFY_PRIVATE_KEY": "0x..."
      }
    }
  }
}
4

Or wire it into Cursor

Drop the same shape into .cursor/mcp.json at the root of any workspace where you want Sniffy available:

json
{
  "mcpServers": {
    "sniffy": {
      "command": "npx",
      "args": ["-y", "@gosniffy/mcp"],
      "env": {
        "SNIFFY_PRIVATE_KEY": "0x..."
      }
    }
  }
}

SNIFFY_BASE_URL is optional — defaults to https://api.sniffy.io. Override it for staging or self-hosted scrapers.

5

Restart and verify

Fully quit and relaunch the host app so it re-reads the config. Then ask your agent:

Use sniffy_sample to fetch a sample report.

You should see a JSON-shaped fixture report come back. No wallet, no payment — that's sniffy_sample doing its job.

6

Tool catalog

  • sniffy_sample — free. Returns a fixture diagnosis with provenance: "fixture". Use it to teach the agent the response shape.
  • sniffy_quote — free. Validates the app + keywords, returns a shallowScan preview and pricing.estimatedTotal — the exact amount sniffy_diagnose will charge.
  • sniffy_diagnose — paid. Auto-signs an EIP-3009 authorization with SNIFFY_PRIVATE_KEY and settles over x402. Returns the full diagnosis plus a receipt block (network, tx hash, settled-at).