MCPサーバー

Mukoko News

io.github.nyuchi/mukoko-news

このMCPでできること

Searches and reads African news, provides regional briefings and source views, tracks stories, and analyzes coverage trends, categories, locations, and keywords.

compare_locations
Compare news coverage between 2–4 African countries or regions side by side.
入力スキーマ
{'type': 'object', 'required': ['locations'], 'properties': {'limit': {'type': 'number', 'description': 'Max articles per location, 1–10 (default 5)'}, 'topic': {'type': 'string', 'description': 'Narrow comparison to a topic (optional)'}, 'locations': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 4, 'minItems': 2, 'description': '2–4 country codes, country names, or region names'}}}
detect_surge
Detect sudden spikes in news coverage — compares last 24h against 7-day baseline. Surfaces unusual increases like crime up 5× in Bulawayo or a football surge in Ghana.
入力スキーマ
{'type': 'object', 'properties': {'limit': {'type': 'number', 'description': 'Max surges to return, 1–20 (default 10)'}, 'location': {'type': 'string', 'description': 'Country, region, or city (optional — omit for continent-wide)'}}}
drain_enrichment_backlog
Drain the ENTIRE un-enriched article backlog, not just one batch. RESTRICTED to platform-team accounts (WorkOS bearer issued inside the platform-team org). Fire-and-forget: asks the pipeline worker to enrich un-enriched articles in batches (oldest first) until the backlog is clear, running independently of the automatic 10-minute sweep. Returns immediately; use trigger_enrichment for a single targeted batch instead.
入力スキーマ
{'type': 'object', 'properties': {}}
find_stories
Search articles by keyword, tag, category, or country. Results carry short excerpts, word counts, and app links only — call get_article with a result's id to read the full article body inline.
入力スキーマ
{'type': 'object', 'properties': {'q': {'type': 'string', 'description': 'Keyword or phrase (optional)'}, 'tag': {'type': 'string', 'description': 'Tag name (optional)'}, 'limit': {'type': 'number', 'description': 'Max results, 1–20 (default 10)'}, 'country': {'type': 'string', 'description': 'Country code (optional)'}, 'category': {'type': 'string', 'description': 'Category slug or name (optional)'}}}
get_article
Read a single article by ID or slug. Returns the full article body inline as markdown (truncated at ~8000 characters with a link to continue in the app) plus source metadata and the Mukoko app URL. Use this after a list tool (get_briefing, find_stories, …) to read an article without leaving the conversation.
入力スキーマ
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Article _id or slug'}}}
get_briefing
Answer "What's happening in [place/topic]?" — top story, recent articles, and trending topics in one call. Accepts country codes (ZW, KE), region names (East Africa, Southern Africa), category topics (politics, business), or omit focus for a pan-African overview. Returns short excerpts with word counts and app links only — call get_article with an article id to read a full article body inline.
入力スキーマ
{'type': 'object', 'properties': {'focus': {'type': 'string', 'description': 'Country code, region, category, or topic (optional)'}, 'limit': {'type': 'number', 'description': 'Max articles, 1–12 (default 8)'}}}
get_content_analytics
Open data breakdown of news coverage by category, country, and keyword for a given period.
入力スキーマ
{'type': 'object', 'properties': {'period': {'enum': ['today', 'week', 'month'], 'type': 'string', 'description': 'Time window (default: week)'}, 'location': {'type': 'string', 'description': 'Country, region, or city (optional)'}}}
get_location_news
News from a specific place in Africa. Accepts country codes, country names, region names, or city names.
入力スキーマ
{'type': 'object', 'required': ['location'], 'properties': {'limit': {'type': 'number', 'description': 'Max articles, 1–20 (default 10)'}, 'category': {'type': 'string', 'description': 'Category to filter (optional)'}, 'location': {'type': 'string', 'description': 'Country code, country name, region, or city'}}}
get_my_feed
Personalised news feed based on the authenticated user's article likes and saves. Requires Authorization: Bearer <WorkOS access token>.
入力スキーマ
{'type': 'object', 'properties': {'limit': {'type': 'number', 'description': 'Max articles, 1–20 (default 12)'}}}
get_source_view
See how a specific news source is covering a topic.
入力スキーマ
{'type': 'object', 'required': ['source'], 'properties': {'limit': {'type': 'number', 'description': 'Max articles, 1–20 (default 8)'}, 'topic': {'type': 'string', 'description': 'Topic to filter by (optional)'}, 'source': {'type': 'string', 'description': 'Publication name (partial match)'}}}
get_stats
Platform statistics: total articles, active sources, and today's output.
入力スキーマ
{'type': 'object', 'properties': {}}
get_trending_analytics
Open analytics: trending topics, categories, keywords, and sources for any location or period. Part of Mukoko's open data policy.
入力スキーマ
{'type': 'object', 'properties': {'limit': {'type': 'number', 'description': 'Max results per section, 1–20 (default 10)'}, 'period': {'enum': ['today', 'week', 'month'], 'type': 'string', 'description': 'Time window (default: today)'}, 'location': {'type': 'string', 'description': 'Country code, region, or city (optional)'}}}
list_categories
List all news categories with article counts.
入力スキーマ
{'type': 'object', 'properties': {}}
list_sources
List active news sources. Optionally filter by country code.
入力スキーマ
{'type': 'object', 'properties': {'country': {'type': 'string', 'description': 'Filter by country code (optional)'}}}
track_story
Follow the development of a news story over time. Returns articles in chronological order showing how a story evolved. Use since to control the lookback window.
入力スキーマ
{'type': 'object', 'required': ['topic'], 'properties': {'limit': {'type': 'number', 'description': 'Max articles, 1–20 (default 10)'}, 'since': {'enum': ['today', 'week', 'month'], 'type': 'string', 'description': 'Lookback window (default: week)'}, 'topic': {'type': 'string', 'description': 'Topic, keyword, event, or person name to track'}, 'country': {'type': 'string', 'description': 'Limit to a country code (optional)'}}}
trigger_enrichment
Manually run the AI enrichment agent over existing articles (classification, keywords, entities, quality scoring). RESTRICTED to platform-team accounts — requires a WorkOS bearer token issued inside the platform-team org. By default enriches the most recent un-enriched articles; pass article_ids to target specific ones, or reset_attempts to re-run articles that previously hit the failure cap.
入力スキーマ
{'type': 'object', 'properties': {'limit': {'type': 'number', 'description': 'How many un-enriched articles to enqueue, 1–50 (default 25). Ignored when article_ids is given.'}, 'article_ids': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Specific article IDs to (re)enrich (optional). Capped at 50.'}, 'reset_attempts': {'type': 'boolean', 'description': 'Re-enrich even articles that already hit the failure cap (default false). Use sparingly — it re-bills AI.'}}}
追加
drain_enrichment_backlog
2026年9月17日12:45
追加
trigger_enrichment
2026年9月17日12:45
追加
get_content_analytics
2026年9月17日12:45
追加
detect_surge
2026年9月17日12:45
追加
get_trending_analytics
2026年9月17日12:45
追加
get_my_feed
2026年9月17日12:45
追加
get_stats
2026年9月17日12:45
追加
list_sources
2026年9月17日12:45
追加
list_categories
2026年9月17日12:45
追加
get_article
2026年9月17日12:45
追加
find_stories
2026年9月17日12:45
追加
get_source_view
2026年9月17日12:45
追加
compare_locations
2026年9月17日12:45
追加
get_location_news
2026年9月17日12:45
追加
track_story
2026年9月17日12:45
追加
get_briefing
2026年9月17日12:45