VS Code Continue에 MCP 서버 연결하기: 설정 파일, 읽기 전용 권한, 문제 해결

.continue/mcpServers YAML 작성, 파일시스템 서버 범위 제한, 데이터베이스 읽기 전용 계정, 연결이 안 될 때 확인 순서

Continue에 MCP 서버 연결 썸네일

핵심 요약

  1. Continue에서 MCP 도구는 에이전트 모드에서만 동작한다.
  2. .continue/mcpServers/ 아래에 서버별 YAML을 두고, 비밀 값은 secrets 문법으로 참조해 env로 주입한다.
  3. 파일시스템 서버는 인자로 넘긴 디렉터리로 작업이 제한되지만 write_file·edit_file 같은 쓰기 도구를 포함한다.
  4. 데이터베이스 서버는 SELECT만 가능한 읽기 전용 역할로 연결해 서버 동작과 무관하게 권한을 묶어 둔다.

Continue는 VS Code에서 여러 모델을 골라 쓸 수 있는 오픈소스 AI 코딩 확장이다. 열린 파일과 저장소는 잘 다루지만, 사내 문서나 데이터베이스처럼 편집기 밖의 정보에는 기본적으로 접근하지 못한다. MCP 서버를 붙이면 이 빈틈을 채울 수 있다. 이 글은 Continue 공식 MCP 문서를 기준으로 설정 파일을 만들고, 처음부터 읽기 전용 범위로 제한해 연결하는 절차를 정리한다. MCP의 기본 구조가 낯설다면 MCP 개념 정리를 먼저 보는 편이 이해가 빠르다.

시작 전에 알아 둘 제약

Continue 문서는 MCP를 에이전트 모드에서만 쓸 수 있다고 명시한다. 채팅 모드에서 서버 도구가 보이지 않는다면 설정 오류가 아니라 모드 문제일 가능성이 크다. 지원하는 연결 방식은 로컬 프로세스용 stdio와 원격 서버용 sse, streamable-http이며, stdio는 command와 args, 원격 방식은 url을 설정한다.

설정 파일로 서버 추가하기

  1. 작업 공간 루트에 .continue/mcpServers/ 폴더를 만든다(메인 설정 파일의 mcpServers 블록에 직접 적는 방법도 있다).
  2. 서버마다 YAML 파일을 하나씩 만든다. 파일을 나누면 서버를 끄고 켜거나 리뷰하기 쉽다.
  3. 토큰 같은 값은 파일에 직접 쓰지 않고 ${{ secrets.이름 }} 문법으로 참조한다. 예를 들어 GitHub 토큰은 ${{ secrets.GITHUB_PERSONAL_ACCESS_TOKEN }}처럼 쓰고, 문서에 따르면 비밀 값은 서버 설정 블록의 env 속성으로 주입된다.
  4. 저장 후 Continue를 에이전트 모드로 바꾸고, 도구 목록에 서버 도구가 나타나는지 확인한다.
# .continue/mcpServers/docs-filesystem.yaml
name: Docs filesystem
version: 0.0.1
schema: v1
mcpServers:
  - name: Team docs (read scope: ./docs only)
    command: npx
    args:
      - "-y"
      - "@modelcontextprotocol/server-filesystem"
      - "/home/me/projects/app/docs"

이 예시는 공식 레퍼런스 서버인 파일시스템 서버를 문서 폴더 하나에만 연결한다. 파일시스템 서버 README에 따르면 인자로 넘긴 디렉터리가 허용 목록이 되고, 모든 파일 작업은 그 안으로 제한된다. 저장소 루트나 홈 디렉터리를 통째로 넘기지 않는 것이 첫 번째 안전장치다.

파일시스템 서버의 쓰기 도구를 알고 쓰기

같은 README는 이 서버에 파일을 바꾸는 도구가 포함돼 있다고 밝힌다. write_file(생성·덮어쓰기), edit_file(부분 수정), move_file(이동·이름 변경), create_directory(폴더 생성)다. 서버 자체에 읽기 전용 모드가 따로 설명돼 있지 않으므로, 참고 자료만 읽히려는 목적이라면 다음을 함께 적용한다.

  • 허용 디렉터리를 Git으로 관리되는 폴더로 한정해, 의도치 않은 수정이 생기면 diff로 바로 확인하고 되돌릴 수 있게 한다.
  • 에이전트 모드에서 도구 호출 전 승인을 받는 설정을 유지하고, 쓰기 도구 호출은 자동 승인하지 않는다.
  • 원본 문서 폴더 대신 읽기용 사본 폴더를 허용 디렉터리로 지정한다.

