{"name":"io.github.llmops-pro/marketplace-mcp","slug":"llmops-pro-marketplace-mcp","title":null,"description":"Publish Nostr marketplace listings (NIP-15 + Shopstr kinds 30019/30402) so agents can run a store.","url":"https://mcp.market/server/llmops-pro-marketplace-mcp","rating":null,"grade":"B","score":71,"certified":false,"status":"active","category":"ecommerce","tags":["ecommerce"],"presence":{"score":16,"stars":0,"forks":0,"downloads_week":83,"last_push_at":"2026-06-15T09:57:34.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/llmops-pro/marketplace-mcp","website":null,"version":"0.2.3","remotes":[],"packages":[{"registryType":"npm","identifier":"marketplace-mcp","version":"0.2.3","transport":{"type":"stdio"},"environmentVariables":[{"description":"Comma-separated wss:// relay URLs","isRequired":true,"name":"NOSTR_RELAYS"},{"description":"NIP-46 bunker URI (preferred signer)","isSecret":true,"name":"NOSTR_NIP46_URI"},{"description":"nsec private key (alternative to NOSTR_NIP46_URI)","isSecret":true,"name":"NOSTR_PRIVATE_KEY"},{"description":"Set true to POST Shopstr-dialect events to the Shopstr cache after relay publish","name":"SHOPSTR_CACHE_ENABLED"}]}],"tools":[{"name":"marketplace_confirm_publish","description":"Execute a previously-prepared marketplace publish, identified by its one-time token. Only meaningful when NOSTR_REQUIRE_CONFIRM=true. Single-use token; the safety pipeline re-runs before signing. For Shopstr-modern tools (kind:30019/30402), the Shopstr cache POST hook is re-attached automatically.","write_action":true,"price_micros":0,"input_schema":null},{"name":"marketplace_create_or_update_product","description":"Create or update a NIP-15 product (kind:30018) within a stall. The `stall_id` must match an existing stall's `id`. The `id` is the product's parameterized-replaceable d-tag \\u2014 republishing with the same id replaces it. `categories` are surfaced as `t` tags for discoverability. Runs the safety pipeline (read-only, signer, rate limit, optional confirm).","write_action":true,"price_micros":0,"input_schema":null},{"name":"marketplace_create_or_update_stall","description":"Create or update a NIP-15 marketplace stall (kind:30017). The `id` field is the parameterized-replaceable identifier \\u2014 publishing with the same id replaces the prior stall on relays that honor replaceability. Shopstr is the canonical UI for these events. Runs the safety pipeline (read-only, signer, rate limit, optional confirm).","write_action":true,"price_micros":0,"input_schema":null},{"name":"marketplace_list_my_products","description":"Fetch + parse the current signer's NIP-15 products (kind:30018). Returns each product's event id, created_at, `d` tag, category `t` tags, and parsed JSON (name, description, price, currency, stall_id, etc.). Optionally filter by stall_id (applied client-side after fetch \\u2014 NOSTR relays don't index the JSON content). Products with non-JSON or schema-invalid content are returned with `parsed: nu","write_action":false,"price_micros":0,"input_schema":null},{"name":"marketplace_list_my_stalls","description":"Fetch + parse the current signer's NIP-15 stalls (kind:30017). For each stall event found on the configured relays, returns the event id, created_at, `d` tag, and the parsed stall JSON (name, description, currency, shipping). Stalls that don't pass the NIP-15 schema are returned with `parsed: null` so you can see what's wrong.","write_action":false,"price_micros":0,"input_schema":null},{"name":"shopstr_create_or_update_product","description":"Create or update a Shopstr-compatible product as a NIP-99 Classified Listing (kind:30402). All product data lives in tags; `summary` is the event content. The `d` tag is the supplied `id` \\u2014 republishing replaces the prior listing. After relay publish, POSTs to Shopstr's cache (SHOPSTR_CACHE_URL) so the storefront UI surfaces the product. Runs the safety pipeline (read-only, signer, rate limit","write_action":true,"price_micros":0,"input_schema":null},{"name":"shopstr_create_or_update_shop","description":"Create or update the seller's Shopstr shop profile (kind:30019). The `d` tag is the seller's pubkey hex \\u2014 one shop per pubkey. After relay publish, POSTs the event to Shopstr's cache (SHOPSTR_CACHE_URL) so the storefront UI surfaces it. Runs the safety pipeline (read-only, signer, rate limit, optional confirm).","write_action":true,"price_micros":0,"input_schema":null}],"scan":{"score":71,"grade":"B","scanned_at":"2026-09-27T05:29:04.318Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-27T05:29:04.340Z","components":{"code":{"score":25,"max":25,"notes":["2 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":6,"max":15,"notes":["static API keys via environment variables"]},"maintenance":{"score":8,"max":15,"notes":["last push 104 days ago"]},"identity":{"score":7,"max":10,"notes":["registry namespace matches repository owner"]}},"findings":[],"inputs":{"packages":[{"registryType":"npm","identifier":"marketplace-mcp","version":"0.2.3","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":4,"publishedAt":"2026-06-12T09:53:26.655Z","repositoryUrl":"git+https://github.com/llmops-pro/marketplace-mcp.git","weeklyDownloads":83}],"repo":{"found":true,"owner":"llmops-pro","repo":"marketplace-mcp","archived":false,"pushedAt":"2026-06-15T09:57:34Z","stars":0,"forks":0,"openIssues":0,"ownerType":"Organization","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/273571316?v=4","ownerCreatedAt":"2026-04-04T13:33:51Z","license":"MIT"},"icon":{"url":"https://avatars.githubusercontent.com/u/273571316?v=4&s=128","source":"github"},"presence":{"stars":0,"forks":0,"downloadsWeek":83,"license":"MIT","lastPushAt":"2026-06-15T09:57:34.000Z","score":16}}}},"grade_history":[],"reviews":[]}