API i MCP
Poveži Sufler sa Claude-om, Cursor-om, n8n-om ili sopstvenim skriptama: čitanje sesija intervjua i profila, kroz REST API, MCP server i CLI.
1. Kako napraviti ključ
API ključ praviš u Podešavanjima, u sekciji API ključevi. Dostupno je na Pro, Unlimited i Ultimate planu; Proba (start) nema API pristup.
- Ključ dobijaš puni tekst samo jednom, u trenutku kreiranja. Posle toga vidiš samo prefiks (npr.
sk_sufler_Ab3xYz), dovoljan da ga prepoznaš u listi. - Pri kreiranju biraš dozvole (scope-ove) koje ključ nosi. Ne postoji naknadna izmena dozvola postojećeg ključa; napravi novi sa drugim scope-ovima i opozovi stari.
- Opoziv ključa važi odmah. Revizija u Podešavanjima beleži REST, CLI i MCP pozive, sa vremenom, operacijom i statusom.
2. Claude Code
Dodaj Sufler kao MCP server jednom komandom:
claude mcp add sufler -- npx -y @ostrichtech/sufler mcpClaude Code te pita za SUFLER_API_KEY pri prvom pokretanju. Zatim u razgovoru: „šta je zaključeno na poslednjem sastanku?" ili „koja pravila projekta X važe za ovaj kod?".
3. Claude Desktop / Cursor
Oba klijenta pokreću MCP server preko stdio (lokalni proces, npx). Dodaj u konfiguraciju (Claude Desktop: claude_desktop_config.json; Cursor: MCP podešavanja projekta ili globalna):
{
"mcpServers": {
"sufler": {
"command": "npx",
"args": ["-y", "sufler", "mcp"],
"env": { "SUFLER_API_KEY": "sk_sufler_..." }
}
}
}4. Remote MCP
Za hostovane klijente sa podrškom za Bearer autorizaciju (npr. n8n) koristi remote MCP umesto stdio procesa:
URL: https://sufler.rs/api/mcp
Header: Authorization: Bearer sk_sufler_...5. REST
Svaka MCP operacija postoji i kao REST poziv:
curl -H "Authorization: Bearer sk_sufler_..." \
"https://sufler.rs/api/v1/sessions?since=7d&limit=10"GET /api/v1/catalog (uz važeći ključ) vraća spisak operacija filtriran po dozvolama tog ključa - samo ono što taj ključ sme da pozove. GET /api/v1/openapi.json zahteva takođe važeći ključ, ali vraća kompletan, nefiltriran opis celog API-ja (OpenAPI 3.1), bez obzira na dozvole ključa kojim si se autentifikovao - koristan za generisanje klijenata ili uvid u sve operacije bez obzira šta trenutni ključ sme.
GET /api/v1/meetings/:id i GET /api/v1/sessions/:id primaju i ?format=md: odgovor tada nije JSON nego text/markdown - isti zapisnik/transkript, spreman za nalepiti u Obsidian ili beleške, bez ručnog formatiranja. Na svim drugim operacijama format se ignoriše (odgovor ostaje JSON).
Greške su RFC 7807 (application/problem+json): telo nosi type, title, status, i po potrebi detail, scope ili resetAt.
6. CLI
Za terminal i skripte bez pisanja HTTP poziva ručno:
npm install -g @ostrichtech/sufler
sufler login
sufler sessions list --since 7dsufler login traži API ključ i čuva ga lokalno (SUFLER_API_KEY iz okruženja uvek ima prednost nad sačuvanim ključem, korisno za CI i jednokratne pozive).
sufler meetings export <id> (i isto za sessions) preuzima sastanak ili sesiju kao Markdown fajl - podrazumevano bez transkripta, uz --transcript i sa njim (zahteva transcripts:read); --format json vraća sirov JSON umesto Markdowna.
7. Dozvole (scope-ovi)
Svaki ključ nosi jednu ili više dozvola:
sessions:read- lista i detalji sesija intervju-kopilota.profile:read- profesionalni profil (uloga, industrija, sažetak CV-ja).transcripts:read- sirov transkript sastanka ili sesije. Posebna dozvola, podrazumevano isključena jer sadržaj transkripta tada napušta aplikaciju. Zahteva imeetings:readilisessions:read(isti obrazac zavisnosti kao kodprojects:write): sama za sebe ne otvara nijedan poziv. Bez nje,include_transcriptu pozivu vraća odgovor satranscriptOmitted: "scope"umesto transkripta - ostatak odgovora (zapisnik, učesnici, teme) i dalje stiže normalno.
8. Limiti i kvote
- 60 poziva u minutu po ključu, bez obzira na operaciju.
- Dnevni limit po planu: Pro 500, Unlimited 2000, Ultimate 5000 poziva dnevno.
- Kvotni dan je UTC dan: dnevni limit se resetuje u ponoć po UTC-u (u srpskom lokalnom vremenu to je 01:00 zimi, odnosno 02:00 leti).
- Autentifikacija ide pre rutiranja: i poziv na nepostojeću putanju troši i minutni i dnevni limit po ključu (i probing kapu po IP adresi), ne samo poziv na postojeću operaciju. Isto važi i za pozive na
/catalogi/openapi.json- i oni prolaze kroz punu autentifikaciju, uključujući dnevni brojač, pre nego što se obrade. - Prekoračenje bilo kog limita vraća
429saretry-afteri, za dnevni limit,resetAtu telu greške. - Svaki uspešan odgovor nosi
X-RateLimit-Limit,X-RateLimit-RemainingiX-RateLimit-Reset(Unix vreme sledećeg resetovanja) - stanje dnevne kvote bez posebnog poziva.