Connecting LLM clients (Claude, ChatGPT)
Connect Claude.ai, ChatGPT, or Claude Desktop to the Vincia contributor surface and ship a designer or developer contribution from chat — no local install required. This guide covers the connection for each client, the universal contribution loop, and two worked use cases (a designer template and a developer connector).
The mental model
Three independent choices frame every session:
- Kit — Designer (themes, design-templates, section libraries, ready-made collections) or Developer (blueprint, connector, workflow step, widget, solution pack).
- Loop — Chat-first (cloud drafts via MCP, no local install) or Local-first (the
vinciaCLI in your IDE/terminal). - Intent — Ship to the Forge (a reusable marketplace asset) or Build for a client (a real site/app, authoring missing pieces alongside).
Both kits share one CLI and one cloud-draft tool-set. Archetypes are only website or portal.
Every web/desktop client connects to one authenticated endpoint:
https://mcp.vincia.io
After the OAuth sign-in, the client gets the full contributor tool-set — plan, scaffold, the vincia_sandbox_* cloud-draft tools, linters, preview renderers, publish, marketplace search, and the feedback channel.
Prerequisites
- A Vincia contributor identity with the contributor agreement (CLA) accepted — the OAuth consent signs you in as that contributor.
- Chat-first needs nothing else. For Local-first, install the CLI:
curl -fsSL https://get.vincia.io/install | bash(macOS/Linux) orirm https://get.vincia.io/install.ps1 | iex(Windows), thenvincia loginand confirm withvincia whoami. - The kit (optional for chat-first, required for local-first): download the Designer or Developer kit zip from Studio or
get.vincia.io/kits/— orgit clone https://github.com/vincia-io/{designer,developer}-kit.git(cleaner for staying current). It carries the authoring rulebook (docs/prompt-for-llm.md+prompt-for-{designer,developer}-llm.md), worked examples, and editor configs. To refresh an existing kit to a newer version, see Keeping your kit up to date in Getting started. The remote connector, by contrast, is always current — nothing to upgrade.
Connect each client
Claude.ai (web)
- Customize → Connectors → Add connector → Add custom connector
- Name
Vincia Contributor; Remote MCP server URLhttps://mcp.vincia.io; Add. - Open the connector → Connect → approve the Vincia consent page (it shows your contributor name).
ChatGPT (web)
- Settings → Connectors → Advanced → Developer mode (enable once).
- Create app → Name
Vincia Contributor; MCP Server URLhttps://mcp.vincia.io; tick the risk acknowledgment; Create. - ChatGPT detects Authorization supported: OAuth → Connect → approve consent. (This Connect step needs a real click — the OAuth popup is blocked from scripted clicks.)
Claude Desktop
- Remote (simplest): Settings → Connectors → Add custom connector →
https://mcp.vincia.io→ Connect → approve. Identical to Claude.ai. - Local stdio (for the local-first loop): add to
claude_desktop_config.json:
{ "mcpServers": { "vincia": { "command": "vincia", "args": ["mcp", "serve"] } } }
This uses your vincia login token. Restart Claude Desktop after any CLI upgrade so it relaunches and surfaces new tools.
Tip: paste the kit's docs/prompt-for-llm.md (and, once you pick a type, prompt-for-{designer,developer}-llm.md) into the chat or a Project's instructions. That loads the authoring rulebook the platform's importer + validator enforce — skipping it is the most common cause of publish-time rejections.
The universal contribution loop
Ask in plain English; the model calls these tools in order:
1. Guided start — vincia_onboarding_intent / _kit_type / _archetype / _tier orient the session. 2. Plan first — vincia_plan_contribution(kind, description) drafts the contract — capability/methods/scopes for a connector, inputs/outputs for a workflow node, props/slots for a widget. The model shows you the plan and waits for approval. Changing a contract here is free; changing a published version costs a version bump and re-review. 3. Scaffold — vincia_scaffold_contribution(type, name) generates the full starter code and returns every file inline. The model receives the complete manifest, source, tests, and docs in the tool response — no filesystem, no terminal. This is the platform's code-writing capability. 4. Open a cloud draft — vincia_sandbox_open_draft(kind, slug) creates the cloud workspace and takes the lock. 5. Write files — vincia_sandbox_write_file (one call per file) seeds the draft with the scaffolded code. Then iterate: _read_file / _write_file / _list_files / _delete_file. 6. Validate — vincia_lint_manifest (developer) checks the manifest offline. 7. Run — vincia_sandbox_run exercises the code in the real workerd sidecar and returns trace, metrics, and logs. For designers, it materialises a hosted preview_url. 8. Release or publish — vincia_sandbox_release hands the draft to another client or teammate. vincia_sandbox_publish submits to marketplace review. 9. Track — vincia_get_review_status. 10. Report friction — vincia_report_issue / vincia_list_issue_reports.
What sandbox_run does, by kind:
- Developer asset (ships a
manifest.json) — runs the code against fixtures on the sandbox sidecar; returns trace, metrics, logs. - Designer
design-template— materialises the folder into a hosted preview and returns apreview_url(https://preview.vincia.io/p/<hash>/index.html) with the slots filled, so a CLI-less client can preview from chat.
Valid open_draft kinds: plugin, widget-pack, blueprint, workflow-node, solution-pack, theme, connector, design-template.
Worked use case — Designer: a website design-template
Goal: ship a reusable website design-template, "Warm-Earth Wellness Studio".
- Load the rulebook — paste
prompt-for-designer-llm.md(RULES 1-25) into the chat. - Confirm auth — ask the model to call
vincia_check_scopes. - Brief it — "Ship-to-Forge, a
websitedesign-template for a wellness studio: warm-earth palette, hero + services grid + about + booking CTA + footer." - Plan —
vincia_plan_contribution(kind: "design-template", description: "warm-earth wellness site...")→ model drafts the slot schema and visual direction. Approve or tweak. - Scaffold —
vincia_scaffold_contribution(type: "design-template", name: "warm-earth-wellness")→ model receives all starter files inline:template.json,index.htmlwith{{SLOT}}placeholders,styles.css,_preview-data.json,preview-inline.js. - Open a draft + write files —
vincia_sandbox_open_draft(kind: "design-template", slug: "warm-earth-wellness")thenvincia_sandbox_write_filefor each scaffolded file. - Preview —
vincia_sandbox_run→ open the returnedpreview.vincia.io/p/<hash>/index.html. Iterate: edit →sandbox_write_file→ run → refresh. - Self-critique against the rulebook (5-second test, scroll arc, copy-first, accessibility), fix, re-run.
- Publish —
vincia_sandbox_publish→ marketplace review. Track withvincia_get_review_status.
Local-first equivalent: vincia create design-template warm-earth-wellness → edit in IDE → vincia preview (local server, fills slots) → vincia validate → vincia publish.
Worked use case — Developer: a T1 payment connector
Goal: ship a T1 connector, "Razorpay payment connector".
- Load the rulebook — paste
prompt-for-developer-llm.md(RULES 1-22 + PART E tool reference). - Pick tier + capability — "Ship-to-Forge, T1 connector, capability
payment, provider Razorpay. Studyconnector-stripe-paymentfirst." - Plan —
vincia_plan_contribution(kind: "connector", description: "Razorpay payment connector — capability payment, methods: createIntent/capture/refund/verifyWebhook")→ model drafts the method signatures, scopes, and resource budget. Approve before writing any code. - Scaffold —
vincia_scaffold_contribution(type: "connector", name: "razorpay-payment", capability: "payment")→ model receives every starter file inline:manifest.json,src/index.ts(full PaymentProvider implementation shape),src/index.test.ts,package.json,tsconfig.json,CLAUDE.md,README.md. No terminal needed. - Open a draft + write files —
vincia_sandbox_open_draft(kind: "connector", slug: "razorpay-payment")thenvincia_sandbox_write_filefor each file. Replace provider-specific URLs, body shapes, and signature schemes insrc/index.ts. - Lint —
vincia_lint_manifest→ fix any undeclared scopes or missing fields. - Test —
vincia_sandbox_runagainst the create-charge fixture → trace + metrics + logs. For webhooks:vincia_create_webhook_inbox→ send a test event →vincia_webhook_event_to_fixture→vincia_sandbox_run. - Pre-publish check —
vincia_contributor_build_report→ full lint + scope check + undeclared-scope detection. Fix anything flagged before publishing. - Publish —
vincia_sandbox_publish→ review.
Local-first equivalent: vincia create connector razorpay-payment --capability payment → vincia dev (boots the T1 devcontainer) → vincia test (vitest + manifest lint) → vincia publish.
Other developer tiers follow the same loop with a different kind: blueprint (app/page templates), workflow-node (automation steps), widget (UI components), solution-pack (bundles). Worked examples for every tier ship in the kit's examples/ folder.
Collaboration across clients
A cloud draft is one server-side workspace visible from any client, serialized by a lock — so two clients can co-edit the same draft turn-by-turn:
- Client A (e.g. Claude.ai):
open_draft(kind, slug)→ writes files →release. - Client B (e.g. ChatGPT):
open_draft(draft_id: "<same id>")→ reads A's work → writes →run→ sharedpreview.vincia.ioURL.
Hand the lock back and forth with release. The same works for a teammate on another machine or for your terminal (vincia drafts / vincia sandbox) paired with a chat client on the same draft_id. It is turn-taking, not simultaneous live merge — release before the other side picks up.
Publish, review, iterate, report
- Publish —
vincia_sandbox_publish(chat) orvincia publish(CLI). - Track —
vincia_get_review_status/vincia status;vincia_get_my_contributions,vincia_get_my_earnings. - Fix-forward — reopen the draft, edit,
vincia_bump_version, re-publish. - Report friction —
vincia_report_issue(chat) orvincia report(CLI);vincia_list_issue_reportsshows your filed reports and their triage status.
Which path should a new contributor pick?
- Fastest on-ramp: Claude.ai + the chat-first loop — zero install, in-tab OAuth, full plan→scaffold→publish loop from chat.
- Developers who want IDE file-watching: local-first with the CLI (
vincia dev/vincia test). - ChatGPT works well as a daily driver — just remember the one manual Connect click.