Ollama MCP 서버: 도구, 웹 검색, 로컬 모델을 연결하는 방법
권한, 네트워크, 오류 상태를 숨기지 않고 Ollama 로컬 모델과 MCP 도구를 연결하는 실전 아키텍처 및 설정 가이드입니다.
이 가이드의 내용
Ollama MCP 서버 구성은 로컬 모델을 유용한 작업에 연결하면서 모델, 프로토콜, 도구 제공자를 같은 것으로 취급하지 않습니다. 모델은 Ollama로 로컬 실행할 수 있지만 MCP 호스트가 클라이언트 연결, 승인, 결과 반환을 관리합니다. 이 글에서는 그 경계, 웹 검색, 권한, 장애 대응을 다룹니다.
Ollama MCP 서버의 실제 의미
MCP(Model Context Protocol)는 AI 애플리케이션이 서버가 제공하는 도구를 발견하고 호출하는 표준 방식입니다. 웹 검색, 허용된 폴더 읽기, 데이터베이스 조회 등이 도구의 예입니다. Ollama는 모델 런타임으로 모델을 로드하고 응답을 생성하지만, 모델이 로컬에 있다는 이유만으로 Ollama가 MCP 호스트가 되는 것은 아닙니다.
따라서 Ollama MCP 서버라는 검색어는 여러 아키텍처를 가리킬 수 있습니다. Ollama와 통신하는 로컬 MCP 서버일 수도 있고, Ollama 모델을 사용하면서 검색 서버에 연결하는 MCP 호스트일 수도 있습니다. 일반적으로 도구 검색, 승인, 실행, 결과 반환은 호스트가 담당합니다.
계층을 분리해서 보세요
Ollama는 추론을 제공하고 MCP는 도구 프로토콜을 제공합니다. 호출 시점, 허용 인자, 결과 전달을 결정하는 것은 호스트입니다.
호스트, 클라이언트, 서버, 모델의 경계
일반적인 MCP 구조에는 네 가지 역할이 있습니다. 호스트는 사용자가 사용하는 AI 애플리케이션이며 서버마다 MCP 클라이언트 연결을 만듭니다. MCP 서버는 도구 스키마를 알리고 승인된 호출을 실행합니다. Ollama는 그 옆에서 로컬 추론 엔드포인트로 동작합니다.
모델이 모든 도구에 자동으로 연결되는 것은 아닙니다. 호스트가 도구 정의를 전달하고, 모델이 호출을 요청하면 호스트가 인자를 검증하고 실행합니다. 어떤 결과를 다시 모델에 전달할지도 호스트가 결정합니다.
| 계층 | 담당 | 자동으로 담당하지 않는 것 |
|---|---|---|
| Ollama | 모델 로드와 로컬 추론 | MCP 서버 검색이나 전체 권한 |
| MCP 호스트 | 대화, 클라이언트, 승인, 컨텍스트 | 각 서버의 내부 구현 |
| MCP 클라이언트 | 호스트와 서버 사이의 프로토콜 연결 | 모델 런타임 |
| MCP 서버 | 도구 스키마, 검증, 실행 | 호스트 승인 정책 우회 |
Ollama와 MCP 호스트 준비하기
먼저 Ollama에서 일반적인 프롬프트가 동작하는지 확인합니다. 데몬이 실행 중이고 모델이 설치되어 있으며 로컬 API가 응답한 뒤 MCP를 추가해야 합니다. 일반 추론이 실패한 상태에서 MCP를 추가하면 원인 파악이 더 어려워집니다.
그 다음 MCP 클라이언트를 명시적으로 지원하는 애플리케이션을 선택합니다. 설정 형식은 JSON, 설정 화면, 데스크톱 프로필, SDK 등 다양합니다. 다른 호스트의 설정을 그대로 복사하지 말고 명령, 전송 방식, 환경 변수, 승인 기본값을 확인하세요.
로컬이라고 자동으로 비공개인 것은 아닙니다
추론은 localhost에 남아도 도구가 외부 API로 검색어를 보낼 수 있습니다. 도구마다 데이터 흐름을 확인하세요.
ollama list
ollama run <model-name> "준비됐다고만 답하세요."
curl http://127.0.0.1:11434/api/tags
Ollama 로컬 모델을 안전하게 연결하기
도구를 호출하기 전에 두 연결을 확인합니다. 먼저 호스트가 설정된 Ollama 엔드포인트에 접근할 수 있어야 합니다. 데스크톱에서는 localhost를 사용하지만 컨테이너에서는 host.docker.internal이나 서비스 이름이 필요할 수 있습니다. 또한 모델이나 API가 호스트가 기대하는 tool calling 형식을 지원하는지 확인하세요.
Ollama API는 도구 정의를 받고 도구 호출을 반환할 수 있지만, 이것만으로 완전한 MCP 구현이 되는 것은 아닙니다. MCP 호스트는 모델 메시지와 MCP의 도구 목록/호출 메시지 사이를 변환할 수 있습니다. Ollama 공급자와 MCP 연결을 따로 테스트하세요.
curl http://127.0.0.1:11434/api/chat -H "Content-Type: application/json" -d "{\"model\":\"<model-name>\",\"messages\":[{\"role\":\"user\",\"content\":\"이 프로젝트의 현재 상태를 확인하세요.\"}],\"tools\":[] }"
비밀 정보를 코드에 넣지 않고 MCP 웹 검색 추가하기
웹 검색 MCP 서버는 도구 제공자이지 모든 답이 최신이고 정확하다는 보장은 아닙니다. 구현에 따라 검색 API, 브라우저, 메타 검색, 호스팅 제공자를 호출할 수 있습니다. 공식 문서에서 전송 방식, 환경 변수, 보존 정책, 필요한 런타임을 확인하세요.
많은 호스트가 아래와 비슷한 구조를 사용하지만 키 이름은 다릅니다. 개념 패턴으로만 보고, API 키는 호스트의 시크릿 저장소나 환경 변수에 두며, 처음에는 읽기 전용 검색만 허용하세요.
로컬 MCP 프로세스도 인터넷을 사용할 수 있습니다
프로세스가 어디서 시작했는지와 요청이 어디로 향하는지는 다릅니다. 외부 제공자와 민감 정보 제거를 기록하세요.
-
출처 확인
공식 저장소나 문서에서 라이선스, 활동, 런타임, 전송 방식을 확인합니다.
-
권한 최소화
먼저 search나 fetch만 허용하고 파일 쓰기, 셸, 광범위한 사설 네트워크 권한은 막습니다.
-
통제된 검색 실행
안전한 검색어로 도구 이름, 인자, 반환 URL을 확인합니다.
{ "mcpServers": { "web-search": { "command": "npx", "args": ["-y", "<web-search-mcp-package>"], "env": { "SEARCH_API_KEY": "${SEARCH_API_KEY}" } } } }
도구 호출을 관찰하고 검토할 수 있게 만들기
신뢰할 수 있는 Ollama MCP 서버 구성은 민감한 내용을 그대로 기록하지 않으면서도 검토에 필요한 감사 기록을 남깁니다. 서버 이름, 도구 이름, 시작 시각, 소요 시간, 결과, 오류 유형, 출처 도메인을 기록하고 API 키, 인증 헤더, 개인 파일 내용, 사용자 비밀은 마스킹합니다. 검색에서는 최종 URL과 간단한 결과 수를 남겨 모델이 어떤 근거를 받았는지 확인할 수 있게 합니다.
호스트는 승인 상태도 보여줘야 합니다. 모델이 생성한 인수는 신뢰할 수 없는 입력입니다. 실행 전에 URL, 파일 경로, 쿼리 길이, 허용 도메인 목록, 시간 제한, 최대 결과 수를 검증하세요. 가져온 웹 페이지에는 요청과 충돌하는 프롬프트 인젝션 지시가 들어갈 수 있으므로 신뢰할 수 없는 텍스트로 취급해야 합니다.
| 확인할 항목 | 도움이 되는 이유 | 안전한 기본값 |
|---|---|---|
| 도구 이름과 서버 | 어떤 기능이 실제로 실행됐는지 보여줍니다 | 알려진 이름만 허용 |
| 인수 | 모델의 숨은 동작을 검토할 수 있습니다 | 비밀을 마스킹하고 크기를 제한 |
| 소요 시간과 상태 | 시간 초과와 잘못된 콘텐츠를 구분합니다 | 제한된 시간과 재시도 사용 |
| 출처 또는 결과 ID | 사람이 근거를 확인할 수 있습니다 | 개인 데이터가 아닌 URL 보관 |
연결 문제를 올바른 순서로 진단하기
한 번에 한 계층만 테스트합니다. MCP 없이 Ollama를 호출하고, 다음으로 도구 목록만 확인한 뒤, 마지막으로 위험이 낮은 도구 호출 하나를 실행합니다. 이렇게 하면 모델, 전송, 권한, 제공자 오류가 섞이지 않습니다.
모델이 도구를 호출하지 않고 기억으로 답하면 프롬프트를 바꾸기 전에 호스트의 도구 목록과 모델의 tool calling 지원을 확인하세요. 도구는 실행되지만 답이 나쁘다면 원시 결과, 출처, 컨텍스트 잘림, 웹 페이지의 프롬프트 인젝션을 조사합니다.
| 증상 | 가능한 계층 | 다음 확인 |
|---|---|---|
| Ollama 연결 거부 | 런타임 또는 엔드포인트 | ollama list, URL, 11434 포트 확인 |
| MCP 서버가 시작되지 않음 | 명령 또는 환경 | 호스트 밖에서 실행하고 stderr 확인 |
| 도구 목록이 비어 있음 | 전송 또는 설정 | MCP 전송 방식과 호스트 스키마 확인 |
| 모델이 도구를 무시함 | 모델 또는 루프 | tool calling과 원시 메시지 확인 |
| 검색 결과가 없음 | 제공자 또는 제한 | 키, 검색어, 상태, payload 확인 |
| 페이지 지시를 답변이 따름 | 신뢰할 수 없는 콘텐츠 | 페이지를 데이터로 취급하고 정책 적용 |
Ollama Web Search API와 MCP 검색 비교
Ollama Web Search라는 표현은 두 경로를 가리킬 수 있습니다. 공식 API는 자체 인증, 제한, 개인정보 경계를 가진 호스팅 서비스입니다. 웹 검색 MCP 서버는 MCP 호스트가 호출하는 도구이며 로컬, 자체 호스팅, 다른 제공자 기반일 수 있습니다. 둘 다 최신 정보를 가져올 수 있지만 설정 방법은 다릅니다.
공식 API, web_fetch, 개인정보, 제한, SearXNG가 목적이면 기존 Ollama Web Search 가이드를 사용하세요. MCP 호스트, 도구 스키마, 권한, 로컬 클라이언트 연결이 목적이면 이 페이지가 범위입니다.
| 항목 | Ollama Web Search | MCP 웹 검색 |
|---|---|---|
| 주체 | Ollama 호스팅 서비스 | 선택한 MCP 서버와 제공자 |
| 통합 | 애플리케이션이 공식 API 호출 | 호스트가 클라이언트를 만들고 도구 호출 |
| 적합한 경우 | 지원되는 호스팅 검색 경로 | 조합 가능한 도구와 자체 운영 제어 |
| 주의점 | 검색어가 로컬 밖으로 나감 | 서버 구현과 결과를 별도 검토 |
Ollama MCP 서버 자주 묻는 질문
공식 참고 자료
- Ollama 도구 호출 문서 - 도구 정의와 호출 흐름
- Model Context Protocol 아키텍처 - 호스트, 클라이언트, 서버의 공식 개념
- Model Context Protocol 사양 - 공식 프로토콜 참고 자료
- Ollama API 소개 - 로컬 API와 엔드포인트
관련 로컬 AI 가이드
- Ollama Web Search API 가이드 - 호스팅 검색, 개인정보, 제한, SearXNG.
- Odysseus AI와 Ollama 설정 - 도구를 추가하기 전 로컬 런타임 확인.
- Cursor와 Ollama 코딩 에이전트 - 에디터별 모델 및 권한 흐름.
- OpenCode와 Ollama 설정 - 또 다른 로컬 클라이언트 예시.
- 로컬 AI 코딩 에이전트 가이드 - 로컬 에이전트 구조, 저장소 경계 및 승인을 설명합니다.
최종 업데이트: 2026년 8월 16일
홈으로 돌아가기