Debugg AI

ทางการ

เปิดให้เอเจนต์สร้างโค้ดของคุณสามารถสร้างและรันการทดสอบแบบ end-to-end ที่ไม่ต้องกำหนดค่าใดๆ กับการเปลี่ยนแปลงโค้ดใหม่ในเบราว์เซอร์ระยะไกลผ่านแพลตฟอร์มทดสอบของ Debugg AI

คุณทำอะไรได้บ้างด้วย Debugg AI MCP?

  • Run an AI browser agent against any URL — describe what to test in natural language and check_app_in_browser navigates, interacts, and returns pass/fail with screenshots.
  • Probe multiple pages without LLM cost — send up to 20 URLs to probe_page for fast screenshots, console errors, and network summaries in a single batch.
  • Trigger a knowledge-graph crawl — use trigger_crawl to have an AI agent explore your app and populate the project’s knowledge graph.
  • Manage test suites and cases — create, list, run, and check results of test suites via test_suite, and define individual cases with test_case.
  • Inspect execution artifacts — retrieve full execution details, screenshots, HAR traces, and console logs through executions to debug failures.
  • Browse projects, environments, and executions as resources — reference entities directly via debugg-ai:// URIs for context without calling tools.

เอกสาร

Debugg AI — MCP Server

การทดสอบเบราว์เซอร์ที่ขับเคลื่อนด้วย AI ผ่าน Model Context Protocol ชี้ไปที่ URL ใดๆ (หรือ localhost) และอธิบายสิ่งที่ต้องการทดสอบ — เอเจนต์ AI จะเรียกดูแอปของคุณและส่งกลับผลผ่าน/ไม่ผ่านพร้อมภาพหน้าจอ

Debugg AI MCP server

การตั้งค่า

ต้องใช้ 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 จะถูกทำทันเนลอัตโนมัติผ่าน ngrok

พารามิเตอร์ประเภทคำอธิบาย
descriptionstring จำเป็นสิ่งที่ต้องการทดสอบ (ภาษาธรรมชาติ)
urlstring จำเป็นURL เป้าหมาย — http://localhost:3000 จะถูกทำทันเนลอัตโนมัติ
environmentIdstringUUID ของสภาพแวดล้อมเฉพาะ
credentialIdstringUUID ของข้อมูลประจำตัวเฉพาะ
credentialRolestringเลือกข้อมูลประจำตัวตามบทบาท (เช่น admin, guest)
usernamestringชื่อผู้ใช้สำหรับเข้าสู่ระบบ (ชั่วคราว — ไม่ถูกบันทึก)
passwordstringรหัสผ่านสำหรับเข้าสู่ระบบ (ชั่วคราว — ไม่ถูกบันทึก)
repoNamestringเขียนทับชื่อ git repo ที่ตรวจพบอัตโนมัติ (เช่น my-org/my-repo)

หนึ่งการตรวจสอบต่อการเรียกหนึ่งครั้ง เอเจนต์มีงบประมาณขั้นตอนภายในประมาณ 25 ขั้นตอน; แบ่งชุดการทดสอบที่กว้างขึ้นออกเป็นการเรียกหลายครั้ง

การรันที่สำเร็จทุกรายการจะส่งคืนบล็อก browserSession พร้อมกับภาพหน้าจอ — URL S3 แบบ presigned สำหรับ HAR (การติดตามเครือข่ายเต็มรูปแบบ) และ console log (ทุกข้อความคอนโซล JS) ที่ถูกจับ ใช้เพื่อตรวจจับลูปการดึงข้อมูลซ้ำ ข้อผิดพลาด 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"
}

URL เป็น S3 แบบ presigned ที่มีอายุสั้น — ดึงข้อมูลการดำเนินการหลักอีกครั้งผ่าน executions {action:"get", uuid} เพื่อต่ออายุ harStatus / consoleLogStatus แยกแยะ 'downloaded' (URL ที่ดึงข้อมูลได้), 'not_available' (หน้าไม่ได้ส่งข้อมูลใดๆ), 'failed' (การจับข้อมูลเสียหาย) ในการรันใหม่ URL มักจะเป็น null เนื่องจากการอัปโหลดข้อมูลที่จับได้เป็นแบบอะซิงโครนัสหลังจากเอเจนต์เสร็จสิ้น — โพล executions {action:"get", uuid: executionId} จนกว่าสถานะจะถึง 'downloaded' ส่วนหัว Authorization / Cookie / token/secret/api_key จะถูกล้างออกทางฝั่งเซิร์ฟเวอร์ก่อนที่อาร์ติแฟกต์จะถูกบันทึก

