LocalCan

официальный

Gives AI agents public URLs (tunnels) for localhost, live HTTP traffic inspection, snapshot publishing, and access control.

Что можно делать с LocalCan MCP?

  • Inspect captured traffic — Ask for recent exchanges with list_traffic, filtering by host, project, method, or status code, then drill into details with get_exchange.
  • Manage Public URLs — Create tunnels with create_public_url or add_public_url, check status via get_public_url_status, and pause, resume, or remove them as needed.
  • Publish and refresh Snapshots — Use publish_snapshot to share a folder on a new URL, or update_snapshot to republish an existing one so it stays reachable offline.
  • Control access protection — Password-protect a Public URL with set_password, check its current protection via get_access_status, or remove it with clear_access.
  • Monitor capture status — Check whether traffic capture is active and how much is buffered with get_status, and turn it on via enable_capture when needed.

Документация

MCP-сервер


Запустите сервер Model Context Protocol от LocalCan и подключите его к вашему MCP-хосту, с полным справочником инструментов и переключателей.

localcan mcp запускает сервер Model Context Protocol через stdio. MCP-хост (Claude Code, Codex, Cursor, Claude Desktop и другие) запускает его и вызывает инструменты LocalCan для чтения перехваченного трафика, управления публичными URL (туннелями) и публикации снимков. LocalCan должен быть запущен, чтобы инструменты возвращали данные, поэтому сначала откройте десктопное приложение или запустите localcan start -d.

Инструменты

Сервер предоставляет двадцать инструментов. Чтение работает из коробки. Одиннадцать инструментов, которые изменяют данные, требуют права на запись, которые по умолчанию отключены (см. переключатели ниже). Создание или добавление публичного URL требует активной лицензии. Публикация снимка и защита URL паролем требуют подписки, поэтому бессрочная лицензия отклоняется, даже если она всё ещё может открывать публичные URL. Без лицензии ограниченные инструменты возвращают понятное сообщение об активации, при этом приостановка, возобновление и удаление существующих URL продолжают работать.

Трафик:

ИнструментЧто делаетПараметры
get_statusСообщает, включён ли захват и сколько трафика буферизовано.нет
enable_captureВключает захват. Захват по умолчанию выключен и сбрасывается при перезапуске демона.нет
list_trafficПеречисляет последние обмены, сначала новые.last (по умолчанию 20), подстрока host, project id, method, status (точный код или класс, например 5xx)
get_exchangeВозвращает один обмен по id.id обязательно (полный id или любой уникальный префикс), format один из markdown, curl, http, har, json (по умолчанию markdown), include_response (по умолчанию true)

Обмен — это запрос, который LocalCan переслал вашему бэкенду, а не побайтовая копия исходного запроса клиента. См. раздел «Трафик» для модели данных.

Публичные URL:

ИнструментЧто делаетПараметры
list_servicesПеречисляет сервисы, которые обслуживает LocalCan, каждый с дескриптором /, его локальной целью и количеством конечных точек.нет
list_public_urlsПеречисляет ваши публичные URL, включая приостановленные, каждый с его состоянием (active, paused, error, starting, inactive) и тем, что он обслуживает (live, snapshot, none). Каждая строка также содержит доступ: none, password, link или имя командной политики. Припаркованный URL, обслуживающий снимок, показывает состояние paused, но serving snapshot, поэтому отвечайте на вопрос «ссылка работает?» исходя из serving, а не из состояния.нет
get_public_url_statusСообщает состояние одного публичного URL, что он обслуживает (live, snapshot, none) и его защиту доступа, та же терминология, что и в списке.url обязательно
create_public_urlСоздаёт публичный URL для локального порта в новом проекте и возвращает назначенный адрес, например my-app-12.localcan.dev. Занимает несколько секунд. Если туннель отклонён (например, из-за лимита публичных URL вашего тарифа) или истёк тайм-аут, попытка откатывается, и ничего не остаётся. Чтобы ссылка оставалась доступной после отключения вашей машины, добавьте снимок с помощью add_snapshot.port обязательно, name необязательно (влияет на адрес), protocol http или tcp (по умолчанию http)
add_public_urlДобавляет публичный URL к уже настроенному сервису. Протокол следует цели сервиса, поэтому цель tcp:// получает TCP-туннель. Тот же откат при сбое, что и у create.service handle обязательно
pause_public_urlПереводит публичный URL в офлайн, сохраняя его адрес, чтобы его можно было возобновить позже. Сгенерированный адрес *.localcan.dev остаётся зарезервированным на 7 дней, пока он приостановлен, пользовательские домены никогда не истекают.url обязательно
resume_public_urlВозвращает приостановленный публичный URL в онлайн по тому же адресу.url обязательно
remove_public_urlНавсегда удаляет публичный URL. Сгенерированный адрес освобождается, пользовательский домен остаётся вашим и может быть добавлен снова. Удаление последней конечной точки сервиса также удаляет опустевший сервис и проект. Чтобы сохранить адрес, но прекратить обслуживание снимка, используйте remove_snapshot. Помечено как разрушительное действие, поэтому хосты обычно запрашивают подтверждение.url обязательно

