Skip to main content
Glama
iran-news-mcp

iran-news-mcp

by sepehr071

iran-news-mcp: Iranian news MCP server for AI agents

Let your AI agent read Iranian news (اخبار ایران) from 10 Persian news sites. An unofficial, read-only MCP server over the public RSS feeds and article pages of Mehr, Khabaronline, Hamshahri, Tabnak, Entekhab, Asriran, Zoomit, Digiato, Varzesh3 and Khabarvarzeshi: latest headlines, a merged overview, keyword search and the full text of any story, from Claude, Cursor or Copilot.

PyPI Python CI MCP Registry License: MIT mcpfarsi

Install in VS Code

For AI agents · Why · What it can do · Quick start · Tools · Sources · How it works · Good to know · FAQ · Configuration · فارسی · Development · Related servers


For AI agents

  • What: unofficial MCP server (model context protocol) for the RSS feeds and article pages of Mehr (mehrnews.com), Khabaronline (khabaronline.ir), Hamshahri (hamshahrionline.ir), Tabnak (tabnak.ir), Entekhab (entekhab.ir), Asriran (asriran.com), Zoomit (zoomit.ir), Digiato (digiato.com), Varzesh3 (varzesh3.com) and Khabarvarzeshi (khabarvarzeshi.com). Text is Persian. Each source has a group: news, tech or sports.

  • Install: uvx iran-news-mcp or claude mcp add iran-news -- uvx iran-news-mcp. Transport: stdio. Needs uv (Python 3.10+).

  • Auth: none, no API key or account. Optional IRAN_NEWS_MCP_PROXY (HTTP proxy URL, or a comma-separated list); system proxy settings are ignored.

  • Access: read-only. It cannot log in or post, so no confirmation is needed before calling any tool.

  • Tools: 6, all prefixed nw_: nw_list_sources, nw_latest, nw_search, nw_latest_all, nw_tech_news, nw_article. Start with nw_list_sources for valid source ids and category slugs; for any technology question start with nw_tech_news.

  • Use when: the user wants current Iranian headlines, a news overview, recent coverage of a keyword, or the full text of a story.

  • Do not use when: an archive is needed. Only what is in the current feeds (10 to 300 stories per feed) is searchable.

  • Output: compact JSON. Times are UTC ISO strings (Tehran is UTC+3:30); summaries are plain Persian text. Null and empty fields are omitted. Each item has a url to pass to nw_article.

  • Machine-readable: server.json and the iran-mcp catalog.

Related MCP server: AI News Aggregator

Why

Iranian news is spread over many sites, in Persian, each with its own category layout and feed addresses. Asking "what happened in the economy today" or "what is being said about X" means opening several pages. With iran-news-mcp the agent lists the sources, pulls the newest headlines in one call (or searches them all for a keyword) and opens the full text of the story that matters.

What it can do

  • Latest headlines of one source, optionally one category (politics, economy, society, culture, world, sports, science, provinces, photo, ...)

  • Merged overview of every source (or a chosen group) sorted by time

  • Keyword search over the stories currently in the feeds, with Arabic/Persian ي/ك and ZWNJ normalised

  • Technology news from Digiato (read several feed pages deep) and optionally Zoomit

  • Full article text of a story from its link, in parts of 6000 characters

  • Sports news from Varzesh3 and Khabarvarzeshi

  • Read-only by design: no login, no posting

Example prompts:

  • "What are the top economy headlines on Entekhab and Khabaronline right now?"

  • "Give me a one-line overview of the latest news from every source."

  • "Search the news for 'earthquake' and summarize what the first two results say."

  • "Latest smartphone news from Digiato and Zoomit."

  • آخرین خبرهای اقتصادی همشهری و خبرآنلاین را بیاور.

  • درباره «بورس» در خبرگزاری‌ها جست‌وجو کن و متن کامل مهم‌ترین خبر را خلاصه کن.

  • تازه‌ترین اخبار فناوری از دیجیاتو و زومیت چیست؟

Quick start

You need uv. No API key or account.

claude mcp add iran-news -- uvx iran-news-mcp

Settings → Developer → Edit Config, then add:

{
  "mcpServers": {
    "iran-news": { "command": "uvx", "args": ["iran-news-mcp"] }
  }
}

Add the Claude Desktop block to ~/.cursor/mcp.json (or .cursor/mcp.json in a project).

Click Install in VS Code above, or add to .vscode/mcp.json:

