Skip to main content
Glama

mcp-trendpulse

MCP Python License

TrendPulse는 Python Model Context Protocol (MCP) 서버로, 최신 뉴스와 검색 관심 트렌드를 조사합니다. Google News 디스커버리와 기사 추출을 Google Trends 분석과 결합하여 MCP 클라이언트가 트렌딩 중인 항목을 확인하고, 키워드 모멘텀을 비교하고, 관련 수요를 탐색하고, 리서치 워크플로에 최신 뉴스 컨텍스트를 추가할 수 있게 합니다.

이 프로젝트는 현재 커뮤니티/자체 호스팅 MCP 서버로 제공되며, ChatGPT 및 Codex 같은 원격 MCP 클라이언트용 별도의 호스팅된 TrendPulse by DigestSEO 인터페이스 구현도 포함합니다. 호스팅 레이어는 더 작고 목표 지향적인 도구 인터페이스를 사용하는 반면, 커뮤니티 서버는 개발자가 사용할 수 있는 전체 저수준 리서치 도구 키트를 유지합니다.

프로젝트 상태: 로컬/커뮤니티 서버는 지금 사용할 수 있습니다. DigestSEO 호스팅 MCP와 공개 OpenAI 플러그인은 아직 출시되지 않았으며 사용 가능한 엔드포인트로 취급해서는 안 됩니다.

엔지니어링 컨텍스트: TrendPulse는 DigestSEO MCP 생태계의 일부입니다. Google Search Console 데이터용 mcp-gsc, AI 가시성용 mcp-geo, 기술적 웹 검증용 mcp-web-validator를 보완합니다. 전체 아키텍처는 DigestSEO MCP Suite 엔지니어링 사례 연구에 문서화되어 있습니다.

TrendPulse가 할 수 있는 기능

뉴스 리서치

  • Google News를 키워드, 위치, 주제 또는 게시자 도메인별로 검색합니다.

  • 상위 뉴스 기사를 가져옵니다.

  • Google News 링크를 확인하고 기사 콘텐츠를 추출합니다.

  • 어려운 페이지의 경우 일반 HTTP 검색에서 Playwright/Chromium으로 대체합니다.

  • 선택적으로 MCP 클라이언트 샘플링으로 기사 텍스트를 요약하며, 로컬 NLP를 대체 수단으로 사용합니다.

트렌드 리서치

  • 특정 지역 시장의 현재 인기 검색어를 가져옵니다.

  • 하나 이상의 키워드에 대한 Google Trends 시간별 관심도 데이터를 가져옵니다.

  • 3M 또는 1Y 같은 사용자 지정 기간에 걸친 키워드 성장률을 계산합니다.

  • 실시간 트렌드를 볼륨 또는 성장률 기준으로 순위를 매깁니다.

  • 지원되는 경우 국가, 지역, 도시 또는 DMA별 관심도를 확인합니다.

  • 관련 검색어, 관련 주제, 추천 검색어 및 카테고리 ID를 탐색합니다.

  • 기본 제공자가 지원하는 경우 Google Search, YouTube Search, News Search, Image Search 및 Google Shopping 트렌드 속성을 비교합니다.

Related MCP server: NewsIQ MCP

커뮤니티 및 호스팅 아키텍처

TrendPulse는 의도적으로 두 가지 인터페이스로 개발되고 있습니다.

인터페이스

목적

상태

Community MCP

로컬 사용, 개발, 자체 호스팅 및 MCP 호환 클라이언트와의 통합을 위한 전체 Python MCP 서버.

이 저장소에서 사용 가능

TrendPulse by DigestSEO

ChatGPT/Codex용 관리형 원격 MCP와 더 작고 작업 지향적인 도구 인터페이스를 갖춘 향후 공개 OpenAI 플러그인.

개발 중

커뮤니티 서버는 독립적으로도 유용합니다. 호스팅 버전은 동일한 핵심 트렌드 리서치 개념을 재사용하면서, 관리형 서비스에 필요한 배포, 안정성, 인증, 관측 가능성 및 제품 통합을 추가합니다.

