Sentry MCP

ทางการ

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

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

  • Retrieve and inspect Sentry issues — ให้เอเจนต์ของคุณดึงปัญหาตาม ID ที่ระบุ หรือแสดงรายการปัญหาที่ยังไม่ได้รับการแก้ไขล่าสุดสำหรับโปรเจกต์ โดยใช้ get_issue และ list_issues
  • Review event details and stack traces — เจาะลึกเข้าไปในเหตุการณ์ข้อผิดพลาดด้วย get_event เพื่อดู stack trace แบบเต็ม breadcrumbs และบริบทของอุปกรณ์
  • Search issues with natural language — อธิบายปัญหาเป็นภาษาธรรมดา (เช่น “ค้นหาข้อยกเว้น null pointer ทั้งหมดในขั้นตอนชำระเงิน”) และให้เอเจนต์แปลงเป็นคำค้นหาใน Sentry ผ่าน search_issues
  • Triage issues by updating state — ให้เอเจนต์แก้ไข เก็บถาวร หรือกำหนดหมายปัญหานั้นโดยตรงผ่าน update_issue

เอกสาร

sentry-mcp

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

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

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

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

https://mcp.sentry.dev

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

ปลั๊กอิน Claude Code

ติดตั้งเป็นปลั๊กอิน Claude Code เพื่อการมอบหมายงานให้ subagent โดยอัตโนมัติ:

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

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

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

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

Stdio vs Remote

ในขณะที่ repository นี้มุ่งเน้นไปที่การทำหน้าที่เป็นบริการ MCP เรายังรองรับการขนส่งแบบ stdio ด้วย นี่ยังคงเป็นงานที่กำลังดำเนินการอยู่ แต่เป็นวิธีที่ง่ายที่สุดในการปรับใช้และรัน MCP กับ Sentry แบบ self-hosted

หมายเหตุ: เครื่องมือค้นหาที่ขับเคลื่อนด้วย AI (search_events, 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

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

บางฟีเจอร์ (เช่น Seer) อาจไม่พร้อมใช้งานบนอินสแตนซ์แบบ self-hosted คุณสามารถ ปิดการใช้งานสกิลเฉพาะเพื่อป้องกันไม่ให้เครื่องมือที่ไม่รองรับถูกเปิดเผย:

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

สำหรับอินสแตนซ์แบบ self-hosted ที่ไม่มี TLS:

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

Remote พร้อม Explicit Sentry Token

ไคลเอนต์ระยะไกลที่รองรับ custom 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 ตัว worker จะไม่จัดเก็บ, ตรวจสอบ, แลกเปลี่ยน หรือรีเฟรช token ต้นทาง มันจะส่งต่อ token ผ่าน การเรียก Sentry API เดียวกันกับที่ใช้โดยเซสชันที่ backed ด้วย 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'

# Optional overrides
SENTRY_HOST=                 # For self-hosted deployments
MCP_DISABLE_SKILLS=          # Disable specific skills (comma-separated, e.g. 'seer')

สำคัญ: ตั้งค่า 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-..."
      }
    }
  }
}

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

สำหรับอินสแตนซ์แบบ self-hosted ที่ไม่รองรับ Seer:

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

MCP Inspector

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

pnpm inspector

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

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

การพัฒนาในเครื่อง

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

  1. ตั้งค่าสภาพแวดล้อมและสกิลของ agent:

    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" ได้

การทดสอบ

มีชุดทดสอบสามชุดรวมอยู่ด้วย: การทดสอบหน่วย, การประเมินผล และการทดสอบด้วยตนเอง

การทดสอบหน่วย สามารถรันได้โดยใช้:

pnpm test

การประเมินผล ต้องการไฟล์ .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

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

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

# Test agent mode (use_sentry tool only)
pnpm -w run cli --agent "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, web UI, CLI client)

บันทึกการพัฒนา

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

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

การตรวจสอบอัตโนมัติควรได้รับการปฏิบัติเป็น:

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

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

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

ต้องการมีส่วนร่วมหรือสำรวจแผนผังเอกสารฉบับเต็ม? ดู CLAUDE.md (ยังมีให้ในชื่อ AGENTS.md) สำหรับเวิร์กโฟลว์ของผู้มีส่วนร่วมและดัชนีเอกสารฉบับสมบูรณ์ โฟลเดอร์ docs/ มีคำแนะนำแยกตามหัวข้อและไฟล์ .md ที่รวมเครื่องมือไว้