Снимки (см. Снимки):

ИнструментЧто делаетПараметры
publish_snapshotПубликует папку как снимок на новом публичном URL, чтобы она оставалась доступной после отключения вашей машины. По возможности указывайте на собранный статический вывод или на корень проекта, чтобы LocalCan собрал его (зависимости должны быть уже установлены). Возвращает новый адрес. Всегда создаёт новый URL, поэтому для обновления существующего предпросмотра используйте update_snapshot.path обязательно (абсолютный), name необязательно (влияет на адрес)
add_snapshotДобавляет снимок к уже имеющемуся у вас публичному URL, чтобы существующая ссылка продолжала обслуживаться в офлайне. Указывает на update_snapshot, если у URL уже есть снимок.url и path обязательно
update_snapshotПерепубликовывает снимок на публичном URL. Опустите path, чтобы пересобрать из того же источника, или передайте его, чтобы перенаправить на другую папку. Указывает на add_snapshot, если у URL нет снимка.url обязательно, path необязательно
remove_snapshotУдаляет снимок с публичного URL. URL остаётся зарезервированным и продолжает обслуживать live, пока ваш туннель активен. Помечено как разрушительное действие.url обязательно
get_snapshot_statusСообщает снимок публичного URL: его исходную папку, когда он был опубликован, изменился ли источник с тех пор (stale) и обслуживает ли URL live или снимок в данный момент.url обязательно

Контроль доступа (см. Контроль доступа):

ИнструментЧто делаетПараметры
set_passwordЗащищает Public URL паролем, чтобы открыть его могли только те, у кого есть пароль. Применяется на серверах LocalCan, поэтому также действует для Snapshot по этому URL. Генерирует надёжный пароль, если вы его не передали, и возвращает его, чтобы вы могли им поделиться. Требуется подписка.url обязателен, password необязателен (опустите для генерации)
clear_accessСнимает парольную защиту, снова делая URL публичным. Не удаляет сам URL и его Snapshot. Помечен как разрушительный, поэтому хосты обычно запрашивают подтверждение.url обязателен
get_access_statusСообщает уровень защиты Public URL и возвращает текущий пароль, если URL защищён паролем. Пароль никогда не возвращается в list_public_urls, только здесь.url обязателен

Подключение агента

Способ подключения зависит от того, как запускается агент. Терминальные агенты (Claude Code, Codex) наследуют ваш PATH из оболочки, поэтому достаточно команды localcan. GUI-приложения (Cursor, Claude Desktop, VS Code и другие) не загружают ваш PATH из оболочки, поэтому им нужен абсолютный путь к бинарному файлу, например /Users/you/.localcan/bin/localcan. В настройках десктопного приложения можно скопировать готовую конфигурацию с уже заполненным правильным путём — это также надёжный вариант в Windows.

Claude Code

Shell

Copy

claude mcp add --scope user localcan -- localcan mcp

Флаг --scope user регистрирует сервер для всех проектов. Уберите его, чтобы зарегистрировать только в текущем проекте.

Codex

Shell

Copy

codex mcp add localcan -- localcan mcp

Это записывает сервер в ~/.codex/config.toml. Для десктопного приложения Codex или расширения IDE передайте абсолютный путь вместо localcan.

Cursor, Claude Desktop и Windsurf

Они используют один и тот же формат mcpServers:

JSON

Copy

{
  "mcpServers": {
    "localcan": {
      "command": "/Users/you/.localcan/bin/localcan",
      "args": ["mcp"]
    }
  }
}

