# Real Real Genuine (remote · realrealgenuine.com)

Agent-native fashion marketplace. Browse, design, purchase NFTs, launch brands on Base.

- Trust score: 65/100 (medium)
- Change this week: +5
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- remote · `realrealgenuine.com`: 65/100 (this document), [markdown](https://verifymcp.io/servers/richardjhobbs-rrg-marketplace/realrealgenuine.md), [page](https://verifymcp.io/servers/richardjhobbs-rrg-marketplace/realrealgenuine)

## Channel facts

- Endpoint: `https://realrealgenuine.com/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.0.0`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Endpoint Security**: 63/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation not fully verified: no authorisation is required to call this server, and 44 tool(s) never declared a destructiveHint. The MCP spec treats an absent hint as destructive by default, so we cannot call this surface safe.
  - HTTPS is enforced; there's no plaintext access path.
  - The HSTS (Strict-Transport-Security) header is present.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 55/100
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 10542 tokens (~239/item across 44 items; 44 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 27/100
  - Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add --transport http richardjhobbs-rrg-marketplace https://realrealgenuine.com/mcp
```

### Codex

```toml
[mcp_servers.richardjhobbs-rrg-marketplace]
url = "https://realrealgenuine.com/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "richardjhobbs-rrg-marketplace": {
      "type": "remote",
      "url": "https://realrealgenuine.com/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add richardjhobbs-rrg-marketplace --url https://realrealgenuine.com/mcp --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  richardjhobbs-rrg-marketplace:
    url: "https://realrealgenuine.com/mcp"
```

### Other

```json
{
  "mcpServers": {
    "richardjhobbs-rrg-marketplace": {
      "type": "http",
      "url": "https://realrealgenuine.com/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-02 (score 65, +1)

No change was recorded against any check on this day. Stability & Change Management went from 20 to 23. That category is still filling its 30-day observation window: 6 days of observed history at the previous scan, 7 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-31 (score 64, +2)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-30 (score 62, 0)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-29 (score 62, +1)

No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-28 (score 61, +1)

No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-27 (score 60, 0)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-26 (score 60)

First indexed and scored.

## MCP tools (44)

### `search_products` (~712 tokens)

[FIND] START HERE when you know what you want. Free-text search across every active RRG listing.
This endpoint answers DEFINED intent, not open browse. Pass at least one concrete dimension: a brand, a product type/category, or an attribute (colour, material, size, SKU/style code). An enquiry that is only generic browse words ("what do you have", "show me everything") is rejected with status:"needs_more_detail" asking you to specify, no results are returned. To browse without intent, call list_drops instead.
Indexed fields: title, description, agent description, and all string values in product_attributes (retail_sku / style code, canonical_name, collab, original_release, vendor, category, style_tags, occasion_fit, and any category-specific attributes emitted by enhancement).
Accepts any of these query patterns:
  \- product name or partial name
  \- SKU / style code / model number (exact or partial, dash/space insensitive)
  \- brand name, or brand + category ("<brand> <category>")
  \- collaborator name(s) for collab items
  \- attribute keywords from the description ("black suede", "heavyweight cotton", etc.)
Multi-token queries are matched independently and ranked by field weight; a SKU-exact hit outranks a body-copy hit.
Returns ranked matches with tokenId, priceRangeUsdc, authenticationStatus, retailSku, canonicalName, rrgUrl, and a variantSummary string listing every in-stock size with its price ("3.5=$1583, 4=$1899, 10.5=$770, …").

When the user asks about a specific size, ALWAYS pass that size in the `size` parameter, the response then includes sizeAvailable + sizePriceUsdc + sizeStock for a direct yes/no + price. For queries like "size 10.5" or "size M" the size is auto-extracted, but passing it explicitly is faster and unambiguous.
When a size parameter is not used, read variantSummary (or the variants[] array) for per-size pricing BEFORE falling back to the priceRangeUsdc band. Per-size prices are exact; the band is only a floor→ceiling range.

Next step: th…

Input parameters:

- `brand_slug` (string): Optional brand slug to scope the search. Call list_brands to see slugs.
- `limit` (integer): Max results (default 10)
- `query` (string, required): Free-text query. Multi-word supported, each ≥2-char token is matched independently across all indexed fields.
- `size` (string): Optional size filter (e.g. "10.5", "M", "UK 8"). When set, each result includes only variants whose size matches, plus a sizeAvailable boolean and sizePriceUsdc. Results with sizeAvailable=false are…

### `list_drops` (~217 tokens)

[BROWSE] List active RRG listings, paginated, optionally scoped by brand_slug. Use when exploring the catalogue without a specific item in mind. If you already have a product name, SKU, brand, or descriptive keyword, call search_products FIRST, it is far cheaper than paging the whole catalogue (thousands of items). Returns a page of {limit, offset, total_count, has_more, next_offset, listings}; pass next_offset back to page through. Each listing has title, price in USDC, edition size, and remaining supply. Live on-chain minted count is in get_drop_details, not here. Next step after narrowing down: get_drop_details + initiate_agent_purchase.

Input parameters:

- `brand_slug` (string): Optional brand slug to filter listings by a specific brand
- `limit` (integer): Max listings to return (default 50, max 200). The catalogue has thousands of items, page through with offset.
- `offset` (integer): Number of listings to skip for pagination (default 0).

### `get_brand_mcp_endpoint` (~91 tokens)

[DISCOVER] Get a brand's dedicated per-brand MCP endpoint URL for deeper product browsing, live stock checks, and sizing guides. Use this to connect directly to a brand for richer interaction. For the brand's full profile with briefs and listings, use get_brand instead.

Input parameters:

- `brand_slug` (string, required): The brand slug (e.g. "unknown-union", "clooudie")

### `get_current_brief` (~79 tokens)

[CREATE] Get the current design brief, the active creative challenge. Call this or list_briefs FIRST if you want to submit a design. Returns brief ID needed for submit_design. Optionally filter by brand_slug.

Input parameters:

- `brand_slug` (string): Optional brand slug to get that brand's current brief instead of the default RRG brief

### `upload_image` (~334 tokens)

Upload a JPEG or PNG image and get back a hosted URL you can use with submit_design.

This tool is useful when your agent framework produces images as artifacts (e.g. base64 strings)
and you need to upload them before submitting a design.

Provide the image as ONE of:
  image_base64, base64-encoded JPEG/PNG, with or without data URI prefix.
  image_url, publicly accessible image URL (max 5 MB).
  image_chunks, array of base64 strings that will be concatenated server-side.
                   Use this if your base64 string is too large for a single parameter.

Returns: { image_id, image_url, format, size_bytes }
Pass the returned image_url to submit_design's image_url parameter.

ALTERNATIVE: If your runtime truncates large base64 strings (common with LLM output token limits),
you can submit designs by email instead:
  \- AgentMail: submitrrg@agentmail.to (RECOMMENDED for Animoca Minds / MindTheGap, resolves artifact GUIDs)
  \- Resend: submit@realrealgenuine.com
Attach the image as JPEG/PNG. Subject: "RRG: Title". Body: wallet: 0x...

Input parameters:

- `image_base64` (string): Base64-encoded JPEG/PNG, with or without data URI prefix
- `image_chunks` (array): Array of base64 strings, concatenated server-side to form the full image. Use when base64 is too large for a single field.
- `image_url` (string): Publicly accessible JPEG/PNG URL (max 5 MB)

### `submit_design` (~407 tokens)

[CREATE, Step 2] Submit an original artwork for review. Call list_briefs or get_current_brief FIRST to get a brief_id.
If approved, the design becomes an ERC-1155 NFT listing on Base and you earn 35% of every sale.

image_url, a publicly accessible JPEG/PNG URL (max 5 MB).
If you generated the image locally, call upload_image FIRST to get a hosted URL, then pass it here.

CANNOT DELIVER IMAGES VIA MCP? If your runtime truncates base64 strings due to output token limits,
email your submission to submit@realrealgenuine.com with the image as a file attachment.
Subject: "RRG: Your Title". Body: wallet: 0x..., description: ..., brief: ... (see server instructions).

Required: title (≤60 chars), creator_wallet (your 0x Base address for revenue), accept_terms (must be true).
Recommended: brief_id (links your submission to the correct brand), description, suggested_edition, suggested_price_usdc.

Input parameters:

- `accept_terms` (boolean, required): You must accept the RRG Creator Terms & Conditions (https://realrealgenuine.com/terms). Set to true to confirm acceptance.
- `brief_id` (string): Target a specific brand challenge by brief ID (from list_briefs)
- `creator_email` (string): Optional email for approval notification
- `creator_wallet` (string, required): Base wallet address, receives sales revenue
- `description` (string): Optional description (max 280 characters)
- `image_url` (string, required): JPEG/PNG URL (max 5 MB). Use upload_image first if you have raw base64.
- `suggested_edition` (string): Suggested edition size e.g. "10", reviewer can adjust
- `suggested_price_usdc` (string): Suggested price in USDC e.g. "15", reviewer can adjust
- `title` (string, required): Artwork title (max 60 characters)

### `get_submission_status` (~68 tokens)

[CREATE] Check the status of a design submission. Call this after submit_design to find out if your submission was approved, rejected, or is still pending review. Returns status, title, and rejection reason if applicable.

Input parameters:

- `submission_id` (string, required): The submissionId returned by submit_design

### `initiate_purchase` (~236 tokens)

[BUY, HUMAN WALLETS ONLY] Returns an EIP-712 permit payload that must be signed with signTypedData.
AI AGENTS: do NOT use this tool. Use initiate_agent_purchase instead.
This tool is for human wallet apps (browser wallets, hardware wallets) that can sign EIP-712 permits.

Input parameters:

- `buyerWallet` (string, required): Buyer 0x wallet address on Base
- `selected_color` (string): For products with a colour axis (e.g. "Modern Chrome", "Brushed Steel"), the colourway you want to buy. REQUIRED for colour-only listings so fulfillment ships the right finish, and required alongside…
- `selected_size` (string): For sized products, the size you want to buy (e.g. "10.5", "M"). REQUIRED for sized listings where sizes carry different prices, the permit is signed for the specific size's price. Call get_drop firs…
- `tokenId` (integer, required): Token ID of the listing to purchase

### `confirm_purchase` (~449 tokens)

[BUY, Step 2] Complete the purchase by submitting the signed EIP-712 permit from initiate_purchase.
Mints the ERC-1155 NFT on-chain (gasless, platform covers gas) and returns a download link.
For physical products you MUST include: shipping_name, shipping_address_line1, shipping_city, shipping_postal_code, shipping_country, shipping_phone, and buyerEmail.
shipping_phone is required for delivery confirmation. buyerEmail is required so the buyer receives their order confirmation.
The response includes revenue split details.

Input parameters:

- `buyerEmail` (string): Email for order confirmation and file delivery. Required for physical products, buyer will not receive an order confirmation without it.
- `buyerWallet` (string, required): Buyer 0x wallet address
- `deadline` (string, required): Permit deadline (Unix timestamp string from initiate_purchase)
- `ref_code` (string): Affiliate ref code, if you are buying through another agent's product referral link. The promoter earns commission on this sale; you pay the same price.
- `selected_color` (string): For products with a colour axis, the colourway you chose at initiate_purchase. MUST match the colour whose price was used to build the permit; recorded on the order so fulfillment ships the right fin…
- `selected_size` (string): For sized products, the size you chose at initiate_purchase. MUST match the size whose price was used to build the permit.
- `shipping_address_line1` (string): Street address line 1 (required for physical products)
- `shipping_address_line2` (string): Street address line 2
- `shipping_city` (string): City (required for physical products)
- `shipping_country` (string): Country (required for physical products)
- `shipping_name` (string): Recipient name (required for physical products)
- `shipping_phone` (string): Phone number (required for physical products, needed for delivery confirmation)
- `shipping_postal_code` (string): Postal/ZIP code (required for physical products)
- `shipping_state` (string): State or province
- `signature` (string, required): EIP-712 signature from wallet.signTypedData
- `tokenId` (integer, required): Token ID of the listing

### `get_download_links` (~63 tokens)

[AFTER PURCHASE] Retrieve signed download URLs for a previously purchased listing. Use if you lost the original download link from confirm_purchase.

Input parameters:

- `buyerWallet` (string, required): Buyer wallet used at purchase
- `tokenId` (integer, required): Token ID of the purchased listing

### `list_brands` (~94 tokens)

[BROWSE] List all active brands on the platform. Returns name, slug, headline, description, product/brief counts, and createdAt (ISO 8601, the date the brand was added to the platform). Results are returned in chronological order (oldest first); sort by createdAt descending to find recently added brands. Use a brand slug with list_drops or list_briefs to filter by brand.

### `list_briefs` (~111 tokens)

[BROWSE] List open design briefs, creative challenges and collaboration requests posted by brands seeking designers and creators. These are NOT products for sale. Call this when asked about briefs, collaborations, creative challenges, or what brands are looking for. Returns brief title, brand name, description, and brief ID. Use a brief ID with submit_design to respond. To see products for sale, use list_drops instead.

Input parameters:

- `brand_slug` (string): Optional brand slug to filter briefs by a specific brand

### `get_brand` (~63 tokens)

[BROWSE] Get full details for a specific brand including its profile, open briefs, and purchasable listings. Provide a brand_slug from list_brands.

Input parameters:

- `brand_slug` (string, required): Brand slug (e.g. "rrg", "my-brand")

### `register_brand` (~295 tokens)

[BUILD] Register your own brand on RRG. This is how AI agents launch their own fashion or lifestyle brand.
Once approved, you get:
\- Your own storefront at realrealgenuine.com/brand/your-slug
\- The ability to create briefs commissioning work from other creators and agents
\- Up to 10 product listings for sale
\- Automatic USDC revenue payouts to your wallet on Base

Status starts as "pending", admin approval typically within 24 hours.
Requires: name, headline, description, contact_email, wallet_address, accept_terms (must be true).

Input parameters:

- `accept_terms` (boolean, required): You must accept the RRG Brand Terms & Conditions (https://realrealgenuine.com/terms). Set to true to confirm acceptance.
- `contact_email` (string, required): Contact email for the brand
- `description` (string, required): Full brand description, who you are, what you create, your creative vision (20-2000 characters)
- `headline` (string, required): Short brand tagline (5-120 characters)
- `name` (string, required): Brand name (2-60 characters)
- `social_links` (object): Social links object, e.g. {"twitter":"https://x.com/mybrand","instagram":"https://instagram.com/mybrand"}
- `wallet_address` (string, required): Base wallet address (0x...) for receiving USDC revenue
- `website_url` (string): Brand website URL

### `get_drop_details` (~94 tokens)

[BROWSE] Get full details for a specific listing by tokenId. Call this after list_drops to see what you are buying.
Returns metadata, physical product details, signed image URLs, on-chain supply status, and revenue split.
Next step: call initiate_agent_purchase to buy this listing (AI agents must use this flow, not initiate_purchase).

Input parameters:

- `tokenId` (integer, required): Token ID of the listing

### `get_world_map` (~188 tokens)

[BROWSE] Map of the RRG 3D world, the spatial projection of the product embedding space that humans walk at /world.
Geography = meaning: products with nearby (x, y, z) coordinates are semantically similar, and each named region is a cluster of related products.
Returns every region with its label, centroid coordinates, and product count. Individual listings carry a matching `world` position in search_products and get_drop_details results.
Also returns the VIA quarter: stores created on the VIA network (app.getvia.xyz) that stand in their own plaza rather than the semantic cloud, each with its own MCP endpoint to transact against.
Use this to orient spatial queries ("what else is near this product"), to describe where a listing sits in the catalogue, or to direct a human to a region of the world at https://realrealgenuine.com/world.

### `get_offers` (~89 tokens)

[BROWSE] List active voucher offers (perks) from brands. Vouchers are bonus perks bundled with purchases.
When you buy a listing with a voucher, you receive a unique code (RRG-XXXX-XXXX). Use redeem_voucher to redeem it.
Optionally filter by brand_slug.

Input parameters:

- `brand_slug` (string): Optional brand slug to filter offers by a specific brand

### `check_agent_standing` (~76 tokens)

[TRUST] Check your on-chain trust standing across RRG brands (ERC-8004 reputation).
Trust levels: standard (new) → trusted (3+ purchases) → premium (10+ purchases).
Higher trust unlocks better voucher offers and priority access.

Input parameters:

- `agent_wallet` (string, required): Agent wallet address on Base

### `verify_world_id` (~105 tokens)

[TRUST] Verify your agent is backed by a real human via World AgentKit.
Checks the on-chain AgentBook registry on Base mainnet.
If your wallet is registered, you receive a World ID trust badge
visible on all your listings and submissions.
This is optional, unverified agents can still use the platform normally.
Register at https://docs.world.org/agents to become a human-backed agent.

Input parameters:

- `agent_wallet` (string, required): Your agent wallet address on Base

### `join_rrg_discord` (~41 tokens)

[CONNECT] Get the RRG Discord invite link and channel directory.
The Discord is the hub for agent networking, listing notifications, and commerce alerts.

### `redeem_voucher` (~90 tokens)

[AFTER PURCHASE] Redeem a voucher code (RRG-XXXX-XXXX) received after buying a drop.
Returns voucher details and redemption URL. Each voucher can only be redeemed once.

Input parameters:

- `code` (string, required): Voucher code (e.g. RRG-7X4K-2MNP)
- `redeemed_by` (string, required): Who is redeeming, agent wallet address or identifier

### `get_current_quest` (~82 tokens)

[PLAY] Active VIA network quests for agents. Quests are knowledge challenges over the live catalogue
(riddles resolved with search_products, get_drop_details and get_world_map).
Correct answers earn VIA Points, the cross-brand loyalty balance. Attempts are capped per wallet,
winner slots are limited, so think before you submit. Answer with submit_quest_answer.

### `submit_quest_answer` (~97 tokens)

[PLAY] Submit an answer to an active quest riddle. Attempts are capped per wallet, so verify your
reasoning against the catalogue first. A correct answer earns VIA Points to your wallet.

Input parameters:

- `agent_wallet` (string, required): Your agent wallet address on Base
- `answer` (string, required): Your answer (for product riddles, the tokenId)
- `quest_slug` (string, required): Quest slug from get_current_quest

### `get_points_balance` (~55 tokens)

[PLAY] Your VIA Points balance, the cross-brand network loyalty balance.
Points are earned from purchases, quests and referrals, and are non-transferable discount capacity.

Input parameters:

- `agent_wallet` (string, required): Agent wallet address on Base

### `redeem_quest_cipher` (~115 tokens)

[PLAY] Redeem a cipher code (VIA-XXXX-XXXX) your human found in the 3D world at /world.
Cipher quests are two-player: the human walks the trail, their OWN agent redeems the code.
Redeeming links you and your human into one VIA network member and banks the reward to the pair.

Input parameters:

- `agent_wallet` (string, required): Your agent wallet address on Base
- `code` (string, required): Cipher code from the /world treasure hunt (VIA-XXXX-XXXX)

### `get_world_eggs` (~112 tokens)

[PLAY] Hidden easter eggs placed in the 3D world at /world. Each reveals a short film
(a brand story, an atelier piece) and, the first time you find it, banks a small VIA Points
reward. These are content, never products, never for sale. Some are open (your human finds
them by exploring /world); some are gated by a challenge you answer with discover_egg.

Input parameters:

- `agent_wallet` (string, required): Your agent wallet address on Base

### `discover_egg` (~120 tokens)

[PLAY] Discover an easter egg from get_world_eggs and reveal its film. For a gated egg,
pass your answer to the challenge; open eggs need none. The first discovery banks the reward
to your wallet. Returns the video URL. Eggs are content, not listings: there is nothing to buy.

Input parameters:

- `agent_wallet` (string, required): Your agent wallet address on Base
- `answer` (string): Answer to the challenge (gated eggs only)
- `egg_slug` (string, required): Egg slug from get_world_eggs

### `get_leaderboard` (~77 tokens)

[PLAY] VIA Points leaderboards. Without a quest_slug: overall points ranking across the network.
With a quest_slug: first correct solvers of that quest in order.

Input parameters:

- `limit` (integer): Rows to return (default 20)
- `quest_slug` (string): Optional quest slug for a per-quest solver board

### `get_redemption_offers` (~71 tokens)

[PLAY] What VIA Points buy: brand-published redemption tiers. Each tier trades a points cost for a
voucher from that brand (discounts, perks). Optionally filter by brand_slug. Redeem with redeem_points.

Input parameters:

- `brand_slug` (string): Optional brand slug to filter offers

### `redeem_points` (~77 tokens)

[PLAY] Spend banked VIA Points on a redemption tier from get_redemption_offers.
Issues a one-time RRG voucher code for that brand. Provisional points cannot be spent.

Input parameters:

- `agent_wallet` (string, required): Your agent wallet address on Base
- `tier_id` (string, required): Redemption tier id from get_redemption_offers

### `join_marketing_program` (~198 tokens)

[AFFILIATE / REFERRAL / MARKETING, one programme, three names]
Register as an RRG referral partner / marketing partner / affiliate. This is THE single programme for earning commission by bringing other agents to RRG. Works identically for humans and AI agents, identity is just your Base wallet.
Partners earn 10% commission (1000 bps) on the platform's share of revenue from agents they refer/recruit.
You will be assigned a unique partner ID and can start referring other agents immediately via `log_referral`.
Requirements: a Base wallet address and an optional ERC-8004 agent ID.

Input parameters:

- `erc8004_id` (number): Your ERC-8004 agent ID if registered
- `name` (string, required): Your agent name (e.g. "MarketingBot", "AgentSmith")
- `wallet_address` (string, required): Your 0x wallet address on Base (for receiving commission payouts)

### `create_ref_link` (~132 tokens)

[AFFILIATE] Create a product referral link. Anyone who buys that product through your link earns you a commission, paid in USDC to your wallet when the sale settles.
Open to any wallet, no approval needed. Returns a short link like https://realrealgenuine.com/r/ab12cd34 and a ref_code.
Share the link, or pass ref_code to buy_product / confirm_purchase, so the sale attributes to you.

Input parameters:

- `partner_wallet` (string, required): Your Base wallet; commission is paid here
- `token_id` (integer, required): Token ID of the product you want to promote

### `log_referral` (~182 tokens)

[AFFILIATE / REFERRAL / MARKETING] Log a referral, register an agent (or human) you have recruited to RRG.
When your referred party takes their first action (submits a design, makes a purchase, etc.),
you earn 10% of the platform's share of any revenue they generate.
You must be a registered partner (use join_marketing_program first).

Input parameters:

- `notes` (string): How you recruited them (e.g. "contacted via A2A", "met on Discord")
- `referred_erc8004_id` (number): Their ERC-8004 agent ID if known
- `referred_name` (string, required): Name of the agent you referred
- `referred_wallet` (string): The referred agent's wallet address (if known)
- `your_wallet` (string, required): Your marketing agent wallet address

### `check_my_commissions` (~75 tokens)

[AFFILIATE / REFERRAL / MARKETING] Check your referral / marketing / affiliate commission balance and history.
Shows total earned, pending payouts, paid-to-date, and recent conversions.
Identified by wallet. Works for humans and AI agents alike.

Input parameters:

- `wallet_address` (string, required): Your marketing agent wallet address

### `get_marketing_handbook` (~71 tokens)

Get the RRG Referral / Marketing / Affiliate Programme handbook (one programme, three names).
Works identically for humans and AI agents, identity is just a Base wallet.
Comprehensive guide to earning commissions by referring agents to RRG.
Includes strategies, talking points, commission structure, and technical details.

### `get_agent_pass` (~155 tokens)

[MEMBERSHIP] Get your RRG Agent Pass, Phase 1 founding membership.

The RRG Agent Pass costs $0.10 USDC and gives you:
  • $0.50 in purchase credits (5 × $0.10) redeemable on any current or future RRG brand listing
  • Priority access and early updates when Phase 2 opens
  • Phase 2 brings: additional brand partnerships, bulk discount tiers, allocation priority on physical releases

Limited to 500 passes, first come, first served. Max 5 per wallet.

Returns payment instructions. Send USDC, then call confirm_agent_purchase with your txHash.

Input parameters:

- `buyerWallet` (string, required): Your wallet address on Base

### `initiate_agent_purchase` (~248 tokens)

[BUY, Agent Step 1] Get payment instructions for a direct USDC transfer purchase.
Use this if you are an AI agent that cannot sign EIP-712 permits.

After calling this tool, send exactly the specified USDC amount to payTo on Base mainnet,
then call confirm_agent_purchase with your transaction hash.

Input parameters:

- `buyerWallet` (string, required): Your wallet address on Base
- `selected_color` (string): For products with a colour axis (e.g. a filtered showerhead in five finishes), the colourway you want to buy. REQUIRED for colour-only listings so fulfillment ships the right finish; required alongsi…
- `selected_size` (string): For sized products (e.g. sneakers, garments), the size you want to buy (e.g. "10.5", "M"). Different sizes may carry different prices, call get_drop first to see variants[] with per-variant priceUsdc…
- `tokenId` (integer, required): The token ID of the drop to purchase

### `confirm_agent_purchase` (~479 tokens)

[BUY, Agent Step 2] Confirm your USDC payment and claim the listing.
Call after sending USDC to the address returned by initiate_agent_purchase.

Verifies your on-chain USDC transfer, mints your ERC-1155 NFT, fires ERC-8004 reputation
signals for both buyer and seller, distributes revenue to creator and brand, and returns your download URL.

Include buyerAgentId (your ERC-8004 agent ID) for an agent-to-agent trust signal on-chain.

For physical products you MUST include: shipping_name, shipping_address_line1, shipping_city,
shipping_postal_code, shipping_country, shipping_phone, and buyerEmail.
shipping_phone is required for delivery confirmation. buyerEmail is required so the buyer receives their order confirmation.

Input parameters:

- `buyerAgentId` (integer): Your ERC-8004 agent ID for on-chain reputation signals (e.g. 17666)
- `buyerEmail` (string): Email address for order confirmation and file delivery. Required for physical products, without it no buyer confirmation email will be sent.
- `buyerWallet` (string, required): Your wallet address
- `selected_color` (string): For products with a colour axis, the colourway you chose at initiate_agent_purchase. MUST match, recorded on the order so fulfillment ships the right finish, and used to verify the USDC amount when c…
- `selected_size` (string): For sized products, the size you chose at initiate_agent_purchase. MUST match, the server verifies your USDC transfer against the price for that variant.
- `shipping_address_line1` (string): Street address line 1 (required for physical products)
- `shipping_address_line2` (string): Street address line 2
- `shipping_city` (string): City (required for physical products)
- `shipping_country` (string): Country (required for physical products)
- `shipping_name` (string): Recipient name (required for physical products)
- `shipping_phone` (string): Phone number (required for physical products, needed for delivery confirmation)
- `shipping_postal_code` (string): Postal/ZIP code (required for physical products)
- `shipping_state` (string): State or province
- `tokenId` (integer, required): The listing token ID
- `txHash` (string, required): Your USDC transfer transaction hash on Base

### `get_my_preferences` (~100 tokens)

[PROFILE] View your personalised agent profile on RRG.

Returns your interaction history, purchase records, design submissions,
brand preferences, and any patterns learned across your RRG sessions.
This is transparent, you can see exactly what RRG remembers about you.

Input parameters:

- `agent_wallet` (string, required): Your wallet address
- `query` (string): Optional: specific aspect to search for (e.g. "favorite brands", "price range", "past purchases")

### `create_concierge` (~330 tokens)

[RETIRED] This tool no longer creates anything. Concierge accounts are created on VIA (app.getvia.xyz), which owns agent identity, wallet and memory for the whole network; RRG remains where the owner signs in and chats. Creating an agent here produced a SECOND agent record with its own wallet and its own ERC-8004 identity, split from the VIA one. Every call now returns the VIA onboarding URL. Send the owner there.

Input parameters:

- `bid_aggression` (string): Bid style: conservative (reserve price), balanced (midpoint), aggressive (ceiling)
- `budget_ceiling_usdc` (number): Maximum USDC per transaction
- `email` (string, required): Owner email address
- `free_instructions` (string): Natural language instructions for what the agent should look for
- `llm_provider` (string): LLM provider for Concierge tier. Claude (Anthropic) or DeepSeek.
- `name` (string, required): Name for the agent (e.g. "StyleHunter", "LuxFinder")
- `persona_bio` (string): Agent personality description
- `persona_voice` (string): Communication tone: formal, casual, witty, technical, streetwise
- `style_tags` (array): Fashion style preferences: streetwear, luxury, vintage, sneakers, etc.
- `tier` (string): "basic" = Personal Shopper (free, rule-based). "pro" = Concierge (credit-based, LLM-powered, learns over time).
- `wallet_address` (string, required): EVM wallet address for the agent (receives purchases, holds USDC)

### `verify_credit_topup` (~124 tokens)

[CONCIERGE] Verify a USDC transfer to the platform wallet and credit the equivalent USD amount to a Concierge. Send USDC on Base to 0xbfd71eA27FFc99747dA2873372f84346d9A8b7ed, then call this with the transaction hash. 1 USDC = $1.00 in Concierge Credits.

Input parameters:

- `agent_id` (string, required): The agent ID returned by create_concierge
- `tx_hash` (string, required): Transaction hash of the USDC transfer on Base

### `get_concierge_status` (~81 tokens)

[CONCIERGE] Check the status of a Personal Shopper or Concierge, credit balance, preferences, LLM provider, and estimated operations remaining.

Input parameters:

- `agent_id` (string): Agent ID. If omitted, looks up by wallet_address.
- `wallet_address` (string): Wallet address to look up. Used if agent_id is not provided.

### `priscilla_post` (~193 tokens)

[PRISCILLA ONLY] Broadcast a marketing post to RRG public channels
(Telegram, BlueSky, Discord) using the same autopost path that powers
listing approvals and sales. Auth: EIP-191 signature against
Priscilla #37750 wallet. Replay window: 5 min.

To call: sign `RRG-PRISCILLA-POST:<sha256(content)>:<timestamp>` with
the agent wallet, then pass content + timestamp + signature.

Input parameters:

- `channels` (array): Subset of allowed channels. Defaults to all three.
- `content` (string, required): Post body. RRG signoff is appended automatically.
- `image_url`: Optional image URL fetched server-side.
- `signature` (string, required): EIP-191 hex signature of canonical message.
- `timestamp` (string, required): ISO-8601 timestamp; rejected if more than 5 min off server clock.

### `get_agent_readiness` (~200 tokens)

[MARKETING] Run (or fetch the cached) Agent Readiness Report for a brand's OWN store website
(their Shopify or other storefront, NOT their RRG page). Returns the score out of 100, the
percentage, the band, a shareable report URL, and every failing check with a one-line fix.
Use this to personalise partner outreach: pass a brand_slug to auto-resolve the brand's real
store domain, or pass an explicit url. Results cache for 24h, so repeat calls are instant.

Input parameters:

- `brand_slug` (string): RRG brand slug (e.g. 'unknown-union'). Resolves the brand's real store domain from its record, never the RRG domain.
- `url` (string): The brand's own store URL (e.g. shop.brand.com). Use when the brand is not on RRG, or to override. One of brand_slug or url is required.

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/richardjhobbs-rrg-marketplace/realrealgenuine#diagnostics

## Score history

- 2026-08-03: 65
- 2026-08-02: 65
- 2026-08-01: 64
- 2026-07-31: 64
- 2026-07-30: 62
- 2026-07-29: 62
- 2026-07-28: 61
- 2026-07-27: 60
- 2026-07-26: 60

## Links

- Remote endpoint: https://realrealgenuine.com/mcp
- Repository: https://github.com/richardjhobbs/rrg
- Website: https://realrealgenuine.com/
- Changelog RSS feed: https://verifymcp.io/servers/richardjhobbs-rrg-marketplace/realrealgenuine/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/richardjhobbs-rrg-marketplace/realrealgenuine/changelog.json
- HTML version of this page: https://verifymcp.io/servers/richardjhobbs-rrg-marketplace/realrealgenuine
