CLIEN

본문 바로가기 메뉴 바로가기 보기설정 테마설정
톺아보기 공감글
커뮤니티 커뮤니티전체 C 모두의광장 F 모두의공원 I 사진게시판 Q 아무거나질문 D 정보와자료 N 새로운소식 T 유용한사이트 P 자료실 E 강좌/사용기 L 팁과강좌 U 사용기 · 체험단사용기 W 사고팔고 J 알뜰구매 S 회원중고장터 B 직접홍보 · 보험상담실 H 클리앙홈
소모임 소모임전체 ·굴러간당 ·주식한당 ·아이포니앙 ·MaClien ·일본산당 ·방탄소년당 ·자전거당 ·개발한당 ·소시당 ·이륜차당 ·안드로메당 ·나스당 ·AI당 ·육아당 ·영화본당 ·골프당 ·가상화폐당 ·클다방 ·디아블로당 ·사과시계당 ·걸그룹당 ·리눅서당 ·소셜게임한당 ·젬워한당 ·노젓는당 ·패스오브엑자일당 ·IoT당 ·창업한당 ·노키앙 ·축구당 ·윈폰이당 ·캠핑간당 ·라즈베리파이당 ·패셔니앙 ·여행을떠난당 ·맛있겠당 ·물고기당 ·바다건너당 ·3D메이킹 ·X세대당 ·ADHD당 ·AI그림당 ·날아간당 ·배드민턴당 ·야구당 ·농구당 ·블랙베리당 ·곰돌이당 ·비어있당 ·FM당구당 ·블록체인당 ·보드게임당 ·활자중독당 ·볼링친당 ·냐옹이당 ·문명하셨당 ·클래시앙 ·콘솔한당 ·요리한당 ·쿠키런당 ·대구당 ·DANGER당 ·뚝딱뚝당 ·개판이당 ·동숲한당 ·날아올랑 ·전기자전거당 ·e북본당 ·갖고다닌당 ·이브한당 ·도시어부당 ·FM한당 ·포뮬러당 ·안경쓴당 ·차턴당 ·총쏜당 ·땀흘린당 ·하스스톤한당 ·히어로즈한당 ·인스타한당 ·KARA당 ·키보드당 ·꼬들한당 ·덕질한당 ·어학당 ·가죽당 ·레고당 ·LOLien ·Mabinogien ·임시소모임 ·미드당 ·밀리터리당 ·땅판당 ·헌팅한당 ·오른당 ·MTG한당 ·소리당 ·적는당 ·방송한당 ·PC튜닝한당 ·찰칵찍당 ·그림그린당 ·소풍간당 ·심는당 ·품앱이당 ·리듬탄당 ·달린당 ·Sea마당 ·SimSim하당 ·심야식당 ·윈태블릿당 ·미끄러진당 ·나혼자산당 ·스타한당 ·스팀한당 ·파도탄당 ·퐁당퐁당 ·테니스친당 ·테스트당 ·빨콩이당 ·공대시계당 ·터치패드당 ·트윗당 ·VR당 ·시계찬당 ·WebOs당 ·위스키당 ·와인마신당 ·WOW당
임시소모임
고객지원
  • 게시물 삭제 요청
  • 불법촬영물등 신고
  • 쪽지 신고
  • 닉네임 신고
  • 제보 및 기타 제안
© CLIEN.NET
공지[점검] 잠시후 서비스 점검을 위해 약 30분간 접속이 차단됩니다. (금일 18:15 ~ 18:45)

팁과강좌

PC/모바일 비용 걱정없는 AI Agent 만들기 (ollama + MCP) 32

22
2025-04-20 14:43:55 수정일 : 2025-04-22 00:18:37 222.♡.62.85
카일라스

AI 업계는 정말 빠르게 변하네요. 신기술 나오면 찍먹 해보기는 커녕 뉴스만 따라가기에도 바쁩니다.

Deepseek 의 충격이 얼마 지나지도 않아 MCP 의 충격이 오더니 이제는 A2A 와 같은 도구들도 덩달아 주목을 받고 있죠. 개인적으로 Deepseek 와 MCP 가 나오고나서 정말 반가웠습니다. 