구현된 호스팅 도구 인터페이스는 의도적으로 커뮤니티 API보다 높은 수준이며 다음과 같은 목표에 중점을 둡니다.

  • discover_trends

  • analyze_keyword_trend

  • compare_keyword_trends

  • discover_related_demand

  • get_trend_context

  • find_seo_opportunities

이러한 이름은 호스팅 ChatGPT Apps/MCP 인터페이스를 설명하며, 현재 Community MCP 도구 이름과는 별개입니다.

설치

GitHub에서 uvx로 직접 실행(권장)

이 패키지는 아직 PyPI에 게시되지 않았으므로 가장 직접적인 설치 방법은 다음과 같습니다.

uvx --from git+https://github.com/AKzar1el/mcp-trendpulse.git mcp-trendpulse

PyPI 릴리스가 나온 후에는 더 짧은 형식을 사용할 수 있습니다.

uvx mcp-trendpulse

체크아웃에서 pip로 설치

git clone https://github.com/AKzar1el/mcp-trendpulse.git
cd mcp-trendpulse
python -m pip install .
python -m mcp_trendpulse

브라우저 대체

뉴스/기사 도구는 일반 검색으로 유용한 기사를 추출할 수 없을 때 Playwright로 대체할 수 있습니다. Python playwright 패키지를 설치한다고 해서 Chromium이 자동으로 설치되지는 않습니다.

로컬 사용 시:

playwright install chromium

브라우저 시스템 종속성도 필요한 Linux 환경의 경우:

playwright install --with-deps chromium

트렌드 전용 작업은 기본적으로 Chromium이 필요하지 않습니다.

클라이언트 구성

Claude Desktop

GitHub에서 uvx를 직접 사용:

{
  "mcpServers": {
    "mcp-trendpulse": {
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/AKzar1el/mcp-trendpulse.git",
        "mcp-trendpulse"
      ]
    }
  }
}

VS Code

{
  "mcp": {
    "servers": {
      "mcp-trendpulse": {
        "command": "uvx",
        "args": [
          "--from",
          "git+https://github.com/AKzar1el/mcp-trendpulse.git",
          "mcp-trendpulse"
        ]
      }
    }
  }
}

Cursor

Cursor는 전역 및 프로젝트 MCP 구성을 지원합니다. 해당 mcp.json 구성에 서버를 추가하세요:

{
  "mcpServers": {
    "mcp-trendpulse": {
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/AKzar1el/mcp-trendpulse.git",
        "mcp-trendpulse"
      ]
    }
  }
}

ChatGPT 및 기타 클라우드 MCP 클라이언트

이 저장소에는 이제 mcp_trendpulse.asgi:app에 전용 상태 비저장 Streamable HTTP ASGI 진입점이 포함되어 있습니다. 이는 변경되지 않은 Community stdio 진입점과 분리되어 있습니다.

통제된 로컬/개인 테스트를 위해 Uvicorn으로 ASGI 앱을 실행하거나 제공된 컨테이너를 사용할 수 있습니다. 강화된 컨테이너, Host/Origin 허용 목록, Chromium 샌드박스 요구 사항, 상태/준비 엔드포인트 및 리버스 프록시 참고 사항은 deploy/README.md를 참조하세요.

DigestSEO 호스팅 엔드포인트와 공개 ChatGPT 앱은 아직 출시되지 않았습니다. 호스팅 배포는 이제 fail-closed 방식의 Clerk OAuth 인증을 지원합니다. Clerk 발급자/JWKS/대상(audience) 설정, 공개 기본 URL 및 Host/Origin 허용 목록이 해당 배포에 구성되지 않는 한 원격 전송을 공개적으로 노출하지 마십시오.

구성

TrendPulse는 프로세스 환경 변수와 로컬 .env 파일(있는 경우)에서 환경 변수를 로드합니다.

유용한 변수는 다음과 같습니다.

HTTP_PROXY=http://your-proxy-address:port
HTTPS_PROXY=http://your-proxy-address:port
GOOGLE_TRENDS_DELAY=2.0

