Cerere ofertă — agenți și integrări
Această pagină descrie cum pot agenții AI și conectorii server-side să trimită cereri de ofertă către OSON.
MCP (ChatGPT / clienți MCP)
Endpoint Streamable HTTP: https://oson.ro/mcp
Token temporar (24h): /ai/token/ — read-only sau cu trimitere ofertă.
Tool-uri: oson.get_overview, oson.check_fit, oson.prepare_quote_request, oson.create_quote_request.
Autentificare: Bearer din pagina token sau cheie partener server-side. Flux: prepare → confirmare utilizator → create cu user_confirmed=true.
Documentație agenți: llms.txt · llms-full.txt (FAQ extins)
Validare MCP (smoke test)
Token Bearer se solicită de la OSON — nu îl publicați în pagini sau în llms.txt.
curl -i -X POST https://oson.ro/mcp \
-H "Authorization: Bearer <TOKEN>" \
-H "Content-Type: application/json" \
-d '{}'
# Fără token — așteptat 401 JSON (nu HTML Django):
curl -i -X POST https://oson.ro/mcp
În client MCP (Cursor, ChatGPT Connectors): verificați oson.get_overview, apoi prepare_quote_request (nu scrie în DB), apoi create_quote_request doar după confirmare utilizator.
Endpoint REST — integrare autorizată
POST https://oson.ro/api/quote/
Autentificare: Authorization: Bearer <token server-side> (token emis de OSON, nu public).
Opțional: header Idempotency-Key pentru retry sigur.
Artifact Claude — important
Widget-urile pe *.claudemcpcontent.com nu pot apela fetch către oson.ro (CSP sandbox, eșec în 0–2 ms). Serverul CORS e configurat corect; blocajul e în browserul artifact-ului.
Alternativă în artifact: deschide formularul cu date precompletate (navigare, nu fetch):
https://oson.ro/?name=...&company=...&email=...&project_needs=...&source=claude#cerere
Endpoint REST — agenți LLM anonimi (server-side / fără iframe)
POST https://oson.ro/api/quote/public/ — fără Bearer. Funcționează din backend, curl, ChatGPT Actions — nu din artifact Claude în browser.
- Rate limit: 3 cereri / IP / oră
sourceobligatoriu:chatgpt,claude,mcp,other- Honeypot: câmp ascuns
website(lăsați gol) - Cererile sunt marcate
is_public_submissionîn admin
Contract OpenAPI
Schema completă: /openapi.json
Câmpuri obligatorii
name,company,emailproject_needs— descriere flux (minim 10 caractere)privacy_consent— trebuie să fietrue
Câmpuri recomandate pentru agenți
source:chatgptsaumcpuser_intent_summary— sumar scurt, fără transcript completcurrent_tools,organize_goals— string sau arrayindustry,users_count,phone,deadline
Răspuns succes
{
"success": true,
"id": 42,
"reference": "OSON-42",
"status": "new",
"message": "Cererea de ofertă a fost primită."
}
Flux recomandat
- Verifică dacă OSON se potrivește nevoii utilizatorului.
- Colectează nume, companie, email și consimțământ explicit.
- Pregătește un sumar scurt al intenției — nu trimite conversația integrală.
- Cere confirmare utilizatorului înainte de trimitere.
- Trimite cererea prin API server-side autorizat.
Formular uman
Utilizatorii pot trimite și prin formularul public de pe homepage.