Skip to main content
Glama

rothy Intelligence API

MCP Server

An x402-powered intelligence API for Shopify, Amazon, and Google Maps data. AI agents pay per call in USDC on Base — no signup, no API keys, no human in the loop.

What This Does

Tool

What It Returns

Price

GET /shopify/analyze

Products, pricing, apps, theme, collections for any Shopify store

$0.08

GET /shopify/products

Paginated product catalog from any Shopify store

$0.02

GET /amazon/search

Amazon search results with Opportunity Score

$0.05

GET /amazon/product

Single ASIN analysis with FBA profitability estimate

$0.08

GET /maps/search

Google Maps business search with Lead Quality Score

$0.05

GET /maps/leads

Qualified sales leads with outreach hints

$0.10

Free endpoints: GET /health, GET /.well-known/mcp.json, GET /openapi.json


Related MCP server: x402-bazaar-mcp

How x402 Payment Works

x402 is a protocol for machine-native micropayments using HTTP 402. No accounts, no rate-limit keys, no billing — agents pay per call in USDC on Base.

Flow:

Agent → GET /shopify/analyze?url=example.myshopify.com
Server → 402 Payment Required
         X-PAYMENT-REQUIRED: {"price": "$0.08", "network": "base", ...}

Agent → signs USDC TransferWithAuthorization (ERC-3009)
Agent → GET /shopify/analyze?url=example.myshopify.com
        X-PAYMENT: <signed-payment-header>

Server → verifies payment on Base
Server → 200 OK + intelligence data

Agents need a funded Base wallet with USDC. USDC settles directly to the server wallet — no intermediary, no escrow.


Endpoints

GET /shopify/analyze

Analyzes a Shopify store: product catalog, pricing distribution, top vendors, product types, detected apps (Klaviyo, Yotpo, ReCharge, etc.), theme detection.

Query params:

  • url (required) — store URL, e.g. example.myshopify.com

Example:

curl "https://api.example.com/shopify/analyze?url=gymshark.com" \
  -H "X-PAYMENT: <signed-payment>"

Response:

{
  "store_url": "https://gymshark.com",
  "store_name": "Gymshark",
  "product_count": 342,
  "collection_count": 28,
  "price_range": { "min": 18.00, "max": 65.00, "avg": 38.50 },
  "top_vendors": [{ "vendor": "Gymshark", "count": 342 }],
  "has_sale_items": true,
  "sale_percentage": 23,
  "detected_apps": ["Klaviyo", "Yotpo", "Sezzle"],
  "detected_theme": "Dawn",
  "analyzed_at": "2026-03-22T10:00:00Z"
}

GET /shopify/products

Paginated product catalog. Pages up to 250 products per call.

Query params:

  • url (required)

  • page (optional, default: 1)

  • limit (optional, default: 50, max: 250)


GET /amazon/search

Searches Amazon products and returns an Opportunity Score (0–100) for each. High score = strong demand + quality gap + good price tier.

Query params:

  • keyword (required)

  • marketplace (optional: US | UK | DE | CA | AU, default: US)

Example:

curl "https://api.example.com/amazon/search?keyword=yoga+mat&marketplace=US" \
  -H "X-PAYMENT: <signed-payment>"

Response:

{
  "keyword": "yoga mat",
  "marketplace": "US",
  "total_results": 24,
  "products": [
    {
      "asin": "B08N5WRWNW",
      "title": "Premium Yoga Mat Non Slip...",
      "price": 28.99,
      "rating": 4.3,
      "review_count": 12453,
      "prime": true,
      "opportunity_score": 72,
      "url": "https://www.amazon.com/dp/B08N5WRWNW"
    }
  ]
}

Opportunity Score formula:

  • Reviews >1000 (proven demand): +15

  • Rating <4.0 (quality gap to fill): +8–15

  • Price $15–$60 (mass market sweet spot): +10

  • Prime eligible: +5


GET /amazon/product

Deep analysis of a single ASIN including FBA fee/profit estimates.

Query params:

  • asin (required) — 10-character Amazon product ID

  • marketplace (optional, default: US)

Response includes FBA estimate:

{
  "asin": "B08N5WRWNW",
  "fba_estimate": {
    "estimated_monthly_sales": 400,
    "estimated_monthly_revenue": 11596,
    "estimated_fba_fee": 9.84,
    "estimated_profit_margin": 28,
    "opportunity_tier": "medium"
  }
}