Добавьте его в нужный файл, затем перезагрузите:

  • Cursor: ~/.cursor/mcp.json, затем включите сервер в настройках.
  • Claude Desktop: claude_desktop_config.json (Settings, Developer, Edit Config), затем закройте и запустите снова.
  • Windsurf: ~/.codeium/windsurf/mcp_config.json, затем обновите панель MCP.

VS Code

VS Code (режим Copilot agent) использует ключ servers с явным типом. Добавьте это в .vscode/mcp.json в вашем рабочем пространстве:

JSON

Copy

{
  "servers": {
    "localcan": {
      "type": "stdio",
      "command": "/Users/you/.localcan/bin/localcan",
      "args": ["mcp"]
    }
  }
}

Вы также можете запустить code --add-mcp с тем же объектом сервера.

Zed

Zed использует context_servers в своём файле settings.json:

JSON

Copy

{
  "context_servers": {
    "localcan": {
      "source": "custom",
      "command": "/Users/you/.localcan/bin/localcan",
      "args": ["mcp"]
    }
  }
}

Вы также можете добавить его из настроек панели агента.

Доступ агента, редактирование и запись

Все три параметра управляются в десктопном приложении в разделе Settings (секция "AI Agents (MCP)") или из терминала: localcan mcp enable / disable для доступа агента, localcan mcp redact <on|off> для редактирования, localcan mcp access <read_only|read_write> для записи и localcan mcp status для просмотра текущего состояния.

  • Доступ агента включён по умолчанию. Отключите его, чтобы полностью запретить агентам использовать LocalCan. Сервер по-прежнему запускается, но каждый инструмент возвращает понятное сообщение «доступ отключён», пока вы снова его не включите.
  • Редактирование включено по умолчанию для агентов. Чувствительные заголовки (Authorization, cookies, API-ключи) удаляются из ответов инструментов. URL и тела запросов не редактируются. Отключите эту опцию, чтобы ваш агент получал необработанные значения.
  • Запись по умолчанию отключена. Чтение работает и без неё, но инструменты записи возвращают понятное сообщение о режиме «только чтение», пока вы не включите запись в приложении («Allow agents to create and change Public URLs») или с помощью localcan mcp access read_write. Включение доступа агента не даёт права записи. Это отдельные переключатели. Каждый вызов записи записывается в диагностический вывод сервера, который ваш хост захватывает, так что у вас остаётся запись о том, что изменил агент. Пароль, переданный в set_password, скрывается в этом журнале.

Когда инструмент отказывает

  • Каждый инструмент выдаёт ошибку о соединении с демоном: LocalCan не запущен. Откройте десктопное приложение или выполните localcan start -d.
  • list_traffic ничего не возвращает: захват выключен (по умолчанию он выключен и сбрасывается при перезапуске демона). Выполните localcan traffic enable или позвольте агенту вызвать enable_capture.
  • «MCP access is disabled»: доступ агента отключён. Выполните localcan mcp enable или переключите настройку в Settings.
  • «MCP is read-only»: инструмент изменяет данные, а запись отключена. Выполните localcan mcp access read_write или включите переключатель в Settings.
  • «public URLs require a license»: создание и добавление Public URL требует активную лицензию. Активируйте её в приложении или с помощью localcan license activate <key>.
  • «need a subscription plan»: Snapshots и Access control доступны только по подписке. Постоянная лицензия позволяет открывать Public URL, но не может публиковать Snapshot или устанавливать пароль. Оформите подписку в вашем кабинете↗, затем повторите попытку.
  • «already has a snapshot» или «has no snapshot yet»: используйте инструмент, указанный в сообщении. add_snapshot прикрепляет Snapshot к URL, у которого его нет, update_snapshot обновляет уже существующий.
  • «Snapshot limit reached»: ваш план ограничивает количество Public URL, которые могут одновременно обслуживать Snapshot. В сообщении перечислены URL, уже использующие слот, которые можно обновить с помощью update_snapshot вместо публикации нового.
  • Хост показывает сервер как неработающий или без инструментов: GUI-приложение не может найти localcan в PATH. Используйте абсолютный путь, проще всего через копирование конфигурации в Settings.

© 2026 LocalCan™. Все права защищены.