github TypeScript re-analysis due

nekuda-ai/webmcp-kit

github

Make your website agent-ready: a coding-agent plugin for Claude Code and Codex that adds WebMCP tools to your web app

maintainer
nekuda-ai
licence
MIT
first seen
2026-08-26
last seen
2026-09-17
releases · 30d
5
short id

Drift inferred · capture-to-capture

No drift recorded — single capability capture; advisories appear once its surface changes.

capabilities 0 tools
transport counts 0 tools · 0 res · 0 prompts permission surface via code analysis

No tools enumerated yet for this server.

skills & danger signals github-tarball
prompt-surface shipped agent-instruction files + hidden-content / dangerous-code findings — quoted from the analyzed source

analyzed commit 6f293d9 · analyzer v33 · 4d ago

skills & prompt files 5

danger signals3

code evidence vv0.7.0 · github-tarball
evidence-backed findings quoted directly from the published source artifact — not inferred

code files: 33

filesystem 26

  • fs nekuda-ai-webmcp-kit-6f293d9/plugin/cli/atomic-write.ts :2 import { chmod, mkdir, open, rename, rm } from "node:fs/promises";
  • fs nekuda-ai-webmcp-kit-6f293d9/plugin/cli/browser.ts :4 import { existsSync, readdirSync } from "node:fs";
  • fs nekuda-ai-webmcp-kit-6f293d9/plugin/cli/connect.ts :2 import { link, mkdir, open, readFile, realpath, rename, rm, stat } from "node:fs/promises";
  • fs nekuda-ai-webmcp-kit-6f293d9/plugin/cli/credentials.ts :1 import { readFile, rm } from "node:fs/promises";
  • fs nekuda-ai-webmcp-kit-6f293d9/plugin/cli/status.ts :1 import { readdir, readFile, realpath, stat } from "node:fs/promises";
  • fs nekuda-ai-webmcp-kit-6f293d9/plugin/com.openai/hooks/webmcp-feedback.ts :25 } from "node:fs";
  • fs nekuda-ai-webmcp-kit-6f293d9/plugin/skills/implement/interactive/ack-event.ts :14 } from "node:fs";
  • fs nekuda-ai-webmcp-kit-6f293d9/plugin/skills/implement/interactive/protocol.ts :10 } from "node:fs";
  • fs nekuda-ai-webmcp-kit-6f293d9/plugin/skills/implement/interactive/server.ts :20 } from "node:fs";
  • fs (weak) nekuda-ai-webmcp-kit-6f293d9/plugin/tests/agent-plugin-package.test.ts :8 } from "node:fs";
  • fs (weak) nekuda-ai-webmcp-kit-6f293d9/plugin/tests/chat-markdown.test.ts :9 import { readFileSync } from "node:fs";
  • fs (weak) nekuda-ai-webmcp-kit-6f293d9/plugin/tests/cli/atomic-write.test.ts :2 import { chmod, mkdtemp, open, readdir, readFile, rm, stat, writeFile } from "node:fs/promises";
show 14 more
  • fs (weak) nekuda-ai-webmcp-kit-6f293d9/plugin/tests/cli/browser-devtools.test.ts :2 import { existsSync } from "node:fs";
  • fs (weak) nekuda-ai-webmcp-kit-6f293d9/plugin/tests/cli/connect-status.test.ts :13 } from "node:fs/promises";
  • fs (weak) nekuda-ai-webmcp-kit-6f293d9/plugin/tests/cli/login.test.ts :3 import { mkdir, mkdtemp, readFile, rm, stat } from "node:fs/promises";
  • fs (weak) nekuda-ai-webmcp-kit-6f293d9/plugin/tests/codex-hook-transport.test.ts :14 } from "node:fs";
  • fs (weak) nekuda-ai-webmcp-kit-6f293d9/plugin/tests/explorer-csp.test.ts :10 import { readFileSync } from "node:fs";
  • fs (weak) nekuda-ai-webmcp-kit-6f293d9/plugin/tests/explorer-delivery.test.ts :7 import { readFileSync } from "node:fs";
  • fs (weak) nekuda-ai-webmcp-kit-6f293d9/plugin/tests/explorer-scope.test.ts :12 import { readFileSync } from "node:fs";
  • fs (weak) nekuda-ai-webmcp-kit-6f293d9/plugin/tests/interactive-loop/fixtures/codex-acceptance-site/scripts/smoke.mjs :2 import { cp, mkdir, mkdtemp, readFile, rm, writeFile } from "node:fs/promises";
  • fs (weak) nekuda-ai-webmcp-kit-6f293d9/plugin/tests/interactive-loop/fixtures/codex-acceptance-site/server.mjs :2 import { mkdir, readFile, rename, writeFile } from "node:fs/promises";
  • fs (weak) nekuda-ai-webmcp-kit-6f293d9/plugin/tests/interactive-loop/robot-user.ts :13 import { mkdirSync, readFileSync, realpathSync, writeFileSync } from "node:fs";
  • fs (weak) nekuda-ai-webmcp-kit-6f293d9/plugin/tests/interactive-server.test.ts :15 } from "node:fs";
  • fs (weak) nekuda-ai-webmcp-kit-6f293d9/plugin/tests/openai-package.test.ts :2 import { mkdtemp, rm } from "node:fs/promises";
  • fs (weak) nekuda-ai-webmcp-kit-6f293d9/plugin/tests/star-repo.test.ts :8 import { mkdtempSync, readFileSync, writeFileSync, existsSync } from "node:fs";
  • fs (weak) nekuda-ai-webmcp-kit-6f293d9/plugin/tests/verify-card.test.ts :10 import { readFileSync } from "node:fs";

