Tester
Тестер
A scenario testing system for 1C:Enterprise with a set of agent skills that let an AI agent operate the application like a regular user
High risk
We rate an entry high when the tool writes to external systems, handles money, production databases or secrets, or runs arbitrary commands. The CLI installs it only with your consent.
Why this level
- Runner scripts perform real user actions in 1C, including data changes through the interface
- The agent gets access to the whole application's main menu and commands, not to an isolated sandbox
Install
In your terminal, with SkillFoxx CLI
npx skillfoxx add skills/testerDetects the agents on your machine, checks the risk and pins the version.
Other ways to install
Assembled automatically, review before installing.
Run in a terminal in the project folder
npx skills add grumagargler/tester --skill bsl-format choose-value runner-core search-in-list sort-in-list choose-value runner-core search-in-list sort-in-list -a claude-code -yThe skills tool installs the current version from the repository. Add the -g flag to use the skill in every project.
Without third-party tools, from commit 7803c0f
tmp=$(mktemp -d)
git clone --filter=blob:none --no-checkout https://github.com/grumagargler/tester.git "$tmp"
git -C "$tmp" sparse-checkout set --no-cone /.agents/skills/bsl-format/ /assistant/.agents/skills/choose-value/ /assistant/.agents/skills/runner-core/ /assistant/.agents/skills/search-in-list/ /assistant/.agents/skills/sort-in-list/ /assistant/.claude/skills/choose-value/ /assistant/.claude/skills/runner-core/ /assistant/.claude/skills/search-in-list/ /assistant/.claude/skills/sort-in-list/
git -C "$tmp" checkout 7803c0fd8d6a69dcdb0e7b68d5be1a4d6ce6fc04
mkdir -p .claude/skills
cp -R "$tmp/.agents/skills/bsl-format" .claude/skills/bsl-format
cp -R "$tmp/assistant/.agents/skills/choose-value" .claude/skills/choose-value
cp -R "$tmp/assistant/.agents/skills/runner-core" .claude/skills/runner-core
cp -R "$tmp/assistant/.agents/skills/search-in-list" .claude/skills/search-in-list
cp -R "$tmp/assistant/.agents/skills/sort-in-list" .claude/skills/sort-in-list
cp -R "$tmp/assistant/.claude/skills/choose-value" .claude/skills/choose-value
cp -R "$tmp/assistant/.claude/skills/runner-core" .claude/skills/runner-core
cp -R "$tmp/assistant/.claude/skills/search-in-list" .claude/skills/search-in-list
cp -R "$tmp/assistant/.claude/skills/sort-in-list" .claude/skills/sort-in-listCommands for macOS and Linux, on Windows run them in Git Bash.
Run in a terminal in the project folder
npx skills add grumagargler/tester --skill bsl-format choose-value runner-core search-in-list sort-in-list choose-value runner-core search-in-list sort-in-list -a cursor -yThe skills tool installs the current version from the repository. Add the -g flag to use the skill in every project.
Without third-party tools, from commit 7803c0f
tmp=$(mktemp -d)
git clone --filter=blob:none --no-checkout https://github.com/grumagargler/tester.git "$tmp"
git -C "$tmp" sparse-checkout set --no-cone /.agents/skills/bsl-format/ /assistant/.agents/skills/choose-value/ /assistant/.agents/skills/runner-core/ /assistant/.agents/skills/search-in-list/ /assistant/.agents/skills/sort-in-list/ /assistant/.claude/skills/choose-value/ /assistant/.claude/skills/runner-core/ /assistant/.claude/skills/search-in-list/ /assistant/.claude/skills/sort-in-list/
git -C "$tmp" checkout 7803c0fd8d6a69dcdb0e7b68d5be1a4d6ce6fc04
mkdir -p .agents/skills
cp -R "$tmp/.agents/skills/bsl-format" .agents/skills/bsl-format
cp -R "$tmp/assistant/.agents/skills/choose-value" .agents/skills/choose-value
cp -R "$tmp/assistant/.agents/skills/runner-core" .agents/skills/runner-core
cp -R "$tmp/assistant/.agents/skills/search-in-list" .agents/skills/search-in-list
cp -R "$tmp/assistant/.agents/skills/sort-in-list" .agents/skills/sort-in-list
cp -R "$tmp/assistant/.claude/skills/choose-value" .agents/skills/choose-value
cp -R "$tmp/assistant/.claude/skills/runner-core" .agents/skills/runner-core
cp -R "$tmp/assistant/.claude/skills/search-in-list" .agents/skills/search-in-list
cp -R "$tmp/assistant/.claude/skills/sort-in-list" .agents/skills/sort-in-listCommands for macOS and Linux, on Windows run them in Git Bash.
Run in a terminal in the project folder
npx skills add grumagargler/tester --skill bsl-format choose-value runner-core search-in-list sort-in-list choose-value runner-core search-in-list sort-in-list -a github-copilot -yThe skills tool installs the current version from the repository. Add the -g flag to use the skill in every project.
Without third-party tools, from commit 7803c0f
tmp=$(mktemp -d)
git clone --filter=blob:none --no-checkout https://github.com/grumagargler/tester.git "$tmp"
git -C "$tmp" sparse-checkout set --no-cone /.agents/skills/bsl-format/ /assistant/.agents/skills/choose-value/ /assistant/.agents/skills/runner-core/ /assistant/.agents/skills/search-in-list/ /assistant/.agents/skills/sort-in-list/ /assistant/.claude/skills/choose-value/ /assistant/.claude/skills/runner-core/ /assistant/.claude/skills/search-in-list/ /assistant/.claude/skills/sort-in-list/
git -C "$tmp" checkout 7803c0fd8d6a69dcdb0e7b68d5be1a4d6ce6fc04
mkdir -p .github/skills
cp -R "$tmp/.agents/skills/bsl-format" .github/skills/bsl-format
cp -R "$tmp/assistant/.agents/skills/choose-value" .github/skills/choose-value
cp -R "$tmp/assistant/.agents/skills/runner-core" .github/skills/runner-core
cp -R "$tmp/assistant/.agents/skills/search-in-list" .github/skills/search-in-list
cp -R "$tmp/assistant/.agents/skills/sort-in-list" .github/skills/sort-in-list
cp -R "$tmp/assistant/.claude/skills/choose-value" .github/skills/choose-value
cp -R "$tmp/assistant/.claude/skills/runner-core" .github/skills/runner-core
cp -R "$tmp/assistant/.claude/skills/search-in-list" .github/skills/search-in-list
cp -R "$tmp/assistant/.claude/skills/sort-in-list" .github/skills/sort-in-listCommands for macOS and Linux, on Windows run them in Git Bash.
Run in a terminal in the project folder
npx skills add grumagargler/tester --skill bsl-format choose-value runner-core search-in-list sort-in-list choose-value runner-core search-in-list sort-in-list -a codex -yThe skills tool installs the current version from the repository. Add the -g flag to use the skill in every project.
Without third-party tools, from commit 7803c0f
tmp=$(mktemp -d)
git clone --filter=blob:none --no-checkout https://github.com/grumagargler/tester.git "$tmp"
git -C "$tmp" sparse-checkout set --no-cone /.agents/skills/bsl-format/ /assistant/.agents/skills/choose-value/ /assistant/.agents/skills/runner-core/ /assistant/.agents/skills/search-in-list/ /assistant/.agents/skills/sort-in-list/ /assistant/.claude/skills/choose-value/ /assistant/.claude/skills/runner-core/ /assistant/.claude/skills/search-in-list/ /assistant/.claude/skills/sort-in-list/
git -C "$tmp" checkout 7803c0fd8d6a69dcdb0e7b68d5be1a4d6ce6fc04
mkdir -p .agents/skills
cp -R "$tmp/.agents/skills/bsl-format" .agents/skills/bsl-format
cp -R "$tmp/assistant/.agents/skills/choose-value" .agents/skills/choose-value
cp -R "$tmp/assistant/.agents/skills/runner-core" .agents/skills/runner-core
cp -R "$tmp/assistant/.agents/skills/search-in-list" .agents/skills/search-in-list
cp -R "$tmp/assistant/.agents/skills/sort-in-list" .agents/skills/sort-in-list
cp -R "$tmp/assistant/.claude/skills/choose-value" .agents/skills/choose-value
cp -R "$tmp/assistant/.claude/skills/runner-core" .agents/skills/runner-core
cp -R "$tmp/assistant/.claude/skills/search-in-list" .agents/skills/search-in-list
cp -R "$tmp/assistant/.claude/skills/sort-in-list" .agents/skills/sort-in-listCommands for macOS and Linux, on Windows run them in Git Bash.
Run in a terminal in the project folder
npx skills add grumagargler/tester --skill bsl-format choose-value runner-core search-in-list sort-in-list choose-value runner-core search-in-list sort-in-list -a gemini-cli -yThe skills tool installs the current version from the repository. Add the -g flag to use the skill in every project.
Without third-party tools, from commit 7803c0f
tmp=$(mktemp -d)
git clone --filter=blob:none --no-checkout https://github.com/grumagargler/tester.git "$tmp"
git -C "$tmp" sparse-checkout set --no-cone /.agents/skills/bsl-format/ /assistant/.agents/skills/choose-value/ /assistant/.agents/skills/runner-core/ /assistant/.agents/skills/search-in-list/ /assistant/.agents/skills/sort-in-list/ /assistant/.claude/skills/choose-value/ /assistant/.claude/skills/runner-core/ /assistant/.claude/skills/search-in-list/ /assistant/.claude/skills/sort-in-list/
git -C "$tmp" checkout 7803c0fd8d6a69dcdb0e7b68d5be1a4d6ce6fc04
mkdir -p .agents/skills
cp -R "$tmp/.agents/skills/bsl-format" .agents/skills/bsl-format
cp -R "$tmp/assistant/.agents/skills/choose-value" .agents/skills/choose-value
cp -R "$tmp/assistant/.agents/skills/runner-core" .agents/skills/runner-core
cp -R "$tmp/assistant/.agents/skills/search-in-list" .agents/skills/search-in-list
cp -R "$tmp/assistant/.agents/skills/sort-in-list" .agents/skills/sort-in-list
cp -R "$tmp/assistant/.claude/skills/choose-value" .agents/skills/choose-value
cp -R "$tmp/assistant/.claude/skills/runner-core" .agents/skills/runner-core
cp -R "$tmp/assistant/.claude/skills/search-in-list" .agents/skills/search-in-list
cp -R "$tmp/assistant/.claude/skills/sort-in-list" .agents/skills/sort-in-listCommands for macOS and Linux, on Windows run them in Git Bash.
Run in a terminal in the project folder
tmp=$(mktemp -d)
git clone --filter=blob:none --no-checkout https://github.com/grumagargler/tester.git "$tmp"
git -C "$tmp" sparse-checkout set --no-cone /.agents/skills/bsl-format/ /assistant/.agents/skills/choose-value/ /assistant/.agents/skills/runner-core/ /assistant/.agents/skills/search-in-list/ /assistant/.agents/skills/sort-in-list/ /assistant/.claude/skills/choose-value/ /assistant/.claude/skills/runner-core/ /assistant/.claude/skills/search-in-list/ /assistant/.claude/skills/sort-in-list/
git -C "$tmp" checkout 7803c0fd8d6a69dcdb0e7b68d5be1a4d6ce6fc04
mkdir -p .devin/skills
cp -R "$tmp/.agents/skills/bsl-format" .devin/skills/bsl-format
cp -R "$tmp/assistant/.agents/skills/choose-value" .devin/skills/choose-value
cp -R "$tmp/assistant/.agents/skills/runner-core" .devin/skills/runner-core
cp -R "$tmp/assistant/.agents/skills/search-in-list" .devin/skills/search-in-list
cp -R "$tmp/assistant/.agents/skills/sort-in-list" .devin/skills/sort-in-list
cp -R "$tmp/assistant/.claude/skills/choose-value" .devin/skills/choose-value
cp -R "$tmp/assistant/.claude/skills/runner-core" .devin/skills/runner-core
cp -R "$tmp/assistant/.claude/skills/search-in-list" .devin/skills/search-in-list
cp -R "$tmp/assistant/.claude/skills/sort-in-list" .devin/skills/sort-in-listCommands for macOS and Linux, on Windows run them in Git Bash.
Formerly Windsurf.
Run in a terminal in the project folder
npx skills add grumagargler/tester --skill bsl-format choose-value runner-core search-in-list sort-in-list choose-value runner-core search-in-list sort-in-list -a cline -yThe skills tool installs the current version from the repository. Add the -g flag to use the skill in every project.
Without third-party tools, from commit 7803c0f
tmp=$(mktemp -d)
git clone --filter=blob:none --no-checkout https://github.com/grumagargler/tester.git "$tmp"
git -C "$tmp" sparse-checkout set --no-cone /.agents/skills/bsl-format/ /assistant/.agents/skills/choose-value/ /assistant/.agents/skills/runner-core/ /assistant/.agents/skills/search-in-list/ /assistant/.agents/skills/sort-in-list/ /assistant/.claude/skills/choose-value/ /assistant/.claude/skills/runner-core/ /assistant/.claude/skills/search-in-list/ /assistant/.claude/skills/sort-in-list/
git -C "$tmp" checkout 7803c0fd8d6a69dcdb0e7b68d5be1a4d6ce6fc04
mkdir -p .cline/skills
cp -R "$tmp/.agents/skills/bsl-format" .cline/skills/bsl-format
cp -R "$tmp/assistant/.agents/skills/choose-value" .cline/skills/choose-value
cp -R "$tmp/assistant/.agents/skills/runner-core" .cline/skills/runner-core
cp -R "$tmp/assistant/.agents/skills/search-in-list" .cline/skills/search-in-list
cp -R "$tmp/assistant/.agents/skills/sort-in-list" .cline/skills/sort-in-list
cp -R "$tmp/assistant/.claude/skills/choose-value" .cline/skills/choose-value
cp -R "$tmp/assistant/.claude/skills/runner-core" .cline/skills/runner-core
cp -R "$tmp/assistant/.claude/skills/search-in-list" .cline/skills/search-in-list
cp -R "$tmp/assistant/.claude/skills/sort-in-list" .cline/skills/sort-in-listCommands for macOS and Linux, on Windows run them in Git Bash.
Run in a terminal in the project folder
npx skills add grumagargler/tester --skill bsl-format choose-value runner-core search-in-list sort-in-list choose-value runner-core search-in-list sort-in-list -a roo -yThe skills tool installs the current version from the repository. Add the -g flag to use the skill in every project.
Without third-party tools, from commit 7803c0f
tmp=$(mktemp -d)
git clone --filter=blob:none --no-checkout https://github.com/grumagargler/tester.git "$tmp"
git -C "$tmp" sparse-checkout set --no-cone /.agents/skills/bsl-format/ /assistant/.agents/skills/choose-value/ /assistant/.agents/skills/runner-core/ /assistant/.agents/skills/search-in-list/ /assistant/.agents/skills/sort-in-list/ /assistant/.claude/skills/choose-value/ /assistant/.claude/skills/runner-core/ /assistant/.claude/skills/search-in-list/ /assistant/.claude/skills/sort-in-list/
git -C "$tmp" checkout 7803c0fd8d6a69dcdb0e7b68d5be1a4d6ce6fc04
mkdir -p .roo/skills
cp -R "$tmp/.agents/skills/bsl-format" .roo/skills/bsl-format
cp -R "$tmp/assistant/.agents/skills/choose-value" .roo/skills/choose-value
cp -R "$tmp/assistant/.agents/skills/runner-core" .roo/skills/runner-core
cp -R "$tmp/assistant/.agents/skills/search-in-list" .roo/skills/search-in-list
cp -R "$tmp/assistant/.agents/skills/sort-in-list" .roo/skills/sort-in-list
cp -R "$tmp/assistant/.claude/skills/choose-value" .roo/skills/choose-value
cp -R "$tmp/assistant/.claude/skills/runner-core" .roo/skills/runner-core
cp -R "$tmp/assistant/.claude/skills/search-in-list" .roo/skills/search-in-list
cp -R "$tmp/assistant/.claude/skills/sort-in-list" .roo/skills/sort-in-listCommands for macOS and Linux, on Windows run them in Git Bash.
A fork of Roo Code, same .roo folders.
Run in a terminal in the project folder
npx skills add grumagargler/tester --skill bsl-format choose-value runner-core search-in-list sort-in-list choose-value runner-core search-in-list sort-in-list -a opencode -yThe skills tool installs the current version from the repository. Add the -g flag to use the skill in every project.
Without third-party tools, from commit 7803c0f
tmp=$(mktemp -d)
git clone --filter=blob:none --no-checkout https://github.com/grumagargler/tester.git "$tmp"
git -C "$tmp" sparse-checkout set --no-cone /.agents/skills/bsl-format/ /assistant/.agents/skills/choose-value/ /assistant/.agents/skills/runner-core/ /assistant/.agents/skills/search-in-list/ /assistant/.agents/skills/sort-in-list/ /assistant/.claude/skills/choose-value/ /assistant/.claude/skills/runner-core/ /assistant/.claude/skills/search-in-list/ /assistant/.claude/skills/sort-in-list/
git -C "$tmp" checkout 7803c0fd8d6a69dcdb0e7b68d5be1a4d6ce6fc04
mkdir -p .agents/skills
cp -R "$tmp/.agents/skills/bsl-format" .agents/skills/bsl-format
cp -R "$tmp/assistant/.agents/skills/choose-value" .agents/skills/choose-value
cp -R "$tmp/assistant/.agents/skills/runner-core" .agents/skills/runner-core
cp -R "$tmp/assistant/.agents/skills/search-in-list" .agents/skills/search-in-list
cp -R "$tmp/assistant/.agents/skills/sort-in-list" .agents/skills/sort-in-list
cp -R "$tmp/assistant/.claude/skills/choose-value" .agents/skills/choose-value
cp -R "$tmp/assistant/.claude/skills/runner-core" .agents/skills/runner-core
cp -R "$tmp/assistant/.claude/skills/search-in-list" .agents/skills/search-in-list
cp -R "$tmp/assistant/.claude/skills/sort-in-list" .agents/skills/sort-in-listCommands for macOS and Linux, on Windows run them in Git Bash.
Run in a terminal in the project folder
tmp=$(mktemp -d)
git clone --filter=blob:none --no-checkout https://github.com/grumagargler/tester.git "$tmp"
git -C "$tmp" sparse-checkout set --no-cone /.agents/skills/bsl-format/ /assistant/.agents/skills/choose-value/ /assistant/.agents/skills/runner-core/ /assistant/.agents/skills/search-in-list/ /assistant/.agents/skills/sort-in-list/ /assistant/.claude/skills/choose-value/ /assistant/.claude/skills/runner-core/ /assistant/.claude/skills/search-in-list/ /assistant/.claude/skills/sort-in-list/
git -C "$tmp" checkout 7803c0fd8d6a69dcdb0e7b68d5be1a4d6ce6fc04
mkdir -p .agents/skills
cp -R "$tmp/.agents/skills/bsl-format" .agents/skills/bsl-format
cp -R "$tmp/assistant/.agents/skills/choose-value" .agents/skills/choose-value
cp -R "$tmp/assistant/.agents/skills/runner-core" .agents/skills/runner-core
cp -R "$tmp/assistant/.agents/skills/search-in-list" .agents/skills/search-in-list
cp -R "$tmp/assistant/.agents/skills/sort-in-list" .agents/skills/sort-in-list
cp -R "$tmp/assistant/.claude/skills/choose-value" .agents/skills/choose-value
cp -R "$tmp/assistant/.claude/skills/runner-core" .agents/skills/runner-core
cp -R "$tmp/assistant/.claude/skills/search-in-list" .agents/skills/search-in-list
cp -R "$tmp/assistant/.claude/skills/sort-in-list" .agents/skills/sort-in-listCommands for macOS and Linux, on Windows run them in Git Bash.
Run in a terminal in the project folder
tmp=$(mktemp -d)
git clone --filter=blob:none --no-checkout https://github.com/grumagargler/tester.git "$tmp"
git -C "$tmp" sparse-checkout set --no-cone /.agents/skills/bsl-format/ /assistant/.agents/skills/choose-value/ /assistant/.agents/skills/runner-core/ /assistant/.agents/skills/search-in-list/ /assistant/.agents/skills/sort-in-list/ /assistant/.claude/skills/choose-value/ /assistant/.claude/skills/runner-core/ /assistant/.claude/skills/search-in-list/ /assistant/.claude/skills/sort-in-list/
git -C "$tmp" checkout 7803c0fd8d6a69dcdb0e7b68d5be1a4d6ce6fc04
mkdir -p .agents/skills
cp -R "$tmp/.agents/skills/bsl-format" .agents/skills/bsl-format
cp -R "$tmp/assistant/.agents/skills/choose-value" .agents/skills/choose-value
cp -R "$tmp/assistant/.agents/skills/runner-core" .agents/skills/runner-core
cp -R "$tmp/assistant/.agents/skills/search-in-list" .agents/skills/search-in-list
cp -R "$tmp/assistant/.agents/skills/sort-in-list" .agents/skills/sort-in-list
cp -R "$tmp/assistant/.claude/skills/choose-value" .agents/skills/choose-value
cp -R "$tmp/assistant/.claude/skills/runner-core" .agents/skills/runner-core
cp -R "$tmp/assistant/.claude/skills/search-in-list" .agents/skills/search-in-list
cp -R "$tmp/assistant/.claude/skills/sort-in-list" .agents/skills/sort-in-listCommands for macOS and Linux, on Windows run them in Git Bash.
Copy assistant/.claude/skills into your project's .claude/skills (for Claude Code) or assistant/.agents/skills for other agents, install the extension from dist/tester.cfe into a test 1C infobase through the configurator, and connect Runner as described in assistant/.mcp.json.
This is third-party code. Review the repository files before installing.
What it does
Tester is a 1C configuration in EDT format for recording and running scenario tests of managed forms: recording user actions into code, scheduled runs, reports and result mailing. The kit includes an assistant workspace with skills for an AI agent, duplicated for Claude Code (.claude/skills) and for the generic agent skills format (.agents/skills for Codex and compatible tools): the base runner-core skill teaches the agent to inspect the UI through Runner before every action, and separate skills cover choosing values, searching and sorting in lists. A separate bsl-format skill formats BSL code to the project style. There is also a VS Code extension with snippets and test-run commands.
Who it is for. For 1C developers and testers who need regression tests for forms and an agent that safely drives a test 1C client through scripts.
Good fit when
- You need scenario regression tests for 1C managed forms
- You want an AI agent to imitate user actions through Runner scripts instead of reading the database directly
- You need to record user actions and turn them into test code automatically
Not a fit when
- You need a one-off lightweight test without installing a configuration and extensions into the infobase
- You need testing unrelated to 1C:Enterprise
Example request
Run the Tester regression scenario for the item list form and send me the reportLimitations
Building the C++ external components needs CMake and the standard C++ runtime (vcredist on Windows). The configuration is built in 8.3.27 compatibility mode, and older platform versions may reject the cf file without lowering the mode. The README does not give step by step instructions for installing the skill set into a third-party project, only the structure of the assistant directory.
How to disable. Remove the copied .claude/skills or .agents/skills from the project, disable the MCP Runner in the agent's .mcp.json and remove the Tester extension from the 1C infobase.
Security check
- Runner scripts perform real user actions in 1C, including data changes through the interface
- The agent gets access to the whole application's main menu and commands, not to an isolated sandbox
README in short
The README describes the repository layout: C++ external components for the testing client and server, a VS Code extension, the assistant agent workspace, a ready build in dist and configuration sources in EDT format. It lists the features: recording and coding scenarios, role-based access, git webhook integration, reports, result mailing, scheduled and CI testing, and step by step video recording. It separately covers building the external components and the C++ runtime requirement on Windows.
SKILL.md
--- name: bsl-format description: Format or reformat 1C:Enterprise BSL (.bsl) code to match my style. Use when asked to format BSL files or snippets in this repo, or to normalize indentation/spacing/keyword casing for BSL. --- # BSL Format ## Overview Apply the project BSL style to files or snippets while preserving behavior and content. ## Workflow 1. Identify the target style for the file. - Default to the project style in references/style.md. 2. Apply formatting rules: indentation, spacing, keyword casing, semicolons, wrapping, and blank lines. 3. Preserve semantics: do not change strings, query text, comments, or logic; only adjust formatting/casing. 4. Re-scan for consistency (tabs, parentheses spacing, keyword casing) and fix any drift. ## Reference Read references/style.md before formatting to ensure the rules match this repository.
FAQ
Can Tester be used for routine operations, not just tests?
Yes, the README also describes data export and import, batch 1C runs, generating test data and load testing.
Why are the skills duplicated in .claude/skills and .agents/skills?
So the same Runner skill set works in both Claude Code and other tools that support the open agent skills format, including Codex.
Related
A CLI for testing and red teaming LLM applications: compares models, runs automated CI checks and finds vulnerabilities
Playwright CLI
playwright-cli
Microsoft's official Playwright CLI with an agent skill: drive a browser through short commands without heavy MCP schemas
The official MCP server debugger: web UI, automation CLI and terminal UI in one package
SonarSource's official MCP server: quality and security issues, quality gates and code analysis from SonarQube Server and Cloud