{
  "servers": {
    "iran-news": { "type": "stdio", "command": "uvx", "args": ["iran-news-mcp"] }
  }
}
codex mcp add iran-news -- uvx iran-news-mcp

or add to ~/.codex/config.toml:

[mcp_servers.iran-news]
command = "uvx"
args = ["iran-news-mcp"]

Add the Claude Desktop block to ~/.gemini/settings.json.

Add the Claude Desktop block to ~/.codeium/windsurf/mcp_config.json.

It's a standard stdio MCP server: run uvx iran-news-mcp, or pip install iran-news-mcp and run iran-news-mcp.

Tools

Tool

What it does

nw_list_sources

Lists the 10 sources with their group and category slugs; call this first for valid source and category values.

nw_latest

Newest headlines of one source, optionally one category (source, category, limit 1-15).

nw_search

Keyword search over the current feeds of several sources (query, sources, category, limit 1-15).

nw_latest_all

Newest headlines from every source merged by time (sources, category, per_source 1-2).

nw_tech_news

Technology news, Digiato by default read several feed pages deep, optionally Zoomit (topic, category, limit 1-30, source digiato / zoomit / both); summaries up to 300 characters, scanned shows search depth.

nw_article

Full body text of one story from its url, in parts of 6000 characters (url, part).

All tools are annotated readOnlyHint: true.

Sources

id

Site

Group

Categories

Feeds

mehr

Mehr

news

14

one per category (30 items)

khabaronline

Khabaronline

news

12

one per category (30 items)

hamshahri

Hamshahri

news

16

one per category (30 items)

tabnak

Tabnak

news

0

one feed (latest only)

entekhab

Entekhab

news

11

one per category (up to 100 items)

asriran

Asriran

news

11

one per category (up to 100 items)

zoomit

Zoomit

tech

18

one feed (300 items), categories filtered here

digiato

Digiato

tech

14

one per topic (10 items)

varzesh3

Varzesh3

sports

1 (sports)

one feed (40 items)

khabarvarzeshi

Khabarvarzeshi

sports

1 (sports)

one feed (30 items)

Common slugs shared by most sources: politics, economy, society, culture, world, sports, science, provinces, photo. Always call nw_list_sources for the exact slugs per source.

How it works

  AI agent  (Claude, Cursor, Copilot, ...)
      │
      │  MCP over stdio
      ▼
  iran-news-mcp  (runs on your machine)
      │
      │  HTTPS
      └──────▶  public RSS feeds and article pages of the 10 news sites

iran-news-mcp runs locally, reads each site's public RSS feed (RSS 2.0 or Atom) and, for nw_article, the story's HTML page. There is no hosted server in between, no API key, and nothing about you is sent anywhere else.

Good to know

  • Times are UTC ISO strings; Tehran is UTC+3:30.

  • Feeds only, no archive. Search covers the stories currently in the feeds (10 to 300 per feed), newest first. It is a keyword match, not a full-text index of the sites.

  • Reply size is capped at about 15 KB: limit is at most 15 and per_source at most 2. nw_tech_news is the exception (limit up to 30, summaries up to 300 characters, replies up to roughly 25 KB).

  • Summaries are plain text cut to 200 characters (80 in nw_latest_all). Photo feeds (for example Mehr photo) have mostly empty descriptions.

  • Stale feeds: nw_latest sets stale: true when a feed's newest story is more than 3 days old.

  • Feeds are cached for 3 minutes, so repeated calls do not hit the sites again. Timeouts, network errors, 5xx and 429 are retried up to twice.

  • Partial answers: a source that fails is listed under errors while the others still answer.

  • Zoomit has a single feed, so its categories are filtered on this side. Digiato feeds hold 10 items, so nw_tech_news reads extra pages.

  • No ISNA or IRNA. Their article pages sit behind a JavaScript challenge that plain clients cannot pass, so only headlines would work. They were left out.

  • What it does NOT do: no login, no posting, no comments, no images in results, no archive search.

  • Proxy: set IRAN_NEWS_MCP_PROXY if your network cannot reach the sites. Normal system proxy variables are ignored on purpose.

FAQ

Yes: iran-news-mcp is an unofficial, read-only MCP server with 6 tools over the public RSS feeds and article pages of 10 Persian news sites. No API key is needed.

Add the server with claude mcp add iran-news -- uvx iran-news-mcp (or the matching config in Quick start), then ask in plain language, in Persian or English.

It is unofficial and not affiliated with any of the news sites. It is read-only, runs on your machine, and is free under the MIT license.

