Atlas / MCP servers / yranjan06 / WEBGhosting

WEBGhostingBLOCK

mcp/yranjan06/webghosting

Intelligent stealth browser MCP server for AI agents with 30 tools, 22 anti fingerprint scripts, and LLM powered extraction. Works seamlessly with Cursor, Claude, VS Code, and any OpenAI compatible LLM.

Verdict
BLOCK
Grade
D
Trust score
66 /100
Exposed tools
3 3r · 0w · 0d
Transport
sse · stdio
License
MIT
Stars
32
01

Overview

From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.

Demo

watch the full demo on YouTube.

What is WEBGhosting

The concept behind WEBGhosting is to tackle the one thing that keeps AI agents trapped in their digital boxes which is the lack of a genuine window to the world. I started with a simple question about whether an agent could navigate a complete browser just like we do, and I wanted to turn that into a reality. It is one thing to have a script that scrapes data, but it is an entirely different beast to build a system that can handle DOM perception and bypass bot detection measures while maintaining the persona of a real human. By focusing on the Model Context Protocol, I created a bridge that lets tools like Claude Code or Cursor step out of the development environment and into the live web, which is a massive leap for autonomous agents.

The way I layered the architecture was very intentional, especially with the Go-based MCP server wrapping Playwright. Building a stealth engine with twenty-two different anti-fingerprint scripts is a level of detail that most people overlook, but it is exactly what makes the difference between a bot that gets blocked immediately and an agent that actually functions. The progression from rigid cinematic demos to a fluid voice-controlled interface highlights how much I learned about where the LLM is most effective. It was fascinating landing on that three-tier execution model because it solves the latency issues that usually kill the vibe of a voice assistant. By using regex for basic tasks and only calling the LLM for the complex stuff, I managed to make the interaction feel instantaneous.

What I built with the Sarvam Voice Agent feels like that Jarvis moment I had been waiting for in tech. It is not just about the code or the thirt

Read from source at commit b83348e8c4d2OBSERVED · 2026-10-08
02

Exposed tools (3)

3 read · 0 write · 0 destructive.

ToolRiskDescription
internal-nacl-pluginread
internal-pdf-viewerreadPortable Document Format
mhjfbmdgcfjbbpaeojofohoefgiehjairead
03

Trust audit

BLOCKgrade D · trust 66/100 Do not install this without reading the findings. The audit found something that could harm you or your machine.

LayerWhat it checksResult
L0Provenance & inventoryPASS
L1Static analysis of the codeFAIL
L2Instruction surface (what it tells the agent)WARN
L3Class-specific surfacePASS
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
declared (2 observation(s))
Network
declared (4 observation(s))
Shell
declared (3 observation(s))
Dependencies
pinned
Secrets in source
none-found

Findings (7)

HIGHCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
pkg/stealth/js/utils.js:457
const obj = eval(objName); // eslint-disable-line no-eval
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
HIGHCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
pkg/stealth/js/utils.js:527
return [key, eval(`() => ${value}`)()]; // eslint-disable-line no-eval
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
HIGHCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
pkg/stealth/js/utils.js:530
return [key, eval(value)]; // eslint-disable-line no-eval
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
MEDIUMObfuscation / stealth · review.concealment · CWE-506, CWE-94
<listing:description>
stealth browser
Why it matters. The package equips the agent with a stealth browser, a tool designed to hide web browsing activity, which could be used to conceal the agent's actions from the user.
Fix. rewrite it so the instruction says plainly what it does, and asks the user before it acts
LOWInsecure crypto · crypto.weak_hash · CWE-327, CWE-338
orchestrator/orchestrator.py:273
self.recipe_hash = hashlib.md5(recipe_path.encode()).hexdigest()[:10]
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
examples/wavy_voice_app.py:357
print("Launching visually appealing Wavy Voice UI on http://127.0.0.1:8000")
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
examples/wavy_voice_app.py:358
webbrowser.open("http://127.0.0.1:8000")

Gates applied: no_behavioural_pass.

Audited 2026-10-08 · audit v0.4.1 · source sha b83348e8c4d2full audit observations/trust-audit/mcp-server/yranjan06__webghosting.json · Report an issue / request a re-scan
04

Audit history

Every audit this server has had. A grade with a past is a grade somebody is still checking.

DateSourceVerdictGradeScoreChange
2026-10-08b83348e8c4d2BLOCKD66first audit
05

Questions

What is the WEBGhosting MCP server?

Intelligent stealth browser MCP server for AI agents with 30 tools, 22 anti fingerprint scripts, and LLM powered extraction. Works seamlessly with Cursor, Claude, VS Code, and any OpenAI compatible LLM.

What tools does WEBGhosting expose?

3 in total: 3 read-only, 0 that write, and 0 that can delete or overwrite. Every one is listed on this page with its risk.

Is WEBGhosting safe to connect to an agent?

No — not without reading the findings first. The audit graded it D (66/100) and found 3 critical or high issues in the source. Each one is listed on this page with the file and line it is on.

What credentials does WEBGhosting need?

It reads AI_API_KEY, PROXY_PASSWORD and SARVAM_API_KEY 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 WEBGhosting run?

It speaks sse and stdio, so it runs as a local process your client starts.

How current is this page?

The grade is for one exact copy of the source (b83348e8c4d2), read on 2026-10-08. The repository is watched and re-audited when it changes.

Advertisement