mercader

Per sviluppatori e agenti

API e MCP per modificare la tua vetrina

Collega Claude, ChatGPT, Cursor o il tuo script alla tua vetrina Mercader. Possono leggere e modificare il tuo profilo, i tuoi prodotti, i tuoi eventi e i tuoi link, e ogni modifica viene pubblicata subito.

Inizia in un minuto

Scegli il tuo client. Con OAuth non copi nessun token: il tuo assistente apre la schermata dei permessi di Mercader e tu approvi l'accesso.

Claude.ai o ChatGPT

Aggiungi un connettore personalizzato e incolla questo URL:

https://web.mercader.app/api/mcp/me

Claude Code

claude mcp add --transport http mercader https://web.mercader.app/api/mcp/me

Cursor (~/.cursor/mcp.json)

{
  "mcpServers": {
    "mercader": {
      "url": "https://web.mercader.app/api/mcp/me"
    }
  }
}

curl o il tuo codice

Crea un token personale nel pannello e invialo come Bearer:

curl https://web.mercader.app/api/v1/me \
  -H "Authorization: Bearer mk_live_…"

Autenticazione

Ogni richiesta porta l'intestazione Authorization: Bearer <token>. Un token dà accesso solo alla vetrina di chi l'ha creato.

OAuth 2.1 (consigliato per gli assistenti)

  • Registrazione dinamica dei client (RFC 7591) e codice di autorizzazione con PKCE S256. Solo client pubblici, senza segreto.
  • Discovery: la risposta 401 del MCP include WWW-Authenticate con l'URL dei metadati della risorsa protetta.
  • Il token di accesso dura 1 ora e quello di aggiornamento 30 giorni. Ogni aggiornamento li rinnova entrambi.
  • Revoca (RFC 7009) su /oauth/revoke, o dal pannello in qualsiasi momento.

Token personali

  • Creali nel pannello, in Admin › Assistenti IA. Iniziano con mk_live_ e vengono mostrati una sola volta.
  • Non scadono: revocali dal pannello quando non ti servono più.
  • Utili per script, curl e client senza OAuth.
https://web.mercader.app/.well-known/oauth-protected-resource
https://web.mercader.app/.well-known/oauth-authorization-server

Permessi (scope)

Permessi (scope)
PermessoCosa fa
profile:writeNome, presentazione, colore, lingua, valuta, logo, copertina e link.
catalog:writeProdotti, eventi e mercatini, e le loro immagini.

API REST

JSON su HTTPS. I campi che non invii restano invariati; una stringa vuota cancella un campo facoltativo.

https://web.mercader.app/api/v1
API REST
MetodoPercorsoPermessoCosa fa
GET/mequalsiasiProfilo, piano e limiti, prodotti, eventi e link, con i loro id.
PATCH/profileprofile:writeCambia nome, presentazione, colore, lingua, paese, valuta, logo o copertina.
GET/productsqualsiasiElenca i prodotti.
POST/productscatalog:writeCrea un prodotto (name e price obbligatori).
PATCH/products/{id}catalog:writeCambia prezzo, foto, disponibilità o altri campi.
DELETE/products/{id}catalog:writeElimina un prodotto.
GET/eventsqualsiasiElenca eventi e mercatini.
POST/eventscatalog:writeCrea un evento (title e start_date in ISO 8601).
PATCH/events/{id}catalog:writeModifica un evento.
DELETE/events/{id}catalog:writeElimina un evento.
GET/social-linksqualsiasiElenca i link social e di contatto.
POST/social-linksprofile:writeAggiunge un link (Instagram, WhatsApp, Website, Email…).
PATCH/social-links/{id}profile:writeModifica un link.
DELETE/social-links/{id}profile:writeElimina un link.
POST/uploadssecondo il tipoRestituisce un URL firmato per caricare un'immagine.

Esempio: creare un prodotto

curl -X POST https://web.mercader.app/api/v1/products \
  -H "Authorization: Bearer mk_live_…" \
  -H "Content-Type: application/json" \
  -d '{"name": "Taza de gres", "price": 22, "description": "300 ml"}'

Schemi completi nella specifica OpenAPI 3.1

Caricare immagini

  1. Richiedi un caricamento con kind (product, event, avatar o header) e content_type (image/jpeg, image/png o image/webp).
  2. Invia i byte dell'immagine con PUT a upload_url. L'URL scade dopo 2 ore.
  3. Usa public_url come image_url del prodotto o dell'evento, o come avatar_url o header_url del profilo.

Server MCP

Streamable HTTP, senza stato. Stesse operazioni, convalide e limiti dell'API REST.

https://web.mercader.app/api/mcp/me
Server MCP
StrumentoCosa fa
get_my_storefrontStato attuale della vetrina: profilo, URL pubblico, piano, limiti e tutti gli elementi con i loro id.
update_profileCambia solo i campi del profilo che riceve. L'indirizzo (slug) non si può cambiare.
create_productupdate_productdelete_productcreate_eventupdate_eventdelete_eventcreate_social_linkupdate_social_linkdelete_social_linkCrea, modifica o elimina prodotti, eventi e link. Gli strumenti di eliminazione sono segnalati come distruttivi.
create_image_uploadPrepara il caricamento di un'immagine e restituisce upload_url e public_url.

MCP pubblico in sola lettura

Per cercare in tutte le vetrine pubblicate, senza autenticazione:

https://web.mercader.app/api/mcp

Limiti ed errori

  • 120 richieste al minuto per token. Oltre, 429 con Retry-After.
  • I limiti del tuo piano valgono come nel pannello: al massimo ricevi 403 plan_limit.
  • Le risposte portano Cache-Control: no-store.

Formato degli errori

Ogni errore restituisce un JSON con un codice stabile e una descrizione leggibile:

{
  "error": "plan_limit",
  "error_description": "…"
}
Formato degli errori
CodiceHTTPSignificato
invalid_input400Un campo manca, è sconosciuto o ha un formato non valido.
invalid_token401Token assente, sconosciuto, revocato o scaduto.
insufficient_scope403Il token non ha il permesso richiesto dall'operazione.
plan_limit403Hai raggiunto il limite del piano o la prova è terminata.
not_found404L'elemento non esiste nella tua vetrina.
no_profile409L'account non ha ancora completato l'onboarding.
rate_limited429Troppe richieste nell'ultimo minuto.

Sicurezza e privacy

  • Conserviamo solo un hash di ogni token. Se lo perdi, creane un altro.
  • Un token non può leggere i tuoi contatti, le tue recensioni o la fatturazione, né cambiare l'indirizzo della tua vetrina.
  • Le modifiche sono subito visibili ai tuoi clienti: chiedi al tuo assistente di confermare prima di eliminare.

Non hai ancora una vetrina?

Crea la tua e collega il tuo assistente dopo. Mercader include 14 giorni di prova.