Yes: in testing the feeds and article pages answered both from a direct Iranian connection and from a Turkish proxy exit. If your network blocks the sites, set IRAN_NEWS_MCP_PROXY.

Yes. nw_list_sources shows each source's group (news, tech, sports); pass the ids of one group as sources to nw_search or nw_latest_all. For technology questions use nw_tech_news.

No. nw_search looks only at the stories currently in the RSS feeds. For something older, give nw_article a link you already have.

Their article pages answer non-browser clients with a JavaScript check, even from an Iranian connection, so only headlines would work. They were left out rather than half-supported.

nw_article returns the body in parts of 6000 characters. When a story has more than one part, call it again with part=2, and so on.

Use the full path to uvx (where uvx on Windows, which uvx on macOS/Linux) as command.

Configuration

Variable

Default

Meaning

IRAN_NEWS_MCP_PROXY

unset

Optional HTTP proxy URL. System proxy settings are ignored. Also accepts a comma-separated list: one is used until it gets blocked or fails to connect, then the next.

فارسی: سرور MCP اخبار ایران

iran-news-mcp یک سرور MCP غیررسمی و فقط‌خواندنی برای خواندن اخبار ایران است. این سرور از خوراک RSS و صفحه‌های خبر ده منبع استفاده می‌کند: مهر، خبرآنلاین، همشهری، تابناک، انتخاب، عصر ایران، زومیت، دیجیاتو، ورزش سه و خبرورزشی. دستیار هوش مصنوعی شما (Claude، Cursor، Copilot و ...) با آن می‌تواند آخرین خبرها را بخواند و در خبرگزاری‌ها جست‌وجو کند.

چه کارهایی می‌کند

  • آخرین عناوین هر خبرگزاری و هر دسته (سیاسی، اقتصادی، اجتماعی، فرهنگی، جهان، ورزشی، علمی، استان‌ها و ...).

  • مرور ترکیبی خبرهای همه منابع، مرتب بر اساس زمان.

  • جست‌وجوی کلیدواژه در خبرهایی که اکنون در خوراک‌ها هستند.

  • اخبار فناوری از دیجیاتو و زومیت (موبایل، لپ‌تاپ، هوش مصنوعی، بازی و ...).

  • متن کامل خبر از روی پیوند آن، در بخش‌های ۶۰۰۰ نویسه‌ای.

نکته‌ها

  • فقط خواندنی است: وارد حساب نمی‌شود و چیزی منتشر نمی‌کند.

  • جست‌وجو فقط روی خبرهای فعلی خوراک‌ها کار می‌کند و آرشیو نیست.

  • زمان‌ها به وقت UTC هستند (تهران UTC+3:30).

  • روی سیستم خود شما اجرا می‌شود و کلید API لازم ندارد.

  • ایسنا و ایرنا به‌دلیل محافظ جاوااسکریپتی صفحه‌های خبرشان پشتیبانی نمی‌شوند.

نصب (اول uv را نصب کنید). در Claude Code:

claude mcp add iran-news -- uvx iran-news-mcp

در Claude Desktop، Cursor و بقیه برنامه‌ها همان تنظیم بخش Quick start را بگذارید.

نمونه پرسش‌ها

  • «آخرین خبرهای اقتصادی تابناک و خبرآنلاین چیست؟»

  • «درباره زلزله در همه خبرگزاری‌ها جست‌وجو کن.»

  • «تازه‌ترین خبرهای ورزشی را از ورزش سه بیاور.»

  • «اخبار فناوری و موبایل امروز را از دیجیاتو و زومیت بگو.»

Development

git clone https://github.com/sepehr071/iran-news-mcp && cd iran-news-mcp
uv sync
uv run python -m pytest            # offline, against recorded feeds
uv run python -m pytest -m live    # real feeds
uv run ruff check .

Tools live in src/iran_news_mcp/news.py (feeds, search, tech news) and article.py (story text); each is a typed async function with a docstring that tells the agent when to use it. Feed addresses are in the SOURCES table in news.py. Issues and PRs are welcome, especially new sources and fixes when a feed changes.

Releases: bump the version in pyproject.toml and server.json, then push a v* tag. GitHub Actions tests, publishes to PyPI and the MCP Registry, and creates the GitHub Release.

Disclaimer

Unofficial and not affiliated with or endorsed by Mehr, Khabaronline, Hamshahri, Tabnak, Entekhab, Asriran, Zoomit, Digiato, Varzesh3 or Khabarvarzeshi. It reads their public RSS feeds and article pages, which can change without notice. Headlines and article text belong to their publishers; please keep request rates reasonable.