기존에 ollama 를 이용해서 PC 에 LLM 모델을 다운로드 받아서 테스트 해봤는데, 이게 (당연하게도) 성능이 영 시원찮았습니다. 상용 AI 서비스 사용하다 ollama 돌려보면... 그런데 MCP 가 주목받고 활성화되기 시작하니,  ollama 에 MCP 를 결합하면 그래도 좀 모자란 성능을 MCP 도구들이 많이 채워줄 수 있지 않을까 생각이 들더라구요.

범용적인 목적으로는 구리지만 특정한 목적을 가진 자동화 툴을 만드는데는 유용할 수도 있겠다. 더구나 ollama 를 쓰면 비용도 안들고 순수한 private AI Agent 를 만둘 수 있으니까... 이런 생각으로 한번 예제코드를 만들어 봤습니다.

PC 에 ollama 설치하고 놀리고 계신 분은 한번 테스트 해보세요.

- odeothx 도움으로 코드와 성능이 개성되었습니다. gemini 예제도 만들어 주셨습니다.


Ollama + MCP AI Agent 설치

일단 ollama 가 설치된 상태라고 가정하겠습니다. 설치가 안되어 있다면 아래 링크에서 다운로드 받아서 설치

- https://ollama.com/


예제코드는 python 으로 작성되어 있고 uv 를 이용한 가상환경 설치를 지원합니다.

소스코드 다운로드

- ollama-mcp-agent : https://github.com/godstale/ollama-mcp-agent

- 소스코드 다운로드해서 압축을 풀거나 git clone 

git clone https://github.com/godstale/ollama-mcp-agent
cd ollama-mcp-agent


예제코드 실행에 필요한 라이브러리 설치가 필요합니다. ollama-mcp-agent 예제는 uv 패키지 관리자를 지원합니다. termial 또는 PowerShell 환경에서 아래 명령어를 실행합니다.

# Using pip
pip install uv


# Or using curl (Unix-like systems)
curl -LsSf https://astral.sh/uv/install.sh | sh


# Or using PowerShell (Windows)
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"


uv 를 설치, 예제코드를 실행하기 위한 가상환경을 만들고 실행합니다. 그리고 아래 순서대로 프로젝트를 설치할 수 있습니다. (terminal 환경에서 실행)

# Create and activate virtual environment
uv venv

# For Unix-like systems
source .venv/bin/activate 

# Or for Windows
.venv\Scripts\activate 

# Install dependencies
uv sync


ollama 에 LLM 모델을 다운로드해야 합니다. 이때 주의할 점이 하나가 있습니다. 반드시 tools calling 기능을 지원하는 모델을 받아야 합니다. 그렇지 않으면 MCP 설정을 추가해도 LLM 이 도구를 사용하지 않습니다.

  • 2025.04 기준으로 ollama 에서는 MFDoom/deepseek-r1-tool-calling 모델이 적합해 보입니다.
    • 다른 tool 기능 활성화 된 모델은 제대로 동작하지 않았습니다.
  • 그래픽카드 메모리 용량에 맞춰 모델을 선택세요. (ollama 모델 페이지 참고)
    • https://ollama.com/MFDoom/deepseek-r1-tool-calling
  • 이 포스트에서는 RTX4070 SUPER 12G 그래픽카드에 맞춰 14b (9.0GB) 모델을 사용합니다.
# Install Ollama (refer to https://ollama.ai for platform-specific installation)
# Download LLM model which supports Tool calling feature
ollama pull MFDoom/deepseek-r1-tool-calling:14b


Ollama + MCP AI Agent 실행

아래 명령어로 LLM 을 실행하고 "오늘 서울의 날씨"에 대해 물어보면 당연하게도 답변을 못합니다.

ollama run MFDoom/deepseek-r1-tool-calling:14b 


그럼 MCP 날씨 도구를 추가해서 ollama 와 연동하면 답변을 할 수 있는지 확인해 보겠습니다.

소스코드에는 MCP 날씨 도구가 PC에서 실행될 수 있도록 python 코드로 미리 작성되어 있습니다. mcp_server/mcp_server_weather.py 파일을 보시면 됩니다. 

