# Prompt Bench > Builds image-generation prompts that leave the image model nothing to invent. > You give it a client's words; it gives back a finished prompt, the questions > still worth asking, and a shareable version with every real person removed. Base: https://bench.srv1918898.hstgr.cloud ## Fastest path (one GET, works for browse-only agents) https://bench.srv1918898.hstgr.cloud/api/agent/compose?brief=A+risograph+poster+of+three+friends+at+the+beach,+no+text&format=text Add &mode=shareable for the version without names, &format=json for everything (prompt, followup, shareable, recipe, decisions, gaps, questions). Optional query parameters: bench=main|persona main is scenes with a cast of up to 5; persona is one portrait subject cast=Name repeat for each character, in order. Or castJson=[{"name":..,"marker":..}] castCount=N how many characters, when you know it but not who master=A a master id from /api/agent/manifest module=exact wording repeat to choose modules yourself; numbers also work fill=none use only what you set; default fills empty lanes from the brief recipe= a recipe as carried after #recipe= in a Studio link seed=N same inputs and seed always give the same prompt ## Full path (POST JSON) POST https://bench.srv1918898.hstgr.cloud/api/agent/compose {"brief": "the client's own words", "cast": [{"name": "Mara", "marker": "yellow enamel flask", "looks": "tall, fifties", "photo": false}], "recipe": {"master": "B", "modules": ["..."], "dials": {"energy": 3}, "fields": {"context": "..."}}, "fill": "empty"} Returns: prompt, followup, shareable, recipe, decisions[], gaps[], questions, ready, shareableLeaks[], link. Then: 1. If ready is false, answer the blocker gaps (ask the client using 'questions') and POST again with the answers. 2. Give 'prompt' to the image model, with any reference photos attached to the same message. 3. Give 'shareable' to anyone else. It has no names, no photos, no private packs. ## Reading the vocabulary GET https://bench.srv1918898.hstgr.cloud/api/agent/manifest masters, categories, cast fields, dials, text fields, rules GET https://bench.srv1918898.hstgr.cloud/api/agent/model every module with its exact wording, number and cast needs POST https://bench.srv1918898.hstgr.cloud/api/agent/suggest {"brief": "..."} -> proposed master, cast size, modules, dials POST https://bench.srv1918898.hstgr.cloud/api/agent/gaps {"recipe": {...}} -> what is still open, as questions POST https://bench.srv1918898.hstgr.cloud/api/agent/assemble {"recipe": {...}, "mode": "prompt|followup|shareable"} GET https://bench.srv1918898.hstgr.cloud/openapi.json the same, as OpenAPI 3.1 ## As an MCP server POST https://bench.srv1918898.hstgr.cloud/mcp speaks the Model Context Protocol over HTTP (stateless JSON-RPC). Tools: compose_prompt, suggest_from_brief, list_gaps, get_manifest, list_modules. Add it to an MCP client as a remote HTTP server with the URL https://bench.srv1918898.hstgr.cloud/mcp. ## In a browser https://bench.srv1918898.hstgr.cloud/studio#agent opens the Agent desk: one form, labelled inputs with stable ids (#agent-brief, #agent-cast, #agent-compose), outputs in #agent-prompt, #agent-shareable, #agent-gaps and #agent-recipe. The page also exposes window.PromptBench with manifest(), compose(input), suggest(brief), gaps(), apply(recipe), assemble(mode). ## Pages https://bench.srv1918898.hstgr.cloud/home every page below, also as JSON in #bench-directory https://bench.srv1918898.hstgr.cloud/studio Prompt Bench Studio https://bench.srv1918898.hstgr.cloud/classic the classic Prompt Bench page https://bench.srv1918898.hstgr.cloud/persona Persona Bench https://bench.srv1918898.hstgr.cloud/admin, /admin-persona pack management, Basic Auth ## Rules - Explicit choices always win. Suggestions only fill what you left empty. - A cast you give is the whole cast; nobody is added. - cast[i].photo = true means you will attach a reference photo of that person. - Put bans in the keep-out field only; everywhere else, say what is there. - Without sign-in you see public packs only, which is also what the shareable version uses.