Debugg AI
ทางการเปิดให้เอเจนต์สร้างโค้ดของคุณสามารถสร้างและรันการทดสอบแบบ end-to-end ที่ไม่ต้องกำหนดค่าใดๆ กับการเปลี่ยนแปลงโค้ดใหม่ในเบราว์เซอร์ระยะไกลผ่านแพลตฟอร์มทดสอบของ Debugg AI
คุณทำอะไรได้บ้างด้วย Debugg AI MCP?
- เรียกใช้ AI browser agent กับ URL ใดก็ได้ — อธิบายสิ่งที่ต้องการทดสอบด้วยภาษาธรรมชาติ แล้ว
check_app_in_browserจะนำทาง โต้ตอบ และส่งคืนผลผ่าน/ไม่ผ่าน พร้อมภาพหน้าจอและสิ่งประดิษฐ์จากเซสชัน - ตรวจสอบหลายหน้าโดยไม่ต้องใช้ AI overhead — ส่ง URL 1–20 รายการไปยัง
probe_pageเพื่อตรวจสอบสถานะที่เรนเดอร์แล้ว ข้อผิดพลาดในคอนโซล และสรุปเครือข่ายหลังการปรับโครงสร้างหรือการปรับใช้ - เรียกใช้การ crawl ฝั่งเซิร์ฟเวอร์ — ใช้
trigger_crawlเพื่อเติมข้อมูลใน knowledge graph ของโปรเจกต์โดยการ crawl URL เป้าหมาย - จัดการชุดทดสอบและกรณีทดสอบ — สร้าง แสดงรายการ เรียกใช้ และดูผลลัพธ์สำหรับเอนทิตี
test_suiteและtest_caseรวมถึงการลบแบบ soft-delete พร้อมการยืนยัน - ตรวจสอบรายละเอียดการดำเนินการและสิ่งประดิษฐ์ — ดึงสถานะการดำเนินการทั้งหมด ภาพหน้าจอ HAR และบันทึกคอนโซลผ่านการกระทำ
getหรือlistของexecutions - เรียกดูโปรเจกต์ สภาพแวดล้อม และการดำเนินการในฐานะทรัพยากร — เข้าถึงสรุปแบบอ่านอย่างเดียวที่ URI เช่น
debugg-ai://projectsเพื่อดูบริบทโดยไม่ต้องเรียกใช้เครื่องมือ
เอกสาร
Debugg AI — MCP Server
การทดสอบเบราว์เซอร์ที่ขับเคลื่อนด้วย AI ผ่าน Model Context Protocol ชี้ไปที่ URL ใดก็ได้ (หรือ localhost) และอธิบายสิ่งที่ต้องการทดสอบ — เอเจนต์ AI จะเรียกดูแอปของคุณและส่งกลับผลผ่าน/ไม่ผ่านพร้อมภาพหน้าจอ
การตั้งค่า
ต้องใช้ Node.js 20.20.0 หรือใหม่กว่า (ข้อกำหนดสืบทอดจาก posthog-node@^5.26.0)
รับ API key ได้ที่ debugg.ai จากนั้นเพิ่มลงในการกำหนดค่า MCP client ของคุณ:
{
"mcpServers": {
"debugg-ai": {
"command": "npx",
"args": ["-y", "@debugg-ai/debugg-ai-mcp"],
"env": {
"DEBUGGAI_API_KEY": "your_api_key_here"
}
}
}
}
หรือใช้ Docker:
docker run -i --rm --init -e DEBUGGAI_API_KEY=your_api_key quinnosha/debugg-ai-mcp
เครื่องมือ
เซิร์ฟเวอร์มีเครื่องมือ 8 อย่าง: เครื่องมือ Browser สามอย่างบวกกับเครื่องมือ action-based หนึ่งอย่างต่อเอนทิตีที่จัดการ เครื่องมือหลักคือ check_app_in_browser (เอเจนต์ AI เต็มรูปแบบ) และ probe_page (การตรวจสอบหน้าแบบเบาไม่ใช้ LLM) ส่วนที่เหลือ — project, environment, test_suite, test_case, executions — แต่ละตัวรับ action discriminator (เช่น {"action":"list"}) ที่เลือกการดำเนินการ การกระทำ delete ที่ทำลายล้างต้องมีการยืนยัน (พรอมต์ elicitation หากได้รับการสนับสนุน มิฉะนั้น confirm: true)
Browser
check_app_in_browser
รันเอเจนต์เบราว์เซอร์ AI กับแอปของคุณ เอเจนต์จะนำทาง โต้ตอบ และรายงานกลับพร้อมภาพหน้าจอ URL ของ localhost จะถูกทำ tunnel อัตโนมัติผ่าน ngrok
| พารามิเตอร์ | ชนิด | คำอธิบาย |
|---|---|---|
description | string จำเป็น | สิ่งที่ต้องการทดสอบ (ภาษาธรรมชาติ) |
url | string จำเป็น | URL เป้าหมาย — http://localhost:3000 จะถูกทำ tunnel อัตโนมัติ |
environmentId | string | UUID ของ environment เฉพาะ |
credentialId | string | UUID ของ credential เฉพาะ |
credentialRole | string | เลือก credential ตามบทบาท (เช่น admin, guest) |
username | string | ชื่อผู้ใช้สำหรับเข้าสู่ระบบ (ชั่วคราว — ไม่ถูกบันทึก) |
password | string | รหัสผ่านสำหรับเข้าสู่ระบบ (ชั่วคราว — ไม่ถูกบันทึก) |
repoName | string | เขียนทับชื่อ git repo ที่ตรวจพบอัตโนมัติ (เช่น my-org/my-repo) |
หนึ่งการตรวจสอบต่อการเรียกหนึ่งครั้ง เอเจนต์มีงบประมาณภายในประมาณ 25 ขั้นตอน; แยกชุดทดสอบที่กว้างขึ้นออกเป็นการเรียกหลายครั้ง
การรันที่สำเร็จทุกครั้งจะส่งคืนบล็อก browserSession พร้อมกับภาพหน้าจอ — presigned S3 URLs สำหรับ HAR (การติดตามเครือข่ายเต็มรูปแบบ) และ console log (ทุกข้อความ JS console) ที่ถูกจับ ใช้เพื่อตรวจจับลูปการดึงข้อมูลซ้ำ ข้อผิดพลาด hydration และปัญหารันไทม์อื่นๆ ที่ผ่านการตรวจสอบชนิดข้อมูลและการทดสอบหน่วย:
"browserSession": {
"harUrl": "https://...session_18139.har?X-Amz-...",
"consoleLogUrl": "https://...session_18139_console.json?X-Amz-...",
"recordingUrl": "https://...session_18139_recording.webm?X-Amz-...",
"harStatus": "downloaded",
"consoleLogStatus": "downloaded",
"harRedactionStatus": "redacted",
"consoleLogRedactionStatus": "redacted"
}
URLs เป็น presigned S3 อายุสั้น — ดึง execution หลักอีกครั้งผ่าน executions {action:"get", uuid} เพื่อต่ออายุ harStatus / consoleLogStatus แยกแยะ 'downloaded' (URL ดึงข้อมูลได้), 'not_available' (หน้าไม่ได้ส่งข้อมูลใดๆ), 'failed' (การจับข้อมูลเสียหาย) ในการรันใหม่ URLs มักจะเป็น null เพราะการอัปโหลดข้อมูลที่จับได้เป็นแบบ async หลังจากเอเจนต์เสร็จสิ้น — โพล executions {action:"get", uuid: executionId} จนกว่าสถานะจะถึง 'downloaded' ส่วนหัว Authorization / Cookie / token/secret/api_key จะถูกลบออกฝั่งเซิร์ฟเวอร์ก่อนที่อาร์ติแฟกต์จะถูกบันทึก
trigger_crawl
เริ่มการ crawl เอเจนต์เบราว์เซอร์ฝั่งเซิร์ฟเวอร์เพื่อเติมข้อมูล knowledge graph ของโปรเจกต์ URL ของ localhost ทำ tunnel อัตโนมัติ ส่งคืน {executionId, status, targetUrl, durationMs, outcome?, crawlSummary?, knowledgeGraph?, browserSession?} พร้อม knowledgeGraph.imported === true เมื่อการนำเข้าสำเร็จ บล็อก browserSession (HAR + console-log URLs, รูปแบบเดียวกับข้างต้น) ก็มีอยู่ในการ crawl ที่เสร็จสมบูรณ์เช่นกัน
probe_page
การตรวจสอบหน้าแบบกลุ่มน้ำหนักเบาไม่ใช้ LLM ส่ง 1-20 URLs; แต่ละอันจะนำทาง รอการโหลด และส่งคืนสถานะที่เรนเดอร์ — ภาพหน้าจอ + ข้อมูลเมตาของหน้า + ข้อผิดพลาด console ที่มีโครงสร้าง + สรุปเครือข่าย ไม่มีลูปเอเจนต์ ไม่มีค่าใช้จ่าย LLM ไม่มีการยืนยันสถานการณ์ ใช้สำหรับ "ฉันเพิ่งทำ /settings พังหรือเปล่า?", การตรวจสอบควันหลายเส้นทางหลังจากการ refactor, การกวาดตรวจต่อ PR ใน CI และการตรวจสอบว่ายังใช้งานได้อยู่หรือไม่ที่ check_app_in_browser ซึ่งมีลูปเอเจนต์ 60-150 วินาทีนั้นเกินความจำเป็น
| พารามิเตอร์ | ชนิด | คำอธิบาย |
|---|---|---|
targets | array จำเป็น | 1-20 รายการ: [{url, waitForSelector?, waitForLoadState?, timeoutMs?}] |
targets[].url | string จำเป็น | URL สาธารณะหรือ localhost (ทำ tunnel อัตโนมัติ) |
targets[].waitForLoadState | enum | 'load' (ค่าเริ่มต้น) / 'domcontentloaded' / 'networkidle' |
targets[].waitForSelector | string | CSS selector ทางเลือกเพื่อรอหลังจากการนำทาง |
targets[].timeoutMs | number | หมดเวลาต่อ URL, 1000-30000 (ค่าเริ่มต้น 10000) |
includeHtml | boolean | ส่งคืน HTML ดิบในแต่ละผลลัพธ์ (ค่าเริ่มต้น false) |
captureScreenshots | boolean | ส่งคืนหนึ่ง PNG ต่อเป้าหมาย (ค่าเริ่มต้น true) |
ทั้งกลุ่มใช้ execution แบ็กเอนด์ + เซสชันเบราว์เซอร์ + tunnel ร่วมกันเพียงครั้งเดียว — 5 URLs ในการเรียกครั้งเดียวเร็วกว่าการเรียก URL เดียวแบบขนาน 5 ครั้งอย่างมาก ฟิลด์ error ต่อ URL รักษาความยืดหยุ่นของกลุ่ม: เป้าหมายเดียวที่ล้มเหลวไม่ทำให้เป้าหมายอื่นล้มเหลว
คีย์การรวมกลุ่ม networkSummary คือ origin + pathname — ลูปการดึงข้อมูลซ้ำ (?n=0..4 ที่เรียก endpoint เดิมซ้ำๆ) จะยุบรวมเป็นรายการเดียวพร้อมจำนวนนับ ดังนั้น /api/poll ที่แสดงขึ้นพร้อม count: 47 คือสัญญาณ "ลูปการดึงข้อมูลซ้ำไม่สิ้นสุด" ที่สามารถดำเนินการได้ตามที่ผู้ใช้ร้องขอแต่แรก
งบประมาณประสิทธิภาพ: <10 วินาทีสำหรับ 1 URL, <25 วินาทีสำหรับ 20 พอร์ต localhost ที่ไม่ตอบสนองส่งคืน LocalServerUnreachable ใน <2 วินาทีโดยไม่ใช้ execution ของเวิร์กโฟลว์
project
| การกระทำ | พารามิเตอร์ | ผลลัพธ์ |
|---|---|---|
get | {uuid} | รายละเอียดโปรเจกต์ที่คัดสรร |
list | {q?, page?, pageSize?} | สรุปแบบแบ่งหน้า |
create | {name, platform, (teamUuid|teamName), (repoUuid|repoName)} | โปรเจกต์ที่สร้างขึ้น |
ทีมและ repo แก้ไขโดย อย่างใดอย่างหนึ่ง uuid หรือ ชื่อ (การจับคู่แบบตรงทั้งหมดไม่คำนึงถึงตัวพิมพ์เล็กใหญ่; NotFound หากไม่มี, AmbiguousMatch หากมีหลายรายการ) ไม่มี update/delete — เปลี่ยนชื่อหรือลบโปรเจกต์จากเว็บแอป DebuggAI
environment
| การกระทำ | พารามิเตอร์ | ผลลัพธ์ |
|---|---|---|
get | {uuid, projectUuid?} | Env พร้อม credentials แบบอินไลน์ (ไม่มีการส่งคืนรหัสผ่าน) |
list | {projectUuid?, q?, page?, pageSize?} | Envs แบบแบ่งหน้า แต่ละอันมีอาร์เรย์ credentials |
create | {name, url, description?, projectUuid?, credentials?} | Env ที่สร้างขึ้น (สามารถเริ่มต้น credentials ได้) |
update | {uuid, name?, url?, description?, addCredentials?, updateCredentials?, removeCredentialIds?} | Env ที่ถูกแพตช์; การดำเนินการ credential รัน ลบ → อัปเดต → เพิ่ม |
delete | {uuid, projectUuid?, confirm?} | ลบ env (ลดหลั่นไปยัง credentials) — ต้องมีการยืนยัน |
projectUuid แก้ไขอัตโนมัติจาก git repo เมื่อละเว้น ความล้มเหลวต่อ credential แสดงใน credentialWarnings[] โดยไม่บล็อกการดำเนินการ env
test_suite
| การกระทำ | พารามิเตอร์ | ผลลัพธ์ |
|---|---|---|
list | {projectUuid|projectName, search?, page?, pageSize?} | Suites แบบแบ่งหน้าพร้อมสถานะ + อัตราการผ่าน |
create | {name, description, projectUuid|projectName} | Suite ที่สร้างขึ้น |
run | {suiteUuid|(suiteName+project), targetUrl?} | ทริกเกอร์การทดสอบทั้งหมดแบบ async |
results | {suiteUuid|(suiteName+project)} | Suite + ผลลัพธ์ต่อการทดสอบ |
delete | {suiteUuid|(suiteName+project), confirm?} | ลบแบบ soft-delete — ต้องมีการยืนยัน |
test_case
| การกระทำ | พารามิเตอร์ | ผลลัพธ์ |
|---|---|---|
create | {name, description, agentTaskDescription, suiteUuid|(suiteName+project), relativeUrl?, maxSteps?} | Test case ที่สร้างขึ้น (ไม่รันอัตโนมัติ) |
update | {testUuid, name?, description?, agentTaskDescription?} | Test case ที่ถูกแพตช์ |
delete | {testUuid, confirm?} | ลบแบบ soft-delete — ต้องมีการยืนยัน |
executions
| การกระทำ | พารามิเตอร์ | ผลลัพธ์ |
|---|---|---|
get | {uuid} | รายละเอียดเต็ม (nodeExecutions + สถานะ + errorInfo) + อาร์ติแฟกต์ภาพหน้าจอ/gif |
list | {status?, projectUuid?, page?, pageSize?} | สรุปแบบแบ่งหน้า |
404 จากแบ็กเอนด์แสดงเป็น isError: true พร้อม {error: 'NotFound', message, uuid} Credentials จะถูกส่งคืนโดยไม่มีรหัสผ่านเสมอ
การแบ่งหน้า
ทุกการตอบสนองโหมดตัวกรองจะถูกแบ่งหน้า รูปร่างการตอบสนอง:
{
"filter": { "...echoed query params..." },
"pageInfo": { "page": 1, "pageSize": 20, "totalCount": 47, "totalPages": 3, "hasMore": true },
"<items>": [ ... ]
}
ส่ง page ที่เป็นทางเลือก (1-indexed, ค่าเริ่มต้น 1) และ pageSize (ค่าเริ่มต้น 20, สูงสุด 200; ค่าที่เกินจะถูกจำกัด) ไม่มีการตอบสนองใดถูกตัดทอนอย่างเงียบๆ
Resources
นอกจากเครื่องมือแล้ว เซิร์ฟเวอร์ยังแสดงเอนทิตีแบบอ่านอย่างเดียวเป็น MCP resources เพื่อให้ไคลเอนต์สามารถเรียกดูและ @-mention เป็นบริบทได้:
| URI | อะไร |
|---|---|
debugg-ai://projects | โปรเจกต์ทั้งหมด (หน้าแรก) |
debugg-ai://environments | Environments สำหรับโปรเจกต์ที่ตรวจพบอัตโนมัติ |
debugg-ai://executions | Executions ล่าสุด (หน้าแรก) |
debugg-ai://project/{uuid} | หนึ่งโปรเจกต์, รายละเอียดเต็ม |
debugg-ai://environment/{uuid} | หนึ่ง environment (credentials แบบอินไลน์, รหัสผ่านถูกปกปิด) |
debugg-ai://execution/{uuid} | หนึ่ง execution, รายละเอียดโหนดเต็ม + ลิงก์อาร์ติแฟกต์ |
การอ่านส่งไปยังตัวจัดการเดียวกันกับเครื่องมือ project / environment /
executions ดังนั้นข้อมูลและการรับรองความถูกต้องจึงเหมือนกัน Resources เป็นส่วนเสริม — ไคลเอนต์ที่ไม่มีการสนับสนุน resource ยังคงใช้เครื่องมือต่อไป
ค่าคงที่ด้านความปลอดภัย
- รหัสผ่านเป็นแบบเขียนอย่างเดียว จะไม่ปรากฏในเนื้อหาการตอบสนองใดๆ จากเครื่องมือใดๆ
- Tunnel URLs (
*.ngrok.debugg.ai) จะถูกตัดออกจากการตอบสนองของเอเจนต์เบราว์เซอร์ทั้งหมด รวมถึงข้อความที่เขียนโดยเอเจนต์ - 404 จากแบ็กเอนด์แสดงเป็น
isError: trueพร้อม{error: 'NotFound', ...}ไม่เคยเป็นข้อยกเว้นที่ถูกโยน DEBUGGAI_API_KEYที่หายไปแสดงเป็นข้อผิดพลาดเครื่องมือที่มีโครงสร้างในการเรียกใช้ครั้งแรก — เซิร์ฟเวอร์ยังคงลงทะเบียนและแสดงรายการเครื่องมือตามปกติ
การย้ายไปยัง v3.0.0 (เครื่องมือแบบ action-based)
v3 รวมเครื่องมือ 20 แบบต่อคำกริยาเป็นเครื่องมือแบบ action-based 8 อย่าง เครื่องมือเก่า → tool {action} ใหม่:
| ถูกลบออก | สิ่งที่มาแทนที่ |
|---|---|
search_projects | project {action:"get"} / project {action:"list"} |
create_project | project {action:"create"} |
update_project, delete_project | ถูกตัดออก — ใช้เว็บแอป DebuggAI |
search_environments | environment {action:"get"} / {action:"list"} |
create_environment / update_environment / delete_environment | environment {action:"create"|"update"|"delete"} |
create_test_suite / search_test_suites / run_test_suite / get_test_suite_results / delete_test_suite | test_suite {action:"create"|"list"|"run"|"results"|"delete"} |
create_test_case / update_test_case / delete_test_case | test_case {action:"create"|"update"|"delete"} |
search_executions | executions {action:"get"|"list"} |
พารามิเตอร์ trigger_crawl headless | ถูกตัดออก — เป็น headless เสมอ |
การกระทำ delete ตอนนี้ต้องการการยืนยัน (พรอมต์ elicitation หรือ confirm: true) ไคลเอนต์จะรับพื้นผิวใหม่เมื่อรีสตาร์ท MCP
การย้ายจาก v1.x (การเปลี่ยนแปลงที่เข้ากันไม่ได้ใน v2.0.0)
v2 ยุบพื้นผิวเครื่องมือ 22 อย่างเหลือ 11 อย่าง การแมปเครื่องมือเก่า → ใหม่:
| ถูกลบออก | สิ่งที่มาแทนที่ |
|---|---|
list_projects, get_project | search_projects (โหมด uuid เทียบกับโหมดตัวกรอง) |
list_environments, get_environment | search_environments |
list_credentials, get_credential | search_environments — credentials แบบอินไลน์ในแต่ละ env |
create_credential | create_environment({credentials: [...]}) seed หรือ update_environment({addCredentials: [...]}) |
update_credential | update_environment({updateCredentials: [{uuid, ...patch}]}) |
delete_credential | update_environment({removeCredentialIds: [uuid]}) |
list_teams, list_repos | create_project({teamName, repoName}) — การแก้ไขชื่อพร้อมการจัดการความกำกวม |
list_executions, get_execution | search_executions |
cancel_execution | ถูกตัดออก — การปิดการทำงานแบ็กเอนด์เป็นแบบอัตโนมัติ |
การเปลี่ยนแปลงรูปร่างการตอบสนอง: ฟิลด์ count เปล่าในการตอบสนองรายการหายไป — ใช้ pageInfo.totalCount
การกำหนดค่า
| ตัวแปรสภาพแวดล้อม | จำเป็น | วัตถุประสงค์ |
|---|---|---|
DEBUGGAI_API_KEY | ใช่ | API key แบ็กเอนด์ นามแฝง: DEBUGGAI_API_TOKEN, DEBUGGAI_JWT_TOKEN |
DEBUGGAI_API_URL | ไม่ | URL ฐานของแบ็กเอนด์ ค่าเริ่มต้นเป็น https://api.debugg.ai |
DEBUGGAI_TOKEN_TYPE | ไม่ | token (ค่าเริ่มต้น) หรือ bearer |
DEBUGGAI_EVAL_TEMPLATE | ไม่ | เขียนทับ slug ของเวิร์กโฟลว์ App Evaluation ที่ check_app_in_browser ส่งไป ค่าเริ่มต้นเป็น flow/e2es/app-eval การส่งจะตรึงไว้ที่ slug นี้เพื่อให้การเปลี่ยนชื่อเทมเพลตแบ็กเอนด์ไม่สามารถทำให้เสียหายได้ |
LOG_LEVEL | ไม่ | error / warn / info (ค่าเริ่มต้น) / debug |
POSTHOG_API_KEY | ไม่ | เขียนทับคีย์โปรเจกต์ telemetry แบบฝังตัว (เช่น private fork) |
DEBUGGAI_TELEMETRY_DISABLED | ไม่ | ตั้งเป็น 1 / true / yes / on เพื่อปิดการใช้งาน telemetry โดยสมบูรณ์ |
DEBUGGAI_API_KEY=your_api_key
Remote / HTTP transport (ทางเลือก)
โดยค่าเริ่มต้นเซิร์ฟเวอร์จะสื่อสารผ่าน stdio (local npx) แต่สามารถรันในรูปแบบ
MCP ระยะไกลแบบหลายผู้ใช้ที่โฮสต์ไว้ ผ่าน stateless Streamable HTTP + OAuth ได้:
DEBUGGAI_MCP_TRANSPORT=http PORT=3000 DEBUGGAI_TOKEN_TYPE=bearer npx -y @debugg-ai/debugg-ai-mcp@latest
มันคือ OAuth Resource Server: ทุก POST /mcp ต้องการ
Authorization: Bearer <token>; โทเค็นที่ขาดหายไป/ไม่ถูกต้องจะได้รับ 401 พร้อมกับ
WWW-Authenticate ที่ชี้ไปยังเมทาดาทา RFC 9728 และไคลเอนต์จะดำเนินการตามขั้นตอน OAuth
กับเซิร์ฟเวอร์การอนุญาตที่ประกาศไว้ Bearer token มีขอบเขตต่อคำขอ —
api.debugg.ai จะตรวจสอบความถูกต้อง
| Endpoint | วัตถุประสงค์ |
|---|---|
POST /mcp | MCP Streamable HTTP (ป้องกันด้วย bearer) |
GET /.well-known/oauth-protected-resource | เมทาดาทา RFC 9728 (การค้นพบเซิร์ฟเวอร์การอนุญาต) |
GET /health | การตรวจสอบความพร้อมของ Load-balancer / ECS |
| ตัวแปรสภาพแวดล้อม | ค่าเริ่มต้น | วัตถุประสงค์ |
|---|---|---|
DEBUGGAI_MCP_TRANSPORT | stdio | ตั้งค่าเป็น http สำหรับการขนส่งระยะไกล |
PORT | 3000 | พอร์ตที่ใช้รับฟัง HTTP |
DEBUGGAI_MCP_PUBLIC_URL | https://mcp.debugg.ai | URL ทรัพยากรสาธารณะของเซิร์ฟเวอร์นี้ (RFC 9728 resource) |
DEBUGGAI_OAUTH_ISSUER | https://auth.debugg.ai | เซิร์ฟเวอร์การอนุญาตที่ประกาศให้ไคลเอนต์ทราบ |
DEBUGGAI_TOKEN_TYPE | token | ตั้งค่าเป็น bearer เพื่อให้ OAuth tokens ส่งต่อเป็น Authorization: Bearer |
การติดตั้งแบบ stdio ไม่จำเป็นต้องใช้ตัวแปรเหล่านี้เลย
การตรวจวัดและส่งข้อมูลทางไกล
เซิร์ฟเวอร์ MCP มาพร้อมกับการส่งข้อมูลทางไกลที่เปิดใช้งานโดยค่าเริ่มต้น — มีคีย์โปรเจกต์ PostHog แบบเขียนอย่างเดียวที่ฝังไว้ (phc_*) เพื่อให้ทีมสามารถสังเกตอัตราการเข้าถึงแคช, จังหวะการ polling, ความน่าเชื่อถือของ tunnel และเมตริกการดำเนินงานอื่นๆ ครอบคลุมทุกการติดตั้ง อีเวนต์ที่ถูกจับ:
| อีเวนต์ | เมื่อใด |
|---|---|
tool.executed / tool.failed | ต่อการเรียกใช้ tool |
workflow.executed | ต่อการดำเนินการของ browser-agent (ประกอบด้วย pollCount, durationMs, finalIntervalMs) |
tunnel.provisioned / tunnel.provision_retry / tunnel.stopped | ต่ออีเวนต์วงจรชีวิตของ tunnel |
template.lookup / project.lookup | การเข้า/ไม่เข้าแคช พร้อม durationMs เมื่อเรียกครั้งแรก |
จุดยืนด้านความเป็นส่วนตัว:
- ID ที่ระบุตัวตนคือ
SHA-256(api_key).slice(0, 16)— ไม่ใช้คีย์ดิบ, ไม่มีข้อมูลส่วนบุคคล - คีย์
phc_*เป็นแบบเขียนอย่างเดียวตามธรรมเนียมของ PostHog; ปลอดภัยที่จะฝังในซอร์สโค้ด - ตั้งค่า
DEBUGGAI_TELEMETRY_DISABLED=1เพื่อยกเลิกทั้งหมด (จะเปลี่ยนเป็นผู้ให้บริการที่ไม่ทำอะไรเลย; ไม่มีอีเวนต์ใดออกจากโปรเซส)
โหมดที่ทำงานอยู่จะถูกบันทึกเมื่อเริ่มต้นระบบ:
Telemetry enabled (PostHog, DebuggAI default project). Set DEBUGGAI_TELEMETRY_DISABLED=1 to opt out.
Telemetry enabled (PostHog, custom POSTHOG_API_KEY)
Telemetry disabled (DEBUGGAI_TELEMETRY_DISABLED is set)
การพัฒนาภายในเครื่อง
npm install
npm run build
npm run test:e2e # real end-to-end evals against the backend
ชุดการประเมินผลจะสร้างเซิร์ฟเวอร์ MCP ที่ build แล้วเป็นโปรเซสย่อย, ทดสอบทุก tool กับ backend จริง และเขียนอาร์ติแฟกต์ของแต่ละโฟลว์ไปยัง scripts/evals/artifacts/<timestamp>/ ดู scripts/evals/flows/ สำหรับสถานการณ์แต่ละแบบ
การลงทะเบียน MCP: debugg-ai-local เทียบกับ debugg-ai
repo นี้มาพร้อมกับ .mcp.json ที่ลงทะเบียนเซิร์ฟเวอร์แบบ project-scoped ชื่อ debugg-ai-local ซึ่งชี้ไปที่ node dist/index.js — โค้ดภายในเครื่องที่ build ใหม่ล่าสุด มันจะทำงานเฉพาะเมื่อไดเรกทอรีการทำงานของ Claude Code คือ repo นี้
โปรเจกต์อื่นๆ ของคุณควรใช้การลงทะเบียน debugg-ai แบบ user-scoped ที่ดึงมาจากแพ็คเกจ npm ที่เผยแพร่:
npm run mcp:global # registers debugg-ai in ~/.claude.json to npx -y @debugg-ai/debugg-ai-mcp
หลังจากแก้ไขโค้ดที่นี่ ให้รัน npm run mcp:local (ซึ่งทำการ build ใหม่) เพื่อให้การเรียกใช้ debugg-ai-local ครั้งถัดไปรับการเปลี่ยนแปลงของคุณ
ลิงก์
Dashboard · Docs · Issues · Discord
Apache-2.0 License © 2025 DebuggAI