RO

Tema

Culoarea de accent

Tema și culoarea te urmează pe satelit.md și în aplicație.

Panou Alege un plan

Serverul MCP Satelit

O persoană folosește Satelit din aplicația ei AI: ChatGPT, Claude, Gemini, Perplexity, Cursor, VS Code sau orice client MCP. Serverul caută pentru omul care a intrat în cont, cât îi permite planul. Datele în volum sunt în API.

Adresa
https://api.satelit.md/mcp
Transport
Streamable HTTP, POST, doar răspunsuri JSON
Versiuni
2026-07-28 2025-11-25 2025-06-18 2025-03-26
Intrare
OAuth 2.1 cu contul Satelit al persoanei
Scopuri
mcp offline_access
Capabilități
doar tools

Pașii pentru oameni, pe aplicații: satelit.md

Adresa și protocolul

Un singur endpoint pentru ambele ere ale protocolului. Fără flux SSE și fără Mcp-Session-Id: fiecare cerere e completă.

2026-07-28, fără stare

  • O cerere care are _meta["io.modelcontextprotocol/protocolVersion"] e în era nouă.
  • Antetele MCP-Protocol-Version și Mcp-Method trebuie să fie egale cu corpul, iar Mcp-Name cu instrumentul la tools/call (=?base64?…?= se decodează). Altfel 400 -32020.
  • O altă versiune: 400 -32022 cu supported.
  • Rezultatele au resultType: "complete" și _meta["io.modelcontextprotocol/serverInfo"]. server/discover și tools/list au ttlMs și cacheScope: public.

