sayren Docs
MCP 계측

MCP 도구 호출 계측

`@sayren/mcp`가 도구 실행 결과 요약을 보낸다. 규칙 id와 위반 개수만 받고 파일 경로·소스 코드·위반 상세는 받지 않는다. 테넌트는 토큰이 정하므로 본문에 상점 id가 없다. 스코프는 필요하지 않고 상점당 분당 60회·하루 2000회다(일 한도를 넘으면 적재하지 않고 204로 받는다). 응답은 항상 204이며 적재 실패도 204다(계측이 도구 호출을 실패시키지 않는다).

POST
/v1/telemetry/mcp

@sayren/mcp가 도구 실행 결과 요약을 보낸다. 규칙 id와 위반 개수만 받고 파일 경로·소스 코드·위반 상세는 받지 않는다. 테넌트는 토큰이 정하므로 본문에 상점 id가 없다. 스코프는 필요하지 않고 상점당 분당 60회·하루 2000회다(일 한도를 넘으면 적재하지 않고 204로 받는다). 응답은 항상 204이며 적재 실패도 204다(계측이 도구 호출을 실패시키지 않는다).

Authorization

accessToken
headerAuthorizationBearer <token>

Sayren 계정 토큰(로그인 토큰 또는 개인 액세스 토큰, RFC 9068 JWT)

Header Parameters

X-Store-Id*string

대상 상점 id. 토큰의 상점 범위 밖이면 403 STORE_NOT_GRANTED, 없으면 400 STORE_ID_REQUIRED다

Request Body

application/json
  1. body
tool*string

도구 이름 (예: verify_storefront). CLI가 부른 검사는 create

Match^[a-z][a-z0-9_]{0,39}$
clientVersion?string

@sayren/mcp 버전. 버전별로 첫 통과율이 나아졌는지 본다

Match^[\w.+-]+$
Lengthlength <= 40
sessionId*string

클라이언트 프로세스당 랜덤 값. 사람·기기를 식별하지 않는다

Match^[A-Za-z0-9_-]+$
Length8 <= length <= 64
attempt*integer

이 세션 안에서 같은 도구를 부른 순번(1부터)

Range1 <= value <= 1000
durationMs?integer

도구 실행 시간(ms)

Range0 <= value <= 3600000
ok*boolean

위반이 없었는가

checkedFiles*integer

검사한 소스 파일 수

Range0 <= value <= 100000
results*array<>

규칙별 통과·위반. 규칙 id는 중복될 수 없고 파일 경로와 위반 상세는 싣지 않는다

Itemsitems <= 32

Response Body

접수

curl -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    }  ]}'
Empty