Skip to main content
Glama
bibo242

haraj-mcp

by bibo242

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
HARAJ_JWTYesYour haraj.com.sa JWT token, copied from the 'authorization' header (starts with 'Bearer eyJ...') of a GraphQL request while logged in.
HARAJ_MCP_ENVNoOptional path to a custom .env file containing HARAJ_JWT and LAST_REQUEST_ID. Defaults to '.env' in the server's working directory.
LAST_REQUEST_IDYesThe 'lastRequestId' header value copied from the same haraj.com.sa GraphQL request used to obtain HARAJ_JWT.

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
fetch_feedA

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}.

promoted_postsB

Fetch the promoted-post carousel for a tag. Required: tag. Optional: city. Returns {count, posts}.

related_tagsA

Cities-with-counts for a given tag — powers the city-filter chips on tag pages. Required: tag. Optional: city. Returns [{tag, count, city}].

is_following_tagA

True/false whether the authenticated user follows tag.

searchA

Search haraj by keyword. Required: keyword. Optional: cities (list), city, tag, tags (list), page, limit, only_with_image (default true), only_with_video (default false), hide_show_rooms (default false), order_by_post_id (default false), during_date ('1days'|'3days'|'1week'|'1months'), near ('@lat,lon' e.g. '@26.4336,50.1116'), full (default false = compact). Returns {keyword, count, has_next_page, view_options, posts}.

get_post_detailsA

Fetch a post + 3 related groups (similar posts in the same tag/city, similar images, related offers). This is the canonical 'fetch by id' — there is no direct getById operation in the GraphQL API. Required: post_id. full (default true = full similarPosts response).

post_like_infoC

{is_like, total, is_following} for a post. Required: post_id.

commentsC

Comment list for a post. Required: post_id. Optional: page, oldest_first (default true).

userA

Full user profile (rating, followers, location history, badges). Pass either username (URL-encoded Arabic works) or user_id. rating_summary_only (default false) returns just the rating block.

is_following_userB

True/false whether the authenticated user follows username.

notesB

User notifications (the bell icon). set_read (default false) marks them as read on the server.

sellers_listC

Sellers for a tag (used by real-estate / business / investment pages). Required: tags (list of Arabic tag names).

locker_shipment_offerC

{offerId, isEligible, price} for a post's Locker shipping option. Required: post_id.

post_contactC

{contactText, contactMobile, shouldEnableWhatsApp} for a post. Required: post_id.

follow_userA

Follow (or unfollow) a user. Required: username. Returns the new is_following state.

search_suggestA

Live search-box autocomplete. Returns the top 10 suggestions for a typed prefix. Required: prefix (e.g. 'شاشة'). Optional: tag.

trending_keywordsB

Top trending search terms over the last N days. range_in_days (default 7). Returns [{keyword, score}].

outgoing_buy_requestsB

'Buy with confidence' (وساطة) escrow requests the user has placed. Optional: page (default 0).

user_mention_suggestionsA

Recent @-mention candidates for the comment / DM composer. Returns [{userId, username, handler}].

live_streamsB

Currently-open haraj live shopping streams. Non-GraphQL REST endpoint. Returns [{id, title, cover_url, streamer, num_messages, num_viewers, started_at}]. limit (default 40; the server caps it).

check_authA

Verify the JWT and lastRequestId in .env are still valid. Returns {ok, expires_at, seconds_remaining, user_id} or {ok: false, error} if the JWT is missing or expired.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

B3/5.0

Scored across 21 tools

Disambiguation5/5

Each tool targets a clearly distinct resource or action. While several tools return posts (fetch_feed, search, promoted_posts) or relate to users (follow_user, is_following_user, user), the descriptions precisely differentiate their scopes and use cases.

Naming Consistency3/5

All names use snake_case, which is consistent, but the grammatical pattern is mixed: some are verb_noun (fetch_feed, get_post_details), some are noun phrases (promoted_posts, post_like_info), and some are is_* predicates (is_following_tag). This inconsistency makes the set less predictable.

Tool Count3/5

21 tools is on the high side for a single server, falling into the borderline heavy range per the rubric. Although each tool appears to cover a distinct API feature, the sheer number increases cognitive load and could be consolidated.

Completeness3/5

The surface covers many read operations and a few write actions (follow_user, notes set_read), but notable write operations are missing: creating or editing posts, liking/unliking, posting comments, following/unfollowing tags, and sending messages. These gaps limit agent autonomy for core marketplace interactions.

Maintenance

ActivityMaintained
ResponsivenessNo issues