사람함께에이전트▾
사람 — 직접 정하고 책임지는 비즈니스 규칙과 흐름. 직접 읽어보세요.
함께 — 개념은 알아두고, 세부 규칙은 에이전트가 따릅니다.
에이전트 — 에이전트가 따르는 규칙과 레퍼런스. 필요할 때 찾아보세요.
client_id입니다.none입니다.sid)를 accessTokenSeconds 동안 거부 목록에 올립니다.Person은 숨기는 것이 아니라 없앱니다. static agents = false를 선언하므로, MCP 카탈로그는 이 guard가 지키는 endpoint를 호출자별로 숨기지 않고 통째로 거부합니다.AgentCall은 endpoint가 아니라 부수 효과를 좁힙니다. endpoint는 그대로 호출할 수 있고 목록에도 남습니다. 달라지는 것은 그 호출이 일으키는 일로, 고객 메일도 push도 되돌릴 수 없는 부수 효과도 없습니다.isAgentCall(context)로 읽으세요. 두 레버 모두 @libs/shared/srvkit의 이 함수를 씁니다. context.origin === "mcp"이거나, 토큰이 client_id나 aud를 싣고 있는지를 봅니다. 이 클레임을 cast로 직접 들여다보지 마세요. 클레임이 없다는 사실은 전송 방식마다 뜻이 다르고, 직접 만든 검사는 guard의 답과 어긋나게 됩니다.local 밖에서는 JWT_SECRET이 필수입니다. 모든 배포에 이 값이나 security.jwtSecret을 설정하세요. 둘 다 없으면 시크릿이 앱 이름, 환경, 레포 이름에서 파생됩니다. URL만 봐도 알 수 있는 문자열 셋이므로, 이 페이지의 모든 토큰을 admin 세션까지 위조할 수 있게 됩니다.refusePrivateAddresses는 egress 정책이 있는 곳에서만 끄세요. 네트워크가 사설 대역을 이미 막아 두지 않았다면, client_id URL로 서버를 자기 네트워크에 겨눌 수 있습니다.