Conectarea unui agent la site-ul tău
vistudio-cms-admin · adresa MCP: https://app.vistudio.ro/mcp · descoperire: /.well-known/mcp.json
Ce poate face agentul
Un agent (Claude, ChatGPT sau alt client MCP) lucrează în numele tău, cu rolul pe care îl ai pe site (webmaster sau admin) și doar pe site-urile pe care le alegi la conectare. Poate citi conținutul, crea și modifica pagini, secțiuni, meniuri, formulare, SEO, redirect-uri, media (imagini + text alternativ), articole, birouri și traduceri.
- Draft-first: scrierile pe pagini și articole produc drafturi; publicarea e un pas explicit (scope-ul
mcp:publish). Setările, meniurile, formularele și birourile sunt live după salvare. - Fără surprize: ștergerile cer confirmare, orice scriere se poate simula (
dry_run), fiecare acțiune apare în admin → Jurnal agenți, iar versiunile paginilor permit revenirea. - Revocare: admin → Sesiuni agent (MCP) → șterge sesiunea; accesul agentului se oprește imediat. Sesiunea expiră oricum după 30 de zile fără folosire (token-ul de acces se reînnoiește automat la 1 h).
Înainte de a începe
Ai nevoie de un cont în admin cu rol de webmaster sau admin pe site (adminul site-ului îl adaugă din Utilizatori → Regiuni). La conectare vei alege site-urile și permisiunile (scope-urile: mcp:read, mcp:write, mcp:publish, mcp:admin); poți da mai puțin decât ai tu.
Claude.ai (conector personalizat)
- Claude.ai → Settings → Connectors → Add custom connector.
- Nume:
VIStudio CMS; URL:https://app.vistudio.ro/mcp; lasă câmpurile OAuth Client ID / Secret goale (înregistrarea e automată). Salvează. - Apasă Connect: se deschide admin-ul, te autentifici (dacă nu ești deja), alegi site-urile și permisiunile, apoi Permite.
- Într-o conversație nouă, activează conectorul din meniul de unelte și pornește cu un mesaj ca cel de mai jos.
Conectorii personalizați sunt disponibili pe planurile Claude Pro/Max/Team/Enterprise; pe Team/Enterprise un admin poate adăuga conectorul pentru toată organizația.
Claude Code
Cu OAuth (recomandat — nu pui nicio cheie în fișiere):
claude mcp add --transport http vistudio-admin https://app.vistudio.ro/mcp # apoi, în Claude Code: /mcp → vistudio-admin → Authenticate (se deschide admin-ul pentru consimțământ)
Sau cu o cheie API (pentru scripturi / servere fără browser; vezi „Cheie API” mai jos):
claude mcp add --transport http vistudio-admin https://app.vistudio.ro/mcp --header "Authorization: users API-Key <cheia ta>"
Echivalentul în .mcp.json (în proiect) sau în configurația altor clienți cu fișier JSON (Cursor, VS Code, Gemini CLI):
{
"mcpServers": {
"vistudio-admin": {
"type": "http",
"url": "https://app.vistudio.ro/mcp"
}
}
}{
"mcpServers": {
"vistudio-admin": {
"type": "http",
"url": "https://app.vistudio.ro/mcp",
"headers": {
"Authorization": "users API-Key <cheia ta>"
}
}
}
}ChatGPT
- ChatGPT → Settings → Connectors → Advanced → pornește Developer mode (necesar pentru conectori MCP personalizați).
- Create: Nume
VIStudio CMS, URLhttps://app.vistudio.ro/mcp, Authentication: OAuth; lasă Client ID / Secret goale; bifează confirmarea și creează. - La prima folosire ChatGPT te trimite în admin pentru autentificare și consimțământ.
- Într-o conversație: Tools → alege conectorul; în Developer mode uneltele care scriu cer confirmarea ta la fiecare apel.
Cheie API (alternativă la OAuth)
Admin → Utilizatori → contul tău → Enable API key → copiază cheia. Se trimite în antetul Authorization: users API-Key <cheie> (sau Bearer <cheie>). Cheia dă toate permisiunile rolului tău pe toate site-urile tale — folosește-o doar în scripturi de încredere și regenereaz-o dacă a fost expusă (OAuth rămâne varianta recomandată pentru aplicații de chat).
Planul site-ului
Un site nu se construiește dintr-un singur prompt. Dacă regiunea are un plan, agentul lucrează prin el: etapele de strategie (ofertă, public, pachete), apoi construcția paginii, blogul, SEO și lansarea. Planul ține ce s-a decis și ce s-a respins, deci îl poți continua mâine cu alt agent, fără să repeți discuția.
- Deschiderea:
plan_templatesarată ce șabloane există,plan_from_templatedeschide planul (doar adminul site-ului). Un singur plan activ pe site. - Un task pe rând:
task_nextdă următorul task cu tot contextul — obiectivul, regulile de fond, deciziile tale aprobate din amonte și firul de discuție — iartask_claimîl ia în lucru 30 de minute, reînnoite la fiecare scriere. - Tipul spune ce are de făcut agentul: interviu = te întreabă (maximum 3 întrebări într-un mesaj), decizie = îți propune variante, execuție = lucrează, verificare = raportează ce a găsit, fără să repare tăcut.
- Ce rămâne la tine: închiderea unui task, „cere modificări” (cu motivul scris), aprobarea deciziilor și publicarea. Le faci din admin → Plan de site, pe board.
- Mai mulți agenți deodată:
tasks_readyîntoarce tot valul de lucru, filtrabil pe bandă (strategie, conținut, tehnic, QA). Două task-uri nu pot atinge aceeași țintă, iar un task revendicat nu poate fi scris de altcineva.
plan_get # ce plan are site-ul si unde a ramas tasks_ready / task_next # ce se poate lucra acum task_claim → … → task_update(status: 'review') + task_comment_add
Instrucțiuni recomandate pentru agent
Pune-le în „project instructions” / prompt-ul de sistem al agentului sau ca prim mesaj:
Administrezi site-ul meu prin MCP-ul VIStudio CMS. Reguli: 1. Începe cu whoami, apoi region_info, apoi plan_get, în această ordine; lucrează doar pe regiunea indicată de utilizator. 2. Dacă site-ul are un plan, lucrează prin el (task_next, task_claim, task_update): respectă regulile lui de fond, nu sări peste etape și nu construi nimic înainte ca utilizatorul să aprobe structura paginii. 3. Citește înainte de orice scriere (pages_get, settings_get, forms_get); folosește dry_run: true când nu ești sigur. 4. Implicit, scrierile produc drafturi: nu publica (pages_publish; posts_publish doar dacă site-ul are blog) înainte să arăți preview_url și să primești confirmarea utilizatorului. Dacă settings_get arată agents.directPublish: true, orice scriere e publicată imediat: cere confirmarea înainte de a scrie. 5. Nu șterge nimic fără acordul utilizatorului; folosește confirm: true doar după acordul lui. 6. Textele: în limba principală a site-ului; meta description de 50–160 de caractere; imaginile au întotdeauna text alternativ. 7. La final rezumă ce s-a schimbat (id-uri, căi) și ce a rămas; dacă lucrezi pe un task, scrie rezumatul în firul lui (task_comment_add) și trece-l în review, fără să îl închizi. Lista uneltelor se negociază la conectare. Dacă o unealtă pare să lipsească, compară cu whoami (build și lista uneltelor serverului) și cere reconectarea înainte să raportezi lipsa.
Serverul trimite aceleași reguli agentului la conectare (instructions, în engleză), deci lipirea lor în prompt e opțională: ajută la clienții care nu le citesc.
După o actualizare a platformei
Lista uneltelor se negociază o singură dată, când agentul se conectează. Dacă adăugăm unelte noi, agentul conectat deja nu le vede — pentru el pur și simplu nu există, chiar dacă serverul le are. Nu e o eroare a lui: reconectează conectorul, sau începe o conversație nouă.
- Claude.ai: Settings → Connectors → conectorul tău → reconnect.
- Claude Code:
/mcp→ conectorul tău → reconnect (sau o conversație nouă). - ChatGPT: Settings → Connectors → conectorul tău → reîncarcă uneltele.
Agentul poate verifica singur: whoami întoarce build (versiunea adminului) și lista uneltelor pe care le are serverul. Dacă lista lui e mai scurtă, e rămas în urmă.
Limite cunoscute
- Maximum 120 de apeluri pe minut per sesiune de agent; listele întorc cel mult 500 de documente.
- Fișierele media: maximum 10 MB, doar imagini și PDF, din URL public sau base64; nu se pot decupa/edita imagini.
- Traducerea automată cere ca platforma să aibă cheia OpenAI configurată; altfel agentul scrie traducerile direct.
- Blocurile disponibile sunt cele din site (vezi blocks_schema); agentul nu poate crea tipuri noi de blocuri sau schimba designul.
- Tabelele din articole se scriu ca în GitHub (rând de antet, apoi „| --- |”); alinierea coloanelor („:---:”) nu se păstrează, iar un „|” din interiorul unei celule se scrie „\|”. Paginile nu au tabele.
- Un link spre o pagină sau un articol al site-ului (ex. „/contact”, „/en/contact” sau adresa completă a site-ului) se salvează ca legătură internă, deci pe fiecare limbă duce la pagina tradusă; la fel butoanele și redirecționările. O adresă care nu corespunde niciunei pagini, sau cu „#ancoră” ori parametri, rămâne fixă și apare în
linkWarnings. - Trimiterile la formulare, utilizatorii și domeniile site-ului se administrează doar din admin (nu prin agent).
Pentru dezvoltatori: metadata OAuth la /.well-known/oauth-authorization-server; Agent Skills (în engleză) la /.well-known/agent-skills/index.json; ghidul tehnic este în repository-ul platformei (docs/MCP-ADMIN.md).