Your AI can write a prompt. It doesn't know what a Kuruba woman from North Karnataka actually looks like.
Connect your AI to TASVR and it stops guessing. It searches a real catalog — 377 verified communities, 5,000+ real Indian places, wardrobe, camera, and light — and builds your image from ids that exist, not descriptions it invented.
Brief it like a creative director, not an engineer.
These are things you can actually say. Your AI picks the tools, you keep the campaign brain.
Make 3 Instagram posts (4:5) of a Malayali family at an Onam sadya at home, warm daylight.
Toolsplan_shotpreview_generationgenerate_imageget_generation_statusshow_results
Comes back 3 images side by side in the chat, with the credit cost shown first. Each is 10 credits at 1K.
Same Diwali offer post for Mumbai, Kolkata and Chennai: local faces and streets.
Toolsplan_shotgenerate_imageget_generation_statusshow_results
Comes back 3 versions for 3 cities, planned from one line.
Put this necklace on a Rajasthani bride in a haveli courtyard, 85mm.
Toolsupload_reference_imageplan_shotgenerate_imageget_generation_statusshow_results
Comes back 1 image with the necklace kept as photographed, 12 credits at 1K because a reference photo is used.
Show my last 6 Tasvr images.
Toolsshow_results
Comes back A gallery in the chat. No credits spent.
How many credits do I have left, and what would a 2K image cost?
Toolsget_credits_remainingestimate_cost
Comes back The balance and the price (15 credits for a 2K image). No credits spent.
Every general model will happily guess. TASVR won't let it.
Ask for “a woman from Karnataka” and a general-purpose model renders whatever its training data associates with that phrase — often generically North Indian, often wrong. TASVR routes the same request through a real catalog instead.
A model invents.
Ask for “a woman from Karnataka” and a general model renders whatever its training data associates with that phrase — often generically North Indian, often wrong.
TASVR makes it search.
The same request has to resolve to a real preset id — Karnataka::Kuruba, Karnataka::Vokkaliga — each backed by phenotype data a human wrote and verified, not a guess an AI generated on the spot.
You can trace it back.
Every rendered detail — the face, the saree, the street — is a specific catalog entry. Ask what was used, and the answer is a real id, not “I don't know, I made it up.”
Two steps, one terminal command.
Every plan, the free one too, can connect TASVR to Claude, ChatGPT and other assistants by signing in (OAuth). New people can sign up inside the connect window. A pasted API key is for Pro and Enterprise accounts. An API key is shown once, so save it somewhere safe.
- 1
Add the server.
Run the command from your terminal, in the project you're working in. Sign in to TASVR when asked; if you are new, sign up in the same window.
- 2
Confirm it connected.
Ask your AI to “list TASVR's preset categories” — a real list back means you're connected.
- 3
Or use an API key (Pro and Enterprise).
Settings → Developer & API Keys → Create key, then use an API key tab.
# adds TASVR as a remote MCP server over Streamable HTTPclaude mcp add --transport http tasvr \https://www.tasvr.ai/api/mcp# then sign in to TASVR when Claude Code asks (any plan)
Use TASVR in the AI you already work in.
Any app that takes a remote MCP server can use TASVR. Paste one URL, sign in with your TASVR account (or sign up in the same window) and approve the app — no API key, and any plan works. You can disconnect any app in Settings → Developer & API Keys.
Claude
claude.ai, Desktop and mobile
- Settings → Connectors → Add custom connector.
- Paste the TASVR URL, leave everything else empty, and click Add.
- Click Connect, sign in to TASVR and approve Claude.
ChatGPT
Developer mode, on the plans that offer it
- Settings → Apps & Connectors → Advanced settings → turn on Developer mode.
- Back in Apps & Connectors, click Create, paste the TASVR URL and choose OAuth.
- Sign in to TASVR and approve ChatGPT, then pick TASVR from the tools menu in a chat.
Le Chat
Mistral. In a team workspace an admin adds it
- Intelligence → Connectors → Add Connector → Custom MCP Connector.
- Name it tasvr and paste the TASVR URL.
- Connect, sign in to TASVR and approve Le Chat.
Perplexity
Pro, Max and Enterprise
- Settings → Connectors → Custom connector → Remote.
- Name it TASVR, paste the URL and choose OAuth, then confirm the notice.
- Sign in to TASVR and approve Perplexity.
Gemini
Gemini on the web, personal Google accounts, in English
- Settings → Connected Apps → Custom apps → Add a custom app.
- Paste the TASVR URL.
- Sign in to TASVR and approve Gemini. It then works in the Gemini mobile app too.
28 tools across 6 jobs.
Your AI is expected to call the discovery tools first — it should never invent a preset id, and it can't generate anything without a real one.
One line of your brief in; a ready selection, a preview and the credit cost out. Asks you which community when the brief doesn't say. Spends nothing.
- Takes
- A one-line brief, and optionally how many variations and an aspect ratio.
- Returns
- Ready selections of real preset ids, a labels-only preview, the credit cost, and questions when the human must choose (for example which community).
- Costs
- Spends nothing.
Finished images already public on tasvr.ai, with a brief to remake each one. Spends nothing.
- Takes
- Optional words such as a state, festival or use case.
- Returns
- Finished example images already on tasvr.ai, with tags and a one-line brief to make one like it.
- Costs
- Spends nothing.
Every category, with a count and what it's for.
- Takes
- Nothing.
- Returns
- Every category with a count and a one-line description.
- Costs
- Spends nothing.
Keyword search: “a monsoon-lit tea stall in Kerala” finds a real location, not a blank.
- Takes
- A search phrase and, if you like, a category.
- Returns
- Matching presets as id, label and category.
- Costs
- Spends nothing.
The states communities are filed under: the starting point before narrowing to one community.
- Takes
- Nothing.
- Returns
- Every state in the community catalogue.
- Costs
- Spends nothing.
Name a state, get its real communities. Never one silently picked for you.
- Takes
- A state.
- Returns
- That state's communities, each with a short description of what it renders.
- Costs
- Spends nothing.
Shows which presets a selection resolves to, and the cost, before anything is spent.
- Takes
- The same inputs as `generate_image`.
- Returns
- The presets that would be used and the credit cost, before anything is spent.
- Costs
- Spends nothing.
Renders from chosen preset ids only. Returns a task id at once; poll for the result.
- Takes
- Preset ids only, never a written description: one community for the person, other presets for clothing, place, light and camera, up to 13 more people, a size, an aspect ratio and up to 8 reference photos.
- Returns
- A task id at once. Poll `get_generation_status` for the image.
- Costs
- 10 credits for 1K, 15 for 2K, 25 for 4K; 12, 18 and 30 with reference photos. Credits are held before a render starts and taken only when the image is saved; a failed image is never charged.
Checks the render. The finished image shows in the chat with a Download button and lands in your Gallery.
- Takes
- A task id.
- Returns
- The state and, when finished, the image, which also lands in the account's Gallery.
- Costs
- Spends nothing itself; the image was priced by the call that made it.
Lays a finished set out side by side in the chat, or shows your latest images. Spends nothing.
- Takes
- A list of finished images, or nothing for the latest ones.
- Returns
- The images laid out side by side in the chat.
- Costs
- Spends nothing.
Caps what this connection can spend: N credits per day, week, month or in total. It can set a first limit or lower one; only the owner can raise or remove it, in Settings.
- Takes
- A credit amount and a period (day, week, month or total).
- Returns
- The limit now on this connection. It can set or lower a limit, never raise or remove one.
- Costs
- Spends nothing.
The one tool that takes free text, for the one thing a preset list can't express.
- Takes
- A finished image's id and one plain-language instruction. This is the one tool that takes free text.
- Returns
- A new task id; poll `get_generation_status`.
- Costs
- The price of an image with reference photos: 12 credits at 1K, 18 at 2K, 30 at 4K.
Puts a photo you hand it into TASVR's storage, from a file or an external URL. Kept in your library only if you say so.
- Takes
- A photo, from a file or a link, and its role.
- Returns
- A reference your next generation can use. It is kept in the library only if you say so.
- Costs
- Spends nothing.
Keeps an uploaded reference in your library for reuse, only when you ask.
- Takes
- An uploaded reference.
- Returns
- Confirmation that it is kept in the library.
- Costs
- Spends nothing.
The fixed things a reference photo can be tagged as: pose, product, jewelry, camera angle. Never a free-text caption.
- Takes
- Nothing.
- Returns
- The fixed roles a reference photo can have, such as pose, product or jewellery.
- Costs
- Spends nothing.
Crops one thing out of a busy photo, a necklace or a bottle, into a clean reference. Saved only if you say so.
- Takes
- A reference photo and the one item to lift out.
- Returns
- A clean reference of just that item.
- Costs
- One 1K image with a reference photo: 12 credits.
The avatars and reference photos you've saved in TASVR, the same library the web app reads.
- Takes
- Nothing.
- Returns
- The avatars and reference photos saved in the account.
- Costs
- Spends nothing.
Remembers your tone, style and ethnicity or region preference, so you're not re-asked every session.
- Takes
- Nothing.
- Returns
- The saved brand preferences: tone, style and the communities and regions you favour.
- Costs
- Spends nothing.
Found a gap, a missing preset or a confusing tool? This is how it reaches TASVR's team directly.
- Takes
- A short note, such as a missing preset or a confusing tool.
- Returns
- Confirmation that it reached the team.
- Costs
- Spends nothing.
The constraints are the point.
This is what actually keeps output grounded — not a suggestion your AI can talk its way around.
generate_image never accepts a written description. Every detail in the image traces back to a real preset id your AI looked up first.
edit_image is the sole place free text is allowed — and even then it's steered by TASVR's own fixed instruction templates, not raw AI prose.
A reference photo is always labeled with one of 12 fixed roles. “Match the pose” and “ignore the pose” are both explicit — never left to a guess.
No daily cap: make as many images as your credits cover. A per-minute limit stops a runaway agent loop, and nothing renders that your balance can't pay for.
Where they live, and what is never used.
Images are rendered with Google's Nano Banana 2.1. The presets are written and tested for it; TASVR did not train the model.
Your images, reference photos and account data are stored in Tokyo, Japan.
Download links the tools return work for 1 hour. The images themselves stay in your TASVR Gallery while your account is active, until you delete them (a free account with no plan that is unused for 90 days may have its stored images deleted, so download what you want to keep). get_generation_status or show_results gives a fresh link any time.
A face goes into a shot only with consent: a person scans their own face, or a model's face is scanned through a link the model approves. Real people's faces without consent are not used.
No celebrities or public figures, and no deepfakes.
Every plan can connect by signing in; API keys are for Pro and Enterprise. Credits, pricing, and your Gallery all work exactly as they do in the browser — MCP is a second way in, not a second account.