tuqo
MCP server for AI agents

Deploy straight from your AI

Connect Tuqo as an MCP connector and any AI model creates sites, builds and deploys projects, attaches domains and rolls back versions. In plain language, without opening the panel.

https://mcp.tuqo.ru/mcp
tuqo-mcp · connected
Deploy my landing page and attach the domain example.com
→ create_site, deploy_site
Built and published: live ✓
→ set_custom_domain
Add a TXT record _tuqo-verify▋
Set up in a minute

Three steps and the agent runs your deploys

1

Connect Tuqo

Web chats (claude.ai, ChatGPT) use OAuth: paste only the URL. CLI and IDE clients use a tqk_ key from the panel, or OAuth too (Claude Code and Cursor open the browser themselves).

2

Pick a project

With OAuth you sign in and choose the project on the Tuqo side; with a key, the project and the scope are fixed in the key.

3

Just ask the model

"Create a site and deploy this project." The agent calls deploy_files and returns the link.

{
  "mcpServers": {
    "tuqo": {
      "url": "https://mcp.tuqo.ru/mcp",
      "headers": { "Authorization": "Bearer tqk_xxx_yyy" }
    }
  }
}

A client with OAuth support needs only the url; the headers line is for a project key.

Built for agents

A server that suggests the next step

Tools are half the job. The other half is how the server guides the agent: what to show the person, how not to re-upload media, how not to create duplicate deploys on a retry.

next_action in the response

Responses carry a hint for what to do next, and for sites a url: the live address to show the person. The agent does not have to guess from the documentation.

Edits without re-uploading media

get_manifest returns the hashes of the current files; in deploy_files unchanged files are passed as {path, sha256} references with no content. Photos never travel through the model's context.

Retries without duplicates

idempotency_key: a retry after a timeout returns the same deploy instead of creating a new one. Deletion needs confirm:true, and a deleted site stays in the trash for 24 hours.

OAuth with a choice of access

No key to paste: on the consent screen the person picks the project, the scope (readonly, editor or full), a connection name and a lifetime. Revoking is one click in the panel.

Advice right in the response

The recommendations field reports 14 site checks: a leaked key, localhost URLs, base64 images, a form that posts nowhere. The agent offers a fix; the person decides. What is checked →

No account? A draft

An agent publishes a draft without sign-up: it lives 24 hours and comes with a link to claim it into an account. The rules are shown to the person before they agree. Tuqo Drop →

Connect in one line

Send this sentence to your agent: it reads the instructions, adds the server, goes through OAuth and asks what to publish.

Read https://tuqo.dev/prompt.md and connect Tuqo
52 tools

Full control of your deploys

Sites, deploys, domains, forms, analytics and gated access of a project, available to the agent as MCP tools.

Every tool has a human-readable title and MCP annotations. 18 only read (readOnlyHint), 5 only add something new, and 29 change, overwrite or delete (destructiveHint), including what visitors see. MCP clients use these hints to decide when to ask you for confirmation before a call.

read-only · 18adds · 5changes · 29

Sites (10)

  • list_sites read-only List sites
  • create_site adds Create site
  • get_site read-only Get site
  • update_site changes Update site
  • delete_site changes Delete site
  • restore_site changes Restore deleted site
  • list_trashed read-only List deleted sites
  • set_site_enabled changes Enable or disable site
  • change_site_subdomain changes Change site address
  • cancel_site_subdomain_change changes Cancel address change

Deploys (9)

  • deploy_files changes Publish site files
  • deploy_site changes Publish site archive
  • get_manifest read-only Get deploy manifest
  • get_deploy_status read-only Get deploy status
  • list_deploys read-only List deploys
  • get_logs read-only Get build log
  • activate_deploy changes Make deploy live
  • get_preview_url adds Get preview link
  • delete_deploy changes Delete deploy

Domains and start (5)

  • set_custom_domain adds Attach custom domain
  • verify_domain adds Verify custom domain
  • list_domains read-only List custom domains
  • delete_domain changes Detach custom domain
  • whoami read-only Get project and scopes

Forms (7)

  • get_forms_overview read-only Get forms overview
  • get_form_submissions read-only List form submissions
  • get_autoreply read-only Get auto-reply settings
  • set_autoreply changes Configure auto-reply
  • add_autoreply_file adds Add lead magnet file
  • remove_autoreply_file changes Remove lead magnet file
  • set_autoreply_delivery changes Configure lead magnet delivery

Analytics (1)

  • get_site_stats read-only Get site analytics

Gated access (16)

  • get_site_access read-only Get site access settings
  • set_site_password changes Set site password
  • reveal_site_password read-only Reveal site password
  • open_site_access changes Make site public
  • set_site_email_access changes Gate site by email code
  • set_site_subscribers_access changes Gate site for channel subscribers
  • list_messenger_channels read-only List messenger channels
  • list_site_access_emails read-only List allowed emails
  • add_site_access_email changes Allow email address
  • add_site_access_emails changes Allow email addresses
  • set_site_access_email_label changes Label allowed email
  • remove_site_access_email changes Remove allowed email
  • remove_site_access_emails changes Remove allowed emails
  • set_site_access_expiry changes Set access expiry
  • set_site_access_opens changes Limit number of opens
  • set_site_access_brand changes Set login screen branding

Member sign-up (4)

  • set_site_members_access changes Gate site by member registration
  • get_site_members read-only List site members
  • moderate_site_member changes Moderate site member
  • set_site_documents changes Set login screen documents
