Skip to main content
Glama
This connector has been deprecated

Duplicate listing of the same server under an old namespace. The maintained listing is Layero (ru.layero/layero): same endpoint https://mcp.layero.ru/mcp, current description and tools. The landing-page generator described here was removed in MCP 2.0.

Проект из репозитория

import_repo

Create a Layero project from a repository — path (a) without the dashboard. From then on a push to the branch is a preview, a push to the production branch is production.

After the link the tool finishes the setup wizard itself and starts the
first build; `setup` in the result says whether that happened. Detected
values are NOT written into the project settings: the builder detects
the framework, build command and output folder from the repository on
every build, so a later change in the repository is picked up. Only a
decision is pinned — the app folder of a monorepo and the package
manager named in `layero.json`. Until 2.1.1 the project stayed in
`pending_setup` while the answer promised a build that never started.

Two shapes, same as the CLI: GitHub goes through the App installation
(project and webhook in one call); other providers create the project
first and then connect the source — that step reports whether the
webhook could be registered. If the provider is not connected, the result
says `needs_connection` with the dashboard address: the person connects
the token there, never through the chat.

Monorepo: one project builds one app folder — pass `root_directory`.
Several apps in one repository are several projects, one call each, with
different `root_directory` and `name`. If the repository is already
linked and the call would duplicate an existing project (same folder, or
no `root_directory` given), nothing is created: the result is
`already_linked` with `linked_projects` — slug, url, root_directory and
branch of every project built from this repository. On `created`,
`linked_projects` lists the OTHER projects already built from the same
repository; `linked_projects_checked: true` says the check was made, so
an empty list means there are none (`my_projects(repo=…)` answers the
same question later). When the root has no
app and detection sees a frontend + backend pair, `app_dir_candidates`
names the folders.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameNoProject name; the slug and the address are derived from it. Defaults to the repository name — for a second app from the same monorepo give a distinct name.
repoYesRepository path at the provider: `owner/repo`; GitLab paths may be nested (`group/sub/project`). The form `gitverse:owner/repo` is accepted too.
branchNoProduction branch. Defaults to the repository's default branch.
deployNoFinish the setup wizard and start the first build right away. The framework, build command and output folder are not pinned: the builder detects them from the repository on every build (`layero.json` overrides). `false` leaves the project in the setup wizard: no builds until the person completes the setup in the dashboard.
providerYesProvider: github, gitverse, gitlab, gitflic or sourcecraft.
organizationNoOrganization slug. Without it — the account's only organization, or the personal one; if there are several and none is personal, the tool lists the slugs.
root_directoryNoMonorepo: the app folder inside the repository, relative to its root — `apps/web`, `frontend`. Omit it for an app in the repository root (if the root has no app and exactly one subfolder does, that folder is picked automatically). A repository already linked to a project can be imported again ONLY with a `root_directory` that no linked project uses.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
urlNo
repoYes
setupNo
branchNo
statusYes
projectNo
providerYes
setup_urlNo
project_idNo
connect_urlNo
next_actionYes
setup_errorNo
webhook_urlNo
organizationYes
webhook_hintNo
root_directoryNo
first_deploy_idNo
linked_projectsNo
app_dir_candidatesNo
webhook_registeredNo
linked_projects_checkedNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedInput schema / properties / deploy / description
      Previous value: -"Apply the detected settings and start the first build right away — same as the «Начать деплой» button in the dashboard. `false` leaves the project in the setup wizard: no builds until the person completes the setup in the dashboard."New value: +"Finish the setup wizard and start the first build right away. The framework, build command and output folder are not pinned: the builder detects them from the repository on every build (`layero.json` overrides). `false` leaves the project in the setup wizard: no builds until the person completes the setup in the dashboard."
    • addedOutput schema / properties / linked_projects_checked
      Added value: +{
      +  "default": false,
      +  "title": "Linked Projects Checked",
      +  "type": "boolean"
      +}
  2. Changed12 schema fields changed
    • changedInput schema / properties / branch / description
      Previous value: -"Ветка прода. По умолчанию — ветка по умолчанию репозитория."New value: +"Production branch. Defaults to the repository's default branch."
    • changedInput schema / properties / deploy / description
      Previous value: -"Применить настройки из детекта и запустить первую сборку сразу — как кнопка «Начать деплой» в панели. `false` — оставить проект в мастере: сборок не будет, пока человек не завершит настройку в панели."New value: +"Apply the detected settings and start the first build right away — same as the «Начать деплой» button in the dashboard. `false` leaves the project in the setup wizard: no builds until the person completes the setup in the dashboard."
    • changedInput schema / properties / name / description
      Previous value: -"Имя проекта; из него выводится слаг и адрес. По умолчанию — имя репозитория."New value: +"Project name; the slug and the address are derived from it. Defaults to the repository name — for a second app from the same monorepo give a distinct name."
    • changedInput schema / properties / organization / description
      Previous value: -"Слаг организации. Без него — единственная организация аккаунта или личная; если их несколько и личной нет, инструмент перечислит слаги."New value: +"Organization slug. Without it — the account's only organization, or the personal one; if there are several and none is personal, the tool lists the slugs."
    • changedInput schema / properties / provider / description
      Previous value: -"Провайдер: github, gitverse, gitlab, gitflic или sourcecraft."New value: +"Provider: github, gitverse, gitlab, gitflic or sourcecraft."
    • changedInput schema / properties / repo / description
      Previous value: -"Путь репозитория у провайдера: `owner/repo`; у GitLab бывает вложенным (`group/sub/project`). Допустима форма `gitverse:owner/repo`."New value: +"Repository path at the provider: `owner/repo`; GitLab paths may be nested (`group/sub/project`). The form `gitverse:owner/repo` is accepted too."
    • addedInput schema / properties / root_directory
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Monorepo: the app folder inside the repository, relative to its root — `apps/web`, `frontend`. Omit it for an app in the repository root (if the root has no app and exactly one subfolder does, that folder is picked automatically). A repository already linked to a project can be imported again ONLY with a `root_directory` that no linked project uses.",
      +  "title": "Root Directory"
      +}
    • addedOutput schema / $defs
      Added value: +{
      +  "AppDirCandidate": {
      +    "properties": {
      +      "looks_like": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "title": "Looks Like"
      +      },
      +      "path": {
      +        "title": "Path",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "path"
      +    ],
      +    "title": "AppDirCandidate",
      +    "type": "object"
      +  },
      +  "LinkedProject": {
      +    "description": "A project that is already built from this repository.",
      +    "properties": {
      +      "branch": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "title": "Branch"
      +      },
      +      "project": {
      +        "title": "Project",
      +        "type": "string"
      +      },
      +      "project_id": {
      +        "title": "Project Id",
      +        "type": "string"
      +      },
      +      "root_directory": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "title": "Root Directory"
      +      },
      +      "url": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "title": "Url"
      +      }
      +    },
      +    "required": [
      +      "project",
      +      "project_id"
      +    ],
      +    "title": "LinkedProject",
      +    "type": "object"
      +  }
      +}
    • addedOutput schema / properties / app_dir_candidates
      Added value: +{
      +  "default": [],
      +  "items": {
      +    "$ref": "#/$defs/AppDirCandidate"
      +  },
      +  "title": "App Dir Candidates",
      +  "type": "array"
      +}
    • addedOutput schema / properties / linked_projects
      Added value: +{
      +  "default": [],
      +  "items": {
      +    "$ref": "#/$defs/LinkedProject"
      +  },
      +  "title": "Linked Projects",
      +  "type": "array"
      +}
    • addedOutput schema / properties / root_directory
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Root Directory"
      +}
    • changedOutput schema / properties / status / enum
      Previous value: -[
      -  "created",
      -  "needs_connection"
      -]New value: +[
      +  "created",
      +  "needs_connection",
      +  "already_linked"
      +]
  3. Added