GOOGLE_TRENDS_DELAY는 현재 Trends 제공자가 사용하는 요청 지연을 제어합니다. 업스트림 서비스가 특정 네트워크를 속도 제한하거나 차단할 때 프록시 변수가 유용할 수 있습니다.

원격 배포는 또한 TRENDPULSE_HTTP_PATH, TRENDPULSE_HTTP_ALLOWED_HOSTS, TRENDPULSE_HTTP_ALLOWED_ORIGINS, TRENDPULSE_BROWSER_SANDBOX를 지원합니다. 컨테이너는 Chromium 샌드박싱을 명시적으로 활성화합니다. 로컬 Community 실행은 별도로 선택하지 않는 한 Playwright 호환 기본값을 유지합니다.

비밀, 개인 프록시 자격 증명 또는 특정 머신용 .env 파일을 커밋하지 마십시오.

MCP 도구

커뮤니티 MCP 서버는 현재 16개 도구를 제공합니다.

뉴스 도구

도구

목적

get_news_by_keyword

키워드와 일치하는 최근 뉴스 기사를 찾습니다.

get_news_by_location

위치와 관련된 최근 뉴스를 찾습니다.

get_news_by_topic

지원되는 Google News 주제의 최근 뉴스를 찾습니다.

get_top_news

상위 Google News 기사를 가져옵니다.

get_news_by_site

특정 게시자 도메인의 최근 뉴스를 찾습니다.

get_article_content

하나의 기사 URL을 다운로드하고 검증하고 추출하며 선택적으로 요약합니다.

트렌드 도구

도구

목적

get_trending_terms

특정 지역 대상의 현재 인기 검색어를 가져옵니다.

get_trends

하나 이상의 키워드에 대한 시간별 관심도 데이터 포인트를 가져옵니다.

get_growth

요청된 기간에 대한 검색 관심도 성장률을 계산합니다.

get_ranked_trends

현재 트렌드를 성장률 또는 볼륨 기준으로 순위를 매깁니다.

get_top_trends

키워드 없이 상위 트렌드 피드를 가져옵니다.

get_interest_by_region

지리적 지역 간 키워드 관심도를 비교합니다.

get_related_queries

상위 및 급상승 관련 검색어를 가져옵니다.

get_related_topics

상위 및 급상승 관련 Google Trends 주제를 가져옵니다.

get_suggestions

쿼리에 대한 자동 완성/주제 추천을 확인합니다.

get_categories

Google Trends 카테고리 ID와 이름을 가져옵니다.

예: 명시적 트렌드 기간

get_trends는 명시적 timeframe을 허용합니다. 재현 가능한 비교가 필요할 때는 이를 지정하는 것이 좋습니다.

{
  "keyword": ["technical SEO audit", "AI SEO audit"],
  "geo": "US",
  "source": "google search",
  "timeframe": "today 12-m",
  "cat": 0
}

지원되는 제공자 범위에는 today 12-m, today 5-y 같은 표준 기간, today 90-d, all 같은 상대 기간, 2021-01-01 2026-01-01 같은 정확한 날짜 범위가 포함됩니다.

Google Trends 값은 정규화된 관심도 점수입니다. 0-100 관심도 시계열을 절대 검색량으로 해석하지 마십시오.

CLI

별도의 Click CLI는 MCP 서버보다 더 작은 뉴스 중심 명령 세트를 제공합니다.

uv run mcp-trendpulse-cli --help

현재 CLI 명령:

keyword
location
top
topic
trending

CLI와 MCP 인터페이스는 동일한 명령 세트를 제공하지 않으므로 의도적으로 별도로 문서화됩니다.

개발

선호하는 Python 환경에서 개발 종속성과 함께 프로젝트를 설치한 다음 단위 테스트 스위트를 실행하세요:

python -m pytest

기본 pytest 구성은 라이브 통합 테스트를 제외합니다.

라이브 제공자 테스트를 명시적으로 실행하려면:

python -m pytest tests/integration -m integration

브라우저 표시 통합 테스트에는 Playwright Chromium이 설치되어 있어야 합니다.

Ruff 검사를 실행하려면:

ruff check .

MCP Inspector

