{"schema":"agentwares.mcpcheck/v1","server":{"owner":"demo","slug":"sentry","name":"Sentry (remote, OAuth)","spec":{"kind":"remote","url":"https://mcp.sentry.dev/mcp"},"tier":"preview","schedule":"manual","description":"Sentry's official remote server behind OAuth."},"run":{"id":"fixture_sentry","runKey":"sentry:2026-09-02","kind":"manual","scheduledAt":"2026-09-02T18:05:56.263Z","finishedAt":"2026-09-02T18:05:56.263Z","costUsd":0,"cellCount":9,"expectedCount":9},"overall":"pass","status":"passing","install":{"status":"skip","cells":[{"id":"install:local-darwin","kind":"install","status":"skip","host":"local-darwin","source":"local","ranAt":"2026-09-02T11:25:13.478Z","summary":"needs credentials (401)","durationMs":2084,"detail":{"spec":"https://mcp.sentry.dev/mcp","node":"v22.23.2","arch":"arm64","server":null,"toolCount":0,"stderrTail":""},"error":{"code":"AUTH_REQUIRED","cause":"Streamable HTTP error: Error POSTing to endpoint: {\"error\":\"invalid_token\",\"error_description\":\"Missing or invalid access token\"}","fix":"Add an Authorization header or OAuth refresh credentials to the enrollment.","retryable":false}}],"hosts":["local-darwin"],"divergentHosts":[]},"compat":{"status":"skip","cells":[{"id":"compat:claude-cli@cli:local-darwin","kind":"compat","status":"skip","host":"local-darwin","source":"local","ranAt":"2026-09-02T18:05:56.263Z","summary":"needs credentials (401): Claude Code cannot complete a browser OAuth flow unattended","detail":{"client":"claude-cli","slot":"cli","version":"2.1.196"},"error":{"code":"AUTH_REQUIRED","cause":"unauthenticated initialize answered 401","fix":"Add a bearer token or OAuth refresh credentials to the enrollment; the runner then passes the access token as a header.","retryable":false}},{"id":"compat:py-sdk@N-1:local-darwin","kind":"compat","status":"skip","host":"local-darwin","source":"local","ranAt":"2026-09-02T17:57:16.462Z","summary":"needs credentials (401)","detail":{"client":"py-sdk","slot":"N-1","version":"unknown"},"error":{"code":"AUTH_REQUIRED","cause":"unauthenticated initialize answered 401","fix":"Add an Authorization header or OAuth refresh credentials to the enrollment.","retryable":false}},{"id":"compat:py-sdk@N:local-darwin","kind":"compat","status":"skip","host":"local-darwin","source":"local","ranAt":"2026-09-02T17:57:15.173Z","summary":"needs credentials (401)","detail":{"client":"py-sdk","slot":"N","version":"unknown"},"error":{"code":"AUTH_REQUIRED","cause":"unauthenticated initialize answered 401","fix":"Add an Authorization header or OAuth refresh credentials to the enrollment.","retryable":false}},{"id":"compat:ts-sdk@N-1:local-darwin","kind":"compat","status":"skip","host":"local-darwin","source":"local","ranAt":"2026-09-02T11:25:17.764Z","summary":"needs credentials (401)","durationMs":1648,"detail":{"client":"ts-sdk","slot":"N-1","version":"unknown","stderrTail":""},"error":{"code":"AUTH_REQUIRED","cause":"Streamable HTTP error: Error POSTing to endpoint: {\"error\":\"invalid_token\",\"error_description\":\"Missing or invalid access token\"}","fix":"Add an Authorization header or OAuth refresh credentials to the enrollment.","retryable":false}},{"id":"compat:ts-sdk@N:local-darwin","kind":"compat","status":"skip","host":"local-darwin","source":"local","ranAt":"2026-09-02T11:25:16.079Z","summary":"needs credentials (401)","durationMs":1308,"detail":{"client":"ts-sdk","slot":"N","version":"unknown","stderrTail":""},"error":{"code":"AUTH_REQUIRED","cause":"Streamable HTTP error: Error POSTing to endpoint: {\"error\":\"invalid_token\",\"error_description\":\"Missing or invalid access token\"}","fix":"Add an Authorization header or OAuth refresh credentials to the enrollment.","retryable":false}}],"worksWith":{"claude":{"status":"skip","inferred":false,"from":["compat:claude-cli@cli:local-darwin"]},"cursor":{"status":"skip","inferred":true,"from":["compat:ts-sdk@N-1:local-darwin","compat:ts-sdk@N:local-darwin"]},"vscode":{"status":"skip","inferred":true,"from":["compat:ts-sdk@N-1:local-darwin","compat:ts-sdk@N:local-darwin"]},"python":{"status":"skip","inferred":false,"from":["compat:py-sdk@N-1:local-darwin","compat:py-sdk@N:local-darwin"]}},"matrix":{"hosts":["local-darwin"],"rows":[{"row":{"client":"ts-sdk","slot":"N","label":"TypeScript SDK client (current)","embeddedBy":["Cursor","VS Code","Claude Desktop","Windsurf"]},"version":"unknown","byHost":{"local-darwin":{"id":"compat:ts-sdk@N:local-darwin","kind":"compat","status":"skip","host":"local-darwin","source":"local","ranAt":"2026-09-02T11:25:16.079Z","summary":"needs credentials (401)","durationMs":1308,"detail":{"client":"ts-sdk","slot":"N","version":"unknown","stderrTail":""},"error":{"code":"AUTH_REQUIRED","cause":"Streamable HTTP error: Error POSTing to endpoint: {\"error\":\"invalid_token\",\"error_description\":\"Missing or invalid access token\"}","fix":"Add an Authorization header or OAuth refresh credentials to the enrollment.","retryable":false}}}},{"row":{"client":"ts-sdk","slot":"N-1","label":"TypeScript SDK client (previous minor)","embeddedBy":["Cursor","VS Code"]},"version":"unknown","byHost":{"local-darwin":{"id":"compat:ts-sdk@N-1:local-darwin","kind":"compat","status":"skip","host":"local-darwin","source":"local","ranAt":"2026-09-02T11:25:17.764Z","summary":"needs credentials (401)","durationMs":1648,"detail":{"client":"ts-sdk","slot":"N-1","version":"unknown","stderrTail":""},"error":{"code":"AUTH_REQUIRED","cause":"Streamable HTTP error: Error POSTing to endpoint: {\"error\":\"invalid_token\",\"error_description\":\"Missing or invalid access token\"}","fix":"Add an Authorization header or OAuth refresh credentials to the enrollment.","retryable":false}}}},{"row":{"client":"py-sdk","slot":"N","label":"Python SDK client (current)","embeddedBy":[]},"version":"unknown","byHost":{"local-darwin":{"id":"compat:py-sdk@N:local-darwin","kind":"compat","status":"skip","host":"local-darwin","source":"local","ranAt":"2026-09-02T17:57:15.173Z","summary":"needs credentials (401)","detail":{"client":"py-sdk","slot":"N","version":"unknown"},"error":{"code":"AUTH_REQUIRED","cause":"unauthenticated initialize answered 401","fix":"Add an Authorization header or OAuth refresh credentials to the enrollment.","retryable":false}}}},{"row":{"client":"py-sdk","slot":"N-1","label":"Python SDK client (previous minor)","embeddedBy":[]},"version":"unknown","byHost":{"local-darwin":{"id":"compat:py-sdk@N-1:local-darwin","kind":"compat","status":"skip","host":"local-darwin","source":"local","ranAt":"2026-09-02T17:57:16.462Z","summary":"needs credentials (401)","detail":{"client":"py-sdk","slot":"N-1","version":"unknown"},"error":{"code":"AUTH_REQUIRED","cause":"unauthenticated initialize answered 401","fix":"Add an Authorization header or OAuth refresh credentials to the enrollment.","retryable":false}}}},{"row":{"client":"claude-cli","slot":"cli","label":"Claude Code (`claude mcp list`)","embeddedBy":["Claude Code"]},"version":"2.1.196","byHost":{"local-darwin":{"id":"compat:claude-cli@cli:local-darwin","kind":"compat","status":"skip","host":"local-darwin","source":"local","ranAt":"2026-09-02T18:05:56.263Z","summary":"needs credentials (401): Claude Code cannot complete a browser OAuth flow unattended","detail":{"client":"claude-cli","slot":"cli","version":"2.1.196"},"error":{"code":"AUTH_REQUIRED","cause":"unauthenticated initialize answered 401","fix":"Add a bearer token or OAuth refresh credentials to the enrollment; the runner then passes the access token as a header.","retryable":false}}}}]}},"oauth":{"status":"pass","applicable":true,"report":{"url":"https://mcp.sentry.dev/mcp","authRequired":true,"status":"pass","checks":[{"id":"unauthenticated","title":"Unauthenticated initialize returns 401","status":"pass","detail":"HTTP 401"},{"id":"www-authenticate","title":"WWW-Authenticate points at the resource metadata","status":"pass","detail":"resource_metadata=https://mcp.sentry.dev/.well-known/oauth-protected-resource/mcp"},{"id":"prm-well-known","title":"Well-known PRM paths","status":"pass","detail":"/.well-known/oauth-protected-resource/mcp"},{"id":"prm-resource","title":"PRM `resource` is this server's canonical URI","status":"pass","detail":"resource=https://mcp.sentry.dev/mcp"},{"id":"prm-as","title":"PRM lists an authorization server","status":"pass","detail":"https://mcp.sentry.dev"},{"id":"scopes","title":"Scopes advertised","status":"info","detail":"org:read project:write team:write event:write"},{"id":"as-metadata","title":"Authorization server metadata is discoverable","status":"pass","detail":"issuer=https://mcp.sentry.dev; token_endpoint=https://mcp.sentry.dev/oauth/token"},{"id":"pkce","title":"PKCE S256 advertised","status":"pass","detail":"plain, S256"},{"id":"dcr","title":"Dynamic client registration","status":"pass","detail":"registration_endpoint=https://mcp.sentry.dev/oauth/register"},{"id":"refresh-grant","title":"Refresh tokens supported","status":"pass","detail":"authorization_code, refresh_token"},{"id":"token-auth","title":"Public clients can use the token endpoint","status":"pass","detail":"client_secret_basic, client_secret_post, none"}],"live":{},"checkedAt":"2026-09-02T17:43:31.219Z","authorizationServer":"https://mcp.sentry.dev","resource":"https://mcp.sentry.dev/mcp","scopes":["org:read","project:write","team:write","event:write"]}},"catalog":{"status":"pending","snapshot":null,"source":null,"baselineHash":null,"lastDiff":null,"changedAt":null,"drifted":false},"errors":{"status":"skip","score":null,"graded":null,"toolCount":0,"sampleCount":0,"errorCount":0,"worst":[],"costUsd":0},"conformance":{"status":"skip","cell":{"id":"conformance:local-darwin","kind":"conformance","status":"skip","host":"local-darwin","source":"local","ranAt":"2026-09-02T11:25:22.046Z","summary":"needs credentials (401): the conformance client cannot complete OAuth","detail":{"version":"0.1.16","scenarios":[]},"error":{"code":"AUTH_REQUIRED","cause":"unauthenticated initialize answered 401","fix":"Add a bearer token to the enrollment to run protocol scenarios against an OAuth-protected server.","retryable":false}}},"pending":[],"urls":{"report":"https://agentwares-agentcheck.vercel.app/mcpcheck/demo/sentry","json":"https://agentwares-agentcheck.vercel.app/mcpcheck/demo/sentry/report.json","trust":"https://agentwares-agentcheck.vercel.app/mcpcheck/demo/sentry/trust.json","badge":"https://agentwares-agentcheck.vercel.app/mcpcheck/demo/badge/sentry.svg"},"badge":{"label":"mcpcheck","message":"tested","status":"passing","url":"https://agentwares-agentcheck.vercel.app/mcpcheck/demo/badge/sentry.svg","markdown":"[![mcpcheck](https://agentwares-agentcheck.vercel.app/mcpcheck/demo/badge/sentry.svg)](https://agentwares-agentcheck.vercel.app/mcpcheck/demo/sentry)"},"history":[],"brand":{"productName":"mcpcheck","homeUrl":"https://agentwares-agentcheck.vercel.app/mcpcheck"},"generatedAt":"2026-09-08T05:11:38.225Z"}