테마
Codex · Claude Code 연결
먼저 MCP 시작하기에 따라 패키지를 빌드하고 환경변수 세 개를 준비합니다. 아래 예시의 /absolute/path/to/opentester는 실제 소스 저장소 경로로 바꾸세요.
원격 HTTP 연결
호스팅 주소는 https://mcp.opentester.app/mcp이며 Streamable HTTP를 사용합니다. 원격 MCP와 사용자 지정 헤더를 지원하는 클라이언트에 다음 값을 설정합니다.
| 항목 | 값 |
|---|---|
| URL | https://mcp.opentester.app/mcp |
| Authorization | Bearer <앱별 에이전트 토큰> |
| X-OpenTester-App-Id | 개발자 콘솔의 앱 UUID |
토큰은 클라이언트의 비밀 저장 기능이나 환경변수로 전달하세요. URL 쿼리에 넣거나 설정 파일에 평문으로 커밋하지 마세요. MCP OAuth 로그인은 지원하지 않습니다. Google 로그인과 토큰 발급이 운영 서비스에 설정된 이후 실제 도구 호출을 사용할 수 있습니다. /health 응답은 MCP 연결 서버의 상태만 나타냅니다.
아래 stdio 방식은 로컬 실행이 필요한 경우에 사용할 수 있습니다.
Codex
~/.codex/config.toml에 서버를 추가합니다. 기존 파일의 다른 설정은 유지합니다.
toml
[mcp_servers.opentester]
command = "node"
args = ["/absolute/path/to/opentester-mcp/dist/index.js"]
env_vars = ["OPENTESTER_API_URL", "OPENTESTER_APP_ID", "OPENTESTER_AGENT_TOKEN"]env_vars는 Codex 실행 환경에 있는 값을 MCP 프로세스에 전달합니다. 세 변수를 설정한 환경에서 Codex를 시작하세요. 데스크톱 앱은 터미널 환경을 자동으로 상속하지 않을 수 있으므로 앱이 시작한 MCP에도 변수가 전달되는지 확인합니다.
설정을 적용한 뒤 연결 상태를 확인합니다.
sh
codex mcp list대화 중에는 /mcp로 서버를 확인할 수 있습니다. Node가 실행 환경의 PATH에 없다면 command에 Node 실행 파일의 절대 경로를 지정합니다. OpenTester는 stdio 방식이므로 이 설정에서 codex mcp login은 사용하지 않습니다.
Codex의 설정 위치와 env_vars 동작은 공식 MCP 문서를 참고하세요.
Claude Code
작업할 저장소의 .mcp.json에 다음 항목을 추가합니다. 파일에 다른 MCP 서버가 있다면 mcpServers 아래에 opentester 항목을 병합합니다.
json
{
"mcpServers": {
"opentester": {
"type": "stdio",
"command": "node",
"args": ["/absolute/path/to/opentester-mcp/dist/index.js"],
"env": {
"OPENTESTER_API_URL": "${OPENTESTER_API_URL}",
"OPENTESTER_APP_ID": "${OPENTESTER_APP_ID}",
"OPENTESTER_AGENT_TOKEN": "${OPENTESTER_AGENT_TOKEN}"
}
}
}
}${…}는 Claude Code가 실행 환경에서 확장하는 참조입니다. 토큰 원문으로 교체하지 마세요. 변수를 설정한 셸에서 Claude Code를 실행한 뒤, 프로젝트 MCP 설정을 활성화합니다.
sh
claude mcp list대화 중 /mcp에서도 상태를 확인할 수 있습니다. 환경변수나 토큰을 변경한 경우 MCP 서버를 다시 연결합니다. 환경변수 확장과 프로젝트 설정 범위는 Claude Code 공식 MCP 문서를 참고하세요.
연결 확인
연결이 완료되면 다음 여섯 도구가 제공됩니다.
text
list_feedback
get_feedback
create_change_request
list_change_requests
get_change_request
attach_pull_request에이전트에게 “OpenTester 피드백을 최대 5개 조회해 줘”라고 요청해 봅니다. 피드백이 없으면 빈 feedback 배열과 total: 0이 정상 결과입니다. 도구는 보이지만 호출이 실패하면 오류 해결에서 토큰 권한과 API 주소를 확인하세요.
여러 앱 연결
앱마다 opentester_android, opentester_tablet처럼 다른 서버 이름을 사용합니다. 각 프로세스에 전달하는 OPENTESTER_APP_ID와 OPENTESTER_AGENT_TOKEN 값이 해당 앱과 일치해야 합니다.
앱을 바꿀 때 도구 입력에 appId를 추가하지 않습니다. 앱 범위는 프로세스 설정에서 정해지며 모든 도구가 그 범위를 공유합니다.
실행 명령
호스트는 빌드한 파일을 node로 직접 실행하도록 설정합니다. npm run의 실행 배너나 임의의 echo 출력이 표준 출력에 섞이면 stdio 통신이 깨질 수 있습니다. 서버의 표준 출력은 MCP 메시지 전용이며 시작 오류는 표준 오류로 전달됩니다.