로컬 LLM·MCP 설정: Ollama RAM·VRAM 계산과 코딩 도구 권한

로컬 모델 파일과 컨텍스트가 차지하는 메모리를 먼저 확인한 뒤 Claude Code·Codex·Cursor에 MCP를 최소 권한으로 연결하는 순서를 정리했습니다.

읽는 시간 약 9

추천 독자: 개발자

AI는 자료 조사와 초안 정리에 보조적으로 사용했으며, 편집부가 출처와 사실을 확인했습니다.

로컬 LLM·MCP 설정을 찾다 보면 모델 설치와 도구 연결이 한 문서에 뒤섞인다. 둘은 따로 잡아야 한다. Ollama는 로컬 모델을 실행한다. MCP는 Claude Code·Codex·Cursor가 파일이나 외부 서비스의 도구를 부르는 통로다.

2026년 8월 18일 공식 문서를 기준으로 확인했다. 먼저 메모리에 맞는 모델과 컨텍스트를 정한 뒤 필요한 MCP 서버만 클라이언트별로 붙이는 순서가 안전하다.

로컬 LLM·MCP 설정은 Ollama 메모리부터 계산한다

모델 이름의 20b, 30b만 보고 RAM이나 VRAM을 맞추면 빗나간다. 실제로 내려받는 양자화 파일, 컨텍스트 길이, KV 캐시와 다른 앱이 쓸 메모리까지 함께 들어가기 때문이다.

아래 수치는 8월 18일 Ollama 공식 레지스트리에 표시된 파일 크기다. 실행 중 필요한 전체 메모리가 아니다.

모델 태그레지스트리 파일 크기표시된 최대 컨텍스트먼저 확인할 장치
gemma3:4b3.3GB128K8~16GB급에서 기능 확인용
qwen3:8b5.2GB40K16GB급에서 일반 텍스트 작업
gpt-oss:20b14GB128K16GB 이상, 짧은 컨텍스트부터
devstral-small-2:24b15GB384K24GB 이상, 코딩 도구 호출 확인
qwen3-coder:30b19GB256K32GB 이상, 저장소 작업 확인

gpt-oss 공식 페이지는 20B 모델이 16GB 메모리에서도 실행된다고 설명한다. ‘실행된다’와 ‘긴 컨텍스트에서 빠르다’는 같은 말이 아니다. 14GB 가중치 외에 운영체제와 컨텍스트가 쓸 자리가 남아야 한다.

Ollama 컨텍스트 문서의 기본값은 VRAM 24GiB 미만 4K, 24~48GiB 32K, 48GiB 이상 256K다. 에이전트와 코딩 도구에는 64K 이상을 권한다. 컨텍스트를 늘리면 필요한 메모리도 커진다.

고정된 ‘RAM별 정답 모델’보다 아래 순서가 낫다.

  1. 공식 레지스트리에서 정확한 태그와 파일 크기를 본다.
  2. 필요한 최소 컨텍스트로 모델을 한 번 실행한다.
  3. ollama psPROCESSORCONTEXT를 확인한다.
  4. CPU로 많이 넘어가거나 메모리 압박이 생기면 컨텍스트나 모델 크기를 내린다.
ollama run qwen3-coder:30b
ollama ps

PROCESSOR가 100% GPU인지, 일부 CPU로 넘어갔는지가 먼저 볼 값이다. Apple Silicon은 CPU와 GPU가 통합 메모리를 나눠 쓰므로 총 메모리를 모델 전용 VRAM처럼 계산하면 안 된다.

모델을 받은 뒤 64K부터 확인한다

Ollama 빠른 시작은 macOS·Windows·Linux용 앱을 내려받은 뒤 ollama run으로 대화를 시작하는 흐름을 안내한다. 코딩 작업이라면 작은 모델로 명령과 도구 호출부터 확인하는 편이 빠르다.

ollama run gpt-oss:20b

서버 전체의 컨텍스트를 64K로 올릴 때는 다음처럼 시작한다.

OLLAMA_CONTEXT_LENGTH=64000 ollama serve

한 번에 최대 컨텍스트까지 올릴 이유는 없다. 실제 저장소에서 필요한 파일 수와 프롬프트 길이를 재고 64K, 96K처럼 단계적으로 키운다. Qwen3-Coder 30B의 256K 표기도 매번 256K를 할당하라는 뜻은 아니다.

이번 확인 환경에는 Ollama가 설치돼 있지 않아 토큰 속도와 최고 메모리 사용량은 재지 않았다. 위 표는 동일 장비 실측표가 아니라 모델 선택 전에 볼 공식 파일 크기와 컨텍스트다.

MCP는 로컬 모델 설정이 아니라 도구 권한이다

MCP 서버를 붙이면 모델의 요청 범위가 읽기 전용 문서 검색부터 파일 수정, 이슈 등록, 배포까지 넓어진다. 연결 성공보다 어느 도구가 어떤 범위에서 실행되는지 확인하는 일이 앞선다.

클라이언트프로젝트 설정개인 전역 설정연결 확인
Codex.codex/config.toml~/.codex/config.tomlcodex mcp list 또는 /mcp
Claude Code프로젝트 루트 .mcp.jsonlocal·user scopeclaude mcp list, claude mcp get NAME
Cursor.cursor/mcp.json~/.cursor/mcp.jsonCustomize의 MCP 목록과 MCP Logs

Codex는 도구 허용 목록까지 같이 둔다