GitHub에서 게시된 서버를 MCP Inspector를 통해 실행하세요:

npx @modelcontextprotocol/inspector uvx --from git+https://github.com/AKzar1el/mcp-trendpulse.git mcp-trendpulse

로컬 체크아웃의 경우:

npx @modelcontextprotocol/inspector uv run mcp-trendpulse

패키징

GitHub 릴리스가 게시되면 PyPI Trusted Publishing을 통해 Python 배포판을 빌드하고 게시하기 위한 GitHub Actions 워크플로가 이미 포함되어 있습니다. 첫 번째 패키지 릴리스가 나올 때까지 위에 표시된 GitHub uvx --from ... 명령을 사용하세요.

보안 참고 사항

기사 검색은 아웃바운드 네트워크 기능이며 신뢰할 수 없는 입력으로 취급됩니다. 구현은 HTTP(S) 대상을 검증하고, 사설 및 라우팅 불가능한 대상을 거부하고, 리디렉션 대상을 확인하고, 응답 크기 제한을 적용하며, Playwright 사용 시 브라우저 경로 검증을 적용합니다.

원격으로 TrendPulse를 배포하는 경우 이러한 제어 장치를 유지하고 애플리케이션 기본값에만 의존하지 말고 배포 수준의 속도 제한, 요청 시간 초과, 관측 가능성 및 리소스 제한을 추가하세요.

로드맵

현재 프로덕션 준비 작업은 다음에 중점을 둡니다.

  1. 문서, 패키징 메타데이터 및 생성된 MCP 매니페스트를 실제 도구 인터페이스와 일관되게 유지하는 것.

  2. 단위 테스트와 정적 검사를 위한 지속적 통합을 추가하는 것.

  3. 공급자를 MCP 레이어를 다시 작성하지 않고 교체할 수 있도록 공급자 액세스를 TrendPulse의 도메인 로직과 분리하는 것.

  4. 로컬 stdio 작동을 유지하면서 프로덕션 원격 HTTP 전송을 추가하는 것.

  5. ChatGPT/Codex용 더 작은 고수준 호스팅 도구 인터페이스를 설계하는 것.

  6. 호스팅 서비스를 DigestSEO 애플리케이션 및 운영 스택과 통합하는 것.

  7. 서비스가 프로덕션 준비가 된 후에만 호스팅 MCP를 OpenAI 플러그인으로 패키징하고 테스트하는 것.

라이선스

MIT. LICENSE를 참조하세요.

Available Tools

16 tools
get_article_contentA
Read-only

Download and parse one specific news article when you already have an article URL. Use it to retrieve article text or metadata or summarize that URL; do not use it for discovery - use the news search tools instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe URL of the news article to download and parse.
full_dataNoReturn full data for the article. If False a summary should be created by setting the summarize flag
summarizeNoGenerate a summary of the article, will first try LLM Sampling but if unavailable will use nlp

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds useful context about downloading/parsing and summarizing, but does not disclose behavior around invalid URLs, paywalls, or fallback outcomes. This is acceptable given the annotations, but not especially rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences front-load the core action and condition, then immediately give the routing exclusion. Every sentence earns its place and there is no fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-URL read tool with full schema coverage and an output schema, the description covers use case, scope, and alternatives. It does not discuss edge cases like malformed URLs or unavailable articles, but these are minor gaps for this simple safe-read tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all three parameters well. The description adds a high-level hint about retrieving text/metadata or summarizing, but does not materially improve on the schema's own descriptions. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's specific verb ('Download and parse') and resource ('one specific news article... when you already have an article URL'). It also explicitly scopes this away from discovery, distinguishing it from sibling search/trend tools even without opening their schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives an explicit when-to-use condition ('when you already have an article URL') and a clear exclusion with the alternative ('do not use it for discovery - use the news search tools instead'). This is direct and actionable for an agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_categoriesA
Read-only

