Skip to main content
Glama

Опубликовать сайт

publish_landing

Publish a site to Layero — from here, with no terminal.

Not only generated landings: this takes ANY ready static bundle, so it is
also the answer to "deploy my site". Requirements — `index.html` at the
root, at most 200 files, 8 MB in total, 2 MB per file. Binary files
(images, fonts) must come with `encoding="base64"`; sent as text they are
silently corrupted.

A project that still needs a build step (Vite, Next, Astro — anything
where the answer is `npm run build`) does NOT go here: publish its build
output, or tell the user to run `npx layero@latest deploy`, which builds
on our side.

Send the ACTUAL file contents: the server does not remember the bundle
between calls. If the user edited the text after generation, pass the
current versions, or what gets published is what used to be there.

Pass `project` (the id of an existing project) when republishing the
same landing; without it the platform finds a project with that name or
creates a new one.

Returns as soon as the build finishes, or after ~40s with `status`
`building` and the `deploy_id` — the build keeps going on its own. Never
call this tool a second time to "retry" a build that is still running:
that starts a SECOND build. Follow `next_action`.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
filesYesФайлы сайта целиком, с `index.html` в корне. Пути относительные (`assets/app.css`). Двоичные файлы — с `encoding="base64"`. Не более 200 файлов, 8 МБ всего, 2 МБ на файл.
projectNoid существующего проекта — для повторной публикации того же сайта. Без него платформа ищет проект по имени или создаёт новый.
project_nameYesСлаг проекта — строчные латинские буквы, цифры и дефис. Он станет частью адреса сайта. Если проект уже существует, передавай ещё и `project`, иначе платформа заведёт новый.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
urlYes
bytesYes
errorNo
filesYes
statusYes
deploy_idYes
project_idYes
next_actionYes
project_slugYes
created_projectYes

TDQS

A5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the weak `openWorldHint` annotation, the description discloses several critical behaviors: silent corruption of binaries sent as text, server statelessness requiring actual file contents, async return with `status` `building` and `deploy_id`, and a strong warning against calling again to retry a running build. This is exactly the kind of behavioral context an agent needs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but each sentence serves a purpose: scope, constraints, exclusion, statelessness, project param, and async behavior. It is front-loaded with the primary use case and then systematically addresses pitfalls. No filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex deployment tool with async behavior and file constraints, this description is fully complete. It covers constraints, prerequisites, stateful behavior, retry guidance, and return semantics, so an agent can invoke it correctly without external knowledge. The presence of an output schema further reduces ambiguity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Though the schema already documents all parameters (100% coverage), the description adds essential semantics: the distinction between `project` and `project_name` (id vs name, create-or-find behavior), and the requirement to send current file contents. The binary encoding caveat is reinforced in both places, making the parameters impossible to misuse.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Publish a site to Layero'. It explicitly differentiates from siblings by stating it accepts ANY ready static bundle and is the answer to 'deploy my site', while build-step projects are excluded. This makes the tool's scope unmistakable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit 'when to use' ('this takes ANY ready static bundle') and 'when not to use' with concrete alternatives: build-step projects should publish build output or use `npx layero@latest deploy`. It also clarifies when to pass `project` for republishing, giving clear decision guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A3.7/5.0
Disambiguation3/5

Most tools are distinct, but there's real confusion risk between the deploy-related set (cancel_deploy, retry_deploy, deploy_logs, diagnose_deploy) and the site-inspection set (site_status, read_site, site_issues, site_screenshot) where purposes overlap. compose_landing vs compose_landing_submit are differentiated mostly by an obscure note rather than naming. Several tools address similar concepts (landing composition, publishing, deploy) making agent misselection plausible.

Naming Consistency3/5

Most tools use a clean verb_noun pattern (list_deploys, connect_domain, check_domain, publish_landing, read_site, rollback). However, conventions are mixed: some use compose/x/check/y (check_copy, check_domain, check_performance) while others use site_x (site_status, site_analytics, site_issues, site_screenshot) with inconsistent ordering. Descriptions mix English and Russian heavily, though that's content not naming.

Tool Count4/5

27 tools is a large but arguably justified surface for a full site-building/deploying/monitoring platform spanning composition, domain management, deploys, performance, analytics, and environment configuration. It sits slightly above what feels tight, but each tool has a defined role in the overall workflow.

Completeness4/5

The surface covers the full landing lifecycle: compose, publish, deploy, monitor, rollback, diagnose, and connect external resources (domain, analytics, integrations). Minor gaps: no explicit tool for site deletion/teardown, only read_site for editing with refactor_site being narrow, and no way to update an existing landing's text beyond refactor. Still, core CRUD and operational flows are covered.

Resources