GET /maps/search

Searches Google Maps businesses and scores each as a sales lead.

Query params:

  • query (required) — business type, e.g. coffee shops

  • location (required) — city/area, e.g. Austin TX

  • max (optional, default: 20, max: 60)

  • google_key (required) — your Google Places API key

Response includes Lead Quality Score:

{
  "businesses": [
    {
      "name": "Brew & Co Coffee",
      "rating": 3.8,
      "website": null,
      "phone": "+1-512-555-0100",
      "lead_quality_score": 68,
      "outreach_hints": [
        "No website detected — pitch web presence / digital marketing",
        "Low rating (3.8) — pitch reputation management or review improvement"
      ]
    }
  ]
}

Lead Quality Score formula:

  • Has website: +20

  • Has phone: +10

  • Rating <4.0: +8–15

  • Reviews >50: +10–15

  • Price level ≥2: +10

  • Business OPERATIONAL: +10


GET /maps/leads

Returns only businesses above a quality score threshold, sorted by score. Best for building targeted outreach lists.

Query params:

  • industry (required)

  • location (required)

  • min_score (optional, default: 60)

  • google_key (required)


Getting a Google Places API Key

Maps endpoints require your own Google Places API key (the server never stores it):

  1. Go to console.cloud.google.com

  2. Create or select a project

  3. Enable Places API

  4. Create an API key under APIs & Services → Credentials

  5. Pass it as ?google_key=YOUR_KEY on every Maps request


Agent Discovery

x402scan

Agents discover x402-enabled APIs via x402scan. The server returns proper x402 headers on every 402 response.

MCP Discovery

GET /.well-known/mcp.json

Returns the MCP plugin manifest pointing to the OpenAPI spec at /openapi.json.

OpenAI Plugin Discovery

GET /.well-known/ai-plugin.json

Compatible with ChatGPT plugin discovery format.


Running the Server

Setup

npm install
cp .env.example .env
# Edit .env: set WALLET_ADDRESS to your Base USDC wallet

Development

npm run dev

Production

npm run build
npm start

Environment Variables

WALLET_ADDRESS=0x...   # Your USDC-receiving wallet on Base (required)
PORT=3000              # Default: 3000
NODE_ENV=production

x402 Payment Flow (Technical)

When an agent makes a request without payment:

HTTP/1.1 402 Payment Required
X-PAYMENT-REQUIRED: {
  "version": "1",
  "price": "$0.08",
  "network": "base",
  "payTo": "0xYourWalletAddress",
  "asset": "USDC"
}

The agent:

  1. Signs a TransferWithAuthorization (ERC-3009) for the USDC amount

  2. Retries with X-PAYMENT: <base64-encoded-signed-authorization>

  3. Server verifies the signature on-chain and serves the response

USDC settles atomically to WALLET_ADDRESS on Base mainnet.


Error Responses

All errors return JSON:

{
  "error": "Human-readable error message",
  "detail": "Technical detail (optional)",
  "retry_after": 30
}

Status

Meaning

400

Bad request — check query params

402

Payment required — send x402 payment header

503

Upstream rate limited (Amazon) — retry after 30s

502

Upstream error (scraping failed)

Available Tools

6 tools
amazon_productA

Deep analysis of a single Amazon product by ASIN. Includes FBA fee estimate, profit margin, and opportunity tier.

ParametersJSON Schema
NameRequiredDescriptionDefault
asinYes10-character Amazon ASIN, e.g. B08N5WRWNW
marketplaceNoMarketplace: US, UK, DE, CA, AU (default: US)

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden for behavioral traits. It discloses the output contents (FBA fee, profit margin, opportunity tier) but does not mention any side effects, rate limits, data freshness, or external calls. Additional context would improve transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence that front-loads the core purpose and lists key outputs. No wasted words, highly efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given there is no output schema, the description gives a good sense of what the tool returns (FBA fee, profit margin, opportunity tier). It covers the single-product analysis scope adequately. Could mention that the output is a detailed report, but overall complete enough.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description does not add significant meaning beyond the schema; it mentions 'by ASIN' which matches the asin parameter, but does not elaborate on the marketplace parameter or provide formatting hints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it performs 'deep analysis of a single Amazon product by ASIN' and lists specific outputs (FBA fee estimate, profit margin, opportunity tier). This distinguishes it from siblings like amazon_search, which is for searching products.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is for analyzing a single product in depth, but does not explicitly state when to use it versus alternatives (e.g., amazon_search for broader queries). It provides context for use but lacks explicit guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

