Layero
REMOTE · MCP.LAYERO.RU · SCANNED AUG 3
Build a landing page from your IDE chat, publish it, then manage domains and analytics.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score →
Endpoint Security57
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- Authorisation not fully verified: no authorisation is required to call this server, and 16 tool(s) never declared a destructiveHint. The MCP spec treats an absent hint as destructive by default, so we cannot call this surface safe. See how to fix → View diagnostics → Unverified
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- HSTS check failed: the Strict-Transport-Security header is absent. See how to fix → View diagnostics → Fail
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability61
- 60% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Partial
- AI-judged instruction clarity (good).Pass
- Context-footprint check failed: tool/resource definitions use about 2252 tokens (~125/item across 18 items; 16 tools + 2 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management7
- Stability check failed: schema churn in the 8 days we've observed: 1 tool removals, 0 breaking changes, 0 auth/transport breaks, 12 additions. See how to fix → Fail
Tool Coverage73
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 4% of tool parameters carry a description.Partial
- Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Capabilities100
- Implements a current MCP spec version (2026-07-28).Pass
Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.
remote · mcp.layero.ru
claude mcp add --transport http ru-layero-layero https://mcp.layero.ru/mcp
[mcp_servers.ru-layero-layero] url = "https://mcp.layero.ru/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"ru-layero-layero": {
"type": "remote",
"url": "https://mcp.layero.ru/mcp",
"enabled": true
}
}
} openclaw mcp add ru-layero-layero --url https://mcp.layero.ru/mcp --transport streamable-http
mcp_servers:
ru-layero-layero:
url: "https://mcp.layero.ru/mcp" {
"mcpServers": {
"ru-layero-layero": {
"type": "http",
"url": "https://mcp.layero.ru/mcp"
}
}
} The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 2 Aug 26 +2
- Schema quality: pass → fail ▼ functional
- Schema quality: fair → good functional
- 31 Jul 26 +3
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 29 Jul 26 +1
- Tool “diagnose_deploy” rewrote its description, which is the text the model reads security
- Tool “list_domains” rewrote its description, which is the text the model reads security
- Tool “my_projects” rewrote its description, which is the text the model reads security
- Tool “publish_landing” rewrote its description, which is the text the model reads security
- Tool “site_analytics” rewrote its description, which is the text the model reads security
- Tool “site_status” rewrote its description, which is the text the model reads security
- Tool “whoami” rewrote its description, which is the text the model reads security
- Tool “check_domain” rewrote its description, which is the text the model reads security
- Tool “check_performance” rewrote its description, which is the text the model reads security
- Tool “connect_analytics” rewrote its description, which is the text the model reads security
- Tool “connect_domain” rewrote its description, which is the text the model reads security
- Tool “env_vars” rewrote its description, which is the text the model reads security
- Schema quality: 103 → 92 ▲ functional
- Schema quality: poor → fair functional
- 27 Jul 26 −3
- Stability: unverified → fail ▼ security
- Tool coverage: 25% → 4% ▼ functional
- Schema quality: 67% → 60% ▼ functional
- Schema quality: 64 → 103 ▼ functional
- Schema quality: fair → poor functional
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 26 Jul 26 55
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 3 Aug 2026 · Probed https://mcp.layero.ru/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=*.layero.ru | CN=YR2,O=Let's Encrypt,C=US | 29 Jun 2026 | 27 Sept 2026 | RSA 2048 | SHA256-RSA | 53366fc584ed4e9be0c08869b5e53af5530 |
| SANs: *.layero.ru, layero.ru | ||||||
| CN=YR2,O=Let's Encrypt,C=US (CA) | CN=Root YR,O=ISRG,C=US | 3 Sept 2025 | 2 Sept 2028 | RSA 2048 | SHA256-RSA | 4ebd24947e24d394802d84a52fd5b319 |
| CN=Root YR,O=ISRG,C=US (CA) | CN=ISRG Root X1,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | RSA 4096 | SHA256-RSA | f24b6d17f9d9ad7cb1c9fea78782699f |
DNSSEC insecure
Validation of mcp.layero.ru. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| ru. | present | 51575 | 8 | Verified |
| layero.ru. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication No authorisation required
The endpoint answered without asking for a token. Anyone who knows the URL can reach it.
| Result | No authorisation required |
|---|---|
| HTTP status | 200 |
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://mcp.layero.ru/mcp | Verified | 200 | |
| http (plaintext) | http://mcp.layero.ru/mcp | HTTPS enforced | 301 | https://mcp.layero.ru/mcp |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.
add_integration ~52
Wire form submissions into a destination. Returns the integration recipe. The agent executes the steps itself — runs terminal commands, edits files, deploys a relay if needed.
| Name | Type | Req | Description |
|---|---|---|---|
| kind | string | yes | — |
| Name | Type | Req | Description |
|---|---|---|---|
| next_action | string | yes | — |
| playbook | string | yes | — |
No examples provided.
check_domain ~71
Check whether a connected domain has started working. Runs the DNS check immediately instead of waiting for the background re-check. If the records have not propagated yet, that is normal — say so and suggest coming back later.
| Name | Type | Req | Description |
|---|---|---|---|
| domain | string | yes | — |
| project | string | yes | — |
| Name | Type | Req | Description |
|---|---|---|---|
| checks | — | — | — |
| domain | string | yes | — |
| error | — | — | — |
| next_action | string | yes | — |
| next_check_hint | — | — | — |
| records | array | yes | — |
| state | string | yes | — |
| working | boolean | yes | — |
No examples provided.
check_performance ~156
Measure a site's speed and say whether it got worse after a deploy. The verdict comes FROM THE SCORE, not from timings: repeated runs of the same deploy vary by at most one point, while LCP and TTFB on identical code swing by 37-40%. A difference of 3 points or more is meaningful; anything smaller is measurement noise, and calling that a regression is inventing a problem. A run takes tens of seconds. With `wait=true` the tool waits for you; do not start a second measurement in parallel — it will occupy the queue and add nothing.
| Name | Type | Req | Description |
|---|---|---|---|
| project | string | yes | — |
| wait | boolean | — | — |
| Name | Type | Req | Description |
|---|---|---|---|
| delta | — | yes | — |
| message | string | yes | — |
| next_action | string | yes | — |
| previous_score | — | yes | — |
| project | string | yes | — |
| score | — | yes | — |
| timings | object | yes | — |
| verdict | string | yes | — |
No examples provided.
compose_landing ~208
Drive the 3-step quiz flow and produce a complete landing. This is the **main entry point**. Don't ask the user questions in chat before calling this — the tool opens native quiz dialogs in the IDE itself. Call this immediately when the user describes what they want. The three quizzes are: 1. **Motivation** — what's being built, for whom, the desired action. 2. **Look & feel** — palette, tone, optional references. 3. **Final picks** — design system (top 3 matched), where submissions go, project name slug. Returns a ``ComposeResult`` with the file bundle to write to disk. The agent then writes the files using the IDE's filesystem tool and proceeds to integration setup / deploy.
| Name | Type | Req | Description |
|---|---|---|---|
| user_message | string | yes | The user's full message verbatim — do not paraphrase. Used to pre-fill quiz defaults and inform matching. |
| Name | Type | Req | Description |
|---|---|---|---|
| brief | string | — | — |
| category_guide | string | — | — |
| design_rules | string | — | — |
| design_system | — | — | — |
| files | array | — | — |
| integration | — | — | — |
| next_action | string | — | — |
| note | string | — | — |
| project_name | — | — | — |
| status | string | yes | — |
| structure | — | — | — |
No examples provided.
connect_analytics ~119
Connect Yandex Metrika to a site. IMPORTANT: authorisation happens IN A BROWSER, and neither you nor the platform can do that step for the user. The tool returns a link — show it and ask them to open it and grant access. Do not poll in a loop: the person may walk away for an hour. Check later through this same tool without the `branch` argument, or through `site_analytics`.
| Name | Type | Req | Description |
|---|---|---|---|
| branch | — | — | — |
| project | string | yes | — |
| Name | Type | Req | Description |
|---|---|---|---|
| connected | boolean | yes | — |
| counter_id | — | — | — |
| injection_mode | — | — | — |
| next_action | string | yes | — |
| oauth_url | — | — | — |
| project | string | yes | — |
| tracked_branch | — | — | — |
No examples provided.
connect_domain ~146
Connect a custom domain to a site. IMPORTANT: between this call and a working domain stands A PERSON. You get DNS records — show them to the user and explain they go in at their domain registrar. Do not wait for readiness: DNS propagates in minutes to an hour, the platform re-checks on its own, and you check later via `check_domain`. Spinning here burns time and context for nothing. The address can be passed as-is: the platform reduces `https://shop.example.com/page` to `shop.example.com` itself.
| Name | Type | Req | Description |
|---|---|---|---|
| domain | string | yes | — |
| project | string | yes | — |
| Name | Type | Req | Description |
|---|---|---|---|
| checks | — | — | — |
| domain | string | yes | — |
| error | — | — | — |
| next_action | string | yes | — |
| next_check_hint | — | — | — |
| records | array | yes | — |
| state | string | yes | — |
| working | boolean | yes | — |
No examples provided.
diagnose_deploy ~126
Why a deploy failed — with the cause parsed out, not a raw log. Without `deploy` the latest build is used; that is what reflects the current state. To examine a specific older one, pass its id. The response is not a log tail but the neighbourhood of the fatal line: the platform has already picked out what matters. Read `verdict` and the summary, fix the code, deploy again — you close this loop yourself, without involving the person.
| Name | Type | Req | Description |
|---|---|---|---|
| deploy | — | — | — |
| project | string | yes | — |
| Name | Type | Req | Description |
|---|---|---|---|
| build_log_excerpt | array | yes | — |
| deploy_id | string | yes | — |
| next_action | string | yes | — |
| next_actions | array | yes | — |
| project | string | yes | — |
| runtime_log_excerpt | array | yes | — |
| runtime_state | — | yes | — |
| stage | — | yes | — |
| status | — | yes | — |
| verdict | — | yes | — |
No examples provided.
env_vars ~202
Project environment variables: list names, set them, remove them. VALUES ARE NEVER READ BACK — not by you, not by the platform in its response. Only names and lengths are returned. This is a deliberate rule rather than an implementation limit: anything that reaches your answer settles into the conversation history, and a secret that lands there cannot be taken back. If the user asks "what is my key", say plainly that you cannot show it and offer to set a new one. `set` does not require knowing the other variables — the platform keeps them. `unset` removes only the named ones. A change needs a new deploy: variables are picked up at build time, not on the fly. Say so, or the user will think nothing happened.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | — | — |
| keys | — | — | — |
| project | string | yes | — |
| values | — | — | — |
| Name | Type | Req | Description |
|---|---|---|---|
| changed | array | — | — |
| next_action | string | yes | — |
| project | string | yes | — |
| variables | array | yes | — |
No examples provided.
list_design_systems ~21
Return the catalogue of design systems Layero ships with.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| result | array | yes | — |
No examples provided.
list_domains ~23
The project's own domains and their state.
| Name | Type | Req | Description |
|---|---|---|---|
| project | string | yes | — |
| Name | Type | Req | Description |
|---|---|---|---|
| result | array | yes | — |
No examples provided.
list_structures ~20
Return the catalogue of landing structures Layero ships with.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| result | array | yes | — |
No examples provided.
my_projects ~59
The user's sites on Layero. Thirty most recent by default. The full list is rarely needed, while flooding half your context with it is easy: an active user has dozens of projects.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | — | — |
| Name | Type | Req | Description |
|---|---|---|---|
| result | array | yes | — |
No examples provided.
publish_landing ~351
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`.
| Name | Type | Req | Description |
|---|---|---|---|
| files | array | yes | — |
| project | — | — | — |
| project_name | string | yes | — |
| Name | Type | Req | Description |
|---|---|---|---|
| bytes | integer | yes | — |
| created_project | boolean | yes | — |
| deploy_id | string | yes | — |
| error | — | — | — |
| files | integer | yes | — |
| next_action | string | yes | — |
| project_id | string | yes | — |
| project_slug | string | yes | — |
| status | string | yes | — |
| url | string | yes | — |
No examples provided.
site_analytics ~73
Site traffic: totals, direction and top sources. The time series is collapsed into a direction and breakdowns are cut to five: ninety chart points are useless in your context, and the conclusion is yours to draw anyway.
| Name | Type | Req | Description |
|---|---|---|---|
| period | string | — | — |
| project | string | yes | — |
| Name | Type | Req | Description |
|---|---|---|---|
| bounce_rate | — | — | — |
| devices | array | yes | — |
| next_action | string | yes | — |
| pageviews | integer | yes | — |
| period | string | yes | — |
| project | string | yes | — |
| state | string | yes | — |
| top_pages | array | yes | — |
| top_sources | array | yes | — |
| trend | — | — | — |
| users | integer | yes | — |
| visits | integer | yes | — |
No examples provided.
site_status ~79
How a site is doing: whether it is being served and how its build ended. `project` is an id or a slug. One call instead of three (project, deploys, live check of the address): an agent needs the conclusion, not the raw material to assemble it from.
| Name | Type | Req | Description |
|---|---|---|---|
| project | string | yes | — |
| Name | Type | Req | Description |
|---|---|---|---|
| http_code | — | yes | — |
| last_deploy_stage | — | yes | — |
| last_deploy_status | — | yes | — |
| last_error | — | yes | — |
| next_action | string | yes | — |
| project | string | yes | — |
| serving | boolean | yes | — |
| url | string | yes | — |
No examples provided.
whoami ~50
Who is connected to Layero and how many projects they have. Call this first when you are unsure the token is configured: a clear error here is cheaper than one halfway through a deploy.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| — | yes | — | |
| next_action | string | yes | — |
| projects | integer | yes | — |
| username | — | yes | — |
No examples provided.