Skip to main content
Glama
bibo242

haraj-mcp

by bibo242

fetch_feed

Read-onlyIdempotent

Retrieve the post feed for a specified Arabic category tag on Haraj.com.sa, with optional city, pagination, and image/video filters.

Instructions

Fetch the post feed for a tag (the homepage + category pages). Required: tag (Arabic category name like 'حراج السيارات' or 'حراج الأجهزة'). Optional: city (Arabic region like 'الشرقيه'), cities (list of regions), page (default 0), limit (default 21), before_update_date (Unix seconds cursor — pass the last item's updateDate to get the next page), only_with_image (default true), only_with_video (default false), order_main_by_post_id (default false), full (return full Post objects, default false = compact). Returns {count, has_next_page, view_options, posts}.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
tagYesArabic category/tag name, e.g. 'حراج السيارات' (cars) or 'حراج الأجهزة' (devices).
cityNoSingle Arabic region name to filter by, e.g. 'الشرقيه'.
fullNoReturn full Post objects instead of compact summaries.
pageNoZero-based page index.
limitNoNumber of posts to return (clamped to 1-100).
citiesNoList of Arabic region names to filter by (multi-city).
only_with_imageNoOnly return posts that have at least one image.
only_with_videoNoOnly return posts that have a video.
before_update_dateNoPagination cursor in Unix seconds — pass the last item's updateDate to get the next page.
order_main_by_post_idNoOrder the main feed by post id instead of update date.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed10 schema fields changedv0.5.0
    • addedInput schema / properties / before_update_date / description
      Added value: +"Pagination cursor in Unix seconds — pass the last item's updateDate to get the next page."
    • addedInput schema / properties / cities / description
      Added value: +"List of Arabic region names to filter by (multi-city)."
    • addedInput schema / properties / city / description
      Added value: +"Single Arabic region name to filter by, e.g. 'الشرقيه'."
    • addedInput schema / properties / full / description
      Added value: +"Return full Post objects instead of compact summaries."
    • addedInput schema / properties / limit / description
      Added value: +"Number of posts to return (clamped to 1-100)."
    • addedInput schema / properties / only_with_image / description
      Added value: +"Only return posts that have at least one image."
    • addedInput schema / properties / only_with_video / description
      Added value: +"Only return posts that have a video."
    • addedInput schema / properties / order_main_by_post_id / description
      Added value: +"Order the main feed by post id instead of update date."
    • addedInput schema / properties / page / description
      Added value: +"Zero-based page index."
    • addedInput schema / properties / tag / description
      Added value: +"Arabic category/tag name, e.g. 'حراج السيارات' (cars) or 'حراج الأجهزة' (devices)."
  2. First observedv0.3.0

TDQS

A3.7/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 still adds real value beyond that: it discloses the return shape {count, has_next_page, view_options, posts}, the cursor contract, and several non-obvious defaults (only_with_image=true, limit=21).

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?

One dense but front-loaded block: purpose first, then required parameter, then optional parameters, then return shape. For ten parameters this is compact, though the run-on parameter list is harder to scan than a short list would be.

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 compensates by naming the top-level response keys and the pagination field, and it covers the required tag plus every optional flag. An agent has enough to call and page through this correctly.

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 parameter is already documented in the schema and the baseline is 3. The description largely restates those defaults and only adds the Cursor mechanics, which the schema also carries.

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 ('Fetch the post feed for a tag') and adds domain scope ('the homepage + category pages'), so an agent immediately knows this is category-browsing rather than a keyword query. It never names or contrasts a sibling such as 'search' or 'promoted_posts', which is the only thing keeping it from a 5.

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 rather than stated: the tag-based framing and the pagination hint ('pass the last item's updateDate to get the next page') tell an agent how to page, but not when to choose this over 'search' or 'promoted_posts'. No exclusions or prerequisites are given.

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