Podklady od klienta pro Claude Code: sbírejte materiály bez opuštění agenta
Problém
Claude Code umí postavit kompletní web za jedno odpoledne. Pak narazí na zeď: klient neposlal logo, text hero sekce ani přihlašovací údaje do WordPress adminu. Agent čeká. Vy čekáte. Pošlete klientovi e-mail s upomínkou. Uplynou dva týdny. Klient pošle rozmazaný JPG široký 200 pixelů.
Tohle je to úzké hrdlo: ne samotná stavba, ale sbírání podkladů. Vývojáři ztrácí víc času honěním materiálů než psaním kódu.
Řešení
BriefGate MCP. Claude Code zavolá define_intake() se seznamem toho, co potřebuje. BriefGate klientovi pošle e-mailem odkaz na portál s vaším brandingem. Klient nahraje soubory, vyplní text a odešle přihlašovací údaje — vše v přehledném webovém rozhraní navrženém pro netechnické lidi. BriefGate ho automaticky upomíná podle rozvrhu, který si nastavíte.
Jakmile je vše odesláno, Claude Code zavolá get_intake_results() a naváže přesně tam, kde skončil — typovaná data, podepsané URL adresy souborů, strukturované objekty, jednorázové tokeny na přihlašovací údaje — připravené k použití bez jakéhokoli parsování nebo transformace.
Nastavení
Tři příkazy:
npm install -g @briefgate/mcp
claude mcp add briefgate -- briefgate-mcp --api-key bg_live_xxxxxAPI klíč získáte na https://app.briefgate.dev/app. MCP server propojí Claude Code s BriefGate API. Po nastavení jsou nástroje jako define_intake, get_intake_results, get_intake_status, request_revision a send_chase dostupné v každé session Claude Code.
Nechcete vkládat klíč přímo? claude mcp add briefgate -- npx -y @briefgate/mcp následované npx -y @briefgate/mcp login vás přihlásí přes dashboard místo toho, nebo se připojte přímo k hostovanému endpointu příkazem claude mcp add --transport http briefgate https://mcp.briefgate.dev/mcp (pak /mcp → briefgate → Authenticate přímo v Claude Code) pro přihlášení přes OAuth. Viz Rychlý start.
Přidání do CLAUDE.md
Do CLAUDE.md vašeho projektu vložte tento úryvek, aby agent věděl, kdy a jak BriefGate používat:
## Sběr podkladů od klienta
Když potřebuješ od klienta materiál, použij BriefGate MCP nástroje:
1. Zavolej define_intake s items[] popisujícím, co je potřeba
2. Klientovi se automaticky pošle e-mail s odkazem na portál
3. Stav ověř přes get_intake_status, nebo počkej na webhook intake.completed
4. Zavolej get_intake_results, aby ses dostal k typovaným datům a URL souborů
5. Pro přihlašovací údaje (hesla, API klíče) použij type: "secret" — jsou šifrované
Klienta se nikdy neptej na podklady přímo v konverzaci — použij define_intake,
aby bylo vše sledované a automaticky upomínané.Kompletní příklad session
Takhle vypadá session Claude Code s nasazeným BriefGate:
Agent: „Mám hotovou architekturu webu. Abych mohl pokračovat ve stavbě, potřebuju klientovo logo, text hero sekce a Google Analytics ID. Zakládám BriefGate intake."
Agent zavolá define_intake:
{
"project_name": "Bella Cucina Restaurant Website",
"client": {
"email": "[email protected]",
"name": "Marco",
"language": "en"
},
"items": [
{"key": "logo", "type": "image", "label": "Restaurant logo", "constraints": {"min_width": 512}},
{"key": "hero_copy", "type": "longtext", "label": "Homepage headline and intro text"},
{"key": "ga4_id", "type": "text", "label": "Google Analytics 4 Measurement ID", "required": false, "pattern": "^G-[A-Z0-9]+$"}
],
"chase_schedule": "default",
"branding": {"sender_name": "Radim"}
}Agent: „Intake založen. Marco dostane e-mail na [email protected] s odkazem na portál. Zatím budu pokračovat ve stavbě statické struktury a placeholder komponent. Vrátím se, jakmile podklady dorazí."
[Agent pokračuje ve stavbě. Chase engine pošle upomínku v T+2d. Marco odešle logo a text v T+3d. Vystřelí webhook intake.completed.]
Agent zavolá get_intake_results:
{
"status": "completed",
"items": [
{
"key": "logo",
"type": "image",
"status": "submitted",
"value": {
"url": "https://r2.briefgate.dev/signed/...",
"filename": "bellacucina-logo.svg",
"width": 1024,
"height": 512,
"mime_type": "image/svg+xml"
}
},
{
"key": "hero_copy",
"type": "longtext",
"status": "submitted",
"value": "Authentic Italian cuisine in the heart of Prague..."
},
{
"key": "ga4_id",
"type": "text",
"status": "skipped"
}
]
}Agent: „Logo přijato — SVG, 1024×512. Text hero sekce je tu. GA4 ID přeskočeno (volitelné). Pokračuju v implementaci: umístím logo do hlavičky, naplním hero sekci textem, přeskočím analytics snippet."
Práce s přihlašovacími údaji
Přihlašovací údaje — WordPress admin, Stripe secret key, servisní účet Google Analytics — potřebují zvláštní zacházení. Použijte type: "secret".
{
"key": "wp_admin",
"type": "secret",
"label": "Current WordPress admin credentials",
"help": "Username and password for wp-admin. Encrypted before storage, shown to your developer once."
}Klientův vstup putuje přes HTTPS a je zapečetěný na serveru BriefGate pomocí libsodium sealed box ještě předtím, než se cokoli zapíše do databáze. Uchovává se pouze šifrovaný text; prostý text se drží v paměti jen tak dlouho, aby ho bylo možné zapečetit a později jednou odhalit.
Když agent zavolá get_intake_results, položka typu secret vrátí:
{
"key": "wp_admin",
"type": "secret",
"status": "submitted",
"token": "sec_live_xxxxx",
"expires_at": "2026-08-15T10:00:00Z",
"revealed": false
}Agent pak zavolá GET /v1/secrets/sec_live_xxxxx, aby dešifroval a získal prostý text. Po tomto volání je token spotřebovaný — prostý text už přes API znovu získat nelze. Agent by ho měl okamžitě uložit do secrets manageru.
Vyžádání opravy
Když agent zkontroluje nahrané podklady a najde problém s kvalitou, může položku označit a požádat klienta o nové odeslání:
request_revision(
intake_id: "int_01J3K...",
item_key: "logo",
note: "The uploaded logo is 200px wide. We need at least 512px for retina screens. If you have an SVG version, that would be ideal — SVG scales to any size without quality loss."
)Klient dostane e-mail, uvidí poznámku u označené položky ve svém portálu, znovu ji nahraje a odešle. Webhook item.submitted vystřelí znovu. Agent zavolá get_intake_results a najde aktualizovaný soubor.
Tohle drží celý cyklus oprav uvnitř BriefGate — žádné samostatné e-mailové vlákno, žádné riziko, že se původní odeslání přepíše bez záznamu.