news-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| NEWS_DB | No | SQLite path (WAL; refresh and server can share it) | data/news.db |
| NEWS_FEEDS | No | Curated feed list | packaged src/news_mcp/feeds.toml |
| NEWS_MCP_TOKEN | No | Bearer token required on HTTP (/healthz stays open) | |
| NEWS_USER_AGENT | No | User agent used for feed fetching | polite UA |
| NEWS_FETCH_TIMEOUT | No | Fetch timeout in seconds | 20 |
| NEWS_RETENTION_DAYS | No | Rolling window in days | 14 |
| NEWS_REFRESH_MINUTES | No | >0: serve also refreshes in the background (no timer needed) | 0 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| latest_newsA | Most recent headlines, newest first. Use for "what's the news", "latest from Ecuador", "what does DW say today", "tech news". All filters are optional and combine with AND. |
| news_by_topicA | Search recent headlines + summaries by keyword, newest first. Use for "news about X", "what happened with X this week". |
| compare_coverageA | How different outlets/countries covered one story - for framing comparison ("compare how the German, Qatari, US and Ecuadorian press covered X"). Returns matching items grouped by outlet, plus the active outlets with NO matching item (silence can be telling, but may also just mean the keywords were in another language). |
| sourcesA | List the curated feeds: id, outlet name, language, country, category, whether active, when it was last refreshed successfully, and how many items it currently holds. Use to know which ids/filters exist or to check how fresh the data is. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 4 tools
Each tool has a clearly distinct purpose: listing feeds, browsing latest news with metadata filters, keyword search, and cross-outlet comparison. Although latest_news and news_by_topic both return news, their descriptions clearly separate browsing from searching, and compare_coverage is uniquely analytical.
The names mix a bare noun (sources), a noun phrase (latest_news), a prepositional phrase (news_by_topic), and a verb_noun pattern (compare_coverage). While all are readable, there is no consistent convention across the set.
With only 4 tools, the set is well-scoped and each tool earns its place. There is no redundancy, and the count fits the narrow domain of news retrieval and comparison.
The surface covers listing sources, browsing, searching, and comparing coverage, which are the core operations for a news server. Minor gaps exist, such as fetching full article content or paginating results beyond the n parameter, but agents can work around these.