maps_leadsB

Find qualified sales leads on Google Maps filtered by Lead Quality Score. Best for building targeted outreach lists.

ParametersJSON Schema
NameRequiredDescriptionDefault
industryYesIndustry or business type, e.g. 'restaurants'
locationYesCity or area, e.g. 'Miami FL'
min_scoreNoMinimum Lead Quality Score threshold (default: 60)
google_keyYesYour Google Places API key

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It does not disclose whether the operation is read-only, any authentication requirements beyond the API key, or behavior when no leads are found. The description is minimal on behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no filler, front-loaded purpose. Every word adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema and no annotations. The description does not explain the concept of Lead Quality Score, output format, or what happens if no leads match. For a tool with 4 parameters and no structured metadata, more context is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema has 100% coverage, so baseline is 3. The description mentions 'Lead Quality Score' but does not add details beyond schema (e.g., what min_score represents or how it's calculated). No additional parameter meaning given.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool finds qualified sales leads on Google Maps filtered by Lead Quality Score, distinguishing it from the sibling 'maps_search' which is likely a general search. The purpose is specific and actionable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Says 'Best for building targeted outreach lists,' which implies a use case but does not explicitly state when to use or avoid this tool, nor compare to sibling tools like 'maps_search'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

shopify_analyzeB

Analyze any Shopify store — products, pricing distribution, top vendors, detected apps (Klaviyo, Yotpo, etc.), theme, and collections.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesShopify store URL, e.g. gymshark.com

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided; description only implies analysis without stating read-only nature, data freshness, rate limits, or side effects. The term 'analyze' suggests non-destructive but is not explicit.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence with clear enumeration of outputs. No unnecessary words; front-loaded with action and scope.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Lists key outputs (products, pricing, etc.) compensating for lack of output schema. However, missing behavioral details (e.g., read-only, prerequisites) given no annotations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Parameter 'url' has adequate schema description with example. Schema coverage is 100%, so description adds no extra meaning beyond schema. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool analyzes a Shopify store with specific outputs (products, pricing, vendors, apps, theme, collections). However, it does not distinguish from sibling tool 'shopify_products' which may have overlapping purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like 'shopify_products'. The description only says 'Analyze any Shopify store', lacking usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

shopify_productsB

Fetch a paginated product catalog from any Shopify store. Up to 250 products per call.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesShopify store URL
pageNoPage number (default: 1)
limitNoProducts per page, max 250 (default: 50)

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must provide behavioral details. It only mentions pagination and the 250-product limit, but omits traits like rate limits, whether the tool is read-only, or error handling.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no filler. First sentence states purpose, second adds a key constraint. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite simple parameters, description lacks details on return format, error conditions, authentication needs, or sorting/filtering. Fails to fully exploit the no-annotation context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema already describes all 3 parameters (100% coverage). The description adds minimal value: 'any Shopify store' for url and 'up to 250' for limit, which overlaps with schema's 'max 250'. Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Fetch a paginated product catalog from any Shopify store', indicating a specific verb and resource. It distinguishes from siblings like amazon_product or maps_search which target different platforms.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like shopify_analyze. Doesn't mention prerequisites or exclusions. The 'any Shopify store' hint is broad but lacks explicit when-to-use context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

A3.8/5.0
Disambiguation5/5

Each tool targets a distinct domain and action: Amazon product details vs search, Maps lead filtering vs search, Shopify store analysis vs product catalog. No overlap in purpose.

Naming Consistency5/5

All tool names follow a consistent 'domain_action' pattern using lowercase with underscores (e.g., amazon_search, maps_leads). Uniform and predictable.

Tool Count5/5

Six tools split evenly across three domains (2 each). This is well-scoped for an intelligence API covering Amazon, Maps, and Shopify without bloat.

Completeness4/5

Each domain has core operations (search and detail for Amazon, search and leads for Maps, analysis and products for Shopify). Minor gaps exist, such as no review analysis for Amazon or order data for Shopify, but the surface is reasonably complete for its stated purpose.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/samrothschild23/intelligence-api'

If you have feedback or need assistance with the MCP directory API, please join our Discord server