# webmcp

## Что такое WebMCP?

**WebMCP** (MCP over HTTP) — реализация Model Context Protocol поверх стандартных HTTP/SSE-запросов. В отличие от локального MCP (stdio-транспорт), WebMCP позволяет Claude и другим MCP-клиентам подключаться к удалённым MCP-серверам по URL без установки на машину пользователя.

```
MCP Client → HTTPS → Your MCP Server
              ↑
     Standard HTTP/SSE transport
```

Endpoint обычно публикуется по адресу `/mcp` или `/.well-known/mcp`.

## Зачем нужен WebMCP?

Локальный MCP требует установки сервера на машине каждого пользователя. WebMCP позволяет предоставить MCP-функциональность как SaaS — пользователь добавляет URL в настройки Claude Desktop или другого MCP-клиента и получает инструмент без установки.

Ключевые преимущества:

- **Единая точка обновления** — сервер обновляется централизованно, клиенты получают новые инструменты автоматически.
- **OAuth-авторизация** — WebMCP-серверы поддерживают стандартный OAuth 2.0 discovery через [RFC 9728](/glossary/oauth-protected-resource).
- **Масштабируемость** — сервер доступен одновременно всем клиентам, а не установлен локально у каждого.

## Как реализовать WebMCP?

Используйте MCP TypeScript SDK с HTTP/SSE-транспортом:

```typescript
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: {} },
});

// Регистрация инструментов
server.setRequestHandler(ListToolsRequestSchema, async () => ({
  tools: [{ name: 'scan', description: 'Scan URL for agent readiness', inputSchema: { ... } }],
}));

// HTTP endpoint
const transport = new SSEServerTransport('/mcp', res);
await server.connect(transport);
```

Для авторизованного WebMCP добавьте OAuth discovery (`/.well-known/oauth-protected-resource`) согласно требованиям MCP-спецификации.

## Как мы проверяем WebMCP?

Проверка WebMCP в текущей версии сканера находится в статусе **coming soon**. Полная проверка требует headless-браузера для верификации `navigator.modelContext` — это запланировано для v2 сканера.

Сейчас проверка `webmcp` не влияет на итоговый счёт (weight = 0) и возвращает информационный статус. Смежные проверки, которые уже работают: [`oauth_protected_resource`](/glossary/oauth-protected-resource), [`mcp_server_card`](/glossary/mcp-server-card).

[← Все термины глоссария](/glossary)