실제 날씨를 검색하지는 않고, 정해진 답만 리턴하도록 되어 있습니다. LLM 이 정해진 답을 사용하는지를 보면 됩니다.

from mcp.server.fastmcp import FastMCP

mcp = FastMCP(
    "Weather",  # Name of the MCP server
    instructions="You are a weather assistant that can answer questions about the weather in a given location.",
    host="0.0.0.0",  # Host address (0.0.0.0 allows connections from any IP)
    port=8005,  # Port number for the server
)

@mcp.tool()
async def get_weather(location: str) -> str:
    print(f"\n[DEBUG] MCP: get_weather called: {location}\n")
    return f"It's sunny in the morning, cloudy in the afternoon and snowing in the evening in {location}"

if __name__ == "__main__":
    mcp.run(transport="stdio")

@mcp.tool() 어노테이션이 달린 함수를 LLM 이 도구로 인식합니다. FastMCP() 함수는 MCP server 를 생성해서 LLM 의 호출을 기다리게 합니다.

이것만으로 MCP server 가 실행되는 것은 아니고, MCP 도구 설정을 만들어서 python mcp 라이브러리에게 알려줘야 합니다. mcp_config.json 파일에 MCP 도구 설정이 작성되어 있습니다.

{
    "mcpServers": {
        "weather": {
            "command": "python",
            "args": ["./mcp_server/mcp_server_weather.py"],
            "transport": "stdio"
        },
        "local_file_manager": {
            "command": "python",
            "args": ["./mcp_server/mcp_server_file_manager.py"],
            "transport": "stdio"
        }
    }
}


이상의 설정을 마치고 main.py 를 실행

C:\Workspace\ollama-mcp-agent> uv run main.py

=== Initializing MCP client... ===
Loaded 3 MCP tools.
[Tool] get_weather
[Tool] get_local_file_list
[Tool] write_text_to_file

=== Starting Ollama Chat ===
Enter 'quit', 'exit', or 'bye' to exit.
========================================

User: 오늘 서울의 날씨는?

AI:
Processing tool: get_weather
---------------------
</think>

서울의 오늘 날씨는 오전에 맑고 오후에는 흐려지며 저녁에는 눈이 내리고 있습니다.

User: exit
Chat ended. Goodbye!

C:\Workspace\ollama-mcp-agent>

"오늘 서울의 날씨"에 대한 응답을 보면 mcp_server_weather.py  에서 '하드코딩' 한 정보를 사용함을 알 수 있습니다.

제 기준으로는 여기까지만 해도 감격스러운 일이 아닐 수 없습니다. 파이썬으로 적당히 코드 작성해서 도구를 추가하면 엉뚱한 대답을 하던 AI 를 그래도 좀 써먹을 수 있을 것 같더라고요.


