MCP 도구 호출 계측
`@sayren/mcp`가 도구 실행 결과 요약을 보낸다. 규칙 id와 위반 개수만 받고 파일 경로·소스 코드·위반 상세는 받지 않는다. 테넌트는 토큰이 정하므로 본문에 상점 id가 없다. 스코프는 필요하지 않고 상점당 분당 60회·하루 2000회다(일 한도를 넘으면 적재하지 않고 204로 받는다). 응답은 항상 204이며 적재 실패도 204다(계측이 도구 호출을 실패시키지 않는다).
@sayren/mcp가 도구 실행 결과 요약을 보낸다. 규칙 id와 위반 개수만 받고 파일 경로·소스 코드·위반 상세는 받지 않는다. 테넌트는 토큰이 정하므로 본문에 상점 id가 없다. 스코프는 필요하지 않고 상점당 분당 60회·하루 2000회다(일 한도를 넘으면 적재하지 않고 204로 받는다). 응답은 항상 204이며 적재 실패도 204다(계측이 도구 호출을 실패시키지 않는다).
accessTokenAuthorizationBearer <token>Sayren 계정 토큰(로그인 토큰 또는 개인 액세스 토큰, RFC 9068 JWT)
X-Store-Id*string대상 상점 id. 토큰의 상점 범위 밖이면 403 STORE_NOT_GRANTED, 없으면 400 STORE_ID_REQUIRED다
application/json- body
tool*string도구 이름 (예: verify_storefront). CLI가 부른 검사는 create
^[a-z][a-z0-9_]{0,39}$clientVersion?string@sayren/mcp 버전. 버전별로 첫 통과율이 나아졌는지 본다
^[\w.+-]+$length <= 40sessionId*string클라이언트 프로세스당 랜덤 값. 사람·기기를 식별하지 않는다
^[A-Za-z0-9_-]+$8 <= length <= 64attempt*integer이 세션 안에서 같은 도구를 부른 순번(1부터)
1 <= value <= 1000durationMs?integer도구 실행 시간(ms)
0 <= value <= 3600000ok*boolean위반이 없었는가
checkedFiles*integer검사한 소스 파일 수
0 <= value <= 100000results*array<>규칙별 통과·위반. 규칙 id는 중복될 수 없고 파일 경로와 위반 상세는 싣지 않는다
items <= 32curl -X POST 'https://api.sayren.io/v1/telemetry/mcp' \ -H 'X-Store-Id: string' \ -H 'Content-Type: application/json' \ -d '{ "tool": "string", "sessionId": "stringst", "attempt": 1, "ok": true, "checkedFiles": 0, "results": [ { "ruleId": "string", "status": "pass", "count": 0 } ]}'