# llmops-pro/marketplace-mcp [Health: Active]

**Category:** 🌐 Social Media  
**Repository:** https://github.com/llmops-pro/marketplace-mcp  
**GitHub Stars:** 0  
**npm Downloads (last month):** 271  
**Views:** 3  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/llmops-pro-marketplace-mcp

## Description
Run a Shopstr / NOSTR marketplace storefront from an agent: create and update stalls and products in both the NIP-15 dialect (kind 30017/30018) and the Shopstr-modern dialect (kind 30019 shop + kind 30402 NIP-99 listings), including the Shopstr cache POST that makes cards actually render. 7 tools. npx -y marketplace-mcp.

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `npx` (confidence: high):

```json
"mcpServers": {
  "marketplace-mcp": {
    "command": "npx",
    "args": ["-y","marketplace-mcp"],
    "env": {
      "NOSTR_RELAYS": ""
    }
  }
}
```

**Requires environment variables:** `NOSTR_RELAYS` — the values above are empty placeholders; fill in real credentials before running (see the repository for what each one is for).

## Documentation

## What llmops-pro/marketplace-mcp MCP server does

The llmops-pro/marketplace-mcp MCP server lets an agent create and update marketplace events for NOSTR-based storefronts. It supports two event models:

- Shopstr-modern, using kind 30019 shop profiles and kind 30402 NIP-99 classified listings.
- NIP-15, using kind 30017 stalls and kind 30018 products for compatible clients such as Plebeian Market.

Shopstr-modern publishing includes an optional POST to Shopstr's cache endpoint after the event reaches the relays. This matters because shopstr.store renders marketplace data from its own database rather than directly reading the relevant events from public relays. Product listings also receive the `shopstr` topic tag required for marketplace discovery.

The server exposes seven tools. Two publish Shopstr shops and products, two publish NIP-15 stalls and products, two read the user's NIP-15 stalls and products, and one confirms pending publishes when confirmation mode is enabled.

## How it works

For a Shopstr shop, the server creates a replaceable kind 30019 event containing seller metadata such as name, description, picture, and banner. For a product, it creates a kind 30402 listing whose details are represented in tags, including title, summary, price, location, shipping, images, categories, quantity, condition, and status.

The NIP-15 tools create replaceable stall and product events. Reusing the same identifier updates the corresponding event rather than creating a separate version. NIP-15 events are sent to relays only; they are not posted to the Shopstr cache.

Publishing can use a NIP-46 bunker URI or a raw private key. The server can also require a separate confirmation call, enforce a rolling publish limit, operate in read-only mode, and append activity to audit and server log files. Cache failures are recorded without undoing a relay publication.

## Setup and configuration

The llmops-pro/marketplace-mcp MCP server requires Node.js 20 or newer and at least one configured NOSTR relay. Install it with `npx -y marketplace-mcp`, or build it from the repository with pnpm.

Set `NOSTR_RELAYS` to a comma-separated list of `wss://` relay URLs. Publishing requires one signer setting: `NOSTR_NIP46_URI` is the recommended option, while `NOSTR_PRIVATE_KEY` is intended for development or legacy use. Without either signer, the server runs in read-only mode.

To make modern listings visible on shopstr.store, set `SHOPSTR_CACHE_ENABLED=true`. `SHOPSTR_CACHE_URL` defaults to `https://shopstr.store/api/db/cache-event` and can point to a self-hosted Shopstr deployment. Other supported controls include `NOSTR_READ_ONLY`, `NOSTR_REQUIRE_CONFIRM`, `NOSTR_MAX_EVENTS_PER_MINUTE`, `NOSTR_LOG_PATH`, and `NOSTR_AUDIT_PATH`.

## Tools and capabilities

The server provides these operations:

- `shopstr_create_or_update_shop` publishes a kind 30019 shop profile.
- `shopstr_create_or_update_product` publishes a kind 30402 classified listing and adds the Shopstr discovery tag.
- `marketplace_create_or_update_stall` publishes a kind 30017 NIP-15 stall.
- `marketplace_create_or_update_product` publishes a kind 30018 NIP-15 product.
- `marketplace_list_my_stalls` reads and parses the user's NIP-15 stalls.
- `marketplace_list_my_products` reads and parses NIP-15 products, with an optional stall filter.
- `marketplace_confirm_publish` completes deferred publishing when confirmation is required.

Product images are important for Shopstr rendering: the README states that listings without an image can be omitted from storefront cards. The intended workflow is therefore to provide at least one image URL for Shopstr products.

## Limitations and notes

The server depends on the relays selected in `NOSTR_RELAYS`; its audience must read those relays. Shopstr cache mirroring requires outbound HTTPS access to the configured cache URL and applies to modern Shopstr events, not NIP-15 events.

A relay publication cannot be rolled back if the later cache request fails. NIP-15 listing reads filter products client-side because relays do not index the JSON content used by those records. The README documents the package as MIT licensed and describes the cache behavior for the Shopstr deployment; it does not establish compatibility with every NOSTR marketplace client.

_Full upstream README: https://allmcps.com/mcp/llmops-pro-marketplace-mcp/readme_

