ginta

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:

  1. create_site without files (or upload_files without files for an existing site). The answer contains an upload link (15 minutes, up to 10 uploads) and the exact command.
  2. 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>"
    
  3. 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).