shell / exec 12

  • shell nekuda-ai-webmcp-kit-6f293d9/plugin/cli/browser.ts :33 const child = Bun.spawn([command, ...args], {
  • shell nekuda-ai-webmcp-kit-6f293d9/plugin/cli/connect.ts :154 const result = Bun.spawnSync(["git", ...args], {
  • shell nekuda-ai-webmcp-kit-6f293d9/plugin/cli/credentials.ts :89 const process = Bun.spawn(command, {
  • shell nekuda-ai-webmcp-kit-6f293d9/plugin/cli/login.ts :241 const child = Bun.spawn(command, { stdin: "ignore", stdout: "ignore", stderr: "ignore" });
  • shell (weak) nekuda-ai-webmcp-kit-6f293d9/plugin/tests/agent-plugin-package.test.ts :80 const process = Bun.spawn(["/bin/sh", "-c", command], {
  • shell (weak) nekuda-ai-webmcp-kit-6f293d9/plugin/tests/cli/browser-devtools.test.ts :35 const result = Bun.spawnSync(args, {
  • shell (weak) nekuda-ai-webmcp-kit-6f293d9/plugin/tests/cli/connect-status.test.ts :631 const child = Bun.spawn(["true"], { stdout: "ignore", stderr: "ignore" });
  • shell (weak) nekuda-ai-webmcp-kit-6f293d9/plugin/tests/codex-hook-transport.test.ts :259 const proc = Bun.spawn(["bun", hook, mode], {
  • shell (weak) nekuda-ai-webmcp-kit-6f293d9/plugin/tests/interactive-loop/fixtures/codex-acceptance-site/scripts/smoke.mjs :1 import { spawn } from "node:child_process";
  • shell (weak) nekuda-ai-webmcp-kit-6f293d9/plugin/tests/interactive-server.test.ts :88 const proc = Bun.spawn({
  • shell (weak) nekuda-ai-webmcp-kit-6f293d9/plugin/tests/openai-package.test.ts :14 const child = Bun.spawn(args, { cwd: repo, stdin: "ignore", stdout: "pipe", stderr: "pipe" });
  • shell (weak) nekuda-ai-webmcp-kit-6f293d9/plugin/tests/star-repo.test.ts :36 const proc = Bun.spawnSync(["/bin/sh", SCRIPT, ...args], {

network 11

  • net nekuda-ai-webmcp-kit-6f293d9/plugin/cli/login.ts :265 fetch(request) {
  • net nekuda-ai-webmcp-kit-6f293d9/plugin/com.openai/hooks/webmcp-feedback.ts :476 const response = await fetch(`http://127.0.0.1:${runtime.port}/healthz?${query}`, {
  • net nekuda-ai-webmcp-kit-6f293d9/plugin/skills/implement/interactive/server.ts :146 const response = await fetch(scopedUrl(run, "/healthz"), {
  • net (weak) nekuda-ai-webmcp-kit-6f293d9/plugin/tests/cli/connect-status.test.ts :94 async fetch(request) {
  • net (weak) nekuda-ai-webmcp-kit-6f293d9/plugin/tests/cli/login.test.ts :41 async fetch(request) {
  • net (weak) nekuda-ai-webmcp-kit-6f293d9/plugin/tests/codex-hook-transport.test.ts :62 fetch(request) {
  • net (weak) nekuda-ai-webmcp-kit-6f293d9/plugin/tests/interactive-loop/fixtures/codex-acceptance-site/public/app.js :24 const response = await fetch(path, options);
  • net (weak) nekuda-ai-webmcp-kit-6f293d9/plugin/tests/interactive-loop/fixtures/codex-acceptance-site/scripts/smoke.mjs :72 const response = await fetch(`${base}${path}`, options);
  • net (weak) nekuda-ai-webmcp-kit-6f293d9/plugin/tests/interactive-loop/fixtures/codex-acceptance-site/server.mjs :1 import { createServer } from "node:http";
  • net (weak) nekuda-ai-webmcp-kit-6f293d9/plugin/tests/interactive-loop/robot-user.ts :14 import { connect as tcpConnect } from "node:net";
  • net (weak) nekuda-ai-webmcp-kit-6f293d9/plugin/tests/interactive-server.test.ts :101 const response = await fetch(`http://127.0.0.1:${run.port}/healthz?${query(run)}`);