MCP Server

Nagora

shop.nagora/nagora

What this MCP does

Supports searching listings, purchasing goods, tracking orders, and managing Nano-based escrow transactions.

cancel_order
Cancels an order whose escrow is still Initiated (no on-chain funds sent yet). Restores listing stock. Cannot cancel once escrow is Funded; use the dispute or refund flow on the website instead.
Input schema
{'type': 'object', 'required': ['orderId'], 'properties': {'apiKey': {'type': ['string', 'null'], 'default': None, 'description': 'Agent API key (nag_agt_...). Omit when connected with an Authorization header'}, 'orderId': {'type': 'string', 'format': 'uuid', 'description': 'Order ID to cancel'}}}
confirm_delivery
Confirms the goods or digital content arrived and releases the escrowed funds to the seller. Requires the order's escrowStatus to be Shipped. Call promptly once delivery is verified: the seller is waiting on this to get paid. If never called, an auto-finalise timer releases funds after the configured window.
Input schema
{'type': 'object', 'required': ['orderId'], 'properties': {'apiKey': {'type': ['string', 'null'], 'default': None, 'description': 'Agent API key (nag_agt_...). Omit when connected with an Authorization header'}, 'orderId': {'type': 'string', 'format': 'uuid', 'description': 'Order ID to confirm'}}}
create_purchase
Places an order against a listing. Returns a depositAddress (per-order escrow Nano account) and amountNano. IMPORTANT: the order is not funded by this call. Send exactly amountNano to depositAddress from the agent's Nano wallet to fund escrow. Once funds are detected the order moves to AwaitingShipment automatically. Physical listings require a shippingAddress.
Input schema
{'type': 'object', 'required': ['listingId'], 'properties': {'apiKey': {'type': ['string', 'null'], 'default': None, 'description': 'Agent API key (nag_agt_...). Omit when connected with an Authorization header'}, 'quantity': {'type': 'integer', 'default': 1, 'description': 'Quantity, default 1'}, 'listingId': {'type': 'string', 'format': 'uuid', 'description': 'Listing to purchase'}, 'variantId': {'type': ['string', 'null'], 'format': 'uuid', 'default': None, 'description': 'Variant ID from get_listing, when the listing has variants'}, 'quotedTotalNano': {'type': ['number', 'null'], 'default': None, 'description': 'Total in XNO from a recent get_listing call. Rejected if more than 2% off the live rate; omit to skip the guard'}, 'shippingAddress': {'type': ['object', 'null'], 'default': None, 'required': ['fullName', 'line1', 'line2', 'city', 'state', 'postalCode', 'countryCode', 'phone'], 'properties': {'city': {'type': ['string', 'null']}, 'line1': {'type': ['string', 'null']}, 'line2': {'type': ['string', 'null']}, 'phone': {'type': ['string', 'null']}, 'state': {'type': ['string', 'null']}, 'fullName': {'type': ['string', 'null']}, 'postalCode': {'type': ['string', 'null']}, 'countryCode': {'type': ['string', 'null']}}, 'description': 'Required for physical delivery; omit for digital listings'}, 'deliveryOptionId': {'type': ['integer', 'null'], 'default': None, 'description': 'Delivery option ID from get_listing, when the listing offers several'}}}
get_listing
Fetch a single listing by ID. No API key required. Returns full detail including variants, delivery options, and pricing. Use the returned Nano total as quotedTotalNano when purchasing to guard against exchange-rate drift.
Read only
Input schema
{'type': 'object', 'required': ['listingId'], 'properties': {'listingId': {'type': 'string', 'format': 'uuid', 'description': 'Listing ID from search_listings'}}}
get_order
Polls an order placed by this agent. Returns orderStatus, escrowStatus, funding timestamps, tracking info, and the receipt ID once available. Poll after funding the deposit address, and after the seller ships, before calling confirm_delivery.
Read only
Input schema
{'type': 'object', 'required': ['orderId'], 'properties': {'apiKey': {'type': ['string', 'null'], 'default': None, 'description': 'Agent API key (nag_agt_...). Omit when connected with an Authorization header'}, 'orderId': {'type': 'string', 'format': 'uuid', 'description': 'Order ID returned by create_purchase'}}}
get_receipt
Returns the cryptographically signed receipt for a completed order, including the seller's Nano address, the on-chain payout block hash, and Nagora's KMS signature. Available only after escrow is Released; returns an error while the order is still in progress.
Read only
Input schema
{'type': 'object', 'required': ['orderId'], 'properties': {'apiKey': {'type': ['string', 'null'], 'default': None, 'description': 'Agent API key (nag_agt_...). Omit when connected with an Authorization header'}, 'orderId': {'type': 'string', 'format': 'uuid', 'description': 'Order ID to fetch the receipt for'}}}
register_agent
Creates a Nagora agent and mints its API key in one call. No Nagora account or signup required. IMPORTANT: this is a remote server with no local storage, so the key is returned ONCE in the result. Store it securely and pass it as the apiKey argument on subsequent calls in this session; for long-lived setups reconnect with an 'Authorization: Bearer <key>' header instead. Skip this tool if a credential is already configured; check with whoami.
Input schema
{'type': 'object', 'required': ['name', 'nanoAddress'], 'properties': {'name': {'type': 'string', 'description': "Agent name, e.g. 'claude-shopper' (max 64 chars)"}, 'callbackUrl': {'type': ['string', 'null'], 'default': None, 'description': 'Optional webhook URL; Nagora POSTs signed order state-change events to it'}, 'homepageUrl': {'type': ['string', 'null'], 'default': None, 'description': 'Optional homepage describing the agent'}, 'nanoAddress': {'type': 'string', 'description': 'Nano (XNO) address refunds should be sent to: the wallet this agent pays from'}, 'contactEmail': {'type': ['string', 'null'], 'default': None, 'description': 'Optional contact email for order issues'}}}
search_listings
Full-text search over active listings on nagora.shop. No API key required. Returns an items array and total count. Use get_listing for full detail before purchasing.
Read only
Input schema
{'type': 'object', 'properties': {'q': {'type': ['string', 'null'], 'default': None, 'description': "Free-text search query, e.g. 'mechanical keyboard'"}, 'count': {'type': ['integer', 'null'], 'default': None, 'description': 'Page size 1-100, default 20'}, 'sortBy': {'type': ['string', 'null'], 'default': None, 'description': 'Sort order: newest, price_asc, or price_desc. Default newest'}, 'maxPrice': {'type': ['number', 'null'], 'default': None, 'description': 'Maximum price filter'}, 'minPrice': {'type': ['number', 'null'], 'default': None, 'description': 'Minimum price filter'}, 'categoryId': {'type': ['integer', 'null'], 'default': None, 'description': 'Numeric category filter'}, 'startIndex': {'type': ['integer', 'null'], 'default': None, 'description': 'Pagination offset, default 0'}}}
whoami
Verifies the configured credential and returns the agent's identity, spending caps, callback URL, and webhook secret. Call this first to confirm the credential works.
Read only
Input schema
{'type': 'object', 'properties': {'apiKey': {'type': ['string', 'null'], 'default': None, 'description': 'Agent API key (nag_agt_...). Omit when connected with an Authorization header'}}}
Added
cancel_order
Sept. 17, 2026, 12:55 p.m.
Added
get_listing
Sept. 17, 2026, 12:55 p.m.
Added
create_purchase
Sept. 17, 2026, 12:55 p.m.
Added
get_receipt
Sept. 17, 2026, 12:55 p.m.
Added
whoami
Sept. 17, 2026, 12:55 p.m.
Added
get_order
Sept. 17, 2026, 12:55 p.m.
Added
confirm_delivery
Sept. 17, 2026, 12:55 p.m.
Added
register_agent
Sept. 17, 2026, 12:55 p.m.
Added
search_listings
Sept. 17, 2026, 12:55 p.m.