서버에서 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가 없기에 브라우저에서 인증이 불가능하다. 맥에서 진행하면 맥의 로컬호스트 포트로 이동해버린다.

해결 방법

로컬호스트를 포트포워딩해주면 된다.

단계

  1. redirect_uri에서 포트 번호 확인

    • %2Flocalhost%3A63681%2Fcallback 형식의 문자열을 찾는다
    • %3A 뒤와 %2F 사이에 있는 것이 열린 포트다 (예: 63681)
  2. SSH 포트포워딩 설정

ssh -L 63681:localhost:63681 -i ~/.ssh/key -p 포트 user@server
  1. 브라우저에서 인증 URL 접속

리다이렉트된 정보가 서버의 포트로 전달되면서 인증이 완료된다.