TDQS

A4.9/5.0
Behavior5/5

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

Annotations only include openWorldHint, so the description carries full behavioral burden. It discloses that creation is a mutation, explains the setup wizard behavior, notes that detection values are NOT pinned (contradicting common assumptions), describes provider-specific shapes (GitHub vs others), and mentions the historical bug in 2.1.1. It also explains the `needs_connection` result and webhook registration. Extremely transparent.

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

Conciseness4/5

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

The description is long, but every section adds necessary context for a complex tool. It is front-loaded with the core purpose, then logically organized into behavior, provider shapes, and monorepo/duplicate handling. While it could be tightened, the density is justified given the tool's complexity. Slightly verbose but well structured.

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?

Given the 7-parameter complexity, the provider differences, and the detailed output semantics (already_linked, linked_projects, app_dir_candidates), the description is comprehensive. It explains return values in the output schema and covers edge cases like multiple organizations and nested GitLab paths. An agent has everything needed to call it correctly.

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?

Schema covers 100% of parameters, but the description adds substantial nuance: `name` defaults to repo name and must be distinct for second monorepo app; `deploy` controls whether setup wizard finishes; `root_directory` has specific rules for re-importing linked repos. These details go beyond the schema's basic descriptions, enriching the agent's understanding.

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 states the primary action clearly: 'Create a Layero project from a repository'. It differentiates from siblings by explaining the push-to-preview behavior and explicitly mentioning `my_projects(repo=…)` as an alternative for duplicate checks. The verb and resource are unambiguous, and the scope is well defined.

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 guidance: explains the workflow after linking (push to branch = preview, push to production = production), and covers edge cases like monorepo (separate calls per app) and duplicate prevention (must provide a new root_directory). It also names the alternative tool `my_projects` for checking existing links. Clear context and exclusions are present.

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.

Resources