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.

Photo and video items often have no body text. If parts > 1, call again with part=2, ...

Inputs: url (required), part.

nw_latestLatest news from a sourceA
Read-onlyIdempotent

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

Items have title, url, published (UTC ISO), summary and categories. stale: true means the newest story is over 3 days old.

Inputs: source (required), limit, category.

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 for a general overview; pass a common category slug such as 'economy' or 'sports' to narrow it (not sources, which drops other groups). Not for technology questions (use nw_tech_news). Sources lacking the category appear under errors.

Inputs: sources, category, per_source.

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, tech or sports; pass a group's ids as sources to nw_search / nw_latest_all.

Inputs: no named parameters.

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 first for any technology question. A topic scans the latest 50 Digiato stories (Zoomit: 300); scanned is how many were searched, so if count is low try a shorter topic or source='both'. Items add categories and author; replies up to ~25 KB.

Inputs: limit, topic, source, category.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A4/5.0

    Scored across 6 tools

    Disambiguation4/5

    The tools mostly have distinct roles, but nw_latest, nw_latest_all, and nw_tech_news all return newest headlines, and nw_search overlaps with nw_tech_news for topic-based discovery. The descriptions explicitly steer usage (one source vs. all sources vs. technology), so an agent can usually choose correctly.

    Naming Consistency3/5

    All tools use a consistent nw_ prefix and snake_case, which helps readability. However, the suffix conventions are mixed: some are verbs (nw_search, nw_list_sources), some are nouns (nw_article, nw_tech_news), and others are adjectives/nouns (nw_latest, nw_latest_all).

    Tool Count5/5

    Six tools is well-scoped for a news aggregation server, with each tool covering a distinct access pattern: source discovery, per-source latest, all-source latest, search, technology news, and full article retrieval. No tool feels redundant or extraneous.

    Completeness4/5

    The surface covers the core news workflow: discovering sources, browsing latest headlines, searching recent stories, and fetching full article text. Minor gaps exist, such as no date-range querying or archive access, but those seem intentionally outside the server's scope.

    Maintenance

    ActivityMaintained
    ResponsivenessNo recent community issues

    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
      C
      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
      36 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