Browser Use
ให้ AI ทำงานบนเว็บแทนคุณ เช่น กรอกฟอร์ม ค้นหา และดึงข้อมูล ใช้เบราว์เซอร์บนคลาวด์ของผู้ทำหรือรันในเครื่องก็ได้
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
Goal-driven Playwright browser sessions for LLMs, with full action traces and aria-snapshots.
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
COWORK_QA_HEADED, COWORK_QA_DATAต้องเตรียมก่อน
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json
{
"mcpServers": {
"cowork-qa": {
"command": "npx",
"args": [
"-y",
"cowork-qa-mcp"
],
"env": {
"COWORK_QA_HEADED": "ใส่ค่าของคุณ",
"COWORK_QA_DATA": "ใส่ค่าของคุณ"
}
}
}
}พิมพ์คำสั่งนี้ใน Terminal
claude mcp add cowork-qa --env COWORK_QA_HEADED='ใส่ค่าของคุณ' --env COWORK_QA_DATA='ใส่ค่าของคุณ' -- npx -y cowork-qa-mcpเติมค่าที่เว้นว่างไว้ก่อนรัน
วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"cowork-qa": {
"command": "npx",
"args": [
"-y",
"cowork-qa-mcp"
],
"env": {
"COWORK_QA_HEADED": "ใส่ค่าของคุณ",
"COWORK_QA_DATA": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"cowork-qa": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"cowork-qa-mcp"
],
"env": {
"COWORK_QA_HEADED": "ใส่ค่าของคุณ",
"COWORK_QA_DATA": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
COWORK_QA_HEADED envCOWORK_QA_DATA envค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 9 พ.ย. 2569
ชื่อใน registry ยืนยันด้วยบัญชี GitHub inSideos-designs ซึ่งเป็นเจ้าของ repo
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
registry ไม่ได้ระบุว่าต้องใช้กุญแจ แต่บางตัวจะขอให้ล็อกอินตอนใช้ครั้งแรก
รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (0.1.1) เข้า registry 6 เดือนที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Node.js ในเครื่องด้วย
ในหมวดเดียวกันมี Browser Use, Chrome DevTools MCP, MCP Server Browser
server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว
อ่านการ์ด:↓ ดาวน์โหลดต่อสัปดาห์i★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi
ให้ AI ทำงานบนเว็บแทนคุณ เช่น กรอกฟอร์ม ค้นหา และดึงข้อมูล ใช้เบราว์เซอร์บนคลาวด์ของผู้ทำหรือรันในเครื่องก็ได้
ให้ AI ใช้เครื่องมือนักพัฒนาของ Chrome ตรวจหน้าเว็บ ดูว่าโหลดช้าตรงไหน และหาข้อผิดพลาด ทำโดยทีม Chrome DevTools
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
A Model Context Protocol server that gives an LLM a real Chromium browser, records every action it takes toward a stated goal, and hands back a structured trace so the LLM (or a second LLM) can decide whether the goal was actually achieved.
Built on Playwright. Five tools, one binary, no cloud dependency.
Most browser-tool MCP servers are stateless — the LLM clicks, gets HTML back, repeats. There's no record of what happened, no way to grade the run after the fact, and no goal context.
cowork-qa-mcp flips that:
goto, click, fill, press, eval) is recorded with timestamps, the URL after, and the page's aria-snapshot.qa_get_trace call.The orchestrating LLM can then reason over the trace ("did this run actually fulfill the goal, or did it click the wrong button?") instead of trusting the run-time chatter.
| Tool | What it does |
|---|---|
session_start | Open a fresh tab, optional starting URL, return a session id |
session_act | Run one of: goto, click, fill, press, eval. Records the step. |
session_observe | Return current URL + full aria-snapshot of the page |
session_end | Close the tab, persist the trace to disk, return the file path |
qa_get_trace | Return the goal, every step, final URL, and final aria-snapshot — formatted for an LLM to read |
Requires Node 20+. The package is on npm — no clone needed.
# Try it once, no install
npx cowork-qa-mcp
npm install -g cowork-qa-mcp
The first install pulls Chromium via Playwright's postinstall (~150 MB).
claude mcp add cowork-qa --scope user -- npx -y cowork-qa-mcp
To watch the browser instead of running headless:
claude mcp add cowork-qa --scope user \
-e COWORK_QA_HEADED=1 \ -- npx -y cowork-qa-mcp
Verify with /mcp inside a fresh claude session — you should see cowork-qa ✓ connected and 5 tools.
Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": { "cowork-qa": { "command": "npx", "args": ["-y", "cowork-qa-mcp"] } } }
Any client that speaks the MCP stdio transport works. Point its server config at npx -y cowork-qa-mcp.
git clone https://github.com/inSideos-designs/cowork-qa-mcp.git
cd cowork-qa-mcp npm install npm run build node dist/server.js # stdio server, expects an MCP client
This server is also published on the official MCP Server Registry as io.github.inSideos-designs/cowork-qa — clients that auto-discover from the registry will find it without any manual config.
| Variable | Default | Purpose |
|---|---|---|
COWORK_QA_HEADED | unset (headless) | Set to 1 to launch Chromium with a visible window |
COWORK_QA_DATA | /.cowork-qa | Directory where .json traces are written |
A typical end-to-end loop the orchestrating LLM runs:
session_start({ goal: "find the cheapest 14\" MacBook Pro on apple.com",
url: "https://www.apple.com/shop/buy-mac/macbook-pro" }) → { session_id: "abc-123" }
session_observe({ session_id: "abc-123" }) → URL + aria-snapshot
session_act({ session_id: "abc-123", action: "click", target: "button:has-text('Continue')" })
session_end({ session_id: "abc-123" }) → { steps: 7, trace_path: "~/.cowork-qa/abc-123.json" }
qa_get_trace({ session_id: "abc-123" }) → Goal: ... Steps (7 total): ... Final URL: ... Final aria-snapshot: ...
Each trace is a JSON file:
{
"session_id": "abc-123", "goal": "...", "steps": [ { "t": 142, "action": "click", "args": { "target": "...", "value": null }, "url_after": "...", "aria_after": "..." } ], "final": { "url": "...", "aria": "..." }, "path": "/.../abc-123.json" }
session_observe calls don't show up in the trace's step count — only session_act calls do. The final aria-snapshot is captured at session_end.eval runs the JS expression but doesn't return the value to the caller — only side effects on the page are observable.button:has-text("Send")), and role= selectors all work.MIT — see LICENSE.
PRs welcome. Keep it small: this is meant to stay a thin, auditable server.