Claude Code
claude mcp add --transport http ginta https://ginta.app/mcp
Then type /mcp in Claude Code, choose ginta → Authenticate, sign in to Ginta in your browser and press Allow.
Add --scope user to the command to have Ginta in every project.
Deploy a build
Ask: "Build the project and deploy dist/ to Ginta as a new site called my-app." Claude Code runs:
create_sitewithout files (orupload_fileswithout files for an existing site). The answer contains an upload link (15 minutes, up to 10 uploads) and the exact command.- The command, in your terminal:
cd dist && zip -qr ../site.zip . && curl -sS --fail-with-body -X POST \ -H "Content-Type: application/zip" --data-binary @../site.zip "https://ginta.app/api/upload/<token>" - The answer is JSON: the new version, changed and deleted files, and anything skipped (hidden files, unsupported
types):
{ "site_id": "my-app", "url": "https://my-app.ginta.page/", "version": 2, "files_uploaded": 37, "changed": ["index.html", "assets/index-B8f2.js", "…"], "deleted": [], "skipped": [{ "path": ".DS_Store", "reason": "hidden file" }] }
Bundles never go through the model's context, so a 2 MB app costs no tokens. A zip of the dist folder itself
(zip -r site.zip dist) works too: Ginta unwraps the single top folder.
Single-page apps
Add a _redirects file so every address serves the app (files still win):
/* /index.html 200
Search engines see the HTML Ginta sends: prerender your pages (Astro, Next output: "export",
vite-plugin-ssg) for SEO. More: Files and routing.
Without MCP: the REST API
Everything also works with a session cookie on https://ginta.app/api/… (see Files).