3줄 요약
- 대상: Ollama MCP 시작하기(2026): 로컬 LLM에 도구(파일/웹/깃) 연결하는 실전 가이드 내용을 빠르게 파악하려는 독자
- 핵심: 설치·설정·운영 포인트를 핵심 단계 중심으로 정리
- 결과: 재현 가능한 절차와 점검 기준으로 시행착오를 줄임
트러블슈팅
- 증상이 나오면 로그·버전·포트/권한·네트워크 순서로 확인합니다.
- 설정 반영이 안 되면 서비스 재시작/캐시 비우기 후 다시 검증합니다.
결론 + 다음 단계
핵심 절차를 먼저 완료하고, 운영 단계에서는 백업·모니터링·기본 보안 설정을 함께 적용하세요.
3줄 요약
- 대상: Ollama MCP 시작하기(2026): 로컬 LLM에 도구(파일/웹/깃) 연결하는 실전 가이드 내용을 빠르게 파악하려는 독자
- 핵심: 설치·설정·운영 포인트를 핵심 단계 중심으로 정리
- 결과: 재현 가능한 절차와 점검 기준으로 시행착오를 줄임
트러블슈팅
- 증상이 나오면 로그·버전·포트/권한·네트워크 순서로 확인합니다.
- 설정 반영이 안 되면 서비스 재시작/캐시 비우기 후 다시 검증합니다.
결론 + 다음 단계
핵심 절차를 먼저 완료하고, 운영 단계에서는 백업·모니터링·기본 보안 설정을 함께 적용하세요.
요약: Ollama 기반 로컬 LLM에 MCP를 붙여 ‘도구를 쓰는 AI’를 만드는 핵심 개념과 설정 흐름을 정리합니다.
트러블슈팅: baseUrl/포트, 권한(파일 접근), 서버 등록 순서가 꼬일 때의 점검 포인트를 먼저 잡습니다.
결론 & 다음 단계: MCP 연결이 되면 OpenClaw·n8n 같은 자동화 레이어와 결합해 실사용 워크플로우로 확장하세요.
이 글은 Ollama 기반 로컬 LLM에 MCP 도구 연결을 붙여 “모델이 실제 일을 하게 만드는 방법”을 정리한다. 핵심은 개념을 명확히 나누는 것이다. 즉 MCP 서버(도구 제공)와 MCP 클라이언트(모델/앱)를 구분하고, 로컬 환경에서 재현 가능한 형태로 연결하는 것이 목표다.
이 글의 목표(성공 기준)
- MCP 서버/클라이언트 구조를 구분해 설명할 수 있다.
- 로컬 환경에서 실제로 도구 호출(파일/웹/깃 등)이 동작한다.
- 보안/권한/로그 관점의 운영 체크포인트가 정리되어 있다.
로컬 LLM을 집(홈서버)에서 돌리기 시작하면 금방 한계가 옵니다.
- 모델은 그럴듯하게 말은 하는데, 내 파일을 직접 읽지 못하고
- 내 서버의 상태(로그/디스크/컨테이너)를 스스로 확인하지도 못하고
- 결국 “복붙 + 수동 작업”으로 돌아가게 되죠.
이때 등장하는 키워드가 Ollama MCP입니다.
- Ollama: 로컬에서 LLM을 실행하는 런타임(서버)
- MCP(Model Context Protocol): LLM이 외부 도구를 호출할 수 있게 만드는 표준 프로토콜
즉, Ollama로 모델을 돌리고 MCP로 도구(파일 읽기, 웹 요청, 깃 작업 등)를 붙이면 로컬 LLM이 ‘행동’할 수 있는 환경이 됩니다.
이 글은 “일단 오늘, 내 홈서버에서 Ollama 모델이 MCP 툴을 실제로 호출하게 만들기”를 목표로 합니다.
MCP가 뭔가요? (초보자 버전)
MCP는 쉽게 말해:
LLM(클라이언트) ↔ 도구(서버)를 연결하는 공통 규격
예전엔 툴 연동이 제품/프레임워크마다 달라서, 한 번 붙여둔 자동화가 다른 환경으로 옮기기 어려웠습니다.
- 어떤 앱은 “플러그인”으로만
- 어떤 앱은 “커스텀 스크립트”로만
- 어떤 프레임워크는 “자기만의 툴 스키마”로만
이런 식이었죠.
MCP는 이 연결 방식을 표준화해서, 클라이언트(예: Claude Desktop, 다양한 에이전트/클라이언트 앱)와 서버(파일시스템, 깃, DB, 사내 API 등)를 “플러그 꽂듯” 연결할 수 있게 합니다.

