Nagora MCP
An MCP server for the Nagora peer-to-peer marketplace that enables autonomous agents to search listings, purchase physical or digital goods using Nano (XNO), track orders, and verify cryptographically signed receipts via escrow.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://api.nagora.shop/mcpWhat its tools do
9 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.
Read-only (5)
Not annotated (4)
Checks and signals
Each line is separate evidence, not a trust score.
- Passed Endpoint answered the live check ·
- Passed Official MCP Registry namespace is tied to nagora.shop ·
- Passed Endpoint is on the registry namespace domain ·
- Availability 1 of 1 checks passed in 30 days
What you can do with it
- Search real inventory for physical or digital items
- Purchase items using Nano cryptocurrency with escrow protection
- Track order status and confirm delivery
- Retrieve and verify cryptographically signed receipts
Source and maintenance
- Maintenance checked
Protocol and capabilities
- Server
- nagora-api 1.0.0.0
- MCP protocol negotiated in check
- 2025-11-25
- Tools
- 9 advertised
- Resources
- Not advertised
- Resource templates
- Not advertised
- Prompts
- Not advertised
{
"tools": {},
"logging": {}
}Tools
9 advertised
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.
{
"type": "object",
"properties": {
"q": {
"type": [
"string",
"null"
],
"default": null,
"description": "Free-text search query, e.g. 'mechanical keyboard'"
},
"count": {
"type": [
"integer",
"null"
],
"default": null,
"description": "Page size 1-100, default 20"
},
"sortBy": {
"type": [
"string",
"null"
],
"default": null,
"description": "Sort order: newest, price_asc, or price_desc. Default newest"
},
"maxPrice": {
"type": [
"number",
"null"
],
"default": null,
"description": "Maximum price filter"
},
"minPrice": {
"type": [
"number",
"null"
],
"default": null,
"description": "Minimum price filter"
},
"categoryId": {
"type": [
"integer",
"null"
],
"default": null,
"description": "Numeric category filter"
},
"startIndex": {
"type": [
"integer",
"null"
],
"default": null,
"description": "Pagination offset, default 0"
}
}
}{
"readOnlyHint": true
}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.
{
"type": "object",
"required": [
"name",
"nanoAddress"
],
"properties": {
"name": {
"type": "string",
"description": "Agent name, e.g. 'claude-shopper' (max 64 chars)"
},
"callbackUrl": {
"type": [
"string",
"null"
],
"default": null,
"description": "Optional webhook URL; Nagora POSTs signed order state-change events to it"
},
"homepageUrl": {
"type": [
"string",
"null"
],
"default": null,
"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": null,
"description": "Optional contact email for order issues"
}
}
}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.
{
"type": "object",
"required": [
"orderId"
],
"properties": {
"apiKey": {
"type": [
"string",
"null"
],
"default": null,
"description": "Agent API key (nag_agt_...). Omit when connected with an Authorization header"
},
"orderId": {
"type": "string",
"format": "uuid",
"description": "Order ID to confirm"
}
}
}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. For digital listings, digitalContent holds what was bought once the order is paid.
{
"type": "object",
"required": [
"orderId"
],
"properties": {
"apiKey": {
"type": [
"string",
"null"
],
"default": null,
"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"
}
}
}{
"readOnlyHint": true
}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.
{
"type": "object",
"properties": {
"apiKey": {
"type": [
"string",
"null"
],
"default": null,
"description": "Agent API key (nag_agt_...). Omit when connected with an Authorization header"
}
}
}{
"readOnlyHint": true
}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.
{
"type": "object",
"required": [
"orderId"
],
"properties": {
"apiKey": {
"type": [
"string",
"null"
],
"default": null,
"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"
}
}
}{
"readOnlyHint": true
}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.
{
"type": "object",
"required": [
"listingId"
],
"properties": {
"apiKey": {
"type": [
"string",
"null"
],
"default": null,
"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": null,
"description": "Variant ID from get_listing, when the listing has variants"
},
"quotedTotalNano": {
"type": [
"number",
"null"
],
"default": null,
"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": null,
"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": null,
"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.
{
"type": "object",
"required": [
"listingId"
],
"properties": {
"listingId": {
"type": "string",
"format": "uuid",
"description": "Listing ID from search_listings"
}
}
}{
"readOnlyHint": true
}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.
{
"type": "object",
"required": [
"orderId"
],
"properties": {
"apiKey": {
"type": [
"string",
"null"
],
"default": null,
"description": "Agent API key (nag_agt_...). Omit when connected with an Authorization header"
},
"orderId": {
"type": "string",
"format": "uuid",
"description": "Order ID to cancel"
}
}
}Prompts
Not advertised
Resources
Not advertised
90-day uptime
A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.
- 2026-11-07: 1 of 1 checks answered
30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 450 ms
- 95th percentile latency
- 450 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 450 ms · metadata changed · 9 tool(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http nagora-mcp https://api.nagora.shop/mcpCodex
codex mcp add nagora-mcp --url https://api.nagora.shop/mcpCursor
{
"mcpServers": {
"nagora-mcp": {
"url": "https://api.nagora.shop/mcp"
}
}
}Cline
{
"mcpServers": {
"nagora-mcp": {
"type": "streamableHttp",
"url": "https://api.nagora.shop/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"nagora-mcp": {
"type": "http",
"url": "https://api.nagora.shop/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http nagora-mcp https://api.nagora.shop/mcpClaude Desktop
https://api.nagora.shop/mcpWindsurf
{
"mcpServers": {
"nagora-mcp": {
"serverUrl": "https://api.nagora.shop/mcp"
}
}
}Let your agent find its tools
Find servers like Nagora MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.
Other commerce servers
Do you run Nagora MCP?
Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.