{"serverId":"mcp-registry/io.github.nyuchi/mukoko-news","tools":[{"name":"compare_locations","fixed":{"name":"compare_locations","description":"Compare news coverage between 2–4 African countries or regions side by side.","inputSchema":{"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"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":142,"tokensAfter":142},{"name":"find_stories","fixed":{"name":"find_stories","description":"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.","inputSchema":{"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)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":174,"tokensAfter":174},{"name":"get_article","fixed":{"name":"get_article","description":"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.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string","description":"Article _id or slug"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":132,"tokensAfter":132},{"name":"get_briefing","fixed":{"name":"get_briefing","description":"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.","inputSchema":{"type":"object","properties":{"focus":{"type":"string","description":"Country code, region, category, or topic (optional)"},"limit":{"type":"number","description":"Max articles, 1–12 (default 8)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":182,"tokensAfter":182},{"name":"get_content_analytics","fixed":{"name":"get_content_analytics","description":"Open data breakdown of news coverage by category, country, and keyword for a given period.","inputSchema":{"type":"object","properties":{"period":{"enum":["today","week","month"],"type":"string","description":"Time window (default: week)"},"location":{"type":"string","description":"Country, region, or city (optional)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":103,"tokensAfter":103},{"name":"get_location_news","fixed":{"name":"get_location_news","description":"News from a specific place in Africa. Accepts country codes, country names, region names, or city names.","inputSchema":{"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"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":128,"tokensAfter":128},{"name":"get_my_feed","fixed":{"name":"get_my_feed","description":"Personalised news feed based on the authenticated user's article likes and saves. Requires Authorization: Bearer <WorkOS access token>.","inputSchema":{"type":"object","properties":{"limit":{"type":"number","description":"Max articles, 1–20 (default 12)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":82,"tokensAfter":82},{"name":"get_source_view","fixed":{"name":"get_source_view","description":"See how a specific news source is covering a topic.","inputSchema":{"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)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":107,"tokensAfter":107},{"name":"get_stats","fixed":{"name":"get_stats","description":"Platform statistics: total articles, active sources, and today's output.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":44,"tokensAfter":44},{"name":"get_trending_analytics","fixed":{"name":"get_trending_analytics","description":"Open analytics: trending topics, categories, keywords, and sources for any location or period. Part of Mukoko's open data policy.","inputSchema":{"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)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":140,"tokensAfter":140},{"name":"list_categories","fixed":{"name":"list_categories","description":"List all news categories with article counts.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":38,"tokensAfter":38},{"name":"list_sources","fixed":{"name":"list_sources","description":"List active news sources. Optionally filter by country code.","inputSchema":{"type":"object","properties":{"country":{"type":"string","description":"Filter by country code (optional)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":63,"tokensAfter":63}],"toolsChanged":12,"tokensSaved":0,"todo":[],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}