Skip to main content
Glama
iran-vod-mcp

iran-vod-mcp

by sepehr071

iran-vod-mcp: Filimo (فیلیمو) and Namava (نماوا) catalog MCP server for AI agents

iran-vod-mcp is an unofficial, read-only MCP server that gives AI agents the public movie and series catalogs of Filimo and Namava. Its 13 tools search both services, tell you which one carries a title, read synopsis, rating, cast and age rating, list seasons and episodes, look up actors and directors, find similar titles, open curated lists (IMDb top 250, Oscar, kids, coming soon), browse genres and show Namava subscription prices. No API key or account is needed. It works in Claude, Cursor, Copilot and any other MCP client.

License: MIT

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


For AI agents

  • What: unofficial MCP server (model context protocol) for filimo.com and namava.ir, the two big Iranian video-on-demand services: title search, "which service has this title", title details, series seasons and episodes, actor and director filmographies, similar titles, curated lists, new releases, front-page picks, genre browsing, Namava plans.

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

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

  • Access: read-only catalog data. It cannot log in, play video, give stream links or change anything, so no confirmation is needed before calling any tool.

  • Tools: 13, all prefixed vod_. Typical sequences: vod_search -> vod_title -> vod_episodes / vod_related / vod_person; vod_where for one title; vod_browse -> vod_title; vod_collections -> vod_collection.

  • Use when: the user asks if a film or series is on Filimo or Namava, what it is about, who is in it, its rating or age rating, how many seasons or episodes it has, what is new or popular, or what to watch in a genre.

  • Do not use when: the user wants to watch, download or get stream links, or needs Filimo prices (only Namava plans are public JSON).

  • Output: compact JSON. Years are Persian-calendar as the sites show them (foreign titles show the Gregorian year). Ratings differ: Filimo stars out of 5 with a vote count and IMDb, Namava like and dislike counts. Text is Persian site content.

  • Machine-readable: server.json.

Related MCP server: IMDB MCP Server

Quick start

claude mcp add iran-vod -- uvx iran-vod-mcp

Or in any MCP client config:

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

Both sites answer from Iran directly. Foreign (licensed) titles are only listed to Iranian IP addresses: from abroad you see the Iranian catalog only. If you need a proxy, set IRAN_VOD_MCP_PROXY=http://host:port.

Tools

Tool

What it does

vod_search

Search Filimo, Namava or both by title; movies and series with a ref each

vod_where

Which of the two services carries a title (exact and similar matches per site)

vod_title

Synopsis, genres, year, rating, age rating, country, cast and director of one title

vod_episodes

Seasons of a series and the episodes of one season (summary, length, date)

vod_new

Newest titles per service, movies or series

vod_featured

What each front page promotes: Filimo rows (popular, box office, genres), Namava hero slider and top list

vod_browse

Titles of one genre; Filimo also sorts (rating, IMDb, year, newest added) and filters by country

vod_genres

Genre names, aliases, sort and country values

vod_person

An actor or director: bio and the titles they appear in, on Filimo and Namava

vod_related

Titles similar to one title; Filimo also names its featured actors and writers

vod_collections

Curated lists you can open: IMDb top 250, festival winners, kids, Oscar, true stories, coming soon

vod_collection

The titles of one curated list (Filimo sort and country filters, paging to about 200 titles)

vod_plans

Namava subscription plans and prices (Filimo prices are not in its JSON API)

Example prompts:

  • "Is Iranian Dinner (شام ایرانی) on Filimo or Namava, and how many seasons?"

  • "Best-rated Iranian comedy series on Filimo."

  • "What is new on Namava this week?"

  • "What has Parsa Pirouzfar acted in on Filimo?" / "What is coming soon to Namava?"

  • فیلم بینوایان در نماوا هست؟ کارگردانش کیست؟

  • سریال‌های ایرانی با بیشترین امتیاز در فیلیمو کدامند؟

FAQ

Can it play or download videos? No. It lists and describes titles only; no stream or download URLs are fetched.