Return Google Trends category IDs and names for use in the cat parameter of trend tools. Call this when a category filter is needed; do not guess category IDs.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, so this is clearly a safe read-only operation. The description adds context that the tool provides authoritative category identifiers for use in other trend tools, but it does not disclose additional behavioral traits such as output volume, ordering, or whether categories are pre-defined or dynamic. Given the annotations cover the safety profile, a 3 is appropriate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no filler. The purpose is stated first, and the usage instruction is compressed into a direct, actionable second sentence.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter read-only lookup tool with an output schema and clear annotations, the description provides enough information for an agent to call it correctly. It states what is returned, why it is needed, and when to invoke it. Nothing essential is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has 0 parameters, so there are no parameter semantics to clarify. The baseline for no-parameter tools is 4, and the description does usefully explain that the returned IDs are intended for the cat parameter of other trend tools, which helps an agent understand how to use the results.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb ('Return'), a concrete resource (Google Trends category IDs and names), and its intended use (the cat parameter of trend tools). This clearly distinguishes it from sibling tools that retrieve news or trend data, so an agent can tell this is a lookup/reference tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to call it: 'when a category filter is needed.' It also warns against guessing category IDs, which is actionable guidance that steers the agent toward this tool rather than improvising a category value.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_growthA
Read-only

Estimate momentum for one or more known keywords across requested growth windows. Use this when percentage growth is the goal; use get_trends when the user needs the underlying historical time series.

ParametersJSON Schema
NameRequiredDescriptionDefault
geoNoGeographic region code (e.g. 'US').US
sourceNoSearch source: 'google search', 'youtube search', etc.google search
keywordYesSearch keyword(s) to analyze.
percent_growthNoTimeframes to calculate growth (e.g. ['3M', '1Y']).

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnlyHint=true, destructiveHint=false), and the description adds limited behavioral context beyond that. The word 'estimate' hints at approximate computation, but the description does not detail rate limits, data freshness, or edge cases. With annotations shouldering the main safety burden, a 3 reflects adequate but not rich behavioral disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with zero redundancy. The primary purpose is front-loaded, and the alternative tool mention is placed second as a helpful routing cue. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of a complete input schema (100% coverage), an output schema, and read-only annotations, the description sufficiently covers the tool's purpose, usage boundary, and relationship to a sibling. Nothing essential for an agent to select and call the tool correctly appears missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description's phrase 'growth windows' loosely aligns with the percent_growth parameter, but it does not add syntax, defaults, or formatting details beyond what the schema already provides. No additional parameter meaning is contributed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Estimate momentum') plus a clear resource ('one or more known keywords') and scope ('across requested growth windows'). It explicitly distinguishes itself from get_trends by contrasting percentage growth with underlying historical time series, making its purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a direct selection rule: 'Use this when percentage growth is the goal; use get_trends when the user needs the underlying historical time series.' This explicitly identifies when to choose this tool over a named sibling, leaving no inference required.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_interest_by_regionA
Read-only

Return geographic Google Trends interest for one or more known keywords at country, region, city, or DMA resolution. Use this to compare where demand is strongest; use get_trends for interest over time instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
catNoCategory ID (default: 0 for all).
geoNoGeographic region code (e.g. 'US' or empty '' for worldwide).US
gpropNoGoogle property filter (e.g., '', 'youtube', 'news', 'images', 'froogle').
keywordsYesSearch keyword(s) to analyze.
timeframeNoTimeframe for search volume analysis (e.g., 'today 12-m').today 12-m
resolutionNoGeographic resolution: 'COUNTRY', 'REGION', 'CITY', or 'DMA'.REGION
inc_low_volNoInclude regions with low search volume.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, openWorldHint=true, and destructiveHint=false, so the safety profile is well covered. The description adds useful scope context ('known keywords', geographic resolution) but does not disclose deeper behavioral traits such as normalized scoring, empty results behavior, or API limitations beyond what the output schema and annotations already imply.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no fluff. The first sentence states the core function and scope; the second provides usage guidance and a direct alternative. The most important routing information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With a 100% schema-covered parameter list, an output schema, and helpful annotations, the description only needs to clarify selection logic. It does that by identifying the geographic comparison use case and naming get_trends as the time-series alternative. No critical information for invoking the tool correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3 even without parameter details in the description. The description adds the 'known keywords' nuance and repeats resolution values already present in the schema, but it does not substantially enrich parameter semantics beyond structured documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Return geographic Google Trends interest' for one or more known keywords at defined resolutions. It clearly differentiates from the sibling get_trends by framing this tool as geographic/comparison-oriented rather than time-oriented.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives an explicit when-to-use signal ('compare where demand is strongest') and an explicit alternative ('use get_trends for interest over time instead'). This gives an agent enough routing information without needing to inspect sibling schemas.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_news_by_keywordA
Read-only