trigger_crawl

เริ่มการรวบรวมข้อมูลด้วยเอเจนต์เบราว์เซอร์ฝั่งเซิร์ฟเวอร์เพื่อเติมกราฟความรู้ของโปรเจกต์ URL ของ localhost ทำทันเนลอัตโนมัติ ส่งคืน {executionId, status, targetUrl, durationMs, outcome?, crawlSummary?, knowledgeGraph?, browserSession?} พร้อม knowledgeGraph.imported === true เมื่อการนำเข้าสำเร็จ บล็อก browserSession (URL HAR + console-log รูปแบบเดียวกับข้างต้น) ก็มีอยู่ในการรวบรวมข้อมูลที่เสร็จสมบูรณ์เช่นกัน

probe_page

การตรวจสอบหน้าแบบกลุ่มน้ำหนักเบาไม่ใช้ LLM ส่ง 1-20 URL; แต่ละรายการจะนำทาง รอการโหลด และส่งคืนสถานะที่เรนเดอร์ — ภาพหน้าจอ + ข้อมูลเมตาของหน้า + ข้อผิดพลาดคอนโซลที่มีโครงสร้าง + สรุปเครือข่าย ไม่มีลูปเอเจนต์ ไม่มีค่าใช้จ่าย LLM ไม่มีการยืนยันสถานการณ์ ใช้สำหรับ "ฉันเพิ่งทำ /settings พังหรือเปล่า?", การตรวจสอบควันหลายเส้นทางหลังจากการ refactor, การกวาดต่อ PR ใน CI และการตรวจสอบว่ายังทำงานอยู่หรือไม่ที่ check_app_in_browser ซึ่งลูปเอเจนต์ 60-150 วินาทีนั้นเกินความจำเป็น

พารามิเตอร์ประเภทคำอธิบาย
targetsarray จำเป็น1-20 รายการ: [{url, waitForSelector?, waitForLoadState?, timeoutMs?}]
targets[].urlstring จำเป็นURL สาธารณะหรือ localhost (ทำทันเนลอัตโนมัติ)
targets[].waitForLoadStateenum'load' (ค่าเริ่มต้น) / 'domcontentloaded' / 'networkidle'
targets[].waitForSelectorstringตัวเลือก CSS selector ที่จะรอหลังจากการนำทาง
targets[].timeoutMsnumberหมดเวลาต่อ URL, 1000-30000 (ค่าเริ่มต้น 10000)
includeHtmlbooleanส่งคืน HTML ดิบในแต่ละผลลัพธ์ (ค่าเริ่มต้น false)
captureScreenshotsbooleanส่งคืนหนึ่ง PNG ต่อเป้าหมาย (ค่าเริ่มต้น true)

ทั้งกลุ่มใช้การดำเนินการแบ็กเอนด์ + เซสชันเบราว์เซอร์ + ทันเนลร่วมกันเพียงครั้งเดียว — 5 URL ในการเรียกครั้งเดียวเร็วกว่าการเรียก URL เดียวแบบขนาน 5 ครั้งอย่างมาก ฟิลด์ error ต่อ URL รักษาความยืดหยุ่นของกลุ่ม: เป้าหมายเดียวที่ล้มเหลวไม่ทำให้รายการอื่นล้มเหลว

คีย์การรวม networkSummary คือ origin + pathname — ลูปการดึงข้อมูลซ้ำ (?n=0..4 ที่เรียก endpoint เดิมซ้ำๆ) จะยุบรวมเป็นรายการเดียวพร้อมจำนวนนับ ดังนั้น /api/poll ที่แสดงขึ้นพร้อม count: 47 คือสัญญาณ "ลูปการดึงข้อมูลซ้ำไม่สิ้นสุด" ที่สามารถดำเนินการได้ตามที่ผู้ใช้ร้องขอแต่แรก