Why do I see fewer titles from abroad? Both services hide licensed foreign titles from non-Iranian IP addresses.

Why does a Filimo series show only a few actors? Filimo has no cast list. For a movie the names come from its description text; for a series they are the actors Filimo features on the series page (usually two or three).

Is it affiliated with Filimo or Namava? No. It reads the same public JSON the websites use, at a polite rate with a short cache.

فارسی

iran-vod-mcp یک سرور MCP غیررسمی و فقط‌خواندنی برای فهرست فیلم و سریال فیلیمو و نماوا است: جستجوی عنوان در هر دو سرویس، اینکه یک عنوان در کدام سرویس هست، خلاصه داستان، امتیاز، رده سنی، بازیگران، فصل‌ها و قسمت‌ها، تازه‌ها و دسته‌بندی ژانر. پخش، دانلود و ورود به حساب پشتیبانی نمی‌شود. نصب: uvx iran-vod-mcp

License

MIT. Author: Sepehr Radmard (سپهر رادمرد), github.com/sepehr071, linkedin.com/in/sepehr-radmard.

Available Tools

13 tools
vod_browseBrowse by genreA
Read-onlyIdempotent

List movies and series of one genre on Filimo and Namava, with Filimo's sort and country filters.

Use for "best comedy series on Filimo", "Iranian dramas", "new documentaries". Filimo rows carry year, rating, IMDb and summary; Namava rows only title, kind and id (use vod_title). Next: vod_title or vod_episodes. For themed lists (IMDb top 250, Oscar, kids, coming soon) use vod_collections instead.

NameRequiredDescriptionDefault
kindNoOnly movies, only series, or all. Namava ignores this and returns both kinds.all
pageNoPage number, 1 = first. Filimo pages reach about 200 titles per filter (5 site pages of 40).
siteNoWhich catalog; 'both' (default) returns two lists.both
sortNoFilimo only: order of the list. Namava always lists newest first.default
genreYesGenre name in Persian or English, e.g. کمدی, comedy, درام, documentary. See vod_genres.
limitNoHow many titles to return.
countryNoFilimo only: producer country filter such as iran, america, turkey, s_korea (list in vod_genres).

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already cover read-only, idempotent, non-destructive and open-world, so the bar is lower; the description still adds real behavioral context by disclosing that Filimo rows carry year, rating, IMDb and summary while Namava rows only carry title, kind and id. It does not discuss rate limits or failure behavior when a genre string is unrecognized, which keeps it short of a 5.

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, then examples, then return-shape differences, then next steps and the exclusion — a sensible priority order with no filler. The telegraphic fragments ("Next: vod_title or vod_episodes") are dense but each clause carries distinct information.

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 7-parameter browse tool with no output schema, the description covers what rows look like per site and which sibling to use next, which is the information an agent actually needs to sequence calls. Pagination depth and the genre-name list are delegated to the schema and vod_genres, which is reasonable but leaves genre lookup slightly implicit.

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 every one of the 7 parameters is already documented in the schema, including that sort and country are Filimo-only and that Namava ignores kind. The description only echoes the Filimo-only nature of sort and country filters, adding no syntax, format or edge-case detail beyond the schema, so the baseline 3 applies.

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 movies and series of one genre) plus the two catalogs it covers, and immediately distinguishes itself from vod_title, vod_episodes and vod_collections by name. An agent can tell this apart from the search/browse siblings 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?

Gives quoted example intents ("best comedy series on Filimo", "Iranian dramas", "new documentaries"), names the follow-up calls (vod_title, vod_episodes), and explicitly routes themed lists (IMDb top 250, Oscar, kids, coming soon) to vod_collections instead. That is an explicit when/when-not/alternative mapping.

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

vod_collectionOpen a collectionA
Read-onlyIdempotent

Show the titles of one curated list on Filimo or Namava, such as the IMDb top 250 or coming soon.