Find recent Google News articles for a free-form keyword or phrase. Use this for ad-hoc subject searches; use get_news_by_topic for a predefined topic category or get_news_by_site for one publisher.

ParametersJSON Schema
NameRequiredDescriptionDefault
periodNoNumber of days to look back for articles.
keywordYesSearch term to find articles.
full_dataNoReturn full data for each article. If False a summary should be created by setting the summarize flag
summarizeNoGenerate a summary of the article, will first try LLM Sampling but if unavailable will use nlp
max_resultsNoMaximum number of results to return.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, covering the safety profile. The description adds useful context about querying Google News and accepting free-form phrases, matching openWorldHint. However, it does not disclose pagination, result ordering, or how 'recent' relates to the period parameter, so behavioral richness beyond annotations is moderate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no filler: the first states what the tool does, and the second provides sibling routing. Every sentence earns its place, and the most important purpose information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only search tool with an output schema, full parameter documentation in the schema, and clear sibling differentiation, the description covers what an agent needs to select and invoke it. Missing details like result format are handled by the output schema, and safety is covered by annotations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all five parameters are already documented. The phrase 'free-form keyword or phrase' reinforces the keyword parameter's intent but adds little beyond the schema's 'Search term to find articles.' With full schema coverage, the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Find recent Google News articles' for a free-form keyword or phrase. It also distinguishes itself from siblings by naming get_news_by_topic and get_news_by_site as the tools for predefined categories and single publishers.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly states when to use this tool ('ad-hoc subject searches') and points to concrete alternatives: get_news_by_topic for predefined topic categories and get_news_by_site for a single publisher. This gives an agent clear routing guidance without needing to inspect sibling schemas.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_news_by_locationA
Read-only

Find recent Google News articles about a place-focused location such as a city, state, or country. Use this when geography is the primary filter; use get_news_by_keyword for general subject searches.

ParametersJSON Schema
NameRequiredDescriptionDefault
periodNoNumber of days to look back for articles.
locationYesName of city/state/country.
full_dataNoReturn full data for each article. If False a summary should be created by setting the summarize flag
summarizeNoGenerate a summary of the article, will first try LLM Sampling but if unavailable will use nlp
max_resultsNoMaximum number of results to return.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already convey read-only, non-destructive, and open-world behavior. The description adds useful contextual behavior: it targets place-based Google News searches and emphasizes geography as the filter. It does not add details about return formatting, but the output schema covers that.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences carry the essential purpose and usage routing with no filler. The core scoping statement is front-loaded, and the alternative-tool note is concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple, has full schema coverage, has annotations for safety, and has an output schema. The description sufficiently explains when to use it and how it differs from its sibling, so nothing critical is missing for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so every parameter is adequately documented in the schema itself. The description reinforces the location-centric purpose but does not need to repeat parameter semantics; baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Find'), a specific resource ('recent Google News articles'), and a clear scope ('place-focused location such as a city, state, or country'). It also explicitly distinguishes this tool from get_news_by_keyword, so an agent can differentiate them immediately.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear when-to-use guidance: geography is the primary filter. It names the alternative tool, get_news_by_keyword, for general subject searches, making the routing decision explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_news_by_siteA
Read-only