งบประมาณประสิทธิภาพ: <10 วินาทีสำหรับ 1 URL, <25 วินาทีสำหรับ 20 พอร์ต localhost ที่ไม่ทำงานส่งคืน LocalServerUnreachable ใน <2 วินาทีโดยไม่ใช้การดำเนินการเวิร์กโฟลว์

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?}สภาพแวดล้อมพร้อมข้อมูลประจำตัวในบรรทัด (ไม่มีการส่งคืนรหัสผ่าน)
list{projectUuid?, q?, page?, pageSize?}สภาพแวดล้อมแบบแบ่งหน้า แต่ละรายการมีอาร์เรย์ข้อมูลประจำตัว
create{name, url, description?, projectUuid?, credentials?}สภาพแวดล้อมที่สร้างขึ้น (สามารถเริ่มต้นข้อมูลประจำตัวได้)
update{uuid, name?, url?, description?, addCredentials?, updateCredentials?, removeCredentialIds?}สภาพแวดล้อมที่แพตช์; การดำเนินการข้อมูลประจำตัวรัน ลบ → อัปเดต → เพิ่ม
delete{uuid, projectUuid?, confirm?}ลบสภาพแวดล้อม (ลดหลั่นไปยังข้อมูลประจำตัว) — ต้องมีการยืนยัน

projectUuid แก้ไขอัตโนมัติจาก git repo เมื่อละเว้น ความล้มเหลวต่อข้อมูลประจำตัวปรากฏใน credentialWarnings[] โดยไม่บล็อกการดำเนินการสภาพแวดล้อม

test_suite

การดำเนินการพารามิเตอร์ผลลัพธ์
list{projectUuid|projectName, search?, page?, pageSize?}ชุดการทดสอบแบบแบ่งหน้าพร้อมสถานะ + อัตราการผ่าน
create{name, description, projectUuid|projectName}ชุดการทดสอบที่สร้างขึ้น
run{suiteUuid|(suiteName+project), targetUrl?}ทริกเกอร์การทดสอบทั้งหมดแบบอะซิงโครนัส
results{suiteUuid|(suiteName+project)}ชุดการทดสอบ + ผลลัพธ์ต่อการทดสอบ
delete{suiteUuid|(suiteName+project), confirm?}ลบแบบซอฟต์ — ต้องมีการยืนยัน

test_case

การดำเนินการพารามิเตอร์ผลลัพธ์
create{name, description, agentTaskDescription, suiteUuid|(suiteName+project), relativeUrl?, maxSteps?}กรณีทดสอบที่สร้างขึ้น (ไม่รันอัตโนมัติ)
update{testUuid, name?, description?, agentTaskDescription?}กรณีทดสอบที่แพตช์
delete{testUuid, confirm?}ลบแบบซอฟต์ — ต้องมีการยืนยัน

executions

การดำเนินการพารามิเตอร์ผลลัพธ์
get{uuid}รายละเอียดเต็ม (nodeExecutions + สถานะ + errorInfo) + อาร์ติแฟกต์ภาพหน้าจอ/gif
list{status?, projectUuid?, page?, pageSize?}สรุปแบบแบ่งหน้า

404 จากแบ็กเอนด์แสดงเป็น isError: true พร้อม {error: 'NotFound', message, uuid} ข้อมูลประจำตัวจะถูกส่งคืนโดยไม่มีรหัสผ่าน เสมอ

การแบ่งหน้า

ทุกการตอบสนองโหมดตัวกรองจะถูกแบ่งหน้า รูปร่างการตอบสนอง:

{
  "filter": { "...echoed query params..." },
  "pageInfo": { "page": 1, "pageSize": 20, "totalCount": 47, "totalPages": 3, "hasMore": true },
  "<items>": [ ... ]
}

ส่ง page ที่เป็นตัวเลือก (1-indexed, ค่าเริ่มต้น 1) และ pageSize (ค่าเริ่มต้น 20, สูงสุด 200; ค่าที่เกินจะถูกจำกัด) ไม่มีการตอบสนองใดถูกตัดทอนอย่างเงียบๆ

ทรัพยากร

นอกจากเครื่องมือแล้ว เซิร์ฟเวอร์ยังแสดงเอนทิตีแบบอ่านอย่างเดียวเป็น ทรัพยากร MCP เพื่อให้ไคลเอนต์สามารถเรียกดูและ @-mention เป็นบริบทได้:

URIอะไร
debugg-ai://projectsโปรเจกต์ทั้งหมด (หน้าแรก)
debugg-ai://environmentsสภาพแวดล้อมสำหรับโปรเจกต์ที่ตรวจพบอัตโนมัติ
debugg-ai://executionsการดำเนินการล่าสุด (หน้าแรก)
debugg-ai://project/{uuid}หนึ่งโปรเจกต์, รายละเอียดเต็ม
debugg-ai://environment/{uuid}หนึ่งสภาพแวดล้อม (ข้อมูลประจำตัวในบรรทัด, รหัสผ่านถูกปกปิด)
debugg-ai://execution/{uuid}หนึ่งการดำเนินการ, รายละเอียดโหนดเต็ม + ลิงก์อาร์ติแฟกต์

