layervai/qurl-mcp

layervai/qurl-mcp

от layervai
MCP-сервер для qURL - защищенные ссылки с гибкими политиками. Позволяет AI-агентам (Claude, GPT) создавать, разрешать и управлять ссылками. Полезен разработчикам для безопасного обмена ресурсами.

npm version

Give an AI agent tools to share localhost web apps, private APIs, and selected files through expiring qURL™ by LayerV access links. This repository implements the Model Context Protocol server for that workflow. The @layervai/qurl-mcp package runs as a local stdio server backed by the qURL CLI or API, or as an authenticated remote HTTP server backed by the API.

Start with the no-account local quickstart or account-backed client configuration, then choose the tools for your task. In local mode, publish_crid runs the installed CLI to publish an app that is already running; share_by_crid issues its access link. Creating a link alone does not publish an app or restrict an existing public URL. Uploads require the account-backed tool set and use a separate connector lifecycle; see upload tools for their supported options and limits.

Local app sharing · File sharing · Sharing questions · Private links

⚠️ Renamed from @layerv/qurl-mcp in v0.4.0. The old package is deprecated and will not receive further updates. If you're using @layerv/qurl-mcp@0.3.x, swap the scope in your MCP client config — same binary, same API key, no other changes.

Инструменты были проиндексированы:
batch_create_qurlsвнешний мир

Создаёт до 100 qURL за один запрос. Одновызовная альтернатива перебору create_qurl: экономит сетевые обращения и возвращает единый конверт с результатами по каждому элементу. Используй это только тогда, когда пользователь явно хочет несколько qURL в одном запросе. Никогда не используй для одного URL, одного файла, одного изображения или одного вложения. Не используй этот инструмент для загруженных файлов, вложений-изображений, PDF или содержимого файлов в base64 - вместо него вызывай upload_file_data_qurl (режим HTTP) или upload_file_qurl (режим stdio). Не транзакционный: элементы выполняются успешно или падают независимо друг от друга (смотри счётчики succeeded/failed и error по каждому элементу). Применяй, когда нужно выпустить много qURL разом (например, подготовить список для вендора, раздать персональные ссылки для каждого клиента). Для одного ресурса используй create_qurl. Форма ответа: { succeeded: number, failed: number, results: BatchItemResult[], request_id?: string }. Каждый results[i] несёт index (совпадает с позицией во входных данных), success, а также либо qurl_link + resource_id + qurl_site + expires_at (успех), ЛИБО error: { code, message } (ошибка). Успешные элементы могут также нести branded_domain для анкорного текста на своём домене. Сигнал частичного сбоя: обработчик выставляет isError: true в ответе инструмента всякий раз, когда failed > 0, чтобы агенты могли ветвиться без разбора JSON. Слой HTTP также возвращает 400, когда падают все элементы - это видно через ту же форму (читай data.results[*].error). Одноразовые ссылки: как и в create_qurl, каждая qurl_link в ответе показывается ОДИН РАЗ. Не потеряй их.

Пакетное создание qURLs

Параметры
  • itemsobject[]обязательный

    Массив запросов на создание qURL (1-100 элементов)

create_qurlвнешний мир