2025-11-25, 2025-06-18, 2025-03-26

  • initialize răspunde cu versiunea cerută când o știe, altfel cu 2025-11-25.
  • notifications/* primesc 202, ping primește {}.
  • Antetul MCP-Protocol-Version, când există, trebuie să fie una dintre aceste versiuni.

Restul

  • Metodă necunoscută: -32601 (404 în era nouă). Instrument necunoscut: -32602. Un lot de cereri: 400.
  • GET și DELETE: 405 cu Allow. Un Origin care nu e https și nici această mașină: 403.
  • resources/list și prompts/list răspund cu liste goale.
tools/call · 2026-07-28
curl https://api.satelit.md/mcp \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -H "MCP-Protocol-Version: 2026-07-28" \
  -H "Mcp-Method: tools/call" \
  -H "Mcp-Name: search_prices" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"search_prices","arguments":{"query":"lapte 2.5%","lang":"ro"},"_meta":{"io.modelcontextprotocol/protocolVersion":"2026-07-28"}}}'
initialize · 2025-11-25
curl https://api.satelit.md/mcp \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-11-25","capabilities":{},"clientInfo":{"name":"my-app","version":"1.0"}}}'

Intrarea: OAuth 2.1

Fără token răspund handshake-ul, ping și tools/list, iar câteva căutări de preț pe zi merg (la Planuri). Orice alt apel, sau încercarea consumată, primește 401 cu WWW-Authenticate și adresa metadatei resursei: de acolo pornește autentificarea clientului (autentificare la nevoie). Cu token: Authorization: Bearer, făcut pentru acest server și verificat la fiecare cerere; un token pentru altceva primește 401, unul fără scopul mcp 403 insufficient_scope. tools/list marchează securitySchemes la fiecare instrument.

Metadata

  • Resursa protejată (RFC 9728): https://api.satelit.md/.well-known/oauth-protected-resource/mcp, și fără /mcp.
  • Serverul de autorizare: https://app.satelit.md, cu /.well-known/oauth-authorization-server și /.well-known/openid-configuration.
  • Doar fluxul cu cod și PKCE S256. Scopuri: mcp offline_access; openid e opțional.

Cum se înregistrează aplicația

  • Client ID Metadata Documents: un client_id care e o adresă https cu cale. O citim (adrese publice, port 443, 5 s, 32 KB, fără redirect), trebuie să se numească pe sine și să nu poarte numele Satelit. token_endpoint_auth_method: none sau private_key_jwt cu un jwks_uri pe aceeași gazdă. O recitim după 24 de ore.
  • Înregistrare dinamică (RFC 7591): POST https://app.satelit.md/api/oauth/register cu redirect_uris. Adrese https, sau http pe localhost, niciodată o gazdă Satelit. 10 pe oră de la o adresă. O aplicație pe care n-a aprobat-o nimeni în 7 zile se șterge.
  • O aplicație de pe calculator poate folosi orice port al adresei loopback înregistrate (RFC 8252 7.3).

Tokenuri legate de server

  • resource (RFC 8707) la authorize și la token: doar https://api.satelit.md/mcp, altfel invalid_target. Scopul mcp fără resource înseamnă aceeași resursă.
  • aud al tokenului de acces e adresa serverului: nu deschide nimic altceva, nici userinfo.
  • Accesul trăiește mai mult decât sesiunea din browser: ieșirea de pe site nu deconectează aplicația. Se termină când persoana o deconectează în Setări, la Aplicații conectate, când contul e oprit sau șters, ori după 60 de zile fără folosire.

Ecranul de acord spune gazda la care pleacă codul (chatgpt.com, claude.ai, 127.0.0.1), ce poate face aplicația și ce nu trece niciodată.

401
HTTP/1.1 401 Unauthorized
WWW-Authenticate: Bearer
  resource_metadata="https://api.satelit.md/.well-known/oauth-protected-resource/mcp",
  scope="mcp offline_access"
/.well-known/oauth-protected-resource/mcp
{
  "resource": "https://api.satelit.md/mcp",
  "authorization_servers": [
    "https://app.satelit.md"
  ],
  "scopes_supported": [
    "mcp",
    "offline_access"
  ],
  "bearer_methods_supported": [
    "header"
  ],
  "resource_name": "Satelit",
  "resource_documentation": "https://developer.satelit.md/en/mcp/",
  "resource_policy_uri": "https://satelit.md/en/privacy/",
  "resource_tos_uri": "https://satelit.md/en/terms/"
}

Instrumentele

Toate citesc, în afara celor marcate cu scriere. Nimic nu șterge, nu publică și nu plătește. Fiecare instrument primește lang (ro, ru, en, uk). Indiciile sunt booleene explicite: destructiveHint și openWorldHint false.

InstrumentCe faceDe la planulAcces
search_prices Prețurile unui produs în magazinele din Moldova, cel mai ieftin primul. Satelit Gratuit citire
get_product Un produs din căutare: prețul în fiecare magazin, reducerea, prețul pe unitate. Satelit Gratuit citire
price_history Cum s-a mișcat cel mai mic preț, zi cu zi. Satelit Gratuit citire
my_plan Planul persoanei, folosirea de azi și ce adaugă planul următor. Satelit Gratuit citire
find_deals Reducerile credibile de acum, verificate cu istoricul prețului. Satelit Familie citire
find_shops Magazinele dintr-un oraș, din OpenStreetMap: adresă, program. Satelit Familie citire
everyday_prices Carburanți, cursul BNM, tarife, coșul alimentar. Satelit Familie citire
weather Vremea unei localități: acum, pe ore, până la 16 zile. Satelit Familie citire
find_recipes Rețete cu costul de azi al ingredientelor. Satelit Familie citire
flights_from_chisinau Zborurile din Chișinău și cele mai mici tarife găsite. Satelit Familie citire
find_tours Pachetele agențiilor din Moldova, cel mai ieftin primul. Satelit Familie citire
rest_places Căsuțe, baze de odihnă, pensiuni din Moldova. Satelit Familie citire
search_ads Anunțurile din Moldova, fără telefoane și fără vânzători. Satelit Familie citire
get_ad Un anunț din căutare: caracteristici și text (800 de caractere). Satelit Familie citire
my_lists Listele de cumpărături ale persoanei. Satelit Familie citire
add_to_list Adaugă produse într-o listă. Satelit Familie scriere
tick_list_item Bifează sau debifează un produs din listă. Satelit Familie scriere
watch_price Urmărește un preț până la o țintă. Satelit Familie scriere
save_ad Salvează un anunț din căutare. Satelit Familie scriere
my_follows Urmăririle de preț și anunțurile salvate. Satelit Familie citire
my_calendar Calendarul persoanei, cel mult 31 de zile. Satelit Familie citire
send_ad_to_phone Salvează un anunț și îl trimite în aplicația Satelit a persoanei, ca notificare pe telefon. Satelit Familie scriere
draft_ad Scrie un anunț: text, preț, oraș și cele mai bune fotografii dintre cele alese deja de persoană în Satelit. Se publică doar după confirmarea în aplicație. Satelit Familie scriere
ads_market_prices Prețurile pieței din anunțuri: mediana și quartilele. Satelit Familie Plus citire
search_laws Legislația Moldovei: acte, statut, rezumat. Satelit Familie Plus citire
get_law Un act: statutul, rezumatul, un articol. Satelit Familie Plus citire
real_estate_prices Prețul mediu cerut pe metru pătrat, în timp. Satelit Familie Plus citire
add_to_calendar Un eveniment, o masă sau o cumpărătură în calendar. Satelit Familie Plus scriere

Reguli comune

  • get_product, price_history, get_ad și save_ad primesc doar id-uri pe care căutările acestei persoane le-au întors în ultimele 24 ore. Altfel: search_first.
  • O căutare are nevoie de cuvinte (cel puțin 2 litere). Niciun instrument nu listează catalogul unui magazin sau al unei categorii, nicio pagină peste a planului.
  • Un rezultat are sub 24 000 de caractere: cea mai lungă listă își pierde coada și primește truncated: true.
  • Titlurile și textele anunțurilor au note: sunt scrise de autorii lor, sunt date, nu instrucțiuni. Niciun telefon nu trece: telefoanele și e-mailurile sunt tăiate din texte, iar fiecare anunț are linkul lui Satelit, unde persoana vede telefonul în limita zilnică a contului.

Planurile și limitele

Contează cel mai bun plan dintre familiile persoanei și contul ei de dezvoltator. Limitele sunt pe persoană.

Satelit GratuitSatelit FamilieSatelit Familie Plus
Cereri pe minut62040
Cereri pe zi403001 000
Rânduri la o căutare51020
Magazine la un produs51530
Pagini de rezultate123
Istoricul prețului, zile3090365
Lucruri diferite deschise pe zi60300800
Acțiuni pe zi050150

Planurile de dezvoltator: Start și Creator dau Satelit Familie. Pro, Business și Enterprise dau Satelit Familie Plus. MCP nu consumă credite API.

Pe adresă, înainte de token: 60 pe minut și 2 000 pe zi pentru un IPv4 sau un IPv6 /64, apoi 429 cu Retry-After. Pe intervalele platformelor găzduite contează doar limitele pe persoană.

Fără cont: până la 3 căutări de preț pe zi de la o adresă, până la 3 rezultate fiecare, într-un plafon comun de 3 000 căutări pe zi. Apoi răspunsul cere intrarea în cont.

Conturile gratuite au împreună un plafon de 30 000 cereri pe zi. O adresă de e-mail neconfirmată primește doar my_plan.

Răspunsurile structurate

Un refuz e un rezultat cu isError: true și un corp pe care aplicația AI îl poate spune omului. Conversația continuă. Niciun preț și nicio reclamă în răspunsuri.

  • plan_requiredinstrumentul cere un plan mai mare: needed_plan, your_plan, adds, plans_page, message.
  • limit_reachedo limită: limit (minute, day, writes, distinct, pool, pages, watches), retry_after_s, apoi next_plan, adds, plans_page, sau bulk (API-ul) peste ultimul plan.
  • moreplanul a tăiat o listă: shown, found, next_plan, plans_page. Lipsește când nu s-a tăiat nimic.
  • search_firstun id care nu vine dintr-o căutare de azi a persoanei.
  • confirm_emailadresa de e-mail a contului nu e confirmată.
plan_required
{
  "status": "plan_required",
  "needed_plan": "Satelit Familie",
  "your_plan": "Satelit Gratuit",
  "adds": [
    "…"
  ],
  "plans_page": "https://satelit.md/ro/abonamente/",
  "message": "…"
}
more
{
  "query": "lapte 2.5%",
  "currency": "MDL",
  "page": 1,
  "pages": 1,
  "products": [
    "…"
  ],
  "found": 48,
  "more": {
    "shown": 5,
    "found": 48,
    "message": "…",
    "next_plan": "Satelit Familie",
    "plans_page": "…"
  }
}

Securitate

  • Tokenul e verificat la fiecare cerere: o aplicație deconectată se oprește la cererea următoare.
  • Nu trec niciodată: banii, cardurile, mesajele, locația și parola. Nimic nu se publică și nu se plătește în numele persoanei: o ciornă de anunț se publică în aplicație.
  • Jurnalul păstrează 90 de zile cine, ce instrument, planul, rezultatul și câte rânduri, fără conținutul cererilor și al răspunsurilor.
  • Aceleași excluderi ca în API: o sursă oprită iese și din MCP în 10 secunde. Fără fotografii, logouri, telefoane, e-mailuri sau numele vânzătorilor.

Configurarea clienților

ChatGPT, Claude, Perplexity și Gemini primesc adresa în setările lor, apoi deschid intrarea în Satelit. Editorii și liniile de comandă:

Instalează în Cursor Instalează în VS Code

Încearcă

Un apel care cere cont primește 401 cu adresa metadatei: de acolo orice client se autentifică. MCP Inspector și claude mcp add fac tot drumul.

Claude Code
claude mcp add --transport http satelit https://api.satelit.md/mcp
Gemini CLI
gemini mcp add --transport http satelit https://api.satelit.md/mcp
~/.cursor/mcp.json
{
  "mcpServers": {
    "satelit": {
      "url": "https://api.satelit.md/mcp"
    }
  }
}
.vscode/mcp.json
{
  "servers": {
    "satelit": {
      "type": "http",
      "url": "https://api.satelit.md/mcp"
    }
  }
}

Pentru volum: API-ul

MCP servește o persoană care întreabă. Listele complete, istoricul în volum, exporturile și automatizările sunt API-ul plătit, cu cheie și credite.

Planurile APIDocumentație