การอ่านส่งไปยังตัวจัดการเดียวกันกับเครื่องมือ project / environment / executions ดังนั้นข้อมูลและการรับรองความถูกต้องจึงเหมือนกัน ทรัพยากรเป็นส่วนเสริม — ไคลเอนต์ที่ไม่มีการสนับสนุนทรัพยากรยังคงใช้เครื่องมือต่อไป

ค่าคงที่ด้านความปลอดภัย

  • รหัสผ่านเป็นแบบเขียนอย่างเดียว จะไม่ปรากฏในเนื้อหาการตอบสนองใดๆ จากเครื่องมือใดๆ
  • URL ทันเนล (*.ngrok.debugg.ai) จะถูกตัดออกจากการตอบสนองของเอเจนต์เบราว์เซอร์ทั้งหมด รวมถึงข้อความที่เขียนโดยเอเจนต์
  • 404 จากแบ็กเอนด์แสดงเป็น isError: true พร้อม {error: 'NotFound', ...} ไม่เคยเป็นข้อยกเว้นที่ถูกโยน
  • DEBUGGAI_API_KEY ที่หายไปแสดงเป็นข้อผิดพลาดเครื่องมือที่มีโครงสร้างในการเรียกใช้ครั้งแรก — เซิร์ฟเวอร์ยังคงลงทะเบียนและแสดงรายการเครื่องมือตามปกติ

การย้ายไปยัง v3.0.0 (เครื่องมือแบบ action-based)

v3 รวมเครื่องมือ 20 รายการต่อคำกริยาเป็นเครื่องมือแบบ action-based 8 รายการ เครื่องมือเก่า → tool {action} ใหม่:

ถูกลบออกการแทนที่
search_projectsproject {action:"get"} / project {action:"list"}
create_projectproject {action:"create"}
update_project, delete_projectถูกตัดออก — ใช้เว็บแอป DebuggAI
search_environmentsenvironment {action:"get"} / {action:"list"}
create_environment / update_environment / delete_environmentenvironment {action:"create"|"update"|"delete"}
create_test_suite / search_test_suites / run_test_suite / get_test_suite_results / delete_test_suitetest_suite {action:"create"|"list"|"run"|"results"|"delete"}
create_test_case / update_test_case / delete_test_casetest_case {action:"create"|"update"|"delete"}
search_executionsexecutions {action:"get"|"list"}
trigger_crawl พารามิเตอร์ headlessถูกตัดออก — เป็น headless เสมอ

การกระทำ delete ตอนนี้ต้องมีการยืนยัน (พรอมต์ elicitation หรือ confirm: true) ไคลเอนต์รับพื้นผิวใหม่เมื่อรีสตาร์ท MCP

การย้ายจาก v1.x (การเปลี่ยนแปลงที่เข้ากันไม่ได้ใน v2.0.0)

v2 ยุบพื้นผิวเครื่องมือ 22 รายการเหลือ 11 รายการ การแมปเครื่องมือเก่า → ใหม่:

ถูกลบออกการแทนที่
list_projects, get_projectsearch_projects (โหมด uuid เทียบกับโหมดตัวกรอง)
list_environments, get_environmentsearch_environments
list_credentials, get_credentialsearch_environments — ข้อมูลประจำตัวในบรรทัดในแต่ละสภาพแวดล้อม
create_credentialcreate_environment({credentials: [...]}) เริ่มต้น, หรือ update_environment({addCredentials: [...]})
update_credentialupdate_environment({updateCredentials: [{uuid, ...patch}]})
delete_credentialupdate_environment({removeCredentialIds: [uuid]})
list_teams, list_reposcreate_project({teamName, repoName}) — การแก้ไขชื่อพร้อมการจัดการความกำกวม
list_executions, get_executionsearch_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
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

การขนส่งระยะไกล / HTTP (ตัวเลือก)