그런데... 이 글을 보고 따라해 보시는 분들은 위 결과와 다른 답변을 받거나, 심하면 엉뚱한 답변을 받는 경우도 있을겁니다. 그런 경우는 아래 항목들을 확인하면서 수정하고, 다시 실행해보세요.


  • 도구 호출 정보 확인
    • main.py – get_streaming_callback(0 함수에서 도구 호출 정보를 더 상세히 표시하도록 로그를 추가합니다.
    • 더 상세한 정보를 출력하기 위해서는 astream_graph() 함수를 확인하거나 LangSmith 를 사용하는 것이 좋습니다.
  • System 프롬프트 수정
    • main.py 상단에 query 를 수행할 때 사용할 system 프롬프트 - MCP_CHAT_PROMPT 가 정의되어 있습니다. 프롬프트를 더 명확하게 정의함으로써 다른 결과를 기대할 수 있습니다.
MCP_CHAT_PROMPT = """
    You are a helpful AI assistant that can use tools to answer questions.
    You have access to the following tools:
    {tools}

    Use the following format:

    Question: the input question you must answer
    Thought: you should always think about what to do
    Action: the action to take, should be one of [{tool_names}]
    Action Input: the input to the action
    Observation: the result of the action
    ... (this Thought/Action/Action Input/Observation can repeat N times)
    Thought: I now know the final answer
    Final Answer: the final answer to the original input question

    When using tools, think step by step:
    1. Understand the question and what information is needed.
    2. Look at the available tools ({tool_names}) and their descriptions ({tools}).
    3. Decide which tool, if any, is most appropriate to find the needed information.
    4. Determine the correct input parameters for the chosen tool based on its description.
    5. Call the tool with the determined input.
    6. Analyze the tool's output (Observation).
    7. If the answer is found, formulate the Final Answer. If not, decide if another tool call is needed or if you can answer based on the information gathered.
    8. Only provide the Final Answer once you are certain. Do not use a tool if it's not necessary to answer the question.
    """
  • MCP 도구 구현 및 설정 확인
    • mcp_manager.py 파일에서 test_mcp_tool() 함수를 활성화하여 MCP 도구를 테스트 해볼 수 있습니다.
    • mcp server 를 설정하는 FastMCP() 함수의 설정값도 확인합니다.
  • LLM 모델 확인
    • 현재 사용중인 모델이 tools calling 을 지원하는지 확인해야 합니다.
      • tool 지원 모델이라 하더라도 실제 실행해보면 tool 을 호출하지 못하는 경우도 있습니다.
    • LLM 모델 최신 업데이트 확인
      • 예제에서 사용중인 deepseek-r1-tool-calling 모델은 tool 사용을 위해 튜닝 된 모델이며, 아직 tool 호출 버그들이 있다고 합니다. 이어질 업데이트에서 상당수가 수정될 예정이라고 하니 모델을 최신 상태로 유지하는 것이 좋습니다.
    • LLM 모델 업그레이드
      • 그래픽카드가 허용한다면 더 큰 모델을 사용하는 것도 성능 향상에 도움이 될 것입니다... 만 물리적, 금전적 제약이...



오늘 날씨가 좋아서 바람 좀 쐬야겠네요. 시간되면 다른 내용도 더 작성해 보겠습니다!



참고자료

LLM 모델 확인

  • GitHub: ollama-mcp-agent
  • OLLAMA+MCP Agent: 비용 걱정없는 AI agent #1
  • Inspired by: Teddynote-lab's mcp agents, langchain mcp adapters



출처 : https://hellollama.net/ollamamcp-agent-%eb%b9%84%ec%9a%a9-%ea%b1%b1%ec%a0%95%ec%97%86%eb%8a%94-ai-agent-1/
카일라스 님의 게시글 댓글
  • 주소복사
  • Facebook
  • X(Twitter)
댓글 • [32]
질레트퓨전
IP 106.♡.11.31
04-20 2025-04-20 16:19:16
·
딱 해보고 싶던건데 감사합니다!!
카일라스
IP 222.♡.62.85
04-20 2025-04-20 16:33:50
·
@질레트퓨전님 smithery 등록된 도구들도 사용이 가능합니다. 참고하세요~
https://hellollama.net/ollamamcp-agent-%eb%b9%84%ec%9a%a9-%ea%b1%b1%ec%a0%95%ec%97%86%eb%8a%94-ai-agent-2/
행복하세
IP 39.♡.231.57
04-20 2025-04-20 18:21:40
·
잘 몰라서 그러는데 이거는 개인피씨에 썰치하는 로컬ai죠??
궁금한게 이렇게 셔팅한거랑 gpt 3만원짜리랑 개인이 사용할때 어느게 더나을까요
카일라스
IP 222.♡.62.85
04-20 2025-04-20 18:31:57
·
@행복하세님 네 개인 PC 에 설치해서 사용하는겁니다. 그래서 무제한 사용할 수 있긴 한데, GPT 같은 서비스와는 비교가 불가할 정도로 낮은 성능입니다. 개인 용도로는 GPT 쓰시는게 좋습니다.
위 방법은 이런 저런 세팅/튜닝 해보면서 공부하고 개발에 활용하기 위해 사용한다고 보면 됩니다.
삭제 되었습니다.
바스모스
IP 121.♡.191.77
04-21 2025-04-21 08:56:44
·
질 보았습니다. 감사합니다
gemma3 도 잘 되지 않을까요?
카일라스
IP 221.♡.26.2
04-21 2025-04-21 11:08:40
·
@바스모스님 gemma3 는 아직 안해봤는데, 한번 해볼께요
바스모스
IP 211.♡.203.139
04-21 2025-04-21 12:03:16
·
@카일라스님 감사합니다
JasonJeong
IP 175.♡.53.69
04-21 2025-04-21 09:49:40
·
로컬 환경에서 MCP Server를 어떻게 사용할 수 있을까 조사하려고 하는데 이 글을 보고 큰 도움을 받았습니다.

로컬은 아니지만 현재 무료로 사용할 수 있는 gemini가 tooling을 지원한다고 하니, 로컬 deepseek 보다 더 좋은 성능이 나오는지 한번 테스트 해 보면 좋을것 같습니다.

좋은 글 감사합니다.
카일라스
IP 221.♡.26.2
04-21 2025-04-21 11:10:01
·
@JasonJeong님 저도 tool 지원한다고 해서 한번 받아봤는데 동작이 안되더라구요. 몇 번 안해본거라 된다 안된다 말하긴 애매한데, 다시 한번 시도해 봐야겠습니다.
카일라스
IP 221.♡.26.2
04-21 2025-04-21 12:30:42
·
@JasonJeong님 아 제가 헷갈렸습니다. API 형태의 모델은 아직 고려치 않아서 gemini 는 안해봤어요. gemini 코드 PR 올라온것 같던데 확인해볼께요! 감사합니다.
wishwisdom
IP 1.♡.10.165
04-21 2025-04-21 13:11:58
·
제컴이 1080이라,,,서비스 못 돌서 mcp만 가능한게 안타깝네요..ㅜㅜ
카일라스
IP 221.♡.26.2
04-21 2025-04-21 14:52:41
·
@wishwisdom님 아쉽지만 Ollama 대신 상용 서비스 물려보는건 어떠신지요?
C_담덕
IP 222.♡.107.109
04-21 2025-04-21 13:32:13
·
정말 해보고 싶었던 것들인데... 먼저 진행하고 내용 공유해 주셔서 감사합니다. ^^
카일라스
IP 221.♡.26.2
04-21 2025-04-21 14:53:38
·
@C_담덕님 이제 시작에 불과한 예제코드인데요~ 좋은 팁 생기면 공유해주세요!
kaminus
IP 220.♡.239.209
04-21 2025-04-21 13:45:00
·
해보고 싶었던건데 참고가 많이 되네요. 감사합니다.
카일라스
IP 221.♡.26.2
04-21 2025-04-21 14:53:57
·
@kaminus님 하시는 작업에 도움이 되었으면 좋겠습니다!
낚시의시간
IP 121.♡.121.6
04-21 2025-04-21 14:35:36
·
죄송하게도 위의 내용을 전부 이해하진 못했습니다. 그런데 시도해 보고 싶은 것이 있는데요. 비용걱정없이 구글번역+chat gpt + @ 의 번역과 검수를 통해서 한글자막을 영문 외 다국어 번역을 할 수 있는 방법이 있을까요? ^^;
카일라스
IP 221.♡.26.2
04-21 2025-04-21 14:57:50
·
@낚시의시간님 개인이 ollama 로 돌리는 언어모델은 성능이... 말씀하신 전문 번역작업을 할 정도는 안될거 같아요. 전문적인 작업 내용들을 외부 MCP 툴을 이용해서 해결하자는게 취지인데, 외부 MCP 툴이 무료로 사용할 수 있는지가 의문입니다. (제가 아는게 많지 않아서, 말씀드린 내용이 맞는지 모르겠네요)
낚시의시간
IP 121.♡.121.6
04-21 2025-04-21 15:26:34
·
@카일라스님 답변 감사드립니다. 좀 더 찾아봐야겠네요. ^^
plus4u
IP 117.♡.28.2
04-21 2025-04-21 15:02:20
·
혹시 음성으로 질문과 대답이 가능한 LLM이 있을까요?
카일라스
IP 221.♡.26.2
04-21 2025-04-21 15:35:20
·
@plus4u님 MCP 와는 관계없이 ollama 를 활용한 음성인식 챗봇 프로젝트들은 꽤 있는 것 같아요.
- https://github.com/mezbaul-h/june?utm_source=pytorchkr&ref=pytorchkr
- https://github.com/reatmos/Chatbot
살로만
IP 211.♡.95.130
04-21 2025-04-21 16:32:59
·
덕분에 테스트도 해보고 개념 잡는데 많은 도움이 되었습니다.
카일라스
IP 221.♡.26.2
04-21 2025-04-21 19:03:31
·
@살로만님 도움이 되었다니 기쁩니다!
수지의달
IP 211.♡.226.146
04-22 2025-04-22 11:11:22
·
저도 한번 해보고 싶네요
카일라스
IP 221.♡.26.2
04-22 2025-04-22 13:04:59
·
@수지의달님 상용 서비스에 비할 수는 없지만, 재미로 PC 에 설치해서 해볼만 합니다. 의외로 재미를 느끼실 수 도 있을겁니다!
베이비페이스
IP 58.♡.232.231
04-24 2025-04-24 19:23:40
·
저장해놓고 다음에봐야겠네요
카일라스
IP 221.♡.26.2
04-25 2025-04-25 19:22:28
·
@베이비페이스님 시간될 때 한번 해보세요. 아직 모자라긴해도 하나씩 가르쳐나가는 맛??이 있습니다.
QWERTY
IP 115.♡.191.63
04-25 2025-04-25 03:12:24
·
임베디드 개발 때려친지 10년 넘은 사람도, 파이썬의 P를 몰라도 로컬에서 올라마(젬마3)+OCR엔진으로 이미지에서 텍스트 추출해서 업무에 적용하고 있습니다. AI의 발전은 정말 대단한 것 같습니다.
카일라스
IP 221.♡.26.2
04-25 2025-04-25 19:23:05
·
@QWERTY님 불과 몇 년 새에 정말 놀랍습니다. 3~4년 지나면 어떻게 바뀔지 감도 안잡혀요.
viatoris
IP 104.♡.102.65
04-25 2025-04-25 09:19:58
·
n8n이라는 녀석도 있더군요. low code tool인데..
mcp 는 물론 http request나 rdb 접속도 지원하기 때문에.. 다양하게 해볼수 있습니다. telegram이나 temas와도 연동이 되기 때문에.. UI로 메신저를 사용할수도 있고요.

연결가능한 노드에 ollama도 있던데 아직 해보진 않았습니다.

저도 막 접해서 이것저것 해본느데 좋네요. 이거 해보느라 openai api모델 구독도 시작;;
카일라스
IP 221.♡.26.2
04-25 2025-04-25 19:23:52
·
@viatoris님 저도 ollama 를 쓰는데도, 이것저것 테스트 해본다고 구독을 시작했어요;;;
르가인
IP 106.♡.197.67
07-10 2025-07-10 15:58:45
·
잘봤습니다^^
새로운 댓글이 없습니다.
이미지 최대 업로드 용량 15 MB / 업로드 가능 확장자 jpg,gif,png,jpeg,webp
지나치게 큰 이미지의 크기는 조정될 수 있습니다.
목록으로
글쓰기
글쓰기
목록으로 댓글보기 이전글 다음글
아이디  ·  비밀번호 찾기 회원가입
이용규칙 운영알림판 운영소통 재검토요청 도움말 버그신고
개인정보처리방침 이용약관 책임의 한계와 법적고지 청소년 보호정책
©   •  CLIEN.NET
보안 강화를 위한 이메일 인증
안전한 서비스 이용을 위해 이메일 인증을 완료해 주세요. 현재 회원님은 이메일 인증이 완료되지 않은 상태입니다.
최근 급증하는 해킹 및 도용 시도로부터 계정을 보호하기 위해 인증 절차가 강화되었습니다.

  • 이메일 미인증 시 글쓰기, 댓글 작성 등 게시판 활동이 제한됩니다.
  • 이후 새로운 기기에서 로그인할 때마다 반드시 이메일 인증을 거쳐야 합니다.
  • 2단계 인증 사용 회원도 최초 1회는 반드시 인증하여야 합니다.
  • 개인정보에서도 이메일 인증을 할 수 있습니다.
지금 이메일 인증하기
등록된 이메일 주소를 확인하고 인증번호를 입력하여
인증을 완료해 주세요.