데이터베이스는 읽기 전용 계정으로 연결하기

데이터베이스용 MCP 서버를 붙일 때는 서버 설정보다 먼저 연결 계정을 제한한다. 서버가 어떤 SQL을 실행하든 계정 권한 이상은 할 수 없기 때문이다. PostgreSQL이라면 조회 권한만 있는 역할을 만든다.

CREATE ROLE mcp_reader LOGIN PASSWORD 'change-me';
GRANT CONNECT ON DATABASE app TO mcp_reader;
GRANT USAGE ON SCHEMA public TO mcp_reader;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO mcp_reader;
-- 이 역할의 세션은 기본적으로 읽기 전용 트랜잭션으로 시작
ALTER ROLE mcp_reader SET default_transaction_read_only = on;

운영 데이터베이스보다는 복제본이나 개인정보를 제거한 사본에 연결하는 편이 좋고, 비밀번호는 YAML에 넣지 말고 secrets 문법으로 참조한다. 이렇게 권한을 좁게 시작해 넓혀 가는 이유와 순서는 MCP 서버를 늘리기 전에 칼럼에 정리했다.

연결이 안 될 때 확인 순서

증상먼저 볼 것
도구 목록에 서버가 없다에이전트 모드인지, YAML 들여쓰기와 schema: v1이 맞는지
서버가 바로 종료된다터미널에서 command와 args를 그대로 실행해 오류 메시지 확인(Node.js 설치, 패키지 이름)
파일을 찾지 못한다요청한 경로가 허용 디렉터리 안인지, 절대 경로로 넘겼는지
데이터베이스 인증 실패secrets 이름 오타, 계정의 CONNECT·USAGE 권한

원격 서버를 sse나 streamable-http로 연결했는데 응답이 없다면, 같은 URL을 브라우저나 curl로 호출해 네트워크와 인증 단계에서 막히는지부터 확인한다. 문제를 서버 실행, 설정 인식, 권한 세 단계로 나눠 차례로 확인하면 원인을 빨리 좁힐 수 있다. 원격 서버를 직접 만들어 연결하려면 MCP 서버 OAuth 구현 항목을 참고한다.

초보자가 자주 실수하는 포인트

  • 채팅 모드에서 MCP 도구가 보이지 않아 설정이 잘못됐다고 오해하는 경우
  • 파일시스템 서버에 홈 디렉터리나 저장소 루트 전체를 허용하는 경우
  • 데이터베이스 비밀번호를 YAML 파일에 그대로 적어 저장소에 커밋하는 경우

체크리스트

  • Continue를 에이전트 모드로 전환했는가
  • 파일시스템 서버의 허용 디렉터리가 필요한 폴더 하나로 좁혀져 있는가
  • 쓰기 도구 호출에 승인 단계가 남아 있는가
  • 데이터베이스 연결 계정이 SELECT 전용이고 읽기 전용 트랜잭션이 기본인가
  • 비밀 값을 secrets 문법으로 참조하는가

자주 묻는 질문

같은 설정을 다른 MCP 클라이언트에서도 쓸 수 있나요?

서버 실행 명령과 인자는 같지만 설정 파일 형식은 클라이언트마다 다르다. 파일시스템 서버 README의 JSON 예시처럼 다른 클라이언트는 mcpServers 객체 형식을 쓰는 경우가 많으므로, 명령·인자만 옮기고 형식은 각 클라이언트 문서를 따른다.

참고 자료 · 검증 기준

위 자료와 내용을 대조한 날짜: . 도구·서비스 정책은 이후 바뀔 수 있으므로 적용 전 공식 문서를 다시 확인하세요.

이 글은 실제 실무 환경 테스트 및 검증된 기술 자료를 바탕으로 작성되었으며, 환경 변화에 따라 지속적으로 갱신됩니다.