Use after vod_collections. Filimo lists accept sort and country filters and reach about 200 titles; Namava lists are fixed (newest or editorial order, upcoming marks titles without a release date). The Filimo key 'kids' opens the kids home page as several rows. Next: vod_title with a ref.

NameRequiredDescriptionDefault
keyYesA key from vod_collections, e.g. 'filimo:imdbtop250', 'filimo:animated_under_15/under_6', 'namava:popular', 'namava:coming_soon', 'namava:post:1437' or 'namava:category:persian'.
kindNoOnly movies, only series, or all.all
pageNoPage number, 1 = first.
sortNoFilimo only: order of the list (not for the kids age keys).default
limitNoHow many titles to return.
countryNoFilimo only: producer country filter such as iran, turkey (see vod_genres).

TDQS

A4.5/5.0
Behavior5/5

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

Annotations only declare it is a safe, idempotent read. The description adds real behavioral context: Filimo lists reach ~200 titles and accept sort/country, Namava lists are fixed in newest or editorial order, 'upcoming' marks undated titles, and the 'kids' key expands into multiple rows rather than a single list.

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 sequencing, then provider-specific caveats — no filler. The middle sentence is dense and packs several unrelated facts (titles reach, ordering, upcoming flag, kids key) but each 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?

For a six-parameter read tool with no output schema, the description covers what comes back (titles plus refs usable by vod_title) and the provider-specific quirks an agent would otherwise discover by trial. Pagination limits and the exact return shape stay implicit, which is the only shortfall.

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 baseline is 3; the description still adds meaning beyond it by tying sort/country to Filimo only and noting sort does not apply to the kids age keys, plus the ~200-title reach that informs paging. It does not restate kind/page/limit, which the schema already covers.

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 concrete verb and resource ('Show the titles of one curated list on Filimo or Namava') with an example list, and implicitly contrasts with vod_collections, which supplies the key. An agent can distinguish it from vod_search/vod_browse without reading 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?

Gives an explicit pipeline: use after vod_collections, then vod_title with a returned ref. It also clarifies which sub-features apply where (sort/country only on Filimo). It stops short of saying when NOT to use it versus vod_browse or vod_featured, so not a 5.

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

vod_collectionsList collectionsA
Read-onlyIdempotent

List the curated lists vod_collection can open on Filimo and Namava: IMDb top 250, Oscar, kids, coming soon and more.

Use when the user asks for a themed list (best-of, festival winners, kids, Korean or Turkish series, true stories). Each entry has a key to pass to vod_collection. Namava category groups (any slug from vod_genres) also work as namava:category:<slug>.

NameRequiredDescriptionDefault
siteNoWhich catalog; 'both' (default) lists both.both

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, open-world, non-destructive behavior, so the safety profile is covered. The description adds genuine workflow context beyond that: entries carry a `key` consumed by vod_collection, and any vod_genres slug works as `namava:category:<slug>`. It doesn't say anything about result size or pagination, but for a read-only listing tool with full annotations the bar is low.

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?

Purpose is front-loaded with examples, followed by the use trigger and the chaining detail. Three short lines with no filler, though the trailing `namava:category:<slug>` sentence packs a second concept into what reads like a parenthetical aside.

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 one-parameter read-only listing with no output schema, the description covers what the tool returns at a high level (entries with a `key`) and how to use it. It leaves the entry shape otherwise unspecified and says nothing about ordering or result volume, which are minor given the tool's simplicity.

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?

With a single parameter at 100% schema description coverage and an enum, the schema fully documents `site`. The description only echoes the two site names and adds no detail on default or how 'both' results are distinguished. Baseline 3 is appropriate.

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?

"List the curated lists vod_collection can open on Filimo and Namava" gives a specific verb, resource, and scope, and explicitly ties itself to the sibling vod_collection. The concrete examples (IMDb top 250, Oscar, kids, coming soon) remove any ambiguity about what a "collection" is here.

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?

