Skip to content

About

WebMCP tools that make a technical article interrogable, testable against a caller's situation, and refusable. Live: chudi.dev/blog/what-is-webmcp

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Executable Expertise

A technical article that an agent can interrogate, test against its own situation, and refuse to apply.

Live URL: https://chudi.dev/blog/what-is-webmcp Browser: Chrome 149-156 (WebMCP origin trial). document.modelContext is the surface. Login required: none.

The production deployment registers nine tools in-tab, including the five challenge tools. The approval-gated action and receipt verifier were deployed from production commit 029c305916e98aafebe45b70d908e8ddc8798bdf and driven through the native WebMCP surface on 2026-09-03 in Chromium 152.

The five challenge tools cover inspection, applicability, plan construction, approval-gated activation, and receipt verification. Activation creates a request, not an authorization. The agent receives APPROVAL_REQUIRED; approval remains available only in the visible article UI.

What this repository is

This is a whitelist extract of the challenge source from a private monorepo, not the whole site. It contains the functional source, its fixtures and checkers, the submission package, and the single article the expertise record models. It deliberately excludes the rest of the site's content corpus, all operational tooling, private engineering notes, and telemetry exports. The reasoning, including the file-level manifest and the secret scan, is in docs/webmcp-challenge/REPO-SAFETY-AUDIT.md.

Start here

File What it is
docs/webmcp-challenge/SUBMISSION.md The submission: thesis, the A/B/C demonstration, judging criteria.
docs/webmcp-challenge/README.md Full design record, provenance disclosure, and known limits.
content/expertise/what-is-webmcp.webmcp.json The structured expertise record: claims, applicability rules, workflow steps.
src/lib/expertise/applicability.ts The three-valued applicability engine. Dependency-free.
src/lib/webmcp-tools.ts Tool definitions and handlers.
src/lib/webmcp.ts In-tab registration on document.modelContext.

The load-bearing result

Two caller contexts with an identical runtime block produce materially different outcomes, so the divergence can only come from stated intent and safety posture.

Context Verdict Supported steps Blocked Stop conditions
A: read-only progressive enhancement APPLIES 7 0 7
B: consequential, cross-origin, no confirmation UI PARTIALLY_APPLIES 7 2 4
C: runtime facts absent UNKNOWN 0 0 0

Context C is the point: with decisive fields null, the tool declines and names what it is missing, rather than defaulting to a helpful-sounding answer.

Evidence

The tools were driven against the deployed origin on a cold page load with no injection. The original investigation run is in docs/webmcp-challenge/assets/live-unaided-run-2026-08-30.json. The 2026-09-03 activation run, visible approval evidence, live verifier result, and downloaded receipt are in docs/webmcp-challenge/assets/live-approval-2026-09-03/run.json.

Note for anyone calling these tools: the native executeTool(tool, argsJsonString) resolves to the MCP envelope serialized as a string, so it takes two JSON.parse calls, not one.

Consequential action and receipt

activate_execution_plan recomputes the plan from the article record and bounded context. It stages a 10-minute request without changing the active contract. A trusted activation in the visible approval dialog creates or replaces one browser-local active execution contract. Rejecting, expiring, replaying, or synthetically dispatching approval through page JavaScript does not create a contract.

Approval produces a portable receipt containing the exact plan digest, persisted contract digest, canonical payload, and SHA-256 integrity digest. The read-only verify_execution_plan_activation tool checks both receipt integrity and current browser state. npm run receipt:verify -- receipt.json verifies the portable receipt without the app. This proves content integrity, not identity or server attestation.

Running the check

npm ci
npm run expertise:check

Expected output ends with OK 47/47 checks passed. It verifies the expertise record's integrity and asserts that every claim exposed by the tools is byte-identical to the record, so no runtime model can reword an author's claim. It runs standalone and is the check that matters here.

The competition release gate and judge evidence-readiness suite are documented in docs/webmcp-challenge/JUDGE-EVALUATION.md. Run npm test for the product and suite contract checks, npm run qualification:live for the live URL and public-repository probes, and npm run judge:gate for the strict final gate.

The vitest suite at src/lib/__tests__/webmcp-tools.test.ts is included as source, but it imports SvelteKit route modules and generated $types, so it only runs inside the full application. It is here to read, not to execute.

License

See LICENSE. content/posts/what-is-webmcp.md is included only so npm run expertise:check can verify its section anchors; it is copyrighted editorial work and its rights are reserved by that license. The rest of the article corpus is not included.

About

WebMCP tools that make a technical article interrogable, testable against a caller's situation, and refusable. Live: chudi.dev/blog/what-is-webmcp

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages