Sentry MCP

ทางการ

เซิร์ฟเวอร์ Sentry MCP อย่างเป็นทางการสำหรับตรวจสอบปัญหา รายงานข้อผิดพลาด ร่องรอย และข้อมูลการตรวจสอบประสิทธิภาพจากเอเจนต์เขียนโค้ด AI

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

  • ตรวจสอบข้อผิดพลาดและปัญหา — ให้ผู้ช่วยของคุณดึงข้อมูลรายละเอียดข้อผิดพลาดจาก Sentry, stack traces และบริบทของ issue เพื่อใช้ในการดีบัก
  • ติดตามปัญหาด้านประสิทธิภาพ — ให้ผู้ช่วยของคุณวิเคราะห์ distributed traces และข้อมูลประสิทธิภาพเพื่อระบุจุดที่ทำให้ช้าลง
  • ค้นหาด้วยภาษาธรรมชาติ — ใช้การค้นหาที่ขับเคลื่อนด้วย AI เพื่อสอบถามข้อผิดพลาด, traces, logs หรือ issues โดยอธิบายสิ่งที่คุณกำลังมองหาเป็นภาษาอังกฤษธรรมดา
  • คัดแยกและจัดการโปรเจกต์ — ให้ผู้ช่วยของคุณตรวจสอบสุขภาพของโปรเจกต์, ทบทวนการมอบหมายงานในทีม หรือจัดการการกำหนดค่าระดับโปรเจกต์
  • กำหนดค่าสำหรับ Sentry ที่โฮสต์เอง — ชี้ MCP server ไปยังอินสแตนซ์ Sentry ของคุณเอง และปรับเปลี่ยนว่า skill ใด (เช่น inspect หรือ seer) ที่เปิดใช้งานอยู่

เซิร์ฟเวอร์ MCP แบบโฮสต์

npx add-mcp 'https://mcp.sentry.dev/mcp'

ติดตั้งลง Claude Code, Codex, Cursor และอื่นๆ

เอกสาร

Sentry Toolkit

พื้นที่เก็บข้อมูลนี้ประกอบด้วย Sentry CLI, เซิร์ฟเวอร์ Sentry MCP และแพ็กเกจที่ใช้ร่วมกัน สำหรับ CLI ดู คู่มือ CLI และเอกสารที่เผยแพร่ที่ https://cli.sentry.dev/ ดัชนีเอกสาร ครอบคลุมทั้งผลิตภัณฑ์และคำแนะนำสำหรับผู้มีส่วนร่วม

Sentry MCP

บริการ MCP ของ Sentry ออกแบบมาเป็นหลักสำหรับเอเจนต์การเขียนโค้ดแบบมีมนุษย์อยู่ในวงจร (human-in-the-loop) การเลือกเครื่องมือและลำดับความสำคัญของเรามุ่งเน้นไปที่เวิร์กโฟลว์ของนักพัฒนาและกรณีการใช้งานการดีบัก มากกว่าการให้เซิร์ฟเวอร์ MCP ทั่วไปสำหรับฟังก์ชันทั้งหมดของ Sentry

เซิร์ฟเวอร์ MCP ระยะไกลนี้ทำหน้าที่เป็นมิดเดิลแวร์ไปยัง Sentry API ต้นทาง ซึ่งปรับให้เหมาะสมสำหรับผู้ช่วยเขียนโค้ด เช่น Cursor, Claude Code และเครื่องมือพัฒนาที่คล้ายกัน โดยอ้างอิงจาก งานของ Cloudflare เกี่ยวกับ MCP ระยะไกล

เริ่มต้นใช้งาน

คุณจะพบทุกสิ่งที่จำเป็นต้องรู้โดยการเยี่ยมชมบริการที่ใช้งานจริงในโปรดักชัน:

https://mcp.sentry.dev

หากคุณต้องการมีส่วนร่วม เรียนรู้วิธีการทำงาน หรือรันสิ่งนี้สำหรับ Sentry แบบโฮสต์เอง โปรดอ่านต่อด้านล่าง

ปลั๊กอิน Claude Code

ติดตั้งเป็นปลั๊กอิน Claude Code สำหรับการมอบหมายงานให้ซับเอเจนต์อัตโนมัติ:

claude plugin marketplace add getsentry/sentry-mcp
claude plugin install sentry-mcp@sentry-mcp

สิ่งนี้ให้ซับเอเจนต์ sentry-mcp ที่ Claude มอบหมายงานให้โดยอัตโนมัติเมื่อคุณถามเกี่ยวกับข้อผิดพลาด ปัญหา เทรซ หรือประสิทธิภาพของ Sentry

สำหรับเครื่องมือรุ่นที่มองไปข้างหน้าและฟีเจอร์เพิ่มเติม:

claude plugin install sentry-mcp@sentry-mcp-experimental

Stdio เทียบกับ Remote

แม้ว่าพื้นที่เก็บข้อมูลนี้จะมุ่งเน้นการทำหน้าที่เป็นบริการ MCP เรายังรองรับทรานสปอร์ต stdio ด้วย สิ่งนี้ยังอยู่ระหว่างการพัฒนา แต่เป็นวิธีที่ง่ายที่สุดในการปรับใช้ MCP กับ Sentry แบบโฮสต์เอง

หมายเหตุ: เครื่องมือค้นหาที่ขับเคลื่อนด้วย AI (search_errors, search_traces, search_logs, search_issues, ฯลฯ) ต้องมีผู้ให้บริการ LLM (OpenAI, Azure OpenAI, Anthropic หรือ OpenRouter) เครื่องมือเหล่านี้ใช้การประมวลผลภาษาธรรมชาติเพื่อแปลงคำค้นหาเป็นไวยากรณ์คำค้นหาของ Sentry หากไม่ได้กำหนดค่าผู้ให้บริการ เครื่องมือเฉพาะเหล่านี้จะไม่พร้อมใช้งาน แต่เครื่องมืออื่นๆ ทั้งหมดจะทำงานตามปกติ

หากต้องการใช้ทรานสปอร์ต stdio คุณจะต้องสร้าง User Auth Token ใน Sentry ด้วยขอบเขตที่จำเป็น ณ เวลาที่เขียนนี้คือ:

org:read
project:read
project:write
team:read
team:write
event:write

เปิดใช้ทรานสปอร์ต:

npx @sentry/mcp-server@latest --access-token=sentry-user-token

จำเป็นต้องเชื่อมต่อกับการติดตั้งแบบโฮสต์เองหรือไม่? เพิ่ม --host (เฉพาะชื่อโฮสต์ เช่น --host=sentry.example.com) เมื่อคุณรันคำสั่ง สำหรับการติดตั้งภายในที่แยกออกมาซึ่งเปิดเผยเฉพาะ HTTP ธรรมดา ให้เพิ่ม --insecure-http ด้วย

Seer ไม่ได้เป็นส่วนหนึ่งของ Sentry แบบโฮสต์เอง ดังนั้นสกิล seer จึงถูกตัดออกจากชุดสกิลเริ่มต้นเมื่อใดก็ตามที่ --host ชี้ไปที่โฮสต์ที่ไม่ใช่ sentry.io หากการติดตั้งแบบโฮสต์เองของคุณรัน Seer จริง ให้เลือกใช้อย่างชัดเจน:

npx @sentry/mcp-server@latest --access-token=TOKEN --host=sentry.example.com --skills=inspect,seer

คุณยังสามารถปิดใช้งานสกิลอื่นใดก็ได้เพื่อป้องกันไม่ให้เครื่องมือที่ไม่ได้รับการสนับสนุนถูกเปิดเผย:

npx @sentry/mcp-server@latest --access-token=TOKEN --host=sentry.example.com --disable-skills=project-management

