Skip to main content
Glama
moltrus

Google News MCP

by moltrus

Google 뉴스 MCP

Model Context Protocol (MCP) 서버로, Google 뉴스 RSS 피드를 MCP 도구로 노출하여 AI 어시스턴트(Claude, GPT-4 등)가 자동 URL 디코딩, 동시 처리 및 지능형 캐싱을 통해 실시간 뉴스 데이터에 액세스할 수 있도록 합니다.

주요 기능

비동기 및 동시성 - 모든 작업은 최대 성능을 위해 동시 URL 디코딩과 함께 비동기적으로 실행됩니다. 스마트 캐싱 - 빠른 반복 URL 디코딩을 위한 LRU 캐시(1024개 항목) 일괄 URL 디코딩 - 여러 Google 뉴스 URL을 병렬로 디코딩 깔끔한 요약 - 디코딩된 기사 링크가 포함된 HTML 요약에서 일반 텍스트 추출 토큰 지향 객체 표기법(TOON) - 컴팩트하고 토큰 효율적인 응답 형식 지원(30-60% 감소) 다국어 지원 - 언어/국가 조합 구성 가능 고급 검색 - Google 뉴스 검색 연산자(site:, when:, intitle: 등) 완벽 지원 페이지 추출 - Jina ReaderGroq를 사용하여 전체 기사 콘텐츠를 가져오고 요약


도구 개요

도구

목적

매개변수

get_top_headlines

국가별 최신 헤드라인

language, country

get_category_feed

카테고리별 뉴스 (TECH, BUSINESS 등)

category, language, country

get_search_feed

고급 연산자를 사용한 뉴스 검색

query, language, country

get_geo_feed

위치별 뉴스

location, language, country

get_topic_feed

ID별 트렌드 토픽

topic_id, language, country

decode_google_news_url

Google 뉴스 URL 디코딩

urls (목록)

list_categories

사용 가능한 뉴스 카테고리

(없음)

fetch_content

페이지 콘텐츠 가져오기 및 요약

url, summarize

총: 8개 도구


빠른 시작

설치

옵션 1: uv 사용 (권장)

# Clone the repository
git clone https://github.com/moltrus/google-news-mcp.git
cd google-news-mcp

# Install with uv
uv sync

옵션 2: 가상 환경에서 pip 사용

# Clone the repository
git clone https://github.com/moltrus/google-news-mcp.git
cd google-news-mcp

# Create virtual environment
python -m venv .venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate

# Install in development mode
pip install -e .

전역 사용 (모든 방법)

어디서나 google-news-mcp 명령을 전역으로 사용하려면:

pip install -e .

이 명령은 명령줄 진입점을 시스템 전체에 설치하여 모든 디렉토리에서 google-news-mcp를 실행할 수 있게 합니다.

구성

.env.example을 기반으로 .env 파일을 생성합니다:

# RSS Preferences
GOOGLE_NEWS_LANGUAGE=en
GOOGLE_NEWS_COUNTRY=US

# Response Optimization
# Options: "json" (standard) or "toon" (token-optimized)
RESPONSE_FORMAT=json

# Fetching & Summarization
JINA_API_KEY=your_jina_key
GROQ_API_KEY=your_groq_key
GROQ_MODEL=qwen/qwen3-32b

서버 실행

google-news-mcp

또는 직접 실행:

python -m google_news_mcp.server

도구 문서

get_top_headlines

국가별 최신 헤드라인을 가져옵니다.

매개변수:

  • language (문자열, 선택 사항): 언어 코드 (예: 'en', 'fr', 'es'). 기본값은 GOOGLE_NEWS_LANGUAGE 환경 변수입니다.

  • country (문자열, 선택 사항): 국가 코드 (예: 'US', 'GB', 'JP'). 기본값은 GOOGLE_NEWS_COUNTRY 환경 변수입니다.

반환값:

{
  "title": "Google News",
  "link": "https://news.google.com",
  "description": "Latest news",
  "entries": [
    {
      "title": "Article Title",
      "link": "https://source.com/article",
      "published": "2026-03-31T10:00:00Z",
      "summary": "Article Title (https://source.com/article)\nAnother Article (https://another.com/news)",
      "source": "Source Name"
    }
  ]
}

참고:

  • 기사는 관련성 순으로 정렬됩니다(Google 뉴스 기본값).

  • URL은 Google 뉴스 리다이렉트에서 자동으로 디코딩됩니다.

  • 요약에는 일반 텍스트 형식으로 추출된 링크가 포함됩니다.


get_category_feed

특정 카테고리의 뉴스 헤드라인을 가져옵니다.

매개변수:

  • category (문자열, 필수): 뉴스 카테고리. 유효한 값:

    • WORLD - 국제 뉴스

    • NATION - 국내/지역 헤드라인

    • BUSINESS - 비즈니스 및 금융

    • TECHNOLOGY - 기술 및 AI

    • ENTERTAINMENT - 엔터테인먼트 및 대중문화

    • SPORTS - 스포츠

    • SCIENCE - 과학 및 연구

    • HEALTH - 건강 및 의학

  • language (문자열, 선택 사항): 언어 코드. 기본값은 구성 설정입니다.

  • country (문자열, 선택 사항): 국가 코드. 기본값은 구성 설정입니다.

반환값: get_top_headlines와 동일

예시:

get_category_feed(category="TECHNOLOGY")
get_category_feed(category="BUSINESS", country="UK")

get_search_feed

키워드 쿼리와 고급 연산자를 사용하여 Google 뉴스를 검색합니다.

매개변수:

  • query (문자열, 필수): 선택적 연산자가 포함된 검색 쿼리

  • language (문자열, 선택 사항): 언어 코드. 기본값은 구성 설정입니다.

  • country (문자열, 선택 사항): 국가 코드. 기본값은 구성 설정입니다.

지원되는 검색 연산자:

  • 정확한 구문: "Artificial Intelligence" (정확히 일치해야 함)

  • 용어 제외: -apple ("apple"이 포함된 기사 제외)

  • 사이트 지정: site:techcrunch.com (해당 도메인에서만)

  • 시간 범위 (상대적): when:1h, when:24h, when:7d, when:30d, when:1y, when:1m

  • 시간 범위 (절대적): after:2026-01-01, before:2026-03-31

  • 제목 검색: intitle:merger (헤드라인에만 용어가 나타남)

  • 불리언 OR: Tesla OR SpaceX (둘 중 하나)

  • 조합: "GPT-4" site:openai.com when:7d (모두 함께)

반환값: get_top_headlines와 동일 (최대 약 100개 기사)

쿼리 예시:

"OpenAI Sora"                                # Exact phrase
AI -hype                                     # Include AI, exclude hype
site:arxiv.org quantum computing             # From academic site
when:1h breaking                             # Last hour
when:24h -rumor Bitcoin                      # Last 24h, exclude rumors
after:2026-03-01 before:2026-03-31 merger    # Date range
intitle:IPO tech companies                   # IPO in headline
SpaceX OR Blue Origin                        # Either company OR other

중요: 날짜 필터는 일 단위로 작동합니다(시간/분 단위 정밀도 아님).


get_geo_feed

특정 지리적 위치에 대한 뉴스를 가져옵니다.

매개변수:

  • location (문자열, 필수): 도시, 주, 지역 또는 국가 (예: 'San Francisco', 'California', 'Japan')

  • language (문자열, 선택 사항): 언어 코드. 기본값은 구성 설정입니다.

  • country (문자열, 선택 사항): 국가 코드. 기본값은 구성 설정입니다.

반환값: get_top_headlines와 동일

예시:

get_geo_feed(location="New York")
get_geo_feed(location="London", language="en")
get_geo_feed(location="Tokyo", country="JP")

fetch_content

