WebMCPCAUTION
Early WebMCP proposal / implementation - since evolved and worked on by much more capable folks that develop the web: https://github.com/webmachinelearning/webmcp
Overview
From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.
Added For Clarification: February 12th, 2026
You likely want the official W3C repo + spec: https://github.com/webmachinelearning/webmcp
This was an early WebMCP proposal / implementation. I was just a guy with a dream.
The idea of WebMCP has since evolved and is being worked on by much more capable folks that develop the web.
This implementation is not compliant with the W3C spec.
All this being said, please do feel free to try it out, as it demonstrates the value of WebMCP.
A proposal and code for websites to support client side LLMs
[](https://www.npmjs.com/package/@jason.today/webmcp) [](./LICENSE)
WebMCP allows websites to share tools, resources, prompts, etc. to LLMs. In other words, WebMCP allows a website to be an MCP server. No sharing API Keys. Use any model you want.
Here's a simple website I built that is WebMCP-enabled
It comes in the form of a widget that a website owner can put on their site and expose tools to give client-side LLMs what they need to provide a great UX for the user or agent.
The look, feel, how it's used, and security are all absolutely open for contribution / constructive criticism. MCP Clients directly building WebMCP functionality seems like an ideal outcome.
An end-user can connect to any number of websites at a time - and tools are "scoped" (by name) based on the domain to simplify organization.
Super Quick Demo (20 seconds, Sound on 🔊)
https://github.com/user-attachments/assets/61229470-1242-401e-a7d9-c0d762d7b519
Getting started (using your LLM with websites using WebMCP)
Installation
Just specify your MCP client (claude, cursor, cline, windsurf, or a path to json)
npx -y @jason.today/webmcp@latest --config claude
_If you're interested in setting it up manually, use the command `npx -y @jason.to
8f8b3d627823OBSERVED · 2026-09-27Connect
Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control. Replace the environment placeholders with a token scoped to the least it needs.
claude mcp add webmcp --env WEBMCP_SERVER_TOKEN=${WEBMCP_SERVER_TOKEN} -- npx -y @jason.today/[email protected]{
"mcpServers": {
"webmcp": {
"command": "npx",
"args": [
"-y",
"@jason.today/[email protected]"
],
"env": {
"WEBMCP_SERVER_TOKEN": "${WEBMCP_SERVER_TOKEN}"
}
}
}
}Exposed tools (2)
2 read · 0 write · 0 destructive.
| Tool | Risk | Description |
|---|---|---|
_webmcp_define-mcp-tool | read | Used to define an |
_webmcp_get-token | read | Retrieve a token to connect to a website for WebMCP. A user might say |
Trust audit
CAUTIONgrade B · trust 89/100 Install with care. The audit found things worth knowing before you trust its output.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | PASS |
| L1 | Static analysis of the code | WARN |
| L2 | Instruction surface (what it tells the agent) | PASS |
| L3 | Class-specific surface | PASS |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- none-observed
- Network
- declared (5 observation(s))
- Shell
- none-observed
- Dependencies
- not all pinned
- Secrets in source
- none-found
Findings (7)
console.log(`\nCONNECTION TOKEN (paste this in your web client):`);
// console.log(`New server token: "${serverToken}". Saved to .env`);const jsonStr = atob(connectionInfo.token);
const jsonStr = atob(encodedToken);
const jsonStr = atob(encodedToken);
@modelcontextprotocol/sdk, child_process, crypto, dotenv, env-paths, http, os, path
WebMCP allows websites to share tools, resources, prompts, etc. to LLMs. In other words, WebMCP allows a website to be an MCP server. No sharing API Keys. Use any model you want.
Gates applied: no_behavioural_pass.
8f8b3d627823full audit observations/trust-audit/mcp-server/jasonjmcghee__webmcp.json · Report an issue / request a re-scanAudit history
Every audit this server has had. A grade with a past is a grade somebody is still checking.
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-09-27 | 8f8b3d627823 | CAUTION | B | 89 | first audit |
Questions
What is the WebMCP MCP server?
Early WebMCP proposal / implementation - since evolved and worked on by much more capable folks that develop the web: https://github.com/webmachinelearning/webmcp
What tools does WebMCP expose?
2 in total: 2 read-only, 0 that write, and 0 that can delete or overwrite. Every one is listed on this page with its risk.
Is WebMCP safe to connect to an agent?
With care. The audit graded it B (89/100) and found 7 things worth knowing before you trust this server, listed below with the exact line each was found on.
What credentials does WebMCP need?
It reads WEBMCP_SERVER_TOKEN from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.
How does WebMCP run?
It speaks stdio, so it runs as a local process your client starts. It is published on npm as @jason.today/webmcp at 0.1.13.
How current is this page?
The grade is for one exact copy of the source (8f8b3d627823), read on 2026-09-27. The repository is watched and re-audited when it changes.