Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
NOSTR_RELAYSYesComma-separated wss:// relays. Server refuses to start if empty.
NOSTR_LOG_PATHNoServer log../marketplace-mcp.log
NOSTR_NIP46_URINobunker://... URI. Recommended.
NOSTR_READ_ONLYNoDisables all publish tools.false
NOSTR_AUDIT_PATHNoAppend-only JSON-line audit log../marketplace-mcp-audit.log
NOSTR_PRIVATE_KEYNoRaw nsec1... Dev/legacy only.
SHOPSTR_CACHE_URLNoOverride to mirror to a self-hosted Shopstr deployment.https://shopstr.store/api/db/cache-event
NOSTR_REQUIRE_CONFIRMNoTwo-step confirm.false
SHOPSTR_CACHE_ENABLEDNoControls whether the cache POST runs at all.unset (false)
NOSTR_MAX_EVENTS_PER_MINUTENoRolling 60s rate limit.10

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
marketplace_create_or_update_stallA

Create or update a NIP-15 marketplace stall (kind:30017). The id field is the parameterized-replaceable identifier — 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).

marketplace_create_or_update_productA

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 — 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).

shopstr_create_or_update_shopA

Create or update the seller's Shopstr shop profile (kind:30019). The d tag is the seller's pubkey hex — 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).

shopstr_create_or_update_productA

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 — 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, optional confirm).

marketplace_confirm_publishA

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.

marketplace_list_my_stallsA

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.

marketplace_list_my_productsA

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 — NOSTR relays don't index the JSON content). Products with non-JSON or schema-invalid content are returned with parsed: null.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/llmops-pro/marketplace-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server