โดยค่าเริ่มต้นเซิร์ฟเวอร์พูด stdio (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: ทุก POST /mcp ต้องการ Authorization: Bearer <token>; โทเค็นที่ขาดหาย/ไม่ถูกต้องจะได้รับ 401 พร้อมกับ WWW-Authenticate ที่ชี้ไปยังข้อมูลเมตา RFC 9728 และไคลเอนต์จะดำเนินการตามขั้นตอน OAuth กับเซิร์ฟเวอร์การอนุญาตที่ประกาศไว้ ผู้ถือโทเค็นมีขอบเขตตามคำขอ — api.debugg.ai ทำหน้าที่ตรวจสอบความถูกต้อง

ปลายทางวัตถุประสงค์
POST /mcpMCP Streamable HTTP (ป้องกันด้วยผู้ถือโทเค็น)
GET /.well-known/oauth-protected-resourceข้อมูลเมตา RFC 9728 (การค้นพบเซิร์ฟเวอร์การอนุญาต)
GET /healthการตรวจสอบความสมบูรณ์ของตัวจัดสรรภาระงาน / ECS
ตัวแปรสภาพแวดล้อมค่าเริ่มต้นวัตถุประสงค์
DEBUGGAI_MCP_TRANSPORTstdioตั้งค่าเป็น http สำหรับการขนส่งระยะไกล
PORT3000พอร์ตที่ HTTP รับฟัง
DEBUGGAI_MCP_PUBLIC_URLhttps://mcp.debugg.aiURL ทรัพยากรสาธารณะของเซิร์ฟเวอร์นี้ (RFC 9728 resource)
DEBUGGAI_OAUTH_ISSUERhttps://auth.debugg.aiเซิร์ฟเวอร์การอนุญาตที่ประกาศให้ไคลเอนต์ทราบ
DEBUGGAI_TOKEN_TYPEtokenตั้งค่าเป็น bearer เพื่อให้โทเค็น OAuth ส่งต่อเป็น Authorization: Bearer

การติดตั้งแบบ stdio ไม่จำเป็นต้องใช้สิ่งเหล่านี้เลย

การวัดและส่งข้อมูลทางไกล

เซิร์ฟเวอร์ MCP มาพร้อมกับการวัดและส่งข้อมูลทางไกลที่เปิดใช้งานตามค่าเริ่มต้น — มีคีย์โปรเจกต์ PostHog แบบเขียนอย่างเดียวที่ฝังไว้ (phc_*) เพื่อให้ทีมสามารถสังเกตอัตราการเข้าถึงแคช จังหวะการโพล ความน่าเชื่อถือของทันเนล และเมตริกการดำเนินงานอื่นๆ ทั่วทั้งฐานการติดตั้ง เหตุการณ์ที่บันทึก:

เหตุการณ์เมื่อใด
tool.executed / tool.failedต่อการเรียกใช้เครื่องมือ
workflow.executedต่อการดำเนินการของบราวเซอร์เอเจนต์ (ประกอบด้วย pollCount, durationMs, finalIntervalMs)
tunnel.provisioned / tunnel.provision_retry / tunnel.stoppedต่อเหตุการณ์วงจรชีวิตของทันเนล
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 ที่สร้างขึ้นเป็นกระบวนการย่อย ฝึกใช้ทุกเครื่องมือกับแบ็กเอนด์จริง และเขียนอาร์ติแฟกต์ตามขั้นตอนไปยัง scripts/evals/artifacts/<timestamp>/ ดู scripts/evals/flows/ สำหรับสถานการณ์แต่ละรายการ

การลงทะเบียน MCP: debugg-ai-local เทียบกับ debugg-ai

ที่เก็บนี้มาพร้อมกับ .mcp.json ที่ลงทะเบียนเซิร์ฟเวอร์ที่มีขอบเขตโปรเจกต์ชื่อ debugg-ai-local ซึ่งชี้ไปที่ node dist/index.js — โค้ดภายในเครื่องที่สร้างขึ้นใหม่ มันจะเปิดใช้งานเฉพาะเมื่อไดเรกทอรีการทำงานของ Claude Code เป็นที่เก็บนี้เท่านั้น

โปรเจกต์อื่นๆ ของคุณควรใช้การลงทะเบียน debugg-ai แบบขอบเขตผู้ใช้ที่ดึงมาจากแพ็คเกจ npm ที่เผยแพร่:

npm run mcp:global      # registers debugg-ai in ~/.claude.json to npx -y @debugg-ai/debugg-ai-mcp

หลังจากแก้ไขโค้ดที่นี่ ให้รัน npm run mcp:local (ซึ่งเป็นเพียงการสร้างใหม่) เพื่อให้การเรียกใช้ debugg-ai-local ครั้งถัดไปรับการเปลี่ยนแปลงของคุณ

ลิงก์

แดชบอร์ด · เอกสาร · ปัญหา · ดิสคอร์ด


สัญญาอนุญาต Apache-2.0 © 2025 DebuggAI