Find recent Google News articles from one publisher domain. Use this when the user wants source-specific coverage; use get_news_by_keyword for cross-publisher subject search.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteYesDomain of the news site, e.g. 'cnn.com'.
periodNoNumber of days to look back for articles.
full_dataNoReturn full data for each article. If False a summary should be created by setting the summarize flag
summarizeNoGenerate a summary of the article, will first try LLM Sampling but if unavailable will use nlp
max_resultsNoMaximum number of results to return.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations cover the key safety profile (readOnlyHint=true, destructiveHint=false), so the description does not need to restate that. It adds useful context about scoping to a publisher domain and recency, but it does not mention pagination, rate limits, or how results are structured beyond what the output schema likely provides. This is adequate but not especially rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no filler: the first states the core function and scope, the second gives sibling routing. Every sentence earns its place and the key information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only news retrieval tool with a detailed input schema and output schema, the description provides sufficient context. It specifies the domain-scoping behavior, the recency framing, and the main alternative, so an agent can decide when to call this tool and what to expect at a high level.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all five parameters clearly. The description adds a 'publisher domain' and 'recent' framing that loosely map to the site and period parameters, but it does not provide substantive parameter-level meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the tool as retrieving recent Google News articles from a single publisher domain, with a specific verb ('Find') and resource ('Google News articles'). It also distinguishes itself from get_news_by_keyword, making the tool's scope immediately understandable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use this tool ('when the user wants source-specific coverage') and directly names the alternative for cross-publisher subject search ('use get_news_by_keyword'). This gives an agent clear routing guidance with no inference required.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_news_by_topicA
Read-only

Find recent Google News articles from a predefined Google News topic category. Use this for topic category browsing such as BUSINESS, TECHNOLOGY, or SPORTS; use get_news_by_keyword for a free-form query.

ParametersJSON Schema
NameRequiredDescriptionDefault
topicYesTopic to search for articles.
periodNoNumber of days to look back for articles.
full_dataNoReturn full data for each article. If False a summary should be created by setting the summarize flag
summarizeNoGenerate a summary of the article, will first try LLM Sampling but if unavailable will use nlp
max_resultsNoMaximum number of results to return.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, covering the safety profile. The description adds useful context about the tool's scope ('predefined topic') and recency ('recent'), but it doesn't discuss result volume, limits, or behavior beyond what annotations and schema imply. This is adequate but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no filler. The core purpose is stated first, followed immediately by usage guidance and the sibling distinction. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The definition is largely complete because the output schema exists, annotations cover safety, and the description provides clear purpose and routing. However, it doesn't point the agent to get_categories for discovering valid topic values, which would be helpful since the topic field has no enum or list.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description adds minor value by giving examples of valid topic values ('BUSINESS, TECHNOLOGY, or SPORTS') and clarifying that the topic must be a predefined category, but it does not elaborate on the other parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Find'), a resource ('recent Google News articles'), and a clear scope ('predefined Google News topic category'). It also distinguishes itself from the most similar sibling by naming get_news_by_keyword for free-form queries.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly tells the agent when to use this tool ('for topic category browsing') and when to use the alternative ('use get_news_by_keyword for a free-form query'). This is a direct when-to-use vs. when-not-to-use statement.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_suggestionsA
Read-only

Return Google Trends autocomplete suggestions for a seed keyword. Use this for lightweight autocomplete or entity candidates; use get_related_queries when you need top or rising demand signals.

ParametersJSON Schema
NameRequiredDescriptionDefault
keywordYesQuery string to autocomplete.
languageNoLanguage code, e.g. 'en'.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, covering the safety profile. The description adds behavioral context by framing the tool as lightweight and suggesting it exposes autocomplete-style entity candidates, which helps an agent set expectations for scope and response character beyond the structured annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no filler. The core action and resource are front-loaded, and the alternative is mentioned in a single clear sentence. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has a simple two-parameter schema with full schema coverage, read-only annotations, and an output schema. The description fully covers the tool's purpose and the key sibling alternative, so there are no material gaps for an agent to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents 'keyword' and 'language' sufficiently. The description reinforces 'seed keyword' but adds no additional parameter semantics, so a baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Return Google Trends autocomplete suggestions for a seed keyword.' It also distinguishes itself from the sibling get_related_queries by naming the exact difference in use case, making the tool's purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says when to use this tool ('lightweight autocomplete or entity candidates') and when to use get_related_queries instead ('top or rising demand signals'). This gives an agent clear decision criteria without needing to inspect other tool schemas.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_top_newsA
Read-only