Author

Built and maintained by Sepehr Radmard (سپهر رادمرد). Connect on LinkedIn or follow @sepehr071 on GitHub for more MCP servers for Iranian websites, all listed in iran-mcp. If this saves you time, a star on the repo helps other people find it.

License

MIT

Available Tools

6 tools
nw_articleRead a news articleA
Read-onlyIdempotent

Fetch one article page and return its full body text, split into parts for long stories.

Works for every source. Photo and video items often have no body text. parts > 1 means call again with part=2, 3, ...

NameRequiredDescriptionDefault
urlYesArticle url from nw_latest / nw_search / nw_latest_all (from any listed source).
partNoPart number for long articles (6000 characters each); see `parts`.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/openWorld, so the bar is lower. The description adds real behavioral context beyond them: photo/video items often have empty bodies, and long stories are chunked so parts > 1 requires repeat calls.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with the core behavior, then the coverage caveat and the pagination rule. No repetition of schema or annotation content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the return-value burden and does so adequately (full body text plus a `parts` count driving re-calls), and covers the photo/video edge case. It stops short of naming other returned fields such as title or date, which would be a minor addition.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% so the baseline is 3, but the description adds the operational meaning of `part` — the loop 'call again with part=2, 3, ...' when parts > 1 — which the schema alone does not convey. It also reinforces that the url should come from the sibling listing tools.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb and resource ('Fetch one article page and return its full body text') and immediately qualifies the scope with pagination behavior, which cleanly separates it from the discovery siblings nw_search / nw_latest / nw_latest_all.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

States that it 'works for every source' and that the URL should come from the discovery tools, and gives an explicit follow-up rule for parts > 1. It does not spell out an exclusion against alternatives, but the position in the workflow (follow-up to search/latest) is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nw_latestLatest news from a sourceA
Read-onlyIdempotent

Return the newest headlines of one news source, optionally of one category.

Each item has title, url, published (UTC ISO), summary (plain text) and categories. stale: true means the feed's newest story is over 3 days old (some Digiato topic feeds go quiet). Use nw_list_sources for category slugs; use nw_search to look for a topic across sources.

NameRequiredDescriptionDefault
limitNoMax items (1-15), newest first.
sourceYesSource id such as mehr, tabnak or varzesh3 (see nw_list_sources).
categoryNoCategory slug from nw_list_sources, e.g. 'politics', 'economy', 'sports'. Empty = the source's main latest feed.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only, idempotent, open-world and non-destructive behavior, so the safety profile is free. The description still adds real value by disclosing the item shape and the non-obvious `stale: true` flag semantics (feed newest story over 3 days old), which cannot be inferred from structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core purpose, then return fields, then the stale caveat, then routing hints — a sensible order with no filler. The second paragraph is slightly dense but every clause carries information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, so the description compensates by enumerating the returned fields and the timestamp format (UTC ISO). Combined with the stale-flag explanation and the source-slug routing, nothing an agent needs to call or interpret this tool is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all three parameters are already documented, including the 1-15 limit range and category slug source. The description adds only a redundant pointer to nw_list_sources for slugs and says nothing extra about `limit` behavior.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Return the newest headlines') plus the scope ('one news source, optionally of one category'), which implicitly contrasts with the sibling nw_latest_all and with nw_search. An agent can tell what this returns without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly routes the agent: nw_list_sources for category slugs, nw_search for cross-source topic lookup. The 'one news source' scope implies when to prefer nw_latest_all, but that alternative is never named and no when-not condition is stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nw_latest_allLatest news across sourcesA
Read-onlyIdempotent

Return the newest headlines from every source (or the chosen ones), merged and sorted by time.

Use it for a general news overview; pass a common category slug such as 'economy' or 'sports' to narrow it. Not for technology questions: use nw_tech_news. Sources that failed or lack the category are listed under errors.

