pik-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
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
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| whoamiA | Return the currently authenticated OLX user (GET /me). Also confirms that login and token caching are working. |
| login_statusA | Force a fresh login with the configured credentials and report success. Useful for diagnosing authentication problems. |
| get_listingA | Retrieve a single listing by its id (GET /listings/:id). Returns the full listing object: title, price, location, status, images and owner details. |
| get_user_listingsA | List a user's listings, filtered by state (GET /users/:user/listings and its finished/inactive/expired/hidden variants). Paginated. Use |
| search_listingsA | Full-text search across OLX listings (GET /search). Public — works without credentials. Combine a text query with filters (category, brand, city, price range, condition, recency). Returns a compact summary per listing plus pagination meta and category aggregations. Set |
| list_categoriesA | Return all top-level categories (GET /categories). |
| get_category_childrenA | Return the child categories of a category (GET /categories/:id). Use this to walk the category tree down to a leaf before creating a listing. |
| get_categoryA | Return a single category with detailed properties such as base_listing_price and top_category status (GET /category/:id). |
| get_category_attributesA | Return the attributes for a category (GET /categories/:id/attributes), including input_type, options and whether each is required. These define the |
| get_category_brandsB | Return the brands available for a category (GET /categories/:id/brands). |
| get_category_modelsA | Return the models for a brand within a category (GET /categories/:id/brands/:brand_id/models). |
| suggest_categoryB | Suggest categories for a listing title/keyword (GET /categories/suggest?keyword=). Handy for auto-selecting a category when creating a listing. |
| find_categoryA | Find categories matching a name, with their hierarchical path (GET /categories/find?name=). |
| list_countriesA | Return all countries with id, name and code (GET /countries). |
| list_citiesA | Return all cities with their cantons (GET /cities). |
| get_cityA | Return a single city with coordinates, zip_code, country_id and canton_id (GET /cities/:id). Use the id as city_id when creating a listing. |
| list_country_statesB | Return country states with their cantons (GET /country-states). |
| get_canton_citiesA | Return the cities within a canton (GET /cantons/:id/cities). |
| create_listingA | Create a new listing in DRAFT status (POST /listings). Only |
| update_listingA | Update fields on an existing listing (PUT /listings/:id). Provide only the fields you want to change alongside the listing id. |
| publish_listingA | Activate a DRAFT listing so it becomes visible in search (POST /listings/:id/publish). |
| refresh_listingA | Bump a listing's rank by refreshing its timestamp (PUT /listings/:id/refresh). Subject to quota — check get_refresh_limits. May consume a paid refresh once the free quota is exhausted. |
| get_refresh_limitsA | Return refresh quota: free_limit, free_count, paid_count, listing_count (GET /listing/refresh/limits). |
| get_listing_limitsA | Return per-category listing limits (cars, real-estate, other) with current counts (GET /listing-limits). |
| finish_listingA | Mark a listing as completed/sold (POST /listings/:id/finish). This ends the active listing; it moves to the user's finished listings. |
| hide_listingA | Hide a listing from search; it stays visible on the user profile (POST /listings/:id/hide). |
| unhide_listingA | Restore a hidden listing's visibility (POST /listings/:id/unhide). |
| delete_listingA | PERMANENTLY delete a listing (DELETE /listings/:id). This is irreversible — confirm with the user before calling. |
| upload_listing_imageA | Attach image(s) to a listing (POST /listings/:id/image-upload). Provide either |
| delete_listing_imageA | Remove one image from a listing (POST /listings/:id/image-delete). |
| set_main_listing_imageA | Set a listing's primary/cover image (POST /listings/:id/image-main). |
| get_sponsor_priceA | Get a price quote for sponsoring a listing (GET /listings/:id/sponsore/price). Read-only — ALWAYS call this and show the quote to the user before sponsor_listing. |
| sponsor_listingA | Purchase sponsorship/promotion for a listing (POST /listings/:id/sponsore). THIS SPENDS OLX CREDITS. Call get_sponsor_price first, present the total to the user, and only proceed after explicit confirmation. |
| set_listing_discountA | Set a temporary discounted price on a listing (POST /listings/:id/discount). This changes the live price shown to buyers for the given period. Confirm with the user first. |
| finish_listing_discountA | End an active discount early and restore the original price (POST /listings/:id/discount/finish). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 35 tools
Each tool has a clear, distinct purpose: listing CRUD, images, categories, locations, search, user info, etc. Even with 35 tools, there is no ambiguity; for example, listing lifecycle tools (create, update, publish, finish, hide, etc.) are all uniquely named and described.
Most tools follow a verb_noun pattern (e.g., get_listing, create_listing, upload_listing_image). Minor inconsistencies: 'whoami' and 'login_status' deviate, and some use different ordering (finish_listing vs. finish_listing_discount). Overall, the pattern is recognizable and predictable.
35 tools is on the high side, but they cover a wide range of features for a listing marketplace (CRUD, images, sponsorship, discounts, categories, locations, search). The count is justified by the domain complexity and each tool earns its place.
The tool surface covers the full listing lifecycle and supporting operations: CRUD, image management, refresh, sponsorship, discounts, limits, categories with attributes and brands, location hierarchy, search, and user authentication. No obvious gaps for the stated purpose of managing OLX listings.