Skip to main content
Glama
sepehr071

iran-downloads-mcp

by sepehr071

iran-downloads-mcp: Iranian software and game download sites MCP server for AI agents

Let your AI agent look up software and games (دانلود نرم‌افزار و بازی) on Soft98, P30Download, Downloadly and VGDL. An unofficial, read-only MCP server that searches the sites' public pages and returns metadata only: name, version, size, category, date, a short description, system requirements and the link to the item page.

Metadata search only. This server never downloads or saves files, never returns file links, and does not resolve or bypass gated or tokenised download links. It returns no passwords and no crack or activation notes. Many listings on these sites are cracked, repacked or otherwise redistributed software. You are responsible for checking the licence of whatever you install and for following the law where you live.

For AI agents · Quick start · Tools · Sources · فارسی


For AI agents

  • What: unofficial MCP server for metadata search on Soft98 (soft98.ir), P30Download (p30download.ir), Downloadly (downloadly.ir) and VGDL (vgdl.ir). Persian and English text.

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

  • Auth: none. Optional IRAN_DOWNLOADS_MCP_PROXY (HTTP proxy URL, or a comma-separated list); system proxy settings are ignored.

  • Access: read-only. No login, no downloads, so no confirmation is needed before calling any tool.

  • Tools: 4: dl_list_sources, dl_search, dl_latest, dl_item. Start with dl_list_sources for source ids and category slugs.

  • Use when: the user wants to find an app or game by name, see what is new, or check version, size and system requirements before opening the item page.

  • Do not use when: the user wants the file itself, a direct link, a password, or a crack. None of that is returned; send them to the item page url and remind them to check the licence.

  • Output: compact JSON. Dates are ISO (UTC where a time is shown); Soft98's Jalali dates are converted. Summaries are cut to 120 characters, descriptions to 600. Null and empty fields are omitted. Replies stay under ~15 KB (per_source max 5). A failing source is listed under errors while the others still answer. Pages are cached for 3 minutes.

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

Related MCP server: digikala-mcp

Quick start

claude mcp add iran-downloads -- uvx iran-downloads-mcp

Other clients: command uvx, args ["iran-downloads-mcp"].

Tools

Tool

What it does

dl_list_sources

The four sources, whether they have a latest listing, and category slugs.

dl_search

Search by name across sources (query, sources, page, per_source 1-5).

dl_latest

Newest uploads, merged by date (sources, category, per_source 1-5).

dl_item

Details of one item from its page url: name, version, size, category, date, description, requirements.

Sources

id

Site

Search

Latest

Item details

soft98

Soft98

site search (8 per page)

no: listing pages hide item links behind script keys

title, version, category, date, description, requirements; no size

p30download

P30Download

/search/<query> (10 per page)

RSS per section: software, game, tutorial, graphic, console

adds size, publisher, release date

downloadly

Downloadly

/?s= (25 per page)

home or category archive: software, mobile, multimedia, video-tutorials

adds size and requirements

vgdl

VGDL

WordPress REST /wp-json/wp/v2/posts?search=

REST posts, optional category: game, software, mobile

title, category, date, excerpt only (size and requirements sit next to crack and repack notes, so they are not read)

Titles carry the version where the site puts it there (for example Google Chrome 155.0.8059.85); dl_item returns a best-effort version.

FAQ

Does it work outside Iran? The sites answered direct connections from Iran in testing. From a Turkish proxy exit Soft98, P30Download and Downloadly answered, VGDL returned a bot-check page instead of JSON (the tool reports it). If a site blocks you, try a direct connection or IRAN_DOWNLOADS_MCP_PROXY with an Iranian exit.

Why no download links? Out of scope on purpose: the sites gate links behind tokens, countdowns and ads, and many files are pirated copies. The server stays a search index.

فارسی

سرور MCP غیررسمی و فقط‌خواندنی برای جست‌وجوی فراداده (نام، نسخه، حجم، دسته، تاریخ، توضیح کوتاه، سیستم مورد نیاز و پیوند صفحهٔ آیتم) در سافت۹۸، پی‌سی دانلود، دانلودلی و ویجی دی ال. این سرور فایلی دانلود یا ذخیره نمی‌کند، پیوند فایل، گذرواژه یا کرک برنمی‌گرداند و پیوندهای قفل‌شده را دور نمی‌زند. بررسی مجوز نرم‌افزارها با خود شماست.

claude mcp add iran-downloads -- uvx iran-downloads-mcp

License

MIT

Available Tools

4 tools
dl_itemDownload item detailsA
Read-onlyIdempotent

Return the details of one download item: name, version, size, category, date, description and system requirements.

Fields a site does not publish are omitted (soft98 has no size; vgdl has neither size nor requirements). Never includes download links, passwords or crack notes: open the item page url yourself and check the licence.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesItem page url from dl_search or dl_latest (soft98.ir, p30download.ir, downloadly.ir or vgdl.ir).

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/openWorld/non-destructive, so the safety profile is covered. The description adds genuinely useful behavior an agent could not infer: fields are omitted per-site (soft98 has no size; vgdl has neither size nor requirements), and download links, passwords and crack notes are deliberately never returned, with a directive to open the item page and check the licence instead.

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?

Two sentences, zero filler. The returned-field list comes first, then the caveats, so the most important scoping information is front-loaded.

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?

There is no output schema, so the description correctly carries the burden of describing the return payload and its site-dependent omissions, which it does well. It stops short of covering failure modes (invalid/non-item url) or noting that the fetched page must be opened for links and licensing, but nothing essential for calling the tool is missing.

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% and the schema already documents the url (source sites plus an example), so the baseline is 3. The description goes further by tying response shape to the url's domain (soft98, vgdl), which tells the agent that the same parameter yields different field sets depending on which site the url points to.

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 details of one download item') and enumerates the exact fields returned (name, version, size, category, date, description, requirements). This is clearly distinguishable from the dl_search/dl_latest/dl_list_sources siblings, which are list-style rather than single-item detail fetches.

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

