LegalStack
MCP

Interfaces

Формы, конструкторы, публикация и ответы

Подключение: https://mcp.legalstack.ru/mcp/interfaces или в составе агрегированного сервера https://mcp.legalstack.ru/mcp.

Имя сервера: legalstack-interfaces. Инструментов: 12.

create_interface

Создать новый интерфейс (форму/конструктор/рабочее пространство) с набором полей.

Вызывай, когда пользователь хочет создать новую форму или интерфейс сбора данных. НЕ вызывай для правки существующего — это update_interface; создание не публикует интерфейс (используй publish_interface отдельно).

Возвращает: текст-подтверждение с названием и ID созданного интерфейса.

Параметры (JSON Schema)
{
  "type": "object",
  "properties": {
    "type": {
      "type": "string",
      "enum": [
        "form",
        "constructor",
        "workspace"
      ],
      "description": "Тип интерфейса"
    },
    "title": {
      "type": "string",
      "description": "Название интерфейса"
    },
    "description": {
      "description": "Описание",
      "type": "string"
    },
    "registryTypeId": {
      "description": "ID реестра: ответы формы падают записями в этот реестр. Поля матчатся по key",
      "type": "string"
    },
    "fields": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "label": {
            "type": "string",
            "description": "Название поля"
          },
          "type": {
            "type": "string",
            "description": "Тип поля (dataType), напр. text, number, date, select, file"
          },
          "key": {
            "description": "Системный ключ поля. Для связи с реестром задай key = key поля реестра (из get_registry)",
            "type": "string"
          },
          "required": {
            "description": "Обязательное поле",
            "type": "boolean"
          },
          "placeholder": {
            "description": "Подсказка",
            "type": "string"
          },
          "options": {
            "description": "Варианты (для select)",
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "label",
          "type"
        ]
      },
      "description": "Поля интерфейса"
    }
  },
  "required": [
    "type",
    "title",
    "fields"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

delete_interface

⚠ Необратимо удаляет интерфейс вместе со всеми ответами (submissions). Восстановления нет. Если интерфейс опубликован — учти, что публичная ссылка перестанет работать. Возвращает: текст-подтверждение с ID удалённого интерфейса.

Параметры (JSON Schema)
{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "ID интерфейса"
    }
  },
  "required": [
    "id"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

delete_submission

⚠ Необратимо удаляет один ответ (заполнение) интерфейса. Восстановления нет. Возвращает: текст-подтверждение с ID удалённого ответа.

Параметры (JSON Schema)
{
  "type": "object",
  "properties": {
    "interfaceId": {
      "type": "string",
      "description": "ID интерфейса"
    },
    "submissionId": {
      "type": "string",
      "description": "ID ответа"
    }
  },
  "required": [
    "interfaceId",
    "submissionId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

get_interface

Получить полную карточку одного интерфейса по ID: поля, тип, статус публикации, настройки.

Вызывай, когда уже известен ID и нужны детали (например, перед update_interface или publish_interface). НЕ вызывай для обзора многих — это list_interfaces; для поиска по тексту — search_interfaces.

Возвращает: объект Interface {id, title, description, fields[], published, publicUrl, createdAt, updatedAt, teamId, type}.

Параметры (JSON Schema)
{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "ID интерфейса"
    }
  },
  "required": [
    "id"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

get_submission

Один ответ (заполнение) интерфейса по его ID. Только чтение. Список — list_submissions. Возвращает: объект { id, data, submittedAt, source }.

Параметры (JSON Schema)
{
  "type": "object",
  "properties": {
    "interfaceId": {
      "type": "string",
      "description": "ID интерфейса"
    },
    "submissionId": {
      "type": "string",
      "description": "ID ответа"
    }
  },
  "required": [
    "interfaceId",
    "submissionId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

list_interfaces

Получить список всех интерфейсов (форм, конструкторов, рабочих пространств) текущей команды.

Вызывай для обзора всех интерфейсов без фильтра. НЕ вызывай, если знаешь текстовый запрос — используй search_interfaces; для полной карточки одного интерфейса — get_interface.

Возвращает: { interfaces: [{id, title, type, description, published, publicUrl}] } либо текст "Интерфейсы не найдены".

Параметры (JSON Schema)
{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}

list_submissions

Ответы (заполнения) интерфейса. Только чтение. Для одного ответа по ID — get_submission. Возвращает: объект { total, submissions:[{ id, data, submittedAt, source }] } или текст «Ответов нет».

Параметры (JSON Schema)
{
  "type": "object",
  "properties": {
    "interfaceId": {
      "type": "string",
      "description": "ID интерфейса"
    }
  },
  "required": [
    "interfaceId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

publish_interface

⚠ Делает интерфейс публично доступным по ссылке на выбранном канале. Обратное действие — unpublish_interface. Для отправки конкретному пользователю в Telegram — send_interface_to_telegram. Возвращает: текст с каналом, публичным токеном и публичным URL.

Параметры (JSON Schema)
{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "ID интерфейса"
    },
    "channel": {
      "default": "web",
      "description": "Канал публикации",
      "type": "string",
      "enum": [
        "web",
        "embed",
        "telegram",
        "api"
      ]
    }
  },
  "required": [
    "id"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

search_interfaces

Найти интерфейсы по текстовому запросу (по названию/описанию).

Вызывай, когда пользователь называет интерфейс словами, а ID неизвестен. НЕ вызывай для полного списка — это list_interfaces; для деталей найденного — get_interface.

Возвращает: { interfaces: [{id, title, type, published}] } либо текст "Интерфейсы не найдены".

Параметры (JSON Schema)
{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "Поисковый запрос"
    }
  },
  "required": [
    "query"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

send_interface_to_telegram

⚠ Outward-facing: отправляет реальному пользователю сообщение в Telegram со ссылкой на форму. Интерфейс должен быть опубликован (publish_interface). userId — член команды с привязанным Telegram. Возвращает: текст-подтверждение об отправке.

Параметры (JSON Schema)
{
  "type": "object",
  "properties": {
    "interfaceId": {
      "type": "string",
      "description": "ID интерфейса (должен быть опубликован)"
    },
    "userId": {
      "type": "string",
      "description": "ID пользователя LegalStack"
    }
  },
  "required": [
    "interfaceId",
    "userId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

unpublish_interface

Снять интерфейс с публикации на канале — публичная ссылка перестаёт работать. Обратное действие к publish_interface. Возвращает: текст-подтверждение по каналу.

Параметры (JSON Schema)
{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "ID интерфейса"
    },
    "channel": {
      "default": "web",
      "description": "Канал",
      "type": "string",
      "enum": [
        "web",
        "embed",
        "telegram",
        "api"
      ]
    }
  },
  "required": [
    "id"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

update_interface

Обновить существующий интерфейс: название, описание и/или полный набор полей.

Вызывай для правки уже созданного интерфейса (ID известен). НЕ вызывай для создания нового — это create_interface. Передача fields ЗАМЕНЯЕТ весь набор полей целиком, а не добавляет; передавай только те аргументы, что нужно изменить.

Возвращает: текст-подтверждение с новым названием интерфейса.

Параметры (JSON Schema)
{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "ID интерфейса"
    },
    "title": {
      "description": "Новое название",
      "type": "string"
    },
    "description": {
      "description": "Новое описание",
      "type": "string"
    },
    "registryTypeId": {
      "description": "ID реестра для приёма ответов (поля матчатся по key); null — отвязать реестр",
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "fields": {
      "description": "Новые поля интерфейса (заменяют весь существующий набор полностью)",
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "label": {
            "type": "string",
            "description": "Название поля"
          },
          "type": {
            "type": "string",
            "description": "Тип поля (dataType), напр. text, number, date, select, file"
          },
          "key": {
            "description": "Системный ключ поля. Для связи с реестром задай key = key поля реестра (из get_registry)",
            "type": "string"
          },
          "required": {
            "description": "Обязательное поле",
            "type": "boolean"
          },
          "placeholder": {
            "description": "Подсказка",
            "type": "string"
          },
          "options": {
            "description": "Варианты (для select)",
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "label",
          "type"
        ]
      }
    }
  },
  "required": [
    "id"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

На этой странице