Создаёт qURL - ссылку доступа с привязкой к политике и истекающим сроком действия, которая ограничивает доступ к целевому URL с помощью необязательных фильтров по IP/geo/UA/AI-agent и лимитов по времени или сессиям. Когда использовать: когда нужно выпустить свежую защищённую ссылку доступа для одноразового или ограниченного по времени доступа (например, отправить клиенту ссылку на скачивание на 24 часа, закрыть документ за IP-allowlist, выдать подрядчику одноразовые учётные данные). НЕ используйте этот инструмент для изображений, PDF, скриншотов или файловых вложений, загруженных в чат. В режиме HTTP MCP они должны идти через upload_file_data_qurl; в режиме stdio используйте upload_file_qurl. Когда НЕ использовать: используйте mint_link, когда у вас уже есть идентификатор ресурса и нужен только дополнительный токен доступа под ним - create_qurl определяет ресурс по целевому URL и может вернуть существующую группировку ресурсов того же типа. Используйте batch_create_qurls, чтобы создать много за один обмен. Используйте update_qurl, чтобы сменить теги или продлить существующий ресурс без выпуска нового. Если пользователь говорит 'дай мне qURL этого изображения/файла', а контент загружен в чат, это неподходящий инструмент. Поведение: не идемпотентно - два вызова создают два разных qURL-токена, хотя оба могут использовать один и тот же resource_id, если целевой URL группируется с существующим ресурсом того же типа (этот инструмент не показывает заголовок Idempotency-Key нижележащего API). Возвращённый qurl_link показывается ОДИН РАЗ в этом ответе и никогда не восстанавливается через get_qurl или list_qurls; сохраните или передайте его сразу. Возвращённый ресурс находится в статусе active, политика и лимиты на токен применены. Задайте expires_in явно для предсказуемого времени жизни; иначе сервис использует значения по умолчанию. Смотрите expires_at в ответе. max_sessions задаётся для каждого выпущенного qURL, а не для всего ресурса; явно задайте one_time_use: false, когда нужно, чтобы max_sessions: 0 означало неограниченное число посетителей. Возвращает: `{ qurl_id: string (q_…), resource_id: string, qurl_link: string (показывается один раз), branded_domain?: string, qurl_site: string, expires_at:…

Создать qURL

Параметры
  • access_policyobject

    qURL的访问控制策略

  • custom_domainstring

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

  • expires_instring

    Строка длительности (например, "1h", "24h", "7d"; API допускает только значения от 1m до 30d)

  • labelstring

    Понятная человеку подпись, указывающая, для кого предназначен этот qURL (не более 500 символов).

  • max_sessionsinteger

    Максимальное количество одновременных сессий для этого qURL токена (0 = без ограничений, когда one_time_use явно установлен в false; максимум 1000)

  • one_time_useboolean

    Можно ли использовать ссылку только один раз?

  • session_durationstring

    Сколько действует доступ после того, как получатель открыл контент (например, «1h»). Это задаёт ограничение длительности сессии на уровне ресурса при создании нового ресурса.

  • target_urlstringобязательный

    URL для защиты с помощью qURL

  • typestring

    Тип ресурса для интеграций, которым разрешено выпускать qURL, не являющиеся url (макс. 64 символа). По умолчанию: url.

delete_qurlидемпотентныйвнешний мир

Безвозвратно отзывает qURL: ссылка и каждый токен доступа, связанный с ней, сразу перестают работать. Это действие необратимо. Этот инструмент нужен, когда вы хотите полностью перекрыть доступ (скомпрометированная ссылка, ушедший пользователь, завершение сотрудничества). Он не отзывает ссылки, выпущенные инструментами загрузки, которые принадлежат file connector; их нельзя отозвать с этого сервера. Вместо него нужен update_qurl, когда нужно только сократить срок действия ресурса, сменить теги или переименовать, а extend_qurl - чтобы держать ссылку открытой дольше: они сохраняют существующие токены доступа. Идемпотентно: API возвращает 404 при повторных удалениях, для ID, которых никогда не было, и для ресурсов, принадлежащих другому API-ключу (несовпадение владельца схлопывается в 404 на стороне сервера, чтобы не раскрывать существование); этот инструмент проглатывает все три случая. По was_already_revoked можно отличить случай no-op от успешного отзыва в этом вызове. Когда ID пришёл из пользовательского ввода и важна принадлежность, сначала нужно вызвать get_qurl: 200 подтверждает принадлежность; выброшенный 404 на том эндпоинте тоже одинаково неоднозначен. Возвращает payload с подтверждением. По умолчанию ресурс исключён из list_qurls; чтобы увидеть его, нужно передать status: "revoked".

Удалить qURL

Параметры
  • resource_idstringобязательный

    Публичный ключ ресурса, CRID или устаревший r_ ID для отзыва (все токены; q_ display ID не принимаются).

extend_qurlвнешний мир

Продлевает время жизни ссылки qURL, отодвигая срок её истечения на относительный интервал. Принимает отображаемый ID ссылки q_ в качестве resource_id или ID ресурса вместе с qurl_id; ресурсу ровно с одной активной ссылкой qurl_id не нужен (если только у него не больше 100 ссылок, которые перечисляются при чтении). Используется, когда единственное нужное изменение: больше времени до истечения. Вместо этого для установки абсолютного expires_at или изменения метки, политики или сессий ссылки следует использовать update_qurl_token. Когда нужно отрезать доступ, следует использовать revoke_qurl_token или delete_qurl. Ссылки, созданные инструментами загрузки, принадлежат файловому коннектору и не могут быть продлены с этого сервера. Не идемпотентно: вызов дважды с одним и тем же extend_by продлевает ссылку дважды; для случаев, когда повторы не должны удваивать сдвиг, следует использовать update_qurl_token с expires_at. Требует qurl:write и qurl:read: перед обновлением читает ресурс, чтобы проверить ссылку и вернуть её, поэтому каждое продление стоит два вызова API (три, когда чтение не перечисляет ссылку). Ссылка не может жить дольше своего ресурса: если собственный expires_at ресурса наступает раньше, сначала его нужно поднять с помощью update_qurl; тогда результат будет содержать extend_warning. Проблемы с выбором ссылки возвращают результат с ошибкой; отклонённое обновление выбрасывает исключение с его HTTP-статусом и кодом ошибки. Возвращает ресурс (той же формы, что и get_qurl); новый срок истечения продлённой ссылки находится в extended_link_expires_at (и qurls[].expires_at), а не в собственном expires_at ресурса.

Продлить срок действия qURL

Параметры
  • extend_bystringобязательный

    Продолжительность, на которую продлевается ссылка (например, "24h", "7d"; от 1m до 30d за вызов)

  • qurl_idstring

    Ссылка (q_ display ID), которую нужно продлить. Обязательна, если у ресурса больше одной активной ссылки.

  • resource_idstringобязательный

    ID ресурса, или q_ display ID ссылки; q_ ID выбирает эту ссылку, и этот сервер читает ресурс, чтобы найти его родителя.

get_qurlтолько чтениеидемпотентныйвнешний мир

Получает отдельный ресурс qURL по ID и возвращает его текущее состояние плюс ограниченную выборку токенов доступа. Используйте его, когда у вас есть конкретный resource ID (публичный ключ, CRID или устаревший r_ ID) или отображаемый ID qURL (префикс q_). ID с префиксом q_ автоматически разрешаются в родительский ресурс. Не используйте его для создания нового qURL для только что загруженного изображения, PDF, скриншота или вложения файла. Для содержимого файлов, загруженных в чат в режиме HTTP MCP, используйте вместо него upload_file_data_qurl. Используйте list_qurls, когда нужно найти qURL по статусу, диапазону дат или поисковому запросу. Используйте resolve_qurl, когда у вас есть токен доступа конечного пользователя (префикс at_) и нужно обменять его на лежащий в основе URL. Если пользователь просит «qURL этого изображения/файла», этот инструмент подходит только тогда, когда вы уже знаете существующий resource_id или qurl_id. qurls[] - неупорядоченная выборка, API ограничивает её 100 строками, и она может отсутствовать при просмотре списка, сбое поиска предпросмотра или у скрытых ресурсов, принадлежащих коннектору; используйте qurl_count, чтобы понять, что строк с токенами может быть больше. Одноразовая ссылка qurl_link, полученная при создании, здесь никогда не возвращается.

Получить qURL

Параметры
  • resource_idstringобязательный

    Публичный ключ ресурса, CRID, устаревший r_ ID или отображаемый ID qURL (префикс q_) для получения. Если передан q_ ID, API автоматически определяет по нему родительский ресурс.

list_qurlsтолько чтениеидемпотентныйвнешний мир

Перечисляет ресурсы qURL с постраничной разбивкой и необязательной фильтрацией по статусу, диапазону дат или тексту поиска. Когда использовать: поиск - нахождение qURL по статусу (например, всего, что ещё активно), аудит диапазонов дат или полнотекстовый поиск по описаниям и целевым URL (через параметр q). Фильтры объединяются по И (например, status: 'active' + expires_before: '2026-05-01T00:00:00Z' вернёт активные qURL, срок которых вот-вот истечёт). Когда НЕ использовать: если у вас уже есть конкретный ID ресурса, берите get_qurl - он возвращает ту же структуру по каждому ресурсу дешевле и включает детализацию по токенам qurls[], которую list_qurls опускает. А чтобы реально открыть доступ к целевому URL, используйте resolve_qurl. Поведение: только чтение, идемпотентно. Пустой data[] при meta.has_more: false означает, что ни один ресурс не подошёл под фильтры (это не ошибка). Пагинация основана на курсоре: когда meta.has_more равно true, передайте meta.next_cursor в качестве cursor при следующем вызове, чтобы получить следующую страницу. Размер страницы по умолчанию - 20, настраивается через limit вплоть до 100. По умолчанию возвращаются только active qURL; передайте status: 'revoked', чтобы увидеть только отозванные qURL, или 'active,revoked', чтобы увидеть и те, и другие. Прошедший expires_at ресурса не меняет его статус; истекать могут отдельные токены доступа. status: 'expired' - недопустимый фильтр ресурсов. Сортировка по умолчанию - created_at:desc; переопределить можно через sort: 'expires_at:asc' и т. п. Возвращает: { data: QURL[], meta: { has_more: boolean, next_cursor?: string, page_size?: number, request_id?: string } } - каждый элемент data[] имеет ту же стабильную структуру ресурса, что возвращает get_qurl, только без детализации по токенам. Пример: list_qurls({ status: "active", sort: "expires_at:asc", limit: 10 }) возвращает 10 активных qURL, истекающих раньше всех.

Вывести список qURLs.

Параметры
  • created_afterstring

    Фильтр: создано после этой даты (RFC 3339)

  • created_beforestring

    Фильтр: создано до этой даты (RFC 3339)

  • cursorstring

    Курсор пагинации из предыдущего ответа

  • expires_afterstring

    Фильтр: срок действия истекает после этой даты (RFC 3339)

  • expires_beforestring

    Фильтр: срок действия истекает до этой даты (RFC 3339)

  • limitinteger

    Максимальное количество возвращаемых qURLs (по умолчанию: 20)

  • qstring

    Поисковый запрос (ищет по описанию и target_url).

  • sortstring

    Укажите поле и направление сортировки в формате 'field:direction'. Допустимые поля: created_at, expires_at. Допустимые направления: asc, desc (по умолчанию desc). Пример: 'created_at:desc'.

  • statusstring

    Фильтрует по статусу (значения через запятую, например 'active,revoked'). По умолчанию 'active', если не указан; чтобы переопределить, передайте 'revoked' или 'active,revoked'. Допустимые фильтры ресурсов: только active и revoked; expired не принимается.

list_qurl_sessionsтолько чтениеидемпотентныйвнешний мир

Перечисляет активные сеансы доступа для ресурса qURL. Используйте это, чтобы проверить, кто сейчас имеет активный доступ, перед ротацией, отзывом или завершением сеансов. Используйте terminate_qurl_sessions, когда активные сеансы нужно завершить, и используйте get_qurl, когда нужны метаданные токена/ресурса, а не состояние активного сеанса. Поведение: только чтение и идемпотентно. Пустой data[] означает, что для ресурса нет активных сеансов.

Список сессий qURL

Параметры
  • resource_idstringобязательный

    Публичный ключ ресурса, CRID или устаревший r_ ID, для которого нужно вывести список активных сессий.

manage_crid_accessвнешний мир

Управление доступом издателя. Настраивает следующую версию политики, отправляет или повторно отправляет приглашение по email, выводит список приглашений или consumer grants, одобряет или отклоняет запрос, одобряет credential с id new или отзывает доступ. Перед решением прочитайте текущую версию; при настройке первой политики на существующем приватном ресурсе используется expected_version 0. Для approve поместите expected_version внутрь approval; ноль допускается только для id new. После неопределённого результата приглашения выведите список приглашений перед повторной попыткой. Доступ только по приглашению не имеет consumer requests. Одобрение контракта требует доверенной квитанции о праве издателя и срока действия, а не неподтверждённого заявления об оплате. Удаление завершается только когда session_cleanup завершён; повторяйте тот же removal/version, пока он в ожидании. Электронная почта доказывает контроль над почтовым ящиком, а не юридическую идентичность. Возвращаются только перечисленные поля; invitation secrets и bearer links никогда не возвращаются.

Управляет доступом к приватным CRID

Параметры
  • actionenumобязательный
  • approvalobject
  • cursorstring
  • emailstring
  • expected_versioninteger
  • idstring
  • limitinteger
  • policyobject
  • resource_idstringобязательный

    Публичный ключ ресурса, CRID или устаревший r_ ID для управления доступом.

mint_linkвнешний мир

Создаёт новую ссылку доступа для существующего ресурса qURL с той же семантикой одноразового показа, что и у create_qurl.qurl_link. Используйте этот инструмент, чтобы выпустить дополнительные ссылки доступа к ресурсу, не создавая qURL с нуля (например, для второго получателя, для замены после потери оригинала). Не подходит для файлов из инструментов загрузки: их ссылки приходят из файлового коннектора, поэтому ссылка, созданная здесь по resource_id загрузки, не откроет файл; вместо этого снова запустите инструмент загрузки. Используйте create_qurl, если нужен новый ресурс с собственными target_url и policy. Используйте update_qurl, когда нужно поменять только expiration/tags/description у существующего ресурса. Принимает публичные ключи ресурсов, CRID, устаревшие идентификаторы r_ и идентификаторы отображения q_. Ограничения: expires_in и expires_at исключают друг друга (обработчик возвращает блок содержимого isError: true до любого вызова API, если заданы оба). Если не указано ни одно поле срока действия, API по умолчанию устанавливает срок 24 часа с текущего момента. Вывод: новая qurl_link показывается ОДИН РАЗ: ни один последующий вызов её не возвращает. Сохраните qurl_id, если нужно сопоставлять будущие события доступа или обновлять этот конкретный токен.

Mint Access Link

Параметры
  • access_policyobject

    Политика контроля доступа для этой ссылки.

  • expires_atstring

    Абсолютная метка времени истечения (RFC 3339). Взаимоисключается с параметром expires_in.

  • expires_instring

    Относительная длительность до истечения срока (например, "5m", "24h", "7d"; API допускает значения от 1m до 30d). Взаимоисключающий с expires_at

  • labelstring

    Человекочитаемая подпись, определяющая, кому предназначена эта ссылка (максимум 500 символов).

  • max_sessionsinteger

    Максимум одновременных сессий для этого токена qURL (0 = без ограничений, максимум 1000)

  • one_time_useboolean

    Можно ли использовать эту ссылку только один раз.

  • resource_idstringобязательный

    Публичный ключ ресурса, CRID, устаревший ID r_ или отображаемый ID qURL (префикс q_), для которого выпускается новая ссылка доступа. Если передан q_ ID, API автоматически определяет по нему родительский ресурс.

  • session_durationstring

    Как долго действует доступ после нажатия (например, «1h»). Отклоняется, если превышает предел длительности сеанса родительского ресурса.

publish_cridвнешний мир

Публикует URL с приватным доступом. Необходимо выбрать keys для одобренных учётных данных, invite_only для приглашений по электронной почте от издателя без запросов на доступ, email_capture для проверенного сбора email с согласия, review для проверенных запросов по email или contract для квитанции о праве от бэкенда издателя. Этот инструмент не проверяет оплату. Для создания необходимо использовать версию 1. Повторный вызов создаёт другой ресурс; после неопределённого результата необходимо использовать get_qurl или list_qurls перед повторной попыткой. Для локальных приложений необходимо использовать qURL CLI. Публичный обмен использует create_qurl.

Публикует приватный CRID.

Параметры
  • policyobjectобязательный
  • target_urlstringобязательный
resolve_qurlвнешний мир

Погашает токен доступа qURL (префикс at_, который вы вытащили из qurl_link), чтобы раскрыть лежащий в основе URL и получить сетевой грант доступа с привязкой ко времени и IP. Используйте этот инструмент, когда агенту передали токен доступа и ему нужно забрать защищённый ресурс: после успешного resolve запросы с access_grant.src_ip разрешены к target_url в течение access_grant.expires_in секунд. Вместо него используйте get_qurl, если у вас есть идентификатор ресурса (публичный ключ, CRID или устаревший r_ ID) или display ID qURL (q_) и нужны детали со стороны администратора, а не погашение от лица конечного пользователя. Побочные эффекты: расходует одно использование у токенов one_time_use, уменьшает max_sessions и может задеть политики доступа (денилисты по IP/гео/UA/AI-агентам). `idempotentHint: false`, потому что токены одноразового использования расходуются при каждом вызове; для неодноразовых токенов в пределах активного окна гранта повторы по сути ничего не меняют, но консервативная аннотация отражает поведение в худшем случае.

Resolve qURL Access Token

Параметры
  • access_tokenstringобязательный

    Токен доступа из ссылки qURL (например, at_k8xqp9h2sj9lx7r4a)

revoke_qurl_tokenвнешний мир

Отзывает один токен qURL внутри ресурса, не отзывая весь ресурс. Используйте этот инструмент, когда нужно, чтобы один получатель/ссылка перестали работать, но соседние qURL с тем же resource_id остались активными. Вместо него используйте delete_qurl, когда нужно отозвать ресурс и все токены под ним. Ограничения: требует родительский resource_id (публичный ключ, CRID или устаревший r_ ID) и отображаемый ID токена (q_…). Повторный отзыв неактивного токена возвращает ошибку API, а не считается идемпотентным.

Отозвать qURL Token

Параметры
  • qurl_idstringобязательный

    Идентификатор отображения qURL (префикс q_), который необходимо отозвать.

  • resource_idstringобязательный

    Публичный ключ ресурса, CRID или устаревший r_ ID, у которого нужно отозвать конкретный токен qURL.

share_by_cridвнешний мир

Запрашивает временную ссылку доступа qURL для ресурса, идентифицируемого по его CRID. Когда пользователь передаёт CRID ресурса с ведущим маркером $, уберите маркер и используйте этот инструмент. Задайте ttl, чтобы запросить время жизни в синтаксисе Go duration; итоговое значение должно быть положительным целым числом секунд. Служба может скорректировать время жизни. Ссылку создаёт API qURL, и она содержит метаданные о сроке истечения и одноразовом использовании.

Предоставляет общий доступ к qURL по CRID

Параметры
  • cridstringобязательный

    CRID ресурса, который нужно превратить во временную ссылку qURL. Принимает как чистый CRID, так и пользовательскую форму "$<CRID>".

  • ttlstring

    Запрошенное время жизни ссылки в формате длительности Go, например "90s", "5m" или "1h30m". Итоговое значение должно быть положительным целым числом секунд. Сервис может скорректировать время жизни.

terminate_qurl_sessionsвнешний мир

Завершает активные сеансы доступа для ресурса qURL. Используйте это после сокращения доступа, смены ссылки или реакции на предполагаемую утечку, когда уже открытые сеансы должны быть немедленно завершены. Передайте session_id, чтобы завершить один активный сеанс; опустите его, чтобы завершить все активные сеансы для ресурса. Сначала используйте list_qurl_sessions, если нужно проверить текущие сеансы перед действием. Побочные эффекты: существующие сеансы доступа закрываются; сами токены qURL не отзываются.

Завершить сессии qURL

Параметры
  • resource_idstringобязательный

    Публичный ключ ресурса, CRID или устаревший r_ ID, для которого завершаются сессии.

  • session_idstring

    Идентификатор конкретного сеанса, который нужно завершить. Если параметр не указан, завершатся все активные сеансы для этого ресурса.

update_qurlвнешний мир

Обновляет предельный срок истечения, теги, описание, кастомный домен или поведение прокси с host-заголовком у ресурса qURL. extend_by/expires_at здесь сдвигают срок действия самого ресурса, а он не продлевает жизнь отдельной ссылки; чтобы изменить срок действия ссылки, используйте extend_qurl или update_qurl_token. Для обновления срока истечения, тегов и описания принимает публичные ключи ресурсов, CRID, устаревшие идентификаторы r_ и отображаемые идентификаторы q_ (q_ разрешается автоматически); для обновления кастомного домена и preserve_host нужен идентификатор ресурса (публичный ключ, CRID или устаревший идентификатор r_), потому что qURL API теперь отдаёт их через PATCH /v1/resources/{id}. Ограничения: extend_by и expires_at взаимоисключающие; custom_domain/preserve_host нельзя совмещать с изменением срока истечения в одном вызове; нужно задать хотя бы одно поле обновления (extend_by, expires_at, tags, description, custom_domain, preserve_host). Очистка полей: передайте description: "", tags: [] или custom_domain: "", чтобы явно очистить эти поля. Когда нужно отозвать ресурс полностью, используйте delete_qurl. Ошибки: некорректный или выходящий за границы extend_by отклоняется на этапе валидации входных данных; если входные данные не проходят проверки схемы (одновременно extend_by + expires_at либо ни одного заданного поля), обработчик возвращает блок содержимого с isError: true. И то, и другое происходит до обращения к API. Остальные ошибки API выбрасываются с code/statusCode от API. Возвращает обновлённый ресурс (той же формы, что и get_qurl).

Обновить qURL

Параметры
  • custom_domainstring

    Заменяет пользовательский домен, привязанный к этому ресурсу (максимум 253 символа, должен быть зарегистрирован/активен/принадлежать вам). Для очистки передаётся пустая строка.

  • descriptionstring

    Заменяет описание ресурса (не более 500 символов).

  • expires_atstring

    Абсолютная метка времени истечения (RFC 3339). Не используется вместе с extend_by.

  • extend_bystring

    Продолжительность, на которую продлить (например, "24h", "7d"; от 1m до 30d за вызов; для большего срока используйте expires_at). Взаимоисключающий с expires_at.

  • preserve_hostboolean

    Определяет, сохранять ли исходный заголовок Host при проксировании через пользовательский домен. Имеет смысл только когда задан custom_domain; по умолчанию false на стороне API.

  • resource_idstringобязательный

    Публичный ключ ресурса, CRID, legacy r_ ID или qURL display ID (префикс q_) для обновления. Если передан q_ ID, API автоматически сопоставляет его с родительским ресурсом.

  • tagsstring[]

    Замените все теги на этом ресурсе (максимум 10 тегов, каждый длиной 1-50 символов).

update_qurl_tokenвнешний мир

Обновляет один токен qURL в ресурсе: срок действия, метку, политику доступа, максимум сессий или продолжительность сессии. Используйте это, когда нужно изменить конкретный токен q_…, не затрагивая соседние токены или метаданные на уровне ресурса. Для изменений на уровне ресурса (описание, теги, пользовательский домен) используйте update_qurl, а для полной остановки работы токена — revoke_qurl_token. Ограничения: extend_by и expires_at взаимоисключающие; должен быть задан хотя бы один поле для обновления токена. Возвращает обновлённую сводку токена.

Обновить qURL Token

Параметры
  • access_policyobject

    Заменяет политику доступа для этого токена.

  • expires_atstring

    Абсолютная метка времени истечения токена (RFC 3339). Несовместимо с extend_by.

  • extend_bystring

    Продолжительность, на которую продлевается этот токен (например, "24h", "7d"; от 1m до 30d за вызов). Взаимоисключающий с expires_at.

  • labelstring

    Человекочитаемая метка для этого токена.

  • max_sessionsinteger

    Максимальное количество одновременных сессий для этого токена (0 = без ограничений, максимум 1000)

  • qurl_idstringобязательный

    Отображаемый идентификатор qURL (префикс q_) для обновления.

  • resource_idstringобязательный

    Публичный ключ ресурса, CRID или устаревший r_ ID, под которым нужно обновить конкретный токен qURL.

  • session_durationstring

    Сколько длится доступ после клика (например, "1h"; от 1s до 24h). Пустая строка использует лимит родительского ресурса, если он установлен.

0.7.2основная
0.7.1
0.7.0
0.6.0
0.5.0
0.4.1
0.4.0

Выберите клиент, чтобы установить layervai/qurl-mcp:

Любой клиент

Конфиг добавления MCP сервера стандартный, обычно он не меняется вообще, поэтому подходит практически к любому ИИ клиенту, поддерживающему MCP.

{
  "mcpServers": {
    "layervai-qurl-mcp-z1097dodta": {
      "env": {
        "QURL_API_KEY": "lv_live_xxx"
      },
      "args": [
        "@layervai/qurl-mcp"
      ],
      "command": "npx"
    }
  }
}
CursorCursor

Перейдите по ссылке и сервер автоматически будет добавлен в Cursor. Либо откройте/создайте файл ~/.cursor/mcp.json(%USERPROFILE%\.cursor\mcp.json на Windows) и добавьте конфиг сервера:

{
  "mcpServers": {
    "layervai-qurl-mcp-z1097dodta": {
      "env": {
        "QURL_API_KEY": "lv_live_xxx"
      },
      "args": [
        "@layervai/qurl-mcp"
      ],
      "command": "npx"
    }
  }
}
VS Code

Создайте .vscode/mcp.json в проекте (ключ верхнего уровня — servers):

{
  "servers": {
    "layervai-qurl-mcp-z1097dodta": {
      "type": "stdio",
      "env": {
        "QURL_API_KEY": "lv_live_xxx"
      },
      "args": [
        "@layervai/qurl-mcp"
      ],
      "command": "npx"
    }
  }
}

Либо добавьте сервер через терминал:

code --add-mcp "{\"name\":\"layervai-qurl-mcp-z1097dodta\",\"type\":\"stdio\",\"env\":{\"QURL_API_KEY\":\"lv_live_xxx\"},\"args\":[\"@layervai/qurl-mcp\"],\"command\":\"npx\"}"
ClaudeClaude Desktop

Откройте Settings → Developer → Edit Config — это откроет файл claude_desktop_config.json:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Впишите сервер и полностью перезапустите Claude Desktop:

{
  "mcpServers": {
    "layervai-qurl-mcp-z1097dodta": {
      "env": {
        "QURL_API_KEY": "lv_live_xxx"
      },
      "args": [
        "@layervai/qurl-mcp"
      ],
      "command": "npx"
    }
  }
}
Claude CodeClaude Code

Добавьте сервер одной командой в терминале:

claude mcp add layervai-qurl-mcp-z1097dodta --env QURL_API_KEY=lv_live_xxx -- npx @layervai/qurl-mcp

Либо через JSON-конфиг:

claude mcp add-json layervai-qurl-mcp-z1097dodta "{\"env\":{\"QURL_API_KEY\":\"lv_live_xxx\"},\"args\":[\"@layervai/qurl-mcp\"],\"command\":\"npx\"}"
CodexCodex

Добавьте сервер командой в терминале:

codex mcp add layervai-qurl-mcp-z1097dodta --env QURL_API_KEY=lv_live_xxx -- npx @layervai/qurl-mcp

Либо вручную в ~/.codex/config.toml(%USERPROFILE%\.codex\config.toml на Windows):

[mcp_servers.layervai-qurl-mcp-z1097dodta]
command = "npx"
args = ["@layervai/qurl-mcp"]

[mcp_servers.layervai-qurl-mcp-z1097dodta.env]
QURL_API_KEY = "lv_live_xxx"
PerplexityPerplexity

MCP доступен подписчикам Perplexity Pro / Max / Enterprise. Локальные серверы — только в приложении для macOS.

  1. Откройте Настройки аккаунта → Connectors.
  2. Установите вспомогательное приложение PerplexityXPC (один раз).
  3. Нажмите Add Connector → вкладка Simple.
  4. В поле Server Name укажите layervai/qurl-mcp, а в поле команды запуска — строку ниже:
npx @layervai/qurl-mcp

Нажмите Save и дождитесь статуса Running.

WindsurfWindsurf

Откройте Windsurf Settings → Cascade → MCP Servers или отредактируйте файл ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "layervai-qurl-mcp-z1097dodta": {
      "env": {
        "QURL_API_KEY": "lv_live_xxx"
      },
      "args": [
        "@layervai/qurl-mcp"
      ],
      "command": "npx"
    }
  }
}
ClineCline

В панели Cline нажмите иконку MCP Servers → Configure → Configure MCP Servers (или отредактируйте ~/.cline/mcp.json) и добавьте сервер:

{
  "mcpServers": {
    "layervai-qurl-mcp-z1097dodta": {
      "env": {
        "QURL_API_KEY": "lv_live_xxx"
      },
      "args": [
        "@layervai/qurl-mcp"
      ],
      "command": "npx",
      "disabled": false,
      "autoApprove": []
    }
  }
}
Continue

Создайте файл в .continue/mcpServers/ (например layervai-qurl-mcp-z1097dodta.yaml) или добавьте блок в config.yaml. MCP работает только в режиме agent:

mcpServers:
  - name: layervai-qurl-mcp-z1097dodta
    command: npx
    args:
      - "@layervai/qurl-mcp"
    env:
      QURL_API_KEY: lv_live_xxx
Zed

Выполните agent: add context server или откройте настройки (zed: open settings file) и добавьте сервер в объект context_servers:

{
  "context_servers": {
    "layervai-qurl-mcp-z1097dodta": {
      "env": {
        "QURL_API_KEY": "lv_live_xxx"
      },
      "args": [
        "@layervai/qurl-mcp"
      ],
      "command": "npx"
    }
  }
}

Похожие MCP-сервера

colapsis/transfa

colapsis/transfa

от colapsis

Transfa — это утилита и MCP-сервер для быстрого обмена файлами из терминала или через AI-агентов. Без регистрации загружайте файлы до 100 ГБ, получайте ссылку, защищайте паролем или устанавливайте ...

JavaScript⭐ 21
bitatlas-group/bitatlas

bitatlas-group/bitatlas

от bitatlas-group

BitAtlas MCP сервер для защищённого облачного хранилища с E2E шифрованием и оплатой по запросу. Он позволяет AI-агентам безопасно искать, читать и управлять файлами без раскрытия данных. Идеально для приватной работы с документами.

MDX⭐ 1
Kzino/vorim-mcp-server

Kzino/vorim-mcp-server

от kzino

MCP-сервер Vorim AI даёт каждому AI-агенту криптографическую идентичность (Ed25519), гибкие разрешения с временными ограничениями и защищённый аудит. Работает с Claude Desktop, Cursor и любыми MCP-...

JavaScript⭐ 54
SagaPeak/artifacta-mcp

SagaPeak/artifacta-mcp

от sagapeak

MCP сервер для Artifacta — хранилища артефактов для AI-агентов. Сохраняет файлы, отчеты и датасеты с метаданными сессии, передает между сессиями и делится по ссылкам с истечением. Дедупликация по х...

TypeScript⭐ 1
JoeyBrar/agentseal-mcp

JoeyBrar/agentseal-mcp

от joeybrar

MCP сервер AgentSeal создаёт защищённые от изменений журналы аудита для AI-агентов на основе SHA-256 хеш-цепочек. Позволяет проверять целостность действий и доказывать клиентам, что агент выполнил именно то, что заявлено. Полезен разработчикам, внедряющим доверенные автономные системы.

JavaScript⭐ 2
hmk/box-mcp-server

hmk/box-mcp-server

от hmk

MCP-сервер для поиска и чтения файлов в облачном хранилище Box. Поддерживает форматы PDF и Word, авторизуется через JWT или Developer Token. Помогает разработчикам подключать Box к AI-агентам.

JavaScript⭐ 11
© Каталог MCP, 2026. Все права защищены.
Проект не аффилирован с Anthropic и любыми упомянутыми продуктами.
Все названия и торговые марки принадлежат их владельцам.
Контакты для связи: hi@mcp-katalog.ru

Лука Никитин