WebMCP: MCP поверх HTTP без локальной установки
Что такое WebMCP (MCP over HTTP/SSE), зачем удалённый MCP без установки, минимальный пример, ошибки и как проверить.
Обновлено:
Что это
WebMCP — реализация Model Context Protocol поверх стандартных HTTP/SSE-запросов.
В отличие от локального MCP (stdio-транспорт), WebMCP позволяет Claude и другим
MCP-клиентам подключаться к удалённому серверу по URL — без установки на машину
пользователя. Endpoint обычно публикуется по /mcp или /.well-known/mcp.
Зачем это AI-агентам
Локальный MCP нужно ставить на каждой машине. WebMCP отдаёт MCP-функциональность как SaaS: пользователь добавляет URL в настройки клиента и сразу получает инструменты. Плюсы: единая точка обновления (новые tools прилетают всем сразу), стандартный OAuth 2.0 discovery для авторизации, масштабируемость на всех клиентов.
Минимальный рабочий пример
MCP TypeScript SDK с HTTP/SSE-транспортом:
import { Server } from '@modelcontextprotocol/sdk/server/index.js';
import { SSEServerTransport } from '@modelcontextprotocol/sdk/server/sse.js';
const server = new Server({ name: 'my-mcp', version: '1.0.0' },
{ capabilities: { tools: {} } });
// HTTP endpoint (например, /mcp)
const transport = new SSEServerTransport('/mcp', res);
await server.connect(transport);
Для авторизованного WebMCP добавьте OAuth discovery
(/.well-known/oauth-protected-resource) — см.
гайд по OAuth Protected Resource.
Правильно vs неправильно
| Правильно | Неправильно |
|---|---|
Удалённый endpoint по HTTPS (/mcp) | Только локальный stdio — недоступен по сети |
| Анонсирован через MCP Server Card | Endpoint есть, но не обнаружить |
| OAuth discovery для защищённого сервера | Защита есть, но агент не знает, где логиниться |
| Корректный SSE/HTTP-транспорт | Нестандартный транспорт — клиенты не подключатся |
Типичные ошибки
- Нет MCP Server Card — endpoint работает, но агент его не находит.
- Защищённый сервер без OAuth discovery — авторизацию не пройти автономно.
- CORS не настроен — браузерные MCP-клиенты не подключаются.
- Только stdio — не WebMCP по определению.
Как проверить
⚠️ Проверка webmcp в сканере сейчас в статусе coming soon: полная
верификация требует headless-браузера (проверка navigator.modelContext),
запланирована на v2. Сейчас чек информационный (вес 0, на балл не влияет).
Пока опирайтесь на смежные — MCP Server Card и
OAuth Protected Resource, — они уже проверяются.