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 withget_exchange. - Manage Public URLs — Create tunnels with
create_public_urloradd_public_url, check status viaget_public_url_status, and pause, resume, or remove them as needed. - Publish and refresh Snapshots — Use
publish_snapshotto share a folder on a new URL, orupdate_snapshotto republish an existing one so it stays reachable offline. - Control access protection — Password-protect a Public URL with
set_password, check its current protection viaget_access_status, or remove it withclear_access. - Monitor capture status — Check whether traffic capture is active and how much is buffered with
get_status, and turn it on viaenable_capturewhen 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™. Все права защищены.