프로젝트 소개

ThinkWatch는 조직의 모든 AI 모델 요청과 MCP 도구 호출을 중앙 집중화하는 자체 호스팅 게이트웨이입니다. 배스천 호스트와 유사한 제어 지점 역할을 하며, Claude Code, Cursor, 사용자 지정 에이전트, CI/CD 파이프라인과 같은 클라이언트와 OpenAI, Anthropic, Google Gemini, Azure OpenAI, AWS Bedrock과 같은 업스트림 제공자 사이에 위치합니다. 주요 기능은 다음과 같습니다: - **사용자별 MCP ID**: 사용자가 OAuth 또는 개인 토큰을 통해 자신의 GitHub, Notion, Linear, Slack 또는 Atlassian 계정을 연결하므로 업스트림 감사 로그에 실제 행위자가 표시됩니다. 토큰은 저장 시 암호화되며 도구 목록은 사용자별로 캐시됩니다. - **보안 가드**: 이메일, 전화번호, 카드 번호와 같은 PII는 요청이 업스트림으로 전송되기 전에 편집되고 스트리밍 응답을 포함한 응답에서 복원됩니다. 도구 호출은 위험한 명령 규칙에 따라 검사되며 숨겨진 유니코드 문자와 프롬프트 인젝션 문구는 기록되거나 거부될 수 있습니다. - **조직 ID**: 모든 OIDC 제공자를 통해 로그인할 수 있으며 선택적으로 TOTP를 사용할 수 있습니다. 5개의 기본 제공 역할과 사용자 지정 역할이 모델, 도구 및 관리 페이지에 대한 액세스를 제어합니다. - **통합 키**: `tw-` 가상 키는 AI 게이트웨이, MCP 게이트웨이 또는 둘 다로 범위를 지정할 수 있습니다. 키는 해시로 저장되며 유예 기간을 두고 교체할 수 있습니다. - **속도 제한 및 예산**: 1분에서 1주까지의 슬라이딩 윈도우로 요청 또는 토큰을 제한하고, 일별, 주별 또는 월별 예산으로 지출을 제한합니다. 제한은 사용자, API 키 또는 역할에 연결됩니다. - **비용 회계**: 지출은 모델, 사용자, 제공자 및 비용 센터별로 보고되며 CSV 차지백 보고서와 월말 예측을 제공합니다. 모델별 가중치를 적용하면 비싼 모델이 할당량에 더 많이 반영됩니다. - **감사 추적**: 모든 모델 요청과 도구 호출은 사용자, 매개변수, 응답, 지연 시간 및 오류와 함께 ClickHouse에 기록됩니다. 이벤트는 Syslog, REST 프록시를 통한 Kafka 또는 서명된 웹훅을 통해 SIEM으로 전달할 수 있습니다. - **다중 형식 엔드포인트**: OpenAI Chat Completions, OpenAI Responses, Anthropic Messages 및 Gemini 요청이 하나의 포트에서 제공되며 업스트림 형식으로 변환됩니다. 라우팅은 가중치, 지연 시간 또는 상태에 따라 트래픽을 분산하며 실패한 업스트림에 대한 회로 차단기를 포함합니다. 이 프로젝트에는 포트 3000의 게이트웨이와 포트 3001의 관리 콘솔이 포함됩니다. Docker Compose와 Helm 차트를 사용한 Kubernetes를 통해 배포가 지원됩니다. 콘솔은 Claude Code, Cursor, Continue, Cline, OpenAI 및 Anthropic SDK, cURL에 대한 설정 지침을 제공합니다. ThinkWatch는 Business Source License 1.1에 따라 소스 공개로 제공됩니다. 비프로덕션 사용은 무료이며, 프로덕션 사용은 매월 10,000,000개의 청구 가능 토큰과 10,000개의 MCP 도구 호출까지 무료이며, 그 이후에는 상용 라이선스가 필요합니다.