สำหรับอินสแตนซ์แบบโฮสต์เองที่ไม่มี TLS:

npx @sentry/mcp-server@latest --access-token=TOKEN --host=sentry.internal:9000 --insecure-http

Remote พร้อม Token Sentry ที่ชัดเจน

ไคลเอ็นต์ระยะไกลที่รองรับ HTTP headers ที่กำหนดเองสามารถส่ง Sentry API token ต้นทางโดยตรงไปยังทรานสปอร์ต Cloudflare:

{
  "mcpServers": {
    "sentry": {
      "url": "https://mcp.sentry.dev/mcp",
      "headers": {
        "Authorization": "Sentry-Bearer ${SENTRY_ACCESS_TOKEN}"
      }
    }
  }
}

Sentry-Bearer ถูกแยกจาก Bearer โดยเจตนา: Bearer สงวนไว้สำหรับ MCP OAuth access tokens ด้วย Sentry-Bearer เวิร์กเกอร์จะไม่จัดเก็บ ตรวจสอบ แลกเปลี่ยน หรือรีเฟรช token ต้นทาง มันส่งต่อ token ผ่านการเรียก Sentry API เดียวกับที่ใช้ในเซสชันที่รองรับ OAuth และไคลเอ็นต์หรือผู้ให้บริการต้นทางยังคงรับผิดชอบอายุการใช้งานและการรีเฟรช token

การรับรองความถูกต้องระยะไกลโดยตรงมีค่าเริ่มต้นเป็นสกิล MCP ที่ใช้งานอยู่ทั้งหมด คุณสามารถจำกัดเครื่องมือที่เปิดเผยด้วย ?skills=inspect,triage หรือ ?disable-skills=seer

ตัวแปรสภาพแวดล้อม

SENTRY_ACCESS_TOKEN=         # Required: Your Sentry auth token

# LLM Provider Configuration (required for AI-powered search tools)
EMBEDDED_AGENT_PROVIDER=     # Required when multiple provider keys are set: 'openai', 'azure-openai', 'anthropic', or 'openrouter'
OPENAI_API_KEY=              # Required if using OpenAI
ANTHROPIC_API_KEY=           # Required if using Anthropic
OPENROUTER_API_KEY=          # Required if using OpenRouter
OPENROUTER_MODEL=            # Optional OpenRouter model, defaults to 'openai/gpt-5.6-luna'
OPENROUTER_REASONING_EFFORT= # Optional OpenRouter reasoning effort, defaults to 'high'

# Optional overrides
SENTRY_HOST=                 # For self-hosted deployments (drops 'seer' from the default skills)
MCP_SKILLS=                  # Grant specific skills (comma-separated, e.g. 'inspect,seer')
MCP_DISABLE_SKILLS=          # Disable specific skills (comma-separated, e.g. 'project-management')

สำคัญ: ตั้งค่า EMBEDDED_AGENT_PROVIDER เสมอเพื่อระบุผู้ให้บริการ LLM ของคุณอย่างชัดเจน การตรวจจับอัตโนมัติโดยอิงจาก API keys เพียงอย่างเดียวนั้นเลิกใช้แล้วและจะถูกลบออกในรุ่นอนาคต ดู docs/operations/embedded-agents.md สำหรับตัวเลือกการกำหนดค่าโดยละเอียด

ตัวอย่างการกำหนดค่า MCP

{
  "mcpServers": {
    "sentry": {
      "command": "npx",
      "args": ["@sentry/mcp-server"],
      "env": {
        "SENTRY_ACCESS_TOKEN": "your-token",
        "EMBEDDED_AGENT_PROVIDER": "openai",
        "OPENAI_API_KEY": "sk-..."
      }
    }
  }
}

หากคุณปล่อยตัวแปรโฮสต์ไว้ไม่ตั้งค่า CLI จะกำหนดเป้าหมายบริการ Sentry SaaS โดยอัตโนมัติ ตั้งค่าการแทนที่เมื่อคุณใช้งาน Sentry แบบโฮสต์เองเท่านั้น

