API / Auth / MCP

WebMCP

MCP over HTTP: access to MCP server via standard web requests without local installation.

What is WebMCP?

WebMCP (MCP over HTTP) is an implementation of the Model Context Protocol over standard HTTP/SSE requests. Unlike local MCP (stdio transport), WebMCP lets Claude and other MCP clients connect to remote MCP servers by URL without installing anything on the user’s machine.

MCP Client → HTTPS → Your MCP Server

     Standard HTTP/SSE transport

The endpoint is typically published at /mcp or /.well-known/mcp.

Why do you need WebMCP?

Local MCP requires installing a server on every user’s machine. WebMCP lets you offer MCP functionality as a SaaS service — the user adds a URL to Claude Desktop or another MCP client and gets the tool without any installation.

Key advantages:

  • Single update point — the server is updated centrally; clients get new tools automatically.
  • OAuth authorization — WebMCP servers support standard OAuth 2.0 discovery via RFC 9728.
  • Scalability — the server is available to all clients simultaneously, rather than installed locally for each one.

How do you implement WebMCP?

Use the MCP TypeScript SDK with HTTP/SSE transport:

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

// Register 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);

For an authorized WebMCP server, add OAuth discovery (/.well-known/oauth-protected-resource) as required by the MCP specification.

How do we check WebMCP?

The WebMCP check in the current scanner version is coming soon. A full check requires a headless browser to verify navigator.modelContext — this is planned for scanner v2.

For now, the webmcp check does not affect the total score (weight = 0) and returns an informational status. Related checks that already work: oauth_protected_resource, mcp_server_card.

Sources and specifications