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.
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.
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)
npx -y @gosniffy/mcpB. From source (works today)
git clone https://github.com/TheoInTech/asosniffy-com
cd asosniffy-com
pnpm install
pnpm -F @gosniffy/mcp buildNote the absolute path to packages/mcp/dist/index.js — you'll point your host config at it in the next step.
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:
{
"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:
{
"mcpServers": {
"sniffy": {
"command": "node",
"args": ["/absolute/path/to/asosniffy-com/packages/mcp/dist/index.js"],
"env": {
"SNIFFY_PRIVATE_KEY": "0x..."
}
}
}
}Or wire it into Cursor
Drop the same shape into .cursor/mcp.json at the root of any workspace where you want Sniffy available:
{
"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.
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.
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).