@kuramalab/mysupportdetails-mcp
An MCP server for QA and test automation that provides runtime switching between multiple browser profiles (Chromium, Firefox, WebKit) without restart, enabling cross-browser regression testing, multi-account testing, localization QA, and more.
README
@kuramalab-io/mysupportdetails-mcp
MCP server for QA and test automation ... an AI agent that drives real browsers (Chromium / Firefox / WebKit) and multiple persistent profiles, with runtime switching between profiles and browsers without restarting.
Built for QA teams that want to automate cross-browser tests, cross-account flows, visual regression, localization checks, and privacy/fingerprint audits. Works with Claude Code, Cursor, Cline, and any MCP-standard client.
Designed with MySupportDetails.com as a natural showcase to verify what the browser/profile sees in every combination.
QA / Testing use cases (primary)
- Cross-browser regression testing: same flow in Chromium, Firefox, and WebKit ... automatic DOM/screenshot comparison
- Multi-account testing:
free-userprofile,premium-userprofile,adminprofile ... the agent verifies that each role sees what it should - Localization QA: one profile per language/country (cookie
msd_lang, timezone, geo), the agent checks translated titles, labels, and prices - Onboarding and first-time flows: clean profile on every run ... reliable "what a new user sees" repro
- Privacy/fingerprint audit: profile with a privacy extension vs a clean profile ... the agent measures the difference
- Cookie banner / consent flow: pre-consent profile vs post-consent profile ... verify trackers do not fire before opt-in
- Manual A/B testing: profiles with different feature flags ... the agent compares two UX variants in a single prompt
Adjacent use cases
- Security research (headers, CSP, response leakage)
- RPA (recurring form filling, order status checks)
- Ethical content scraping against your own domain
Built by KuramaLab. MIT license. Cross-platform: macOS, Linux, Windows.
Source: github.com/KuramaLab/mysupportdetails-mcp ... npm: @kuramalab-io/mysupportdetails-mcp.
Default behavior: browser is VISIBLE
mysupportdetails-mcp always opens the browser in headed mode (visible window). This is not an option to enable, it is the default and it stays that way.
Reason: when an AI agent browses on your behalf, you need to see in real time what it is doing. Zero silent execution. If something goes wrong (login on the wrong site, unexpected click, malicious popup) you notice immediately and can kill it.
If you need headless (CI, batch, headless servers) you must opt in explicitly in one of the following ways:
- Global env var:
MSD_HEADLESS=1before the command (applies to all calls of the same server). - Per-call parameter:
browser_open({..., headed: false})in a single tool call.
Precedence: per-call parameter overrides env var. If neither is set the browser is headed. Always.
This choice is documented in both SECURITY.md (headed is also a security feature) and ARCHITECTURE.md (it is not build-time configurable).
Compatible MCP clients
mysupportdetails-mcp implements the standard Model Context Protocol with stdio JSON-RPC transport. It works with any MCP-compatible client with no changes:
| Client | Config file | Notes |
|---|---|---|
| Claude Code (CLI) | auto via claude mcp add |
Official command below |
| Claude Desktop | claude_desktop_config.json |
Same mcpServers schema |
| Cursor | ~/.cursor/mcp_settings.json |
|
| Cline (VSCode) | cline_mcp_settings.json |
|
| Continue.dev | ~/.continue/mcp.json |
|
| Zed editor | ~/.config/zed/settings.json |
MCP support 2026+ |
| Cody (Sourcegraph) | Cody MCP settings | |
| Hermes / OpenClaw / LLMs with MCP wrapper | vendor-specific | As long as they speak MCP stdio |
| n8n / Zapier with MCP connector | node subprocess | Runs mysupportdetails-mcp as a CLI |
No vendor lock-in: zero cloud API keys, zero binding to a specific LLM model. If the client speaks MCP, it works.
Why it exists
The official @playwright/mcp accepts browser and profile as static flags at server startup. If you want to switch browser or profile on the fly you must kill the server and restart it. mysupportdetails-mcp solves this:
- Runtime switching: change browser or profile between tool calls, zero restart
- Named profiles with metadata (name, last used, size, target browser)
- Side-by-side comparison across profiles in the same prompt
- CRUD tools for profiles callable by the agent
Installation
With Claude Code:
claude mcp add -s user playwright -- npx -y @kuramalab-io/mysupportdetails-mcp@latest
With Cursor / Cline: add to your mcp_settings.json:
{
"mcpServers": {
"playwright": {
"command": "npx",
"args": ["-y", "@kuramalab-io/mysupportdetails-mcp@latest"]
}
}
}
The first run downloads the Playwright browsers (~300 MB, one time only).
30-second quickstart
In your Claude Code / Cursor session:
Open Chromium with profile "test-user-1", go to
https://www.mysupportdetails.com/, wait 3 seconds, and
return JSON with browser, OS, IP, ISP, and screen resolution.
Then do the same with Firefox using profile "test-user-2"
and compare the two responses.
The agent calls, in order:
browser_open({browser: "chromium", profile: "test-user-1"})browser_navigate({url: "https://www.mysupportdetails.com/"})browser_snapshot()browser_close()browser_open({browser: "firefox", profile: "test-user-2"})- (repeats)
And returns the compared analysis.
System requirements
| Requirement | Version |
|---|---|
| Node.js | 18.x, 20.x, 22.x |
| Operating system | macOS 11+ / Linux (glibc 2.31+) / Windows 10+ |
| RAM | 2 GB free (Playwright + browser) |
| Disk | 500 MB (Playwright browsers + profiles) |
| Network | required on first install (browser download) |
Playwright installs its own versions of Chromium/Firefox/WebKit into the Node cache (~/.cache/ms-playwright). It does not touch browsers installed system-wide.
Profile paths per OS
Profiles live in ~/.msd/profiles/{browser}/{profile-name}/:
- macOS:
/Users/youruser/.mysupportdetails-mcp/profiles/chromium/test-user-1/ - Linux:
/home/youruser/.mysupportdetails-mcp/profiles/firefox/personal/ - Windows:
C:\Users\youruser\.msd\profiles\webkit\work\
The path is resolved via Node's os.homedir() ... works identically everywhere.
A ~/.msd/profiles.json file maintains the registry with metadata (name, browser, created, last_used, size_mb, notes).
Profile security
Profiles contain cookies, localStorage, IndexedDB, and cache ... including active login tokens. They are stored unencrypted on disk (same behavior as the system Chrome profile).
Do not run mysupportdetails-mcp on shared machines without full-disk encryption (FileVault on macOS, BitLocker on Windows, LUKS on Linux). See SECURITY.md for details.
Exposed tools (v0.1.0)
See TOOLS.md for the full schema.
browser_open... open browser + profilebrowser_close... close active contextbrowser_navigate... GET URLbrowser_snapshot... DOM accessibility tree (agent-friendly)browser_click... click on element refbrowser_type... type textbrowser_evaluate... run JS in the pagebrowser_screenshot... save PNGprofile_list... list profilesprofile_create... new empty profileprofile_delete... remove profileprofile_current... info on the active profile
Examples
See the examples/ folder:
multi-account-test.md... cross-account test (2 different logins, same site)cross-browser-audit.md... open the same site in Chromium/Firefox/WebKit, compare renderingfingerprint-diff.md... open mysupportdetails.com with profiles with/without a privacy extension, compare fingerprints
Comparison with @playwright/mcp
| Feature | @playwright/mcp official | @kuramalab-io/mysupportdetails-mcp |
|---|---|---|
| Chromium / Firefox / WebKit | yes, --browser flag (static) |
yes, runtime switching |
| Persistent profile | yes, --user-data-dir flag (static) |
yes, runtime switching |
| Multiple named profiles | no (one per server) | yes, N with metadata |
| Profile CRUD from the agent | no | yes, profile_* tools |
| Cross-profile in one prompt | no | yes, first-class |
| Encryption at-rest | no | v2 roadmap (opt-in) |
| Cross-platform | yes | yes |
Roadmap
See ROADMAP.md.
- v0.1.0 MVP: multi-browser + one default profile per browser
- v0.2.0 multiple named profiles + CRUD
- v0.3.0 runtime switching without restarting the context
- v0.4.0 examples + full docs
- v1.0.0 public npm publish + Product Hunt / HN launch
Contributing
Issues and PRs welcome. See CONTRIBUTING.md.
License
MIT (c) 2026 KuramaLab
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。