Ollama MCP에서 실제로 무슨 일이 일어나나요?
Ollama MCP 흐름을 30초만에 이해하면 설정/트러블슈팅이 훨씬 쉬워집니다.
1) MCP 서버가 “내가 제공할 수 있는 도구 목록(툴 스키마)”을 공개합니다. 2) MCP 클라이언트(여기서는 ollmcp)가 그 도구 목록을 읽습니다. 3) 클라이언트가 Ollama에게 질문을 보낼 때, 현재 사용 가능한 도구 목록도 같이 전달합니다. 4) 모델이 “이 질문은 도구가 필요하다”고 판단하면, 도구 호출을 요청합니다. 5) 클라이언트가 MCP 서버에 실제 도구를 실행 요청하고 결과를 받습니다. 6) 그 결과를 다시 모델에게 넣어주고, 모델이 최종 답을 만듭니다.
중요한 포인트:
- 도구 실행은 모델이 직접 하는 게 아니라, 클라이언트/서버가 합니다.
- 그래서 “어떤 파일/폴더까지 열어줄지”, “외부 네트워크 호출을 허용할지” 같은 권한 설계를 우리가 할 수 있습니다.
오늘 만들 것 (체크리스트)
오늘 목표는 딱 4개입니다.
1) Ollama 설치 + 모델 1개 준비 2) Ollama용 MCP 클라이언트(ollmcp) 설치 3) 공식 MCP 서버 1개(filesystem) 연결 4) “실제로 파일을 읽는 툴 호출”이 되는지 확인
성공 기준은 간단합니다.
/srv/mcp-sandbox/TODO.md를 모델이 직접 읽고- 요약을 뽑아낸다
준비물 (권장)
- OS: Ubuntu 22.04/24.04 (홈서버/VM/LXC 어디든 가능)
- CPU만으로도 가능(속도는 모델 크기에 좌우)
- Python 3.10+
- Node.js(+ npx) 또는 Docker (MCP 서버 실행용)
참고: 이미 N100 홈서버에서 Ollama를 쓰고 있다면, 기존 Ollama를 그대로 사용해도 됩니다. (관련 글) OpenClaw 로컬 LLM 연동 트러블슈팅: Ollama + baseUrl 설정 완전정복(2026)
1) Ollama 설치 및 동작 확인
(1) 설치
가장 빠른 방법은 Ollama 공식 설치 스크립트를 사용하는 것입니다.
# 무엇: Linux에 Ollama 설치
# 왜: 로컬에서 LLM을 서비스(11434)로 띄우기 위해
# 확인: 설치 후 `ollama --version`, `systemctl status ollama`가 동작
curl -fsSL https://ollama.com/install.sh | sh
ollama --version
sudo systemctl status ollama --no-pager
(2) 모델 1개 받기
툴 호출까지 고려하면 “툴 사용이 되는 모델”을 고르는 게 중요합니다. 초보자라면 가볍게 아래처럼 시작하면 무난합니다.
# 무엇: 모델 다운로드
# 왜: ollmcp에서 기본/추천 모델로 자주 쓰이는 라인업
# 확인: `ollama list`에 모델이 보임
ollama pull qwen2.5:7b
ollama list
팁: 모델을 크게 잡을수록 똑똑해지지만, CPU-only 환경에서는 속도가 급격히 느려질 수 있습니다.
2) Ollama MCP 클라이언트(ollmcp) 설치
ollmcp는 Ollama 모델 + MCP 서버를 이어주는 터미널 클라이언트(TUI)입니다.
- 여러 MCP 서버 동시 연결
- 툴 on/off 토글
- 모델 교체
- (중요) Human-in-the-Loop(HIL): 툴 실행 전에 승인
(1) 설치(간단)
# 무엇: ollmcp 설치
# 왜: 로컬 Ollama에 MCP 툴을 붙이기 위한 클라이언트
# 확인: `ollmcp --help`가 출력
python3 -m pip install --upgrade ollmcp
ollmcp --help
대안: uv를 쓰면
uvx ollmcp한 줄로 실행도 가능합니다.

