MCP aggregation proxy with admin UI and tool search. Aggregates upstream MCP servers behind Streamable HTTP on /mcp with discovery/execution tools, tool call statistics, response pagination, and server administration.
News server has 10 tools with complete input schemas and descriptions. Naming follows verb_noun pattern (news_list_feeds, news_today, news_curate). Descriptions are substantive (100-250 chars), explaining WHAT each tool does and WHEN to use it. However, parameter descriptions are sparse or missing context. news_curate lacks enum constraints on digest_scope despite accepting only 4 values. Output schemas are not documented, LLMs cannot predict response structure for chaining. Error handling is absent from descriptions. No tool annotations (readOnlyHint/destructiveHint) despite clear risk classification. news_add_rss_feed and news_remove_rss_feed are write operations but lack confirmation/dry-run patterns.
Add a new RSS feed URL to the configured feeds list.
Cached LLM-curated briefing plus top-ranked headlines for today, Germany, or local. Same cache as news_today / news_germany / news_local; returns briefing-focused JSON.
Curate news from RSS feeds, web pages, and SearXNG with deduplication. Defaults to cached global digest unless live_fetch, digest_scope, searx_queries, extra_urls, or include_disabled_feeds are set.
Fast path: latest cached digest for Germany-labelled / Germany-focused feeds only. Auto-refreshed on the same schedule as news_today.
Fetch and parse metadata from a list of URLs.
List configured RSS feed URLs (and labels) persisted under NEWS_MCP_DATA_DIR.
Output schemas not documented. LLMs cannot predict response structure (fields, types, pagination) for downstream chaining or data extraction.
news_curate accepts digest_scope as free-form string but only 4 values are valid (global, local, germany, full). Missing enum constraint invites hallucinated values.
Write operations (news_add_rss_feed, news_remove_rss_feed) lack confirmation/dry-run pattern. No guard against accidental feed deletion or misconfiguration.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk classification in metadata. Clients cannot infer safety properties.
Inferred effective spec: 2026-07-28+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 57 | 2026-07-28+ | v2 |
Fast path: one cached local digest (SF Bay Area + San Jose signals, optionally enriched via SearXNG queries like Evergreen San Jose if configured). Auto-refreshed on the same schedule.
Remove an RSS feed URL from the configured feeds list.
Search using SearXNG for news and web results.
Fast path: latest cached digest for non-Germany feeds (world/US/regional outside the Germany bucket). Updated automatically every ~10 minutes. When LLM curation is enabled, includes `briefing` (editorial summary) and a shorter ranked `items` list. Prefer this over live fetch.
Parameter descriptions lack format/constraint details. E.g., searx_queries array has no guidance on query length, count limits, or expected format.