Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
git clone --depth 1 https://github.com/JoakimCarlsson/bastionWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/mcp/joakimcarlsson/bastion/playwright)<a href="https://agentmods.dev/mcp/joakimcarlsson/bastion/playwright"><img src="https://agentmods.dev/badge/mcp/joakimcarlsson/bastion/playwright/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/mcp/joakimcarlsson/bastion/playwright"><img src="https://agentmods.dev/badge/mcp/joakimcarlsson/bastion/playwright.svg" alt="Reviewed on agentmods" width="80" height="20"></a>Grade A, and why
playwright scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
This is a copy
72% identical to playwright-mcp — 7 lines differ, which has more behind it and is treated as the original. This page carries a canonical link to it rather than competing with it.
What it actually says
{
"playwright": {
"command": "npx",
"args": [
"-y",
"@playwright/mcp@latest"
]
}
}What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 1mo ago First seen · 9 lines scan A 4f77e1895895
playwright is an MCP server published in the GitHub repository JoakimCarlsson/bastion (2 stars, last pushed 5mo ago), licensed MIT. Its token cost is not measured: an MCP server costs its tool schemas, not its config file. A static security scan graded it A with 0 findings. It is 72% identical to playwright-mcp, differing in 7 lines, and is treated as a copy.
Other mcp servers, from other repositories
x-use
Browser-native AI agents for X (Twitter): multi-account, MCP-ready, no API keys required. Runs locally from the x-use-mcp Python package. Needs 3 environment variables to run.
wechat-devtools-mcp
A local service that lets an AI assistant control WeChat Developer Tools through the Model Context Protocol (MCP), a standard way for assistants to call external tools. It runs from the wechat-devtools-mcp Python package.
uisight
Your AI sees the screen but can't measure it — measured web UI findings, shared live sessions. Runs locally from the uisight npm package. Needs 3 environment variables to run.
chrome-mcp-server
MCP server "chrome-mcp-server", hosted remotely at 127.0.0.1, as configured in iloveitaly/llm-ide-rules.
ai-browser
MCP server "ai-browser" as configured in AI-XiaoDao/ai-browser-mcp. Runs CEFbro/AI-Fbowser-Mcp/mcp_bridge.js with node. Needs 3 environment variables to run.
browser
MCP server "browser" as configured in vibestackdev/vibe-stack. Runs locally from the @anthropic-ai/mcp-server-puppeteer npm package.