소개
AI 뉴스를 모아보고 싶었어요.
https://www.artificial-intelligence.blog/ai-news/category/news?format=rss여기의 뉴스를 받아오는 MCP 서버를 개발하고
클로드로 시각화해봤습니다.
진행 방법
MCP 서버는 랭체인의 Agent를 썼습니다.
result = agent_executor.invoke({
"input": """아래 RSS 피드에 접속해서 최신 소식을 요약해서 한국어로 답해 줘.
https://www.artificial-intelligence.blog/ai-news/category/news?format=rss
""",
"chat_history": []
})여기가 핵심 소스에요.
랭체인의 Agent 에서는 다시 tool을 썼습니다.
@tool
def read_rss_feed(url: str) -> str:
"""
지정된 URL의 RSS 피드를 읽고 최근 항목들의 요약을 반환합니다.
뉴스 요약, 블로그 업데이트 등을 얻을 때 유용합니다.
입력은 유효한 RSS 피드 URL이어야 합니다.
"""주어진 RSS 피드를 읽고 파싱하는 함수입니다.
Agent의 응답도 파싱해야 해서 뒤에 파싱 로직을 붙여서 리턴했습니다.
@mcp.tool()
async def get_ai_news_rss():
result = await execute_agent()
return result여기가 MCP 서버가 붙는 지점입니다.
이렇 게 실행했어요.
한국어 텍스트가있는 페이지의 스크린 샷
그냥 텍스트로 나오는 Agent의 출력을 클로드 아티팩트가 멋지게 시각화해줬습니다.
한국 AI 대시 보드의 스크린 샷
AI의 결과를 보여주는 파이 차트
한국 AI 순위 목록
결과와 배운 점
Agent가 실행하는데 여러 번의 스텝이 있는데, 처음에 async를 안 썼더니 제대로 안 되었습니다.
async 함수 쓰니까 제대로 동작하네요.
이번 에는 도커 설정에 조금 신경을 썼습니다.
FROM python:3.11-slim
COPY pyproject.toml /app/
WORKDIR /app
# curl 설치
RUN apt-get update && apt-get install -y curl
# 전체 프로젝트 복사
COPY . .
# uv 설치 (전역 설치 위치로 들어감)
RUN curl -LsSf https://astral.sh/uv/install.sh | sh
RUN pip install uv
# pyproject.toml을 requirements 형식으로 변환
RUN uv pip sync requirements.txt --system
# uv가 설치된 경로를 PATH에 추가
ENV PATH="/root/.local/bin:${PATH}"
ENV ANTHROPIC_API_KEY="your_api_key"
# 가상환경 생성 및 프로젝트 설치
# RUN uv venv .venv && uv pip install -r pyproject.toml
# 필요한 포트 오픈
EXPOSE 3000
EXPOSE 5173
EXPOSE 8088
# MCP 서버 실행
ENTRYPOINT ["uv", "run", "mcp", "run", "src/web_search_agent.py:mcp"]# pyproject.toml
[project]
requires-python = ">=3.10"
name = "mcp-server-news" # project 이름
version = "0.1.0"
dependencies = [
"mcp[cli]>=1.6.0",
"langchain>=0.3.0",
"langchain-anthropic>=0.3.0",
"langchain-core>=0.3.0",
"feedparser>=6.0.0"
]
지난 번에는 여기까지만 했는데 이번에는 requirements.txt 도 추가했습니다.
mcp[cli]>=1.6.0
langchain>=0.3.0
langchain-anthropic>=0.3.0
langchain-core>=0.3.0
feedparser>=6.0.0그래도 아직 도커 공부는 필요한 것 같습니다.
이 클로드 아티팩트를 홈페이지로 바로 배포하고 싶은데, 그런 MCP 서버가 있다면 알려주세요~
원스톱으로 홈페이지 만들고 싶습니다..ㅠ.ㅠ