"Use when the user asks for a themed list (best-of, festival winners, kids, Korean or Turkish series, true stories)" is a clear use trigger, and it names the follow-up tool (vod_collection) that consumes the returned key. It stops short of explicit exclusions – it never says to prefer vod_genres or vod_search for non-themed queries, and the namava:category note blurs the line with vod_genres.

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

vod_episodesSeries seasons and episodesA
Read-onlyIdempotent

List the seasons of a series and the episodes of one season (title, summary, length, publish date).

Use after vod_search or vod_title when the user wants episodes, how many seasons exist or the newest episode. Takes a series ref; a movie ref returns an error. Default season is the latest. Streaming links are not provided.

NameRequiredDescriptionDefault
refYesTitle ref from vod_search, vod_new, vod_browse or vod_featured, e.g. 'filimo:0bd4p', 'filimo:150570' or 'namava:series:2377'.
limitNoMax episodes to return.
seasonNoSeason number (1 = first). Default: the latest season.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, openWorld and non-destructive, so the safety profile is covered. The description adds genuinely new behavioral facts beyond that: a movie ref produces an error rather than an empty result, the default season is the latest, and streaming links are deliberately omitted from the output.

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?

Two tight paragraphs with the purpose front-loaded and the operational caveats second. Minor duplication of the 'default season is the latest' fact already present in the season schema description keeps it from being fully waste-free.

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 does the necessary work of naming the returned fields and flagging that streaming links are absent. Pagination semantics for limit (e.g., whether more episodes exist beyond the cap) are the one notable remaining gap.

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 ref, limit and season are already fully documented, including that the season default is the latest. The description's only added meaning is the series-vs-movie ref constraint, which is a useful but small increment over the schema's pattern and descriptions.

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 seasons of a series and the episodes of one season') and even enumerates the returned fields (title, summary, length, publish date). It is clearly distinguishable from vod_search and vod_title, which are named as the upstream discovery tools.

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 triggers ('when the user wants episodes, how many seasons exist or the newest episode') and explicit sequencing ('Use after vod_search or vod_title'), plus a when-not condition: a movie ref returns an error. This is close to complete routing guidance.

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

vod_genresList genresA
Read-onlyIdempotent

List the genre names vod_browse accepts for Filimo and Namava, with the English aliases.

Use before vod_browse when unsure of a genre name. Persian names work for both sites; English aliases such as comedy or drama work too. Filimo also takes sort and country filters (see vod_browse).

NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, so the safety profile is covered. The description adds genuinely new behavioral context: the list is cross-site (Filimo and Namava), Persian names are portable across both, and Filimo-specific filters (sort, country) live in vod_browse rather than here. It stops short of describing the return shape or ordering, which keeps it below a 5.

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 what the tool returns, then when to call it, then the accepted name forms. The parenthetical cross-reference to vod_browse earns its place and nothing is repeated from the annotations.

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?

For a zero-parameter lookup tool with no output schema, the description covers everything an agent needs: what is returned (genre names plus aliases), which sites are covered, and how to consume the result. No missing prerequisite or return-format gap remains.

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 is 4 and there is nothing for the description to disambiguate. It does usefully note that site-specific filtering belongs to vod_browse, implicitly clarifying that no filtering arguments exist here.

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 genre names") and immediately scopes it to what vod_browse accepts for Filimo and Namava, including English aliases. An agent can distinguish this reference-list tool from vod_browse without opening either 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?

"Use before vod_browse when unsure of a genre name" gives an explicit trigger condition and names the sibling tool it feeds. It also resolves the main ambiguity up front by stating that both Persian names and English aliases (comedy, drama) are accepted, so the agent knows what to do with the output.

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

vod_newNew releasesA
Read-onlyIdempotent

List the newest titles added to Filimo and Namava, most recent first.

Use for "what is new on Filimo/Namava". Filimo lists include year, rating and summary; Namava lists only title and kind (call vod_title for more). Use vod_featured for what each site promotes on its front page instead.

