서버에서 mcp인증하기
| topics | 800-프로젝트 400-인프라 & 아키텍처 805 미니서버 구축기 |
| types | 에러해결 도구 |
| contexts | 프로젝트 |
| tags | #mcp #ssh #oauth |
서버에서 MCP 인증하기
GUI가 없는 서버에서 HTTP 타입 MCP 인증하는 방법
문제 상황
HTTP 타입인 MCP들은 리다이렉트 URL을 이용해서 인증을 요구한다.
https://www.figma.com/oauth/mcp?response_type=code&client_id={}&code_challenge={}&code_challenge_method={}&redirect_uri={} ....
이 URL을 통해 인증하면 로컬호스트로 리다이렉트되는 방식이다.
redirect_uri는 명령 시에 해당 컴퓨터의 임시 로컬호스트 포트를 연다. 그리고 해당 로컬호스트 포트로 리다이렉트된다.
문제: 서버는 GUI가 없기에 브라우저에서 인증이 불가능하다. 맥에서 진행하면 맥의 로컬호스트 포트로 이동해버린다.
해결 방법
로컬호스트를 포트포워딩해주면 된다.
단계
redirect_uri에서 포트 번호 확인
%2Flocalhost%3A63681%2Fcallback형식의 문자열을 찾는다%3A뒤와%2F사이에 있는 것이 열린 포트다 (예: 63681)
SSH 포트포워딩 설정
ssh -L 63681:localhost:63681 -i ~/.ssh/key -p 포트 user@server
- 브라우저에서 인증 URL 접속
리다이렉트된 정보가 서버의 포트로 전달되면서 인증이 완료된다.