NameRequiredDescriptionDefault
sourcesNoSource ids to include. Empty = all sources.
categoryNoCategory slug from nw_list_sources, e.g. 'politics', 'economy', 'sports'. Empty = the source's main latest feed.
per_sourceNoItems (1-2) taken from each source before merging.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive, open-world behavior, so the safety profile is covered. The description adds genuinely new behavior: results are merged and time-sorted, and sources that failed or lack the category surface under `errors`, which tells the agent to expect partial success rather than an exception. It omits item shape and any pagination/rate-limit notes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with the core behavior, then usage, then failure handling. Every sentence carries distinct information with no repetition of the name or title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 3-param, all-optional read tool with no output schema, the definition covers purpose, narrowing, and the `errors` key. It would be stronger if it sketched the returned item fields (headline, source, timestamp), since no output schema exists to convey them.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all three parameters are already documented including defaults and the per-source 1-2 cap. The description only reinforces the category notion ('common category slug such as economy or sports') and the empty-means-all semantics already in the schema, adding little beyond it and saying nothing about per_source's effect on the merged list.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (return newest headlines), plus the scope (from every source or the chosen ones, merged and sorted by time). It explicitly carves out nw_tech_news, but leaves the distinction from the closely named sibling nw_latest implicit rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a clear when-to-use (general news overview, narrow with a category slug) and an explicit when-not with the replacement tool (technology questions -> nw_tech_news). It does not address when to prefer nw_latest or nw_search instead, so one sibling decision is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nw_list_sourcesList news sourcesA
Read-onlyIdempotent

List the news sources with their group and category slugs; call this first to know valid source and category values.

group: news (Iranian general news), tech, sports. Pass chosen ids as sources to nw_search / nw_latest_all to filter by group. Next: nw_latest, nw_search or nw_latest_all; for technology questions use nw_tech_news.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive, openWorld, so the safety profile is covered; the description adds value beyond that by enumerating the group vocabulary (news = Iranian general news, tech, sports) and disclosing that ids from here feed the `sources` filter on other tools. It stops short of covering result size or ordering, but nothing is contradicted.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the purpose, then the group vocabulary, then the next-step routing, in three short blocks with no filler. The backticked fragments and compressed phrasing ('Pass chosen ids as `sources` to nw_search / nw_latest_all to filter by group') make it slightly telegraphic rather than flowing, but nothing is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-param catalog tool with no output schema, this covers what is returned (groups and category slugs) and how to consume it downstream, which is the critical gap for param-less discovery tools. Minor residual ambiguity remains about the exact shape of an id versus a slug, but an agent has enough to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Zero parameters, so the baseline is 4. The description still earns its keep by explaining how this tool's output maps onto the `sources` parameter of nw_search/nw_latest_all, which the empty schema cannot convey.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('List the news sources') and immediately names the returned payload ('group and category slugs'). It also positions itself relative to siblings by declaring 'call this first' to obtain valid source/category values, so an agent can distinguish it from nw_search or nw_latest without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit sequencing ('call this first'), names the concrete alternatives to use next (nw_latest, nw_search, nw_latest_all), and adds a disambiguation rule ('for technology questions use nw_tech_news'). This is exactly the when/when-not/alternative guidance the dimension asks for.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nw_tech_newsTech news (Digiato, Zoomit)A
Read-onlyIdempotent

Return the newest technology news (phones, laptops, AI, gadgets, apps, crypto, cars, security, games) with long summaries.

Use this first for any technology question instead of nw_search or nw_latest_all. Digiato is the default and is read several feed pages deep, so limit up to 30 works; a topic scans the latest 50 Digiato stories (Zoomit: its 300). Each item has title, url, published (UTC ISO), a summary of up to 300 characters, categories and author. scanned is how many stories were searched: if count is 0 or low, try a shorter or more general topic, or source='both'. Next: nw_article with an item's url for the full text.