การตั้งค่า SENTRY_HOST เป็นโฮสต์แบบโฮสต์เองยังตัดสกิล seer ออกจากชุดเริ่มต้น เนื่องจาก Seer ไม่พร้อมใช้งานบน Sentry แบบโฮสต์เอง สำหรับการติดตั้งแบบโฮสต์เองที่รัน Seer จริง ให้เลือกใช้ด้วย MCP_SKILLS:

{
  "mcpServers": {
    "sentry": {
      "command": "npx",
      "args": ["@sentry/mcp-server"],
      "env": {
        "SENTRY_ACCESS_TOKEN": "your-token",
        "SENTRY_HOST": "sentry.example.com",
        "MCP_SKILLS": "inspect,seer"
      }
    }
  }
}

MCP Inspector

MCP รวม Inspector เพื่อทดสอบบริการได้อย่างง่ายดาย:

pnpm inspector

ป้อน URL ของเซิร์ฟเวอร์ MCP (http://localhost:5173) แล้วกดเชื่อมต่อ สิ่งนี้ควรเริ่มโฟลว์การรับรองความถูกต้องให้คุณ

หมายเหตุ: หากคุณมีปัญหากับโฟลว์ OAuth เมื่อเข้าถึง inspector บน 127.0.0.1 ให้ลองใช้ localhost แทนโดยเยี่ยมชม http://localhost:6274

การพัฒนาท้องถิ่น

หากต้องการมีส่วนร่วมในการเปลี่ยนแปลง คุณจะต้องตั้งค่าสภาพแวดล้อมท้องถิ่นของคุณ:

  1. ตั้งค่าสภาพแวดล้อมและสกิลเอเจนต์:

    make setup-env  # Creates .env files and installs shared agent skills
    

    สิ่งนี้ยังรัน npx @sentry/dotagents install เพื่อติดตั้งสกิลที่ใช้ร่วมกันจาก getsentry/skills ลงใน .agents/skills/ (symlinked ไปยัง .claude/skills และ .cursor/skills) หากคุณต้องการอัปเดตสกิลในภายหลัง ให้รันโดยตรง:

    npx @sentry/dotagents install
    
  2. สร้าง OAuth App ใน Sentry (Settings => API => Applications):

    • Homepage URL: http://localhost:5173
    • Authorized Redirect URIs: http://localhost:5173/oauth/callback
    • จด Client ID ของคุณและสร้าง Client secret
  3. กำหนดค่าข้อมูลประจำตัวของคุณ:

    • แก้ไข .env ในไดเรกทอรีรากและเพิ่ม OPENAI_API_KEY หรือ OPENROUTER_API_KEY
    • แก้ไข packages/mcp-cloudflare/.env และเพิ่ม:
      • SENTRY_CLIENT_ID=your_development_sentry_client_id
      • SENTRY_CLIENT_SECRET=your_development_sentry_client_secret
      • COOKIE_SECRET=my-super-secret-cookie
  4. เริ่มเซิร์ฟเวอร์การพัฒนา:

    pnpm dev
    

การตรวจสอบ

รันเซิร์ฟเวอร์ในเครื่องเพื่อให้พร้อมใช้งานที่ http://localhost:5173

pnpm dev

หากต้องการทดสอบเซิร์ฟเวอร์ในเครื่อง ให้ป้อน http://localhost:5173/mcp ลงใน Inspector แล้วกดเชื่อมต่อ เมื่อคุณทำตามคำแนะนำแล้ว คุณจะสามารถ "List Tools" ได้

การทดสอบ

มีชุดทดสอบสามชุด: unit tests, evaluations และ manual testing

Unit tests สามารถรันได้โดยใช้:

pnpm test

Evaluations ต้องมีไฟล์ .env ในรากของโปรเจกต์พร้อมการกำหนดค่าบางอย่าง:

# .env (in project root)
OPENAI_API_KEY=      # Use OpenAI-backed AI-powered tools
OPENROUTER_API_KEY=  # Or use OpenRouter-backed AI-powered tools

หมายเหตุ: ไฟล์ .env ที่รากให้ค่าเริ่มต้นสำหรับทุกแพ็กเกจ แต่ละแพ็กเกจสามารถมีไฟล์ .env ของตัวเองเพื่อแทนที่ค่าเริ่มต้นเหล่านี้ระหว่างการพัฒนา

เมื่อเสร็จแล้วคุณสามารถรันได้โดยใช้:

pnpm eval

Manual testing (ที่ต้องการสำหรับการทดสอบการเปลี่ยนแปลง MCP):

# Test with local dev server (default: http://localhost:5173)
pnpm -w run cli "who am I?"

# Test against production
pnpm -w run cli --mcp-host=https://mcp.sentry.dev "query"

# Test with local stdio mode (requires SENTRY_ACCESS_TOKEN)
pnpm -w run cli --access-token=TOKEN "query"

หมายเหตุ: CLI มีค่าเริ่มต้นเป็น http://localhost:5173 แทนที่ด้วย --mcp-host หรือตั้งค่าตัวแปรสภาพแวดล้อม MCP_URL

เพลย์บุ๊กการทดสอบที่ครอบคลุม:

  • การทดสอบ Stdio: ดู docs/testing/stdio.md สำหรับคู่มือฉบับสมบูรณ์เกี่ยวกับการสร้าง การรัน และการทดสอบการใช้งาน stdio (IDEs, MCP Inspector)
  • การทดสอบ Remote: ดู docs/testing/remote.md สำหรับคู่มือฉบับสมบูรณ์เกี่ยวกับการทดสอบเซิร์ฟเวอร์ระยะไกล (OAuth, เว็บ UI, ไคลเอ็นต์ CLI)

หมายเหตุการพัฒนา

การตรวจสอบโค้ดอัตโนมัติ

พื้นที่เก็บข้อมูลนี้ใช้เครื่องมือตรวจสอบโค้ดอัตโนมัติ (เช่น Cursor BugBot) เพื่อช่วยระบุปัญหาที่อาจเกิดขึ้นใน pull requests เครื่องมือเหล่านี้ให้ข้อเสนอแนะและคำแนะนำที่เป็นประโยชน์ แต่ เราไม่แนะนำให้ทำให้การตรวจสอบเหล่านี้เป็นข้อบังคับ เนื่องจากความแม่นยำยังคงพัฒนาอยู่และสามารถสร้างผลบวกลวงได้

การตรวจสอบอัตโนมัติควรถือเป็น:

  • ✅ ข้อเสนอแนะที่เป็นประโยชน์ ที่ควรพิจารณาระหว่างการตรวจสอบโค้ด
  • ✅ จุดเริ่มต้น สำหรับการอภิปรายและการปรับปรุง
  • ❌ ไม่ใช่ข้อกำหนดที่บล็อก การรวม PR
  • ❌ ไม่ใช่การแทนที่ การตรวจสอบโค้ดโดยมนุษย์

เมื่อจัดการกับข้อเสนอแนะอัตโนมัติ ให้มุ่งเน้นที่ข้อกังวลพื้นฐานมากกว่าการปฏิบัติตามทุกคำแนะนำอย่างเคร่งครัด

เอกสารสำหรับผู้มีส่วนร่วม

ต้องการมีส่วนร่วมหรือไม่? เริ่มที่ ดัชนีเอกสาร Toolkit สำหรับคู่มือ CLI, MCP และคู่มือที่ใช้ร่วมกัน ดู AGENTS.md สำหรับกฎของพื้นที่เก็บข้อมูลและ packages/cli/AGENTS.md สำหรับกฎเฉพาะของ CLI