Ollama MCP 도구 연결: 공식 Filesystem 서버 붙이기(권장)
MCP 서버는 “도구 제공자”입니다. 오늘은 가장 직관적인 filesystem 서버를 붙여서,
- 모델이 특정 폴더 안 파일을 읽고
- 목록을 보고
- 필요한 내용을 요약
할 수 있게 만들어 보겠습니다.
여기서 핵심 포인트는 2가지입니다.
- 허용 디렉터리(allowed dirs)를 좁혀서 연결한다 (보안)
- 먼저 샌드박스 폴더를 하나 만들고 그 안에서만 테스트한다
(1) 테스트 폴더 만들기
# 무엇: MCP가 접근할 샌드박스 폴더 준비
# 왜: 모델이 실수로 민감 폴더를 읽지 못하게 하기 위해
# 확인: 폴더/파일이 생성되어야 함
sudo mkdir -p /srv/mcp-sandbox
sudo chown -R $USER:$USER /srv/mcp-sandbox
cat > /srv/mcp-sandbox/TODO.md <<'EOF'
- 홈서버 백업 정책 정리
- n8n 워크플로우 주 1회 점검
- 도메인 만료일 캘린더 등록
EOF
(2) Filesystem MCP 서버를 어떻게 실행할까요? (npx vs Docker)
홈랩에서는 둘 다 많이 씁니다.
- npx 방식: 가볍고 빠름 (Node 필요)
- Docker 방식: 격리/이식성이 좋음 (Docker 필요)
어느 쪽이든 ollmcp는 “command + args”만 알면 실행할 수 있습니다.
(3-A) npx 방식(권장): servers.json 만들기
Node가 없다면 먼저 설치하세요.
# 무엇: Node.js/npm 설치(간단 버전)
# 왜: npx로 MCP 서버 패키지를 실행하기 위해
# 확인: node, npm, npx 버전이 출력
sudo apt update
sudo apt -y install nodejs npm
node -v
npm -v
npx -v
주의: 배포판/저장소에 따라 Node 버전이 낮을 수 있습니다. 너무 낮으면 MCP 서버 실행이 실패할 수 있어요.
이제 ollmcp용 MCP 서버 설정 파일을 만듭니다.
~/.config/ollmcp/mcp-servers/config.json
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"/srv/mcp-sandbox"
],
"disabled": false
}
}
}
- 공식 문서(서버 설명): https://github.com/modelcontextprotocol/servers/tree/main/src/filesystem
(3-B) Docker 방식(대안): servers.json 예시
Docker로 실행하고 싶으면 대략 이런 느낌입니다.
{
"mcpServers": {
"filesystem": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-v",
"/srv/mcp-sandbox:/projects:rw",
"mcp/filesystem",
"/projects"
],
"disabled": false
}
}
}
Docker 방식은 이미지/tag가 바뀌는 경우가 있어서, 막히면 먼저 공식 filesystem 서버 README를 확인하는 게 안전합니다.
(4) ollmcp 실행
# 무엇: ollmcp를 MCP 서버 설정과 함께 실행
# 왜: 툴 리스트를 불러오고 모델이 호출할 수 있게 만들기 위해
# 확인: 실행 후 tools 목록에 filesystem 관련 툴이 떠야 함
ollmcp -j ~/.config/ollmcp/mcp-servers/config.json -m qwen2.5:7b
4) 실제로 툴 호출이 되는지 테스트
ollmcp는 기본적으로 Human-in-the-Loop(HIL)가 켜져 있어서,
- 모델이 도구를 호출하려고 하면
- “이 툴 실행할까요?” 확인을 먼저 띄워줍니다.
처음에는 이게 훨씬 안전합니다.
테스트 프롬프트 예시 1: 파일 읽기
아래 문장을 그대로 입력해 보세요.
/srv/mcp-sandbox/TODO.md파일을 읽고, 3줄로 요약해줘.
정상이라면 흐름이 이렇게 됩니다.
1) 모델이 filesystem 툴 호출을 제안 2) HIL 확인창에서 y로 승인 3) 파일 내용이 툴 결과로 들어오고 4) 모델이 요약을 출력
테스트 프롬프트 예시 2: 파일 목록 + 요약
/srv/mcp-sandbox안에 있는 파일 목록을 보여주고, 무엇을 할 폴더인지 한 문단으로 설명해줘.
이렇게 “목록 → 읽기 → 요약”까지 한 번에 이어지면, 이미 도구 기반 워크플로우가 시작된 겁니다.
(선택) MCP 서버를 더 붙여서 ‘도구 상자’ 만들기
filesystem 하나만 붙여도 체감이 크지만, MCP의 재미는 “도구를 계속 추가”할 때 더 크게 옵니다.
예를 들어:
- fetch 서버: 웹 문서를 가져와서 요약
- git 서버: 특정 레포 상태 확인/커밋 로그 조회
- memory 서버: 간단한 메모 저장/검색
공식 레퍼런스 서버 모음은 여기에서 확인할 수 있습니다.
- https://github.com/modelcontextprotocol/servers
참고: “내 도구를 MCP로 직접 만들어 붙이는 방법”은 아래 글이 제일 빠릅니다. MCP 서버 만들기 가이드 2026 https://homelablog.com/mcp-%EC%84%9C%EB%B2%84-%EB%A7%8C%EB%93%A4%EA%B8%B0-%EA%B0%80%EC%9D%B4%EB%93%9C/
방법 비교: 그냥 챗(도구 없음) vs 직접 코딩 vs Ollama MCP
홈랩에서 많이 고민하는 3가지 길을 비교하면 이렇습니다.
| 방식 | 장점 | 단점 | 추천 상황 |
|---|---|---|---|
| Open WebUI 같은 일반 UI | 설치가 쉽고 바로 대화 가능 | 파일/깃/DB 같은 “행동”이 약함(수동 복붙) | 로컬 LLM 맛보기 |
| LangChain/직접 코드로 툴 호출 | 원하는 만큼 커스터마이즈 가능 | 초기 설계/유지보수 비용이 큼 | 제품/서비스로 만들 때 |
| Ollama MCP(ollmcp + MCP 서버) | 표준 연결이라 갈아끼우기 쉬움, 도구 확장 빠름 | 설정 파일/권한 설계가 필요 | 홈서버 자동화/에이전트 실험 |
제가 홈랩에서 Ollama MCP를 좋아하는 이유는 간단합니다.
- 처음엔 “filesystem 하나”로 작게 시작하고
- 필요할 때 도구를 하나씩 늘리면서
- 나중에 클라이언트를 다른 앱으로 바꿔도(가능한 범위에서) 구조를 유지할 수 있기 때문입니다.
자주 막히는 문제 10가지 (실전)
1) 모델이 툴을 안 씀
- 모델 자체가 tool use를 잘 못할 수 있습니다.
qwen2.5,qwen3,llama3.2같은 라인업으로 바꿔보세요.
2) 무한히 툴을 반복 호출함
- loop limit를 1~3으로 낮추고
- HIL을 유지한 채로 시작하세요.
3) filesystem이 “permission denied”
대부분 2가지입니다.
- allowed dir 밖을 읽으려는 경우
- 샌드박스 폴더 권한이 잘못된 경우
일단 /srv/mcp-sandbox 하나만 제대로 되게 만든 다음 확장하는 게 가장 빠릅니다.
4) npx 실행 실패
- Node/npm 설치가 안 된 케이스가 가장 많습니다.
node -v,npm -v,npx -v부터 확인하세요.
5) “npx는 되는데 @modelcontextprotocol 패키지가 실행이 안 됨”
- Node 버전이 너무 낮은 경우가 있습니다.
- 이런 케이스는 Docker 방식으로 우회하는 게 빨라요.
6) Ollama가 원격 서버에 있음
ollmcp는 기본이 http://localhost:11434입니다.
원격이면 이렇게 지정하세요.
ollmcp -H http://<OLLAMA_IP>:11434 -j ~/.config/ollmcp/mcp-servers/config.json -m qwen2.5:7b
7) 11434 포트 접속 불가
- 방화벽(UFW)
- Ollama 바인딩(127.0.0.1/0.0.0.0)
2개를 같이 봐야 합니다.
8) 모델이 “파일 읽기” 대신 그냥 추측으로 답함
툴을 쓰게 만들려면 프롬프트를 구체적으로 하는 게 좋습니다.
- “파일을 읽고”
- “근거를 TODO.md에서 인용하고(한 줄이라도)”
처럼 요구하면 툴 호출로 갈 확률이 올라갑니다.
9) 내 서버에서만 쓰려는데 외부 접속이 걱정됨
- 11434(Ollama)를 외부에 직접 노출하지 마세요.
- 내부망에서만 쓰거나, 필요하면 리버스 프록시/접근제어를 붙이세요.
10) ‘이걸 어디에 쓰지?’ 감이 안 잡힘
홈랩에서 가장 체감되는 사용처는 의외로 단순합니다.
- “백업 폴더에서 최신 백업 파일 찾기”
- “n8n 워크플로우 폴더에서 최근 수정 파일 추적”
- “docker-compose.yml을 읽고 위험한 설정 찾아내기”
즉, 내가 이미 가진 텍스트 자산(설정/로그/문서)을 빠르게 읽고 판단하게 만드는 용도죠.
기본 보안 설정 체크리스트(홈서버 운영 관점)
여기서 말하는 보안 설정은 거창한 게 아닙니다. 딱 “실수 방지”가 핵심이에요.
- MCP filesystem 서버에 홈 디렉터리 전체를 넘기지 않기
- 샌드박스 폴더(/srv/mcp-sandbox)로 먼저 시작
- HIL(승인 모드) 유지 + loop limit 낮게
- 원격 Ollama(11434)를 외부에 바로 노출하지 말고, 필요하면 접근제어 적용
다음 단계
1) 공식 MCP 서버를 더 붙여 보기(예: fetch, git, memory 등) 2) 내 서비스/API를 MCP 서버로 만들어 붙이기 3) “로컬 LLM을 다른 앱에 연결”하기
예를 들어, Dify를 셀프호스팅한 뒤 모델을 Ollama로 붙여서 내부 챗봇을 만들 수도 있습니다.
그리고 MCP 쪽을 더 깊게 파고 싶다면 이 글을 추천합니다.
Ollama MCP를 사용할 때는 프롬프트를 구체적으로 작성하여 툴 호출 확률을 높이는 것이 중요합니다.
Ollama MCP 참고 링크: MCP 공식 문서, Ollama 공식 사이트 | 관련 글: OpenClaw 로컬 LLM 연동 트러블슈팅, MCP 서버 만들기 가이드
여기까지 성공하면, 이제 로컬 LLM이 ‘말만 하는 도구’가 아니라 ‘실제로 행동하는 도구’로 바뀝니다.