Jina Reader API를 사용하여 URL에서 깔끔한 페이지 콘텐츠를 가져오고, Groq을 통해 선택적으로 요약합니다.

매개변수:

  • url (문자열, 필수): 가져올 절대 URL (http:// 또는 https://로 시작해야 함)

  • summarize (불리언, 선택 사항): true인 경우 Groq을 통해 간결한 요약을 반환하고 전체 원본 콘텐츠는 생략하여 토큰을 절약합니다. 기본값은 false입니다.

반환값:

{
  "url": "https://example.com/article",
  "reader_url": "https://r.jina.ai/https://example.com/article",
  "content": "Full article text...",
  "summary": "Concise summary points...",
  "summary_model": "qwen/qwen3-32b",
  "summary_error": "Error message if summarization fails"
}

참고:

  • 토큰 효율성: summarizetrue이면 컨텍스트 윈도우 낭비를 방지하기 위해 content 필드가 응답에서 자동으로 제거됩니다.

  • 환경 변수:

    • JINA_API_KEY: 콘텐츠 추출에 필요.

    • GROQ_API_KEY: 요약에 필요.

    • GROQ_MODEL: 선택 사항. 사용할 특정 모델 (기본값은 qwen/qwen3-32b).


decode_google_news_url

여러 Google 뉴스 URL을 실제 기사 목적지로 병렬로 디코딩합니다.

매개변수:

  • urls (문자열 목록, 필수): 디코딩할 Google 뉴스 리다이렉트 URL 배열

반환값:

{
  "decoded_urls": [
    {
      "original_url": "https://news.google.com/articles/CBMi8wFAUU...",
      "decoded_url": "https://techcrunch.com/2026/03/31/ai-news"
    },
    {
      "original_url": "https://news.google.com/articles/CBMixAFAUU...",
      "decoded_url": "https://theverge.com/2026/3/31/10987654"
    }
  ]
}

성능:

  • 모든 URL이 동시에 디코딩됨 (순차적 지연 없음)

  • 반복 조회를 위해 결과 캐싱 (캐시 적중 시 즉시 반환)

  • 1024개 항목 제한의 LRU 캐시

예시:

decode_google_news_url(urls=[
  "https://news.google.com/articles/CBMi8wFAUU...",
  "https://news.google.com/articles/CBMixAFAUU...",
  "https://news.google.com/articles/CBMi5gFAUU..."
])

get_topic_feed

특정 트렌드 토픽 ID별로 뉴스를 가져옵니다.

Google 뉴스는 트렌드 토픽을 해시(예: 기업, 이벤트, 반복되는 테마)로 추적합니다.

매개변수:

  • topic_id (문자열, 필수): Google 뉴스 토픽 해시 식별자

  • language (문자열, 선택 사항): 언어 코드. 기본값은 구성 설정입니다.

  • country (문자열, 선택 사항): 국가 코드. 기본값은 구성 설정입니다.

반환값: get_top_headlines와 동일

일반적인 토픽 ID:

  • CAAqKAgKIiJDQkFTRXdvS0wyMHZNSFp3YWpSZlloSUZaVzR0UjBJb0FBUAE - 암호화폐

  • Google 뉴스를 탐색하고 URL의 토픽 매개변수를 확인하여 더 많은 ID를 찾으세요.

예시:

get_topic_feed(topic_id="CAAqKAgKIiJDQkFTRXdvS0wyMHZNSFp3YWpSZlloSUZaVzR0UjBJb0FBUAE")

list_categories

사용 가능한 뉴스 카테고리 목록을 가져옵니다.

매개변수: 없음

반환값:

{
  "categories": [
    "WORLD",
    "NATION",
    "BUSINESS",
    "TECHNOLOGY",
    "ENTERTAINMENT",
    "SPORTS",
    "SCIENCE",
    "HEALTH"
  ]
}

아키텍처

성능 최적화

  1. Async/Await - 모든 I/O 작업(HTTP, 디코딩)은 비차단 방식입니다.

  2. 동시 처리 - asyncio.gather()를 통해 여러 URL과 항목을 병렬로 처리합니다.

  3. LRU 캐시 (1024개 항목) - 함수 수준에서 디코딩된 URL 캐싱

  4. 메모리 내 사전 캐시 - 디코딩된 URL에 대한 추가적인 빠른 조회 캐시

  5. 일괄 작업 - decode_google_news_url은 URL 목록을 동시에 처리합니다.

요약 형식

기사 요약은 HTML에서 추출되어 디코딩된 링크가 포함된 일반 텍스트로 반환됩니다:

Article Title 1 (https://original-source.com/article1)
Image caption link (https://image-source.com/photo)
Article Title 2 (https://original-source.com/article2)

HTML 태그, CDATA 래퍼 및 엔티티는 깔끔하고 읽기 쉬운 텍스트를 위해 제거됩니다.


사용 예시

1. 지난 1시간 동안의 속보 가져오기

get_search_feed(query="when:1h breaking", country="US")

2. 여러 기사 URL을 한 번에 디코딩

decode_google_news_url(urls=[
  "https://news.google.com/articles/CBMi8wFAUU...",
  "https://news.google.com/articles/CBMixAFAUU..."
])

3. 특정 소스의 기술 뉴스

get_search_feed(query="site:techcrunch.com AI")

4. 도시별 지역 뉴스

get_geo_feed(location="San Francisco")

5. 날짜 범위로 검색

get_search_feed(query="SpaceX after:2026-03-01 before:2026-03-31")

6. 건강 뉴스 가져오기

get_category_feed(category="HEALTH")

7. 트렌드 암호화폐 뉴스

get_topic_feed(topic_id="CAAqJggKIiBDQkFTRWdvSUwyMHZNR3d5YldFeVpYVXVhVzV6U0FpQkFQAQ")

8. 전체 기사 가져오기 및 요약

fetch_content(url="https://techcrunch.com/article-url", summarize=true)

토큰 효율성 및 TOON

이 서버는 LLM을 위해 특별히 설계된 컴팩트 데이터 형식인 **토큰 지향 객체 표기법(TOON)**을 지원합니다.

왜 TOON을 사용하나요?

표준 JSON은 반복되는 키와 구두점으로 인해 LLM에게 장황할 수 있습니다. TOON은 다음을 통해 토큰 사용량을 30-60% 줄입니다:

  • 객체 배열에 대한 키를 한 번만 정의 (표 형식).

  • 불필요한 중괄호, 대괄호 및 따옴표 제거.

  • 들여쓰기 및 간단한 구분 기호 사용.

구성

모든 도구 응답에 대해 TOON을 전역적으로 활성화하려면 .env에 다음을 설정하세요:

RESPONSE_FORMAT=toon

비교

JSON (장황함)

TOON (컴팩트)

{"entries": [{"id": 1, "title": "A"}, {"id": 2, "title": "B"}]}

entries[2,]{id,title}:

  1,A

  2,B


제한 사항

  1. 결과 제한: Google 뉴스 RSS는 요청당 최대 약 100개의 기사를 반환합니다.

  2. 정렬: 기본값은 관련성입니다. 시간순 정렬을 위해 when: 필터를 사용하세요.

  3. 날짜 정밀도: 필터는 시간/분 단위가 아닌 일 단위로 작동합니다.

  4. 속도 제한: RSS에는 API 키가 필요하지 않지만, Jina Reader와 Groq은 자체 제한/할당량이 있습니다.

  5. 콘텐츠 추출: fetch_content는 대상 사이트를 구문 분석하는 Jina Reader의 능력에 의존합니다.

  6. 토픽 ID: Google 뉴스 URL에서 찾아야 하며, 조회 API는 없습니다.


라이선스

MIT

Install Server
F
license - not found
A
quality
-
maintenance - not tested

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/moltrus/google-news-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server