NameRequiredDescriptionDefault
limitNoMax stories (1-30), newest first. Use 20-30 for a roundup.
topicNoKeywords; every word must appear in the title or summary. Persian or brand names. Empty = no filter.
sourceNodigiato (default, richest summaries and paging), zoomit, or both merged by time.digiato
categoryNoTech topic slug. Digiato: mobile, apps, ai, gadgets, hardware, laptop, crypto, internet, security, reviews, car, business, buying-guide, science. Zoomit adds apple, samsung, gaming, space, software-news, ... (nw_list_sources has all). Empty = everything.

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish readOnly/idempotent/non-destructive, and the description adds real operational context beyond them: Digiato is paged several feed pages deep so limit up to 30 is meaningful, topic scans the latest 50 Digiato stories (300 for Zoomit), and `scanned` reports how many stories were searched. It also discloses the returned item shape (title, url, UTC ISO published, ≤300-char summary, categories, author), which no output schema provides.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose and the routing rule, then operational detail, then the next step — a sensible order. Slightly dense: the parenthetical domain list and the item-field enumeration could be trimmed, though both carry information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, so the description supplies the return-field contract and the meaning of `scanned`/`count`. Combined with defaults, per-source paging depths, empty-result fallbacks, and the follow-up tool, an agent has everything needed to call it and interpret results.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema coverage the baseline is 3, and the description earns above that by explaining cross-parameter behavior the schema cannot: why `limit` up to 30 is honored, what corpus `topic` is scanned against per source, and that `source` defaults to the richest feed. It stops short of restating per-parameter syntax, which is already well documented in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb and resource ('Return the newest technology news') and enumerates the covered domains (phones, laptops, AI, crypto, security, games). It also explicitly positions itself against siblings ('Use this first ... instead of nw_search or nw_latest_all'), so the agent can distinguish it without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states the selection rule ('use this first for any technology question') and names the two tools it supersedes. It also gives a recovery path when results are thin ('if count is 0 or low, try a shorter or more general topic, or source="both"') and a handoff to nw_article for full text.

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.

  1. 5 tool updatesv0.2.2
    • Changednw_article1 field changed
      • changedInput schema / properties / url / description
        Previous value: -"Article url from nw_latest / nw_search / nw_latest_all (one of the six sites)."New value: +"Article url from nw_latest / nw_search / nw_latest_all (from any listed source)."
    • Changednw_latest1 field changed
      • changedInput schema / properties / source / description
        Previous value: -"Source id: mehr, khabaronline, hamshahri, tabnak, zoomit or digiato (see nw_list_sources)."New value: +"Source id such as mehr, tabnak or varzesh3 (see nw_list_sources)."
    • Changednw_latest_all3 fields changed
      • changedInput schema / properties / per_source / description
        Previous value: -"Items (1-3) taken from each source before merging."New value: +"Items (1-2) taken from each source before merging."
      • changedInput schema / properties / per_source / maximum
        Previous value: -3New value: +2
      • changedInput schema / properties / sources / description
        Previous value: -"Source ids to include. Empty = all six."New value: +"Source ids to include. Empty = all sources."
    • Changednw_search1 field changed
      • changedInput schema / properties / sources / description
        Previous value: -"Source ids to include. Empty = all six."New value: +"Source ids to include. Empty = all sources."
    • Addednw_tech_news
  2. 5 tool updatesv0.1.0
    • First observednw_article
    • First observednw_latest
    • First observednw_latest_all
    • First observednw_list_sources
    • First observednw_search

TDQS

A4.2/5.0

Scored across 6 tools

Disambiguation4/5

The six tools mostly target clearly distinct operations: source discovery, single-source latest, all-source latest, keyword search, technology news, and article fetching. There is some conceptual overlap between nw_latest_all and nw_tech_news, and between nw_search and nw_tech_news for technology topics, but the descriptions explicitly route those cases, reducing ambiguity.

Naming Consistency4/5

All tools share the nw_ prefix and snake_case formatting. The naming pattern is not a pure verb_noun convention: some tools are action-oriented (nw_list_sources, nw_search) while others are resource/view-oriented (nw_article, nw_latest, nw_tech_news), which is a minor inconsistency but still readable.

Tool Count5/5

Six tools are well-scoped for a news aggregation server: discover sources, fetch latest headlines per source or across all sources, search headlines, fetch technology news, and retrieve full article text. Each tool earns its place without obvious bloat or missing essentials.

Completeness4/5

The set covers the core news lifecycle: source/category discovery, latest headlines, cross-source aggregation, keyword search, specialized tech news, and full article retrieval. Minor gaps include no archive/date-range search, no pagination for latest lists, and no general category browsing beyond source slugs, but core workflows are supported.

Maintenance

ActivityMaintained
ResponsivenessSyncing

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Local MCP server that ingests and normalizes recent AI, tech, and research news from multiple sources, exposing tools for media agents to query and retrieve article content on demand.
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server that aggregates AI news, academic papers from ArXiv, and trending GitHub repositories from multiple sources, enabling users to fetch, search, and filter recent AI content via natural language.
    1
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    MCP server that connects AI assistants to the public tagesschau.de news API, offering live headlines, category and regional news, full-text search, and live stream URLs without requiring an API key.
    5
    22 PyPI
    3
    Apache 2.0
  • A
    license
    A
    quality
    B
    maintenance
    An unofficial read-only MCP server that lets AI agents search and read Gamefa's Persian game and film news, scored reviews, profiles, comments, and upcoming release calendars without an API key.
    13
    2
    MIT