NameRequiredDescriptionDefault
kindNoOnly movies, only series, or all.all
siteNoWhich catalog; 'both' (default) returns two lists.both
limitNoHow many titles to return.

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already cover safety (readOnly, idempotent, non-destructive) and open-world reach. The description adds behavior annotations cannot express: payload asymmetry between sources, with Filimo returning year, rating and summary while Namava returns only title and kind. It stops short of stating pagination or ordering guarantees for merged results.

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 action and ordering, then usage triggers, then alternatives. No filler and nothing repeated from the schema.

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 must carry return-value information, and it does by differentiating Filimo and Namava payloads and pointing to vod_title for the missing fields. Combined with usage routing and annotation-covered safety, 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?

Schema coverage is 100% and all three parameters are documented with enums and defaults, so the baseline is 3. The description earns an extra point by explaining that the site parameter changes the shape of results (two lists under 'both', thinner Namava payload), which is semantics the schema does not 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 action (list newest titles added) against named resources (Filimo and Namava) with an explicit ordering rule (most recent first). This is clearly distinct from vod_featured and vod_search without needing to open either 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 a concrete trigger phrase ("what is new on Filimo/Namava") and explicitly routes two alternative intents elsewhere: vod_title for fuller details and vod_featured for front-page promotions. Both when-to-use and when-not-to-use are present.

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

vod_personActor or director profileA
Read-onlyIdempotent

Look up an actor, director or writer on Filimo and Namava: short bio and the titles they appear in.

Use for "what has X acted in / directed on Filimo or Namava". Titles carry a ref for vod_title. Filimo gives birth date and place when it has them; Namava gives a bio text. A name matches the first search hit (exact name first); other_matches lists further people with similar names. Series appear once, not per episode.

NameRequiredDescriptionDefault
nameYesPerson's name in Persian (Filimo also takes the Latin name), e.g. پارسا پیروزفر; or a 'namava:person:<id>' ref from vod_title.
siteNoWhich catalog; 'both' (default) looks on Filimo and Namava.both
limitNoMax titles per site.

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already cover safety (readOnly, idempotent, non-destructive, open-world), and the description adds substantial non-obvious behavior: Filimo returns birth date/place while Namava returns bio text, the name matches the first search hit with exact matches preferred, `other_matches` holds near-name people, and series are deduplicated rather than listed per episode. These quirks materially change how an agent should interpret and present results.

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?

Purpose is front-loaded in the first clause, and later sentences are dense with useful specifics rather than filler. Slightly compressed phrasing ('Titles carry a `ref` for vod_title') asks the reader to infer the relationship, but nothing is wasted.

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?

With no output schema, the description still tells the agent what comes back (bio, birth data per site, title list, `ref`, `other_matches`, deduplicated series) and how input names resolve. For a 3-parameter read tool, nothing needed to call or interpret it 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% so the baseline is 3, but the description goes further by explaining how `name` resolution works (first hit, exact name first, similar names surfaced via `other_matches`). It leaves `limit` semantics to the schema ('Max titles per site'), which is adequate but keeps it from a 5.

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 ('Look up an actor, director or writer on Filimo and Namava') plus the payload ('short bio and the titles they appear in'). It also separates itself from vod_title by noting that returned titles carry a `ref` for that tool, so an agent can route correctly without opening sibling schemas.

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 an explicit trigger phrase: use for "what has X acted in / directed on Filimo or Namava". It does not spell out when to prefer vod_search or vod_where instead (e.g., for unknown names or browsing-only queries), so guidance is clear but not exhaustive.

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

vod_plansSubscription plansA
Read-onlyIdempotent

Show Namava's public subscription plans and prices (Filimo's prices are not available in its JSON API).