Return general headline and top-news stories from Google News without a keyword or topic seed. Use this for a broad news snapshot; use the keyword, location, topic, or site tools when the user gives a filter.

ParametersJSON Schema
NameRequiredDescriptionDefault
periodNoNumber of days to look back for top articles.
full_dataNoReturn full data for each article. If False a summary should be created by setting the summarize flag
summarizeNoGenerate a summary of the article, will first try LLM Sampling but if unavailable will use nlp
max_resultsNoMaximum number of results to return.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already carry the safety profile (readOnlyHint=true, destructiveHint=false), so the description's additional behavioral burden is low. It does add the scoping fact that no seed is required, but it does not mention pagination, default result caps, or potential data freshness limitations. This is adequate but not rich; a 3 is appropriate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with zero filler. It front-loads the purpose and then immediately provides usage routing. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only tool with no required parameters, full schema descriptions, a provided output schema, and safety annotations, the description is complete. An agent can confidently select and invoke this tool based on the description alone; the schema covers invocation details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all four parameters (period, full_data, summarize, max_results) are fully documented in the schema. The description adds no parameter-level detail, which is acceptable under the baseline given the schema already handles this.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Return general headline and top-news stories from Google News.' It also explicitly distinguishes this tool from siblings by noting it operates 'without a keyword or topic seed,' making its scope clear relative to the keyword, location, topic, and site tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit when-to-use guidance: 'Use this for a broad news snapshot,' and explicitly routes users to alternatives when a filter exists: 'use the keyword, location, topic, or site tools when the user gives a filter.' This is clear routing with named alternative categories.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 16 tool updates
    • First observedget_article_content
    • First observedget_categories
    • First observedget_growth
    • First observedget_interest_by_region
    • First observedget_news_by_keyword
    • First observedget_news_by_location
    • First observedget_news_by_site
    • First observedget_news_by_topic
    • First observedget_ranked_trends
    • First observedget_related_queries
    • First observedget_related_topics
    • First observedget_suggestions
    • First observedget_top_news
    • First observedget_top_trends
    • First observedget_trending_terms
    • First observedget_trends

TDQS

A4.4/5.0
Disambiguation4/5

Most tools have clearly distinct inputs and outputs, but a few current-trend tools (get_trending_terms, get_top_trends, get_ranked_trends) and keyword-expansion tools (get_suggestions, get_related_queries, get_related_topics) have overlapping discovery purposes. The cross-references in descriptions help, but agents could still select the wrong trend summary tool.

Naming Consistency5/5

Every tool follows a consistent get_<object> snake_case pattern, with predictable variants like get_news_by_* and get_related_*. There are no mixed casing conventions or vague verb prefixes.

Tool Count4/5

16 tools is slightly over the ideal 3-15 range, but each tool corresponds to a distinct news/trend query mode or data source. The count is justified by the broad news-plus-trends scope rather than redundant functionality.

Completeness5/5

The surface covers news discovery by keyword, location, topic, site, and headline; article text retrieval; current and historical trends; regional interest; growth; related-term expansion; and category metadata. No obvious dead-end or missing operation remains for the stated trend/news analysis purpose.

Maintenance

ActivityActive
ResponsivenessUnresponsive

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    MCP server providing news article mention volume data, weekly series, growth percentages, and a live Google News feed as an AI tool.
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    An AI-powered news aggregator MCP server that fetches live news from multiple sources, provides AI summaries via Claude, and performs sentiment analysis and trending topic detection.
    -
  • A
    license
    Not graded
    quality
    B
    maintenance
    A persistent news intelligence MCP server that enables AI agents to fetch, store, deduplicate, embed, and semantically query news from Google News across 141 countries and 41 languages.
    8
    MIT
  • F
    license
    Not graded
    quality
    B
    maintenance
    MCP server that exposes Google Trends data via BigQuery, enabling LLMs to query top search terms, rising terms, and compare term interest over time for different countries.
    -

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/AKzar1el/mcp-trendpulse'

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