Codex MCP 문서의 CLI 형식은 다음과 같다.

codex mcp add NAME -- COMMAND
codex mcp list

Codex CLI와 IDE, 데스크톱 앱은 같은 설정을 읽는다. 프로젝트 설정은 신뢰한 저장소에서만 적용된다. 쓰기 도구가 섞인 서버라면 enabled_tools로 필요한 도구만 남기고 기본 승인 모드를 promptwrites로 둔다.

Claude Code는 공유 범위를 먼저 고른다

Claude Code MCP 문서local, project, user 세 범위를 둔다. 팀과 공유할 서버만 project로 추가하고 .mcp.json을 커밋한다.

claude mcp add --transport http NAME --scope project URL
claude mcp get NAME

대화형 세션은 프로젝트 MCP를 처음 쓸 때 승인을 묻는다. 반면 claude -p와 일부 SDK·클라우드 실행은 그 대화형 승인을 띄우지 못한다. 자동화에서는 --allowedTools--disallowedTools를 따로 지정해야 한다.

Cursor는 비밀값을 파일에 직접 쓰지 않는다

Cursor MCP 문서는 프로젝트용 .cursor/mcp.json과 전역 ~/.cursor/mcp.json을 구분한다. 원격 서버의 토큰은 ${env:NAME} 형태로 환경변수에서 읽을 수 있다.

{"mcpServers":{"docs":{"url":"https://example.com/mcp","headers":{"Authorization":"Bearer ${env:DOCS_TOKEN}"}}}}

예시 URL은 실제 서버 주소로 바꿔야 한다. Cursor는 기본적으로 MCP 도구 실행 전에 승인을 묻지만 실행 모드와 허용 목록에 따라 바로 실행될 수 있다.

처음에는 읽기 도구 하나만 연다

MCP 서버는 단순한 프롬프트 모음이 아니다. 로컬 명령을 실행하거나 원격 API의 권한으로 실제 데이터를 바꿀 수 있다. 설치 전에는 배포 주체, 저장소, 요청 권한과 토큰 범위를 확인한다.

MCP 권한 명세는 서버가 자신을 대상으로 발급된 토큰을 검증하도록 요구한다. 받은 토큰을 다른 서비스로 그대로 넘기는 것도 금지한다. 토큰 하나로 여러 서비스를 우회하는 서버는 피해야 한다.

첫 연결은 문서 검색처럼 읽기 전용 도구 하나로 한다. 입력 인자와 반환값을 본 뒤 필요한 도구만 추가한다. 저장소 전체 쓰기, 셸 실행, 배포와 결제 권한을 한 서버에 동시에 주지 않는다.

프로젝트 설정 파일에는 명령과 서버 주소만 두고 API 키는 환경변수나 OAuth에 맡긴다. 팀 저장소의 .mcp.json, .cursor/mcp.json, .codex/config.toml 변경은 애플리케이션 코드와 같은 수준으로 리뷰한다.

연결 오류는 클라이언트와 서버를 나눠 본다

ollama ps에 모델이 없으면 먼저 Ollama 서버와 모델 로딩을 본다. 모델은 떠 있는데 에이전트가 도구를 못 찾으면 MCP 설정 위치, 서버 프로세스, 인증과 도구 허용 목록을 확인한다.

Ollama 문제 해결 문서는 macOS의 ~/.ollama/logs/server.log, Linux의 journalctl -u ollama를 안내한다. Cursor는 Output 패널의 MCP Logs에서 초기화와 인증 오류를 볼 수 있다.

세 클라이언트의 명령을 8월 18일 현재 설치된 Codex CLI와 Claude Code에서 확인했다. Codex는 설정된 서버 목록을 읽었고 Claude Code는 빈 목록을 정상 반환했다. 특정 MCP 서버의 실제 쓰기 동작은 실행하지 않았다.

장비보다 업무 범위를 먼저 줄인다

일반 문서 요약은 4B~8B 모델로 시작해도 된다. 저장소 수정과 도구 호출이 목적이면 gpt-oss:20b, devstral-small-2:24b, qwen3-coder:30b처럼 도구 사용을 명시한 모델을 후보로 두고 실제 테스트를 거친다.

16GB 장비에서 14GB 모델을 억지로 최대 컨텍스트로 돌리는 것보다 작은 모델과 짧은 컨텍스트로 작업 성공률을 먼저 보는 편이 낫다. 속도나 정확도가 부족하면 그때 모델 또는 장비를 올린다.

MCP도 같은 방식이다. 읽기 서버 하나, 도구 하나, 프로젝트 하나에서 시작한다. 로그와 승인 흐름까지 확인한 뒤 쓰기 도구를 연다. 로컬 실행 자체가 목적이라면 기존 로컬 LLM 개발·배포 가이드도 함께 볼 수 있다.

Cursor·Claude Code·Codex의 동일 저장소 조건은 AI 코딩 도구 테스트 기록에 따로 고정했다. 현재는 Codex 단독 점검만 끝난 상태다.

모델 파일 크기, Ollama 기본 컨텍스트와 각 클라이언트 설정 방식이 바뀔 때마다 명령과 표를 다시 확인한다. 다음 점검에서는 16GB·32GB·48GB 장비의 동일 작업 실측 자료를 공개할 수 있는지부터 본다.

참고한 출처

공식 출처와 보조 신호를 함께 확인했습니다. 전체 13개 중 공식 출처는 12개입니다.

함께 보면 좋은 글