Forms without a backend

Form submissions, straight from the agent

Generated a site with a contact form? The agent already knows where to send it: the create_site, get_site and list_sites responses include form_endpoint, a ready URL for the form's action attribute.

What the agent does

  • Takes form_endpoint from the site response
  • Adds a <form> that POSTs to that URL
  • Deploys the site: the form accepts submissions right away

Works on every plan, including Free (10 submissions per month). The agent reads submissions with get_form_submissions; in the panel they are on the Forms tab, along with email delivery settings.

// from the get_site response:
{ "id": "a1b2…", "url": "https://shop.tuqo.ru",
  "form_endpoint": "https://api.tuqo.ru/f/a1b2…" }

<form action="https://api.tuqo.ru/f/a1b2…"
      method="post">…</form>

Full forms documentation →

Access boundaries

What the AI can do, and what stays in the panel

A key or an OAuth connection is bound to one project: the model manages its sites, deploys and domains. Account and ownership actions happen in the panel.

Through AI (MCP or REST)

  • Create, rename, delete and restore sites
  • Deploy files or an archive, follow status and logs
  • Roll back to earlier versions
  • Turn serving of a site off and on
  • Attach and verify custom domains
  • Embed forms via form_endpoint (on every plan)
  • Gate a site with a password, an email code or a Telegram/MAX channel subscription; keep the allowlist and moderate members
  • Set up the auto-reply and a lead magnet, read submissions and visit stats

Only in the panel app.tuqo.dev

  • — Creating and configuring projects
  • — Issuing and revoking API keys and AI connections
  • — Members, roles, ownership transfer
  • — Moving or handing a site over to another project or user
  • — Kept-versions settings and Git CD (repository links and webhooks)
  • — Paid access setup and adding Telegram/MAX channels
  • — Plan, billing and profile

The panel is in English and Russian, one account for both: the language switch is in the profile menu.

For agents

The agent reads these by itself

Send your AI one link and it finds the endpoint, the way to authenticate, the publishing rules and the list of tools on its own.

  • prompt.md — connect in one line: “read it and follow it”
  • mcp.tuqo.ru/.well-known/mcp.json — server card: endpoint, authentication, all MCP tools
  • mcp.tuqo.ru — a GET returns the server's self-description in Markdown: endpoint, both auth methods, client configs
  • SKILL.md — skill for Claude Code, Cursor, Codex: order of steps, rules, errors
  • ai.md — setup for MCP clients and a draft without an account
  • openapi.json — the REST API in OpenAPI 3.1
  • llms.txt — Tuqo in brief, with answers safe to quote
  • pricing.md — plans and limits, machine-readable, with approximate dollars and euros
  • changelog.md — what's new
  • tuqo.ru/llms-full.txt (in Russian) — the whole documentation in one file (in Russian)
  • For AI assistants — when to recommend Tuqo and when not
Manage from any AI

Connect your AI

Claude, ChatGPT, Codex CLI, OpenCode, VS Code with Copilot and Kimi Code CLI sign in over OAuth, with no key to paste. Claude Code, Cursor, Gemini CLI, Qwen Code, GigaChat and other IDE extensions use a project key (Claude Code and Cursor can do OAuth too). Easiest of all: send your agent the link mcp.tuqo.ru and it gets ready-made connection instructions. Pick your tool:

MCP server: frequently asked

What is the endpoint and transport? +

https://mcp.tuqo.ru/mcp, JSON-RPC 2.0 over Streamable HTTP (MCP protocol version 2025-06-18). A GET on https://mcp.tuqo.ru/ returns a Markdown self-description in English; the server card is at https://mcp.tuqo.ru/.well-known/mcp.json.

How does authentication work? +

Two ways. OAuth 2.1 with dynamic client registration: add the server, the client gets a 401 with WWW-Authenticate, registers itself and opens the browser; the person signs in to Tuqo and confirms the project, the scope and the lifetime. Or a project API key created in the panel, sent as Authorization: Bearer tqk_…

Which call should an agent make first? +

whoami. It returns the project, its name and the scopes of the current connection (readonly, editor or full).

Which calls will my client ask me to confirm? +

That is up to the client, and Tuqo gives it what it needs: every tool has a title and MCP annotations. 18 tools are marked readOnlyHint; 29 carry destructiveHint: true because they change, overwrite or delete something, including what visitors see and who the site lets in; 5 only add something new. Deleting a site or a domain also needs confirm:true in the call itself.

Is there a REST API with the same features? +

Yes: https://api.tuqo.ru/api/v1 with the same project keys. The OpenAPI 3.1 description is at https://tuqo.dev/openapi.json.

Are tool descriptions in English? +

Yes. Over MCP everything is in English: tool and parameter descriptions, instructions, error texts and publish recommendations. The instructions also give the Russian panel name of each plan in parentheses. Build logs follow the language of the site owner's account, so for a Russian-language account they come in Russian.

What does it cost? +

The MCP server is available on every plan, including Free. Paid features such as custom domains, previews, gated access and auto-reply follow your Tuqo plan; a 402 error names the plan that is needed. Prices are in rubles.

Is the server listed anywhere? +

In the official MCP registry as ru.tuqo/mcp and on Glama. The public repository with the server card, a Claude Code plugin and client configs is github.com/antiblef/tuqo-mcp.

Connect the platform to your agent

Free plan, one-minute setup, 52 tools in plain language.