Use for "how much is a Namava subscription". Prices are in toman before 10% VAT. price is the list price, price_new_user the discounted price shown to new users (what a guest sees); auto_renew is the monthly plan that renews itself. Filimo shows its prices only in its payment page (https://www.filimo.com/payment).

NameRequiredDescriptionDefault

No parameters

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already cover safety (readOnly, idempotent, non-destructive), so the description focuses on what annotations cannot express: prices are pre-VAT toman amounts, and the distinction between list price, new-user price, and the auto-renewing monthly plan. It also discloses a real data-provenance limitation (Filimo pricing absent from the JSON API), which prevents a wasteful call.

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 and the usage trigger, with field definitions in a compact second block. The only waste is the Filimo caveat appearing twice — once as a parenthetical and again at the end with the URL — which could have been a single statement.

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?

For a no-parameter, read-only lookup with no output schema, the description covers everything an agent needs: when to call it, what the returned fields mean, currency/tax basis, and the one case where data is unavailable. Nothing material is left to inference.

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?

There are zero input parameters, so the baseline is 4. The description instead spends its effort defining the returned price fields (price, price_new_user, auto_renew), which is valuable given no output schema exists, though it does not describe ordering of plans or count of plans returned.

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?

Opens with a specific verb+resource ("Show Namava's public subscription plans and prices") and immediately delimits scope with the parenthetical that Filimo prices are not in its JSON API. An agent can distinguish this from sibling tools like vod_title or vod_search without opening the schema, since none of them concern pricing.

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 an explicit trigger phrase ("Use for 'how much is a Namava subscription'") and simultaneously states when-not/where-else: Filimo prices are only on the payment page, with the URL supplied. The routing decision is fully determined by the description.

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

vod_titleTitle detailsA
Read-onlyIdempotent

Get full details of one movie or series on Filimo or Namava: synopsis, genres, year, rating, age rating, cast, director.

Use after vod_search, vod_browse or vod_new with the ref of a hit. For a series, follow with vod_episodes to list seasons and episodes; vod_related gives similar titles and vod_person a cast member's filmography. Ratings differ per site: Filimo gives stars out of 5 with a vote count and an IMDb score; Namava gives like and dislike counts (and an IMDb score for newer titles). Filimo's cast for a movie is the names in its description text; for a series it is the actors Filimo features (a few main ones). Namava people maps each name to a ref for vod_person.

NameRequiredDescriptionDefault
refYesTitle ref from vod_search, vod_new, vod_browse or vod_featured, e.g. 'filimo:0bd4p', 'filimo:150570' or 'namava:series:2377'.

TDQS

A4.2/5.0
Behavior3/5

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

The annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is covered. The description adds real value on top: rating fields differ per site (Filimo stars/5 with vote count and IMDb vs Namava like/dislike counts) and cast semantics differ (Filimo movie cast is scraped from description text, series cast is a few featured actors). Those are meaningful data-quality caveats an agent should know before reading results.

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?

It is front-loaded with purpose, then usage chaining, then per-site caveats, with no filler or repeated phrasing. The per-site rating and cast clauses are dense but each carries information an agent cannot get from the schema or annotations.

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?

For a single-ref read tool this is complete: annotations cover mutability and idempotency, the description enumerates the returned fields despite there being no output schema, and it explains how the ref relates to sibling tools. Nothing needed to invoke it correctly 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 coverage is 100% and the schema description already lists the accepted formats and examples ('filimo:0bd4p', 'namava:series:2377'). The description only reiterates that the value comes from a prior search hit, adding no format or constraint detail beyond the pattern in the schema, so the baseline 3 applies.

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?

The first sentence gives a specific verb and resource ('Get full details of one movie or series on Filimo or Namava') and enumerates the returned fields (synopsis, genres, year, rating, age rating, cast, director). It is unmistakably distinct from vod_episodes, vod_related and vod_person, which are named later as follow-ups.

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?

It states the prerequisite explicitly ('Use after vod_search, vod_browse or vod_new with the `ref` of a hit') and then routes onward ('For a series, follow with vod_episodes', 'vod_related gives similar titles and vod_person a cast member's filmography'). Both what selects this tool and what comes next are spelled out, leaving nothing to inference.

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

vod_whereWhere to watch a titleA
Read-onlyIdempotent

Tell which of Filimo and Namava carries a title, by searching both and matching the title text.

Use for "is X on Filimo or Namava". Returns the matching titles per site (exact title match first, then titles that contain the words) and available_on. Only the catalogs are checked, not whether a title needs a subscription; use vod_title for that. Pass vod_search results to vod_title for details.

NameRequiredDescriptionDefault
yearNoProduction year (Persian calendar like 1403, or Gregorian) to tell remakes apart.
titleYesExact or near-exact title in Persian, e.g. شام ایرانی.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, openWorld and non-destructive, so the safety profile is covered. The description adds genuinely new behavior: the match ordering (exact title first, then titles containing the words), the returned keys (per-site matches and available_on), and the catalog-only scope limit. It stops short of describing result limits or what happens when nothing matches.

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 and the trigger question, then scope limits and handoffs. Tight overall, though the final sentence about passing vod_search results to vod_title is a workflow note rather than information about this tool.

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 compensates by naming the returned fields and match ordering. For a two-parameter, annotation-covered read tool this is nearly complete; only empty-result or result-count behavior is 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%, so both parameters are already documented in the schema, including the year's remake-disambiguation purpose. The description adds no further semantics about title format or year handling, so the baseline 3 applies.

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 ('Tell which of Filimo and Namava carries a title') plus the mechanism (searches both catalogs and matches title text). An agent can distinguish it immediately from vod_search (discovery) and vod_title (details), both of which are named.

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 an explicit trigger phrase ('is X on Filimo or Namava') and an explicit exclusion: it only checks catalogs, not subscription requirements, and routes that need to vod_title. It also points to vod_search as the upstream step, so the when/when-not/alternative triad is fully covered.

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. 13 tool updatesv0.1.1
    • First observedvod_browse
    • First observedvod_collection
    • First observedvod_collections
    • First observedvod_episodes
    • First observedvod_featured
    • First observedvod_genres
    • First observedvod_new
    • First observedvod_person
    • First observedvod_plans
    • First observedvod_related
    • First observedvod_search
    • First observedvod_title
    • First observedvod_where

TDQS

A4.4/5.0

Scored across 13 tools

Disambiguation4/5

Most tools have clearly distinct purposes, especially vod_title, vod_episodes, vod_person, vod_related, vod_collections, and vod_plans. The discovery-oriented tools (vod_search, vod_where, vod_new, vod_featured, vod_browse) are closer together, but their descriptions explicitly explain when to use each one, so ambiguity is minor.

Naming Consistency5/5

All tools use snake_case with a consistent vod_ prefix and stable domain terms such as title, episodes, browse, collections, and plans. The singular/plural pairing vod_collection/vod_collections and adjective-style names like vod_new and vod_featured are predictable and readable.

Tool Count5/5

The server has 13 tools, which is well within the ideal range for a dual-site VOD catalog. Each tool maps to a meaningful workflow: discovery, search, details, episodes, people, related titles, curated collections, and subscription plans.

Completeness4/5

The surface covers the core catalog lifecycle: new titles, search, availability, full details, episodes, genres, browse, people, related titles, curated lists, and Namava plans. The main limitations are declared gaps around streaming links and Filimo pricing, which are meaningful but not likely to break most catalog-information workflows.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides integration with The Movie Database (TMDB) API for searching movies, TV shows, and people, accessing detailed information, and discovering popular and trending content. Enables AI assistants to access comprehensive movie and television metadata including ratings, cast, crew, and overviews.
    66 npm
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI agents to search IMDb titles, retrieve detailed metadata and ratings, list top-rated titles with filters, and browse TV series episodes with per-episode ratings and crew information.
    420 npm
    1
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Enables AI agents to search and explore movies, TV shows, people, trending titles, recommendations, and streaming availability. Supports discovery by genre, year, score, runtime, language, and streaming service with compact, typed outputs.
    10
    MIT