Usage Guidelines3/5

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

The description never explicitly says when to reach for this tool versus the siblings; the workflow hint ('url from dl_search or dl_latest') lives in the schema property, not the description. Usage is implied by the fact that a url is required and by how the url param is sourced, which is adequate but not stated as guidance.

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

dl_latestLatest downloadsA
Read-onlyIdempotent

Return the newest uploads of the download sites (soft98 has no latest listing), merged and sorted by date.

Metadata and item page urls only. Sources that failed or lack the category are listed under errors.

ParametersJSON Schema
NameRequiredDescriptionDefault
sourcesNoSource ids to include (soft98, p30download, downloadly, vgdl; see dl_list_sources). Empty = all.
categoryNoCategory slug from dl_list_sources, e.g. 'software' or 'game'. Empty = everything.
per_sourceNoItems (1-5) taken from each source.

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already cover readOnly/idempotent/openWorld safety, so the bar is lower, and the description still adds real context: soft98 has no latest listing, results are merged and date-sorted, output is metadata plus item page urls only, and failed sources appear under `errors`. It stops short of describing ordering ties, deduplication, or rate-limit behavior.

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?

Two sentences, zero filler, with the core behavior (newest uploads, merged, sorted) front-loaded and the caveats (soft98 exception, errors bucket) following compactly. Every clause earns its place.

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 correctly discloses the return shape (metadata and item page urls only) and the error surface (`errors`). For a small bounded result set (1-5 per source) this is nearly complete, though pagination/limits and result ordering edge cases are unstated.

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% with defaults, ranges, and examples for all three params, so the schema carries the load. The description adds no syntax or format detail beyond referencing source ids and category slugs implicitly, matching the baseline 3 for a fully documented schema.

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 the newest uploads of the download sites ... merged and sorted by date'), which is clear and distinct from a search or item-detail tool. It notes the soft98 exception, but never names the sibling tools it differs from (dl_search, dl_item) to explicitly disambiguate.

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

Usage Guidelines3/5

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

Usage is implied (browse the latest across sources) but there is no explicit when-to-use or when-not-to-use guidance relative to dl_search or dl_item. The 'Empty = all' semantics for sources and category are documented in the schema, not the description.

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

dl_list_sourcesList download sourcesA
Read-onlyIdempotent

List the four download-site sources and their latest-listing categories; call this first for valid ids.

Sources: soft98, p30download, downloadly, vgdl. This server returns metadata and the item page url only, never file links. Next: dl_search, dl_latest or dl_item.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and non-destructive, so the safety profile is covered. The description adds genuinely new behavioral context: the server 'returns metadata and the item page url only, never file links', which sets an expectation the annotations cannot express.

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, front-loaded sentences: purpose first, then the source ids, then the return limitation and next steps. No filler or restated metadata.

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 burden and does say what comes back (metadata plus item page url, no file links). It does not sketch the structure of the returned listing/categories, which is a minor remaining gap for a discovery tool.

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?

The tool takes zero parameters, so the baseline of 4 applies. Nothing in the description contradicts or misleads about input handling.

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 (List) and resource (download-site sources) plus the shape of what is returned (latest-listing categories). Enumerating the four source ids (soft98, p30download, downloadly, vgdl) makes it unmistakable against the dl_search/dl_latest/dl_item siblings.

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 says 'call this first for valid ids', giving a clear precondition, and names the follow-up tools ('Next: dl_search, dl_latest or dl_item'). Both when-to-use and the alternative path are stated rather than implied.

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. 4 tool updatesv0.1.0
    • First observeddl_item
    • First observeddl_latest
    • First observeddl_list_sources
    • First observeddl_search

TDQS

A4.1/5.0

Scored across 4 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: listing sources, searching by name, fetching latest uploads, and retrieving item details. No overlap exists, and the descriptions explicitly guide when to use each tool.

Naming Consistency4/5

All tools share the dl_ prefix and snake_case style, which is consistent. However, the second component varies between verb_noun (dl_list_sources), verb (dl_search), adjective/noun (dl_latest), and noun (dl_item), so it is not a strict verb_noun pattern throughout.

Tool Count5/5

Four tools are well-scoped for a read-only metadata aggregator, covering the essential operations (source listing, search, latest, item details) without redundancy or bloat.

Completeness4/5

The surface covers listing sources, searching, latest uploads, and item details, which are the core operations. However, there is no explicit tool for browsing items by category or paginating results, which are minor gaps for the domain.

Maintenance

ActivityNo data
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI agents to search and retrieve video game information from the IGDB catalog, including games, platforms, companies, release dates, ratings, and cover art.
    12 npm
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Enables AI agents to search Digikala's catalogue, compare every seller's offers and prices, review ~30 days of price history, read customer reviews and Q&A, and surface current deals, all through read-only tools.
    23
    906 PyPI
    33
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Enables AI agents to search and compare the cheapest flights, trains, buses, private taxis and hotels across Iran, including free seats, baggage allowances, refund rules and exact prices, for a single date or across weeks. All 22 tools are read-only and return compact structured JSON, so an agent can plan multi-mode trips and hotel stays without logging in or booking.
    22
    558 PyPI
    2
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Enables AI agents to compare prices across Iranian online and in-person shops, inspect each seller's offer with warranty and installment details, review roughly a year of price history, score deals, and find the cheapest shop for a whole basket. It is read-only, requires no account or API key, and runs locally for Claude, Cursor or Copilot.
    26
    1
    MIT