Iceland News MCP Server
Fetches news articles from 60+ RSS feeds across 6 Icelandic news sources (RÚV, Morgunblaðið, Heimildin, Mannlíf, Landsbankinn, and University of Iceland), with support for multiple languages and categories including news, sports, business, culture, and academic content.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Iceland News MCP Serverget 5 latest sports news from RÚV"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Iceland News MCP Server
An MCP (Model Context Protocol) server that fetches the latest news from Icelandic news sources via RSS feeds.
Features
Fetch news from 6 Icelandic news sources
60+ different news feeds across categories
Support for Icelandic, English, and Polish language feeds
Configurable number of articles (1-50)
Built-in tool to list all available feeds
Supported Sources
RÚV (Ríkisútvarpið - Icelandic National Broadcasting Service)
Feed | Description |
| All news |
| Domestic news |
| International news |
| Sports |
| Culture & current affairs |
| Plain language Icelandic |
| English news |
| Polish news |
Morgunblaðið (mbl.is)
Main News
Feed | Description |
| Front page news |
| Domestic news |
| International news |
| Tech & science |
| English news |
| Top stories |
| Latest news |
| TV news |
Sports
Feed | Description |
| All sports |
| Football |
| English Premier League |
| Golf |
| Handball |
| Basketball |
| Pepsi league (Icelandic football) |
| Formula 1 |
| Horses |
| Esports |
Business & Industry
Feed | Description |
| Business |
| Marine & fishing |
| Real estate |
Culture & Lifestyle
Feed | Description |
| Culture |
| People |
| World/Celebrities |
| Food |
| Travel |
| Cars |
Smartland (Lifestyle)
Feed | Description |
| Smartland |
| Celebrities |
| Fashion |
| Home & design |
| Beauty |
| Health & nutrition |
| Success stories |
| Social life |
| Family |
Morgunblaðið Newspaper
Feed | Description |
| Today's paper |
| Featured articles |
| Editorials |
| Sunday edition |
| Selected articles |
Other
Feed | Description |
| K100 radio |
| Classifieds |
| Blog discussions |
Heimildin
Feed | Description |
| All news |
Mannlíf
Feed | Description |
| All news |
Landsbankinn
Feed | Description |
| News & announcements |
Háskóli Íslands (University of Iceland)
University-wide
Feed | Description |
| University news |
| University events |
School of Social Sciences
Feed | Description |
| Social Sciences news |
| Social Sciences events |
School of Health Sciences
Feed | Description |
| Health Sciences news |
| Health Sciences events |
School of Humanities
Feed | Description |
| Humanities news |
| Humanities events |
School of Education
Feed | Description |
| Education news |
| Education events |
School of Engineering and Natural Sciences
Feed | Description |
| Engineering & Natural Sciences news |
| Engineering & Natural Sciences events |
Installation
Prerequisites
Node.js 18 or higher
npm
Build from Source
git clone https://github.com/olibuijr/iceland-news-mcp.git
cd iceland-news-mcp
npm install
npm run buildConfiguration
Claude Code
Add to your Claude Code configuration file ~/.claude/claude_code_config.json:
{
"mcpServers": {
"iceland-news": {
"command": "node",
"args": ["/absolute/path/to/iceland-news-mcp/dist/index.js"]
}
}
}Then restart Claude Code or run /mcp to refresh MCP servers.
Claude Desktop
Add to your Claude Desktop configuration file:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.jsonLinux:
~/.config/Claude/claude_desktop_config.json
{
"mcpServers": {
"iceland-news": {
"command": "node",
"args": ["/absolute/path/to/iceland-news-mcp/dist/index.js"]
}
}
}Then restart Claude Desktop.
Cursor
Add to your Cursor MCP configuration file ~/.cursor/mcp.json:
{
"mcpServers": {
"iceland-news": {
"command": "node",
"args": ["/absolute/path/to/iceland-news-mcp/dist/index.js"]
}
}
}Then restart Cursor or use the command palette to reload MCP servers.
VS Code with Continue Extension
Add to your Continue configuration file ~/.continue/config.json:
{
"mcpServers": [
{
"name": "iceland-news",
"command": "node",
"args": ["/absolute/path/to/iceland-news-mcp/dist/index.js"]
}
]
}Windsurf
Add to your Windsurf MCP configuration file ~/.windsurf/mcp.json:
{
"mcpServers": {
"iceland-news": {
"command": "node",
"args": ["/absolute/path/to/iceland-news-mcp/dist/index.js"]
}
}
}Zed
Add to your Zed settings file ~/.config/zed/settings.json:
{
"context_servers": {
"iceland-news": {
"command": {
"path": "node",
"args": ["/absolute/path/to/iceland-news-mcp/dist/index.js"]
}
}
}
}Usage
Once configured, you can ask your AI assistant to fetch Icelandic news:
"Get the latest news from Iceland"
"Show me sports news from Morgunblaðið"
"What's the latest international news from RÚV?"
"Fetch 5 articles from the MBL English feed"
"List all available feeds"
"Get news from the University of Iceland"
Tool: get_news
Fetch news articles from a specific source and feed.
Parameters:
Parameter | Type | Default | Description |
| string |
| News source: |
| string |
| The feed to fetch (see tables above) |
| number |
| Number of articles to return (1-50) |
Example:
{
"name": "get_news",
"arguments": {
"source": "mbl",
"feed": "sport",
"limit": 5
}
}Tool: list_feeds
List all available feeds for one or all sources.
Parameters:
Parameter | Type | Default | Description |
| string |
| Source to list: |
Example:
{
"name": "list_feeds",
"arguments": {
"source": "hi"
}
}Development
Project Structure
iceland-news-mcp/
├── src/
│ └── index.ts # Main MCP server source
├── dist/
│ └── index.js # Compiled JavaScript
├── package.json
├── tsconfig.json
└── README.mdScripts
# Build the project
npm run build
# Run the server (for testing)
npm startTesting
You can test the server manually by sending JSON-RPC messages:
# Test fetching news
echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0.0"}}}
{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"get_news","arguments":{"source":"mbl","feed":"sport","limit":3}}}' | node dist/index.js
# Test listing feeds
echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0.0"}}}
{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"list_feeds","arguments":{"source":"all"}}}' | node dist/index.jsAuthor
Ólafur Búi Ólafsson Email: olibuijr@olibuijr.com GitHub: @olibuijr
Changelog
v1.2.0 (2025-12-03)
Breaking Changes:
Removed ElevenLabs Conversational AI integration
Replaced with Google Gemini Live API for lower latency
New Features:
Gemini Live API: Direct WebSocket streaming for minimal latency voice responses
Hybrid STT: Whisper for accurate Icelandic transcription, Gemini for fast response
VAD Auto-Stop: Automatically ends recording after 1.5s of silence
Audio Level Visualization: Real-time input level display while recording
Search News: New
search_newstool for keyword search across all sourcesMore Sources: Added Vísir, DV, Stundin, Fréttablaðið, Kjarninn, Iceland Review, Grapevine, Veðurstofa (14 total)
Technical:
AudioWorklet for efficient real-time audio processing
Parallel Whisper transcription for accurate text display
Removed @elevenlabs/client and @elevenlabs/react dependencies
Simplified UI without ElevenLabs settings panel
v1.1.0 (2025-12-03)
New Features:
Web UI: Added SvelteKit web interface for real-time voice conversation
Voice Assistant: Integrated Gemini Live API for native audio responses
Icelandic Speech Recognition: Added Whisper STT service with fine-tuned Icelandic model (
language-and-voice-lab/whisper-large-icelandic-62640-steps-967h)Function Calling: Gemini can now fetch news using MCP tools (
get_all_news,get_news_by_source,get_news_by_category)Voice Activity Detection (VAD): Auto-transcription when user stops speaking
Auto-Headlines: App automatically reads 10 latest headlines on startup
Multiple Voices: Choose from 5 different voices (Puck, Charon, Kore, Fenrir, Aoede)
Technical:
News API endpoint for RSS feed aggregation
Whisper service runs on CUDA (RTX 3080) for fast inference
SvelteKit proxy for Whisper service requests
Professional Icelandic news reporter persona
v1.0.0 (2025-12-03)
Initial Release:
MCP server with 2 tools:
get_newsandlist_feedsSupport for 6 Icelandic news sources
60+ RSS feeds across categories
Multi-language support (Icelandic, English, Polish)
License
ISC
Credits
News content provided by:
RÚV (Ríkisútvarpið - Icelandic National Broadcasting Service)
Morgunblaðið (mbl.is)
Háskóli Íslands (University of Iceland)
Built with the Model Context Protocol SDK
Available Tools
5 toolscache_statsA
Get cache statistics including hit/miss rates and entry counts. Useful for monitoring performance.
| Name | Required | Description | Default |
|---|---|---|---|
| clearCache | No | If true, clears the cache after returning stats |
Output Schema
| Name | Required | Description |
|---|---|---|
| hits | Yes | |
| misses | Yes | |
| entries | Yes | |
| hitRate | Yes | |
| ttlMinutes | Yes | |
| newestEntryAge | Yes | |
| oldestEntryAge | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the tool's purpose and utility but lacks details on behavioral traits like permissions needed, rate limits, error conditions, or what the output looks like (though an output schema exists). The description doesn't contradict annotations (none provided), but it's minimal beyond the basic operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded: the first sentence states the core purpose, and the second adds context without redundancy. Every sentence earns its place by providing essential information efficiently, with zero waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (1 parameter, no nested objects), high schema coverage (100%), and the presence of an output schema, the description is reasonably complete. It covers the purpose and utility, though it could benefit from more behavioral context (e.g., performance implications). The output schema reduces the need to explain return values, making this adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds no parameter semantics beyond what the input schema provides. The schema has 100% description coverage for its single parameter ('clearCache'), clearly explaining its effect. With high schema coverage, the baseline is 3, as the description doesn't need to compensate but also doesn't add value regarding parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('Get cache statistics') and resources ('cache statistics including hit/miss rates and entry counts'). It distinguishes itself from sibling tools (which are about feeds/news) by focusing on cache monitoring. However, it doesn't explicitly differentiate from potential cache-related siblings if they existed.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides implied usage guidance with 'Useful for monitoring performance,' suggesting when this tool might be appropriate. However, it doesn't explicitly state when to use it versus alternatives, nor does it mention any prerequisites or exclusions. The sibling tools are unrelated (feeds/news), so no comparative guidance is needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_feedsB
Check the health and availability of RSS feeds. Useful for debugging and monitoring.
| Name | Required | Description | Default |
|---|---|---|---|
| sources | No | Specific sources to check. If not specified, checks all sources. | |
| timeout | No | Timeout in milliseconds for each feed check (1000-30000) |
Output Schema
| Name | Required | Description |
|---|---|---|
| results | Yes | |
| checkedAt | Yes | |
| totalFeeds | Yes | |
| failedFeeds | Yes | |
| healthyFeeds | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the tool checks 'health and availability' but doesn't specify what that entails (e.g., HTTP status codes, response times, error details), whether it performs network requests, potential side effects like caching, or rate limits. The description adds minimal context beyond the basic purpose.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences: the first states the purpose, and the second provides usage context. It's front-loaded with the core functionality. However, the second sentence ('Useful for debugging and monitoring.') could be more integrated or specific to enhance clarity without adding waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has an output schema (which handles return values), 2 parameters with full schema coverage, and no annotations, the description is minimally adequate. It covers the purpose and basic usage but lacks details on behavior, error handling, or integration with siblings. For a monitoring tool, more context on what 'health' entails would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with clear descriptions for both parameters ('sources' and 'timeout'). The description doesn't add any parameter-specific semantics beyond what the schema provides (e.g., it doesn't explain what 'health' means in relation to 'sources' or how 'timeout' affects the check). Baseline 3 is appropriate since the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Check the health and availability of RSS feeds' with specific verbs ('check', 'health', 'availability') and resources ('RSS feeds'). It distinguishes from siblings like 'get_news' or 'search_news' by focusing on monitoring rather than content retrieval. However, it doesn't explicitly differentiate from 'list_feeds', which might be a related listing operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides implied usage context: 'Useful for debugging and monitoring.' This suggests when to use it (for health checks) but doesn't explicitly state when not to use it or name alternatives. For example, it doesn't clarify if this should be used instead of 'list_feeds' for availability checks or how it relates to 'get_news' for content access.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_newsA
Fetch the latest Icelandic news from various sources including RÚV, Morgunblaðið, Vísir, Stundin, and more. Supports date filtering. Returns structured NewsItem data.
| Name | Required | Description | Default |
|---|---|---|---|
| source | No | News source: ruv, mbl, visir, dv, stundin, frettabladid, kjarninn, heimildin, mannlif, landsbankinn, hi, icelandreview, grapevine, vedur | ruv |
| feed | No | The feed to fetch. Most sources have 'frettir' (news). RÚV: frettir, innlent, erlent, ithrottir, english, polski. MBL: fp, innlent, erlent, sport, vidskipti, and 30+ more. Vísir: frettir, innlent, erlent, ithrottir, lifid. Use list_feeds tool to see all available feeds. | frettir |
| limit | No | Maximum number of news items to return (1-50) | |
| format | No | Output format: 'structured' for JSON, 'markdown' for readable text, 'both' for both | both |
| since | No | Only return articles published after this date/time. Accepts ISO 8601 format or relative like 'today', 'yesterday', '1 hour ago', '3 days ago' | |
| until | No | Only return articles published before this date/time. Accepts ISO 8601 format or relative like 'today', 'yesterday', '1 hour ago' |
Output Schema
| Name | Required | Description |
|---|---|---|
| feed | Yes | |
| count | Yes | |
| items | Yes | |
| source | Yes | |
| fetchedAt | Yes | |
| sourceName | Yes | |
| feedDescription | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool fetches news, supports date filtering, and returns structured data, covering basic operation and output. However, it lacks details on rate limits, authentication needs, error handling, or whether it's a read-only operation (implied by 'fetch' but not explicit). The description adds value but misses key behavioral traits for a tool with 6 parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized with two sentences that are front-loaded: the first states the core purpose and sources, the second adds key features (date filtering, return format). Every sentence earns its place by providing essential information. It could be slightly more structured by explicitly separating functionality from output details, but it's efficient with zero waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (6 parameters, no annotations, but with output schema), the description is reasonably complete. It covers what the tool does, sources, key features, and return data. With an output schema present, it doesn't need to explain return values in detail. However, for a news-fetching tool with multiple parameters and siblings, it could benefit from more explicit behavioral context or usage examples.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all 6 parameters with descriptions, defaults, and constraints. The description adds minimal value beyond the schema, mentioning 'supports date filtering' (hinting at since/until parameters) and listing some sources, but doesn't explain parameter interactions or provide additional semantic context. Baseline 3 is appropriate when schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('fetch', 'returns') and resources ('Icelandic news', 'NewsItem data'). It distinguishes from siblings by specifying it fetches 'latest' news from specific sources with date filtering, unlike search_news (likely for searching), list_feeds (listing feeds), check_feeds (checking status), and cache_stats (monitoring cache).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool: to get the latest news with date filtering from Icelandic sources. It implicitly distinguishes from search_news by not mentioning search functionality, but lacks explicit guidance on when to choose this over search_news or other siblings. The input schema references list_feeds for feed options, adding some usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_feedsB
List all available news feeds from Icelandic news sources. Returns structured feed metadata.
| Name | Required | Description | Default |
|---|---|---|---|
| source | No | News source to list feeds for: ruv, mbl, heimildin, mannlif, landsbankinn, hi, or all | all |
Output Schema
| Name | Required | Description |
|---|---|---|
| sources | Yes | |
| totalFeeds | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool lists feeds and returns structured metadata, which implies a read-only operation, but doesn't cover aspects like rate limits, authentication needs, error handling, or pagination. This is adequate for a simple list tool but lacks depth.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences with zero waste: the first states the purpose and scope, and the second specifies the return type. It's front-loaded and appropriately sized for a simple tool, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (1 optional parameter) and the presence of an output schema (which handles return values), the description is reasonably complete. It covers the core functionality and return type, though it could benefit from more behavioral context or usage guidance to reach a perfect score.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, detailing the 'source' parameter with enum values and a default. The description adds no parameter-specific information beyond what the schema provides, so it meets the baseline of 3 for high schema coverage without compensating value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('List all available news feeds') and resource ('from Icelandic news sources'), providing a specific verb+resource combination. However, it doesn't explicitly differentiate from sibling tools like 'get_news' or 'search_news' which might have overlapping functionality, keeping it from a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'get_news' or 'search_news'. It mentions the return type ('structured feed metadata') but offers no context about use cases, prerequisites, or exclusions, leaving the agent to infer usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_newsB
Search across all Icelandic news sources for articles matching a keyword or phrase. Searches titles and descriptions.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | The search query - keyword or phrase to find in news articles | |
| sources | No | Specific sources to search (e.g., ['ruv', 'mbl']). If not specified, searches all sources. | |
| limit | No | Maximum number of results to return (1-100) | |
| caseSensitive | No | Whether to perform case-sensitive search |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | |
| query | Yes | |
| searchedAt | Yes | |
| totalMatches | Yes | |
| sourcesSearched | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions searching 'titles and descriptions' and 'all Icelandic news sources', but doesn't cover important aspects like rate limits, authentication requirements, pagination behavior, error conditions, or what happens when no results are found. For a search tool with zero annotation coverage, this leaves significant gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is perfectly concise - two clear sentences with zero wasted words. The first sentence establishes the core functionality, and the second adds important scope information about searching titles and descriptions. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that there's an output schema (which means return values are documented elsewhere), the description covers the basic purpose adequately. However, for a search tool with 4 parameters and no annotations, it should ideally provide more context about behavioral aspects like result ordering, freshness, or limitations. The description is minimally complete but lacks depth.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 4 parameters thoroughly. The description adds minimal value beyond the schema - it mentions 'keyword or phrase' which aligns with the query parameter, but doesn't provide additional context about parameter interactions or search semantics. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Search across all Icelandic news sources for articles matching a keyword or phrase.' It specifies the verb (search), resource (Icelandic news articles), and scope (across all sources). However, it doesn't explicitly differentiate from sibling tools like 'get_news' or 'check_feeds', which prevents a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'get_news' or 'check_feeds'. It mentions searching 'titles and descriptions' but doesn't clarify if this is the primary search method or when other tools might be more appropriate. No exclusions or prerequisites are stated.
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.
5 tool updates
- First observed
cache_stats - First observed
check_feeds - First observed
get_news - First observed
list_feeds - First observed
search_news
TDQS
Scored across 5 tools
Each tool has a clearly distinct purpose with no overlap: cache_stats monitors performance, check_feeds checks feed health, get_news fetches latest news, list_feeds lists available feeds, and search_news searches for articles. The descriptions reinforce these distinct roles, making tool selection unambiguous for an agent.
All tool names follow a consistent verb_noun pattern using snake_case: cache_stats, check_feeds, get_news, list_feeds, and search_news. This predictability enhances readability and usability, with no deviations in style or convention across the set.
With 5 tools, the server is well-scoped for its purpose of providing Icelandic news access. Each tool earns its place by covering essential functions like fetching, searching, listing feeds, checking health, and monitoring performance, avoiding bloat or thin coverage.
The tool set covers core workflows for news retrieval and feed management, including fetching, searching, listing, and health checks. A minor gap exists in update or deletion operations (e.g., managing cached data or feeds), but agents can work around this for the stated purpose of accessing Icelandic news.
Maintenance
Related MCP Connectors
Search a curated RSS feed directory and fetch latest articles. EN/JA. Sign in to use favorites.
News search, article lookup, story coverage and save links for hamir's RSS catalogue
Cross-source news (AP, BBC, NPR, HN, Google News) with topic filtering and dedup.
Track and browse RSS feeds with ease. Fetch the latest entries from any feed URL and extract full…